Documente Academic
Documente Profesional
Documente Cultură
3/20/2018
Rezumat
Modelul Relațional al Datelor
Relații, atribute
Prima formă normală (FN1)
Formele normale 2, 3, 4
Traducerea diagramelor EA în MRD
Constrângeri de integritate primitive în MRD
Constrângeri de domeniu
Constrângeri de totalitate
Constrângeri de unicitate – Chei
Cheie primară
Chei străine
Constrângeri tuplu
2 http://ebautu.disciplinele.ml 20.03.2018
1
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
3 http://ebautu.disciplinele.ml 20.03.2018
MRD – Noțiuni
Structuri de date –
tabele (relații) atribute
Atribute ale datelor (sau coloane)
Constrângeri
privind datele din tupli
tabele (sau linii,
randuri,
Legături între tabele inregistrări)
Metode pentru a
construi noi tabele,
pentru a interoga
datele din tabele
(operații în algebra
relațională)
4 http://ebautu.disciplinele.ml 20.03.2018
2
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
MRD – Relație
Numele relației
R
A1 A2 … An Numele atributelor
(coloane)
v 11 v 12 … v 1n
… … … …
v m1 v m2 … v mn
5 http://ebautu.disciplinele.ml 20.03.2018
MRD – Relație
Liniile dintr-un tabel reprezintă o legătură (asociație,
relație) între elementele unor mulțimi de valori
Capul de tabel conține nume de atribute
Neaparat distincte în cadrul unui tabel
Fiecare atribut are o mulțime de valori posibile, numită
domeniu
Semantic, o relație (un tabel) ține datele despre o
mulțime de obiecte (de același tip)
Fiecărui element distinct din mulțime îi corespunde o
unică linie din tabel
Fiecărei proprietăți de interes a elementelor mulțimii îi
corespunde o coloană în tabel
6 http://ebautu.disciplinele.ml 20.03.2018
3
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
MRD – Relație
În teoria mulțimilor, dat un șir de mulțimi D 1, D 2, …D n, o
relație între aceste mulțimi este o submulțime a produsului
cartezian D 1 x D 2 x … x D n
D i sunt domeniile relației
n – aritatea relației
Observații
Ordinea tuplilor într-o relație este irelevantă
Tuplii sunt distincți
În cadrul unui tuplu, ordinea valorilor este importantă (a i-a
valoare aparține celui de al i-lea domeniu)
Un anume domeniu poate apare de mai multe ori; în cadrul
relației, domeniului I se asociază un rol -> atribut
De exemplu, o relație poate conține informații despre un angajat, data
nașterii și data angajării
Vor exista două atribute diferite care au același domeniu
7 http://ebautu.disciplinele.ml 20.03.2018
8 http://ebautu.disciplinele.ml 20.03.2018
4
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
9 http://ebautu.disciplinele.ml 20.03.2018
MRD – Relație
ANGAJAȚI
IdAn Nume Prenu CNP DataN Data Departament
gajat me asterii Anga
jarii
17 Popa Ion 180101011 10/10/ 01/01 Matematică
1111 1980 /2004
2 Georgescu Florin 17901012 01/01/ 01/01 Stiinte
22222 1979 /2005 Economice
15 Mitrea Ana 16501013 01/01/ 01/05 Matematica
33333 1965 /2004
1 Mircescu Florina 19101014 01/01/ 10/10 Juridic
44444 1991 /2012
5
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
MRD - Atribute
Mulțimea valorile admise pentru un atribut –
domeniul atributului
Valorile atributelor sunt atomice (indivizibile,
simple)
Valoarea specială null îmbogățește fiecare
domeniu
Tipuri de valoare null
Valoare inexistentă (inaplicabilă)
Valoare temporar necunoscută
Valoare lipsită de informație
Nu se știe dacă există sau nu, iar în caz că ar exista, nu se
știe nimic despre natura ei
11 http://ebautu.disciplinele.ml 20.03.2018
MRD - Atribute
POLIGLOȚI
IdPersoana Personalitate Engleză Franceză Rusă
1 Decebal
2 Constantin
Brâncoveanu
3 Dimitrie Da Da Da
Cantemir
4 Mihai I Da Da
5
Observații:
1. Despre Decebal, nu are rost să vorbim de cunoașterea limbilor
străine Engleză, etc, deoarece acestea nu existau.
2. Despre M.S. Mihai I, nu se cunoaște dacă știa rusa, dar este o
informație care poate fi identificată, incă.
12 http://ebautu.disciplinele.ml 20.03.2018
6
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
Persoana LimbiVorbite
Elena Bautu {Romana, Engleza}
Christian Mancas {Romana, Engleza, Franceza}
13 http://ebautu.disciplinele.ml 20.03.2018
14 http://ebautu.disciplinele.ml 20.03.2018
7
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
16 http://ebautu.disciplinele.ml 20.03.2018
8
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
MRD – Constrângeri de
integritate primitive
17 http://ebautu.disciplinele.ml 20.03.2018
18 http://ebautu.disciplinele.ml 20.03.2018
9
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
19 http://ebautu.disciplinele.ml 20.03.2018
Constrângeri – pe scurt
1. Constrângeri de domeniu
Definesc domeniile de valori ale atributelor
Dom(Nume) = CHAR(32)
Dom(Sex) = {‘M’, ‘F’}
Autonumber – tip de date intregi, pentru care SGBD genereaza valorile, in
secventa
IdStudent NrMatricol Student AnNaştere
autonumber NAT(5) CHAR(64) NAT(4),
>1965, <1978
1 32897 Ionescu Gabriel 1973
2 44135 Georgescu Radu 1966
3 44136 Vasilescu Mihai 1975
20 http://ebautu.disciplinele.ml 20.03.2018
10
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
Constrângeri – pe scurt
2. Constângeri de existenţă
Proprietatea de obligativitate a existenţei de valori nenule pentru
un atribut
Campuri pentru care nu este permis sa fie goale
Ar tb sa includa si campurile ce contin valori asimilate tipului null (de
exemplu, sirul vid “”)
Exemplu: In PERSOANE: CNP not null; Nume not null;
21 http://ebautu.disciplinele.ml 20.03.2018
Constrângeri – pe scurt
3. Constângeri d e unicitate
Cheie = un atribut sau o multime de atribute ce
identifică unic un obiect de un anumit tip (o
entitate, o înregistrare dintr-o relaţie) şi care este
minimală cu această proprietate
Chei in PERSOANE: CNP, SerieCI.NrCI *
Chei în TĂRI: NumeTara, Capitala
Cheie primară: o cheie ce nu admite valori nule
De obicei, un camp cu autonumărare (Autonumber)
Denumit cu Id
22 http://ebautu.disciplinele.ml 20.03.2018
11
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
Constrângeri – pe scurt
3. Constângeri d e unicitate
Cheie primară: o cheie ce nu admite valori nule
Adica: un atribut (ori combinatie de atribute) ale carui
valori identifica unic instantele din tipul respectiv, si care
nu permite valori nule
De obicei, un camp cu autonumărare
(Autonumber)
Denumit cu Id
Cheia primara poate si o combinatie de atribute,
dar nu este recomandabil (Tratam subiectul in
detaliu in Curs 6-7)
23 http://ebautu.disciplinele.ml 20.03.2018
Constrângeri – pe scurt
4. Constângeri tip cheie straină: un atribut (sau o
mulţime de atribute) a unei relaţii ce fac referire la o
cheie (de preferat primara) a unei alte relaţii
Provine din funcţiile din DEA, sau din proiectiile asociaţiilor
pe mulţimile lor suport
LOCALITATI JUDETE
IdLocalitate DenumireL Judet IdJudet Denumir
ocalitate eJudet
1 Constanta 2 1 Iasi
2 Harsova 2 2 Constant
a
3 Mangalia 2
24 http://ebautu.disciplinele.ml 20.03.2018
12
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
Constrângeri – pe scurt
Chei straine, cu
legatura catre
LOCALITATI
STUDENTI
IdStudent Nume Prenume NrMatricol Localitate Localitate
Nastere Domiciliu
1 Popa Vasile 111 2 2
2 Popescu Ion 112 1 2
4 Popa Alin 113 3 1
5 Escu Ion 114 2 1
25 http://ebautu.disciplinele.ml 20.03.2018
Constrângeri – pe scurt
5. Constrângeri tuplu
Constrângerile tuplu se referă la condiții ce
trebuie îndeplinite de intreg tuplul, sau chiar de
tupli din mai multe relații
Ex. year(DataAngajarii)>=year(DataNasterii)+18
26 http://ebautu.disciplinele.ml 20.03.2018
13
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
27 http://ebautu.disciplinele.ml 20.03.2018
14
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
Forme normale 2 si 3
FN2 si FN3 stabilesc relatii intre campurile cheie
si campurile care nu fac parte din chei
În esenţă, pentru ca o baza de date să satisfacă
FN2 şi FN3, un camp care nu face parte dintr-o
cheie trebuie sa contina informatii (doar) despre o
cheie.
29 http://ebautu.disciplinele.ml 20.03.2018
30 http://ebautu.disciplinele.ml 20.03.2018
15
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
FN2 – Exemplu
Vom considera un tabel in care gestionam informaţii
despre produsele din un lanţ de depozite.
Cheia (de interes) este compusă din Produs.Depozit
(adică nu pot exista 2 înregistrări pentru acelaşi
produs în acelaşi depozit).
Pot exista inregistrări pentru acelaşi produs în depozite
diferite, sau pentru produse diferite în acelaşi depozit.
Produs Depozit Cantitate Adresa_depo
zit
P1 D1 2 Adresa1
P2 D2 3 Adresa2
P3 D1 3 Adresa1
31 P4 D1
http://ebautu.disciplinele.ml 2 Adresa1 20.03.2018
FN2 – Exemplu
Probleme
Adresa depozitului este repetata pentru fiecare produs din
depozit
Daca se modifica adresa, tb modificata peste tot
Daca intr-un loc este scrisa gresit, datele pot deveni inconsistente
Daca nu mai exista produse intr-un depozit, se vor pierde informatiile
despre depozit (eg, adresa), cand se va sterge ultimul produs din depozit
Cauza: tabelul conţine informaţii despre 2 tipuri de entităţi:
DEPOZITE şi STOCurile ce se găsesc în aceste depozite
Produs Depozit Cantitate Adresa_depo
zit
P1 D1 2 Adresa1
P2 D2 3 Adresa2
P3 D1 3 Adresa1
32 P4 D1
http://ebautu.disciplinele.ml 2 Adresa1 20.03.2018
16
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
FN2 – Exemplu
Rezolvare: descompunerea relaţiei in 2 relaţii
STOCURI va conţine un câmp Depozit, cheie
străină către DEPOZITE
STOCURI
Produs Depozit Cantitate DEPOZITE
IdDepozit Depozit Adresa
P1 1 2
1 D1 Adresa1
P2 2 3
2 D2 Adresa2
P3 1 3
P4 1 2
33 http://ebautu.disciplinele.ml 20.03.2018
34 http://ebautu.disciplinele.ml 20.03.2018
17
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
FN3 – Exemplu
Probleme:
Locatia unui departament este copiata pentru fiecare
student din acel departament
Daca locatia se modifica, trebuie modificat în toate
înregistrările
Datele redundante lasă loc pentru inconsistenţe (pot
apare locaţii diferite pentru acelaşi departament)
Dacă se sterg toţi studenţii dintr+un departament, dispar
informaţiile despre departament cu totul
Nu se pot insera informaţii despre un departament fără
să existe studenţi înregistraţi în acel departament
Cauza: tabelul conţine informaţii despre 2 tipuri de
entităţi, de fapt: Studenţi şi Departamente
35 http://ebautu.disciplinele.ml 20.03.2018
FN3 – Exemplu
Soluţia: descompunerea în 2 relaţii
STUDENTI va contine un camp Departament, cheie
straina catre tabela DEPARTAMENE
IdStudent Student CNP Departament Locatie
1 S1 123 D1 Cladire1
2 S2 124 D1 Cladire1
3 S3 125 D2 Cladire2
STUDENTI
DEPARTAMENTE
IdStuden Student CNP Departa
t ment IdDep Departa Locatie
1 S1 123 1 ment
2 S2 124 1 1 D1 Cladire1
3 S3 125 2 2 D2 Cladire2
36 http://ebautu.disciplinele.ml 20.03.2018
18
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
37 http://ebautu.disciplinele.ml 20.03.2018
FN4 – Exemplu
Fie un tabel despre persoane, culori preferate si
limbi vorbite de acestea.
Culoare şi LimbaVorbita sunt informaţii
independente despre o persoana
IdPersoana CNP Culoare LimbaVorbita
1 123 Rosu Engleza
2 124 Rosu Franceza
1 123 Verde
1 123 Germana
2 124 Verde
2 124 Verde Franceza
38 http://ebautu.disciplinele.ml 20.03.2018
19
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
FN4 – Exemplu
Anomalii de actualizare, insertie, stergere
39 http://ebautu.disciplinele.ml 20.03.2018
FN4 – Exemplu
Solutia: este descompunerea in 2, 3 relatii
IdPersoana CNP Culoare LimbaVorbita
1 123 Rosu Engleza
2 124 Rosu Franceza
1 123 Verde
1 123 Germana
2 124 Verde
2 124 Verde Franceza
IdPersoana Culoare IdPersoana CNP
1 Rosu 1 123
2 Rosu 2 124 IdPersoana LimbaVorbita
1 Verde 1 Engleza
2 Verde 2 Franceza
40 http://ebautu.disciplinele.ml 20.03.2018
1 Germana
20
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
Traducerea diagramelor EA în
scheme în MRD
41 http://ebautu.disciplinele.ml 20.03.2018
42 http://ebautu.disciplinele.ml 20.03.2018
21
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
43 http://ebautu.disciplinele.ml 20.03.2018
44 http://ebautu.disciplinele.ml 20.03.2018
22
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
45 http://ebautu.disciplinele.ml 20.03.2018
46 http://ebautu.disciplinele.ml 20.03.2018
23
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
47 http://ebautu.disciplinele.ml 20.03.2018
48 http://ebautu.disciplinele.ml 20.03.2018
24
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
49 http://ebautu.disciplinele.ml 20.03.2018
50 http://ebautu.disciplinele.ml 20.03.2018
25
Created in Master PDF Editor - Demo Version
Created in Master PDF Editor - Demo Version
3/20/2018
Rezumat
Modelul Relațional al Datelor
Relații, atribute
Prima formă normală
Traducerea diagramelor EA în MRD
Constrângeri de integritate primitive în MRD
Constrângeri de domeniu
Constrângeri de totalitate
Constrângeri de unicitate – Chei
Cheie primară
Chei străine
Constrângeri tuplu
51 http://ebautu.disciplinele.ml 20.03.2018
Bibliografie
“Baze de date”, Note de curs, Christian Mancaș, Universitatea
Ovidius, Constanța (vezi Avizier)
“Baze de date” – curs (Facultatea de Informatică, Univ. Al. I.
Cuza, Iași)
Profesori: Victor Felea, Mihaela Breabăn, Cosmin Vârlan
“Database System Concepts”, Avi Silberschatz, Henry F. Korth,
S. Sudarshan, McGraw-Hill, January 28, 2010.
Ronald Fagin. 1981. A normal form for relational databases that
is based on domains and keys. ACM Trans. Database Syst. 6, 3
(September 1981), 387-415.
DOI=http://dx.doi.org/10.1145/319587.319592
William Kent, "A Simple Guide to Five Normal Forms in
Relational Database Theory", Communications of the ACM
26(2), Feb. 1983, 120-125. Also IBM Technical Report TR03.159,
Aug. 1981. http://www.bkent.net/Doc/simple5.htm
52 http://ebautu.disciplinele.ml 20.03.2018
26
Created in Master PDF Editor - Demo Version