Sunteți pe pagina 1din 30

Bazele de date relaţionale

Baza de date relațională este formată dintr-unul sau mai multe


tabele bidimensionale între care se pot stabili legături.
Tabelul permite gruparea unor date înrudite și poate fi privit ca o
colecție de câmpuri.
Fiecărui câmp i se specifică domeniul de definiție al datelor
memorate în câmp.

Tabelele se mai numesc și relații


Coloana din tabel se numește atributul relației
Un rând din tabel se mai numește și tuplu. Tuplul corespunde
înregistrării din fișierul de date.
Schema generală a unei baze de date relaționale este formată din
ansamblul tabelelor și al legăturilor dintre ele.

Curs Baze de Date - Gyorodi


Cornelia
Baze de date relaționale

Procesul de construire a unei baze de date se desfășoară în două


etape:
1. Construirea tabelelor care compun baza de date.

2. Stabilirea relațiilor între tabele

Curs Baze de Date - Gyorodi


Cornelia
Curs Baze de Date - Gyorodi
Cornelia
Modelul relațional

Modelul relațional are următoarele avantaje față de


celelalte modele de organizare:
 Este un model ușor de înțeles de către utilizator și ușor de
vizualizat.
 Asigură independența structurii logice a datelor față de modul de
stocare fizică a lor.
 Regulile și restricțiile care asigură integritatea datelor și
protejarea datelor și a structurii de date sunt ușor de înțeles de
către utilizator.
 Spațiul de stocare a datelor este redus.
 Redundanța datelor este redusă.

Curs Baze de Date - Gyorodi


Cornelia
Cheia primară,cheia externă a unui tabel
 Pentru a putea stabili legături între tabele, se definesc în tabele
chei de identificare.
 Cheia primară este formată din numărul minim de câmpuri ce
permit identificarea înregistrărilor din tabel.

 O cheie externă reprezintă un atribut sau un grup de atribute


dintr-o relaţie R1 ale cărui sau căror valori sunt definite pe
acelaşi/aceleaşi domeniu/domenii ca şi cheia primară a unei relaţii
R2 şi care are rolul de a modela asocierea între entităţile
reprezentate prin relaţiile Rı şi R2. În acest context R1 este numită
"relaţie care referă" iar R2 este numită "relaţie referită".
 Cheia externă este formată dintr-unul sau mai multe câmpuri
dintr-un tabel, care sunt folosite ca o cheie primară în alt tabel,
valorile câmpurilor din cheie fiind identice în ambele tabele.

Curs Baze de Date - Gyorodi


Cornelia
Restricţia de unicitate a cheii

Restricţia de unicitate a cheii: Reprezintă restricţia


de integritate care impune ca într-o relaţie, R care are cheia k,
oricare ar fi tuplurile t1 şi t2 să fie satisfăcută inegalitatea : tı (k) ≠
t2 (k).
Restricţia entităţii: Restricţia entităţii reprezintă restricţia
de integritate care impune ca într-o relaţie, atributele cheii
primare să fie nenule. Unicitatea cheii impune ca la încărcarea
unui tuplu, valoarea cheii să fie cuoscută, pentru a se putea
verifica faptul că această valoare nu există deja încărcată. Cu
valori " null " cheia îşi pierde rolul de identificator de tuplu.

Curs Baze de Date - Gyorodi


Cornelia
Restricția de integritate referențială
Reprezintă restricţia de integritate care impune ca într-o relaţie Rı
care referă o relaţie R2, valorile cheii externe să figureze printre
valorile cheii primare sau să fie valori " null " nedefinite. R1 şi R2
nu trebuie să fie neaparat distincte.

Condiția de integritate referențială impune ca mulțimea valorilor


unei chei externe să fie inclusă în mulțimea valorilor cheii primare
din care s-a propagat.
Integritatea referențială trebuie să fie satisfăcută permanent în
baza de date.
Operațiile de adăugare, ștergere și modificare pot afecta
integritatea referențială.

Curs Baze de Date - Gyorodi


Cornelia
Baza de date relațională

În baza de date se găsesc două tipuri de date:


