Sunteți pe pagina 1din 36

Modelul relaţional

Elementele unui model de date


pentru baze de date
◼ Structura modelului
◼ definirea obiectelor (entităţilor) şi a caracteristicilor
(câmpurilor-atributelor) asociate
◼ definirea legăturilor dintre obiecte (asocieri).
◼ Operatorii care acţionează asupra structurii de
date
◼ Reguli de integritate - restricţii care asigură
menţinerea corectitudinii datelor şi coerenţa lor.

Mihaela Muntean-
Modelul relaţional
◼ a fost propus de Edgar Frank Codd de la IBM, în
1970 pentru a asigura independenţa datelor.
◼ a fost implementat în SGBD-uri comerciale în 1981.
◼ este cel mai utilizat model de date
◼ IBM, Informix, Oracle, SQL Server, etc.
◼ integrarea facilităţilor oferite de modelul orientat obiect în
modelul relaţional- modelul relaţional obiectual
◼ Informix Universal Server, Oracle, DB2

Mihaela Muntean-
Modelul relaţional
◼ este bazat pe noţiunea matematică de
relaţie.
◼ relaţiile sunt reprezentate natural prin
tabele.

Mihaela Muntean-
Mihaela Muntean-
Nume Adresa numartelefon

Ionescu Mihai Bravu 11

Popescu Dristor 22

◼ seturi de date Florescu Dristor 77


