Documente Academic
Documente Profesional
Documente Cultură
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
Relaie - noiune formal - domeniul teoriei mulimilor Tabel - noiune simpl i intuitiv
Vom presupune c bazele de date sunt alctuite din relaii finite, definite pe domenii infinite
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
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
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
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
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 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
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 inter-relaionale
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
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
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
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
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
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
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.
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.