Sunteți pe pagina 1din 9

CURSUL 2(Modelul Relaional)

Istoric: modelul ierarhic, modelul retea Fundamentele teoretice ale modelului relaional Modelul relaional a fost introdus de E. F. Codd n 1970 i are la baz conceptul de relaie definit n teoria matematic a mulimilor ca fiind o submulime a produsului cartezian al mai multor mulimi: R M1 M2 Mn. Relaia poate fi definit i n termenii logicii matematice. Fie m = (m1, m2, , mn) M1 M2 Mn i un predicat P(m1, m2, , mn), atunci: [M1, M2 , , Mn] R = (m1, m2, , mn) / P (m1, m2, , mn) = adevrat. Familia de mulimi pe care este definit relaia se numete domeniu, iar dac M1 = M2 = = Mn, relaia este omogen. Numrul n se numete gradul relaiei (aritatea relaiei), un element al relaiei t = (m1, m2, , mn) este numit tuplu, iar numrul de tupluri indic cardinalul relaiei. Schema unei relaii este format din numele relaiei, atributele acesteia i restriciile de integritate. Domeniul este o noiune mai cuprinztoare dect atributul, reprezentnd mulimea tuturor valorilor posibile care definesc o anumit proprietate a unui obiect, spre deosebire de atribut, care reprezint mulimea valorilor existente la un moment dat n coloana pe care o desemneaz n cadrul relaiei. ntr-o relaie pot exista mai multe atribute care iau valori n aceleai domenii. Relaiile se reprezint ntr-o form simpl prin tabele, supuse urmtoarelor restricii: n fiecare coloan toate valorile sunt de acelai fel; fiecare valoare este un numr sau un ir de caractere (nu trebuie s fie grup sau ansamblu); ordinea liniilor n tabel nu este predefinit i nu sunt admise duplicate; coloanele sunt identificate prin nume distincte care reprezint atributele relaiei. Privit prin prisma modelului relaional, baza de date apare ca o colecie de relaii (tabele), n care fiecare coloan reprezint un atribut distinct, iar fiecare rnd, un tuplu distinct; de unde i apelativul tabel bidimensional. Tuplurile unei relaii se pot identifica n mod unic prin intermediul valorilor unuia sau mai multor atribute (eventual toate atributele), care joac rol de cheie primar a relaiei respective. Se numete domeniu primar un domeniu pe care este definit un singur atribut drept cheie primar. Dndu-se dou relaii R1 i R2 cu atributele A1 i A2 chei primare definite pe acelai domeniu primar D, spunem c A1 este cheie extern, dac, utiliznd o parte din valorile ei sau toate, putem regsi tuplurile relaiei R2. Altfel spus, un atribut al unei relaii este cheie extern, dac se regsete pe post de cheie primar ntr-o alt relaie. Deoarece relaiile reflect un anumit aspect din realitate, acestea se supun unor restricii care sunt de dou tipuri: restricii de integritate care depind de semantica valorilor domeniilor i care cer ca relaiile s se supun urmtoarelor reguli: integritatea entitii, prin care valorile cheii primare trebuie s fie diferite de zero; altfel cheia nu va mai fi identificator; integritatea referirii, potrivit creia valorile unei chei externe trebuie s refere tuplurile unei alte relaii sau s fie nedefinite. alte restricii care se aplic asupra domeniilor, reflectnd anumite corelaii de ordin valoric (egalitate, inegalitate). __________________________________________________________________________
Curs 2 BD NP 1/9

Exemplu: Tabela SALARIATI Cheia primar Nr matricol 115 118 . 188 Unde: Nume i prenume Ion Andrei Dan Marius . Rica Marius

Cheia extern Cod loc activitate 11 11 12

Tabela LOC_ACTIVITATE refer Cheia primar

Cod loc activitate 11 12

Denumire Departament GMP Financiar ..

