curs 3,4 - bd
TRANSCRIPT
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 1/10
31.10.2013
1
Modelul de daterelaţional
ACADEMIA DE STUDII ECONOMICE BUCUREŞTIFACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ
BAZE DE DATE
BUCUREŞTI2013-2014
Modelul de date relaţional
Structura relaţională
Operatorii relaţionali
Restricţiile de integritate
Structura relaţională
Domeniu
Relaţie
Atribut
Tuplu
Cheie
Schemă
Domeniul
Reprezintă un ansamblu de valori, caracterizatprintr-un nume.
Un domeniu se poate defini:
explicit, prin enumerarea tuturor valorilor aparţinând
acestuia
implicit, prin precizarea proprietăţilor pe care le auvalorile din cadrul domeniului respectiv
Exemplu:D1 : {"F ", "M " }D2 : { x | x N , x [0, 100]}D3 : {s | s=şir de caractere}
Domeniul
Pentru un ansamblu de domenii D1, D2 , ..., Dn
produsul cartezian al acestora reprezintăansamblul tuplurilor <v 1, v 2 , ..., v n>, unde: v 1 esteo valoare aparţinând domeniului D1, v 2 este o
valoare din D2 ş.a.m.d.De exemplu, tuplurile:
<"Maria","F", 50>,
<"Vasile","M", 15>,
<"Vasile","M", 20>,
<"Vasile","F", 100>aparţinprodusului cartezian: D3 D1 D2 .
Relaţia
Relaţia reprezintă un subansamblu al produsuluicartezian al mai multor domenii, care este caracterizatprintr-un nume şi conţine tupluri cu semnificaţie.
Într-o relaţie, tuplurile trebuie să fie distincte (nu se admitduplicări).
Să presupunem că se acordă o anumită semnificaţie
valorilordomeniilorD 1, D2 , D3.
Numai unele dintre tuplurile produsului cartezian: D3 D1 D2
pot avea o semnificaţie şi anume cele care conţin numele,
sexul şi vârsta aceleiaşipersoane
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 2/10
1
31.10.2013
2
Relaţia
R : {<a, 1, α >, <b, 2 , β >}
Reprezentare ca tabel bidimensional
Extensia unei relaţii: ansamblul tuplurilor carecompun la un moment dat relaţia
Numărul tuplurilor dintr-o relaţie reprezintă cardinalul
relaţiei, în timp ce numărul valorilor dintr-un tupludefineşte gradul acesteia.
D3 D1 D2
a 1 α
b 2 β
Atributul Atributul reprezintă coloana unei tabele de date,
caracterizată printr-un nume. Numele coloanei(atributului) exprimă, de regulă, semnificaţia valorilor
din cadrul coloanei respective.
Tuplul Tuplul reprezintă linia unei tabele de date şi nu are
nume.
Cheia Cheia desemnează un atribut sau un ansamblu de
atribute care are rolul de a identifica o înregistraredintr-o tabelă.
Schema unei relaţii
Aceasta este alcătuită din numele relaţiei, urmat
de lista atributelor, pentru fiecare atributprecizându-se domeniul asociat.
R ( A1:D1, ..., An:Dm)
R: A1:D1 . . . An:Dm
Operatorii modelului relaţional
Operatori din algebra relaţională (AR);
Operatori din calculul relaţional (CR).
Algebra relaţională
Introdusă de E.F.Codd ca o colecţie de operaţii perelaţii în care operatorii descriu tipuri de prelucrăriasupra relaţiilor, operanzii sunt relaţii, iar rezultatuleste, de asemenea, o relaţie.Operatori de bază:
Universali: reuniunea, diferenţa, produsul cartezian Specifici: proiecţia, selecţia şi joncţiunea
Operatori derivaţi: intersecţia şi diviziunea
Extensii ale algebrei relaţionale standard:complementarea unei relaţii, spargerea unei relaţii şi închiderea tranzitivă.
Proiecţia
Definită asupra unei relaţii R , proiecţia constă dinconstruirea unei noi relaţii P , în care se regăsescnumai acele atribute din R specificate explicit încadrul operaţiei.
Implică efectuarea unor tăieturi verticale asuprarelaţiei R şi care pot avea ca efect apariţia unor tupluri duplicate, care se cer a fi eliminate.
Se trece de la o relaţie de grad n la o relaţie de grad p, mai mic decât cel iniţial ( p < n), adică de la unspaţiu de n dimensiuni la unul cu mai puţinedimensiuni, ceea ce explică şi numele de proiecţie.
A1 A2 A3 A4R
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 3/10
31.10.2013
3
Proiecţia
Ai ,……, Am (R )
R [ Ai ,..., Am] PROJECT (R , Ai ,..., Am)
N ume Va rs ta S alar iu
Ion 25 3000
Mihai 30 2000
Anca 25 3000
Sof ia 30 2000
Mi rce a 3 0 20 00
Varsta Salariu
25 3000
30 2000
25 3000
30 2000
30 2000
Varsta Salariu
25 3000
30 2000
ANGAJATI Varsta,salariu
Exemplu SQL
SELECT DISTINCT varsta, salariu
FROM angajati;
Selecţia
Reprezintă operaţia definită asupra unei relaţiiR , care constă din construirea unei relaţii S, cuaceeaşi schemă ca R şi a cărei extensie esteconstituită din acele tupluri din R care satisfaccondiţia menţionată explicit în cadrul operaţiei.
Implică efectuarea de tăieturi orizontale asuprarelaţiei R , adică eliminarea unor tupluri alerelaţiei.
A1 A2 A3 A4R
Selectia
δ condiţie (R )
R [condiţie]
RESTRICT (R , condiţie)
N ume Va rs ta S alar iuIon 25 3000
Mihai 30 2000
Anca 25 3000
Sof ia 30 2000
Mi rcea 3 0 2 00 0
N ume Va rs ta S alar iu
Ion 25 3000
Anca 25 3000
Mir cea 30 2 00 0
ANGAJATI
δ(salariu>2000 or nume=Mircea)
Exemplu SQL
SELECT *
FROM angajati
WHERE salariu>2000 or nume=‘Mircea’
Produsul cartezian
Este o operaţie definită pe două relaţii, R 1 şi R 2 .
Pe baza relaţiilor R 1 şi R 2 se construieşte o nouărelaţie, R 3, a cărei schemă se obţine princoncatenarea schemelor relaţiilor R 1 şi R 2 şi a
cărei extensie cuprinde toate combinaţiiletuplurilor din R 1 cu cele din R 2 .
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 4/10
31.10.2013
4
Produsul cartezian
R 1 x R 2
PRODUCT (R 1, R 2 )
TIMES (R 1, R 2 )
ID Nume
1 Ion
2 Mih ai
3 Anca
4 S of ia
5 M ir ce a
NRC Data ID
1 0 1. 01 .11 1
2 0 7.0 1. 11 2
3 0 8.0 1. 11 3
4 0 8.0 1. 11 2
5 09.01.11
Angajati ComenziID Nume NRC Data ID
1 Ion 1 01.01.11 1
1 Ion 2 07.01.11 2
1 Ion 3 08.01.11 3
1 Ion 4 08.01.11 2
1 Ion 5 09.01.11
2 Mihai 1 01.01.11 1
2 Mihai 2 07.01.11 2
…… ……. …… …… ……
Angajati x Comenzi
Exemplu SQL
SELECT *
FROM angajati, comenzi;
SELECT *
FROM angajati CROSS JOIN comenzi;
Joncţiune
Reprezintă operaţia definită pe două relaţii, R 1 şiR 2 , care constă din construirea unei noi relaţiiR 3, prin concatenarea unor tupluri din R 1 cutupluri din R 2 , pe baza unei condiţii specificateexplicit în cadrul operaţiei.
Extensia relaţiei R 3 va conţine combinaţiileacelor tupluri care satisfac condiţia deconcatenare.
Tipuri de joncţiuni
Internă (inner join)De egalitate
Naturală
De neegalitate
Externă (outer join)La stânga
La dreapta
Completă
Tipuri de joncţiuni Joncţiunea de egalitate şi naturală
R 1 R 2
JOIN (R 1, R 2 , condiţie)
JOIN (R 1, R 2 , condiţie) = RESTRICT
(PRODUCT (R 1, R 2 ), condiţie)
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 5/10
31.10.2013
5
Joncţiunea de egalitate
Operaţie definită pe două relaţii, R 1 şi R 2 , prin
care este construită o nouă relaţie, R 3, a căreischemă este obţinută prin reuniunea atributelor din relaţiile iniţiale;
Extensia relaţiei R 3 conţine tuplurile obţinute princoncatenarea tuplurilor din R 1 cu tuplurile din R 2
care au aceleaşi valori pentru atributele folosite în condiţia de joncţiune.
Joncţiunea de egalitate
Angajati Comenzi
Exemple SQLSELECT *FROM angajati a, comenzi c
WHERE a.id_ang=c.id_ang;
SELECT *FROM angajati a JOIN comenzi cON a.id_ang=c.id_ang;
SELECT *FROM angajati a JOIN comenzi cUSING (id_Ang);
Joncţiunea naturală
Presupune existenţa unor atribute avândaceeaşi denumire în ambele relaţii
SELECT *
FROM angajati a NATURAL JOIN comenzi c;
Joncţiunea externă
Operaţie prin care din două relaţii, R 1 şi R 2 , seobţine o nouă relaţie, R 3, prin joncţiunea relaţiilor iniţiale
La noua relaţie R 3 sunt adăugate şi tuplurile din
R 1 şi/sau R 2 care nu au participat la joncţiune. Aceste tupluri sunt completate în relaţia R 3 cu
valori NULL pentru atributele relaţieicorespondente (R 2 , respectiv R 1).
R 1 R 2
EXT-JOIN (R 1, R 2 , condiţie)
Joncţiunea la stânga
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 6/10
31.10.2013
6
Joncţiunea la dreapta Joncţiunea completă
Modelul de daterelaţional (2)
ACADEMIA DE STUDII ECONOMICE BUCUREŞTIFACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ
BAZE DE DATE
BUCUREŞTI2013-2014
Reuniunea
Este o operaţie definită pe două relaţii, R 1 şi R 2 ,ambele cu aceeaşi schemă, prin care se obţineo nouă relaţie R 3, cu schema identică cu R 1 şiR 2 , dar având ca extensie tuplurile din R 1 şi R 2 ,
luate împreună o singură dată.R 1 R 2
OR (R 1, R 2 )
APPEND (R 1, R 2 )
UNION (R 1, R 2 )
Exemplu UNION
Clienti Angajati Clienti Angajati
Exemplu UNION ALL
Clienti Angajati
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 7/10
31.10.2013
7
Diferenţa
Este o operaţie definită pe două relaţii, R 1 şi R 2 ,
ambele cu aceeaşi schemă, prin care se obţine onouă relaţie, R 3, cu extensia formată din aceletupluri ale relaţiei R 1 care nu se regăsesc şi înrelaţia R 2 .
R 1 – R 2
REMOVE (R 1, R 2 )
MINUS (R 1, R 2 )
Diferenţa
DA
NU!DE CE?
Clienti – Comenzi
Clienti – Comenzi
Ce afişează?
Intersecţia
Reprezintă o operaţie definită pe două relaţii, R 1şi R 2 ambele cu aceeaşi schemă, prin care seobţine o nouă relaţie, R3, cu schema identică cua relaţiilor operand şi cu extensia formată dintuplurile din R
1şi R
2 .
R 1 R 2
INTERSECT (R 1, R 2 )
AND (R 1, R 2 )
Intersecţia
Clienti Comenzi
Ce afişează?
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 8/10
31.10.2013
8
Alţi operatori
Diviziunea
Complementarea
Spargerea unei relaţii
Închiderea tranzitivă
Calculul relaţional
Introdus, ca şi algebra relaţională de către E.F.
Codd.
Este o adaptare a calculului cu predicate deordinul 1 (domeniu al logicii matematice) ladomeniul bazelor de date relaţionale.
Predicatul este o relaţie care se stabileşte întreanumite elemente şi care are drept argumentevariabile care nu sunt predicate.
Calculul relaţional
Variabila poate fi de tip tuplu (valorile sunt dintr-
un tuplu al unei tabele) sau domeniu (valorilesunt dintr-un domeniu al unei tabele).
Rezultă:Calcul relaţional orientat pe tuplu
Calcul relaţional orientat pe domeniu
Operatori
Conectivele (conectorii):Conjuncţia
Disjuncţia
Negaţia
Cuantificatorii:Cuantificatorul existenţial
Cuantificatorul universal
Restricţiile de integritate
Restricţiile de integritate, denumite şi reguli deintegritate, definesc cerinţele pe care trebuie săle satisfacă datele din cadrul bazei de datepentru a putea fi considerate corecte şi coerente
în raport cu domeniul pe care îl reflectă.
Restricţiile de integritate
Restricţii structurale (minimale):De unicitate a cheii
Referenţială
Entităţii
Restricţii de comportament:De domeniu
Temporare
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 9/10
31.10.2013
9
Restricţia de unicitate a cheii
Impune ca într-o relaţie R, care are cheia K ,
oricare ar fi tuplurile t 1 şi t 2 să fie satisfăcutăinegalitatea: t 1(K ) ≠ t 2 (K ).
Această inegalitate semnifică faptul că într-orelaţie nu pot exista două tupluri cu aceeaşivaloare pentru atributele cheie.
Cheia unei relaţii trebuie să fie minimală, însensul că nicio parte a sa nu trebuie să aibăproprietatea de identificare unică a tuplurilor relaţiei.
Restricţia de unicitate a cheii
Cheia primarăSimplăCompusă
Cheia candidată
ANGAJATI
Marca Cheieprimarăsimplă
CNP Cheiecandidată
NumePrenumeData_angajareSalariuDepartament
ISTORIC_FUNCTII
Marca Cheieprimarăcompusă
Data_inceputData_sfarsitId_functie
Restricţia referenţială
Un atribut sau un grup de atribute dintr-o relaţie R 1 ale
cărui/căror valori sunt definite pe acelaşi/aceleaşidomeniu/domenii ca şi cheia primară a unei alte relaţii,R 2 şi care are rolul de a modela asocierea între entităţilereprezentate cu ajutorul relaţiilor R 1 şi R 2 .
R 1 şi R 2 nu trebuie să fie neapărat distincte.
ANGAJATI
Marca Cheieprimară
CNP Cheiecandidată
NumePrenumeData_angajareSalariuDepartament
ISTORIC_FUNCTII
Marca Cheieprimarăcompusă
Marca–cheieexternaData_inceputData_sfarsitId_functie Cheieexternă
Restricţia entităţii
Restricţia entităţii reprezintă restricţia deintegritate care impune ca într-o relaţie, anumiteatribute sa fie nenule.
ANGAJATI
Marca Cheieprimară
CNP Cheiecandidată, Notnull
Nume Notnull
Prenume Notnull
Data_angajare Notnull
SalariuDepartament
ISTORIC_FUNCTII
Marca Cheieprimară compusă
Data_inceputData_sfarsitId_functie Notnull
Alte restricţii de integritate
De domeniu Domeniul corespunzător unui atribut dintr-o tabelă
trebuie să se încadreze între anumite valori;
Temporare
Valorile anumitor atribute se compară cu nişte valoritemporare (rezultate din calcule etc.).
ANGAJATI
MarcaCNPNumePrenumeData_angajareSalariu >=1000, <= 5000
Departament ‘FIN’, ‘IT’,’CONTA’
ISTORIC_FUNCTII
MarcaData_inceputData_sfarsitId_functie
Restricţiile de integritatesuportate în SQL-Oracle
NOT NULL nu permite valori NULL (nespecificate) în coloanele unei tabele;
UNIQUE nu permite 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 coloanedefinit astfel să aibă o valoare corespondentă identică în tabela delegătură, tabelă în care coloana corespondentă este definită curestricţiaUNIQUE sau PRIMARY KEY;
CHECK elimină valorile care nu satisfac anumite cerinţe (condiţii) logice.
7/23/2019 Curs 3,4 - BD
http://slidepdf.com/reader/full/curs-34-bd 10/10
31.10.2013
10
Exemplificare SQL-Oraclecreate table angajati
(marca number(3),
CNP char (13) not null,
nume varchar2(20) not null,prenume varchar2(20) not null,
data_angajare date default sysdate,
salariu number(8,2),
departament varchar2(6),
constraint pk_angajat primary key (marca),
constraint uq_cnp unique (CNP),
constraint ck_salariu check (salariu between 1000 and 5000),
constraint ck_departament check (departament IN (‘FIN’, ‘IT’, ‘CONTA’)));
Exemplificare SQL-Oraclecreate table istoric_functii
(marca number(3),
data_inceput date,
data_sfarsit date,
id_functie varchar2(10) not null,
constraint pk_istoric primary key (marca, data_inceput),
constraint fk_angajat foreign key (marca) references angajati (marca),
constraint fk_angajat foreign key (id_functie) references functii(id_functie));
CURSUL 5...
Baze de date relaţionale