Sunteți pe pagina 1din 28

Partea I Baze de date relaionale Modelul relaional

Structura modelului relaional Constrngeri de integritate

Modelul relaional (E.F. Codd 1970) la baza majoritii sistemelor cu baze de date Adoptarea modelului relaional ca standard nu a fost imediat din cauza nivelului nalt de abstractizare Primele prototipuri de sisteme relaionale au fost create n anii 70 Primele sisteme relaionale au aprut pe pia n anii 80

Structura modelului relaional


Conceptele ce stau la baza modelului relaional:
relaie tabel

difer ca noiuni dar sunt strns legate

Relaie - noiune formal - domeniul teoriei mulimilor Tabel - noiune simpl i intuitiv

Structura modelului relaional


Definiii Fie date mulimile D1 i D2. Produsul cartezian dintre D1 i D2 (notat D1 D2 ) se definete ca fiind mulimea perechilor ordonate (v1 , v2 ), v1 D1 , v2 D2 . O relaie pe mulimile D1 i D2 (numite domeniile relaiei) este o submulime a produsului cartezian D1 D2 Mulimile D1 i D2 sunt finite sau nu ?
Este de dorit ca domeniile s aib dimensiuni infinite, a.. s putem presupune existena unei valori care nu e prezent n baza de date. n practic relaiile trebuie s fie finite deoarece bazele de date trebuie stocate n sisteme computerizate de dimensiuni finite.

Vom presupune c bazele de date sunt alctuite din relaii finite, definite pe domenii infinite

Structura modelului relaional


Definiiile anterioare pot fi generalizate Fie n > 0 mulimi D1 , D2 ,..., Dn , nu neaprat distincte Produsul cartezian D1 D2 ... Dn este dat de mulimea n-tuplurilor v1 , v2 ,..., vn , unde vi Di , i = 1, n O relaie matematic pe domeniile D1 , D2 ,..., Dn este o submulime a produsului cartezian D1 D2 ... Dn n - gradul produsului cartezian i al relaiei (dat de numrul componentelor produsului cartezian) cardinalitatea relaiei este dat de numrul n-tuplurilor analogia relaie mulime implic:

ntre n-tupluri nu exist o ordine predefinit n-tuplurile unei relaii sunt distincte unele de celelalte un tabel
reprezint o relaie doar dac liniile sale sunt diferite ntre ele

Structura modelului relaional

Pe fiecare n-tuplu se definete o relaie de ordine; fiecare component i a fiecrui tuplu corespunde domeniului i Ordonarea ntre domeniile unei relaii - caracteristic nesatisfctoare a conceptului de relaie d.p.d.v. al posibilitii organizrii i utilizrii datelor Real Madrid Liverpool Real Madrid Roma Liverpool Milan Roma Milan 3 2 1 0 1 0 2 1

Fig. 2.1 Exemplu de relaie n care semnificaia datelor este dat de poziia lor n cadrul tuplului

Structura modelului relaional

Rezolvare: notaia non-poziional se asociaz nume (atribute) domeniilor unei relaii Atributele descriu rolurile jucate de domenii
EchipaGazda EchipaOaspete GoluriGazde GoluriOaspeti Real Madrid Liverpool Real Madrid Roma Liverpool Milan Roma Milan 3 2 1 0 1 0 2 1

Fig. 2.2 Relaie cu atribute

Structura modelului relaional


Pentru formalizarea conceptelor introduse anterior, definim funcia

DOM : X D care asociaz fiecrui atribut un domeniu


Definiie. Un tuplu definit pe o mulime de atribute este o funcie t care asociaz fiecrui atribut A X o valoare din domeniul DOM ( A) Definiie. O relaie pe o mulime de atribute X este o mulime de tupluri definite pe X Notaie. Fie t un tuplu definit pe o mulime de atribute X i A X un atribut. Prin t[A] se noteaz valoarea tuplului t n domeniul DOM ( A) Exemplu Fie t primul tuplu din relaia prezentat n figura 2.2 t[EchipaOaspete]=Liverpool t[EchipaOaspete, GoluriOaspeti]=Liverpool,1