{115, 118, ,188} domeniu de definiie al atributului Nr Matricol; gradul tabelei LOC_ACTIVITATE este 2. Tabelele bazei de date respect urmtoarele cerine: fiecare tuplu(rnd al tabelei) este diferit de celelelte tupluri; ordinea stocrii tuplurilor n tabel poate fi modificat fr restricii; coloanele tabelei sunt identificate prin nume distincte, fiecare coloan fiind rezervat unui atribut definit n schema relaiei; toate realizrile unui atribut (aparinnd unei coloane) prezint acelai tip i formeaz un domeniu; toate realizrile unui atribut sunt atomice. Algebra relaional Algebra relaional poate fi definit ca un set de operatori, care prelucreaz relaii n scopul obinerii altor relaii. Operatorii relaionali se pot grupa n: operatori de baz, care pot genera toat clasa operatorilor relaionali; operatori auxiliari. Operatorii relaionali de baz se mpart n operatori de asamblare, operatori unari i operatori de extensie. Operatorii de asamblare sunt operatori binari, care primesc la intrare dou relaii i genereaz la ieire o singur relaie. Acetia sunt: reuniunea, diferena i produsul cartezian, care au aceeai semnificaie ca i n teoria mulimilor. Reuniunea a dou relaii R i S (RUS), cu aceeai structur, unde R este format din n tupluri i S este format din m tupluri, are ca rezultat o a treia relaie T, avnd aceeai structur cu a relailor surs i coninnd m+n tupluri.

__________________________________________________________________________
Curs 2 BD NP 2/9

Relaia T (RUS) C C A B C c1 c3 a1 b1 c1 c2 c4 a2 b2 c2 c5 a3 b3 c3 a4 b4 c4 a5 b5 c5 Intersecia a dou relaii R i S cu aceeai structur (RS), este o relaie T, (cu aceeai structur), coninnd tuplurile identice aparinnd att lui R ct i lui S. Intersecia se poate realiza i prin dou operaii de diferen : R1 R2 = R1 (R1 R2) = R2 (R2 - R1). Relaia A B a1 b1 a2 b2 a4 b4 R C c1 c2 c4 Relaia A B a3 b3 a4 b4 a5 b5 S C c3 c4 c5 Relaia T RS A B C a4 b4 c4

Relaia R A B a1 b1 a2 b2

Relaia S A B a3 b3 a4 b4 a5 b5

Diferena a dou relaii R i S avnd aceeasi structur (R-S), este o relaie T, cuprinznd mulimea tuplurilor aparinnd lui R dar neaparinnd lui S. Relaia R A B a1 b1 a2 b2 Relaia S A B a3 b3 a4 b4 a5 b5 Relaia T R-S A B C a1 b1 c1 a2 b2 c2

C c1 c2

C c3 c4 c5

Produsul cartezian a dou relaii R i S (RxS) este o relaie T stocnd mulimea perechilor obinute prin concatenarea nregistrrilor aparinnd lui R cu cele aparinnd lui S. Relaia R A B a1 b1 a2 b2 Relaia S C D E c1 d1 e1 c2 d2 e2 c3 d3 e3 Relaia T RxS A B C D a1 b1 c1 d1 a1 b1 c2 d2 a1 b1 c3 d3 a2 b2 c1 d1 a2 b2 c2 d2 a2 b2 c3 d3

E e1 e2 e3 e1 e2 e3

Operatorii unari se aplic asupra unei relaii i genereaz o alt relaie. Din aceast clas fac parte proiecia i selecia. Proiecia relaiei R cu structura R (A1, A2, , An) dup atributele Ai1, Ai2, , Aip (ii ik i p < n), R1 = Ai1, Ai2, , Aip (R), este relaia R1 cu structura R1 (Ai1, Ai2, , Aip), ale crei tupluri se obin prin eliminarea valorilor atributelor din R care nu apar n R1 i prin suprimarea sau nesuprimarea tuplurilor multiple.

__________________________________________________________________________
Curs 2 BD NP 3/9

Relaia R A B a1 b1 a2 b2 a3 b3

C c1 c2 c3

D d1 d2 d3

R1 (R;A,B) Relaia R1 A B a1 b1 a2 b2 a3 b2

Altfel spus, prin intermediul proieciei, dintr-un tabel cu un anumit numr de coloane se obine unul cu un numr mai mic de coloane. Selecia relaiei R fa de criteriul Q este relaia R1 cu aceeai structur ca i R, ale crei tupluri satisfac criteriul specificat. Q = Ai1 1 C1 Ai2 2 C2 Aip p Cp, unde i = < , , > , , , Ci constante Relaia R A B a1 b1 a2 b2 a3 b3 R1SELECTIE(R;A=a2 A=a3) Relaia R1 A B a2 b2 a3 b3 OR

