Baze de Date 2011 2012 Anca Ion Baze

Baze de Date 2011 -2012 Anca Ion Baze de Date -Modelul Relațional. Universitatea din Craiova, Facultatea de Automatica, Calculatoare si Electronica

Introducere Baze de Date 2011 -2012 Anca Ion • În prezent, modelul relațional este principalul model de date pentru aplicațiile comerciale de procesare a datelor, datorită simplicitatii sale. • În acest capitol se vor studia: • conceptele de bază ale modelului relațional, care oferă o modalitate simplă de reprezentare a datelor • constrângerile modelului relațional.

Structura modelului relațional Baze de Date 2011 -2012 Anca Ion • Modelul relațional reprezintă baza de date ca o colecție de relații, fiecăreia fiindu-i asociat un nume unic. • O relație poate fi vazută ca un tabel de valori, fiecare linie din tabel reprezentând o colecție de valori interconectate. • Domeniul reprezintă o mulțime de valori atomice. Se consideră valori atomice acele valori ce nu pot fi descompuse fără a se pierde semnificaţia valorii. • Un domeniu este specificat de tipul de date al valorilor care formează domeniul, de numele său, care ajută în interpretarea valorilor sale. • Exemplu de domenii: • Nr. Cont – reprezintă mulțimea numerelor de cont valide. • Balanța – reprezintă mulțimea sumelor de bani pe care clienții unei bănci le au în conturi. • Tipul de data sau formatul este specificat pentru fiecare domeniu: de exemplu, domeniul Nr. Cont se va reprezenta ca un șir de caractere, deci tipul de date va fi String.

Baze de Date 2011 -2012 Anca Ion • Definitie: Schema relației, notată R(A 1, A 2…, An) este compusă din numele schemei R si o listă de atribute A 1, A 2…, An. Fiecare atribut Ai reprezintă numele unui domeniu D din schema relației. D este domeniul lui Ai și mai este notat dom(Ai). • Schema relației este folosită pentru a descrie o relație. Structura modelului relațional • Exemplu: Schema relaţiei Cont_schema poate fi scrisă sub forma: • Cont_schema(Nr. Cont, Filială, Balanță). • Definitie: Fiind dată o colecţie de mulţimi cu valori atomice D 1, D 2, . . . Dn (nu neapărat distincte) numite domenii, se numeşte relaţie pe mulţimile D 1, D 2, . . . Dn orice subset r(R) al produsului cartezian D 1 x. D 2 x. . . x. Dn. • Exemplu: Fie D 1 mulțimea care conține numerele conturilor { RO 11 ING 012392330, RO 21 BCR 014569879}, D 2 mulțimea care conține denumirile filialelor {ING 1, BCR 2}, D 3 mulțimea care conține balanțele {500, 1000}. • Atunci cont(Cont_schema) = {(RO 11 ING 012392330, (RO 21 BCR 014569879, BCR 2, 1000)} reprezintă o relație. ING 1, 500),

Structura modelului relațional Baze de Date 2011 -2012 Anca Ion • Într-o bază de date relaţională, o relaţie este privită ca un tabel bidimensional cu toate valorile atomice. 1. Numele coloanei unei relaţii se numeşte atribut. 2. Numărul de atribute ale unei relaţii R reprezintă gradul sau aritatea relaţiei. 3. O linie a tabelului se numeşte tuplu, realizare sau înregistrare (corespunde unei entități). 4. Numărul tuplurilor dintr-o relaţie reprezintă cardinalul relaţiei.

Proprietăți ale relațiilor • • Baze de Date 2011 -2012 Anca Ion Orice relaţie are un nume unic într-o bază de date. Orice atribut are un nume unic într-o relaţie. Ordinea atributelor într-o relaţie nu are importanţă. Ordinea tuplurilor într-o relaţie nu are importanţă. Schema este un invariant al unei relaţii date. O relaţie este variantă în timp. În afara valorilor specifice fiecărui domeniu, în bazele de date relaţionale se acceptă şi o valoare specială, numită valoarea nulă şi notată null. Prin null se desemnează o valoare momentan necunoscută sau o valoare care nu are semnificaţie într-un anumit context.

Proprietăți ale relațiilor • Observatie! Nu orice tabel reprezintă o relaţie! Prin transformarea tabelului de mai sus se obține următoarea relație: Baze de Date 2011 -2012 Anca Ion

Chei Baze de Date 2011 -2012 Anca Ion • O relație r este definită ca o mulțime de tupluri distincte. Aceasta înseamnă ca nu există 2 tupluri care să aibă aceeași combinație de valori pentru toate atributele. • Notăm cu SK subsetul de atribute ale relației r pentru care oricare 2 tupluri distincte t 1 și t 2 avem: t 1[SK] ≠ t 2[SK] • Orice subset de atribute cu proprietățile lui SK se numește supercheie. Orice relație are cel puțin o supercheie – tot setul de attribute. • O cheie K a unei relații r este o supercheie minimală a relației care îşi pierde proprietatea de identificator unic al tuplului dacă îndepărtăm unul dintre atribute. • O cheie este determinată de înțelesul atributelor și această proprietate este invariantă în timp, deci continuă să existe și după ce se inserează noi tupluri în relație.

