Operatorii relaţionali se pot grupa în operatori de bază, care pot genera toată clasa
operatorilor relaţionali şi operatori auxiliari. Operatorii relaţionali de bază se împart
în operatori de asamblare şi operatori unari.
Operatorii de asamblare sunt operatori binari, care primesc la intrare 2 relaţii şi
generează la ieşire o singură relaţie. Aceştia sunt: reuniunea, diferenţa şi produsul
cartezian, care au aceeaşi semnificaţie ca şi în teoria mulţimilor. Operatorii unari se
aplică asupra unei relaţii şi generează o altă relaţie. Din această clasă fac parte
proiecţia şi selecţia.
Proiecţia relaţiei R de schemă R (A1, A2, … , An) după atributele Ai1, Ai2, … , Aip (ii ≠ ik
şi p < n) este relaţia R’ de schemă R’ (Ai1, Ai2, … , Aip), ale cărei tupluri se obţin prin
eliminarea valorilor atributelor din R care nu apar în R’ şi prin suprimarea dublurilor.
R’ = Π Ai1, Ai2, … , Aip (R)
Altfel spus, prin intermediul proiecţiei, dintr-un tabel cu un anumit număr de coloane
se obţine unul cu un număr mai mic de coloane.
Selecţia relaţiei R faţă de criteriul Q este relaţia R’ cu aceiaşi schemă ca şi R, ale cărei
tupluri satisfac criteriul (predicat).
Q = Ai1 θ1 C1 Λ Ai2 θ2 C2 Λ Aip θp Cp, unde θi = ⎨ < , ≤ , > , ≥ , ≠ ⎬ , Ci - constante
Altfel spus, prin operatorul de selecţie, dintr-un tabel cu un anumit număr de coloane
se obţine unul cu aceleaşi coloane, dar cu un număr mai mic de rînduri.
2. Normalizarea relaţiilor
b) Π Π
R1 R2 Π R3
P# U X P# B# Q B# L C T
P#
Q Π
B#
c)
R31 R32
B# L L C T
B1 Braşov Braşov 400 268
B2 Ploieşti Ploieşti 500 244
B3 Arad Arad 550 257
B4 Braşov
B5 Arad
C
B# L L
T
Figura 1
dacă ştergem tuplul referitor la beneficiarul B1 (B1, Braşov, 400, 268) se pierd
şi datele referitoare la localitatea, codul poştal şi prefixul telefonic, care mai
sunt necesare;
modificarea codului poştal (C) se face greu, datorită faptului că aceiaşi valoare
apare în mai multe tupluri (redundanţă mare);
nu putem adăuga o nouă localitate dacă nu există cel puţin un beneficiar din
localitatea respectivă.
Pentru a înlătura aceste anomalii, descompunem relaţia R3 în două relaţii R31 şi R32
(fig. 1.c.) care sunt în forma normală 3NF.
O relaţie este în forma normală 3 ( 3NF ) dacă şi numai dacă este în 2NF şi fiecare
atribut noncheie nu este dependent tranzitiv pe cheia primară. Relaţiile R1, R2, R31 ,
R32 sunt în forma normală 3.
Considerând relaţia A definită pe atributele: localitate (L), stradă (S) şi codul poştal
(C); cheia relaţiei poate fi LS sau SC, iar mulţimea dependenţelor funcţionale este: F
= {LS → C, C → L}. Conform definiţiei, relaţia A este în 3NF şi are două chei
candidate LS şi SC. Analizând mai atent această relaţie, se observă că nu putem
adauga o localitate nouă cu codul poştal asociat dacă nu specificăm o adresă din
localitatea respectivă, iar ştergerea unei străzi implică şi ştergerea localităţii şi a
codului poştal. Deci relaţia A prezintă anomalii la operaţiile de adăugare şi ştergere,
ceea ce denotă că forma normală trei nu mânuieşte satisfăcător relaţiile cu doi sau mai
mulţi chei candidate.
Pentru a înlătura aceste anomalii, a fost introdusă forma normală Boyce - Codd
(BCNF), (mai tare decât 3NF), potrivit căreia o relaţie A cu mulţimea dependenţelor
funcţionale F este în BCNF dacă pentru orice dependenţa (X → Y) ∈ F cu Y ⊄ X, X
include o cheie, a relaţiei A. Conform acestei definiţii relaţia A (L, S, C) cu F = {LS →
C, C → L} nu este în BCNF din cauza dependenţei C → L, unde C nu este cheie
pentru A.
Nivelul intern (modelul fizic) este cel ce corespunde structurii în care sunt stocate
datele în interiorul maşinii. Sunt specificate tabelele (fişierele) care le conţin (nume,
organizare, localizare etc.), componentele fiecărui fişier (lungime, câmpuri, plasare a
acestora în cadrul fişierului), căile de acces la componentele tabelelor (indecşi, relaţii,
legături între tabele).
Se vor avea în vedere cerinţele privind asigurarea protecţiei datelor, atât din punct de
vedere al conţinutului câmpurilor din tabele (verificarea şi validarea valorilor
câmpurilor la introducere, evitarea ştergerii, din greşeală sau din rea voinţă, a datelor
importante, cu secvenţe de program special concepute), cât şi în ceea ce priveşte
accesul utilizatorilor la baza de date (stabilirea drepturilor de acces trebuie să se facă
ţinând cont de rolul, funcţia şi sarcinile fiecărui utilizator).
1,n
MAGAZIE
MATERIAL
Cod magazie 1,n Cod ,material
Denumire magazie
Denumire material
Gestionar
Unitate de măsură
Preţ unitar
1,n
0,n
BON DE CONSUM
DESTINAT 1,1 Nr bon de consum 1,n LINIE BON DE CONSUM
Data bon de consum
Denumire secţie Cantitate ieşită