Structura modelului relaional

BD sunt formate din mai multe relaii


tuplurile acestor relaii conin valori comune atunci cnd acest lucru este necesar pentru stabilirea unor corespondene
STUDENTI NrInreg 276545 485745 200768 587614 937653 Nume Ionescu Popescu Georgescu Luca Maftei Prenume Maria Ana Paul Radu Lucian DataNastere 25/11/1980 23/04/1981 12/02/1981 10/10/1980 01/12/1980 EXAMENE Student Nota Curs 276545 8 01 276545 9 04 937653 9 01 200768 9 04

CURSURI Cod Denumire 01 Fizica 03 Chimie 04 Chimie

Titular Melinte Mardare Dascalu

Fig. 2.3 Exemplu de baz de date relaional

Structura modelului relaional


Schema unei relaii este format din numele relaiei R i o mulime de atribute X = { A1 , A2 ,..., An } i se noteaz R(X); fiecrui atribut i se asociaz un domeniu Schema bazei de date este format dintr-o mulime de scheme de relaii:

R = {R1 ( X 1 ), R2 ( X 2 ),..., Rn ( X n )}
Instana unei relaii (pe scurt relaia) avnd schema R(X) este dat de mulimea r a tuplurilor definite pe mulimea de atribute X Instana bazei de date (pe scurt baza de date) avnd schema

R = {R1 ( X 1 ), R2 ( X 2 ),..., Rn ( X n )} este mulimea r = {r1 , r2 ,..., rn } de


relaii n care fiecare ri , i = 1, n este o relaie definit pe schema Ri ( X i ) Exemplu Schema bazei de date din figura 2.3 este R = {STUDENTI(NrInreg, Nume, Prenume, DataNastere), EXAMENE(Student, Nota, Curs), CURSURI(Cod, Denumire, Titular)}

Structura modelului relaional


Informaiile trebuie reprezentate sub forma unor tupluri omogene de date n particular, putem reprezenta n cadrul unei relaii doar tupluri ce corespund schemei relaiei n practic exist cazuri n care datele disponibile nu corespund cu exactitate formatului ales Exemplu Se consider schema PERSOAN (Nume, Prenume, Adres, Telefon) Pot exista tupluri pentru care valoarea atributului Telefon nu este disponibil Rezolvarea problemei indisponibilitii valorilor: s-a inclus posibilitatea ca fiecare atribut al unui tuplu s poat lua fie valori din domeniul asociat, fie o valoare special, denumit valoare null Valoarea null indic absena informaiei
este o valoare suplimentar, ce nu este coninut de domeniu; la definirea unei relaii se pot specifica acele atribute care accept valori null

Constrngeri de integritate
Exist situaii cnd nu orice mulime de tupluri n cadrul unei scheme reprezint informaii corecte pentru aplicaie
Pentru nlturarea situaiilor de incorectitudine a informaiilor a fost introdus conceptul de constrngere de integritate

Constrngerea de integritate - proprietate ce trebuie satisfcut de toate instanele corecte ale bazei de date O constrngere poate fi privit ca un predicat ce asociaz valoarea adevrat sau fals fiecrei instane Se pot defini mai multe constrngeri pentru o baz de date Vom considera corecte (sau legale) acele instane care satisfac toate constrngerile impuse

Constrngeri de integritate

Clasificare
constrngeri intra-relaionale - sunt definite pe o singur relaie a bazei de date i pot fi de dou tipuri: constrngeri la nivel de tuplu pot fi evaluate pe fiecare tuplu,
independent de celelalte tupluri

constrngeri la nivel de domeniu (la nivel de valoare) impun restricii


asupra domeniului unui atribut

constrngeri inter-relaionale implic mai multe relaii