colecțiile de date organizate sub formă de tabele
care reprezintă informația utilă
Fișiere ajutătoare în care este descrisă structura
tabelelor (fișierele de structură), legăturile dintre
ele și alte informații necesare regăsirii datelor în
tabele.
Relația : Este o legătură dintre un câmp sau o combinație de
câmpuri dintr-un tabel (cheia primară) și câmpurile
corespunzătoare dintr-un alt tabel (cheia externă).

Curs Baze de Date - Gyorodi


Cornelia
Tipuri de relații
Există mai multe tipuri de relații:
 Una-la-una (one-to-one). Înseamnă că o înregistrare din primul
tabel este legată la o singură înregistrare din al doilea tabel.
 Una-la-mai-multe (one-to-many). Înseamnă că o înregistrare
din primul tabel poate fi legată cu mai multe înregistrări din al doilea
tabel.
 Mai-multe-la-mai-multe (many-to-many). Înseamnă că o
înregistrare din primul tabel poate fi legată de mai multe înregistrări
din al doilea tabel, și invers.

Curs Baze de Date - Gyorodi


Cornelia
Sistemul de Gestiune a Bazelor de
Date Relaţionale
Un model relaţional este caracterizat de trei concepte.
Structura relaţională a datelor. În cadrul bazelor de date
relaţionale, datele sunt organizate sub forma de tablouri
bidimensionale (tabele de date), numite relaţii. Asocierile dintre relaţii
se reprezintă explicit prin atribute de legătură.
Operatorii modelului relaţional. Definesc operaţiile care se pot
efectua asupra relaţiilor, în scopul realizării funcţiilor de prelucrare
asupra bazei de date, respectiv consultarea, inserarea, modificarea şi
ştergerea datelor.
Restricţiile de integritate ale modelului relaţional. Permit
definirea stărilor coerente ale bazei de date.

Curs Baze de Date - Gyorodi Cornelia


SGBDR
Cel mai utilizat SGBD relațional din întreaga lume rămâne în
continuare Oracle produs de firma Oracle Corporation, deoarece are
următoarelor avantaje:
Poate fi folosit cu diferite sisteme de operare: Windows , Unix
Permite dezvoltarea unor baze de date de orice dimensiune (de la
câțiva octeți până la gigaocteți).
Respectă standardele în vigoare referitoare la limbajele de
accesare a datelor (SQL).
Acceptă un număr mare de utilizatori simultani, minimizând
conflictele care pot să apară în cererile simultane de acces la date.
Asigură o securitate mărită datorită siguranței foarte mari la
limitarea și monitorizarea accesului la date.

Curs Baze de Date - Gyorodi


Cornelia
Metode de securitate a datelor
Metodele prin care un SGBDR asigură securitatea bazei de date:
 Parolă la nivelul întregii baze de date
 Drepturi specifice acordate utilizatorilor sau grupurilor de
utilizatori
 Criptarea bazei de date

Elementele folosite de SGBDR pentru a-și realiza funcțiile sunt:


 Dicționarul de date (Data Dictionary)
 Limbajul de manipulare a datelor (Data Manipulation Language)
 Limbajul de interogare (Query Language).
SQL (Structured Query Language - limbaj structurat de interogare)
este cel mai răspândit limbaj de interogare a bazelor de date
relaționale.

Curs Baze de Date - Gyorodi Cornelia


Operatorii modelului relaţional
Operatorii algebrei relaţionale sunt:
 operatori tradiţionali pe mulţimi
 UNION, INTERSECT, PRODUCT, DIFFERENCE
 operatori relaţionali speciali
 PROJECT, SELECT, JOIN, DIVISION
SELECT (selecţie) - extrage tupluri ce satisfac o
condiţie specificată;
PROJECT (proiecţie) - extrage atributele
specificate;

