Curs 3,4 - BD

10
31.10.2013 1 Modelul de date relaţional ACADEMIA DE STUDII ECONOMICE BUCUREŞTI FACULTA TEA DE CIBERNETICĂ, STATISTICĂŞI INFORMATICĂECONOMICĂ BAZE DE DATE BUCUREŞTI 2013-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, caracterizat printr-un nume.  Un domeniu se poate defini: explicit, prin enumerarea tuturor valorilor aparţinând acestuia impli cit, prin precizarea proprietăţi lor pe care le au valorile 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  D 1 ,  D 2 , ...,  D n pro dusul car tez ian al ace sto ra rep rez int ă ansamblul tuplurilor <v 1 , v 2 , ..., v n >, unde:  v 1  este o valoare aparţinând domeniului  D 1 ,  v 2  este o valoare din D 2  ş.a.m.d. De exemplu, tuplurile: <"Maria","F", 50>, <"Vasile","M", 15>, <"Vasile","M", 20>, <"Vasile","F", 100> aparţinprodusului cartezian: D 3 D1 D2 . Relaţia  R ela ţ ia rep rez int ă un sub ans amblu al pro dusului cartezian al mai multor domenii, care este caracterizat printr-un nume şi conţine tupluri cu semnificaţie.  Într-o relaţie, tuplurile trebuie să fie distincte (nu se admit duplicări). Să pres upun em că se acor dă o anumită semnificaţie valorilordomeniilorD 1, D2 , D3. Numai unele dintre tuplurile produsului cartezian: D 3 D1 D2  pot avea o semnificaţie şi anume cele care conţin numele, sexul şi vârsta aceleiaşipersoane

Transcript of Curs 3,4 - BD

Page 1: Curs 3,4 - BD

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

Page 2: Curs 3,4 - BD

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

Page 3: Curs 3,4 - BD

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 .

Page 4: Curs 3,4 - BD

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)

Page 5: Curs 3,4 - BD

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

Page 6: Curs 3,4 - BD

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

Page 7: Curs 3,4 - BD

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ă?

Page 8: Curs 3,4 - BD

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

Page 9: Curs 3,4 - BD

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.

Page 10: Curs 3,4 - BD

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