Sunteți pe pagina 1din 79

nvmntul profesional i tehnic n domeniul TIC

Proiect cofinanat din Fondul Social European n cadrul POS DRU 2007-2013

Beneficiar Centrul Naional de Dezvoltare a nvmntului Profesional i Tehnic

str. Spiru Haret nr. 10-12, sector 1, Bucureti-010176, tel. 021-3111162, fax. 021-3125498, vet@tvet.ro

BAZE DE DATE

Material de predare

Domeniul: Informatic
Calificarea: Analist programator
Nivel 3 avansat

2009

1
AUTOR:

MARIANA VIOLETA CIOBANU profesor grad didactic I

COORDONATOR:

STNIC GIOVANNA MARIA - Profesor, grad didactic I

CONSULTAN:

IOANA CRSTEA expert CNDIPT

ZOICA VLDU expert CNDIPT

ANGELA POPESCU expert CNDIPT

DANA STROIE expert CNDIPT

2
Acest material a fost elaborat n cadrul proiectului nvmntul profesional i tehnic
n domeniul TIC, proiect cofinanat din Fondul Social European n cadrul POS DRU
2007-2013

Cuprins

I. Introducere......................................................................................................................8
II. Documente necesare pentru activitatea de predare...................................................10
III. Resurse.......................................................................................................................11
Tema 1. Baze de date. Concepte fundamentale..........................................................11
Fia suport 1.1 Baze de date. Concepte fundamentale...........................................11
Fia suport 1.2 Modelul entitate - relaie..................................................................16
Tema 2. Baze de date relaionale................................................................................20
Tema 2. Baze de date relaionale................................................................................21
Fia suport 2 Baze de date relaionale. Noiuni de baz.........................................21
Tema 3. Normalizarea bazelor de date........................................................................26
Fia suport 3.1 Dependene funcionale...............................................................26
Fia suport 3.2 Redundana datelor i anomalii de actualizare / reactualizare....29
Fia suport 3.3 Forme normale (1NF, 2NF, 3NF, 4NF, 5NF).................................31
Fia suport 3.3 Forme normale (1NF, 2NF, 3NF, 4NF, 5NF).................................32
Tema 4 Proiectarea bazelor de date............................................................................38
Fia suport 4.1 Proiectarea conceptual a bazelor de date.................................38
Fia suport 4.2 Proiectarea logic a bazelor de date...........................................43
Fia suport 4.3 Proiectarea fizic a bazelor de date.............................................44
Fia suport 4.3 Proiectarea fizic a bazelor de date.............................................45
Tema 5 Sisteme de gestiune a bazelor de date..........................................................47
Fia suport 5 Sisteme de gestiune a bazelor de date..............................................47
Tema 6 Elemente de algebr relaional.....................................................................54
Fia suport 6 Operaii relaionale.............................................................................54
Tema 7 Interogarea bazelor de date. Limbajul SQL....................................................58
Fia suport 7.1 Concepte generale..........................................................................58
Fia suport 7.2 Interogri simple pentru manipularea datelor.................................62
Fia suport 7.4 Tranzacii.........................................................................................70
Tema 8 Securitatea bazelor de date............................................................................73
Fia suport 8 Securitatea bazelor de date...............................................................73
Tema 9 Utilizarea bazelor de date n cadrul reelelor de calculatoare........................75
Tema 9 Utilizarea bazelor de date n cadrul reelelor de calculatoare........................76
Fia suport 9 Baze de date distribuite. Concepte generale.....................................76
IV. Fia rezumat..........................................................................................................80
V. Bibliografie...................................................................................................................82

3
I. Introducere
Materialele de predare reprezint o resurs suport pentru activitatea de predare,
instrumente auxiliare care includ un mesaj sau o informaie didactic.

Prezentul material de predare, se adreseaz cadrelor didactice care predau n cadrul


colilor postliceale, domeniul Informatic, calificarea Analist programator

El a fost elaborat pentru modulul Baze de date, ce se desfoar n 102 ore, din care:

- Laborator tehnologic 36 ore


- Instruire practic 30, aceste ore se desfoar n cadrul celor 4 sptmni alocate
stagiilor de pregtire practic de la sfritul anului.

Competene Teme Fie suport

Proiecteaz structura Tema 1 Baze de date. Concepte Fia suport 1.1 Baze de
unei baze de date fundamentale date. Concepte
fundamentale

Fia suport 1.2 Modelul


entitate relaie

Tema 2 Baze de date relaionale Fia suport 2 Baze de date


relaionale. Noiuni
fundamentale

Tema 3 Normalizarea bazelor de Fia suport 3.1


date Dependene funcionale

Fia suport 3.2


Redundana datelor.
anomalii

Fia suport 3.3 Forme


normale

Tema 4 Proiectarea bazelor de Fia suport 4.1 Proiectarea


date conceptual a bazelor de
date

Fia suport 4.2 Proiectarea


logic a bazelor de date

Fia suport 4.3 proiectarea


fizic a bazelor de date

4
Competene Teme Fie suport

Tema 5 Sisteme de gestiune a Fia support 5 - Sisteme de


bazelor de date gestiune a bazelor de date

Interogheaz bazele Tema 6 Elemente de algebr Fia suport 6 Operaii


de date relaional relaionale

Tema 7 Interogarea bazelor de Fia suport 7.1 Concepte


date. Limbajul SQL generale

Fia suport 7.2 Interogri


simple pentru manipularea
datelor

Fia suport 7.3 Interogri


complexe pentru
manipularea datelor

Fia 7.4 Accesul concurent


la baza de date

Administreaz baze Tema 8 Securitatea bazelor de Fia suport 8 Securitatea


de date date bazelor de date

Tema 9 Utilizarea bazelor de date Fia suport 9 Baze de date


n cadrul reelelor de calculatoare distribuite. Concepte
generale

Dup parcurgerea acestui modul elevii vor fi capabili s creeze baze de date, s
manipuleze datele folosind limbajul SQL i s asigure integritatea i securitatea
datelor din baze create. Acest modul reprezint un modul cheie al calificrii date
fiind ultimele tendine privind dezvoltarea sistemelor informatice, precum i
utilizarea lor la scara din ce n ce mai mare.

5
II. Documente necesare pentru activitatea de predare
Pentru predarea coninuturilor abordate n cadrul materialului de predare cadrul didactic
are obligaia de a studia urmtoarele documente:

Standardul de Pregtire Profesional pentru calificarea Analist programator,


nivelul 3 avansat www.tvet.ro, seciunea SPP sau www.edu.ro , seciunea
nvmnt preuniversitar

Curriculum pentru calificarea Analist programator, nivelul 3 avansat


www.tvet.ro, seciunea Curriculum sau www.edu.ro , seciunea nvmnt
preuniversitar

6
III. Resurse
Tema 1. Baze de date. Concepte fundamentale
Fia suport 1.1 Baze de date. Concepte fundamentale

n general n literatura specific bazelor de date se opereaz cu urmtoarele concepte:


Datele constau n material brut, evenimente primare, fapte, simboluri, numere, iruri de
caractere, imagini, animaii etc. fr un neles de sine stttor, neintegrate ntr-un
context. Ele se pot obine n urma unor experimente, sondaje pot fi colectate din diverse
locuri, nedefinite sau neomogene.

Informaiile se obin prin prelucrarea datelor i gsirea relaiilor dintre acestea, au


un neles i sunt integrate ntr-un context. Datele organizate i prezentate ntr-un
mod sistematic pentru a sublinia sensul lor devin informaii. Altfel spus, informaiile
sunt date prelucrate capabile de a produce cunotine noi, se refer la obiecte ,
procese, fenomene, locuri, situaii etc. Informaiile trebuie s fie clare, concise.

Cunotinele sunt colecii de date, informaii, adevruri i principii nvate,


acumulate de-a lungul timpului. Informaiile despre un subiect reinute i nelese,
folosite n luarea de decizii, i care formeaz judeci i opinii devin cunotine. Cu
alte cuvinte, cunotinele apar n momentul utilizrii informaiei.

Pentru obinerea informaiilor se desfoar un set de activiti cunoscute sub


numele de proces informaional ce cuprinde:
- Identificarea surselor de informaie i culegerea datelor
- Pregtirea datelor ce presupune: codificare, clasificare, conversie, selectare
- Prelucrarea datelor
- Stocarea datelor n vederea utilizrii lor
- Extragerea rezultatelor prelucrrii datelor/raportarea informaiilor ctre
beneficiarii

7
Totalitatea resurselor materiale, umane i financiare utilizate n cadrul unui proces
informaional avnd ca scop asigurarea legturii dintre sistemul decizional i cel
operaional i obinerea informaiilor poart denumirea de sistem informaional.
Sistemul informaional este deci reprezentat de totalitatea metodelor, procedurilor i
mijloacelor, folosite n procesul informaional i poate fi definit ca un ansamblu
organizat i integrat de operaii de culegere, transmitere, prelucrare, sistematizare,
analiz i pstrare, difuzare i valorificare a informaiilor.
Dac n cadrul procesului informaional prelucrarea datelor se face cu ajutorul
calculatorului atunci sistemul informaional se numete sistem informatic.
Colecia de date reprezint un ansamblu de date care se refer la acelai fenomen,
obiect sau situaie. n cadrul componentelor coleciei se pot stabili relaii care s
faciliteze prelucrarea datelor i obinerea informaiilor.
Structura de date reprezint o colecie de date pe care s-au stabilit anumite relaii
i un mecanism de selecie i identificare a componentelor sale. Accesul la
componentele structurii de date este un element foarte important n regsirea
informaiei i poate fi de dou feluri:
o secvenial : presupune parcurgerea tuturor datelor situate naintea celei care
urmeaz a fi prelucrat
o direct : presupune existena unui mecanism care s determine direct poziia
datei ce urmeaz a fi prelucrat.
Structurile de date pot fi omogene sau neomogene, n funcie de tipul datelor coninute
n structur. n funcie de posibilitatea de a-i modifica structura se ntlnesc structuri de
date dinamice sau statice. Operaiile care pot fi executate asupra unei structuri de date
sunt dependente de mediul de programare utilizat. n general asupra unei structuri de
date pot fi executate operaii precum: creare, populare, consultate, actualizare, sortare,
scindare, concatenare, duplicare, tergere.
Baza de date reprezint un ansamblu de date integrat, ntre care exist relaii logice
i o descriere a acestor date, proiectat pentru a satisface necesitile informaionale
ale unei organizaii. Descrierea structurii poart numele de dicionar de date sau
metadate i creeaz o interdependen ntre datele propriu-zise i programe.
Sisteme de gestiune a bazelor de date reprezint un pachet de programe care
permite definirea, crearea, ntreinerea i accesul controlat la baza de date.

Baza de date poate fi privit ca o colecie de fiiere interconectate care conin nucleul
de date necesare unui sistem informatic. Astfel, poate fi considerat drept un model al
unor aspecte ale realitii unei companii, modelat prin intermediul datelor. Diferitele
obiecte din cadrul realitii ce prezint interes sunt denumite entiti. Pentru aceste
obiecte sunt achiziionate i memorate date referitoare la diferite caracteristici ale
entitii numite atribute. ntre entitile identificate se stabilesc relaii.

Baza de date se constituie ca un ansamblu intercorelat de colecii de date, prin


care se realizeaz reprezentarea unei realiti.

O baza de date trebuie s asigure:


abstractizarea datelor (baza de date fiind un model al realitii),
integrarea datelor (baza de date este un ansamblu de colecii de date
intercorelate, cu redundan controlat),

8
integritatea datelor (se refer la corectitudinea datelor ncrcate i manipulate
astfel nct s se respecte restriciile de integritate),
securitatea datelor (limitarea accesului la baza de date),
partajarea datelor (datele pot fi accesate de mai muli utilizatori, eventual n
acelai timp),
independena datelor (organizarea datelor s fie transparent pentru utilizatori,
modificrile n baza de date s nu afecteze programele de aplicaii).

Scopul utilizrii bazelor de date este acela de a furniza utilizatorilor o vedere


abstact i general a datelor. Prin urmare cnd se proiecteaz o baz de date trebuie
s se obin o descriere abstract i general a cerinelor informaionale ale
organizaiei. Astfel noiunea de modelare va aborda concepte precum:
entitate cum ar fi: Elev, Clasa, Disciplin etc.
atribut ce descriu proprietile entitilor; Exemplu entitatea Elev poate avea
atribute precum: Nume, Prenume, Data_nasterii, Adres etc
relaiile care se stabilesc ntre entiti; Exemplu ntre entitile Elev i Clasa se
poate stabili o relaie prin faptul c fiecare elev este repartizat la o clas.
Standardele n vigoare privind proiectarea bazelor de date i abstractizarea datelor
descriu existena a trei niveluri de abstractizare a datelor ce formeaz o arhitectur pe
trei niveluri cuprinznd:
Nivelul extern care se refer la vederile utilizatorilor asupra bazei de date.
Nivelul conceptual, vederea general a bazei de date. Acest nivel descrie ce
date sunt stocate n baza de date i care sunt relaiile dintre ele. Acent nivel
descrie: toate entitile, atributele i relaiile dintre ele, constrngerile asupra
datelor, informaii semantice asupra datelor, informaii privind securitatea
datelor.
Nivelul intern, reperezentarea fizic a bazei de date pe calculator. Acest nivel
descrie cum sunt stocate date n baza de date.

Descrierea general a unei baze de date se numete schema bazei de date. Dat
fiind arhitectura pe trei niveluri, exist trei tipuri de scheme, corespunztoare celor trei
niveluri: schema extern, schema conceptual i schema intern.
O baz de date are mai multe scheme externe corespunztoare tuturor vederilor
utilizatorilor. Schema conceptual descrie toate articolele de date i relaiile dintre
acestea, mpreun cu constrngerile de integritate, exist o singur schem
conceptual. La nivelul intern schema intern reprezint o descriere a modelului intern.
Sistemul de gestiune a bazelor de date permite implementarea celor trei tipuri de
scheme, prin utilizarea unui limbaj de definire a datelor. Acest limbaj este ns prea
inferior pentru a putea descrie necesitile unui sistem informaional al unei organizaii.
Din acest motiv au fost introduse i utilizate modelele de date.

Un model de date reprezint un ansamblu de concepte necesare descrierii


datelor, relaiilor dintre acestea i constrngerilor. Cu alte cuvinte un model de date
conine:
un set de reguli care descriu modul de constituire a bazelor de date
un set de operaii permise asupra datelor din bazele de date
un set de reguli care garanteaz integritatea datelor

9
Exist modele de date bazate pe obiecte, modele de date bazate pe nregistrri,
modele de date fizice. Primele dou descriu datele la nivel conceptual i extern, iar
ultimul model descrie datele la nivel intern.
2. Modele bazate pe obiecte:
- Modelul entitate relaie
- Modelul semantic
- Modelul funcional
- Modelul oriectat spre obiecte
3. Modele bazate pe nregistrri:
- Modelul de date relaional
- Modelul de date n reea
- Modelul de date ierarhic
4. Modele fizice, decriu cum sunt stocate datele pe calculator:
- Modelul unificator
- Memoria cadru
Din punctul de vedere al proiectrii bazelor de date sunt importante primele dou tipuri
de modele, fia suport 1.3 va trata un model bazat de obiecte (modelul entitate -
relaie), iar Tema 2 trateaz un model bazat pe nregistrri (modelul relaional).

Avantajele folosirii bazelor de date


Definirea structurilor de date necesare unei aplicaii reprezint una dintre etapele cele
mai importante n dezvoltarea sistemelor informatice inteligente, totodat a fost i este
condiionat de: necesarul de memorie, viteza de prelucrare a datelor, precum i de
efortul de proiectare i implementare a sa. n aceast etap se va ine cont de: volumul
datelor, operaiile de prelucrare i actualizare, asigurarea integritii datelor, asigurarea
securitii datelor, utilizarea eficient a memoriei.

n primele forme de organizare a datelor pentru prelucrarea automat s-a folosit


sistemul bazat pe fiiere. Prin acest mod de lucru fiecare program al aplicaiei definea i
gestiona propriile date, analog unui sistemului de ndosariere manual al datelor. Acest
sistem s-a dovedit ineficient prin:
- separarea i izolarea datelor
- dublarea datelor
- dependena de date
- incompatibilitatea fiierelor
- interogarea fix a programelor de aplicaie
Aceste limitri ale sistemului bazat pe fiiere au fost depite prin eliminarea definirii
datelor n programele de aplicaie i existena controlului accesului la date i la
manipularea acestora, lucru care s-a realizat prin utilizarea sistemului de baze de date
i a sistemelor de gestiunea bazelor de date.

Tratarea prin sisteme de baze de date permite astfel definirea datelor separat de
programele de aplicaie. Declararea structurii logice a datelor se face n exteriorul
aplicaiei asigurnd astfel independena programnelor fa de structura datelor.

Apare acum problema existenei unei interfee ntre bazele de date i programele de
aplicaie care s permit:
- definirea structurii datelor
- criteriile de acces la date
- confidenialitatea datelor
10
- controlul concurenei
- integritatea datelor
- securittea datelor
Toate aceste proceduri sunt asigurate de sistemul de gestiune a bazelor de date.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint i fie de lucru, fie de evaluare/autoevaluare. Activitile se
pot desfura n sal de curs sau n laboratorul de informatic, dotate cu
videoproiector, tabl/flipchart.

Se poate lucra individual sau pe grupe, profesorul va aborda toate aspectele


generale cu privire la bazele de date i va pune accent pe avantajele i
dezavantajele utilizrii bazelor de date. Se vor analiza diferite sisteme
informaionale din care s se identifice: entitile relaiile care exist ntre ele,
atributele entitilor.

n ceea ce privete evaluarea / autoevaluarea se poate utiliza un test cu itemi


de tip mperechere, completare i alegere multipl. Se poate cere elevilor s
identifice elemente greit utilizate i s le corecteze. Se va face evaluare i
transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da
i teme integratoare de tip proiect pentru diferite cazuri de sisteme informationale.

11
Fia suport 1.2 Modelul entitate - relaie

Modelul entitate-relaie este un model de date conceptual de nivel nalt care


faciliteaz proiectarea bazelor de date. Ca model de date conceptual descrie un set de
concepte care descriu baza de date i tranzaciile de regsire i actualizare asociate,
scopul fiind acela de a asigura perceperea datelor de ctre utilizator i ascunderea
aspectelor tehnice asociate proiectrii bazelor de date.

Conceptele de baz ale acestui model sunt: tipurile de entiti, tipurile de relaii i
atributele.

Tipul de entitate un obiect sau un concept care este identificat ca avnd o existen
independent. Un tip de entitate poate fi un obiect cu o existen fizic (real) sau un
obiect cu o existen conceptual. Tipul de entitate este echivalentul relaiei din modelul
relaional.

