Sunteți pe pagina 1din 17

Baze de Date

-Modelul Relațional-

Universitatea din Craiova,


Facultatea de Automatica, Calculatoare si Electronica
Introducere
• În prezent, modelul relațional este principalul model de date pentru
aplicațiile comerciale de procesare a datelor, datorită simplitatii 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
• 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:
• NrCont – 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 NrCont se va reprezenta ca un șir de caractere,
deci tipul de date va fi String.
Structura modelului relațional
•Definitie: Schema relației, notată R(A1, A2…, An) este compusă din numele
schemei R si o listă de atribute A1, A2…, 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.

•Exemplu: Schema relaţiei Cont_schema poate fi scrisă sub forma:


• Cont_schema(NrCont, Filială, Balanță).

•Definitie: Fiind dată o colecţie de mulţimi cu valori atomice D1, D2,... Dn (nu
neapărat distincte) numite domenii, se numeşte relaţie pe mulţimile D1, D2, ...
Dn orice subset r(R) al produsului cartezian D1xD2x ... xDn .

•Exemplu: Fie D1 mulțimea care conține numerele conturilor


{ RO11ING012392330, RO21BCR014569879}, D2 mulțimea care conține
denumirile filialelor {ING1, BCR2}, D3 mulțimea care conține balanțele {500,
1000}.

•Atunci cont(Cont_schema) = {(RO11ING012392330, ING1, 500),


(RO21BCR014569879, BCR2, 1000)} reprezintă o relație.
Structura modelului relațional
• Î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
• 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:
Chei
• 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 t1 și t2 avem:
t1[SK] ≠ t2[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
• 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
Exemplu: Se consideră schema relației: Client_schema(CNP,
CodClient, NumeClient, PrenumeClient,Strada, Oras) si relația
Client:

• Atributul CNP identifică unic toate tuplurile. De asemenea atributul


CodClient identifică unic toate tuplurile. Unul din cele 2 atribute
poate fi ales cheie primara.
Legături între relații
• 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 R1 şi R2 două relaţii cu schemele R1(A,…) respectiv R2(B,…) şi A


este cheie primara in R1, iar dom(A)=dom(B). Se spune că atributul B
reprezintă o cheie externă definită peste cheia primară a relaţiei R1.
Tipuri de legături între relații
-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 r1 îi corespund mai multe
tupluri în relația r2.

-Legături mulți-la-mulți (notație-m:n, ∞:∞) înseamnă ca unui tuplu


dintr-o relație r1 îi corespund mai multe tupluri ale relației r2 ș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-la-
mulți.
Tipuri de legături între relații –Modelul ER
Tipuri de legături între relații

M M FK M
FK FK

FK
FK M
M
Reguli de integritate a datelor
• 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
• 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.
Exercitiu-tema

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.

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