Sunteți pe pagina 1din 65

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI

FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

BAZE DE DATE

Modelul de date relaţional


Modelul de date relaţional

• Structura relaţională
• Operatori 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
• implicit, prin precizarea proprietăţilor 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 D1, D2, ..., Dn
produsul cartezian al acestora reprezintă
ansamblul tuplurilor <v1, v2, ..., vn>, unde: v1
este o valoare aparţinând domeniului D1, v2
este o valoare din D2 ş.a.m.d.
De exemplu, tuplurile:
<"Maria", "F", 50>,
<"Vasile", "M", 15>,
<"Vasile", "M", 20>,
<"Vasile", "F", 100>
aparţin produsului cartezian: D3 D1 D2.
Relaţia
• Relaţia reprezintă un subansamblu al produsului 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 duplicate);
• Să presupunem că se acordă o anumită semnificaţie
valorilor domeniilor D1, 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şi persoane.
Relaţia
• Intensia (schema) relatiei: R (A1:D1, ..., An:Dm)
• Reprezentare ca tabel bidimensional
A1:D1 A2:D2 A3:D3
a 1 α
b 2 β

• Extensia unei relaţii: ansamblul tuplurilor care compun 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 tuplu defineşte gradul
acesteia.
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 primară
 Cheia desemnează un atribut sau un ansamblu de atribute
care are rolul de a identifica o înregistrare dintr-o tabelă.
Schema unei relaţii

• Aceasta este alcătuită din numele relaţiei, urmat


de lista atributelor, pentru fiecare atribut
precizându-se domeniul asociat.

• R (A1:D1, ..., An:Dm)


A1:D1 ... An:Dm
• R:
Operatori SQL
Operator Caracteristici
+, -, *, /, ** (op. Operatori aritmetici
exponenţial)
AND, OR, NOT Operatori logici
<, >, =, >=, <=, <>, != Operatori de comparaţie
BETWEEN ... AND ... Operator de verificare a apartenenţei la un interval
IN(listă) Operator de verificare a apartenenţei la o listă de valori
LIKE Operator de comparare cu un şablon
% - oricâte caractere; _ - un caracter;
IS NULL Operator care verifică dacă o variabilă are valoarea
NULL
|| Operator de concatenare
& Operatori pentru adresarea variabilelor de substituţie
:= Operator de atribuire
Operatorii modelului relaţional

• Operatori din algebra relaţională (AR);


• Operatori din calculul relaţional (CR).
Algebra relaţională
• Reprezintă operaţii pe relaţii în care operatorii descriu
tipuri de prelucrări asupra relaţiilor, operanzii sunt relaţii,
iar rezultatul este, 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ă.
R A1 A2 A3 A4

Proiecţia
• Definită asupra unei relaţii R, proiecţia constă din
construirea unei noi relaţii P, în care se regăsesc numai acele
atribute din R specificate explicit în cadrul operaţiei.
• Implică efectuarea unor tăieturi verticale asupra relaţ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 un spaţiu de n
dimensiuni la unul cu mai puţine dimensiuni, ceea ce explică
şi numele de proiecţie.
Proiecţia
•  Ai,……, Am (R)
• R[Ai,..., Am]
• PROJECT(R, Ai,..., Am)
ANGAJATI  Varsta,salariu
Nume Varsta Salariu Varsta Salariu
Ion 25 3000 25 3000
Varsta Salariu
Mihai 30 2000 30 2000
25 3000
Anca 25 3000 25 3000
30 2000
Sofia 30 2000 30 2000
Mircea 30 2000 30 2000
Exemplu PROIECTIE

SELECT DISTINCT varsta, salariul


FROM angajati;
R A1 A2 A3 A4