Altfel spus, prin operatorul de selecie, dintr-un tabel cu un anumit numr de coloane se obine unul cu aceleai coloane, dar cu un numr mai mic de rnduri. Operatorii de extensie sunt: compunerea (Join) i mprirea (diviziunea). Acetia joac un rol foarte important n interogarea bazelor de date relaionale. Spre exemplu, realizarea produsului cartezian este foarte costisitoare, ceea ce face ca acesta s fie nlocuit cu operatorul de Join. nainte de a descrie aceti operatori, vom defini noiunea de criteriu de selecie (calificator) multi-atribut. Dndu-se dou relaii A (A1, A2, , An) i B (B1, B2, , Bn), Q este un calificator multiatribut dac este de forma: Q = Ai 1 Bi Ak 2 An Ap 3 Bj etc. Compunerea condiional (Join) a dou relaii R1 i R2 dup calificatorul multiatribut Q este relaia E ale crei tupluri sunt cele ale produsului cartezian R1 x R2 care satisfac calificatorul Q. n funcie de calificatorul Q se disting mai multe tipuri de compuneri: dac Q este de forma Ai = Bj , se numete echicompunere; dac Q este de forma Ai Bj : unde = < , , > , , se numete compunere, i poate fi exprimat n funcie de operatorii de baz; dac Q este de forma Ai = Aj se numete autocompunere. Compunerea natural este o echicompunere pe R1 i R2 dup toate atributele avnd acelai nume n R1 i R2, urmat de o proiecie care permite conservarea unuia dintre aceste atribute, egale ca nume. Relaia R1 A B C a1 b1 c1 Relaia R2 B D b1 d1 b1 d2 Relaia TJOIN(R1,R2;Bi = Bj) A B C D a1 b1 c1 d1 a1 b1 c1 d2

Diviziunea relaiei R1 (A1, A2 An) de grad (p+m) prin relaia R2 (Ap+1, , Am) de grad m este relaia E (A1, A2, , Ap) de grad p, format din toate tuplurile care, concatenate cu fiecare tuplu din __________________________________________________________________________
Curs 2 BD NP 4/9

R2, d totdeauna un tuplu din R1 (E = R1 R2). Operaia de diviziune se poate simula cu operatorii de: diferen, produs cartezian i proiecie, dup cum urmeaz: R1 R2 = X Y , unde: X = R1 A1, A2, , Ap Y = ((X x R2) R1) A1, A2, , Ap Relaia RS A B a1 b1 a2 b2 a3 b3 C c1 c2 c3 D d1 d2 d3 E e1 e2 e3 Relaia S C D c1 d1 c2 d2 c3 d3 E e1 e2 e3 Relaia R A B a1 b1 a2 b2 a3 b3

Codd, printele modelului relaional, a demonstrat c operatorii relaionali, mpreun cu sortarea, formeaz o baz suficient pentru a rspunde oricrei solicitri din partea utilizatorilor. Ei permit formalizarea pe un nivel nalt a operaiilor de prelucrare a datelor, crend astfel premisele definirii unor limbaje neprocedurale, n care se specific doar ce rezultat trebuie obinut i nu succesiunea de aciuni necesare pentru obinerea acestuia. Studiu de caz Fie relaiile:SOCIETATI CodSoc 101 102 103 111 123 131 CLIENTI CodId 1 2 3 TRANZACII NrOrdin 10123 10124 10125 10126 TRANZAZI NrOrdin 10127 10128 Nume IONESCU ALEXANDRU SUCCES SECURYTIES GRUP AS DataOrdin 06/02/01 07/02/01 10/03/01 12/03/01 DataOrdin 02/04/01 02/04/01 CodId 1 3 1 2 CodId 1 3 Localitate BUCURESTI PLOIESTI BUCURESTI CodSoc 101 123 123 111 CodSoc 131 123 TipOper V C C V TipOper C V TipClient F J J NrAct 5000 2050 1500 2000 NrAct 1000 1800 Pret 72790 5720 5791 1600 Pret 21210 5791 Denumire CIMENTUL TURDA DANUBIANA DUCTIL MOBAN NAPOLACT COMCEREAL PretMax 72800 8705 1600 1600 5800 21382

n tabela SOCIETI se rein informaii privitoare la societile cotate pe piaa Rasdaq. Tabela CLIENI stocheaz date privind clienii unei societi de valori mobiliare, care pot fi persoane fizice sau juridice (TipClient). Tabela TRANZACII stocheaz date privitoare la tranzaciile efectuate n timp de societatea de valori mobiliare la cererea clienilor si. Tipul operaiei (TipOP) poate fi vnzare __________________________________________________________________________
Curs 2 BD NP 5/9