Constrngeri de integritate
Exemplu. Fie baza de date din figura urmtoare
STUDENTI NrInreg Nume Prenume 200768 George Paul 937653 Maftei Lucian 937653 Luca Radu DataNastere 12/02/1981 10/10/1980 01/12/1980 EXAMENE Student Nota Promovat Curs 05 200768 11 DA 937653 4 DA 01 937653 6 DA 04 276545 7 DA 01 CURSURI Cod Denumire Titular 01 Fizica Melinte 03 Chimie Mardare 04 Chimie Dascalu

Fig.2.4 Baz de date cu informaii incorecte

constrngeri la nivel de tuplu:

n primul tuplu al relaiei EXAMENE avem ca rezultat la un examen nota 11 n al doilea tuplu al relaiei EXAMENE un student este considerat promovat la examen dei nota sa este 4 pentru atributul Not din relaia EXAMENE, numai valorile cuprinse ntre 1 i 10 sunt permise ultimele dou tupluri ale relaiei STUDENTI conin informaii pentru doi studeni diferii dar cu acelai numr de nregistrare, identificarea studenilor fiind astfel ambigu al patrulea tuplu al relaiei EXAMENE are, pentru atributul Student, o valoare care nu apare printre numerele de nregistrare din relaia STUDENTI primul tuplu al relaiei EXAMENE are, pentru atributul Curs, o valoare care nu apare printre codurile cursurilor din relaia CURSURI

constrngeri la nivel de domeniu

constrngeri inter-relaionale

Constrngeri de integritate Constrngerile pe tuplu - condiii impuse valorilor fiecrui tuplu,


independent de celelalte tupluri
sintax - expresii booleene (folosind conectorii AND, OR i NOT) ale cror atomi compar valorile atributelor implicate n constrngeri sau expresii aritmetice folosind valorile atributelor singura condiie este ca aceste expresii s utilizeze valorile unui singur tuplu Exemple 1) Expresiile ce descriu constrngerile intra-relaionale nclcate n exemplul prezentat n figura 2.4: (Nota 1) AND (Nota 10) (Promovat = DA) AND (Nota 5) 2) Fie dat schema PLAT(Dat, Sum, Deduceri, Net) Se poate defini o constrngere care impune condiia ca suma net s fie egal cu diferena dintre suma total i deduceri: Net = Sum - Deduceri

Constrngeri de integritate Constrngeri de chei


O cheie este o mulime de atribute ce ajut la identificarea n mod unic a tuplurilor unei relaii

