Modelul relaţional a fost propus de către IBM şi a revoluţionat reprezentarea datelor făcând trecerea la generaţia a doua de baze de date. Modelul este simplu, are o solidă fundamentare teoretică fiind bazat pe teoria seturilor (ansamblurilor) şi pe logica matematică. Pot fi reprezentate toate tipurile de structuri de date de mare complexitate, din diferite domenii de activitate. Modelul relaţional este definit prin: structura de date, operatorii care acţionează asupra structurii şi restricţiile de integritate. 1) Conceptele utilizate pentru definirea structurii de date sunt: domeniul, tabela (relaţia), atributul, tuplul, cheia şi schema tabelei. Domeniu este un ansamblu de valori caracterizat printr-un nume. El poate fi explicit sau implicit. Tabela/relaţia este un subansamblu al produsului cartezian al mai multor domenii, caracterizat printr-un nume, prin care se definesc atributele ce aparţin aceleaşi clase de entităţi. Atributul este coloana unei tabele, caracterizată printr-un nume. Cheia este un atribut sau un ansamblu de atribute care au rolul de a identifica un tuplu dintr-o tabelă. Tipuri de chei: primare/alternate, simple/comune, externe. Tuplul este linia dintr-o tabelă şi nu are nume. Ordinea liniilor (tupluri) şi coloanelor (atribute) dintr-o tabelă nu trebuie să prezinte nici-o importanţă. Schema tabelei este formată din numele tabelei, urmat între paranteze rotunde de lista atributelor, iar pentru fiecare atribut se precizează domeniul asociat. Schema bazei de date poate fi reprezentată printr-o diagramă de structură în care sunt puse în evidenţă şi legăturile dintre tabele. Definirea legăturilor dintre tabele se face logic construind asocieri între tabele cu ajutorul unor atribute de legătură. Atributele implicate în realizare legăturilor se găsesc fie în tabelele asociate, fie în tabele distincte construite special pentru legături. Atributul din tabela iniţială se numeşte cheie externă iar cel din tabela finală este cheie primară. Legăturile posibile sunt 1:1, 1:m, m:n. Potenţial, orice tabelă se poate lega cu orice tabelă, după orice atribute. Legăturile se stabilesc la momentul descrierii datelor prin limbaje de descriere a datelor (LDD), cu ajutorul restricţiilor de integritate. Practic, se stabilesc şi legături dinamice la momentul execuţiei. 2) Operatorii modelului relaţional sunt operatorii din algebra relaţională şi operatorii din calculul relaţional. Algebra relaţională este o colecţie de operaţii formale aplicate asupra tabelelor (relaţiilor), şi a fost concepută de E.F.Codd. Operaţiile sunt aplicate în expresiile algebrice relaţionale care sunt cereri de regăsire. Acestea sunt compuse din operatorii relaţionali şi operanzi. Operanzii sunt întotdeauna tabele (una sau mai multe). Rezultatul evaluării unei expresii relaţionale este format dintr-o singură tabelă. Algebra relaţională are cel puţin puterea de regăsire a calcului relaţional. O expresie din calculul relaţional se poate transforma într-una echivalentă din algebra relaţională şi invers. Calculul relaţional se bazează pe calculul predicatelor de ordinul întâi (domeniu al logicii) Predicatul este o relaţie care se stabileşte între anumite elemente şi care poate fi confirmată sau nu. Predicatul de ordinul 1 este o relaţie care are drept argumente variabile care nu sunt predicate. Variabila poate fi de tip tuplu (valorile sunt dintr-un tuplu al unei tabele) sau domeniu (valorile sunt dintr-un domeniu al unei tabele). Cuantificatorii (operatorii) utilizaţi în calculul relaţional sunt: universal şi existenţial . Construcţia de bază în calculul relaţional este expresia relaţională de calcul tuplu sau domeniu (funcţie de tipul variabilei utilizate). Expresia relaţională de calcul este formată din: operaţia de efectuat, variabile (tuplu respectiv domeniu), condiţii (de comparaţie, de existenţă), formule bine definite (operanzi-constante, variabile, funcţii, predicate; operatori), cuantificatori. Pentru implementarea acestor operatori există comenzi specifice în limbajele de manipulare a datelor (LMD) din sistemele de gestiune a bazelor de date relaţionale (SGBDR). Aceste comenzi sunt utilizate în operaţii de regăsire (interogare). După tehnica folosită la manipulare, LMD sunt bazate pe: • calculul relaţional (QUEL în Ingres, ALPHA propus de Codd); • algebra relaţională (ISBL, RDMS); • transformare (SQL, SQUARE); • grafică (QBE, QBF). Transformarea oferă o putere de regăsire echivalentă cu cea din calculul şi algebra relaţională. Se bazează pe transformarea (mapping) unui atribut sau grup de atribute într-un atribut dorit prin intermediul unor relaţii. Rezultatul este o relaţie (tabelă) care se poate utiliza într-o altă transformare. Grafica oferă interactivitate mare pentru constrirea cererilor de regăsire. Utilizatorul specifică cerea alegând sau completând un ecran structurat grafic. Poate fi folosit de către toate categoriile de utilizatori în informatică. 3) Restricţiile de integritate ale modelului relaţional sunt structurale şi comportamentale. Restricţiile structurale sunt: • Restricţia de unicitate a cheii. Într-o tabelă nu trebuie să existe mai multe tupluri cu aceeaşi valoare pentru ansamblul cheie; • Restricţia referenţială. Intr-o tabelă t1 care referă o tabelă t2, valorile cheii externe trebuie să figureze printre valorile cheii primare din t2 sau să ia valoarea null (neprecizat); • Restricţia entităţii. Intr-o tabelă, atributele din cheia primară nu trebuie să ia valoarea NULL. Cele trei restricţii de mai sus sunt minimale. Pe lângă acestea, există o serie de alte restricţii structurale care se referă la dependenţele dintre date: funcţionale, multivaloare, joncţiune etc. (sunt luate în considerare la tehnicile de proiectare a bazelor de date relaţionale – BDR). Restricţiile de comportament sunt cele care se definesc prin comportamentul datelor şi ţin cont de valorile din BDR: • Restricţia de domeniu. Domeniul corespunzător unui atribut dintr-o tabelă trebuie să se încadreze între anumite valori; • Restricţii temporare. Valorile anumitor atribute se compară cu nişte valori temporare (rezultate din calcule etc.). Restricţiile de comportament fiind foarte generale se gestionează fie la momentul descrierii datelor (de exemplu prin clauza CHECK), fie în afara modelului la momentul execuţiei. Restricţiile de integritate suportate de Oracle sunt: • NOT NULL nu permite valori NULL în coloanele unei tabele; • UNIQUE nu sunt permise valori duplicat în coloanele unei tabele; • PRIMARY KEY nu permite valori duplicate sau NULL în coloana sau coloanele definite astfel; • FOREIGN KEY presupune ca fiecare valoare din coloana sau setul de coloane defini astfel să aibă o valoare corespondentă identică în tabela de legătură, tabelă în care coloana corespondentă este definită cu restricţia UNIQUE sau PRIMARY KEY; • CHECK elimină valorile care nu satisfac anumite cerinţe (condiţii) logice. Termenul de chei (keys) este folosit pentru definirea câtorva categorii de constrângeri şi sunt: primary key, unique key, foreign key, referenced key. Se consideră că modelul relaţional are o serie de limite cum ar fi: • Simplitatea modelului îl face dificil de aplicat pentru noile tipuri de aplicaţii (multimedia, internet etc.); • Nu asigură o independenţă logică totală a datelor de aplicaţie; • Poate creşte redundanţa datelor
Download teza.doc