13
DIFFERENCE (diferenţă) - elimină tupluri care apar într-o relaţie, dar
nu apar în cealaltă;
PRODUCT (produs cartezian) - generează toate perechile posibile de
tupluri, primul element al perechi fiind luat din prima relaţie, iar cel de-al
doilea element din cealaltă relaţie;
UNION (reuniune) - reuneşte două relaţii;
INTERSECT (intersecţie) - extrage tupluri care apar în ambele relaţii;
DIVISION(diviziune) - extrage valorile atributelor dintr-o relaţie, care
apar în toate valorile atributelor din cealaltă relaţie;
JOIN(compunere) - extrage tupluri din mai multe relaţii corelate astfel:
NATURAL JOIN (compunere naturală) - combină tupluri din două
relaţii, cu condiţia ca atributele comune să aibă valori identice;
SEMI-JOIN(semi-compunere) - selectează toate tuplurile din prima
relaţie care vor fi corelate cu tupluri din cea de-a doua relaţie;
OUTER JOIN (compunere externă) - combină tupluri din două relaţii,
astfel încât condiţiile de corelare să fie satisfăcute. Tuplurile din orice
relaţie care nu satisfac aceste condiţii sunt completate cu valori null.

14
Operatorul UNION (reuniunea)
Reuniunea reprezintă o operaţie a algebrei relaţionale
definită pe două relaţii: R1 şi R2 ambele cu o aceeaşi
schemă, operaţie care constă din construirea unei noi
relaţii R3, cu schema identică cu R1 şi R2 şi având
drept extensie tuplurile din R1 şi R2, luate împreună o
singură dată.
Operatorul UNION permite obţinerea tuplurilor
distincte a două relaţii şi poate fi utilizat pentru
adăugarea de noi tupluri într-o relaţie.
Notaţiile uzuale întâlnite pentru reuniune sunt: R1R2,
OR(R1R2), APPEND(R1,R2), UNION(R1,R2).

15
Operatorul UNION
 Afişarea tuturor persoanelor care sunt programator
sau sunt de sex masculin din baza de date salariat se va
realiza prin operaţia de reuniune.
Reuniunea în SQL :
SELECT nume, prenume, salar, comision
FROM salariat
WHERE job = 'programator'
UNION
SELECT nume, prenume, salar, comision
FROM salariat
WHERE sex = 'm';

16
Operatorul DIFFERENCE (diferenţa)

Diferenţa reprezintă o operaţie a algebrei relaţionale definită pe


două relaţii R1 şi R2 ambele cu o aceeaşi schemă, operaţia constă
din construirea unei noi relaţii R3, cu schema identică cu a
relaţiilor R1 şi R2, cu extensia formată din acele tupluri ale relaţiei
R1 care nu se regăsesc şi în relaţia R2.

Diferenţa este o operaţie binară necomutativă care permite


obţinerea tuplurilor ce apar numai într-o relaţie. Notaţiile uzuale
pentru operaţia de diferenţă sunt: R1 - R2, REMOVE(R1, R2),
MINUS(R1, R2), DIFFERENCE(R1, R2).

17
Operatorul INTERSECT (intersecţia)
Intersecţia reprezintă o operaţie a algebrei relaţionale
definită pe două relaţii: R1 şi R2, ambele cu aceeaşi
schemă, operaţie care constă din construirea unei noi
relaţii R3, cu schema identică cu a relaţiilor R1 şi R2 şi
cu extensia formată din tuplurile comune ale relaţiilor
R1 şi R2.
Operatorul INTERSECT este un operator binar,
comutativ, derivat:
R1  R2 = R1 - (R1 - R2) sau
R1  R2 = R2 - (R2 - R1)

18
Exemplu
Afişarea tuturor angajaţilor (nume, prenume, salar,
comision, sex) din baza de date salariat care lucrează la
proiectul cu numărul 22.
Intersecţie în SQL :
SELECT nume, prenume, salar, comision, sex
FROM salariat s
WHERE s. cod_salariat EXISTS
(SELECT a.cod_salariat
FROM atasat_la a
WHERE a.nr_proiect = 22
AND s.cod_salariat = a.cod_salariat);

19
Exemplu
Afişarea tuturor angajaţilor (nume, prenume, salar, comision, sex)
din baza de date salariat care nu lucrează la proiectul cu numărul
22, se va realiza prin operatorul DIFFERENCE.
Diferenţa în SQL :

SELECT nume, prenume, salar


FROM salariat s
WHERE s.cod_salariat NOT EXISTS
(SELECT a.cod_salariat
FROM atasat_la a
WHERE a.nr_proiect = 22
AND s.cod_salariat = a.cod_salariat);