Exemplu:
Existen fizic: Elev, Profesor, Clasa
Existen conceptual: Examinare, Inscriere, Mutare, Arhivare

Fiecare tip de entitate este identificat printr-un nume i o list de proprieti. O baz de
date conine mai multe tipuri de entiti. Entitatea este o instan a unui tip de entitate,
care este unic determinat. Fiecare tip de entitate are un set distinct de atribute, iar
fiecare entitate are propriile sale valori pentru fiecare atribut.

Tipurile de entiti se mpart n tari i slabe n funcie de dependena lor fa de alte


tipuri de entiti:
- tip de entitate slab (copil/subordonat): existena sa depinde de alte cteva tipuri de
entiti
- tip de entitate tare (printe/dominant): existena sa nu depinde de alte tipuri de
entiti

Exemplu:

ELEV DISCIPLINA

SITUATIE_SCOLARA

REPREZENTAREA SCHEMATIC A TIPURILOR DE ENTITI

Tip de entitate slab: Situatie_Scolara, ea depinde de elev i de disciplina


Tip entitate tare: elev, disciplina
Entitile slabe au o reprezentare grafic (chenar dublu) diferit de cele tari (chenar
simplu).

Atribute
Atributul reprezint o proprietate a entitii sau a relaiei. Atributul unei entiti conine
valorile ce o descriu.

12
Exemplu:
O entitate de tip elev poate fi descris prin: numrul elevului (IdElev), numele elevului
(NumeElev), cod numeric personal (CNPElev), adres (AdresaElev).

Domeniul atributului reprezint mulimea de valori pe care le poate lua un atribut.


Fiecrui atribuit i este asociat o mulime de valori. De exemplu, notele unui elev pot fi
de la 1 la 10, prin urmare domeniul atributului Nota este format din valorile de la 1 la 10.

Pot exista atribute care au acelai domeniu. De exemplu data naterii i data nscrierii
pot fi atribute care au ca domeniu data calendaristic.

Atributele se pot fi:


- simple (o singur valoare): CNP, Nume
- compuse (valori multiple): adresa cu valoarea (strada, localitate, tara), data_nasterii
(zi, luna, an)
- derivate, rezultate din alt atribut, sau set de atribute: vrsta poate rezulta din data
nasterii, media poate rezulta din notele elevului.

Chei un atribut sau un set de atribute care identific n mod unic apariiile individuale
ale unui tip de entitate.
n modelul entitate-relaie se ntlnesc urmtoarele noiuni: cheie candidat, cheie
primar i cheie compus. Primele dou au fost definite i la modelul relaional i au
aceeai semnificaie.
Cheia compus este o cheie candidat care este alctuit din mai multe atribute.

Entitile se reprezint schematic astfel:


- atributele sunt reprezentate prin elips etichetat cu numele acestuia
- conturul elipsei este punctat dac atributul este derivat
- conturul elipsei este dublat dac atributul are valori multiple
- entitatea este reprezentat printr-un dreptunghi, dac tipul entitii este tare atunci
acesta are o singur linie de contur, iar dac este slab are contur dublu.
- atributele sunt legate de tipul de entitate printr-o linie
- cheia primar este subliniat

Exemplu: tipul de entitate

SE NUM
PRENUM
X E
E
CNP
ELEV
ADRES
A
NOTE

DATA_N VARST
A
Figur 1 Reprezentarea schematic a entitii elev
Tipuri de relaii
Un tip de relaie reprezint o asociere semnificativ ntre dou tipuri de entiti. Fiecare
tip de relaie are un nume care descrie funcia sa.
Exemplu:
13
1. entitatea clasa este asociat entitii elev prin relaia numit EsteInscris (o clasa
detine elevi).
2. Entitatea profesor este asociat entitii clasa prin relaia numit Pred
(Prefesorii predau la clase).
Relaiile sunt reprezentate grafic printr-un romb, etichetat cu numele relaiei. Rombul
are contur dublu dac relaia conecteaz o entitate slab cu una tare.

Exemplu:
CNP

ELEV

STUDIAZ AreNot
A e
NrDisciplin
a
DISCIPLINA EsteNota SITUATIE_
ta SCOLARA

Reprezentarea schematic a entitilor i relaiilor

Gradul unei relaii definete numrul de entiti participative ntr-o relaie. n acest
sens pot exista relaii binare, ternare, cvadrupl. Cel mai des ntlnit grad al unei relaii
este binar.

Raportul de cardinalitate descrie numrul de relaii posibile pentru fiecare entitate


participativ. Raportul de cardinalitate pentru relaii binare sunt: 1:1 (unu la unu), 1:M
(unu la mai muli), N:M (muli la muli).

Exemple:
1:1 Relaia Administreaz care se poate stabili ntre entitile Clase (IdClasa,
NumeClas, Profil, NrElevi) i Diriginti (IdDiriginte, NumeDiriginte, Specialitate, Statut).

IdClase IdDirigint
e

1 1
Clase Administrea Diriginti
z

Exemplu de relaie 1:1

1:M Relaia AreElevi care se poate stabili ntre entitile Elevi (IdElev, NumeElev,
Data_N, Adresa) i Clase (IdClasa, IdElev, NumeClasa, Specializare)

14
IdClasa IdElevi

1 M
Clase AreElevi Elevi

Exemplu de relaie 1:M


M:N Relaia Evalueaz care se poate stabili ntre entitile Elevi (IdElev, NumeElev,
Data_N, Adresa) i Profesori (IdProfesor, Specializare)

IdProfesor IdElevi
i

M N
Profesori Evalueaz Elevi

Exemplu de relaie M:N
La stabilirea relaiilor dintre entiti trebuie avute n vedere i constrngerile de
participare. Acestea deetermin dac existena unei entiti depinde de faptul c
aceasta este legat de alt entitate printr-o relaie.
Exist dou tipuri de constrngeri de participare: totale i pariale. Participarea este
total dac existena unei entiti necesit existena uneia asociate printr-o anumit
relaie altfel este parial.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint i fie de lucru, fie de evaluare/autoevaluare. Activitile se
pot desfura n sal de curs sau n laboratorul de informatic, dotate cu
videoproiector, tabl/flipchart.

Se poate lucra individual sau pe grupe, profesorul va aborda toate aspectele


legate de baze de date i modelarea conceptual a bazelor de date. Se vor analiza
diferite sisteme informaionale din care s se identifice: entitile, relaiile care
exist ntre ele, atributele entitilor.

n ceea ce privete evaluarea / autoevaluarea se poate utiliza un test cu itemi


de tip mperechere, completare i alegere multipl. Se poate cere elevilor s
identifice elemente greit utilizate i s le corecteze. Se va face evaluare i
transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da
i teme integratoare de tip proiect pentru diferite cazuri de sisteme informationale.

15
Tema 2. Baze de date relaionale
Fia suport 2 Baze de date relaionale. Noiuni de baz

Modelul relaional se bazeaz pe conceptul matematic de relaie, prezentat fizic


sub form de tabel. Fundamentul modelului relaional l constituie teoria mulimilor i
logica predicativ. n acest sens modelul descrie modul de efectuare a operaiilor
algebrice elementare (ca, de exemplu, reuniunile i interseciile) ntr-o manier foarte
similar aceleia n care aceste operaii sunt efectuate n teoria mulimilor.

Tabele reprezint analoagele mulimilor, ele fiind colecii de elemente distincte cu


proprieti comune. De exemplu, n timp ce o mulime poate conine numere reale, un
tabel poate conine informaii despre elevi.

Modelul relaional nu este orientat spre sistemul de calcul, nu include regulile, structurile
i operaiile referitoare la implementarea fizic a unui sistem de baze de date. Se face
astfel o separare clar ntre aspectele fizice i cele logice ale bazei de date, iar
operaiile de manipulare a datelor pot fi privite ca o serie de operaii de proiecie, filtrare,
reuniune, intersecie asupra datelor din tabele.

Noiuni de baz specifice modelului relaional .

Relaie tabel ce conine coloane i rnduri.


Atribut o coloana a relaiei (tabelului), cu o anumit denumire.
Domeniu mulimea de valori permise pentru unul sau mai multe atribute.
Tuplu rndul dintr-o relaie.
Grad numrul de atribute pe care le conine aceasta.
Cardinalitate numrul de tupluri coninute.
Schema relaiei denumirea relaiei, urmat de un set de perechi de atribute i
denumiri de domenii.
Null : lipsa valorii unui atribut ; este diferit de valoarea 0 sau un ir de caractere
alctuit din spaii albe.

n modelul relaional, relaiile sunt folosite pentru a pstra informaii despre


obiectele care vor fi reprezentate n baza de date. Astfel, o relaie este un tabel
bidimensional n care rndurile reprezint tuplul (nregistrrile / datele), iar coloanele
rein atributele relaiei. Domeniul este foarte important deoarece el definete sursa de
valori i limitele n ceea ce privete operaiile permise.

Exemplu : Relaia elev


IdElev Nume Premune Data_nasterii Adresa
1 Popa Marin 1-0ct-1997 Str. Jiului, nr. 19, Buc
2 Marin Simona 19-Dec-1998 Str. N. Iorga, nr. 10, Ilfov
3 Ionescu David 2-Mai-1996 Str. R.Beller, nr. 25, Buc

Atribute : IdElev, Nume, Prenume, Data_nasterii, Adresa

16
Domeniu :
- Pentru IdElev : submulime a numerelor naturale
- Nume, Prenume, Adres : ir de caractere
- Data_nasterii : dat calendaristic
Gradul relaiei Elev : 5
Nr. De tupluri : 3
Cardinalitatea relaiei : 3

Proprietile relaiilor
Plecnd de la teoria mulimilor putem afirma c o relaie are urmtoarele proprieti :
- Are o denumire distinct ca orice mulime.
- Fiecare celul a relaiei conine exact o valoare atomic (unic), ntr-o mulime
nu se repet niciun element
- Fiecare atribut are o denumire disticnt
- Toate valorile unui atribut aparin aceluiai domeniu
- Ordinea atributelor nu are nicio important
- Fiecare tuplu este distinct, nu exist dubluri ale tuplurilor
- Ordinea tuplurilor nu are nicio importan, precum nici ordinea elementelor unei
mulimi nu are nicio importan
Pentru identificarea unic a fiecrui tuplu dintr-o relaie se folosesc cheile primare.
Deci cheia primar este un atribut sau un set de atribute care identific n mod unic
fiecare nregistrare din tabel.

Supercheia : Un atribut sau un set de atribute care identific n mod unic fiecare tuplu
din interioarul unei relaii. Supercheia poate conine i atribute care nu sunt necesare
pentru o identificare unic.

Cheie candidat : o supercheia pentru care nicio submulime adecvat nu este o


supercheie n cadrul relaiei respective. Cheia candidat conine setul de atribute strict
necesare pentru o identificare unic a fiecrui tuplu n cadrul relaiei.

Cheia primar respect urmtoarele principii:


- este obligatorie : fiecare relaie are exact o singur cheie primar care identific
n mod unic fiecare tuplu al relaiei
- este unic : cheia primar identific un singur rnd dintr-o relaie (nu exist dou
tupluri cu aceeai cheie primar)
- este simpl sau compus : o cheie primar cuprinde unul sau mai multe atribute
ale tuplului
- este Non null-, valoare unei chei primare nu poate fi vid
- este stabil : o dat create valorile cheilor primare se schimb foarte rar
- este nereutilizabil : dac se terge un tuplu valoarea chei primare nu poate fi
asociat altui tuplu
- minimal : cheia primar include doar acel atribut sau acele atribute necesare
pentru unicitate

n teoria bazelor de date se mai ntlnete i noiunea de cheie strin sau extern.
Aceasta este un atribut sau un set de atribute din cadrul unei relaii care se potrivete
cu cheia primar a altei relaii. Cheile strine stabilesc legturi ntre dou relaii.

Exemplu de relaii ntre care exist o legtur ntre cheia primar i cheia strin -
relaia elev i relaia clase ce au urmtoarele scheme :

17
Elev (IdElev, NumeElev, PrenumeElev, Data_NElev, AdresaElev, IdClasa)
Clase (IdClasa, NumeClasa, ProfilClasa)

Pentru relaia elev IdElev reprezint cheia primar deoarece identific n mod unic
fiecare elev, iar IdClasa reprezint cheia strin deoarece face legtura cu relaia clase
unde IdClasa reprezint cheia primar.

O baz de date poate avea orice numr de relaii.

Integritarea relaional

n teoria bazelor de date exist mai multe tipuri de constrngeri. Unele dintre acestea
sunt date de faptul c fiecare atribut are un domeniu, deci valorile pe care le poate primi
un atribut sunt restricionate la o mulime de valori sau pot fi restricionate de valorile
altor atribute, de lungimea lor, se pot referi la tipul atributelor etc. Utilizatorii aplicaiilor
informatice pot specifica constrngeri adiionale cum ar fi : ntr-o clas nu pot exista
dect 30 de elevi, iniiala tatlui din cadul numelui unui elev nu poate avea dect 3
caractere, codul numeric personal are strict 13 cifre etc.

Pe lng aceste restricii mai exist dou numite reguli de integritate ce se aplic
tuturor instanelor unei baze de date i anume : integritate a entitilor i integritate
referenial.

Integritatea entitilor este o regul care se refer la imposibilitatea chei


primare de a avea ca valoare null. Prin definiie cheia primar identific n mod unic
fiecare tuplu deci dac n coponena cheii primare este inclus un atribut al crei coninut
nu este cunoscut nu se mai respect principiul de minim pentru cheia primar. De
exemplu, deoerece atributul IdElev este cheie primar a relaiei elev definit mai sus, nu
se va putea insera un null ca valoare a atributului IdElev.

Integritatea referenial este o regul care se aplic cheilor strine : valoarea


cheii strine trebuie s fie null sau s coincid cu o valoare a cheii primare la care face
referin.

Elev
IdElev NumeElev PrenumeElev Data_NElev AdresaElev IdClasa
1 Popa Marin 1-0ct-1997 Str. Jiului, nr. 19, Buc 1
2 Marin Simona 19-Dec-1998 Str. N. Iorga, nr. 10, Ilfov 1
3 Ionescu David 2-Mai-1996 Str. R.Beller, nr. 25, Buc 2

Clase
IdClasa NumeClasa ProfilClasa
1 9A Matematica-Informatica
2 9B Filologie
3 9C Stiintele naturii

De exemplu, avnd n vedere cele dou relaii definite mai sus elev i clase toi elevii
care aparin unei clase vor avea ca valoarea a atributului IdClasa acelai numr egal cu
18
unul din relaia Clase. Primii doi elevi din relaia elev aparin clasei 9A, iar cel de-al
treilea clasei 9B. Pentru a respecta integritatea referenial, innd cont de faptul c
ntre cele dou relaii exist o legtur prin care un elev aparine unei clase, n relaia
elev nu va exista niciun elev care s aibe ca valoare a atributului IdClasa null sau alt
valoare care nu se regsete ntre valorile cheii primare IdClasa din relaia Clase.

Limbaje relaionale
n afara relaiilor i proprietilor acestora modelul relaional mai este definit i de
limbajele relaionale, seturi de operaii care se pot efectua asupra relaiilor i datelor
definite n cadrul relaiilor.

Limbajele relaionale sunt utilizate pentru manipularea datelor: reactualizarea sau


regsirea datelor din bazele de date, dar i pentru modificarea structurii bazei de date.
Limbajele utilizate de sistemele de gestiune a bazelor de date pot fi procedurale (prin
intermediul crora utilizatorii comunic sistemului cum s prelucreze datele) i
neprocedurale (prin care utilizatorul stabilete ce date sunt necesare a fi prelucrate).

La baza limbajelor relaionale stau algebra relaional i calculul relaional definite de


Codd n 1971. n acest sens algebra relaional ar putea fi considerat un limbaj
procedural care transmite sistemului cum s construiasc o nou relaie din una sau
mai multe relaii existente, iar calculul relaional un limbaj neprocedural prin intermediul
cruia utilizatorul poate formula definiia unei relaii n termeni de una sau mai multe
relaii din baza de date. Din punct de vedere formal algebra relaional i calculul
relaional sunt echivalente n sensul c pentru fiecare expresie din algebr exist una n
calculul relaional i invers.

Algebra relaional, introdus de Codd, este o mulime format din opt operatori
unari i binari ce acioneaz asupra relaiilor genernd o alt relaie:
- operatorii tradiionali pe mulimi: reuniune, intersecie, diferen, produsul cartezian;
- operatori speciali: proiecia, selecia, uniune, mprire.

Calculul relaional reprezint o adaptare a calculului predicatelor la domeniul


bazelor de date relaionale. n acest sens o relaie este un predicat, iar prin aplicarea
operatorilor specifici calculului predicatelor (conjuncia, disjuncia, negaia,
cuantificatorul existenial i cel universal) unor predicate iniiale se pot obine alte
predicate (relaii noi).

Majoritatea limbajelor relaionale sunt mai puternice dect algebra relaional i calculul
relaional fapt datorat operaiilor adiionale specifice limbajelor cum ar fi: funciile de
calcul, de sumare i de ordonare.

n prezent cel mai utilizat limbaj pentru interogarea bazelor de date relaionale este
SQL, limbaj bazat pe operaiile algebrei relaionale.

19
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
pot desfura n sal de curs sau n laboratorul de informatic, dotate cu
videoproiector, tabl/flipchart.

Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii
s identifice i s gseasc singuri elementele fundamentale pentru baze de date
relaionale: se vor exemplifica relaii (tabele) din care elevii s identifice atributele,
domeniile atributelor, cheile, cardinalitatea etc. n cazul lucrului pe grupe se vor
face comparaii ntre rezultatele obinute pe grupe.

n ceea ce privete evaluarea / autoevaluarea se pot utiliza teste cu itemi de


tip mperechere, completare i alegere multipl, problematizare. Se poate cere
elevilor s identifice elemente greit utilizate i s le corecteze. Se va face evaluare
i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot
da i teme integratoare de tip proiect, eseu. Se vor da probe practice, utiliznd un
SGBD, prin care elevii vor crea tabele, vor denumi atributele i domeniile acestora,
vor crea chei primare pentru tabele, vor realiza legturi ntre tabele.

20
Tema 3. Normalizarea bazelor de date
Fia suport 3.1 Dependene funcionale

Unul dintre conceptele asociate normalizrii bazelor de date l reprezint dependena


funcional care descrie relaiile dintre atribute. Astfel, dac A1 i A2 sunt atribute ale
unei relaii R se spune c atributul A2 este dependent funcional de A1, i se
noteaz A1A2, dac fiecrei valori a atributului A1 i este asociat exact o valoare a
lui A2. Atunci cnd exist o dependen funcional aceasta reprezint o constrngere
ntre atribute.

