Baze de Date - Universitatea din Craiova

Download Report

Transcript Baze de Date - Universitatea din Craiova

Baze de Date
2011-2012
Anca Ion
Baze de Date
-Modelul RelaționalUniversitatea 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:
•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
Baze de Date
2011-2012
Anca Ion
•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,
(RO21BCR014569879, BCR2, 1000)} reprezintă o relație.
ING1,
500),
Structura modelului relațional
• Într-o bază de date relaţională, o relaţie este privită ca
bidimensional cu toate valorile atomice.
Baze de Date
2011-2012
Anca Ion
un tabel
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 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
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,
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
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 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
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 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 dintro 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-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.