Chei Baze de Date 2011 -2012 Anca Ion • O relație poate avea mai multe chei, numite chei candidat. De obicei, dintre aceste chei candidat se desemnează una singură, numită cheie primară. • Domeniul cheii primare se numește domeniu primar. • Cheile candidat rămase după alegerea cheii primare se numesc chei alternative. • Când schema relației are mai multe chei candidat, alegerea dintre ele a cheii primare se face arbitrar. De obicei, este indicată alegerea cheii primare cu un singur atribut sau cu numărul minim de atribute.

Chei Baze de Date 2011 -2012 Anca Ion Exemplu: Se consideră schema relației: Client_schema(CNP, Cod. Client, Nume. Client, Prenume. Client, Strada, Oras) si relația Client: • Atributul CNP identifică unic toate tuplurile. De asemenea atributul Cod. Client identifică unic toate tuplurile. Unul din cele 2 atribute poate fi ales cheie primara.

Legături între relații Baze de Date 2011 -2012 Anca Ion • Spre deosebire de alte modele implementabile ale bazelor de date, la care legăturile între obiectele bazei de date se realizează la nivel fizic prin lanțuri de pointeri, în cazul modelului relational, legăturile se realizează la nivel logic prin mecanismul cheilor externe. • Se numeşte cheie externă (secundară) un atribut (simplu sau compus) utilizat numai în scopul căutării unor tupluri. • Fie R 1 şi R 2 două relaţii cu schemele R 1(A, …) respectiv R 2(B, …) şi A este cheie primara in R 1, iar dom(A)=dom(B). Se spune că atributul B reprezintă o cheie externă definită peste cheia primară a relaţiei R 1.

Tipuri de legături între relații Baze de Date 2011 -2012 Anca Ion -Legături unu la unu (notație-1: 1) sunt create, de obicei, pentru a înlătura valorile nule dintr-o relație. Sunt rar folosite în modelul relațional. -Legături unu-la-mulți (notație-1: m, 1: ∞) sunt des folosite între relații, în modelul relațional. Unui tuplu din relația r 1 îi corespund mai multe tupluri în relația r 2. -Legături mulți-la-mulți (notație-m: n, ∞: ∞) înseamnă ca unui tuplu dintro relație r 1 îi corespund mai multe tupluri ale relației r 2 și invers. -In figura de mai jos, legătura mulți-la-mulți între relațiile Cont și Client este rezolvată prin crearea unei a treia relații Depune. La fel și pentru relațiile Credit și Client între care există, de asemenea, legătură mulți-lamulți.

Tipuri de legături între relații Baze de Date 2011 -2012 Anca Ion

Reguli de integritate a datelor Baze de Date 2011 -2012 Anca Ion • Se numeşte regulă de integritate a datelor o restricţie impusă valorilor datelor. • Regula de integritate a domeniului • Toate valorile unui atribut trebuie sa fie atomice și de acelaşi tip. • Regula de integritate a entităţii (a cheii primare) • Cheia primară a unei relaţii nu poate avea valori nule. • Regula de integritate a referirii • Valorile unei chei externe trebuie să fie nule sau să se regăsească printre valorile înregistrate ale cheii primare peste care este definită. • Reguli de integritate specifice care pot fi definite • Valorile numerice sunt cuprinse între anumite valori. • Valorile atributului se găsesc printre valorile dintr-o listă finită. • Nu sunt acceptate valori nule. • Nu sunt acceptate valori duplicate.

Baze de date relaționale și schema bazei de date relaționale Baze de Date 2011 -2012 Anca Ion • Prin bază de date relaţională vom inţelege o colecţie de relaţii interconectate. • Schema bazei de date este formată din schemele relaţiilor şi legăturile dintre acestea ca in figura precedenta.

Baze de Date Exercitiu-tema 2011 -2012 Anca Ion Să se creeze o bază de date relațională a secretariatului unei facultăți care conține următoarele informații despre: Examen- număr examen, denumire examen, sala examen, ora examenului. Profesor – număr matricol, nume, prenume; un profesor poate participa examene ca si asistent sau titular. Student - număr matricol, cnp, nume, prenume, data nașterii. Pentru fiecare student se vor înregistra notele obținute la fiecare examen. Se cere: 1. Să fie efectuată analiza atributelor folosite, indicându-se tipul de date al fiecărui atribut, formulând consideraţiuni asupra domeniilor de valori ale atributelor, etc. 2. Să se reprezinte în modelul relaţional diagrama obţinută la punctul 1, descriind modul de obţinere a relaţiilor şi schemele acestora. De asemenea, vor fi precizate cheile relaţiilor.
- Slides: 16