4.1. Conceptul de BDR 4.2. ro!ect"re" BDR pr!n te#n!c" nor$"l!%&r!! 4.'. Al(e)r" rel"*!on"l& +! c"lculul rel"*!on"l 4.1. Conceptul de )"%e de d"te rel"*!on"le (BDR) Bazele de date relaionale (BDR) utilizeaz modelul de date relaional i noiunile aferente (vezi cap.2). BDR au o solid fundamentare teoretic, n special prin cercetrile de la IB conduse de !.".#odd. BDR este un ansam$lu or%anizat de tabele (relaii) mpreun cu legturile dintre ele. A,"nt"-ele BDR fa de fiiere (c&teva)' CRITERI. BDR /I0IERE Independena datelor lo%ic i fizic fizic (iveluri de structurare conceptual, lo%ic i fizic lo%ic i fizic Desc)idere i porta$ilitate mare mic reprezentarea i utilizarea datelor simplificat prin model complicat structura de date se pstreaz n dicionarul BD n pro%rame. Concepte utilizate la or%anizarea datelor n memoria e*tern n BDR i respectiv fiiere' fiiere fiier nre%istrare c&mp valori +r%anizare date n BDR ta$el tuplu atri$ut domeniu valori (relaie) (linie) (coloan) Cond!*!! $!n!$"le pentru ca un ,-BD s fie relaional' s implementeze modelul de date relaionale prin .DD i .D/ s implementeze cel puin un lim$a0 relaional. Not. #ondiiile complete ca un ,-BD s fie relaional sunt date de cele 12 re%uli ale lui #+DD (vezi cap.3). 4.2. ro!ect"re" BDR pr!n te#n!c" nor$"l!%&r!! ") Aspecte (ener"le pr!,!nd pro!ect"re" BD ro!ect"re" unei BD este un proces n care se utilizeaz diferite modele, te)nici i instrumente pentru a transpune un domeniu din lumea real ncon0urtoare, n termenii or%anizrii datelor aferente, pe calculator. 4ornind de la lumea real se !dent!1!c& +! spec!1!c& cerinele aplicaiei (domeniul de interes) prin' documentare, interviu, terminolo%ie, comunicare etc. Rezultatul acestei activiti este o$inerea elementelor necesare pentru or%anizarea informaiei din domeniul respectiv. 5cest lucru se realizeaz 6RI##718 cu a0utorul unor concepte +! !nstru$ente adecvate' - Schemele BD: ,c)ema conceptual specific structura or%anizaional i coninutul informaional al sistemului i reprezint un mod de comunicare ntre proiectanii i utilizatorii BD/ ,c)ema lo%ic definete informaia ntr9o manier care poate fi folosit pentru crearea BD. ,c)ema e*tern or%anizeaz informaia ntr9o ordine care permite accesul utilizatorilor la BD (construcia viziunilor). Not.#ele dou sc)eme pot fi separate sau inte%rate ntr9una sin%ur deoarece am$ele se materializeaz prin instruciuni (nivelul lo%ic) dintr9un lim$a0 din ,-BD, destinate unor utilizatori (e*tern). ,c)ema fizic specific reprezentarea informaiei n calculator n termeni fizici (cum este stocat informaia n memoria e*tern, pe suportul te)nic de informaie). - +$iectele din lumea real se reprezint prin entiti care au caracteristici (atri$ute). - +$iectele din lumea real au asocieri (le%turi) de diferite tipuri cu alte o$iecte, fiecare av&nd un anumit rol n aceste le%turi. )) No*!un! pr!,!nd nor$"l!%"re" Aspectul d!n"$!c al structurii de date este avut n vedere i rezolvat de BDR. 5cest lucru nseamn c modelul de date relaional permite sc)im$area n timp a structurii de date fr sc)im$area pro%ramelor de aplicaie (independena lo%ic). Te#n!c" de nor$"l!%"re este utilizat n activitatea de proiectare a structurii BDR i const n eliminarea unor anomalii (nea0unsuri) de actualizare din structur. Ano$"l!!le de "ctu"l!%"re sunt situaii nedorite care pot fi %enerate de anumite ta$ele n procesul proiectrii lor' anomalia de tergere semnific faptul c ster%&nd un tuplu dintr9o ta$el, pe l&n% informaiile care tre$uie terse, se pierd i informaiile utile e*istente n tuplul respectiv/ anomaliile de adugare semnific faptul c nu pot fi incluse noi informaii necesare ntr9o ta$el, deoarece nu se cunosc i alte informaii utile (de e*emplu valorile pentru c)eie)/ anomalia de modificare semnific faptul c este dificil de modificat o valoare a unui atri$ut atunci c&nd ea apare n mai multe tupluri. Not. 5nomaliile de actualizare sunt rezolvate de ctre teoria relaional, lucru care nu se nt&mpl la alte tipuri de BD. Nor$"l!%"re" este o teorie construit n 0urul conceptului de forme normale ("(), care amelioreaz structura BD prin nlturarea treptat a unor nea0unsuri i prin imprimarea unor faciliti sporite privind manipularea datelor. Not. :eoria normalizrii a fost conceput iniial de ctre !.".#odd, ulterior aduc&ndu9i contri$uia i ali cercettori. (ormalizarea utilizeaz ca metod desco$punere" (top9do;n) unei ta$ele n dou sau mai multe ta$ele, pstr&nd informaii (atri$ute) de le%tur. c) /or$ele nor$"le + ta$el (relaie) este ntr9o 1or$& nor$"l& ("() dac satisface anumite restricii, care arat c "((i<1) este preferat fa de "((i), i=1,>. ,unt cinci forme normale ("(1 la "(?) i una suplimentar (B#(") care revizuiete "(2. + )"%& de d"te este 2n "(i , i=1,? dac toate ta$elele sale sunt n "(i. BD !n!*!"l& va fi format dintr9o sin%ur colecie de date, care apoi se descompune n mai multe ta$ele, parcur%&nd formele normale. /N1 + t")el& este 2n /N1 dac toate atri$utele ei conin valori elementare (nedecompoza$ile), adic fiecare tuplu nu tre$uie s ai$ date la nivel de grup sau repetitiv. ,tructurile de tip ar$orescent i reea se transform n ta$ele cu atri$ute elemntare. + ta$el n "(1 prezint nc o serie de anomalii de actualizare datorit eventualelor dependene funcionale incomplete. Fiecare structur repetitiv %enereaz (prin descompunere) o nou ta$el, iar atri$utele la nivel de %rup se nltur, rm&n&nd doar cele elemntare. /N2 + t")el& este 2n /N2 dac i numai dac este n "(1 i fiecare atri$ut nonc)eie al ta$elei este dependent funcional complet de c)eie. @n atri$ut B al unei ta$ele depinde funcional de atri$utul 5 al aceleiai ta$ele, dac fiecrei valori a lui 5 i corespunde o sin%ur valoare a lui B, care i este asociat n ta$el. @n atri$ut B este dependent funcional complet de un ansam$lu de atri$ute 5 n cadrul aceleiai ta$ele, dac B este dependent funcional de ntre% ansam$lul 5 (nu numai de un atri$ut din ansam$lu). + ta$el n "(2 prezint nc o serie de anomalii de actualizare, datorit eventualelor dependene tranzitive. liminarea dependenelor incomplete se face prin descompunerea ta$elei iniiale n dou ta$ele, am$ele conin&nd atri$utul intermediar (B). /N' + t")el& este 2n /N' dac i numai dac este n "(2 i fiecare atri$ut nonc)eie depinde n mod netranzitiv de c)eia ta$elei. Antr9o ta$el :, fie 5,B,# trei atri$ute cu 5 c)eie. Dac B depinde de 5 (5 B) i # depinde de B (B #) atunci # depinde de 5 n mod tranzitiv. liminarea dependenelor tranzitive se face prin descompunerea ta$elei iniiale n dou ta$ele, am$ele conin&nd atri$utul intermediar (B). + ta$el n "(2 prezint nc o serie de anomalii de actualizare, datorate eventualelor dependene multivaloare. Not. + definiie mai ri%uruas pentru "(2 a fost dat prin forma intermediar B#(" (BoBce #odd (ormal "orm)' o ta$el este n B#(" dac fiecare determinant este un candidat c)eie.Determinantul este un atri$ut elementar sau compus fa de care alte atri$ute sunt complet dependente funcional. /N4 + t")el& este 2n /N4 dac i numai dac este n "(2 i nu conine dou sau mai multe dependene multivaloare. Antr9o ta$el :, fie 5,B,# trei atri$ute. An ta$ela : se menine dependena multivaloare 5 ( ) dac i numai dac mulimea valorilor lui B ce corespunde unei perec)i de date (5,#), depinde numai de o valoare a lui 5 i este independent de valorile lui #. /N3 + t")el& este 2n /N3 dac i numai dac este n "(> i fiecare dependen !onciune este %enerat printr9un candidat c)eie al ta$elei. An ta$ela : (5,B,#) se menine dependena !onciune (5B, 5#) dac i numai dac : menine dependena multivaloare 5 B sau #. Not. Dependena multivaloare este caz particular al dependenei 0onciune. Dependena funcional este caz particular al dependenei multivaloare. d) E4e$plu de pro!ect"re BDR pr!n te#n!c" de nor$"l!%"re 4entru realizarea unei BDR se parcur%e mai nt&i studiul i analiza de sistem (modelarea conceptual) av&nd ca finalitate dia%rama entitate"asociere. ,e continu cu proiectarea BD. An acest scop, considerm c pentru proiectarea unei BDR privind activitatea didactic am identificat urmtoarele caracteristici (atri$ute) referitoare la un cadru didactic (#D)' #D 5R#5 (@! CDR,:5 A(#5DR5R! funcie salariu catedra R!-I5#:IC 5#:ICDID (disciplina, an, sala, nrstud) #+4II (datan, se*, pren, alocaie, v&rsta) I,:4R+ (dataprom, funcia, I,:,5. (datasal, salariu)) Not. #onsiderm colecia (ta$ela) iniial cu toate atri$utele de mai sus (aa cum este tendina de a se proceda n cazul lucrului cu fiiere) ca fiind dicionarul atributelor. /N1 ") 5nl&tur&$ "tr!)utele repet!t!,e. Din colecia de date (ta$ela iniial) identificm atri$utele care se repet. 5cestea vor deveni noi tabele i identificm cheile pentru fiecare' #D' marca 5#:ICDID' marca, disciplina, an (un #D desfoar mai multe activiti) #+4II' marca, pren (un #D are mai muli copii) I,:4R+' marca, dataprom (un #D trece prin mai multe funcii) I,:,5.' marca, dataprom, datasal (pentru o funcie sunt mai multe niveluri de salariu). Identificm atributele pentru fiecare nou ta$el (su$liniate sunt atri$utele c)eie, identificate mai sus)' #D (marca, nume, varst, (funcie, salariu, catereda), re%imactiv) 5#:ICDID (marca, discipl, sala, an, nrstud) #+4II (marca, datan, se*, pren, v&rsta, alocaie) I,:4R+ (marca, dataprom, funcia) I,:,5. (marca, dataprom, datasal, salariu) $) 5nl&tur&$ "tr!)utele "(re("te (la nivel de %rup) Identificm un atribut la nivel de grup (A(#5DR5R!) ntr9o sin%ur ta$el (#D). ,e nltur atri$utul la nivel de %rup i rm&n doar atri$utele elementare (cele care fac parte din %rup)' #D (marca, nume, v&rsta, funcie, salariu, catedra, re%imactiv). Rezult BDR n "(1 (fr atri$ute la nivel de %rup i fr atri$ute repetitive) cu urmtoarele ta$ele' #D marca, nume, v&rsta, funcie, salariu, catedra, re%imactiv 5#:ICDID marca, discipl, sala, an, nrstud #+4II marca, datan, se*, pren, v&rsta, alocaie I,:4R+ marca, dataprom, funcia I,:,5. marca, dataprom, datasal, salariu /N2 ") Identificm dependen*ele 1unc*!on"le incomplete i tranzitive n ta$ela #D' An ta$ela #D' marca nume (c)eie) v&rsta funcie salariu catedra re%imactiv (tranzitiv) An ta$ela 5#:ICDID' An ta$ela #+4II' marca marca datan discipl sala pren se* (tranzitiv) an nrstud (c)eie) v&rst (c)eie) (incomplet) alocaie (incomplet) An ta$ela I,:4R+' An ta$ela I,:,5.' marca marca dataprom funcie datapren salariu (c)eie) datasal (c)eie) )) Anlturm dependen*ele !nco$plete Dependenele incomplete e*ist n ta$elele 5#:ICDID i #+4II. 5#:ICDID1 marca, discipl, an, sala 5#:ICDID 5#:ICDID2 an, nrstud #+4II1 marca, pren, datan, se*, v&rsta #+4II #+4II2 marca, alocaie Rezult BDR n "(2 (fr dependene incomplete) cu ta$elele' #D, 5#:ICDID1, 5#:ICDID2, #+4II1, #+4II2, I,:4R+, I,:,5.. /N' Anlturm dependen*ele tr"n%!t!,e care e*ist n ta$ele #D i #+4II1. #D1 marca, nume, v&rsta, funcie, salariu, catedra #D #D2 catedra, re%imactiv #+4II11 marca, pren, datan, se* #+4II1 #+4II12 datan, v&rsta Rezult BDR n "(2 (fr dependene tranzitive) cu ta$ele' #D1, #D2, 5#:ICDID1, 5#:ICDID2, #+4II11, #+4II12, #+4II2, I,:4R+, I,:,5. Not. 5v&nd BDR n "(2 putem construi sc)ema conceptual pentru aceasta' #D1 arca nume v&rsta funcie salariu catedra #D2 catedra re%imactiv 5#:ICDID1 marca discipl an sala 5#:ICDID2 an nrstud #+4II11 marca pren datan se* #+4II12 datan v&rsta #+4II2 marca alocaie I,:4R+ marca dataprom funcie I,:,5. marca dataprom datasal salariu 4.'. Al(e)r" rel"*!on"l& +! c"lculul rel"*!on"l 4entru manipularea datelor conform modelului relaional se folosesc operatorii din al%e$ra i calculul relaional 6RI##718. 4entru implementarea acestor operatori e*ist comenzi specifice n .D din ,-BDR. 5ceste comenzi sunt utilizate n operaii de re%sire (intero%are). Dup tehnica folosit la manipulare, .D sunt $azate pe' calculul relaional (E@!. n In%res, 5.4F5 propus de #odd)/ al%e$ra relaional (I,B., RD,)/ transformarea (,E., ,E@5R!)/ %rafic (EB!, EB"). C"lculul rel"*!on"l #alculul relaional se $azeaz pe calculul predicatelor de ordinul nt&i (domeniu al lo%icii) i a fost propus de !.".#odd. #redicatul este o relaie care se sta$ilete ntre anumite elemente i care poate fi confirmat sau nu. #redicatul de ordinul $ este o relaie care are drept ar%umente varia$ile care nu sunt predicate. %ariabila poate fi de tip tuplu (valorile sunt dintr9un tuplu al unei ta$ele) sau domeniu (valorile sunt dintr9un domeniu al unei ta$ele). &uantificatorii (operatorii) utilizai n calculul relaional sunt' universal () i e*istenial (). &onstrucia de baz n calculul relaional este e*presia relaional de calcul tuplu sau domeniu (funcie de tipul varia$ilei utilizate). 'presia relaional de calcul este format din' operaia de efectuat/ varia$ile (tuplu respectiv domeniu)/ condiii (de comparaie, de e*isten)/ formule $ine definite (operanzi9constante, varia$ile, funcii, predicate/ operatori)/ cuantificatori. Not. !*emplu de implementare a calculului relaional n lim$a0ul E@!. vezi n cartea 6C!.@778. Al(e)r" rel"*!on"l& (lgebra relaional este o colecie de operaii formale aplicate asupra ta$elelor (relaiilor), i ea a fost conceput de !.".#odd. +peraiile sunt aplicate n e'presiile algebrice relaionale care sunt cereri de re%sire. 5cestea sunt compuse din operatorii relaionali i operanzi. )peranzii sunt ntotdeauna ta$ele (una sau mai multe). *ezultatul evalurii unei e*presii relaionale este format dintr9o sin%ur ta$el. 5l%e$ra relaional are cel puin puterea de re%sire a calcului relaional. + e*presie din calculul relaional se poate transforma ntr9una echivalent din al%e$ra relaional i invers. Oper"tor!! din al%e$ra relaional pot fi %rupai n dou cate%orii (R1, R2, R2 sunt relaii (ta$ele))' $. )peratori pe mulimi R!@(I@(!5' R2 = R1 R2, unde R2 va conine tupluri din R1 sau R2 luate o sin%ur dat. DI"!R!(G5' R2 = R1 H R2, unde R2 va conine tupluri din R1 care nu se re%sesc n R2 4R+D@,@. #5R:!II5(' R2 = R1 R2, unde R2 va conine tupluri construite din perec)i (*1*2), cu *1R1 i *2R2. I(:!R,!#GI5'R2 = R1 R2, unde R2 va conine tupluri care se %sesc n R1 i R2 n acelai timp. +. )peratori relaionali speciali ,!.!#GI5' din R1 se o$ine o su$ta$el R2, care va conine o su$mulime din tuplurile iniiale din R1 ce satisfac un predicat (o condiie). (umrul de atri$ute din R2 = numrul de atri$ute din R1 (umrul de tupluri din R2 J numrul de tupluri din R1. 4R+I!#GI5' din R1 se o$ine o su$ta$el R2, care va conine o su$mulime din atri$utele iniiale din R1 i fr tupluri duplicate (umrul de atri$ute din R2 J numrul de atri$ute din R1 (umrul de tupluri din R2 numrul de tupluri din R1. K+(#GI@(!5' derivaie a produsului cartezian, ce presupune utilizarea unui calificator care s permit compararea valorilor unor atri$ute din R1 i R2, iar rezultatul n R2. R1 i R2 tre$uie s ai$ unul sau mai multe atri$ute comune care au valori comune. Note. 1) #odd a introdus ase operatori de baz (reuniunea, diferena, produsul cartezian, selecia, proiecia , 0onciunea) i doi operatori derivai (intersecia i diviziunea). 2) @lterior au fost introdui i ali operatori derivai (speciali). 2) 5l%e$ra relaional este prin definiie neprocedural (descriptiv), iar calculul relaional permite o manier de cutare mi't (proceduralLneprocedural). Tr"ns1or$"re" +fer o putere de re%sire echivalent cu cea din calculul i al%e$ra relaional. ,e $azeaz pe transformarea (mappin%) unui atri$ut sau %rup de atri$ute ntr9un atri$ut dorit prin intermediul unor relaii. *ezultatul este o relaie (ta$el) care se poate utiliza ntr9o alt transformare. 6r"1!c" +fer interactivitate mare pentru constrirea cererilor de re%sire. @tilizatorul specific cerea aleg,nd sau complet&nd un ecran structurat %rafic. 4oate fi folosit de ctre toate cate%oriile de utilizatori n informatic. Re%u$"t. ,e definete noiunea de $az de date relaional (BDR) in&nd cont de modelul de date relaional. ,e face o comparaie a noiunilor utilizate n BDR cu cele utlizate la lucrul cu fiiere. Realizarea unei aplicaii cu BDR este o activitate comple*, care presupune o$li%atoriu proiectarea $azei de date. An acest sens se folosesc diferite te)nici, dintre care cea mai utilizat este normalizarea. ,copul te)nicii de normalizare este de a elimina, n procesul de proiectare, anomaliile de actualizare. ,unt prezentate cele cinci forme normale ("(1 la "(?) care se construiesc n procesul de proiectare a unei BDR. An continuare, se prezint un e'emplu practic de proiectare a unei BDR prin te)nica de normalizare, a0un%&ndu9se la o sc)em conceptual. ,unt e*emplificate doar primele trei forme normale, deoarece acestea sunt cele mai utilizate n aplicaiile practice. An finalul capitolului se prezint o sintez a dou domenii importante din teoria relaional' calculul relaional i algebra relaional. "iecare dintre cele dou domenii este definit pe scurt, iar apoi sunt prezentai cei mai importani operatori afereni. ,unt citate e*emple de lim$a0e relaionale clasificate dup te)nica folosit la implementare. Note )!)l!o(r"1!ce. !lemente de teoria relaional sunt prezentate n toate titlurile $i$lio%rafice care se refer la BDR 6C!.@718, 6C!.@77M, 6#+((778, 6D5:!3>8 etc. 4entru partea de proiectarea BDR prin te)nica normalizrii (dependene funcionale, forme normale, constr&n%eri) dar i pentru al%e$ra i calculul relaional, se %sesc e*plicaii i e*emple didactice n 6RI##718. Cu,!nte c#e!e. $aze de date relaionale (BDR) #odd proiectare BDR normalizarea forme normale anomalii de actualizare dependene funcionale calculul relaional e*presia relaional calculul predicatelor cuantificatorii al%e$ra relaional operatorii relaionali lim$a0e relaionale transformarea %rafica