Selecţia
• Reprezintă operaţia definită asupra unei relaţii R, care
constă din construirea unei relaţii S, cu aceeaşi schemă
ca R şi a cărei extensie este constituită din acele tupluri
din R care satisfac condiţia menţionată explicit în
cadrul operaţiei.
• Implică efectuarea de tăieturi orizontale asupra relaţiei
R, adică eliminarea unor tupluri ale relaţiei.
Selectia
• δcondiţie (R)
• R [condiţie]
• RESTRICT (R, condiţie)
ANGAJATI
Nume Varsta Salariu δ(salariu>2000 or nume=Mircea)
Ion 25 3000 Nume Varsta Salariu
Mihai 30 2000 Ion 25 3000
Anca 25 3000 Anca 25 3000
Sofia 30 2000 Mircea 30 2000
Mircea 30 2000
Exemplu SELECTIE

SELECT *
FROM angajati
WHERE salariul>2000 or nume=‘Raluca’
Produsul cartezian

• Este o operaţie definită pe două relaţii, R1 şi R2.


• Pe baza relaţiilor R1 şi R2 se construieşte o nouă
relaţie, R3, a cărei schemă se obţine prin
concatenarea schemelor relaţiilor R1 şi R2 şi a
cărei extensie cuprinde toate combinaţiile
tuplurilor din R1 cu cele din R2.
Produsul cartezian
• R1 x R2
• PRODUCT (R1, R2)
• TIMES (R1, R2)
Angajati x Comenzi
ID Nume NRC Data ID
Angajati Comenzi
1 Ion 1 01.01.11 1
ID Nume NRC Data ID
1 Ion 2 07.01.11 2
1 Ion 1 01.01.11 1
1 Ion 3 08.01.11 3
2 Mihai 2 07.01.11 2
1 Ion 4 08.01.11 2
3 Anca 3 08.01.11 3
1 Ion 5 09.01.11
4 Sofia 4 08.01.11 2
2 Mihai 1 01.01.11 1
5 Mircea 5 09.01.11
2 Mihai 2 07.01.11 2
…… ……. …… …… ……
Exemplu PRODUS CARTEZIAN

SELECT *
FROM angajati, comenzi;

SELECT *
FROM angajati CROSS JOIN comenzi;
Joncţiunea

• Reprezintă operaţia definită pe două relaţii, R1


şi R2, care constă din construirea unei noi
relaţii R3, prin concatenarea unor tupluri din
R1 cu tupluri din R2, pe baza unei condiţii
specificate explicit în cadrul operaţiei.
• Extensia relaţiei R3 va conţine combinaţiile
acelor tupluri care satisfac condiţia de
concatenare.
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ă

• R1 ⋈ R2
• JOIN (R1, R2, condiţie)
Joncţiunea de egalitate

• Operaţie definită pe două relaţii, R1 şi R2, prin


care este construită o nouă relaţie, R3, a cărei
schemă este obţinută prin reuniunea
atributelor din relaţiile iniţiale;
• Extensia relaţiei R3 conţine tuplurile obţinute
prin concatenarea tuplurilor din R1 cu
tuplurile din R2 care au aceleaşi valori pentru
atributele folosite în condiţia de joncţiune.
Joncţiunea de egalitate
Angajati Comenzi
Exemple JONCTIUNE
SELECT *
FROM angajati a, comenzi c
WHERE a.id_ang=c.id_ang;

SELECT *
FROM angajati a JOIN comenzi c
ON a.id_ang=c.id_ang;

SELECT *
FROM angajati a JOIN comenzi c
USING (id_Ang);
Joncţiunea naturală
Presupune existenţa unor atribute având aceeaş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, R1 şi R2, se obţine


o nouă relaţie, R3, prin joncţiunea relaţiilor iniţiale
• La noua relaţie R3 sunt adăugate şi tuplurile din R1
şi/sau R2 care nu au participat la joncţiune.
• Aceste tupluri sunt completate în relaţia R3 cu valori
NULL pentru atributele relaţiei corespondente (R2,
respectiv R1).
• R1 ⋈ R2
• EXT-JOIN (R1, R2, condiţie)
Joncţiunea la stânga
Joncţiunea la dreapta
Joncţiunea completă
ACADEMIA DE STUDII ECONOMICE BUCUREŞTI
FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

BAZE DE DATE

Modelul de date relaţional (2)


