Documente Academic
Documente Profesional
Documente Cultură
BAZE DE DATE
CURS 4
MODELUL DE DATE
RELAŢIONAL
MODELUL DE DATE RELAŢIONAL
1. Structura relaţională
2. Operatorii relaţionali
3. Restricţiile de integritate
1. 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
De exemplu, tuplurile:
<"Maria", "F", 50>,
<"Vasile", "M", 15>,
<"Vasile", "M", 20>,
<"Vasile", "F", 100>
aparţin produsului cartezian: D3 D1 D2.
RELAŢIA
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 înregistrare dintr-o tabelă.
SCHEMA UNEI RELAŢII
• 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 SQL
FROM angajati;
R A1 A2 A3 A4
SELECŢIA
• δ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 SQL
SELECT *
FROM angajati
• R1 x R2
• PRODUCT (R1, R2) Angajati x Comenzi
ID Nume NRC Data ID
• TIMES (R1, R2) 1 Ion 1 01.01.11 1
Angajati Comenzi
1 Ion 2 07.01.11 2
ID Nume NR Data ID
C 1 Ion 3 08.01.11 3
1 Ion
1 01.01.11 1 1 Ion 4 08.01.11 2
2 Mihai
2 07.01.11 2 1 Ion 5 09.01.11
3 Anca
3 08.01.11 3 2 Mihai 1 01.01.11 1
4 Sofia
4 08.01.11 2 2 Mihai 2 07.01.11 2
5 Mircea
5 09.01.11 …… ……. …… …… ……
EXEMPLU SQL
SELECT *
FROM angajati, comenzi;
SELECT *
FROM angajati CROSS JOIN comenzi;
JONCŢIUNE
Angajati Comenzi
EXEMPLE SQL
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Ă
Clienti Angajati
DIFERENŢA
– R1 – R 2
– REMOVE (R1, R2)
– MINUS (R1, R2)
DIFERENŢA
NU!
DE CE?
Clienti – Comenzi
Clienti – Comenzi
DA
CE AFIŞEAZĂ?
INTERSECŢIA
– R1 R2
– INTERSECT (R1, R2)
– AND (R1, R2)
INTERSECŢIA
Clienti Comenzi
CE AFIŞEAZĂ?
ALŢI OPERATORI
❑ Diviziunea
❑ Complementarea
❑ Spargerea unei relaţii
❑ Închiderea tranzitivă
CALCULUL RELAŢIONAL
• 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ţii de comportament:
▪ De domeniu
▪ Temporare
RESTRICŢIA DE UNICITATE A
CHEII
• 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ă, tabelă în care coloana
corespondentă este definită cu restricţia UNIQUE sau PRIMARY KEY;
• CHECK
– elimină valorile care nu satisfac anumite cerinţe (condiţii) logice.
EXEMPLIFICARE SQL-ORACLE
EXEMPLIFICARE SQL-ORACLE
EXEMPLIFICARE SQL-ORACLE
CURSUL 6...