20
Operatorul SELECT

Selecția (Select). Operatorul se aplică pe un tabel


sursă. Rezultatul este un tabel nou, cu aceeași structură
de câmpuri ca și a tabelului sursă, ce conține însă
numai acele înregistrări din tabelul sursă care
îndeplinesc o condiție precizată: au aceeași valoare
pentru un anumit câmp.

21
Operatorul SELECT -Exemplu

22
Operatorul PROJECT

Proiecția (Project). Operatorul se aplică pe un tabel


sursă din care creează un tabel nou ce va conține numai
câmpurile specificate din tabloul sursă.

Proiecţia poate fi exprimată în SQL astfel:


(Proiecţie cu înregistrări nedistincte)
SELECT nume, prenume, salar, comision
FROM salariat;

(Proiecţie cu înregistrări distincte, fără dubluri)


SELECT DISTINCT nume, prenume, salar, comision
FROM salariat;

23
Operatorul PROJECT-Exemplu

24
Operatorul JOIN (Joncţiune, Compunere)

Compunerea (joncţiunea) reprezintă o operaţie din algebra


relaţională definită pe două relaţii: R1 şi R2, operaţie care constă
din construirea unei noi relaţii R3, prin concatenarea unor tupluri
din R1 cu tupluri din R2. Se concatenează acele tupluri din R1 şi
R2 care satisfac o anumită condiţie, specificată explicit în cadrul
operaţiei. Extensia relaţiei R3 va conţine acele tupluri care satisfac
condiţia de compunere.

Operatorul NATURAL JOIN (equijoinul, Joncţiunea naturală)


Operatorul OUTER JOIN (Joncţiunea externă)

25
Operatorul NATURAL JOIN (equijoinul,
Joncţiunea naturală)

Algoritmul care realizează joncţiunea naturală este următorul:


1. Se calculează produsul cartezian R1  R2;
2. Pentru fiecare atribut comun A care defineşte o coloană în R1 şi o
coloană în R2, se selectează din R1  R2 tuplurile ale căror valori
coincid în coloanele R1.A şi R2.A. Atributul R1.A reprezintă
numele coloanei din R1  R2 corespunzătoare coloanei A din R1;
3. Pentru fiecare astfel de atribut A se proiectează coloana R2.A, iar
coloana R1.A se va numi A.

Equijoinul reprezintă joncţiunea dirijată de o condiţie de forma:

atribut din R1 = atribut din R2

26
Exemplu de operație de Join

27
Test de evaluare
Pornind de la tabelele A și B,
precizați conținutul tabelului
C obținut ca rezultat al
operației relaționale:
a) Project X,Z from A
b) Select from A where Y=1
c) Project U from B
d) Select from B where V=2
e) Join A and B where A.Y=B.V

Curs Baze de Date - Gyorodi


Cornelia
Test pentru evaluare
Tabelul A conține informații generale despre angajați:
nume angajat, adresă, număr de telefon. Tabelul B
conține informații despre ocuparea posturilor de către
angajați: nume angajat, nume funcție, departament,
data inițială, data finală. Ce operații relaționale
trebuie să executați ca să obțineți informațiile:
a) Ce angajați au ocupat postul X?
b) Ce angajați au lucrat în departamentul X?
c) Ce posturi a ocupat angajatul X și în ce departamente?
d) Ce adrese au angajații care au ocupat postul X din
departamentul Y?

Curs Baze de Date - Gyorodi


Cornelia
SGBD relaţional
Un SGBD este minimal relaţional dacă satisface următoarele condiţii:
 Toate datele din cadrul bazei de date sunt reprezentate prin valori
în tabele;
 Nu există pointeri observabili de către utilizator;
 Sistemul suportă operatorii relaţionali de proiecţie, selecţie şi join
natural, fără limitări impuse din considerente interne.

Un SGBD este complet relaţional dacă este minimal relaţional şi


satisface în plus condiţiile:
 Sistemul suportă restricţiile de integritate de bază (unicitatea cheii
primare, constrângerile de referinţă, integritatea entităţii).
 Sistemul suportă toate operaţiile de bază ale algebrei relaţionale.

