Transcript Curs 7

Informatica in
economie
Baze de date relationale
Baze de date relationale
Baza de date se defineşte ca fiind
•
ansamblul colecţiilor de date
împreună cu
•
structura acestora
•
relaţiile dintre ele.
şi
Baze de date relationale
Generatii de baze de date:
•
•
•
generaţia I: BD arborescente şi
reţea;
generaţia a-II-a: BD relaţionale;
generaţia a-III-a: BD orientate
obiect.
Baze de date relationale
Bazele de date relaţionale (BDR) utilizează modelul de
date relaţional şi noţiunile aferente.
BDR este un ansamblu organizat de tabele (relaţii)
împreună cu legăturile dintre ele.
Baze de date relationale
BDR au o solidă fundamentare teoretică, în special prin
cercetările de la IBM conduse de
Edgar Frank “Ted” Codd.
(1923 - 2003) Edgar (Ted) Codd passed away – IBM Website
Larry Ellison
• BD - baza de date – reprezintă componenta
de tip date a sistemului (colecţiile de date
propriu-zise);
• SGBD - sistemul de gestiune a bazei de date –
ansamblul de programe prin care se asigură
gestionarea şi prelucrarea complexă a
datelor şi care reprezintă componenta
software a sistemului de baze de date.
Baze de date relationale
Schema Externa 1
Schema Externa 2
Valoare produs
Nivel Extern
Valoare TVA
Valoare totala pe
produs
Valoare totala
factura
Proces
modelare
Normalizare
Factura (NrFactura, DataFactura, CodClient, CotaTVA)
Nivel
Conceptual
ProdusFacturat (NrFactura, CodProdus, Cantitate, Pret)
Produs (CodProdus, DenumireProdus, UM)
Schema conceptuala
Implementare
Nivel Intern
(Fizic)
' Restricţii de integritate la nivelul relatiei FACTURA
RI1: NrFactura cheia primară
' Restricţii de integritate la nivelul relatiei PRODUSFACTURAT
RI2: NrFactura si CodProdus cheia primară
' Restricţii de integritate la nivelul relatiei PRODUS
RI3: CodProdus cheia primară
' Restricţii de integritate la nivelul bazei de date
RIR1: NrFactura din ProdusFacturat referă NrFactura din FACTURA
RIR2: CodPrododus din ProdusFacturat referă CodProdus din PRODUS
Schema fizica
BD
Valoare totala
generala
Baze de date relationale
Condiţii minimale pentru ca un SGBD să fie relaţional (Codd):
1.să implementeze modelul de date relaţionale prin LDD şi
LMD;
2.să implementeze cel puţin un limbaj relaţional.
Baze de date relationale
Baze de date relationale
Definirea entităţilor se face sub forma unor tablouri bidimensionale
numite tabele sau relaţii de date.
Atribute
Membrii entităţii
A1
A2
A3
vi3
An
Numele
atributelor
Tuplul i
Valoare
Baze de date relationale
DOMENIUL este un ansamblu de valori caracterizat printrun nume.
El poate fi explicit (se enumeră valorile posibile, D1:{M, F})
sau implicit (se precizează proprietăţile valorilor,
D1:{a/aN}).
Baze de date relationale
TABELA/RELAŢIA este un subansamblu al produsului
cartezian al mai multor domenii, caracterizat printr-un
nume.
Baze de date relationale
ATRIBUTUL este coloana unei tabele, caracterizată printrun nume.
Numărul de domenii este mai mic sau egal cu numărul de
atribute pentru o tabelă (mai multe atribute pot lua valori
din acelaşi domeniu).
Baze de date relationale
TUPLUL este linia dintr-o tabelă şi nu are nume.
Ordinea liniilor (tupluri) şi coloanelor (atribute) dintr-o
tabelă nu trebuie să prezinte importanţă.
Baze de date relationale
SCHEMA TABELEI este numele tabelei, urmat între
paranteze rotunde de lista atributelor, iar pentru fiecare
atribut se precizează domeniul asociat.
Baze de date relationale
CHEIA este un atribut (sau un ansamblu de atribute) cu rol
de a identifica un tuplu dintr-o tabelă.
Cheie:
1.Primara
2.Externa
Baze de date relationale
SCHEMA RELAŢIONALĂ pune in evidenta legaturile dintre
tabele.
Definirea legăturilor dintre tabele se face logic construind
asocieri între tabele cu ajutorul unor atribute de legătură.
Atributul din tabela iniţială se numeşte cheie externă iar cel
din tabela finală este cheie primară.
Baze de date relationale
Potenţial, orice tabelă se poate lega cu orice tabelă, după
orice atribute.
Legăturile se stabilesc la momentul descrierii datelor prin
limbaje de descriere a datelor (LDD), cu ajutorul restricţiilor
de integritate.
Practic, se stabilesc şi legături dinamice la momentul
execuţiei.
Baze de date relationale
Legăturile posibile sunt 1:1, 1:m, m:n.
Baze de date relationale
Relaţiile de tipul 1:1 (unu la unu), presupun că unui
membru din colecţia A îi corespunde un singur membru din
colecţia B.
A
B
Baze de date relationale
Relaţiile de tipul 1:m sau m:1 (unu la mulţi sau mulţi la
unu), care presupun că unui membru din prima entitate A îi
corespund mai mulţi membri din a doua entitate B; astfel de
relaţii se mai numesc şi relaţii ierarhice
A
B
A
B
Baze de date relationale
Relaţiile de tipul m:m (mulţi la mulţi), în care unui membru
din entitatea A îi corespund mai multe date din colecţia B şi
invers.
A
B
Baze de date relationale
Relaţii de tip mulţi la mulţi se mai numesc şi relaţii de tip
reţea.
O relaţie mulţi la mulţi se va descompune întotdeauna în
două relaţii,
- o relaţie tip unu la mulţi
- o a doua relaţie de tip mulţi la unu prin intermediul unei
entităţi de legătură.
Baze de date relationale
Exemplul 1:
Fie tabela STUDENT cu atributele: NUME din domeniul D1
(numele de persoane), ANSTUDIU din domeniul D2 (anii de
studiu dintr-o facultate), ANNAŞTERE din domeniul D3 (anii
calendaristici).
Baze de date relationale
Schema tabelei :
STUDENT (NUME: D1, ANSTUDIU: D2, ANNAŞTERE: D3).
Baze de date relationale
Exemplul 2:
Fie o BD privind desfacerea în care am identificat tabelele: BENI,
CONTR, PROD.
Legăturile dintre tabele sunt:
•un beneficiar poate încheia mai multe contracte (1:M);
•un produs se poate livra prin mai multe contracte (1:M);
•un beneficiar poate cumpăra mai multe produse şi un produs se poate
livra către mai mulţi beneficiari (M:N).
Baze de date relationale
Baze de date relationale
Restricţiile de integritate sunt reguli care asigură
corectitudinea şi coerenţa datelor.
Restricţiile de integritate ale modelului relaţional sunt
structurale şi comportamentale.
Baze de date relationale
Restricţiile structurale sunt:
• Restricţia de unicitate a cheii. Într-o tabelă nu trebuie să existe mai
multe tupluri cu aceeaşi valoare pentru ansamblul cheie;
• Restricţia referenţială. Intr-o tabelă t1 care referă o tabelă t2,
valorile cheii externe trebuie să figureze printre valorile cheii
primare din t2 sau să ia valoarea null (neprecizat);
• Restricţia entităţii. Intr-o tabelă, atributele din cheia primară nu
trebuie să ia valoarea NULL.
Cele trei restricţii de mai sus sunt minimale.
Baze de date relationale
Restricţiile de comportament sunt cele care se definesc prin
comportamentul datelor şi ţin cont de valorile din BDR:
• Restricţia de domeniu. Domeniul corespunzător unui atribut dintro tabelă trebuie să se încadreze între anumite valori;
• Restricţii temporare. Valorile anumitor atribute se compară cu
nişte valori temporare (rezultate din calcule etc.).
Restricţiile de comportament fiind foarte generale se gestionează fie la
momentul descrierii datelor (de exemplu prin clauza CHECK), fie în afara
modelului la momentul execuţiei.
Baze de date relationale
• Tranzacţia reprezintă o secvenţă liniară de operaţii
•
•
executate asupra unei baze de date care este partajată de
mai mulţi utilizatori.
Tranzacţiile se folosesc, de obicei, într-o procedură în care
se execută mai multe operaţii de actualizare a bazei de
date şi se doreşte garantarea faptului că toate operaţiile
s-au executat cu succes.
În cazul apariţiei unei erori la una din actualizări toate cele
anterioare se pot anula.
Baze de date relationale
O tranzacţie poate fi:
• Salvată (commited)-în situaţia în care toate operaţiile
tranzacţiei au fost încheiate cu succes, iar baza de
date a fost actualizată.
• Derulată înapoi (rollback)-în situaţia în care toate
operaţiile tranzacţionate au fost anulate, iar baza de
date a fost restaurată la starea dinaintea tranzacţiei.
Baze de date relationale
Caracterizarea generală a modelului relaţional.
1.
A fost propus de către IBM şi a revoluţionat reprezentarea datelor
în BD făcând trecerea la o nouă generaţie (a doua).
2.
Modelul este simplu, are o solidă fundamentare teoretică fiind
bazat pe teoria seturilor (ansamblurilor) şi pe logica matematică.
Baze de date relationale
3. Pot fi reprezentate toate tipurile de structuri de date de mare
complexitate, din diferite domenii de activitate.
4. Implementarea modelului se face logic prin atribute având rol de chei.
5. Baza de date relaţională este un ansamblu de tabele prin care se
reprezintă atât datele cât şi legăturile dintre ele.
Baze de date relationale
6. Limitele modelului relaţional:
•
•
•
•
prea marea simplitate a modelului îl face dificil de aplicat pentru
noile tipuri de aplicaţii (multimedia, internet etc.);
nu asigură o independenţă logică totală a datelor de aplicaţie;
pentru aplicaţii de volum şi complexitate foarte mari nu mai face
faţă;
poate introduce o redundanţă prea mare (la proiectare prin
tehnica de normalizare).