◼ Locuitori={I, P, F, V}
◼ Strazi ={M, D, R}
◼ Numeretelefon ={11,22,77}
◼ un nou set de date utilizând produsul cartezian:
Locuitori Strazi Numeretelefon
{(I, M, 11), (I,M, 22), ((I, M, 77), (I, D, 11), (I, D, 22), (I, D, 77), (I, R, 11), (I,R, 22),
((I, R, 77), (P, D, 11), (P, D, 22), (P, D, 77), (P, M, 22), (P, M, 77), (P, M, 11), (F,M,
22), ((F, M, 77), (F, M, 11), (F, D, 22), (F, D, 77), (F, D, 11), (F, R, 22), (F, R, 77), (F,
R, 11), (V,M, 22), ((V, M, 77), (V, M, 11), (V, D, 22), (V, D, 77), (V, D, 11), (V, R,
22), (V, R, 77), (V, R, 11)}
◼ Elementele acestui set de date se numesc tripleţi (x,y,z) cu xLocuitori, yStrazi,
zNumeretelefon
◼ se aleg tripleţii care pot fi utilizaţi în cartea de telefoane -un subset din setul
original-relaţie.
◼ Cartea de telefoane este formată din subsetul de date:{( I, M, 11), (P, D, 22), (F,
D, 77)}.
Structura modelului relaţional
◼ Domeniul este un ansamblu de valori, caracterizat
printr-o denumire.
◼ explicit : D1:{“F”, “M”})
◼ implicit : D2:{a| a N})
◼ Relaţia (tabela) reprezintă un subansamblu al produsului
cartezian al mai multor domenii (D1D2D3….)
◼ caracterizat printr-o denumire
◼ conţine tupluri cu semnificaţie

Mihaela Muntean-
Structura modelului relaţional

Nrmatricol:D1 Nume si prenume :D2 Facultate:D3


1 Popa Elena COM
2 Anton Dan REI
…. …. ….

Relaţia STUDENTI:
D1: {x| x N, x[1, 10000]}
D2: domeniul cu numele de persoane
D3: {“CSIE”, “COM”, “REI”, “MK”, “FIN”, “MAN”}

Mihaela Muntean-
Structura modelului relaţional
◼ Atributul - coloana unei tabele, caracterizată printr-o
denumire.
◼ Numele atributului exprimă, de obicei, semnificaţia valorilor
luate dintr-un domeniu corespunzător.
◼ Fiecare atribut îşi ia valorile dintr-un domeniu.
◼ Mai multe atribute pot lua valori din acelaşi domeniu
◼ Ordinea atributelor nu trebuie să prezinte nici o importanţă.

Mihaela Muntean-
Structura modelului relaţional

Relatia Studenti
Nrmatricol:D1 Facultate:D3 Nume:D2
1 COM Popa Elena
2 REI Anton Dan
…. …. ….

Relatia Studenti
Nrmatricol:D1 Nume:D2 Facultate:D3
1 Popa Elena COM
2 Anton Dan REI
…. …. ….
Mihaela Muntean-
Structura modelului relaţional
◼ Tuplul este linia dintr-o tabelă şi nu are o
denumire
◼ ordinea liniilor (tuplurilor) nu trebuie să prezinte nici
o importanţă.
◼ numărul tuplurilor dintr-o relaţie reprezintă cardinalul
relaţiei,
◼ numărul valorilor dintr-un tuplu defineşte gradul
relaţiei.

Mihaela Muntean-
Structura modelului relaţional
◼ Valorile unui tuplu al unei relații R aparţin produsului cartezian
al domeniilor relației R.
◼ De exemplu, tabela Studenti conține :

tuplul <1, ‘Popa Elena’, ‘COM’>

unde : 1D1
‘Popa Elena’D2
‘COM’D3

Mihaela Muntean-
Structura modelului relaţional
◼ Schema unei relaţii
STUDENTI(nrmatricol: integer, nume: text (50), facultate:
text(4))
Nrmatricol:D1 Facultate:D3 Nume:D2
1 COM Popa Elena
2 REI Anton Dan
…. …. ….

Cardinalitatea relaţiei (nr. tupluri)=1000 tupluri

Mihaela Muntean-
Structura modelului relaţional
◼ Cheia primară este un atribut sau un ansamblu
de atribute cu ajutorul căruia se poate identifica
unic un tuplu dintr-o relație.
◼ Tabela Studenti: nr matricol -cheia primara

Mihaela Muntean-
Definirea asocierilor
◼ Se face logic construind asocieri între diferite tabele:
◼ atribute de legătură (chei externe-foreign key).

◼ în tabelele implicate în asociere (1:1, 1:m)

◼ în tabele distincte (m:n)

◼ LMD (SELECT-SQL)

◼ LDD (Create table….foreign key…references…)

Mihaela Muntean-
Restricţiile de integritate
◼ reguli pe care trebuie să le satisfacă datele
pentru a putea fi considerate corecte şi coerente
◼ restricţii de integritate structurale
◼ restricţii de integritate de comportament (semantice)
◼ gestionate de regula in afara modelului de date
◼ triggeri, codul aplicatiei

Mihaela Muntean-
Restricţii de integritate structurale
◼ sunt specifice modelului relaţional
◼ se definesc prin compararea unor valori ale
datelor din cadrul tabelelor:
◼ Restricţia de unicitate a cheii
◼ Restricţia referenţială
◼ Restricţia entităţii (not null)

Mihaela Muntean-
Restricţiile de integritate minimale

◼ sunt definite toate în raport cu noţiunea de cheie a unei


relaţii
◼ Cheia unei relaţii este un ansamblu minim de atribute
prin care se poate identifica unic orice tuplu din relaţie
◼ un atribut (cheie simplă)
◼ mai multe (cheie compusă).
◼ pot exista mai multe combinaţii de atribute cu proprietatea de
identificare a tuplurilor (chei candidate).
◼ cheie primară
◼ LDD (create table-SQL, alter table-SQL)
◼ Dictionarul BD – informatii despre restrictii
Mihaela Muntean-
Restricţiile de integritate
minimale
◼ Restricţia de unicitate a cheii
◼ într-o relaţie să nu existe două tupluri cu aceeaşi
valoare pentru ansamblul atributelor cheie.
◼ Restricţia entităţii (not null)
◼ într-o relaţie atributele din cheia primară să nu ia
valori null.
◼ informaţia incompletă în modelul relaţional- se
utilizează o tehnică simplă -valoarea null

Mihaela Muntean-
Tipuri de valori null
Oras Adresa sediu
Timişoara B-dul Republicii 55
Cluj null
Sinaia null
Piteşti null

◼ oraşele reşedinţă de judeţ au sedii ale prefecturilor, alte oraşe nu:


◼ Cluj este un oraş reşedinţă de judeţ, deci are un sediu (dar nu ştim adresa
sediului);
◼ Timişoara este un oraş reşedinţă de judeţ, are un sediu cu adresă cunoscută;

◼ Sinaia nu este un oraş reşedinţă de judeţ şi nu are sediu;

◼ Piteşti a devenit recent oraş reşedinţă de judeţ; are sediu stabilit? Nu ştim.

Mihaela Muntean-
Tipuri de valori null
◼ Valoare necunoscută
◼ o valoare dintr-un domeniu, dar nu este
cunoscută (de exemplu Cluj);
◼ Valoarea inexistentă
◼ atributul nu este aplicabil pentru tuplu (de
exemplu Sinaia);
◼ nu ştim dacă o valoare există sau nu (de
exemplu Piteşti) ;
Mihaela Muntean-
Restricţia referenţială
◼ impune ca într-o relaţie R1 care referă o relaţie R2
(există o legătură) valorile cheii externe să figureze
printre valorile cheii primare din relaţia R2 sau să fie
valori null (nedefinite).
◼ Relaţia R1 - relaţia care referă
◼ R2 - relaţia referită.
◼ o asociere nu poate exista decât între parteneri cunoscuţi,
definiţi.
◼ atunci când într-o anumită situaţie, asocierea nu e
aplicabilă, unul dintre parteneri va fi desemnat prin
valoarea null cu semnificaţia de partener inexistent.

Mihaela Muntean-
Mihaela Muntean-
Mihaela Muntean-
Alte restricţii :
◼ Restricţii de domeniu (domeniul să se încadreze între
anumite valori).

Restricţie de domeniu

Mihaela Muntean-
Mihaela Muntean-
Lookup wizard
Exemplu
Crearea unei BDR Access

Customers(CustomerName text (100) primary key, LastName text(100),


FirstName text(100), Address text(255), city text(100), state text(100))

Orders(orderid number primary key, orderdate date/time, employee text(100),


customername text(100) foreign key, paymenttype text(50))
Orderdate---format dd/mm/yyyy
Products (productname text(100) primary key, category text(100)
Order_line(orderid number , productname text(100), sales currency)
Orderid si productname formeaza cheia primara
Incarcarea datelor
◼ Se vor incarca datele in cele 4 tabele

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