Definiii O mulime de atribute K este o super-cheie a relaiei r dac r nu conine dou tupluri distincte t1 i t2 astfel nct t1[K] = t2[K] O mulime K de atribute este o cheie a relaiei r dac mulimea K este o super-cheie minimal (nu exist alt super-cheie K a lui r astfel nct K ' K )

Constrngeri de integritate
Exemplu. Se consider urmtoarea relaie
STUDENT NrInreg Nume 284328 Ionescu 296328 Ionescu 587614 Ionescu 934856 Popescu 965536 Popescu Mulimea {NrInreg} este o cheie Mulimea {Nume, Prenume, DataNastere} este o cheie Mulimea {NrInreg, Facultate} este o super-cheie Mulimea {Nume, Facultate} este o cheie ntrebare: Putem afirma acest lucru n cazul general ? Rspuns: nu, deoarece pot exista studeni cu acelai nume i care au terminat aceeai facultate Spunem c, n acest caz, mulimea {Nume, Facultate} este, prin ans, cheie a relaiei Pentru schema STUDENTI (NrInreg, Nume, Prenume, DataNastere, Facultate) se pot stabili dou constrngeri ce impun urmtoarele chei: {NrInreg} i {Nume, Prenume, DataNastere} Relaia din figura 2.5 satisface ambele constrngeri de chei Prenume Maria Ana Lucian Lucian Lucian DataNastere 29/04/59 29/04/59 01/05/61 01/05/61 05/03/58 Facultate AC TCM Textile AC TCM

Fig.2.5 Exemplu de relaie pentru evidenierea cheilor

Constrngeri de integritate
Pentru orice relaie se poate stabili cel puin o cheie se permite:
accesul la toate datele din baza de date identificarea unic a datelor stabilirea unor legturi ntre datele coninute de diverse relaii

Exemplu. Se consider baza de date din figura 2.3


STUDENTI NrInreg 276545 485745 200768 587614 937653 Nume Ionescu Popescu Georgescu Luca Maftei Prenume Maria Ana Paul Radu Lucian DataNastere 25/11/1980 23/04/1981 12/02/1981 10/10/1980 01/12/1980 EXAMENE Student Nota Curs 276545 8 01 276545 9 04 937653 9 01 200768 9 04 CURSURI Cod 01 03 04 Denumire Fizica Chimie Chimie Titular Melinte Mardare Dascalu

Relaia EXAMENE face referire la studenii din relaia STUDENTI prin NrInreg i la cursurile din relaia CURSURI prin Cod
NrInreg este cheia relaiei STUDENTI Cod este cheia relaiei CURSURI

Valorile atributelor cheie sunt utilizate pentru referirea coninutului altor relaii

Constrngeri de integritate

Cheia primar - cheia prin intermediul creia se realizeaz referine ntre relaii Constrngere: este interzis utilizarea valorilor null pentru cheile primare,
Valorile null sunt permise pentru celelalte chei

Pot aprea situaii n care nu exist atribute ale cror valori s fie disponibile pentru o cheie primar se va introduce un atribut suplimentar care va fi generat i asociat fiecrui tuplu n momentul inserrii n relaia corespunztoare

Constrngeri de integritate

Constrngeri de referin
O constrngere de referin (sau cheie strin) ntre o mulime de atribute X ale relaiei R1 i alt relaie R2 este satisfcut dac valorile fiecrui tuplu din R1 corespunztoare mulimii X se regsesc printre valorile cheii primare a relaiei R2 a) Cheia relaiei R2 este unic i conine un singur atribut B Constrngerea de referin ntre mulimea X (format din atributul A) i relaia R2 este satisfcut dac t1 R1 cu t1[ A] NULL, t2 R2 astfel nct t1[ A] = t2 [ B ] b) Cheia relaiei R2 este unic i coincide cu o mulime K de atribute Pentru stabilirea unei constrngeri ntre X i R2 trebuie specificat o anumit ordine pentru ambele mulimi (X i K). Indicnd atributele n ordine, X = A1 A2 ... Ap , K = B1 B2 ... B p , constrngerea este satisfcut dac t1 R1 cu t1[ Ai ] NULL, i = 1, p, t2 R2 astfel nct

t1[ Ai ] = t2 [ Bi ], i = 1, p

Constrngeri de integritate
Exemplu. Se consider baza de date din figura urmtoare
CADRE NrInreg Nume 567 Dascalescu 456 Ionescu 638 Popescu Prenume Eugen George Dan AUTOVEHICUL NrInmat Judet Proprietar 03 BBB IS Maftei Eduard 01 CCC IS Maftei Eduard 02 AAA IS Luca Marian 03 BBB VS Melinte Dan Adresa Nicolina 30 Nicolina 30 Primaverii 4 Primaverii 17

CONTRAVENTIE Cod Data Cadru Judet NrInmat 143256 25/10/92 567 IS 02 AAA 987554 26/10/92 456 IS 02 AAA 987557 26/10/92 456 IS 03 BBB 630876 15/10/92 456 VS 03 BBB 539856 12/10/92 567 VS 03 BBB
Fig.2.6 Baz de date cu constrngeri de referin

Se definesc urmtoarele constrngeri de referin:

ntre atributul Cadru al relaiei CONTRAVENIE i relaia CADRE ntre atributele NrInmat i Judet ale relaiei CONTRAVENIE i relaia
AUTOVEHICUL, ordinea atributelor n cheia relaiei AUTOVEHICUL fiind NrInmat, Judet

Baza de date din figura 2.6 respect ambele constrngeri