(V) sau cumprare (C), se reine numrul aciunilor care fac obiectul unei tranzacii (NrAct) i preul unei aciuni (Pret). Tabela TRANZAZI stocheaz date privitoare la tranzaciile efectuate n ziua curent, urmnd ca la sfrsitul fiecrei zile acestea s se adauge la nregistrrile din tabela TRANZACII. Utiliznd algebra relaional, s se rezolve urmtoarele cereri de interogare: 1. Afiarea numelor societilor tranzacionate pe piaa Rasdaq: R PROI (Societi; Den) Tabela R: Denumire CIMENTUL TURDA DANUBIANA DUCTIL MOBAN NAPOLACT COMCEREAL 2. Afiarea numelor societilor pentru care s-au realizat tranzacii n ziua curent: R1 JOIN (Societi, Tranzazi; Societi.CodSoc=Tranzazi.CodSoc) Tabela R1: Cod Den Pret Nr Data CodId TipOp NrAct Soc Max Ordin ordin 123 NAPOLACT 5800 10128 02/04/01 3 V 1800 131 COMCEREAL 21382 10127 02/04/01 1 C 1000 R2 PROI (R1; Den) Tabela R2: Den NAPOLACT COMCEREAL

Pret 5791 21210

3. Afiarea numelor societilor cotate pe piata Rasdaq pentru care n ziua curent socitatea de valori mobiliare nu a efectuat tranzacii: R3 DIF (R, R2) Tabela R3: Den CIMENTUL TURDA DANUBIANA DUCTIL 4. Realizai actualizarea relaiei TRANZACTII cu ordinele executate pe pia n ziua curent: R4 REUNIUNE (Tranzacii, Tranzazi) Tabela R4: NrOrdin DataOrdin CodId CodSoc TipOper NrAct Pret 10123 06/02/01 1 101 V 5000 72790 10124 07/02/01 3 123 C 2050 5720 10125 10/03/01 1 123 C 1500 5791 10126 12/03/01 2 111 V 2000 1600 10127 02/04/01 1 131 C 1000 21210 10128 02/04/01 3 123 V 1800 5791 __________________________________________________________________________
Curs 2 BD NP 6/9

5. S se returneze numele clienilor pentru care SVM-ul a realizat ordine de vnzare pentru aciuni ale societii NAPOLACT: R5 SELECTIE(Societi; Den=NAPOLACT) CodSoc 123 Denumire NAPOLACT PretMax 5800

R6 JOIN (R5,R4; Societi.CodSoc=R4.CodSoc) Tabela R6: Cod Den Soc 123 NAPOLACT 123 NAPOLACT 123 NAPOLACT Pret Max 5800 5800 5800 NrOrd 10124 10125 10128 DataOrdin 07/02/01 10/03/01 02/04/01 CodId 3 1 3 TipOP C C V NrAct 2050 1500 1800 Pret 5720 5791 5791

R7 SELECTIE (R6; TipOp=V) Tabela R7: CodSoc 123 Den PretMax 5800 NrOrdin 10128 DataOrdin 02/04/01 CodId 3 TipOP V NrA ct 1800 Pret 579 1

NAPOLACT

R8 PROI (R7; CodId) Tabela R8: CodId 3

R9 JOIN (R8, Clieni; R8.CodId=Clieni.CodId) Tabela R9: CodId Nume Localitate TipClient 3 Grup Bucuresti J As

R10 PROI (R9; Nume) Tabela R10: Nume Grup As

6. S se afle numele clienilor pentru care n ziua curent s-au realizat tranzacii privind aciunile unor societi pentru care aceeai clieni mai emiseser ordine n trecut. R11 PROI ( Tranzacii; CodId, CodSoc) Tabela R11: CodId CodSoc 1 101 3 123 1 123 2 111 R12 PROI (Tranzazi; CodId, CodSoc) Tabela R12: CodId CodSoc 1 131 3 123 R13 INTERSECTIE (R12,R11) Tabela R13: CodId CodSoc 3 123 R15 PROI (R14; Nume) Nume GRUP AS

R14 JOIN(R13,Clieni; R13.CodId=Clieni.CodId) Tabela R14: CodId CodSoc Nume Localitate TipClient 1 123 GRUP BUCURESTI J AS

__________________________________________________________________________
Curs 2 BD NP 7/9