A1 A2
Diagram de dependen funcional

Determinantul unei dependene funcionale se refer la atributul sau grupul de


atribute din partea stng a sgeii. n cazul ilustrat A1 este determinantul dependenei
funcionale.

Exemplu:
Fie relaia Personal cu urmtoarele atribute:

Personal
IdPersoana NumePersoana PrenumePersoana Functie Salariu
1 Pop Maria profesor 500
2 Avram Ion maistru instructor 400
3 Ivan Felicia secretar 350
4 Antim Maria director 600

Putem evidenia dependena funcional IdPersoana Funcie. Se constat c


PrenumePersoan IdPersoana nu poate fi o dependen funcional deoarece
Prenumele unei persoane apare la mai multe persoane (idPersoana). Acelai lucru s-ar
putea ntmpla i cu dependea funcie IdPersoana, pot exista mai multe persoane
cu aceeai funcie.

Pentru exemplul de mai sus avem i urmtoarele dependene funcionale:

21
IdPersoana NumePersoana
IdPersoana PrenumePersoana
IdPersoana Salariu
NumePersoana, PrenumePersoana Funcie
Dac presupunem c pentru fiecare funcie este stabilit un salariu unic atunci Funcie
Salariu reprezint o dependen funcional.

Dependen funcional A B este total dac eliminarea oricrui atribut din A


conduce la eliminarea dependenei.

Dependena NumePersoana, PrenumePersoana Funcie este total deoarece


eliminnd pe oricare dintre atributele din stnga nu mai avem o dependen: Pop Maria
este profesor, iar Antim Maria este director; dac nlturm atributul NumePersoana
vom avea: Maria i pentru profesor i pentru director.

Dependen funcional A B este parial dependent dac exist cel puin un


atribut n A care poate fi eliminat astfel nct dependena s se menin.
Exemplu: Fie relaiile Personal i Departament
Personal
IdPersoana NumePersoana PrenumePersoana Functie Salariu Coddepartament
1 Pop Maria profesor 600 1
2 Avram Ion maistru 550 3
instructor
3 Ivan Felicia secretar 450 4
4 Popa Maria administrator 350 5

Departament
IdDepartamen NumeDepartamen LocatieDepartamen InteriorDepartamen
MailDepartament
t t t t
1 Cancelarie Cladirea A1 cancelarie@ctm.r 115
o
2 Magazie Cladirea A2 magazie@ctm.ro 113
3 Atelier Cladirea Atelier tehno@ctm.ro 114
4 Secretariat Cladirea A1 office@ctm.ro 111
5 Administratie Cladirea C1 admin@ctm.ro 112
6 Contabilitate Cladirea C1 conta@ctm.ro 116

IdPersoana, Functie IdDepartament este o dependen funcional parial, practic


fiecare persoan identificat prin IdPersoan aparine unui singur departament,
respectiv o funcie aparine de asemenea unui singur departament. Dac eliminm fie
IdPersoan sau Funcie dependena se menine.

Dependen tranzitiv
Dac avem o relaie R, iar A,B,C sunt atribute lui R care respect condiiile:
- A B i B C,
- A nu este dependent funcional de B i C
atunci A C se spune c C este dependent tranzitiv de A prin intermediul lui B.

22
Exemplu:
Condisernd relaiile din Personal i Departament descrise mai sus, avem:
IdPersoana CodDepartament
CodDepartament MailDepartament
Rezult c IdPersoana este dependent tranzitiv de MailDepartament

Dependen multivaloare
Considerm A, B, C, trei atribute ale relaiei R. Prin dependen multivaloare se nelege
o dependen dintre atributele A, B, C, prin care pentru fiecare valoare a atributului A
exist o mulime de valori a atributului B i o mulime de valori a atributului C.
Pentru descrierea unei dependene multivaloare dintre atributele A, B, C se folosete
notaia: A B i B C.

Exemplu:
Un elev studiaz mai multe discipline i pentru fiecare disciplin primete mai multe
note.
NumeElev IdDisciplina
IdDisciplinaNota

Dependen de tip uniune fr pierderi. O proprietate a operaiei de descompunere,


care garanteaz c nu se genereaz rnduri false atunci cnd relaiile sunt reunite
printr-o operaie de uniune natural.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
pot desfura n sal de curs sau n laboratorul de informatic, dotate cu
videoproiector, tabl/flipchart.

Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii
s identifice toate tipurile de dependene. n cazul lucrului pe grupe se vor face
comparaii ntre rezultatele obinute pe grupe, se vor analiza caracteristicile
dependinelor.

n ceea ce privete evaluarea / autoevaluarea se pot utiliza teste cu itemi de


tip mperechere, completare i alegere multipl, problematizare. Se va face
evaluare i transmitere de feedback pe parcursul activitilor de predare nvare.
Se pot da i teme integratoare de tip proiect, eseu.

23
Fia suport 3.2 Redundana datelor i anomalii de actualizare /
reactualizare

Unul dintre scopurile principale ale proiectrii bazelor de date este acela de a grupa
atributele n relaii, astfel nct s se minimizeze redundana datelor, deci s se
realizeze pe ct posibil reducerea spaiului de memorare alocat bazelor de date.

Fie relaia Vnzri cu urmtoarea structur:

Vnzri
Data PretArti
IdClie NumeCli AdresaCli TelefonCli IdComa CodArti NumeArti Cantita
Comand col
nt ent ent ent nda col col te
a
1 Pop Bucuresti 23344556 C1 10.10.2 1 Tastatura 25 120
Marin 7 008
2 Iorgu Iasi 34567889 C2 2.12.20 2 Mouse 12 200
Florin 08
3 Pop Bucuresti 88344556 C1 10.10.2 3 DVD 5 100
Marin 7 008
4 Avram Ploiesti 45324677 C3 12.12.2 4 Laptop 4000 25
Alin 008
5 Avram Ploiesti 34556666 C3 12.12.2 1 Tastatura 25 200
Alin 008

Observm c n aceast relaie avem date redundante precum:


- Numele Clientului, adresa sa i telefonul apar de ct ori acesta va face o comand
- Codul articolului, preul, precum i denumirea sa apar la fiecare comanda

Astfel pe lng aceast redundan a datelor mai pot apare i alte probleme, numite
anomalii de actualizare/reactualizare. Aceste anomalii sunt clasificate astfel: anomalii de
inserare, de tergere i de actualizare/modificare.

Anomalii de inserare. Aceste anomalii se refer la problemele cauzate la inserarea


datelor n cadrul relaiilor.
Dac analizm relaia de mai sus se constat urmtoarele:
pentru a insera detalii cu privire la clieni trebuie inserate i detalii cu privire la
comanda lui, precum i detalii cu privire la articolul comandat
dac s-ar dori inserarea unui client care nc nu a fcut o comand atunci ar
trebuie ca la atributele referitoare la comand s se introduc null-uri.

Anomalii de tergere. Aceste anomalii se refer la problemele cauzate la tergerea


datelor din cadrul relaiilor sau din bazele de date.
Dac se terge un rnd care reprezint o comand fcut de un client i acesta nu a
mai fcut i alt comand (este ultima comand fcut) atunci o dat cu tergerea sa
din tabel se vor pierde i datele despre acest client.
n cazul exemplului dat dac se terge rndul doi unde avem informaii comanda fcut
de clientul Iorgu Florin se vor pierde i informaiile referitoare la client.

24
Anomalii de modificare. Aceste anomalii se refer la problemele cauzate la
modificarea datelor din cadrul relaiilor sau din bazele de date.
Dac se dorete modificarea unor date care apar i n cadrul altor relaii sau tupluri este
de preferat ca modificrile fcute s se realizeze ntr-un singur loc, altfel pot aprea
privind corectitudinea.
n cazul exemplului dat dac se dorete modificarea datelor referitoare la un client
atunci acestea trebuie efectuate n toate tuplurile n care apare acel client. Astfel, pot
aprea probleme la tastare, ceea ce ar duce la un rezultate incorecte.

Aceste probleme ar putea fi rezolvate prin mprirea relaiei n patru relaii, fr


pierderea de informaii, astfel:
o relaie Client, cu detalii despre clieni,
o relaie Articol, cu detalii despre articole
o relaie Comanda, cu detalii despre comenzi
o relaie Vnzri, cu detalii despre vnzarea realizat

Client
IdClient NumeClient AdresaClient TelefonClient
1 Pop Marin Bucuresti 233445567
2 Iorgu Florin Iasi 34567889
3 Avram Alin Ploiesti 34556666
Articol
CodArticol NumeArticol PretArticol
1 Tastatura 25
2 Mouse 12
3 DVD 5
4 Laptop 4000
Comanda
IdComanda DataComanda CodClient
C1 10.10.2008 1
C2 2.12.2008 2
C3 12.12.2008 3
Vnzri
IdComanda IdArticol Cantitate
C1 1 120
C1 3 100
C2 2 200
C3 1 200
C3 4 25

25
Astfel se pot face actualizri de date ntr-un singur loc, dac se terge o
comand datele despre client nu se pierd, iar inserarea de date se face
independent.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
pot desfura n sal de curs sau n laboratorul de informatic, dotate cu
videoproiector, tabl/flipchart.

Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii
s identifice toate tipurile de anomalii generate de redundana datelor. n cazul
lucrului pe grupe se vor face comparaii ntre rezultatele obinute pe grupe, se vor
analiza anomaliile prezente n exerciiile date.

n ceea ce privete evaluarea / autoevaluarea se pot utiliza teste cu itemi de


tip problematizare. Se va face evaluare i transmitere de feedback pe parcursul
activitilor de predare nvare.

26
Fia suport 3.3 Forme normale (1NF, 2NF, 3NF, 4NF, 5NF)1

n teoria bazelor de date sunt cunoscute un numr de cinci forme normale.


Normalizarea unei baze de date presupune n general o serie de pai care corespuns
unei forme normale. Pe msur ce se realizeaz normalizarea relaiile devin mai
restrictive fiind astfel mai puin vulnerabile la anomalii.
n ceea ce privete modelul relaional este foarte important cunoaterea i utilizarea
primei forme normale, celelalte de multe ori fiind opionale. Se recomand ns
normalizarea pn la forma a treia.

nainte de prima rafinare a relaiilor acestea se gsesc n aa numita forma


neformalizat, form ce conine unul sau mai multe grupuri repetitive.

Prima form normal se caracterizeaz prin faptul c n cadrul relaiei


reprezentat printr-un tabel la intersecia fiecrei linii/fiecrui rnd cu fiecare coloan se
regsete o singur celula ce conine o singur valoare.

Pentru a obine o relaie n prima form normal se pornete de la informaia brut i se


caut structurarea acesteia n forma unui tabel. Astfel se ncearc s se elimine
grupurile repetitive i se creeaz coloane adecvate informaiei astfel nct la intersecia
liniei cu coloana s se gseasc valori atomice.
Ulterior se nominalizeaz un atribut sau un grup de atribute care s reprezinte o cheie a
tabelului nenormalizat, dup care se elimin grupurile repetitive prin crearea unui nou
tabel n care sunt specificate datele care se repet mpreun cu o copie a
atributului/atributelor care formau cheia tabelului iniial.
Acest algorimt se reia pn cnd nu mai exist informatie care se repet. Dac nu mai
sunt grupruri care se repet atunci baza de date se afl n prima form normal.

Exemplu: fie relaia Elev


Elev
IdEle NumeEle Prenume
DataNasterii Telefon1 Telefon2 Adresa Materia Nota
v v Elev
1 Popescu Ionut 19.02.1990 223345 0723455667 Romania, Informatica 9
Bucuresti, Str.
Unirii, nr. 2
2 Popescu Ionut 19.02.1990 223345 0723455667 Romania, Matematic 8
Bucuresti, Str. a
Unirii, nr. 2
3 Avram Mircea 02.04.1991 345124 0723456789 Romania, Informatica 7
Bucuresti, Str.
Jiului, nr.34
4 Avram Mircea 02.04.1991 345124 0723456789 Romania, 8
Bucuresti, Str. Matematic
Jiului, nr.34 a

1
Aceast fi poate face obiectul predrii orelor alocate pentru laborator, alocate
modulului.

27
Analiznd aceast relaie se constat c fiecare elev poate avea mai multe numere de
telefon, prin urmare informaia se repet i deci poate fi rafinat prin mprirea n dou
tabele confom urmtorului algoritm:
1. se nlocuiesc n tabel coloanele corespunztoare atributelor compuse cu
coaloane ce conin componentele elementare ale acestora
2. se plaseaz grupurile care se repet ntr-un nou tabel
3. se introduce n noul tabel cheia primar a tabelului din care am extras atributele,
cheie care devine cheie strin n noul tabel.
4. Se restabilesc cheile primare ale noilor tabele

Telefon elev
Idtelefon IdElev Telefon IdEle NumeEle Prenum Data
Adresa Materia Nota
1 1 223345 v v eElev Nasterii
2 1 0723455667 1 Popescu Ionut 19.02.1990 Romania, Informatica 9
Bucuresti, Str.
3 3 345124 Unirii, nr. 2
4 3 0723456789 2 Popescu Ionut 19.02.1990 Romania, Matematica 8
Bucuresti, Str.
Unirii, nr. 2
Am obinut astfel prima 3 Avram Mircea 02.04.1991 Romania, Informatica 7
form normal. Aceasta Bucuresti, Str.
este o cerin minim a Jiului, nr.34
tuturor sistemelor 4 Avram Mircea 02.04.1991 Romania, 8
relaionale. Relaiile Bucuresti, Str. Matematica
aflate n prima form Jiului, nr.34
normal permit o referire simpl a datelor prin indicarea numelui relaiei/tabelului, a
coloanei i a cheii rndului din care face parte informaia respectiv.

A doua form normal


O relaie R este n a doua form normal dac:
1. Este n prima form normal: 1NF
2. Orice coloan care depinde parial de o cheie a lui R este inclus n acea cheie.
Cu alte cuvinte fiecare atribut care nu este cheie primar este total dependent funcional
de cheia primar.

A doua form normal se aplic relaiilor cu chei compuse, adic acelor relaii n care
cheia primar este compus din dou sau mai multe atribute. Dac o relaie are cheia
primar format dintr-un singur atribut se consider c este n a doua form nornal
2NF. Dac relaia nu este n 2NF atunci pot apare anomalii la introducerea/actualizarea
datelor.
Exemplu:
Fie relaia Elev n care pentru fiecare elev este menipronat clasa n care elevul este
nscris prin dou atribute: CodClasa i SpecializareClasa.

Elev
IdEle NumeEle PrenumeEl DataNaster Not CodCla SpecializareCl
Adresa Materia
v v ev ii a sa asa
1 Popescu Ionut 19.02.1990 Romania, Informati 9 9A Mate-info
Bucuresti, ca
Str. Unirii, nr.

28
Elev
IdEle NumeEle PrenumeEl DataNaster Not CodCla SpecializareCl
Adresa Materia
v v ev ii a sa asa
2
2 Popescu Ionut 19.02.1990 Romania, Matemati 8 9A Mate-Info
Bucuresti, ca
Str. Unirii, nr.
2
3 Avram Mircea 02.04.1991 Romania, Informati 7 9B Filologie
Bucuresti, ca
Str. Jiului,
nr.34
4 Avram Mircea 02.04.1991 Romania, 8 9B Filologie
Bucuresti, Matemati
Str. Jiului, ca
nr.34

Dac se va modifica Specializarea unei clase atunci vor trebui actualizate nu numr de
rnduri egal cu numrul de elevi nscrii n clasa respectiv. Dac cel puin unu nu este
modificat atunci apare o anomalie la actualizarea datelor. Prin urmare Specializarea
unei clase depinde de IdElev i CodClase, adic nu este total dependent de cheia
primara care este IDElev.

Prin urmare acest tabel va fi descompus ntr-un tabel ce memoreaz date despre elevi
i unul care memoreaz date despre clase. n ambele tabele se va pstra un atribut
CodClasa. Acesta este cheie primar n tabelul ce memoreaz clasele i cheie strin
n cel pentru elevi.

A treia form normal


Dei relaiile 2NF conin mai puin redundan dect cele n forma 1NF tot mai pot
apare anomalii n procesul de actualizare a datelor.

O relaie se afl n a treia form normal dac se afl n prima i a doua i niciun
atribut care nu este cheie primar nu este dependent tranzitiv de cheia primar.

Normalizarea relaiilor care se afl n 2NF la 3NF presupune deci eliminarea


dependenelor tranzitive.

Un algoritm pentru rafinarea bazei de la n 3FN


1. Pentru fiecare dependen funcional ABC, unde A i B nu sunt neaprat
disjjuncte, se transfer coloanele X i Y ntr-un nou tabel.
2. Se determin cheia primar a fiecrui nou tabel creat la pasul 1, aceasta fiind
creat din coloanele lui X.
3. Se elimin din tabelul principal coloanele din Y.
4. Dac coloanele rezultate conin alte dependene transitive se reia algoritmul de
la pasul 1.

Forma normal Boyce Codd (BCNF)


Formele normale 2NF i 3NF trateaz existena dependenelor pariale i transitive de
cheia primar. Exist ns i anomalii care pot apare ca urmare a existenei

29
dependenelor funcionale pariale sau tranzitive pentru alte chei candidat (atribute sau
grup de atribute care identific n mod unic fiecare tuplu dintr-o relaie).

Forma normal Boyce Codd trateaz dependenele funcionale care pot exista ntre
toate cheile candidat ale unei relaii i alte atribute. Dac o relaie are o singur cheie
candidat care este cheie primar atunci formele 3NF i BCNF sunt echivalente.

Se spune c o relaie se afl n forma normal Boyce Codd dac i numai dac
fiecare determinant este o cheie candidat.

Un algoritm pentru aducerea n BCNF a unei relaii R aflate n 3NF poate fi definit astfel:
1. Pentru fiecare dependen non-cheie AB unde A i B sunt subseturi de atribute
ale lui R, se creeaz dou relaii. Una dintre ele va conine atributele A i B, iar
cealalt va fi format din toate atributele lui R din care se elimin atributul B.
2. Dac relaiile obinute conin alte dependene non-cheie se reia pasul 1.

A patra form normal


Cu toate c forma normal Boyce Codd elimin toate anomaliile datorate
dependenelor funcionale dependenele multivalorice pot conduce la redundaa datelor.

De exemplu, dac ntr-o relaie exist atribute multi-valorice, trebuie s repetm fiecare
valoare a unuia dintre atribute, mpreun cu toate atributele celuilalt, pentru a ne
asigura c rndurile relaiei sunt coerente.

S considerm relaia Clasa_Elevi_Profesori unde reinem pentru fiecare clas elevii i


profesorii din clasa respectiv.