Constrngeri de integritate
Dac cheia relaiei R2 este unic i coincide cu o mulime K de atribute se poate obine o coresponden prin intermediul numelor atributelor nesatisfctoare se recurge la impunerea unei ordini a atributelor Exemplu S presupunem c dorim s includem ntr-o relaie numrul de nregistrare i judeele celor dou autovehicule implicate ntr-un accident. O schem posibil ar fi: ACCIDENT(Cod, Judet1, NrInmat1, Judet2, NrInmat2,...) Corespondena implicat de constrngerea de referin cu relaia AUTOVEHICUL nu va putea fi stabilit prin numele atributelor deoarece atributele din relaia ACCIDENT difer de numele atributelor cheii relaiei AUTOVEHICUL se va specifica faptul c referina asociaz Judet1 la Judet i NrInmat1 la NrInmat, respectiv Judet2 la Judet i NrInmat2 la NrInmat

Constrngeri de integritate
Exemplu Baza de date din figura urmtoare nu respect cele dou constrngeri menionate anterior
ACCIDENT Cod Jud1 NrInmat1 Jud2 NrInmat2 03 BBB 02 AAA BC BC 02 DDD 02 DDD 6207 IS 6974 BC

AUTOVEHICUL NrInmat 01 CCC 02 AAA 03 BBB Judet IS BC IS Proprietar Maftei Eduard Luca Marian Melinte Dan Adresa Nicolina 30 Primaverii 4 Primaverii 17

Fig.2.7 Baz de date care nu satisface constrngerile de referin

Constrngeri de integritate

Observaii n cazul relaiilor cu mai multe chei, se va alege o cheie primar i toate referirile trebuie redirectate spre ea exist sisteme de gestiune a bazelor de date care nu permit indicarea n mod explicit a unei chei primare; n aceste cazuri, constrngerea de referin trebuie s indice explicit atributele ce formeaz cheia la care se face referire

Probleme propuse 1. Se consider baza de date din figura urmtoare


PACIENT Cod A102 B372 B543 B444 S555 MEDIC Numar 203 574 461 530 405 501 Nume Dumitrescu Georgescu Barbu Petrescu Filipescu Barbulescu Prenume Mihai Stefan Petre George George Stefan Sectie A B B C A A Nume Popescu Popa Ionescu Ionescu Vasile Prenume Maria Mihai Ioana Radu Ion Pacient A102 A102 S555 B444 S555 INTERNARE Intrare 2/05/2004 2/12/2004 5/10/2004 1/12/2004 5/10/2004 SECTIE Cod A B C Nume Chirurgie Pediatrie Medicala Specialist 203 574 530 Iesire 9/05/2004 2/01/2005 3/12/2004 1/01/2005 1/112004 Sectie A A B B A

Punei n eviden cheile i constrngerile de referin din baza de date prezentat. Precizai dac respectivele constrngeri sunt satisfcute de toate bazele de date care au aceeai schem cu baza de date din figur. Precizai care atribute pot admite valori null.

2. Se consider urmtoare informaii referitoare la managementul mprumuturilor dintr-o bibliotec personal:

proprietarul mprumut cri prietenilor, care se nregistreaz prin


intermediul numelor (astfel nct s se evite repetiiile)

o carte este referit prin titlul su (nu exist dou cri cu acelai titlu) cnd clientul mprumut o carte, se nregistreaz data mprumutului i
proprietarul fixeaz data returnrii Definii o schema relaional pentru reprezentarea informaiilor de mai sus, preciznd domeniile adecvate pentru atribute i o instan sub form tabelar Precizai cheia sau cheile relaiei

3. Reprezentai prin intermediul unei relaii sau a mai multora informaiile coninute n mersul trenurilor dintr-o staie: numrul trenului, ora sosirii, ora plecrii, punctul de plecare, destinaia final, tipul de tren i opririle de pe parcurs

4. Definii o schem a unei baze de date n care se organizeaz informaiile referitoare la o companie care are angajai (fiecare cu codul numeric personal, nume, prenume i data naterii) i subsidiari (fiecare cu cod, ramur i director, care este angajat). Fiecare angajat lucreaz pentru un subsidiar. Indicai cheile i constrngerile de referin ale schemei. Artai o instan a bazei de date i verificai dac se respect constrngerile.

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