Algebra relaţională
• Reprezintă operaţii pe relaţii în care operatorii descriu
tipuri de prelucrări asupra relaţiilor, operanzii sunt relaţii,
iar rezultatul este, de asemenea, o relaţie.
• Operatori de bază:
• Universali: Reuniunea, Diferenţa, Produsul cartezian;
• Specifici: Proiecţia, Selecţia şi Joncţiunea
Reuniunea

• Este o operaţie definită pe două relaţii, R1 şi


R2, ambele cu aceeaşi schemă, prin care se
obţine o nouă relaţie R3, cu schema identică
cu R1 şi R2, dar având ca extensie tuplurile din
R1 şi R2, luate împreună o singură dată.
• R1  R2
• UNION (R1, R2)
Exemplu UNION

Clienti  Angajati Clienti  Angajati


Exemplu UNION ALL

Clienti  Angajati
Diferenţa
• Este o operaţie definită pe două relaţii, R1 şi R2, ambele
cu aceeaşi schemă, prin care se obţine o nouă relaţie, R3,
cu extensia formată din acele tupluri ale relaţiei R1 care
nu se regăsesc şi în relaţia R2.

• R1 – R2
• MINUS (R1, R2)
Diferenţa

NU!
Clienti – Comenzi Clienti – Comenzi DE CE?

DA
Ce afişează?
Intersecţia

• Reprezintă o operaţie definită pe două relaţii, R1


şi R2 ambele cu aceeaşi schemă, prin care se
obţine o nouă relaţie, R3, cu schema identică cu a
relaţiilor operand şi cu extensia formată din
tuplurile din R1 şi R2.

• R1  R2
• INTERSECT (R1, R2)
Intersecţia

Clienti  Comenzi
Ce afişează?
Alţi operatori

• Diviziunea
• Complementarea
• Spargerea unei relaţii
• Închiderea tranzitivă
Operatori ai calculului relational

• 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 de


integritate, definesc cerinţele pe care trebuie
să le satisfacă datele din cadrul bazei de date
pentru 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
Restricţia de unicitate a cheii

• Impune ca într-o relaţie R, care are cheia K, oricare ar


fi tuplurile t1 şi t2 să fie satisfăcută inegalitatea: t1(K) ≠
t2(K).
• Această inegalitate semnifică faptul că într-o relaţie
nu pot exista două tupluri cu aceeaşi valoare pentru
atributele cheie.
• Cheia unei relaţii trebuie să fie minimală, în sensul 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ă
EMITENTI
Simbol Cheie primară
Denumire
CUI Cheie candidata
Piata COTATII
Data_listarii
Simbol Cheie primară compusa
ISIN
Data_cot
Capital_social
Pret_Inchidere
Volum
http://www.bvb.ro/financialinstruments/markets/advancedsearch Pret_minim
Pret_maxim
Restricţia referenţială
• Un atribut sau un grup de atribute dintr-o relaţie R1 ale
cărui/căror valori sunt definite pe acelaşi/aceleaşi
domeniu/domenii ca şi cheia primară a unei alte relaţii, R2 şi
care are rolul de a modela asocierea între entităţile
reprezentate cu ajutorul relaţiilor R1 şi R2.
EMITENTI COTATII
Simbol Simbol Cheie externa
Denumire Data_cot
CUI Pret_Inchidere
Piata Volum
Data_listarii Pret_minim
ISIN Pret_maxim
Capital_social
Restricţia entităţii
• Restricţia entităţii reprezintă restricţia de integritate care
impune ca într-o relaţie, anumite atribute sa fie nenule.
EMITENTI COTATII
Simbol Cheie primară Simbol Cheie primară compusa
Denumire Not Null Data_cot
CUI Cheie candidata, Not Null Pret_Inchidere Not Null
Piata Not Null Volum Not Null
Data_listarii Not Null Pret_minim Not Null
ISIN Cheie Candidata Pret_maxim Not Null
Capital_social
Alte restricţii de integritate
• De domeniu
• Domeniul corespunzător unui atribut dintr-o tabelă trebuie să
se încadreze între anumite valori (CHECK);
• Temporare
• Valorile anumitor atribute se compară cu nişte valori temporare
(rezultate din calcule etc.) (TRIGGER  verific stocul curent);
EMITENTI COTATII
Simbol Simbol
Denumire Data_cot >data_listarii
CUI Pret_Inchidere >=pret_min, <= pret_maxi,
Piata ‘REGS’, ‘RGBS’,’XMBS’ Volum >=0
Data_listarii Pret_minim >=0
ISIN Pret_maxim >=0
Capital_social >10000
Restricţiile de integritate
suportate î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 coloane definit
astfel să aibă o valoare corespondentă identică în tabela de legătură;
• CHECK
• elimină valorile care nu satisfac anumite cerinţe (condiţii) logice.
Exemplificare SQL-Oracle
Exemplificare SQL-Oracle
Grila 1
 Într-o bază de date relaţională, fie relaţia R1. În urma aplicării