Clase_Elevi_Profesori
IdClas NumeElev NumeProfesor
1 Popa Stan Marin
Maria
1 Ion Ion Stan Marin
1 Popa Stoian Ioana
Maria
1 Ion Ion Stoian Ioana

Constatm c relaia pentru clasa 1 unde sunt introdui 2 elevi lucreaz cu doi
profesori. Prin urmare apare o constrngere numit dependen multivaloare deoarece
aceast relaie conine dou relaii de tip m:n independente unele de altele.

O relaie care se afl n BCNFA i nu conine dependene multifuncionale este n forma


a patra normal.

Normalizarea unei relaii de la BCNFA la 4NF presupune eliminarea dependenelor


multivaloare din cadrul acesteia, prin plasarea atributului (atributelor) ntr-o nou relaie,
la un loc cu determinantul (determinanii).

Astfel, pentru exemplul dat vom avea dou relaii dup cum urmeaz:

30
Clase_Elevi
IdClas
NumeElev

1 Popa Maria
1 Ion Ion Clase_Profesori
IdClas NumeProfesor
1 Stan Marin
1 Stoian Ioana

Algoritm pentru obinerea 4NF. Fie relaia R, atunci:


1. Se identific toate dependenele multivaloare X Y pentru care X i Y nu
conin toate coloanele lui R i X nu conine nicio cheie a lui R.
2. Se nlocuiete relaia R cu dou relaii, prima format din coloanele {X,Y}, iar
cealalt din coloanele iniiale mai puin Y.
3. Dac relaiile obinute mai conin dependene multivaloare, algoritmul se reia,
altfel se termin.

A cincea form normal


Se ntlnete destul de rar, avnd o valoare mai mult teoretic specific faptul c o
relaie nu conine nicio dependen de tip uniune. Atfel spus obinerea 5NF are ca scop
eliminarea relaiilor relaiilor de tip n:m dependente spre deosebire de forma normal 4
care elimina relaiile n:m independente.

S presupunem c avem urmtoarea situaie: la o clas predau mai muli profesori, iar fiecare
profesor poate preda mai multe discipline. Pentru a reine aceasta situaie am putea crea relaia:
Clase_Profesori_Discipline
IdClasa NumeProfesor IdDisciplin
1 Popa Maria D1
1 Pop Valentin D4
1 Ion Ion D2
2 Ion Ion D4
2 Ionescu Vasile D5
3 Ionescu Vasile D6
3 Popa Maria D2

Constatm c dac am crea dou relaii n care s reinem profesorii ncadrai la o clas
i alta n care s reinem disciplinele specifice fiecrei clas nu putem ti cine pred
aceste discipline. Altfel spus aceste dou relaii n:m sunt dependente. Se poate observa
c la clasa 1 disciplina D2 o pred Ion Ion dar ar putea s-o predea i Popa Maria.

Deci descompunerea acestei relaii n dou relaii conduce la pierderea de informaie.


Unirea ulterioar a celor dou relaii nu va conduce la obinerea relaiei iniiale. Acesta
este un exemplu de dependen de tip uniune cu pierderi.
A cincea form normal - 5FN - o relaie care nu are nicio dependen de tip uniune.

Prin urmare pentru a elimina redundaa datelor relaia trebuie descompus n trei relaii:
Clase_profesori (IdClasa, NumeProfesor)
Clase_Discipline (IdClasa, IdDisciplin)
31
Clase_Profesori (NumeProfesor, IdDisciplina)

Clase_Profesori Clase_Discipline Profesori_Discipline


IdClas IdClas NumeProfeso IdDisciplin
NumeProfesor IdDisciplin
a a r
1 Popa Maria 1 D1 Popa Maria D1
1 Pop Valentin 1 D4 Pop Valentin D4
1 Ion Ion 1 D2 Ion Ion D2
2 Ion Ion 2 D4 Ion Ion D4
2 Ionescu Vasile 2 D5 Ionescu Vasile D5
3 Ionescu Vasile 3 D6 Ionescu Vasile D6
3 Popa Maria 3 D2 Popa Maria D2

Orice relaie poate fi descompus fr pierderi de informaie ntr-o mulime de relaii


care sunt n 5FN. Se garanteaz faptul c o relaie n 5FN nu conine anomalii ce pot fi
eliminate lund proieciile pe diferite submulini ale acestuia.
Concluzii:
Normalizarea este procesul de transformare a structurilor de date i are ca scop
eliminarea redundanelor i promovarea integritii datelor. Normalizarea reprezint un
element de baz al bazelor de date, n general, un set de structuri de date nu sunt
considerate relaionale dect dac sunt complet normalizate.

Procesul de normalizare poate fi reprezentat printr-un algoritm cu ase pai astfel:


Pasul 1: eliminarea dependenelor funcionale pariale 1NF 2NF
Pasul 2: eliminarea dependenelor funcionale tranzitive 2NF 3NF
Pasul 3: eliminarea dependenelor funcionale pentru care determinantul nu este cheie
3NF BCNF
Pasul 4: eliminarea dependenelor multivaloare care nu sunt dependene funcionale
BCNF 4NF
Pasul 5: eliminarea dependenelor de tip uniune 4NF 5NF

Pentru simplificarea codului, creterea performanei programelor de aplicaie i al


accesului la date de multe ori este folosit i procesul invers de denormalizare.
Denormalizarea are loc dup ce baza de date a fost normalizat i se face prin
operaiile relaionale (selecie, uniune) fiind nsoit de introducerea unor msuri
suplimentare care s asigure integritatea datelor i a bazei de date.

32
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii
s identifice i s trateze toate formele normale. n cazul lucrului pe grupe se vor
face comparaii ntre rezultatele obinute pe grupe, se vor analiza caracteristicile
bazelor de date nainte i dup normalizare.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de


tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor
executa efectiv normalizarea bazelor de date folosind un sistem de gestiunea
bazelor de date. Se va face evaluare i transmitere de feedback pe parcursul
activitilor de predare nvare. Se pot da i teme integratoare de tip proiect,
eseu.

33
Tema 4 Proiectarea bazelor de date
Fia suport 4.1 Proiectarea conceptual a bazelor de date

Prin proiectarea conceptual a unei baze de date se nelege procesul de


constituire a unui model al informaiilor utilizate n cadrul unui sistem informaional, al
unei companii, independent de toate consideraiile de ordin fizic (sistemul de gestiune al
bazelor de date, programele de aplicaie, platforma hardware utilizat). Acest proces
are ca obiectiv principal identificarea tipurilor importante de entiti i relaiile care se
stabilesc ntre acestea.

Proiectarea conceptual reprezint primul pas n proiectarea unei baze de date,


constnd n realizarea unor modele de date conceptuale pentru fiecare vedere (datele
necesare unui utilizator n rezolvarea unei sarcini) a utilizatorului. Un utilizator poate fi o
persoan sau un grup de persoane care utilizeaz n mod direct sistemul informatic. n
acest sens vederea unui utilizator poate fi o zon funcional precum activitatea unui
departament: producia, contabilitatea, personal etc.

Pentru determinarea vederilor utilizatorilor se realizeaz o analiz a fluxurilor de date,


procedurilor stabilite, rapoarte, formulare specifice. Pentru modelarea fiecrei vederi se
vor stabili: tipurile de entiti, tipurile de relaii, atributele, cheile (candidat i primare).

n cadrul etapei de proiectare conceptual a bazei de date se pot evidenia urmtorii


pai:
1. Identificarea tipurilor de entiti
2. Identificarea tipurilor de relaii
3. Identificarea i asocierea atributelor cu tipurile de entiti sau relaii
4. Determinarea domeniilor atributelor
5. Determinarea atributelor cheilor candidat i primare
6. Specializarea-generalizarea tipurilor de entiti (opional)
7. Desenarea diagramei entitate-relaie
8. Validarea de ctre utilizator a modelului de date conceptual

Identificarea tipurilor de entiti const n definirea principalelor obiecte care pot


prezenta interes pentru utilizator, a obiectivelor utilizatorilor (conceptele de interes).

Exemplu: n cadrul crerii unui sistem pentru informatizarea activitii de gestiune a


elevilor i profesorilor dintr-o unitate colar putem identifica o vedere pentru crearea
sistemului de clase dintr-un an colar. n acest sens trebuie creat anul colar,
introducerea claselor i a elevilor. Putem grupa toate datele de identificarea ale elevilor
ntr-o entitate numit Elevi, toate informaiile despre clase ntr-o entitate numit Clase,
toate datele despre anii colari ntr-o entitate numit AniDeStudiu.

Pe msur ce entitile sunt descoperite li se atribuie denumiri semnificative. Aceste


denumiri precum i o descriere a lor sunt menionate ntr-un dicionar de date.

Identificarea tipurilor de relaii. O dat identificate entitile, n urmtoarea etap se


vor identifica relaiile dintre acestea.

Pentru exemplul dat putem identifica:


34
AniDeStudiu are Clase
Clase are Elevi
Elevi dau EleviExamene
Clase apartin Specializari

n aceast etap trebuie identificate toate relaiile care pot apare ntre entiti precum i
cardinalitatea fiecrei relaii, care poate fi: unu-la unu (1:1), unu-la-muli (1:n), muli-la-
muli (m:n). Aceste relaii se vor documenta i ele precum entitile n cadrul
dicionarului de date. De asemenea se vor identifica i constrngerile de participare.

Exemplu de relaii:

Exemplu de relaie 1:1

Exemplu de relaie 1:n

35
Dup ce au fost identificate entitile i relaiile dintre acestea se vor identifica i
asocia atributele i domeniile acestora. Aceast etap decide ce fel de informaii
memorm n entiti Ce fel de informaii trebuie s pstrm despre .....?.

n cazul sistemului realizat pentru entitatea Elev au fost identificate urmtoarele atribute:
NumeElev, PrenumeElev, InitialaElev, BISerie, BINr, CNP, NrMatricol, ZiNastere,
LunaNastere, AnNastere, LocalitateNastere, Jud/Sector, Tara, Sex, Nationalitate,
StareElev, DataInscrierii, DataTerminarii, NumeTata, NumeMama, DomiciliuElev,
DomiciliuParinti, Limba1, Limba2, Categorie, Picture, Observatii.

Acestea pot fi: simple, compuse sau derivate.


Simple: NumeElev, PrenumeElev
Compuse: DomiciliuElev, DomiciliuParinti.
Derivate: ZiNastere, LunaNastere, AnNastere, Sex (ele fiind calculate din CNP).

Pentru fiecare atribut identificat se nregistreaz urmtoarele informaii:


- denumirea i descrierea atributului
- aliasuri/sinonime cunoscute ale atributului
- tipul de date i lungimea
- valorile prestabilite ale atributului
- acceptarea/neacceptarea de null-uri
- dac atributul este compus sau nu
- dac atributul este derivat sau nu i n caz afirmativ cum trebuie calculat
- dac atributul are valori multiple

n ceea ce privete domeniul atributelor se va specifica pentru fiecare urmtoarele:


- setul de valori permise pentru fiecare atribut
- dimensiunile i formatele atributelor
Aceste informaii se vor nregistra n dicionarul de date.

Pentru exemplul prezentat, entitatea Elevi, atributele IdElev, NumeElev, InitialaElev i


PrenumeElev, n dicionarul de date sunt nregistrate urmtoarele informaii:
Columns
Name Type Size
IDElev Long Integer 4
AllowZeroLength: False
AppendOnly: False
Attributes: Fixed Size; Auto-Increment
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
GUID: {guid {0F81B463-A92D-11D7-A6EE-0060B0C2D358}}
OrdinalPosition: 0
Required: False
SourceField: IDElev
SourceTable: tabElevi

NumeElev Text 50
AllowZeroLength: True
AppendOnly: False
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
DisplayControl: Text Box
GUID: {guid {0F81B464-A92D-11D7-A6EE-0060B0C2D358}}

36
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: False
SourceField: NumeElev
SourceTable: tabElevi
UnicodeCompression: True