30

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

  • Calculatorul
    Calculatorul
    Document10 pagini
    Calculatorul
    torjocf
    Încă nu există evaluări
  • Subiecte Examen Asdn 2-1
    Subiecte Examen Asdn 2-1
    Document6 pagini
    Subiecte Examen Asdn 2-1
    torjocf
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document46 pagini
    Curs 7
    torjocf
    Încă nu există evaluări
  • Lucrarea 09
    Lucrarea 09
    Document3 pagini
    Lucrarea 09
    torjocf
    Încă nu există evaluări
  • Lucrarea 11
    Lucrarea 11
    Document1 pagină
    Lucrarea 11
    torjocf
    Încă nu există evaluări
  • Lucrarea 12
    Lucrarea 12
    Document1 pagină
    Lucrarea 12
    torjocf
    Încă nu există evaluări
  • Lucrarea 12
    Lucrarea 12
    Document1 pagină
    Lucrarea 12
    torjocf
    Încă nu există evaluări
  • Lucrarea 10
    Lucrarea 10
    Document4 pagini
    Lucrarea 10
    torjocf
    Încă nu există evaluări
  • Lucrarea 2
    Lucrarea 2
    Document4 pagini
    Lucrarea 2
    torjocf
    Încă nu există evaluări
  • Lucrarea 11
    Lucrarea 11
    Document1 pagină
    Lucrarea 11
    torjocf
    Încă nu există evaluări
  • Lucrarea 10
    Lucrarea 10
    Document4 pagini
    Lucrarea 10
    torjocf
    Încă nu există evaluări
  • Lucrarea 09
    Lucrarea 09
    Document3 pagini
    Lucrarea 09
    torjocf
    Încă nu există evaluări
  • Lucrarea 1
    Lucrarea 1
    Document3 pagini
    Lucrarea 1
    torjocf
    Încă nu există evaluări
  • Lucrarea 3
    Lucrarea 3
    Document3 pagini
    Lucrarea 3
    torjocf
    Încă nu există evaluări
  • Fituica So2
    Fituica So2
    Document2 pagini
    Fituica So2
    torjocf
    Încă nu există evaluări
  • Lucrarea 4
    Lucrarea 4
    Document3 pagini
    Lucrarea 4
    torjocf
    Încă nu există evaluări
  • 11BDI
    11BDI
    Document35 pagini
    11BDI
    torjocf
    Încă nu există evaluări
  • PCIII Liste Cozi Stive 97 2003
    PCIII Liste Cozi Stive 97 2003
    Document22 pagini
    PCIII Liste Cozi Stive 97 2003
    torjocf
    Încă nu există evaluări
  • Laborator PCIII
    Laborator PCIII
    Document90 pagini
    Laborator PCIII
    OviDiu
    Încă nu există evaluări
  • Test de Evaluare Pba
    Test de Evaluare Pba
    Document2 pagini
    Test de Evaluare Pba
    torjocf
    Încă nu există evaluări
  • Lucrarea 5
    Lucrarea 5
    Document3 pagini
    Lucrarea 5
    torjocf
    Încă nu există evaluări
  • Lucrarea 3
    Lucrarea 3
    Document3 pagini
    Lucrarea 3
    torjocf
    Încă nu există evaluări
  • Lucrarea 2
    Lucrarea 2
    Document4 pagini
    Lucrarea 2
    torjocf
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document35 pagini
    Curs 5
    torjocf
    Încă nu există evaluări
  • Curs 6 - 7
    Curs 6 - 7
    Document42 pagini
    Curs 6 - 7
    torjocf
    Încă nu există evaluări
  • Lucrarea 1
    Lucrarea 1
    Document3 pagini
    Lucrarea 1
    torjocf
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document46 pagini
    Curs 7
    torjocf
    Încă nu există evaluări
  • Curs 8 - 9
    Curs 8 - 9
    Document58 pagini
    Curs 8 - 9
    torjocf
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document41 pagini
    Curs 4
    torjocf
    Încă nu există evaluări
  • 07BDI
    07BDI
    Document47 pagini
    07BDI
    torjocf
    Încă nu există evaluări