7. S se afle denumirea societilor pentru care preul de cumprare al unei aciuni a depit n ziua curent 10000 lei: R16 SELECTIE (Tranzazi; TipOp=C AND Pre>10000) Tabela R16: NrOrdin DataOrdin CodId CodSoc TipOP 10127 02/04/01 1 131 C R17 PROI(R16; CodSoc) Tabela R17: CodSoc 131 R18 JOIN (R17, Societi; R17.CodSoc=Societi.CodSoc) Tabela R18: CodSoc Denumire PretMax 131 COMCEREAL 72800

NrAct Pret 1000 21210 R19 PROI (R18; Den) Tabela R19: Denumire COMCEREAL

Schema relaional Schema relaional (sau modelul relaional) al unei baze de date ce folosete modelul realaional conine schemele tabelelor (compuse din structura tabelelor i restriciile de integritate la nivel atribut din tabel i respectiv tabel) i restriciile de integritate inter-tabele. Exemplu practic: Gestiunea facturilor Schemele tabelelor bazei de date: CLIENT (CodCli, Nume, Telefon, Fax, Strada, Nr, ComplAdresa, CodPostal, TipClient) Restricii de integritatae RI1: CodCli, constituie cheia primar RI2: Dom(TipClient)={Ext, Int} RI3: Val(Nume) diferit de Null RI4: Val(CodPostal) diferit de Null RI5: Val(Telefon) diferit de Null FACTURA (NrFact, DataFact, CodCli) Restricii de integritate RI1: NrFact, cheia primar RI2: Val(DataFact) ntre <data min> I <data max> PRODUS (CodProd, DenProd, PretRef) Restricii de integritate RI1: CodProd, cheia primar RI2: pretRef > 0 RI3: Val(DenProd) diferit de Null FACTURAT (NrFact, CodProd, CantFact, PretFact) Restricii de integritate RI1: NrFact+CodProd, cheia primar RI2: Val(CantVact)>0 RI3; Val(PretFact)>0 LOCALIZARE (CodPostal, Localitate) Restricii de integritate RI1: CodPostal, cheia primar Restricii de integritate inter-tabelele: RIR1: CodCli din FACTUR refer CodCli din CLIENT RIR2: CodPostal din CLIENT refer CodPostal din LOCALIZARE RIR3: NrFact din FACTURAT refer NrFact din FACTURA __________________________________________________________________________
Curs 2 BD NP 8/9

RIR4: CodProd din FACTURAT refer CodProd din PRODUS Metode de accesare a datelor Coleciile de date nregistrate pe memorii externe sunt accesate din diverse motive: pentru citirea unor nregistrri, pentru regsirea unor date, pentru ordonarea nregistrrilor dup anumite criterii etc. Accesarea datelor organizate n colecii de date se poate realiza prin dou metode: Metoda secvenial Metoda indexat Regsirea unei nregistrri prin metoda secvenial presupune parcurgerea n secven a coleciei de date, ncepnd cu prima nregistrare, pn la nregistrarea cutat (dac exist) sau pn la ultima nregistrare (dac nregistrarea cutat nu exist).
Avantaje: complexitate redus si colecia de date nu se ncarc cu date suplimentare

Dezavantajul major l constituie viteza redus cu care este efectuat operaia pe colecii mari de date. Metoda indexat permite regsirea unei inregistrari ntr-un timp mult mai redus dect metoda precedent. Aceast variant presupune utilizarea unui tabel de indeci pentru fiecare cmp ce va fi indexat. Tabelele de indeci conin dou atribute: valorile cmpului de indexare ordonate (cresctor/descresctor); adresele fizice relative ale fiecrei nregistrri. Pentru regsirea unei nregistrri a cmpului CodMaterial (indexat) se parcurg urmtoarele etape: se specific valoarea cmpului CodMaterial pe care dorim s o cutm; se localizeaz aceast valoare n tabelul de index asociat(aceast operaie se poate realiza rapid folosind un algoritm de cautare n mulimi ordonate); dac valoarea exist, atunci se memoreaz adresa fizic relativ corespunztoare ; se localizeaz nregistrarea logic aflat la adresa memorat anterior. Aceast metod poate fi folosit numai pentru suporturi de date direct adresabile (hard-disk, floppydisk, CD etc) Avantaje: operaia de cutare a unei valori se realizeaz foarte rapid n comparaie cu metoda secvenial. Dezavantaje: tabelele de indeci suprancarc colecia de date i n consecin orice actualizare a coleciei de date presupune o actualizare i a tabelelor de indecisi.

__________________________________________________________________________
Curs 2 BD NP 9/9

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