InitialaElev Text 3
AllowZeroLength: True
AppendOnly: False
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
DisplayControl: Text Box
GUID: {guid {0F81B465-A92D-11D7-A6EE-0060B0C2D358}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: False
SourceField: InitialaElev
SourceTable: tabElevi
UnicodeCompression: True

PrenumeElev Text 50
AllowZeroLength: True
AppendOnly: False
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: 2610
DataUpdatable: False
DisplayControl: Text Box
GUID: {guid {0F81B466-A92D-11D7-A6EE-0060B0C2D358}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: False
SourceField: PrenumeElev
SourceTable: tabElevi
UnicodeCompression: True

Identificarea cheilor candidat are ca scop final determinarea cheii primare, cheie care
identific n mod unic fiecare nregistrare a entitii. Se pot identifica mai multe chei
candidat. Pentru alegerea cheii primare din setul de chei candidat identificate se va
recurge la :
- alegerea chieii candidat cu setul minim de atribute
- alegerea cheii candidat cu probabilitatea cea mai mic de modificare a valorilor
- alegerea cheii candidat cu probabilitatea cea mai mic de pierdere a unicitii
- alegerea cheii candidat cu cele mai puine caractere i cel mai uor de utilizat de ctre
utilizator.
Cheile primare i cele alternative (dac exist) se nregistreaz n dicionarul de date.

Opional, cand este adecvat se poate realiza i specializarea/generalizarea tipurilor


de entiti. n aceast etap se identific entitile superclas i subclas.
Reprezentarea modelului entitate relaie se poate face fie prin specializare, fie prin
generalizare. n oricare dintre ele se va ncerca a se reprezenta entitile importante i
relaiile dintre acestea.

Desenarea diagramei se realizeaz pentru o anumit vedere a utilizatorului asupra


sistemului.

37
Validarea de ctre utilizator a modelului de date conceptual este util pentru a garanta
c modelul este o reprezentare a punctului de vedere al utilizatorului.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale
pentru care se genereaz baze de date, proiectarea conceptual cu tot ce
presupune ea.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi


obiectivi, semiobiectivi, de tip problematizare. Se vor utiliza de asemenea probe
practice n care elevii vor executa efectiv proiectarea conceptual a bazelor de
date. Se va face evaluare i transmitere de feedback pe parcursul activitilor de
predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

38
Fia suport 4.2 Proiectarea logic a bazelor de date

Proiectarea logic a bazelor de date este procesul de constituire a unui model al


informaiilor utilizate n cadrul sistemului informaional al companiei, bazat pe un anumit
model de date, dar independent de sistemul de gestiune al bazelor de date, precum i
de alte consideraii de ordin fizic.

Principalele etape ale proiectrii logice a bazelor de date cuprind:


- constituirea i validarea unui model de date logic local pentru fiecare vedere a
utilizatorului
- constituirea i validarea unui model de date logic global

n etapa de constituire i validare a modelului logic local se va urmri obinerea unui


model al tuturor vederilor utilizatorului care s fie corect i cuprinztor.
Pentru asigurarea acestor obiective se vor parcurge urmtorii pai:
1. Transpunerea modelului de date conceptual local n modelul de date logic local:
2. Extragerea relaiilor
3. Validarea modelului prin normalizarea relaiilor
4. Validarea modelului conform tranzaciilor utilizatorului
5. Desenarea diagramei entitate relaie
6. Definirea constrngerilor de integritate
7. Validarea modelului mpreun cu utilizatorul

Fa de cele de mai sus putem spune c activitile asociate rafinrii unui model de
date conceptual pentru a obine un model de date logic includ: eliminarea relaiilor de tip
n:m, eliminarea relaiilor complexe, eliminarea relaiilor recursive, eliminarea relaiilor cu
atribute, eliminarea atributelor cu valori multiple, reexaminarea relaiilor de tip 1:1 i
eliminarea relaiilor redundante.

n ceea ce privete extragerea relaiilor se vor identifica relaiile tari i slabe, relaiile
binare (1:1 i 1:n), relaii de tip superclas/subclas i se vor documenta relaiile i
atributele cheilor strine.

Modelul de date logic poate fi validat prin utilizarea tehnicii de normalizare i conform
tranzaciilor pe care trebuie s le accespte acesta. Normalizarea este utilizat pentru a
mbunti modelul, astfel nct acesta s satisfac diversele constrnderi care evit
dublarea inutil a datelor. Prin normalizare se garanteaz c modelul utilizat este
coerent i are o redundan minim i o stabilitate maxim.

Pentru a proteja datele din cadrul unei vederi se vor considera urmatoarele tipuri de
constrngeri de integritate:
- datele cerute
- domeniile atributelor
- integritatea atributelor
- integritatea referenial
- constrngerile impuse de companie

n etapa de constituire i validare a modelului logic global se vor efectua operaii


precum:
- mbinarea modelelor de date logice locale n modelul global
- validarea modelului de date global
39
- verificarea n vederea dezvoltrii viitoare
- desenarea diagramei entitate relaie finale
- validarea modelului mpreun cu utilizatorul

Pentru mbinarea modelelor de date logice locale n vederea obinerii modelului global
pot avea loc revizuiri de denumire ale entitilor, atributelor, relaiilor. Se pot mbina
entiti sau relaii, se pot aduga alte entiti sau relaii, au loc verificri ale cheilor
primare, strine, se verific constrngerile i se reactualizeaz documentaia.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale
pentru care se genereaz baze de date, proiectarea logic cu tot ce presupune ea.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi


obiectivi, semiobiectivi, de tip problematizare. Se vor utiliza de asemenea probe
practice n care elevii vor executa efectiv proiectarea logic a bazelor de date. Se
va face evaluare i transmitere de feedback pe parcursul activitilor de predare
nvare. Se pot da i teme integratoare de tip proiect, eseu.

40
Fia suport 4.3 Proiectarea fizic a bazelor de date

Proiectarea fizic presupune realizarea unei descrieri a implementrii bazei de date ntr-
o capacitate de stocare secundar. n cadrul acestui proces se descriu structurile de
stocare i metodele de acces utilizate pentru obinerea unui acces eficient la date.

Etapele proiectrii fizice a bazelor de date sunt:


I. Adaptarea modelului de date logic global pentru SBGD-ul int
a. Proiectarea relaiilor de baz pentru SGBD-ul int
b. Proiectarea constrngerilor companiei pentru SGBD-ul int
II. Proiectarea reprezentrii fizice
a. Analizarea tranzaciilor
b. Alegerea organizrii fiierelor
c. Alegerea indexurilor secundare
d. Controlarea redundanei
e. Estimarea cerinelor privind spaiul de memorie
III. Proiectarea mecanismelor de securitate
a. Proiectarea vederilor utilizatorilor
b. Proiectarea regulilor de acces
IV. Monitorizarea i reglarea sistemului operaional

La pasul I se vor transforma relaiile extrase din modelul logic global ntr-o form care
s poat fi implementat n sistemul de gestiune a bazelor de date utilizat. n acest sens
se vor verifica urmtoarele elemente:
- dac sistemul accept definirea cheilor primare, strine i alternative
- dac sistemul accept definirea datelor necesare (ex.: atribute not null)
- dac sistemul accept definirea domeniilor identificate
- dac sistemul accept definirea constrngerilor companiei
- cum se creeaz relaiile de baz.

Pe parcursul proiectrii fizice se utilizeaz elementele definite n dicionarul de date. n


acest sens pentru fiecare relaie identificat n proiectarea logic se va defini relaia de
baz cu urmtoarele elemente: denumirea relaiei, o list cu atributele simple (ntre
paranteze), cheia primar, alternativ, strin (unde e cazul), constrngerile de
integritate corespunztoare cheilor strine identificate. Pentru fiecare atribut se vor
folosi informaii (din dicionarul de date) precum: domeniul acestuia, valoarea
prestabilit (dac este cazul), dac atributul conine null-uri, dac este derivat i n caz
afirmativ formula de calcul.

Constrngerile companiei depind de facilitile oferite de SGBD. De asemenea aceste


constrngeri pot fi realizate i n cadrul programelor care alctuiesc sistemul informatic.

n cadrul proiectrii reprezentrii fizice se determin organizarea fiierelor, metodele de


acces la datele din baza de date astfel nct s se asigure stocarea datelor ct mai
eficient att ca spaiu ct i ca mod de acces. Pentru a asigura eficiena maxim se
vor analiza urmtorii factori: transferul tranzaciilor (numrul de tranzacii ntr-un interval
de timp), timpul de rspuns (timpul scurs pn la ncheierea unei tranzacii),
posibilitatea mbuntirii performanelor prin introducerea de indexuri secundare i
capacitatea de stocare pe disc.

41
De asemenea se va ine cont i de resursele hardware ale sistemului: memoria intern,
CPU, capacitatea de stocare, reeau de calculatoare.

n ceea ce privete asigurarea securitii se vor proiecta sisteme de securitate conform


cerinelor companiei. n acest sens se vor proiecta vederile utilizatorilor aa cum au fost
identificate n proiectarea conceptual i reguli de acces pentru utilizatorii sistemului
informatic.

Din punct de vedere al monitorizrii i reglrii sistemului operaional se vor analiza


posibilitile de obinere a performanelor maxime i de a reflecta ct mai facil cerinele
companiei.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale
pentru care se genereaz baze de date, proiectarea fizic cu tot ce presupune ea.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi


obiectivi, semiobiectivi, de tip problematizare. Se vor utiliza de asemenea probe
practice n care elevii vor executa efectiv proiectarea fizic a bazelor de date. Se va
face evaluare i transmitere de feedback pe parcursul activitilor de predare
nvare. Se pot da i teme integratoare de tip proiect, eseu.

42
Tema 5 Sisteme de gestiune a bazelor de date
Fia suport 5 Sisteme de gestiune a bazelor de date

Sistemul de gestiune a bazelor de date const ntr-un pachet software care


asigur interaciunea dintre programele de aplicaie ale utilizatorului i baza de date.

Sistemele de gestiune a bazelor de date ofer utilizatorilor urmtoarele faciliti:


instrumete pentru definirea bazelor de date: limbaj de descriere a datelor (DDL)
instrumente pentru manipularea datelor: limbaje (procedurale i neprocedurale)
pentru manipularea datelor (DML)
acces controlat la date prin: sisteme de securitate, sisteme care asigur
integritatea datelor, sisteme de control al concurenei, sisteme de restaurare n
caz de avarie.
Instrumente de vizualizare prin limbajul de descriere a datelor se pot descrie
moduri de vizualizare a datelor. Astfel, utilizatorii i pot descrie propriul mod de
vizualizare a datelor asigurnd astfel un anumit grad de securitate datelor, o
personalizare a aspectului bazei de date i o imagine coerent a structurii bazei
de date.

n figura de mai jos este ilustrat un exemplu de tratare prin baze de date. Figura
ilustreaz cum departamentul secretariat i contabilitate i utilizeaz programele de
aplicaie proprii pentru a accesa baza de date prin intermediul sistemului de gestiune a
bazelor de date.

Intrri/ieiri

Baza de
Secretariat SGBD date

Intrri/ieiri

Contabilitate

Figura 1 - Prelucrarea datelor din bazele de date

Componentele unui SGBD

innd cont c un sistem de gestiune a bazelor de date este un mecanism computerizat


de meninere a evidenei unei anumite activiti, folosind sistemul de baze de date
componentele acestuia sunt:
43
Hardware
Software
Date
Proceduri
Persoane

Hardware. Sistemele de baze de date sunt instalate, de regul, pe calculatoare PC


standard, pn la staii multiprocesor puternice. Performanele generale de operare ale
calculatorului (numrul i viteza procesoarelor, dimensiunea i viteza de operare a
memoriei principale etc.) influeneaz n mod corespunztor performanele sistemului
de baze de date. Elementele specifice de hardware depind i de sistemul de baze de
date utilizat dar i de cerinele organizaiei. Unele sistemele de baze de date necesit
un anumit tip de hardware sau de sistem de operare, n timp ce altele pot funciona pe o
diversitate de elemente hardware i platforme.
Dar, ceea ce intereseaz n mod deosebit n utilizarea unui calculator pentru un sistem
de baze de date, este capacitatea memoriei interne, viteza procesorului i spaiul de pe
disc.

n cadrul unei instituii de nvmnt poate fi definit urmtoarea configuraie hardware


pentru baza de date ce conine date despre elevii i profesorii din aceast instituie:

Secretar 1 Administrator

Server de
Secretariat baze de date Administraie
Secretar 2
Pedagog

Secretar 3

Contabil 1

Baza
Catedra 1 de date
Cancelarie Contabilitate

Contabil 2

Catedra 2

Figur 2 - Configuraia hardware pentru baza de date a unei instituii de nvmnt

Configuraia prezentat n figura 2 conine un server de date pe care se afl baza de


date i programele care administreaz i controleaz accesul la baza de date i alte
PC-uri aflate n diverse locaii/departamente pe care se afl aplicaiile utilizatorilor.
Aceast arhitectura poart denumirea de client-server.

Software. Aceast component conine programele SGBD-ului, programele aplicaiei i


sistemul de operare (de pe staii sau dac este cazul dintr-o reea). Programele
aplicaiei sunt scrise n limbaje de programare cum ar fi: Visual Basic,Visual C++, Java

44
etc. SGBD-uile pot avea propriile instrumente care permit dezvoltarea rapid de
aplicaii.

Datele memorate ntr-o baz de date sunt date persistente, adic date care rmn
memorate pe suport magnetic, independent de execuia programelor de aplicaii. Datele
persistente ale unei baze de date se introduc, se terg sau se actualizeaz folosind
date de intrare (provenite de la tastatur, din citirea unor fiiere de date sau din
recepionarea unor mesaje). Datele de intrare sunt, n general, date nepersistente; ele
sunt generate de utilizatori i sunt memorate (devenind date persistente) numai dup ce
au fost validate (acceptate) de ctre SGBD. Datele de ieire ale unui sistem de baze de
date sunt, de asemenea, date nepersistente; ele provin din operaii de interogare a
bazei de date i sunt puse la dispoziia utilizatorului (sub form de afiri, rapoarte
tiprite, etc).

Procedurile se refer la instruciunile i regulile ce permit proiectarea i utilizarea bazei


de date. Utilizatorii unui SGBD au nevoie de proceduri cum ar fi:
- descrierea unei sesiuni de lucru
- pornirea, identificarea n sistem i oprirea SGBD-ului
- efectuarea de copii de siguran
- restaurarea bazei de date etc.

Persoanele care sunt implicate n lucru cu bazele de date i SGBD-urile pot fi:
adiministratorii bazei de date, proiectanii bazei de date, programatorii de aplicaii,
operatorii/utilizatorii finali.

Administratorul bazei de date este o persoan (sau un grup de persoane) cu nalt


calificare tehnic care are ca sarcin meninerea funcionalitii bazei de date prin
stabilirea drepturilor de acces ale diferitelor categorii de utilizatori, prin efectuarea
operaiilor periodice de salvare a datelor (backup), prin monitorizarea performanelor
sistemului i refacerea datelor atunci cnd este necesar.

Proiectanii bazei de date realizeaz analiza organizaiei i identific datele, relaiile


dintre acestea i constrngeri asupra acelor date care vor fi stocate n baza de date.

Programatorii de aplicaii sunt cei care dezvolt aplicaiile de baze de date, folosind
limbaje de programare de nivel nalt (C++, Java, Basic etc.) i biblioteci care permit
ncorporarea operaiilor de acces la baza de date.

Utilizatorii finali sunt acei utilizatori care acceseaz baza de date prin intermediul unui
program de aplicaie care le confer drepturi limitate de acces la date pentru anumite
operaii de prelucrare. Utilizatorii finali sunt persoane cu pregtire tehnic minimal,
care efectueaz un volum mare de operaii asupra bazei de date, dar nu trebuie s
cunoasc mai mult dect posibilitile oferite de programul pe care l utilizeaz. De
exemplu, utilizatorii finali ai unei aplicaii de gestiuune a elevilor dintr-o coal (colegiu
tehnic) pot fi secretarele care efectueaz un numr mare de operaii asupra datelor din
sistem (introducerea elevilor, introducerea situaiilor colare, organizarea examenelor
de absolvire, tiprirea diplomelor de absolvire, situaii statistice etc.), fr a fi necesar s
cunoasc ntreaga structur a bazei de date.

Avantajele i dezavantajele folosirii SGBD-urilor

45
Utilizarea sistemelor de gestiune a bazelor de date ofer utilizatorilor mai multe
avantaje dar i o serie de dezavantaje.

Printre avantajele utilizrii SGBD-urilor putem enumera:


controlul redundanei datelor. Nu se poate vorbi de eliminarea total a
redundanei datelor deorece ci de o diminuare i inerea sub control a multiplicrii
i stocrii acelorai date fapt datorat modelrii relaiilor cnd poate fi util
dublarea unor articole de date cheie.
coerena datelor. Controlul redundanei atrage dup sine i coerena datelor.
Dac un articol este memorat ntr-un singur loc atunci la o eventual actualizare
aceasta nu va fi operat dect o singur dat, noua valoare fiind disponibil n
timp real tuturor utilizatorilor bazei de date.
partajarea datelor. Aceleai date pot fi utilizate de ctre operatori din diverse
compartimente ale organizaiei. Se poate defini i un sistem de partajare, adic
la ce date i care este autoritatea fiecrei persoane care acceseaz baza de
date.
integritatea crescut a datelor din baza de date. Integritatea datelor se obine
prin definirea unui sistem de validare a datelor dar i la coerena acestora.
Integritatea datelor este asigurat i prin: politici de acces difereniate,
gestionarea tranzaciilor, refacerea datelor. De exemplu n cadrul unei aplicaii
de gestiune a elevilor al unei coli, mutarea elevilor dintr-o clas inferioar ntr-o
clas superioar, la finele anului colar, nu se poate face dect dac elevul a
promovat (are medii peste cinci) la toate dicipinele.
securitate crescut. Securitatea datelor in baza de date se realizeaz prin
protecia utilizatorilor neautorizai i prin drepturile i autoritatea celor care
identific n sistem. n acest sens administratorului bazei de date i revine rolul de
a defini politica de securitate i acces pentru toi utilizatorii bazei de date.
Aplicarea standardelor. Utilizarea SGBD-urilor permite administratorului bazei
de date s definiasc anumite standarde pentru modul de stocare a datelor, fapt
ce permite interschimbul de informaii ntre diferite instituii.
Compactitate ridicat: volumul ocupat de sistemele de baze de date este mult
mai redus dect volumul ocupat de documente scrise sau de fiiere necorelate.
Vitez mare de regsire i actualizare a informaiilor.
Independena datelor fa de suportul hardware utilizat. Sistemele de
gestiune a bazelor de date ofer o vedere (view) extern a datelor, care nu se
modific atunci cnd se schimb suportul de memorare fizic, ceea ce asigur
imunitatea structurii bazei de date i a aplicaiilor la modificri ale sistemului
hardware utilizat
Concuren mbuntit. n multe sisteme de gestiune a bazelor de date se
administreaz accesul concurent la date.
Facilitile de salvare i refacere a datelor permit minimizarea pierderilor de
date n cazul unor avarii sau defeciuni ale sistemelor hardware.

Sistemele de gestiune a bazelor de date au i unele dezavantaje dintre care putem


aminti:
Complexitatea. Funcionarea unui SGBD de calitate tinde s devin extrem de
complex, iar pentru ca proiectanii i administratrorii bazelor de date s profite
de toate facilitile trebuie s cunoasc toate elementele de funcionalitate alte
SGBD-urilor;
Dimensiunea. Avnd n vedere complexitatea SGBD-urilor spaiul ocupat de
acestea tinde s creasc din ce n ce mai mult.
46
Costurile. Pretul unui sistem de gestiune a bazelor de date este foarte ridicat i
la acesta se adaug i costurile echipamentelor hardware.

Clasificarea Sistemelor de gestiune a bazelor de date

Clasificare dup modelul de date. Majoritatea sistemelor de baze de date actuale


sunt realizate n modelul de date relaional sau n modelul de date obiect. Dezvoltarea
continu a acestor modele a condus ctre o nou categorie de baze de date, numite
obiect-relaionale, care combin caracteristicile modelului relaional cu cele ale
modelului obiect. De asemenea, mai sunt nc n funciune baze de date n modele mai
vechi (modelul ierarhic sau modelul reea).

Clasificare dup numrul de utilizatori. Majoritatea sistemelor de baze de date sunt


sisteme multiutilizator, adic permit accesul concurent (n acelai timp) a mai multor
utilizatori la aceeai baz de date. Un numr redus de sisteme de baze de date sunt de
tip monoutilizator, adic suport accesul doar al unui singur utilizator (la un moment
dat).

Clasificare dup numrul de staii pe care este stocat baza de date. Exist dou
categorii de sisteme de baze de date: centralizate i distribuite.

Un sistem de baze de date centralizat (Centralized Database System) este un sistem


de baze de date n care datele i sistemul de gestiune sunt stocate pe o singur staie
(calculator). Un sistem centralizat poate suporta unul sau mai muli utilizatori, dar, n
orice situaie, datele i sistemul de gestiune rezid n ntregime pe o singur staie.

Un sistem de baze de date distribuit (Distributed Database System) poate avea att
datele, ct i sistemul de gestiune, distribuite n mai multe staii interconectate printr-o
reea de comunicaie.

Limbajele bazelor de date

Pentru definirea i manipularea datelor sistemele de gestiune a bazelor de date


folosesc dou limbaje i anume: unul pentru descrierea datelor i altul pentru
manipularea lor.

Limbajul de definire a datelor (DDL) permite administratorului bazei de date s


descrie i s denumeasc entitile cerute de sistemul informatic i relaiile care pot
exista ntre acestei n funcie de cerinele aplicaiei. Astfel, schema bazei de date este
specificat printr-un set de definiii exprimate n limbajul de definire a datelor. Rezultatul
compilrii instruciunilor este un set de tabele stocate n fiiere speciale denumite
catalog de sistem.

Limbajul de manipulare a datelor asigur un set de procedee ce permit operaii


de baz pentru manipularea datelor coninute n baza de date:
- adaugarea de date noi n baza de date
- modificri ale datelor stocate n baza de date
- regsirea datelor coninute n baza de date
- tergerea de date din baza de date

47
Exemple de SGBD-uri

Sistemul Oracle este un sistem de gestiune a bazelor de date multi-utilizator puternic,


cu implementri pe toate platformele (Windows, Unix, Linux), care ofer att
performane de execuie ridicate, ct i un grad nalt de protecie i securitate a datelor.
n toate versiunile, Oracle ofer implementarea complet a caracteristicilor modelului
relaional (conform standardului SQL2), iar ultimele versiuni (Oracle8i, Oracle9i i
Oracle 10g) sunt sisteme de gestiune obiect-relaionale distribuite, implementnd
extensiile obiect-orientate prevzute n standardul SQL3 i oferind posibilitatea de
dezvoltare a bazelor de date distribuite.

SQL Server este sistemul de gestiune a bazelor de date relaionale dezvoltat de firma
Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni,
versiunea actual (2008) fiind SQL Server 2005. n toate versiunile sistemul SQL Server
suport complet standardul SQL2, cu implementarea performant a trsturilor
avansate de stocare i prelucrare a datelor (integritate referenial, subinterogri,
triggere, gestiunea tranzaciilor, etc).

Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de
date relaionale pe platforme de calculatoare personale. MS Access dispune de un
sistem de control al bazei de date (database engine) i o interfa grafic pentru
interaciunea cu utilizatorul. Aplicaiile de baze de date n MS Access se pot dezvolta cu
mult uurin datorit generatoarelor de aplicaii (Wizards) care permit proiectarea
vizual a bazelor de date i a formularelor (forms) pentru interfeele grafice. MS Access
este folosit n special pentru aplicaii personale sau pentru mici afaceri .

MySQL este un sistem de gestiune a bazelor de date relaionale cu implementri pentru


sistemele de operare Windows, Linux, Unix. Acest sistem este compatibil cu standardul
SQL2, dar unele prevederi ale standardului sunt implementate parial. Versiunea
actual este versiunea 5.0 care ofer vederi, proceduri stocate, triggere caracteristici
care lipseau in versiunile precedente.

48
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
pot desfura n sal de curs sau n laboratorul de informatic, dotate cu
videoproiector, tabl/flipchart.

Se poate lucra individual sau pe grupe, profesorul va aborda toate aspectele


legate de SGBD-uri, va pune accent pe componentele SGBD-urilor precum i pe
avantajele i dezavantajele utilizrii bazelor de date. De asemenea, profesorul va
exemplifica i caracteriza diverse tipuri de sisteme prezentndu-le comparativ n
funcie de caracteristicile fiecruia. Dac se lucreaz pe grupe se pot da ca teme
de documentare pentru elevi s descrie diferite sisteme cu avantajele i
dezavantajele fiecruie, precum i utilitatea fiecruia. n continuarea acestei teme
profesorul va prezenta un Sistem de gestiune a bazelor de date pentru care coala
are licen de utilizare. Pentru a nu restriciona sau condiiona predarea, prezentul
material nu va face prezentarea niciunui SBGD ci se rezuma doar la aspectele
generale pe care trebuie sa le dein orice SGBD.

n ceea ce privete evaluarea / autoevaluarea se poate utiliza un test cu itemi


de tip mperechere, completare, alegere multipl precum i itemi semiobiectivi,
problematizare mai ales n ceea ce privete evaluarea lucrului cu un SGBD, pentru
care coala deine licen de utilizare. Se poate cere elevilor s identifice elemente
greit utilizate i s le corecteze. Se va face evaluare i transmitere de feedback pe
parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip
proiect, eseu.

49
Tema 6 Elemente de algebr relaional
Fia suport 6 Operaii relaionale
1. Selecia condiie (Relaie) operator unar care acioneaz asupra unei relaii i
definete una nou ce conine toate acele tupluri care ndeplinesc o anumit
condiie.
Condiia este specificat este o formul logic ce poate conine: nume de atribute,
constante, operatori logici (AND, OR, NOT), operatori de comparaie (<, >, <=, >=,
=, !=).

Exemplu:
Fie relaia Elevi

Listai toii elevii care au anul naterii mai mare dect 1990.
AnNastere>1990 (Elevi)
Are ca efect afiarea relaiei:

2. Proiecia col1, col2,...coln(Relaie) acioneaz asupra unei singure relaii i definete


una nou care conine un subset vertical al ei, extrgnd valorile atributelor
specificate (col1, col2,...coln) eliminnd dublurile.

Exemplu:
Fie relaia Clasa

Realizai o list cu toate clasele specificnd numele, specializarea i forma de


nvmnt.
NumeClasa, NumeSpecializare, NumeForma(Clase), are ca efect:

50
3. Produsul cartezian Relaie1 x Relaie2 definete o nou relaie care reprezint
o concatenare a fiecrui tuplu din Relaie 1 cu fiecare tuplu din Relaie 2. Produsul
cartezian este o operaie binar.

Exemplu:
Relaie1 Relaie2 Relaie1 x Relaie2
A B C D E
X1 Y1 Z1 1 1 A B C D E
X2 Y2 Z2 X1 Y1 Z1 1 1
2 2 X1 Y1 Z1 2 2
X3 Y3 Z3 X2 Y2 Z2 1 1
X2 Y2 Z2 2 2
Fiind dou relaii elevi i clase s se listeze elevii i clasa X3 Y3 Z3 1 1
n care acetia sunt nscrii. Se vor specifica: numele, X3 Y3 Z3 2 2
specializarea i forma de nvmnt, precum i numele,
prenumele i iniiala elevului.
NumeClasa, NumeSpecializare, NumeForma(Clase) x NumeElev, InitialaElev, PrenumeElev(Elevi), are ca efect:

Se observ c dac Relaia 1 are nu numr de i tupluri i n atribute iar Relaia 2 are un
numpr de j tupluri i m atribute atunci Relaie1 x Relaie2 va avea (i*j) tupluri i (n+m)
atribute.

4. Reuniunea Relaie1 Relaie2. Dac relaie 1 are i tupluri, iar relaia 2 are j
tupluri atunci reuniunea lor reprezint o relaie cu maxim i+j tupluri obinut prin
concatenarea acestora excluznd tuplurile duble.
Observaie: reuniunea a dou relaii presupune c acestea au aceeai numr de
atribute ale cror domenii coincid. Altfel spus ele sunt compatibile la reuniune.
Uneori cnd se dorete reuniunea a dou relaii este necesar mai nti operaia de
proiecie i eliminarea dublurilor i apoi reuniunea.

Exemplu:
Presupunnd c n baza de date exist dou relaii una care reine clasele de la liceu
teoretic (ClaseTeoretic) i alta care reine clasele de la liceu tehnologic
(ClaseTehnologic) se poate realiza o relaie care s conin toate clasele din liceu.

51
NumeClasa, NumeSpecializare, NumeForma (ClaseTeoretic) NumeClasa, NumeSpecializare,

NumeForma (ClaseTehnologic)

5. Diferen - Relaie1 - Relaie2 definete o relaie care se obine doar din tuplurile
care sunt n prima relaie i nu sunt n a doua. Prin urmare relaiile trebuie s fie
compatibile la reuniune.

Exemplu:
Presupunnd c n baza de date exist relaia AniStudiu care reine anii de studiu (IX-
XII patru pentru liceu zi, IX-XIII cinci pentru liceu seral,I-II doi pentru coala postliceal)
i relaia AniTerminali care reine pentru fiecare nivel de nvmnt anii terminali fcnd
diferena dintre cele dou tabele se pot obine anii intermediari.

NumeAn, NivelScoala, NumeForma (AniStudiu) - NumeAn, NivelScoala, NumeForma (AniTerminali)

6. mprirea Relaie1 Relaie2.


Problem: S presupunem c avem dou relaii Elevi (ce conine date de identificare a
elevilor dintr-o coal) i EvidentaLecii (ce conine o bibliotec virtual cu lecii de
informatic, leciile sunt grupate pe capitole).
Cerin: Ne intereseaz toi elevii care au accesat capitolele care au exact 3 lecii.
Mod de realizare: Pentru aceasta am putea obine o relaie (S) cu capitolele care au
exact 3 lecii i o relaie (R) cu elevii care au accesat capitole cu orice numr de lecii.
Dup care vor efectua mprirea R S i obinem ceea ce ne interesa.

S presupunem c avem relaia R cu un numr de m atribute i relaia S cu un numr


de n atribute incluse n atributele lui R (m mai mare ca n).
Prin operaia de mprire a lui R la S se obine o relaie cu un numr de m-n tupluri la
care, adugnd orice tuplu din S, se obine un tuplu din R.

R S = R1 - R2 unde:
R1 = x (R)
R2 = x ((R1 x S) R)
X = mulimea atributele lui R care nu exist n S.

7. Intersecia Relaie1 Relaie2 . Aceast operaie are ca rezultat obinerea unei


relaii ce conine toate tuplurile comune celor dou relaii. Relaiilor trebuie s fie
compatibile la reuniune.

Relaie1 Relaie2 = Relaie1 - (Relaie1 - Relaie2)


Exemplu:
Relaie1 Relaie2 Relaie1 Relaie2
A B C D A B
X1 Y1 X1 Y1 X1 Y1
X2 Y2 X1 Y2
X3 Y3

8. Uniunea
Aceast operaie permite regsirea informaiei din mai multe relaii corelate.
Compunerea este o operaie binar care are ca rezultat o nou relaie n care fiecare
tuplu este o combinaie a unui tuplu din prima relaie cu un tuplu din a doua relaie.

52
Operaia de uniune este o operaie derivat ea putnd fi simulat printr-o operaie de
produs cartezian, de selecie i de proiecie. n general se construiete un produs
cartezian din care se elimin tupluri prin selecie i atribute prin proiecie.

Uniunea are mai multe forme sub care poate fi utilizat:


theta uniunea i echi uniunea
uniunea/compunerea natural
uniunea / compunerea extern
semi-uniunea
Theta uniunea R F S - dintre dou relaii R i S se definete care o relaie care
conine tuplurile ce satisfac un predicat F din produsul cartezian al relaiilor R i S.
Predicatul F reprezint o condiie de forma: R.ai operator S.bi, unde operator reprezint
unul dintre operatorii relaionali: <, <=, >, >=, = <>.
Theta uniunea poate fi scris cu ajutorul seleciei i a produsului cartezian astfel: R
F S= F(R x S).
Uniunea natural R S este o operaie binar i const n uniune ntre dou relaii
R i S care au atribute comune identice.
Avnd dou relaii elev (IdElev, NumeElev, CNP, IdClasa) i clase (IdClasa,
NumeClas, Specializare) ce au ca atribute comune IDClasa putem crea o nou relaie
n care s rein date despre elev (Nume, CNP) i numele i specializarea clasei n care
se afl elevul.
Uniunea extern R S reprezint un tip de uniune n care tuplurile care nu au valori
similare n coloanele comune ale relaiei S, sunt de asemenea incluse n relaia
rezultat. Acest tip de uniune este o uniune natural la care se adaug i tuplurile din S
care nu au corespondent n R sau sunt completate cu valori null.
Semi-uniunea R F S reprezint un tip de uniune ce definete o relaie care conine
tupluri ale relaiei R ce particip n uniunea dintre R i S.
Semiuniunea poate fi rescris astfel: R F S =A (R F S), unde A reprezint
atributele lui R.

53
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea acestui coninut va face obiectul i pentru orelor alocate
laboratorului tehnologic, mai ales n ceea ce privete punerea n practic a
operaiilor.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi


obiectivi, semiobiectiv, de tip problematizare. Se vor utiliza de asemenea probe
practice n care elevii vor executa operaiile studiate. Se va face evaluare i
transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da
i teme integratoare de tip proiect, eseu.

54
Tema 7 Interogarea bazelor de date. Limbajul SQL
Fia suport 7.1 Concepte generale

Limbajul SQL (limbaj structurat de interogare) este un limbaj neprocedural,


orientat spre transformri ce are dou componente: una care permite descrierea datelor
(limbaj de descrierea a bazei de date DDL) i cealalt care permite manipularea datelor
(limbaj de manipulare a datelor DML).

Limbajul SQL nu conine instruciuni IF, WHILE.,DO.., FOR, REPEAT..etc.

Scopul limbajului SQL este acela de a permite utizatorului faciliti pentru:


- crearea bazei de date i a relaiilor dintre tabele/entitiutil
- gestiunoarea datelor din baza de date: inserarea, modificarea tergerea datelor
din baza de date
- transformri / extrageri dup criterii complexe asupra datelor din baza de date pe
baza relaiilor care exist ntre tabele/entiti
- portabilitate pentru diferite tipuri de SGBD-uri

Structura comenzilor este simpl fiind definit de:


o cuvinte cheie standard din limba englez, care reprezint partea fix a
comenzii: CREATE TABLE ...., SELECT..., INSERT INTO..., UPDATE.....
(aceste cuvinte nu se scriu pe mai multe rnduri)
o cuvinte definite de utilizator partea flexibil a comenzii, care reprezint
denumiri de tabele, cmpuri din tabele, relaii, coloane etc scrise conform
unor reguli de sintax.
o Cuvintele nu sunt sensibile la tipul de litere

Definirea datelor
Identificatorii SQL sunt utilizai pentru a identifica obiecte din baza de date precum:
tabele, coloane din tabele. Denumirea dat unui identificator trebuie s respecte
urmtoarele reguli:
- ncepe ntotdeauna cu o liter
- nu conine spaii libere
- nu poate fi mai lung de 128 de caractere
- n general identificatorul este sugestiv pentru obiectul pe care l reprezint
Tipuri de date SQL: se utilizeaz cinci tipuri de date: caracter, bit, numeric exact,
numeric aproximativ, dat-or, interval.

Tip de date Formatul de specificare Descriere


Caracter cu lungime Identificator CHAR(lungime) Dac irul este declarat cu lungime
fix fix iar lungimea efectiv este mai
mic dect lungimea declarat
atunci n partea dreapt se vor

55
memora banck-uri.
Exemplu:
NumeElev CHAR(15)
NumeElev = Ana se va retine sirul
Ana urmat de 13 blank-uri
Caracter cu lungime Identificator VARCHAR(lungime) Dac irul este declarat cu lungime
variabil variabil i dac se reine un ir mai
scurt atunci se vor memora dect
caracterele introduse.
Exemplu:
NumeElev VARCHAR(15)
Dac se va introduce irul Ana se
vor reine doar cele trei caractere.
Bit Identificator BIT(lungime) Tipul este folosit pentru a reine iruri
Identificator BITVARYING de biti (0 i 1). Analog ca la tipul
(lungime) caracter exist i aici lungime fix
(BIT) i lungime variabil (BIT
VARYING).
Numeric exact id NUMERIC(precizie, scal) Aceste tipuri de date sunt utilizate
id DECIMAL(precizie, scal) pentru a defini numere cu o
id INTEGER reprezentare exact.
id SMALLINT Primele dou tipuri menionate sunt
utilizate pentru a stoca date de tip
zecimal. Scala prestabilit este 0.
Precizia este definit la
implementare.
INTEGER se poate prescurta i INT
i este folosit pentru numere ntregi
mari.
SMALLINT este utilizat pentru
numere ntregi mici.
id numele identificatorului
Exemplu:
Salariu DECIMAL (7,2)
Media NUMERIC (2,2)
Nota SMALLINT
Numeric FLOAT(precizie) Aceste tipuri sunt utilizate pentru a
aproximativ REAL defini numerele reale care au o
DOUBLE PRECISION reprezentare fix. Precizia
controleaz exactitatea mantisei.
Precizia tipurilor REAL i DOUBLE
PRECISION este definit la
implementare.
Dat calendaristic / DATE Tipul DATE este utilizat pentru a
or TIME(precizie_or) [WITH TIME stoca date de tip calendaristic, prin
ZONE]2 utilizarea cmpurilor YEAR,
TIMESTAMP(precizie_or) [WITH MONTH, DAY.
TIME ZONE] Tipul TIME este utilizat pentru
stocarea orelor, prin utilizarea
cmpurilor: HOUR, MINUTE,
SECOND.
Tipul TIMESTAMP este utilizat
pentru stocarea datelor i orelor.
Precizie_or - precizia pentru
cmpul SECOND. Pentru tipul TIME

2
Cu zon orar
56
precizia prestabilit este 0 (secunde
ntregi), iar pentru TIMESTAMP este
6 microsecunde.
Interval INTERVAL cmp_nc TO cmp_sf Acest tip este utilizat pentru a
cmp_singular_data_ora reprezenta perioade de timp. Exist
dou clase de date de tip interval:
an-lun i zi-or.
cmp_nc =YEAR/ MONTH/ HOUR/
MINUTE
cmp_sf = YEAR/ MONTH/ HOUR/
MINUTE / SECOND
cmp_singular_data_ora =
cmp_nc/SECOND

Limbajul SQL are ncorporat i un set de operatori i funcii ce pot fi utilizate n


obinerea de expresii.
- Operatorii aritmetici (+, -, *, /), operatori relaionali (<,><=,>=, <>), logici (AND,
OR, NOT)
- Funcii definite pe iruri de caractere:
o CHAR_LENGTH(ir): returneaz lungimea unui ir de caractere
o LOWER(ir): transform majusculele n litere mici
o UPPER(ir): transform litere mari n mici
o TRIM(LEADING/TRAILING/BOTH ir) elimin dintr-un ir caractere
anterioare/posterioare/ambele
o POSITION (ir1 IN ir2): returneaz poziia lui ir1 n cadrul lui ir 2
- Funcii definite pe tipul date DATA:
o CURRENT_DATA : returneaz data curent
o CURRENT_TIME:returneaz ora curent
o CURRENT_TIMESTAMP: returneaz data i ora curent

Comenzi pentru definirea datelor:


Comand Sintax
Crearea unui CREATE TABLE nume_tabel (nume_coloan1 tip_de date1, nume_coloan2
tabel tip_de date2.............);
tergerea DROP TABLE nume_tabel;
unui tabel
Crearea unui CREATE [UNIQUE] INDEX nume_index ON nume_tabel (nume_coloan
index [ASC/DESC]);
Eliminarea DROP INDEX nume_index;
unui index
Creare unei CREATE DATABASE denumire_baz_de_date
baze de date

57
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiect i pentru ore alocate laboratorului
tehnologic.

Se poate lucra individual sau pe grupe.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi


obiectivi i semiobiectivi. Se vor utiliza de asemenea probe practice n care elevii
vor crea baze de date exersnd comenzile de definire a datelor precum i utilizarea
identificatorilor, tipurilor de date operatorilor i funciilor predefinite. Se va face
evaluare i transmitere de feedback pe parcursul activitilor de predare nvare.
Se pot da i teme integratoare de tip proiect, eseu.

58
Fia suport 7.2 Interogri simple pentru manipularea datelor

Pentru manipularea datelor limbajul SQL pune la dispoziia utilizatorilor patru


comenzi i anume:
SELECT pentru efectuarea interogrilor de date din baza de date
INSERT inserarea datelor ntr-un tabel
UPDATE reactualizarea datelor dintr-un tabel
DELETE tergere de date dintr-un tabel

Comanda SELECT are forma general:


SELECT [DISTINCT / ALL] */list_coloane
FROM nume_tabel
[WHERE condiie]
[GROUP BY list_coloane] [HAVING condiie]
[ORDER BY list_coloane]

unde:
- list_coloane, reprezint una sau mai multe coloane dintr-un table al bazei de
date
- nume_tabel, reprezint numele unui table din baza de date
semnificaia clauzelor specificate:
- SELECT specific coloanele care vor fi luate n considerare la ieire
- FROM specific tabelul sau tabelele din care vor face obiectul comenzii
- WHERE specific dac nregistrrile selectate (rndurile din tabele)
ndeplinesc o anumit condiie
- GROUP BY formeaz grupuri de rnduri cu aceeai valoare a coloanei
- HAVING filtreaz grupurile supuse unei anumite condiii
- ORDER BY - specific dac nregistrrile selectate sunt ordonate dup o
anumit coloan

Ordinea clauzelor nu poate fi schimbat. Clauzele obigatorii sunt SELECT i


FROM.

Prin clauzele sale comenda select are o multitudine de utilizri:


Exemplu: Fie tabelul tabElevi

- Dac se dorete regsirea tuturor rndurilor i a tuturor coloanelor tabelului


Elevi se va utiliza:
SELECT *
FROM tabElevi;

59
- Dac se dorete regsirea tuturor rndurilor dar doar a coloanelor NumeElev,
PrenumeElevi i CNP se va utiliza:
SELECT NumeElev, PrenumeElevi, CNP
FROM tabElevi;
- Dac se dorete aflarea vrstei unui elev ca diferen dintre anul current i Anul
naterii se va utiliza un camp calculate astfel:
SELECT tabElevi.NumeElev, tabElevi.PrenumeElev, YEAR(date())-
[AnNastere] AS Varsta
FROM tabElevi;
- Dac se dorete afiarea elevilor care au vrsta egal cu 19 ani:
SELECT tabElevi.NumeElev, tabElevi.PrenumeElev, YEAR(date())-
[AnNastere] AS Varsta
FROM tabElevi
WHERE YEAR(date())-[AnNastere] = 19

Comanda INSERT
Comanda are dou forme, prima permite introducerea de nregistrri (rnduri) ntr-un
tabel, cea de-a doua permite copierea mai multor rnduri dintr-unul sau mai multe
tabele ntr-un alt tabel.

Sintaxa pentru prima form este:


INSERT INTO denumire_tabel [(list_coloane)]
VALUES (list_valori)

unde:
- denumire_tabel este numele tabelului n care se va face inserarea de rnduri
- list_coloane reprezint lista coloanelor supuse indroducerii de date
- list_valori reprezint datele efectiv ce vor fi introduse n tabel n coloanele
specificate

Exemplu: Fie tabelul tabClase ce reine date despre clasele unei coli. Dac se dorete
introducerea unei nregistrri noi se va utiliza comanda:
INSERT INTO tabClase (NumeClasa, Numespecializare, NumeForma,
AnTerminal, IdAnStudiu)
VALUES ('11As','Mate-info', 'seral', '5','27')
Sintaxa pentru a doua form este:
INSERT INTO denumire_tabel [(list_coloane)]
SELECT ..
unde:
- denumire_tabel este numele tabelului n care se va face inserarea de rnduri
- list_coloane reprezint lista coloanelor supuse indroducerii de date

Comanda UPDATE
Permite modificarea coninutului unor nregistrri (nregistrri) existente ntr-un tabel.
Sintaxa comenzii este:
UPDATE denumire_tabel
SET nume_coloan1 = valoare1 [,nume_coloan2 = valoare2.]
[WHERE condiie]
60
Exemplu: Fie tabelul
tabArieCurriculara
tabArieCurriculara ce retine date
IdArie NumeArie SefArie IDInstitutie
despre responsabilii ariilor
1 Tehnologii Popescu Ion 1
curricular dintr-o coal. Dac se
2 Om si societate Popa Ana 1
dorete modificarea sefului ariei
Om si societate se va utilize 3 Limba si Comunicare Iorga Madalina 1
comanda:

UPDATE tabArieCurriculara SET tabArieCurriculara.SefArie = "Stoian Ramona"


WHERE (((tabArieCurriculara.[SefArie]) Like "*Popa Ana*"));

n cadrul comenzii s-a utilizat operatorul Like avnd semnificaia de egalitate pe


iruri de caractere, iar n cadrul irului cutat s-au folosit caractere * pentru a se elimina
eventualele spaii dinaintea, respective de dup irul cutat.

Comanda DELETE

Permite tergerea nregistrrilor (rndurilor) dintr-un tabel. Sintaxa comenzii este:


DELETE FROM denumire_tabel
[WHERE condiie]
Unde:
- denumire_tabel = tabelul din care se va face tergerea nregistrrilor
- Condiie = se pot terge toare nregistrrile sau doar unele care ndeplinesc o
anumit condiie specificat n clauza WHERE
Exemplu: Fiind dat tabelul din exemplul anterior tabArieCurriculara dac se dorete
tergerea nregistrrii ce are ca valoare a ariei Tehnologii se va utiliza:
DELETE FROM tabArieCurriculara
WHERE tabArieCurriculara.NumeArie Like "*Tehnologii*"
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea. Se vor realiza o gam foarte larg de aplicaii astfel nct
s se ating toate aspectele legate de comenzile prezentate, n special comanda
SELECT care permite foarte multe variaii.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de


tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor
executa comenzile utiliznd un SGBD. Se va face evaluare i transmitere de
feedback pe parcursul activitilor de predare nvare. Se pot da i teme
integratoare de tip proiect, eseu.

61
Fia suport 7.3 Interogri complexe pentru manipularea datelor

Funcii de grup
Conform standardului ISO limbajul SQL pune la dispoziia utilizatorilor cinci funcii de
grup:
COUNT() returneaz numrul de valori dintr-o coloan specificat
SUM() returneaz suma valorilor dintr-o coloan specificat
AVG() returneaz media aritmetic a valorilor dintr-o coloan specificat
MIN() returneaz cea mai mic valoare dintr-o coloan specificat
MAX() returneaz cea mai mare valoare dintr-o coloan specificat

- Aceste funcii opereaz asupra unei singure coloane dintr-un tabel i returneaz o
singur valoare.
- Funciile SUM i AVG opereaz doar asupra coloanelor ce rein date de tip
numeric.
- Funcia count poate fi utilizat n formatul COUNT(*) pentru a numra toate
rndurile unui tabel incluznd null-urile i duplicatele.
- Cu excepia funciei COUNT (*) toate funciile elimin nti null-urile i apoi
returneaz valorile specific.
- Pentru eliminarea duplicatelor, execepie fac funciile MIN i MAX, se va utiliza n
cadrul argumentului funciei cuvntul cheie DISTINCT.
- Funciile de grup pot fi utilizate doar n lista lui SELECT sau n clauza HAVING
(va fi prezentata ulterior).
Exemple:.
Fie tabelul:
tabAngajati
IDAngajat NumeAngajat Salariu Adresa Functia
1 Popa Marin 2500 Bucureti Designer
2 Anca Viorel 3000 Bucureti Programator
3 Marin Ionela 3500 Bucureti Analist
4 Ion Simona 3000 Bucureti Programator
5 Stan Ion 3500 Bucureti Administrator DB

Dac se dorete aflarea numrului de angajai se va folosi comanda:


SELECT COUNT(NumeAngajat) AS TotalAngajati
FROM tabAngajati;
Dac se dorete aflarea angajatului cu salariului maxim, minim i mediu se va
folosi comanda:
SELECT MAX(Salariu) AS Maxim, MIN(Salariu) AS Minim, AVG
(Salariu) AS Mediu
FROM tabAngajati;
Dac se dorete aflarea sumei totale a salariilor se va folosi comanda:
SELECT SUM(Salariu) AS BugetSalariu
FROM tabAngajati;

62
Gruparea rezultatelor
Gruparea datelor este utilizat pentru a putea obine nregistrri sumatoare similare cu
totalurile/subtotalurile utilizate n cadrul rapoartelor. Pentru a obine astfel de rezultate
se utilizeaz n cadrul comenzii SELECT clauza GROUP BY, ce are ca efect gruparea
datelor din tabele specificate n cadrul comenzii. Coloanele utilizate n clauz se
numesc coloane de grupare. Dac n cadrul comenzii SELECT se utilizeaz clauza de
grupare atunci rezultatul comenzii va avea o singur valoare pe grup. Coninutul
comanzii SELECT va fi restricionat la:
- Denumiri de coloane
- Funcii de grup
- Constante
- Combinaii ale celor de mai sus.

1. Toate denumirile coloanelor se vor regsi n clauza GROUP BY, excepie doar
dac coloana este utilizat de o funcie de gupare.
2. Dac n comand apare i clauza WHERE (mpreun cu GROUP BY) aceasta
este aplicat prima, ulterior se formeaz grupele din ceea ce a selectat condiia
lui WHERE.
Exemplu:
Fie tabelul
tabAngajati
IDAngajat NumeAngajat Salariu Adresa Functia
1 Popa Marin 2500 Bucureti Designer
2 Anca Viorel 3000 Bucureti Programator
3 Marin Ionela 3500 Bucureti Analist
4 Ion Simona 3000 Bucureti Programator
5 Stan Ion 3500 Bucureti Administrator DB
6 Popescu Paul 2500 Bucureti Designer
7 Ion Ionel 2500 Bucureti Designer
8 Marinescu Silvia 3000 Bucureti Programator
9 Pop Silviu 2500 Bucutreti Designer

Dac se dorete numrul de persoane angajate i bugetul alocat salariilor pentru


fiecare tip de funcie se va folosi:
SELECT count(IdAngajat) AS NrPersoane, Functia, sum(Salariu) as TotalSalariu
FROM tabAngajati
GROUP BY Functia;

IdAngajat, respectiv Salariu nu se vor folosi n cadrul caluzei de grupare deoarece


fac obiectul unei funcii de grup.
Rezultatul aplicrii comenzii este:
Query1
NrPersoane Functia TotalSalariu
1 Administrator DB 3500

63
Query1
NrPersoane Functia TotalSalariu
1 Analist 3500
4 Designer 10000
3 Programator 9000

n cazul n care ne-ar interesa s obinem doar numrul de persoane i bugetul pentru
funciile n care sunt mai mult de 2 angajai, atunci putem utiliza o clauz de restrngere
a gruprii diferit de WHERE. Acest clauz este HAVING. Comanda se ve scrie astfel:
SELECT count(IdAngajat) AS NrPersoane, Functia, sum(Salariu) as TotalSalariu
FROM tabAngajati
GROUP BY Functia
HAVING COUNT(IdAngajat)>1;
Rezultatul aplicrii:
Query1
NrPersoane Functia TotalSalariu
4 Designer 10000
3 Programator 9000

Se va face distincie ntre WHERE i HAVING:

WHERE HAVING
Restrnge rndurile asupra Restrnge grupurile asupra
crora se va aplica selecia crora se va aplica selecia

Selectarea datelor din mai multe tabele


Uniunea simpl (interne) permite
selectarea de coloane din unul sau mai
multe tabele, pentru aceasta se va folosi
comanda SELECT. n cazul n care se
dorete selectarea din dou sau mai multe
tabele acestea vor fi corelate prin
intermediul unor cmpuri (coloane) ale
cror valori sunt egale.
Exemplu: fiind date dou tabele unul ce
reine informaii despre elevii unei coli i
cellalt ce reine informaii despre clase,
ne intereaseaz s obinem o list cu:
numele elevului, clasa la care este nscris
i profilul clasei.
Pentru a putea selecta date din dou
tabele acestea vor fi legate printr-un cmp
(n cazul dat va exista o relaie de 1 la mai
muli ntre cele dou tabele)

64
Legtura dintre dou tabele 1-mai muli

Comanda utilizat este:


SELECT tabElevi.NumeElev, tabElevi.PrenumeElev, tabClase.NumeClasa,
tabClase.NumeSpecializare
FROM tabClase, tabElevi
WHERE tabClase.IDClasa = tabElevi.IDClasa
ORDER BY NumeElev;
Rezultatul este:

Clauza ORDER BY este utilizat pentru a sorta datele din tabelul rezultat. n cazul
de fa datele sunt sortate dup coloana NumeElev.

n cazul n care se dorete realizarea seleciei din trei tabele ntre acestea vor exista
legturi, iar principiul este acelai.

Operaii complexe cu tabele: reuniunea, intersecia, diferena


Operaiile corespunztoare sunt cele definite n fia suport 6 Operaii relaionale. Astfel:
- reuniunea a dou tabele este un tabel rezultat ce conine ntregistrrile din primul
i al doilea tabel luate o singur dat,
- intesecia a dou tabele este un tabel ce conine nregistrrile comune celor
dou tabele,
- diferena a dou tabele este un tabel ce conine toate ntregistrrile care se afl
n primul tabel i nu se afl n al doilea tabel.
Pentru a putea realiza aceste operaii este necesar ca tabelele s aib aceeai
structur: aceleai numr de coloane, de acelai tip cu aceeai lungime.
Operatorii utilizai pentru cele trei operaii sunt:
- UNION pentru reuniune
- INTERSECT pentru intersecie
- EXCEPT pentru diferen
Formatul general al comenzilor este:
Comand [ALL] [CORRESPONDING [BY coloana1, coloana 2....]]
Unde:
- ALL permite ca rezultatul s rein i rndurile duble
- CORRESPONDING operaia se execut asupra coloanelor comune din ambele
tabele.
- CORRESPONDING BY operaia este efectuat doar asupra coloanelor
specificate
65
Exemplu: Fie dou tabele tabFurnizori i tabBeneficiari. n primul tabel se rein date
despre furnizorii de echipamente ai unei companii X, iar n tabClieni se rein informaii
despre beneficiarii serviciilor companiei X.

Dac ne intereseaz toate localitile n care fie exist un furnizor sau un client al
Companiei X vom folosi una dintre variantele:
SELECT Localitate SELECT *
FROM tabFurnizori FROM tabFurnizori
UNION UNION CORRESPONDING BY
SELECT Localitate Localitate
FROM tabClienti; SELECT *
FROM tabClienti;

Dac ne intereseaz toate localitile n care fie exist i un furnizor i un client al


Companiei X vom folosi una dintre variantele:
SELECT Localitate SELECT *
FROM tabFurnizori FROM tabFurnizori
INTERSECT INTERSECT CORRESPONDING BY
SELECT Localitate Localitate
FROM tabClienti; SELECT *
FROM tabClienti;

Dac ne intereseaz toate localitile n care fie exist un furnizor dar niciun client al
Companiei X vom folosi una dintre variantele:
SELECT Localitate SELECT *
FROM tabFurnizori FROM tabFurnizori
EXCEPT EXCEPT CORRESPONDING BY
SELECT Localitate Localitate
FROM tabClienti; SELECT *
FROM tabClienti;
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea. Se vor realiza o gam foarte larg de aplicaii astfel nct
s se ating toate aspectele legate de comenzile i operatorii prezentai.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de


tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor
executa comenzile utiliznd un SGBD. Se va face evaluare i transmitere de
feedback pe parcursul activitilor de predare nvare. Se pot da i teme
integratoare de tip proiect, eseu.

66
Fia suport 7.4 Tranzacii

Tranzacia reprezint o aciune efectuat de ctre un singur utilizator sau de


ctre un program de aplicaie prin care se acceseaz sau se modific coninutul bazei
de date.
Tranzacia poate fi aciunea unui program sau a unei singure comenzi (INSERT sau
UPDATE) asupra bazei de date sau a unei relaii dintr-o baz de date. Exemplu de
tranziii: nscrierea elevilor la examen, mutarea elevilor unei clase n arhiv sau ntr-o
alt clas (la finalizarea anului colar).
Orice tranzacie simpl sau complex trebuie s transforme baza de date dintr-o stare
stare coerent n alt. Astfel o tranzacie poate avea dou rezultate: succes, caz n care
baza de date s-a trasnformat ntr-o stare coerent i insucces caz tranzacia trebuie
abandonat. Dac tranzacia nu a avut succes atunci baza de date trebuie s revin la
starea iniial nceperii tranzaciei. De asemenea dac o tranzacie a avut succes
aceata nu mai poate fi abandonat. Pentru a reveni la starea iniial, de dinaintea
tranzaciei trebuie efectuat o alt tranzacie, tranzacie compensatoare.
n cazul sistemelor de gestiune a bazelor de date cel care administreaz tranzaciile
trebuie s identifice i s grupeze aciunile care fac parte dintr-o tranzacie. n acest
sens limbajele de manipulare a datelor pun la dispoziia celor care administreaz
tranzaciile cuvinte cheie (BEGIN TRANSACTION, COMMIT i ROLLBACK) care
grupeaz aciunile identificate ca fcnd parte dintr-o tranzacie.

Proprietile tranzaciilor
Orice tranzacie definit trebuie s dein anumite proprieti i anume.
caracterul atomic: o tranzacie reprezint o unitate indivizibil, ea poate fi executat
n ntregime sau deloc
coeren: o tranzacie trebuie s transforme baza de date dintr-o stare coerent n
alt stare coerent
izolarea: tranzaciile sunt executate independent unele de altele
durabilitatea: efectele unei tranziii ncheiate cu succes sunt nregistrate n baza de
date i nu trebuie pierdute din alte motive.

Exemplu:
S considerm c avem de realizat un sistem informatic pentru gestionarea elevilor
dintr-o coal. La sfritul fiecrui an colar elevii trebuie transferai ntr-o alt clas
conform noului an colar. Aceast operaie poate fi considerat a fi un exemplu de
tranzacie:

If adoEleviRS1.RecordCount > 0 Then


adoEleviRS1.MoveFirst
db.BeginTrans
For i = 1 To adoEleviRS1.RecordCount
prgBar.Max = adoEleviRS1.RecordCount
prgBar.Min = 0
If i >= prgBar.Max Then i = prgBar.Max
ElseIf i < prgBar.Min Then i = prgBar.Min
End If
67
prgBar.Value = i
DoEvents
If lvElevi1.ListItems(i).Checked = True Then
adoEleviRS1.Move adoEleviRS1.RecordCount - i, 1
cmdMutareDreaptaStanga.CommandText = "update tabElevi set IDClasa =
" & adoClaseRS("IDClasa") & " where IDElev = " & adoEleviRS1("IDElev")
cmdMutareDreaptaStanga.Execute
End If
Next i
db.CommitTrans

n cod de mai sus (scris n limbajul VSBasic) pentru a delimita tranzacia s-au folosit
evenimentele BeginTrans i CommitTrans asociate bazei de date db.

Controlul concurenei
Un alt element care ar putrea afecta n mod negativ baza de date este accesul
concurent la date. Controlul concurenei este procesul prin care se administreaz
operaiile simultane de prelucrare/acces la baza de date, fr ca datele s interfereze
unele cu altele.
Accesul concurent apare n sistemele informatice multiutilizator, cnd mai muli
utilizatori acceseaz datele i cel puin unul dintre ei prelucreaz datele pot aprea
interferene. n acest sens se pot pierde actualizrile fcute de un utilizator (o tranzacie
efectuat de un utilizator poate fi anulat de alt utilizator), se pot pierde date din cauza
dependenelor neefectuate (atunci cnd o tranzacie are acces la rezultatele
intermediare ale altei tranzacii n curs care ulterior este abandonat) sau a anaizei
incoerente (cnd o tranzacie citete mai multe valori din baza de date, iar o alta
actualizeaz o parte din ele n timpul execuiei primei).
Prin urmare este necesar a se serializa i reface tranzaciile astfel nct acestea s nu
interfereze i deci s nu permit alterarea datelor. n acest sens se va face o planificare
astfel nct s se permit executarea de tranzacii n paralel pentru acelea care nu
afecteaz acelai segment din baza de date, iar pentru cele care afecteaz acelai
segmemt s se realizeze o serializare a tranzaciilor astfel nct execuia tranzaciilor s
nu interfereze.
Exist dou tehnici de baz pentru controlul concurenei prin care se permite ca
tranzaciile s fie executate n paralel, cu anumite constrngeri: blocarea i metodele de
marcare a timpului.
Blocarea atunci cnd o tranzacie acceseaz baza de date, un lact poate refuza
accesul la alte tranzacii, pentru a preveni apariia unor rezultate incoerente. Dac o
tranzacie are un lact de citire pentru un articol de date, nseamn c l poate citi dar
nu i prelucra. Dac o tranzacie are un lact de scriere pentru un articol de date,
nseamn c l poate citi i actualiza.
Blocarea tranzaciilor este utilizat astfel:
orice tranzacie care trebuie s acceseze un articol de date trebuie ca, mai nti
s-l blocheze, cernd un lact de citire pentru a avea acces la citire sau un lact
la scriere pentru a avea acces att la citire ct i la scriere.
dac articolul nu este deja blocat de alt tranzacie atunci articolul va fi blocat
prin utilizarea unui lact
68
dac articolul este blocat SGBD-ul stabilete dac cererea este compatibil cu
tipul de lact pe care-l are deja articolul
o tranzacie continu s dein un lact, pn cnd l elibereaz n mod explicit
n timpul execuiei sau pn cnd este terminat. Efectele scrierii vor deveni
vizibile pentru alte tranzaciinumai dup ce lactul de scriere va fi eliberat.
Pentru a garanta serializarea executrii tranzaciilor se utilizeaz un protocol
suplimentar pentru amplasarea operaiilor de blocare i deblocare din cadrul fiecrei
tranziii. Cel mai utilizat i cunoscut protocol este 2PL.
Se spune c o tranzacie urmeaz protocolul de blocare n dou faze (2PL) dac toate
operaiile de blocare predec prima operaie de deblocare din cadrul tranzaciei. Astfel:
Este necesar ca o tranzacie s achiziioneze un lact pentru un anumit articol,
nainte de a opera asupra lui.
O dat ce tranzacia a fost deblocat, nu mai poate achiziiona altele noi
n cadrul utilizrii metodei de blocare pot apare impasuri atunci cnd dou sau mai
multe tranzacii ateapt eliberarea lactelor deinute de ctre articole.
Metodele de marcare a timpului pentru controlul concurenei elimin apariia unor
posibile impasuri. n acest sens SGBD-ul poate crea un identificator unic care indic
timpul relativ de ncepere a unei tranzacii. Acest identificator numit marc de timp poate
fi utilizat pentru ordonarea tranziiilor astfel nct cele cu marc de timp mai mic s
aib prioritate n eventualitatea unui conflict.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea. Se vor realiza o gam foarte larg de aplicaii prin care s
se poat exemplifica diverse secvene ca fiind tranzacii i necesitatea tratrii lor
din acest punt de vedere. De asemnea, se va exemplifica pe diferite exemple i
accesul concurent la datele din baze de date, precum i tratarea erorilor ce pot
apara ca urmare a accesului concurent.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de


tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor
executa comenzile utiliznd un SGBD. Se va face evaluare i transmitere de
feedback pe parcursul activitilor de predare nvare. Se pot da i teme
integratoare de tip proiect, eseu.

69
Tema 8 Securitatea bazelor de date
Fia suport 8 Securitatea bazelor de date

Securitatea datelor reprezint unul dintre cele mai importante aspecte n lucrul cu
bazele de date. Baza de date reprezint o resurs colectiv esenial care trebuie
protejat att de ameninrile intenionate ct i de cele neintenionate.
Referitor la securitatea bazelor de date trebuie avute n vedere urmtoarele aspecte:
asigurarea n caz de furt-fraud: acestea nu afecteaz neaprat datele, dar pot
provoca neplceri organizaiei
pierderea confidenialitii datelor (se refer la pierderea unor secrete de
importan major) i/sau a caracterului privat (necesitatea de a proteja date
referitoare la anumite persoane)
pierderea integritii bazei de date: apariia unor date care nu sunt valabile sau
sunt greite i care ar putea afecta modul de operare cu sistemul informatic.
pierderea disponibilitii bazei de date se refer la imposibilitatea de a accesa
datele sau sistemul informatic.
Asigurarea securitii datelor are drept scop minimizarea pierderilor cauzate de ctre
evenimente care pot fi anicipate, ntr-o manier eficient care privete att costul ct i
modalitatea de a nu constrnge execesiv utilizatorul sistemului informatic sau al bazei
de date.
Posibile pericole care pot afecta unul dintre cele patru aspectele prezentate mai sus pot
fi:
utilizarea bazei de date de ctre persoane neautorizate / furtul de date sau
programe
corectarea sau copierea neautorizat a datelor
alterarea programelor
politici sau proceduri necorespunztoare
intrarea ilegal a unui hacker
eecul mecanismelor de securitate
alterarea datelor datorit unei ntreruperi de curent
deteriorarea fizic a echipamentelor, ruperea/deterioraea cablurilor / furtul de
echipamente hardware
interferen elecronic/radiaii
virui
Pentru asigurarea securitii i coerenei datelor trebuie identificate tipuri de posibile
pericole i iniiate planuri i msuri adecvate. Aceste msuri pot fi de natur
administrativ sau fizic i cuprind: autorizarea n sistemul informatic, vederilor
utilizatorilor sistemului informatic/bazei de date, copiile de siguran i refacerea bazei
de date cu ajutorul lor, asigurarea integritii bazei de date, criptarea datelor, procedurile
asociate bazei de date.
Autorizarea presupune acordarea unui drept sau a unui privilegiu utilizatorului
sistemului informatic / bazei de date. Autorizarea fiecrui utilizator n cadrul unui sistem
se poate face crend un sistem de autentificare n sistem pe baz de parol creia i se
asociaz i nite privilegii pe care utilizatorul le are asupra sistemului. De exemplu

70
utilizatorilor li se pot crea privilegii care s le permit s acceseze anumite obiecte din
baza de date.
Un alt mecanism care asigur securitatea bazelor de date este vederea. Prin
intermediul vederilor se creaz o relaie dinamic, care nu exist n baza de date,
utiliznd date din mai multe relaii. Ea este rezultatul unei cereri a utilizatorului care
deinea anumite privilegii i confer securitate datelor prin faptul c permite ascunderea
unor poriuni din baza de date fa de anumii utilizatori care nu dein aceleai privilegii.
O msur de siguran n caz de avarie de energie, deteriorarea echipamentelor sau
programelor este copia de siguran. Prin posibilitatea crerii unei copii de siguran i
a unui fiier jurnal (ce conine toate modificrile efectuate asupra bazei de date) pe un
mediu de stocare off-line se permite oricnd refacerea datelor dup orice defeciune.
Meninerea integritii bazei de date are drept rezultat garantarea faptului c datele se
menin valabile i permite astfel obinerea de rezultate corecte.
n situaia n care baza de date conine date foarte importante o posibilitate de precauie
fa de posibile pericole este i criptarea datelor. Prin criptare se obine o codificare a
datelor printr-un algoritm special prin care datele nu pot fi cititte dect dac se cunoate
cheia de decriptare. Criptarea datelor se folosete n special atunci cnd datele trebuie
transmise prin canale de comunicaie (reea local, Internet).
Pe lng aceste metode care asigura securitatea datelor i bazelor de date se mai
utilizeaz i proceduri asociate utilizate mpreun cu mecanismele prezentate.
Un exemplu de procedur asociat ar putea fi crearea unui sistem propriu de parole
(numr de caractere, condiii de crearea a parolelor, termene de schimare a parolelor,
criptarea fiierelor care conin parole etc.) pentru autentificarea n sistem.
De asemenea se poate crea o procedur cu privire la creare copiilor de siguran a
bazelor de date: perioada de timp la care se creaz o copie (zilnic, la un numr de zile,
sptmnal etc.), paii implicai n crearea copiei, personalul responsabil pentru crearea
copiei etc. Un exemplu de procedutr asociat poate fi i refacerea bazei de date dintr-
o copie de siguran.
Pe lng mecanismele bazate pe calculator companiile i definesc i politici/acorduri
administrative privind asigurarea securitii bazelor de date: planuri de securitate i
situaii excepionale, controlul personalului, amplasarea echipamentelor n condiii de
siguran acorduri de ntreinere, control regulat al echipamentelor, instalarea
programelor antivirus i actualizarea acestora, identificarea i contracararea posibilelor
riscuri etc.
Pentru asigurarea securitii atunci cnd se lucreaz n reea i sunt necesare trasmisii
de date utiliznd Internetu-ul se mai pot utiliza i: servere reprezentant, semnturi
digitale, algoritmi de rezumare a mesajelor i semnturilor digitale, certificate
digitale, protocoale de securitate (Secure HTTP).

71
Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic.

Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii


de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale n
ceea ce privete sistemele de securitate.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi


obiectivi i semiobiectivi. Se vor utiliza de asemenea probe practice n care elevii
vor executa efectiv diferite tipuri de sisteme de securitate, n special proceduri
asociate, autorizarea n cadrul sistemelor/bazelor de date, vor utiliza facilitile
SGBD-urilor privind securitatea. Se va face evaluare i transmitere de feedback pe
parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip
proiect, eseu.

72
Tema 9 Utilizarea bazelor de date n cadrul reelelor de calculatoare
Fia suport 9 Baze de date distribuite. Concepte generale

Bazele de date distribuite reprezint o colecie de date partajat, mpreun cu


descrierea sa, distribuit fizic ntr-o reea de calculatoare.

Sistemul de gestiune a bazelor de date distribuite (SGBDD) este un pachet


de programe ce permite gestionarea transparent a bazei de date distribuite i permite
accesul utilizatorilor la baza de date.
SGBDD este format dintr-o singur baz de date logic, fragmentat, fiecare fragment
fiind stocat pe unul sau mai multe calculatoare. Calculatoarele formeaz o reea, iar pe
fiecare calculator este instalat un SGBD separat de cel de reea. Fiecare calculator este
capabil s prelucreze independent anumite cereri ale utilizatorilor dar poate prelucra i
date stocate pe alt calculator din reea.

PC
site 1

PC PC
site 2 Ree site 3
BD a de BD
PC

PC
site 4

Sistem de gestiune a bazelor de date distribuite

Prelucrare distribuit o baz de date centralizat care poate fi accesat printr-o


reea de calculatoare.

Reea
PC PC
Site1
de PC Site3 DB

PC
Site2

Prelucrare distribuit

73
Administrarea intern a bazelor de date distribuite este pretenioas i n general
dificil, deoarece trebuie asigurat c:
Distribuia este transparent (invizibil i nederanjant) utilizatorii trebuie s
poat s interacioneze cu sistemul ca i cnd ar fi vorba un sistem nedistribuit;
Tranzaciile trebuie s aib i ele o structur transparent (invizibil i
nederanjant). Fiecare tranzacie n parte trebuie desigur s menin integritatea
bazei de date, n ciuda multitudinii de partiii. Pentru aceasta ele se divizeaz de
obicei n subtranzacii, fiecare din acestea prelucrnd doar o singur partiie.

Utilizatorii acceseaz baza de date distribuit prin:


Aplicaii locale (aplicaii care nu necesit date de pe alte situri), sau
Aplicaii globale (aplicaii care au nevoie de date de pe alte situri).
Astfel un SGBDD trebui s dein urmtoarele caracteristici:
- conine o colecie de date partajate corelate logic
- datele sunt divizate n fragmente ce pot fi reproduse
- fragmentele sunt stocate pe mai multe calculatoare n reea
- datele de pe fiecare PC sunt gestionate printr-un SGBD care trateaz autonom
aplicaiile locale i poate participa la o aplicaie global.
Din aceste caracteristici reiese caracterul transparent al SGBDD prin care utilizatorul
practic nu resimte fragmentarea datelor pe mai multe calculatoare. Transparena datelor
fa de utilizator permite ca sistemul distribuit s apar ca un sistem centralizat.

Funcionarea unui SGBDD


Un server de baze de date este software-ul care administreaz baza de date; un client
de baze de date este o aplicaie care cere servicii de la server, de exemplu transmite
date la, sau cere date de la baza de date. De obicei pentru un server i baza de date
corespunztoare exist concomitent mai muli clieni.
Fiecare calculator din reeaua de calculatoare a bazei de date distribuite se numete un
nod. Un nod al sistemului unei baze de date distribuite se poate comporta drept server,
drept client, sau chiar drept ambele, n funcie de situaie.
Un tip important de baze de date distribuite sunt bazele de date distribuite relaionale,
conduse de un Relational Data Base Management System (RDBMS).

n cadrul acestor baze de date o relaie poate fi mprit ntr-un numr de sub-relaii,
denumite fragmente.
Fragmentele pot fi:
Fragmente orizontale - subseturi de tuple (rnduri) dintr-o relaie (tabel).
Fragmente verticale - subseturi de atribute (coloane) dintr-o relaie (tabel).
Fragmente mixte - un fragment care este fragmentat att orizontal, ct i vertical.
Fragmentele sunt alocate unuia sau mai multor site-uri. Ele pot fi reproduse pentru a
obine disponibilitate i performane mbuntite.
Pentru reproducerea fragmentelor se folosesc trei reguli de corectitudine:
- Caracterul complet: dac o instan a unei relaii R este descompus n
fragmente R1, R2,...Rn, atunci fiecare articol de date care poate fi regsit n
relaia R trebuie s apar n cel puin un fragment.
- Reconstrucie: Trebuie s fie posibil s se defineasc o operaie relaional care
va reconstrui relaia R din fragmente. Aceat regul garanteaz dependenele
funcionale.

74
- Caracterul disjunct: dac un articol de date apare ntr-un fragment atunci nu
trebuie s mai apar i n alt fragment, excepie face fragmentarea vertical
(atributele cheii primare trebuie s fie repetate pentru a permite reconstrucia).
Exist patru strategii de alocare referitoare la amplasarea datelor:
Centralizat o singur baz de date centralizat
Partiionat fragmentele sunt atribuite unui site
Reproducerea complet copierea complet a bazei de date pstrate n cadrul
fiecrui site
Reproducerea selectiv combinaie ntre primele trei.

SGBDD-ul prezint toate funciile standard ale unui SGBD centralizat i are n
plus servicii de comunicaie extinse, un catalog al sistemului extins,
prelucrarea distribuit a interogrilor i servicii de concuren i refacere
extinse. Acest fapt se datoareaz transparenelor ce carecterizeaz SGBDD:
- Transparen la distribuie din care rezult centralizarea
- Transparena tranzaciilor care menine coerena bazei de date globale
- Transparena performanelor prin care sisteul este capabil s trateze eficient
interogrile care se refer la datele din mai multe sit-uti
- Transparena sistemului care permite existena de SGBD-uri diferite .

Avantajele bazelor de date distribuite


Pot reflecta structura organizaional a companiei partiiile pot fi plasate direct n
seciile de care aparin.
Autonomie local fiecare secie i poate controla mai ndeaproape propriile ei
date.
Disponibilitate mbuntit o greeal ntr-o baz de date distribuit va afecta de
cele mai multe ori o singur partiie, i nu toat baza de date. Celelalte partiii rmn
disponibile pentru prelucrare.
Performan mbuntit datele pot fi amplasate lng situl cu cererea cea mai
mare, iar partiiile nsele sunt paralelizate, permind astfel ca solicitarea bazei de
date s se echilibreze dinamic ntre serverele disponibile (o solicitare intens ntr-o
partiie a bazei de date distribuite nu va afecta alte partiii).
Economie cost mai puin s se creeze o reea de computere mai mici, dar cu
puterea total a unui singur computer mare.
Modularitate subsistemele unei baze de date distribuite pot fi modificate, adugate
sau deconectate dinamic, fr s se afecteze ali clieni sau partiii.

Dezavantaje ale bazelor de date distribuite


Complexitatea trebuie depus munc suplimentar de ctre administratorii
bazelor de date pentru se a asigura c natura distribuit a sistemului este
transparent (invizibil pentru utilizator). Munc suplimentar trebuie de
asemenea depus i pentru a ntreine multiple sisteme disparate. Proiectarea
unei baze de date distribuite trebuie s in cont i de natura ei disconect de
exemplu, operaia join (reunirea a dou tabele ale unui RDBMS) devine deosebit
de laborioas cnd trebuie efectuat pe baza mai multor partiii disparate.
Profitabilitatea redus complexitatea mai mare i infrastructurile mai ample duc
la costuri suplimentare pentru realizare i implementare.
Securitatea toate partiiile bazei de date trebuiesc securizate, dar deoarece
acestea nu sunt centralizate, trebuiesc securizate i toate siturile involvate, la
orice distane s-ar afla ele. Drept urmare, i infrastructura trebuie securizat (de
ex. prin codificarea tuturor transmisiilor ntre siturile reelei).
75
Dificultatea de a menine integritatea dac baza de date este conceput greit,
atunci asigurarea integritii poate suprasolicita i chiar bloca reeaua dintre
noduri.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport


prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se
recomand a se desfura n laboratorul de informatic, dotat cu videoproiector,
tabl/flipchart.

Se poate lucra individual sau pe grupe. Ca tipuri de activiti se recomand


studii de caz, problematizarea, comparaii ntre diferite tipuri de sisteme
informaionale pentru care se genereaz baze de date distribuite.

n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi


obiectivi. Se va face evaluare i transmitere de feedback pe parcursul activitilor
de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

76
IV. Fia rezumat

Clasa ________________ Profesor______________________

Nume i Competena 1 Competena 2 Competena 3


Nr.
prenume Observaii
Crt. A1 A2 AX A1 A2 A3 A1 A2 A3
elev
1 zz.ll.aaaa3
2
3
4
...
Y

3
zz.ll.aaaa reprezint data la care elevul a demonstrat c a dobndit cunotinele, abilitile i atitudinile vizate prin activitatea respectiv
Competene care trebuie dobndite

Aceast fi de nregistrare este fcut pentru a evalua, n mod separat, evoluia


legat de diferite competene. Acest lucru nseamn specificarea competenelor
tehnice generale i competenelor pentru abiliti cheie, care trebuie dezvoltate i
evaluate. Profesorul poate utiliza fiele de lucru prezentate n auxiliar i/sau poate
elabora alte lucrri n conformitate cu criteriile de performan ale competenei vizate
i de specializarea clasei.

Activiti efectuate i comentarii

Aici ar trebui s se poat nregistra tipurile de activiti efectuate de elev, materialele


utilizate i orice alte comentarii suplimentare care ar putea fi relevante pentru planificare
sau feed-back.

Prioriti pentru dezvoltare

Partea inferioar a fiei este conceput pentru a meniona activitile pe care elevul trebuie
s le efectueze n perioada urmtoare ca parte a viitoarelor module. Aceste informaii ar
trebui s permit profesorilor implicai s pregteasc elevul pentru ceea ce va urma.

Competenele care urmeaz s fie dobndite

n aceast csu, profesorii trebuie s nscrie competenele care urmeaz a fi dobndite.


Acest lucru poate implica continuarea lucrului pentru aceleai competene sau identificarea
altora care trebuie avute in vedere.

Resurse necesare

Aici se pot nscrie orice fel de resurse speciale solicitate:manuale tehnice, reete, seturi de
instruciuni i orice fel de fie de lucru care ar putea reprezenta o surs de informare
suplimentar pentru un elev care nu a dobndit competenele cerute.

Not: acest format de fi este un instrument detaliat de nregistrare a


progresului elevilor. Pentru fiecare elev se pot realiza mai multe astfel
de fie pe durata derulrii modulului, aceasta permind evaluarea
precis a evoluiei elevului, n acelai timp furniznd informaii
relevante pentru analiz.
V. Bibliografie
1. Connollz,Thomas. Begg, Caroly. Strachan, Anne (2001). Baze de date
Bucureti: Editura Teora
2. Ipate, Florentin, Eugen. Popescu, Monica (2000). Dezvoltarea aplicaiilor de
baze de date n ORACLE 8 i FORMS 6 Bucureti: Editura All
3. Henderson, Ken. (2002). Transact SQL Bucureti: Editura Teora
4. http://ro.wikipedia.org, 15.06.2009
5. http://www.oracle.com/index.html, 15.06.2009
6. http://www.microsoft.com/romania/Servere/SQL/default.mspx, 10.06.2009
7. http://www.microsoft.com/sqlserver/2008/en/us/default.aspx, 10.06.2009
8. http://office.microsoft.com/ro-ro/access/default.aspx, 1.06.2009

S-ar putea să vă placă și