Sunteți pe pagina 1din 32

Partea I

Baze de date relaionale

Modelul relaional
Structura modelului relaional

Constrngeri de integritate
Structura modelului relaional
Conceptele ce stau la baza modelului
relaional:

}
relaie
difer ca noiuni dar sunt strns legate
tabel

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

CURSURI
Cod Denumire
01 Fizica
03 Chimie
04 Biologie
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

STUDENTI
NrInreg Nume Prenume DataNastere
276545 Ionescu Maria 25/11/1980
485745 Popescu Ana 23/04/1981
200768 Georgescu Paul 12/02/1981
587614 Luca Radu 10/10/1980
937653 Maftei Lucian 01/12/1980
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 3 1


Liverpool Milan 2 0
Real Madrid Roma 1 2
Roma Milan 0 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 3 1
Liverpool Milan 2 0
Real Madrid Roma 1 2
Roma Milan 0 1

Fig. 2.2 Relaie cu atribute


Structura modelului relaional
Pentru formalizarea conceptelor introduse anterior, definim:
D - mulimea domeniilor
X - mulimea atributelor
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)
Structura modelului relaional

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

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 EXAMENE
NrInreg Nume Prenume DataNastere Student Nota Curs
276545 Ionescu Maria 25/11/1980 276545 8 01
485745 Popescu Ana 23/04/1981 276545 9 04
200768 Georgescu Paul 12/02/1981 937653 9 01
587614 Luca Radu 10/10/1980 200768 9 04
937653 Maftei Lucian 01/12/1980

CURSURI
Cod Denumire Titular
01 Fizica Melinte
03 Chimie Mardare
04 Chimie 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)
Problem: 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

STUDENTI
NrInreg Nume Prenume DataNastere
200768 George Paul 12/02/1981
937653 Maftei Lucian 10/10/1980
937653 Luca Radu 01/12/1980 CURSURI
Cod Denumire Titular
01 Fizica Melinte
EXAMENE 03 Chimie Mardare
04 Chimie Dascalu
Student Nota Promovat Curs
200768 11 DA 05
937653 4 DA 01
937653 6 DA 04
276545 7 DA 01
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

STUDENTI EXAMENE CURSURI


NrInreg Nume Prenume DataNastere Student Nota Promovat Curs Cod Denumire Titular
200768 George Paul 12/02/1981 200768 11 DA 05 01 Fizica Melinte
937653 Maftei Lucian 10/10/1980 937653 4 DA 01 03 Chimie Mardare
937653 Luca Radu 01/12/1980 937653 6 DA 04 04 Chimie Dascalu
276545 7 DA 01
Constrngeri de integritate
Exemplu. Fie baza de date din figura urmtoare
STUDENTI EXAMENE CURSURI
NrInreg Nume Prenume DataNastere Student Nota Promovat Curs Cod Denumire Titular
200768 George Paul 12/02/1981 200768 11 DA 05 01 Fizica Melinte
937653 Maftei Lucian 10/10/1980 937653 4 DA 01 03 Chimie Mardare
937653 Luca Radu 01/12/1980 937653 6 DA 04 04 Chimie Dascalu
276545 7 DA 01
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
constrngeri la nivel de domeniu
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
constrngeri inter-relaionale
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 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 Prenume DataNastere Facultate


284328 Ionescu Maria 29/04/59 AC
296328 Ionescu Ana 29/04/59 TCM
587614 Ionescu Lucian 01/05/61 Textile
934856 Popescu Lucian 01/05/61 AC
965536 Popescu Lucian 05/03/58 TCM

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 Prenume DataNastere Facultate
284328 Ionescu Maria 29/04/59 AC
296328 Ionescu Ana 29/04/59 TCM
587614 Ionescu Lucian 01/05/61 Textile
934856 Popescu Lucian 01/05/61 AC
965536 Popescu Lucian 05/03/58 TCM
Fig.2.5 Exemplu de relaie pentru evidenierea cheilor
Mulimea {NrInreg} este o cheie
Mulimea {Nume, Prenume, DataNastere} este o cheie, dar este i super-cheie!
Mulimea {NrInreg, Facultate} este o super-cheie, dar nu este 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
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 EXAMENE CURSURI


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

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. Apar dou situaii:
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 AUTOVEHICUL
NrInreg Nume Prenume NrInmat Judet Proprietar Adresa
567 Dascalescu Eugen 03 BBB IS Maftei Eduard Nicolina 30
456 Ionescu George 01 CCC IS Maftei Eduard Nicolina 30
638 Popescu Dan 02 AAA IS Luca Marian Primaverii 4
03 BBB VS Melinte Dan 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 respect doar una dintre cele dou
constrngeri menionate anterior

ACCIDENT
Cod Jud1 NrInmat1 Jud2 NrInmat2
6207 IS 03 BBB BC 02 DDD
6974 BC 02 AAA BC 02 DDD

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

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


Constrngeri de integritate

Observaie

n cazul relaiilor cu mai multe chei, se va alege o cheie primar i toate


referirile trebuie redirectate spre ea
Probleme propuse
1. Se consider baza de date din figura urmtoare
PACIENT INTERNARE
Cod Nume Prenume Pacient Intrare Iesire Sectie
A102 Popescu Maria A102 2/05/2004 9/05/2004 A
B372 Popa Mihai A102 2/12/2004 2/01/2005 A
B543 Ionescu Ioana S555 5/10/2004 3/12/2004 B
B444 Ionescu Radu B444 1/12/2004 1/01/2005 B
S555 Vasile Ion S555 5/10/2004 1/112004 A

MEDIC SECTIE
Numar Nume Prenume Sectie Cod Nume Specialist
203 Dumitrescu Mihai A A Chirurgie 203
574 Georgescu Stefan B B Pediatrie 574
461 Barbu Petre B C Medicala 530
530 Petrescu George C
405 Filipescu George A
501 Barbulescu Stefan 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