unei operaţii pe relaţia R1 se obţine o nouă relaţie R2, care
conţine doar o parte dintre atributele relaţiei R1 şi tupluri
distincte. Precizaţi ce operator al algebrei relaţionale realizează
această operaţie:
a) produsul cartezian
b) diferenţa
c) reuniunea
d) selecţia
e) proiecţia
Grila 2

• În modelul de date relaţional pentru BD:


a) atributele care au rol în realizarea legăturilor între tabele se
numesc chei compuse
b) există noţiunea de restricţia entităţii
c) legăturile între tabele se descriu în LMD
d) nu există noţiunea de schema tabelei
e) selecţia şi existenţa sunt operatori din algebra relaţională
Grila 3

• Restricţii de integritate ale modelului relaţional sunt:


a) de domeniu, entităţii
b)cheie unică, de aplicaţie
c) temporară, existenţială
d)selecţie, cheie primară
e) cheie externă, de actualizare
Grila 4
• Fie două tabele COMEZI şi FIRME fiecare având câte 20 de înregistrări. O
firmă poate da mai multe comenzi, o comandă trebuie dată de către o
singură firmă. Care din următoarele afirmaţii este adevărată:
a) Un left join între COMEZI şi FIRME nu poate returna acelaşi număr de
înregistrări ca un right join între FIRME şi COMENZI
b) Un full join între cele două tabele nu poate returna acelaşi număr de
înregistrări ca un left join între FIRME şi COMENZI
c) Produsul cartezian între cele două tabele nu returnează mai multe
înregistrări decât un full join între aceleaşi tabele
d) Un inner join între FIRME şi COMENZI poate returna acelaşi număr de
înregistrări ca un right join între aceleaşi tabele
e) Toate afirmaţiile de mai sus sunt false
Grila 5

• Specificaţi care dintre următorii operatori nu face parte


din grupa operatorilor standard din algebra relaţională:
a) selecţia
b) proiecţia
c) joncţiunea
d) produsul cartezian
e) cuantificatorul existenţial
Grila 6
• Se consideră tabela: produse (codp number(3), denp varchar2(25), um varchar2(3))
Comanda SQL:
SELECT DISTINCT codp, denp
FROM produse
WHERE codp > 100
ORDER BY denp;
implementează următorii operatori din algebra relaţională:
a) proiecţie şi joncţiune
b) selecţie şi intersecţie
c) selecţie şi reuniune
d) selecţie şi proiecţie
e) ordonare şi selecţie
Grila 7

• Printre operatorii algebrei relaţionale se regăsesc:


a) reuniunea, produsul cartezian, intersecţia, disjuncţia;
b) intersecţia, diviziunea, joncţiunea, conjuncţia;
c) produsul cartezian, selecţia, proiecţia, reuniunea;
d) joncţiunea, proiecţia, negaţia, reuniunea.
e) intersecţia, diviziunea, diferenţa, conjuncţia.
Grila 8

• În modelul relaţional de date:


a) proiecţia, joncţiunea şi închiderea tranzitivă sunt
operatori din algebra relaţională
b) atributele care au rol în realizarea legăturilor între tabele
se numesc chei compuse
c) legăturile între tabele se descriu în LMD
d) există noţiunea de schema relaţiei
e) există noţiunea de extensia relaţiei
CURSUL 5...

• Baze de date relaţionale

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