Sunteți pe pagina 1din 158

BAZE DE DATE

Cuvinte de introducere
Baze de date ca o parte indispensabil a sistemelor informaionale. Orice sistem
informaional are coninutul lui informatic (umplerea informatic) care este nu alt
ceva dect o reprezentare formalizat a informaiilor n form de o colecie bine
structurat de date. Aceasta colecie structurat de date se numete baza de date i
este suportul informaiilor i totodat reflect legturile dintre obiectele i
procesele din lumea real. Cu alte cuvinte baza de date este modelul informaional
al careva domeniu concret din lumea real.
La rndul su sistemele informaionale fac parte din compartimentele domeniului
vast de tehnologii informaionale n genere.
BAZE DE DATE

SISTEME INFORMAIONALE

TEHNOLOGII INFORMAIONALE

Importana tehnologiilor informaionale ca o characteristic principal a dezvoltrii


societii:
Partea economic;
Partea intelectual
Patru pri constituiente a cursului nostru:
1.
2.
3.
4.

INTRODUCERE GENERAL IN SISTEME INFORMAIONALE CU


BAZE DE DATE (Sisteme Informaionale cu Baze de Date)
TEORIA BAZELOR DE DATE RELAIONALE
LIMBAJUL BAZELOR DE DATE RELAIONALE SQL. STANDARDUL
SQL
PROIECTAREA APLICAIILOR CU BAZE DE DATE

Bibliografie
1. Marin Fotache, Proiectarea bazelor de date, Polirom, 2005.
2. M.Velicanu, I.Lungu, M.Muntean, Sisteme de baze de date-teorie i practic,
editura Petrion, 2003.
3. M.Velicanu Dicionar explicativ al sistemelor de baze de date, editura
Economic, 2005.
4. M.Velicanu, I.Lungu, M.Muntean s.a., Oracle-platform pentru baze de date,
editura Petrion, 2002.

1. SISTEME INFORMAIONALE CU BAZE DE DATE


1.1 Sisteme informaionale. Noiuni generale
Primele dispozitive de calcul, ncepnd cu cele primitive, mecanice i
terminnd cu mainele electronice din anii 1950 au fost proiectate i utilizate
pentru rezolvarea problemelor numerice (tabularea funciilor trigonometrice i
speciale, calcule astronomice, etc.). Dintre cele dou resurse principale ale
calculatorului cel mai important era procesorul (primitiv pe atunci), iar uniti de
memorie externe n genere nu existau. n aceata perioad sau dezvoltat metode
complexe de calcul, sau creat limbaje puternice de programare.
Cu timpul ns caracteristicele calculatoarelor au avansat, au aprut uniti de
memorie extern de capacitate considerabil. Drept o revoluie n istoria tehnicii de
calcul a devinit crarea unitilor de memorie extern cu acces direct (aleator). Din
acest moment calculatoarele au nceput s se foloseasc tot mai mult i mai mult
pentru stocarea i prelucrarea documentelor de text, mai bine zis pentru prelucrarea
informaiei ce se conine n ele. Pentru acest lucru au fost create sisteme integrate
speciale de soft i hard care se numesc sisteme informaionale. Ca exemple putem
meniona sisteme bancare, sisteme informaionale automatizate pentru rezervarea
i procurarea biletelor la transport (tren, avion), catalogul electronic a unei
biblioteci, sistemul informaional a reelei telefonice a oraului, etc.
Toate acestea sisteme se caracterizeaz prin aceea c:
Posed uniti fizice (hard) pentru transmiterea i depozitarea datelor;
Posed mijloace de program (soft) pentru crearea structurilor de date n
memoria extern i manipularea datelor n memoria operativ;
Datele cu care ele opereaz au o organizare structural complex;
Sistemele acestea, ca de obicei, nu necesit calcule numerice mari i complexe.
Comentarii la acestea caracteristici.
1. Uniti fizice (hard). Aici este necesar de indicat dou resurse principale ale
calculatorului viteza procesorului i capacitatea memoriei. Memoria este de
dou tipuri memoria operativ (de baz) i memoria extern (secundar).
Viteza procesorului nu este att de critic. Ea este important pentru sistemele
mari i foarte mari, n care informaiile relevante se caut printre sute de mii i
milioane de nregistrri. Foarte important este memoria extern, determinnd
n mod direct capacitatea de stocare a cantitilor mari de date.
2. Mijloace de program (soft). De fapt, mijloacele de program trebuie se permit
realizarea tuturor operaiilor cu informaii: colectarea, depozitarea, actualizarea,
ntreinerea, prelucrarea, transmiterea prin liniile comunicaionale, utilizarea n
practic.
3. Structur complex de organizare ale datelor. Coninutul informatic
(umplerea informatic) a acestor sisteme este o reprezentare formalizat a
informaiilor din lumea real n form de o colecie bine structurat de date.
2

Aceasta colecie este suportul informaiilor i totodat reflect legturile dintre


obiectele i procesele din lumea real. Cu alte cuvinte ea este modelul
informaional al careva domeniu concret din lumea real.
4. Nu necesit calcule numerice mari. Evident, aici nu merge vorba despre
sisteme supra mari (sistem de prognozare a strii de timp, componena speiilor
a unui areal mare de flor i/sau faun, etc.).
Pentru a lrgi p.3:
Dup cum tim, datele sunt purttorul sau suportul fizic a informaiei. Mai
precis, n calitate de informaie se manifest datele care au o interpretare
consistent sau un sens. Dac A213 este valoarea unei variabile x, atunci asta este
data. Dar, dac A213 este codul unic a angajatului Ciobanu, atunci asta este
informaie.
Datele i informaiile reprezint componentele primare ale sistemului informaional. Data
reprezint o nsuire de caractere numerice sau alfa numerice, care au o anumit semnificaie.
Informaiile se obin n general din prelucrarea datelor, ele nu se confund ns cu acestea.
n concluzie se poate spune c orice informaie este o dat dar nu orice dat este o informaie, ci
numai aceea care are pentru receptor un caracter de noutate. O baz de date reprezint o
modalitate de stocare a unor informaii (date) pe un suport extern, cu posibilitatea regsirii
acestora.De obicei o baz de date este memorat ntr-unul sau mai multe fiiere. Bazele de date
sunt manipulate cu ajutorul sistemelor de gestiune a bazelor de date. Cel mai rspndit model de
baze de date este cel relaional, n care datele sunt memorate n tabele. Pe lnga tabele, o baz
de date relaional mai poate conine: indeci, proceduri stocate, trigger-e, utilizatori i grupuri
de utilizatori, tipuri de date, mecanisme de securitate i de gestiune a tranzacii Din punct de
vedere al teoriei comunicaiilor, informaia este un mesaj, un semnal ce reflect starea unui
sistem sau a mediului n care acesta funcioneaz i care aduce receptorului un spor de
cunoaterelor etc.
n ultimul timp, tot mai muli cercettori i oameni de tiin i pun ntrebarea dac este posibil
de construit o teorie a informaiei unic, general valabil.
Cunotinele au o natur mai complex dect datele i informaiile i necesit o contribuie
activ din partea oamenilor pentru gestionarea i coordonarea lor. De aceea, este necesar s
evideniem nc de la nceput principalele diferene dintre date, informaii i cunotine, pentru a
implementa corespunztor managementul bazat pe cunotine.
Relaia dintre date, informaii, cunotine i nelepciune poate fi reprezentat sub forma unei
piramide. Baza piramidei o reprezint datele, urmate de informaii, apoi cunotine, iar
nelepciunea se afl n vrful piramidei.
Datele: reprezint un set de fapte obiective, eterogene despre un proces sau un eveniment care au
o utilitate redus dac nu sunt transformate n informaii. Datele de exemplu sunt atribute
cantitative, numerice sau de alt natur obinute prin observaii, experimente sau calcule. Costul,
viteza, durata sau capacitatea sunt date cantitative.
Informaiile: sunt date nzestrate cu relevan i scop. Au o anumit semnificaie i sunt
3

organizate pentru anumite scopuri. Informaiile, de exemplu, constituie o colecie de date i


explicaii asociate, interpretri etc despre un obiect, eveniment sau proces.
Cunotinele: reprezint o combinaie fluid de experiene, valori, informaii contextuale i
intuiie care ofer cadrul pentru evaluarea i ncorporarea unor noi experiene i informaii.
Cunotinele apar i se aplic n mintea oamenilor. n organizaii, cunotinele sunt ncastrate nu
doar n documente i n depozite, ci i n procesele, practicile i normele organizaionale [3].
ntrebrile tipice referitoare la date sunt cine?, ce?, unde? i cnd?, n timp ce ntrebrile
specifice cunotinelor sunt cum? i de ce?.
Conceptul de informaie reprezint o noiune de maxim generalitate care semnific o tire, un
mesaj, un semnal, etc. despre evenimente, fapte, stri, obiecte, etc. n general despre forme de
manifestare a realitii care ne nconjoar. Forma de exprimare i transmitere a informaiilor o
reprezint comunicarea. Informaia apare ca o comunicare despre un anumit aspect al realitii
obiective. Din punct de vedere conceptual, informaia reprezint o reflectare n planul gndirii
umane, a legturilor de cauzalitate privind aspectele din realitatea ce ne nconjoar.
Procesul de sesizare, nelegere i nsuire a informaiilor dintr-un anumit domeniu reprezint un
proces de informare. Informaiile dobndite n urma unui proces de informare ntr-un anumit
domeniu, formeaz cunotinele despre acel domeniu, iar mulimea acestora reprezint
patrimoniul de cunotine. Cunotinele reprezint o nsumare n timp a tuturor informaiilor
dobndite ntr-un anumit domeniu. Data este forma de reprezentare material a informaiei.
Datele reprezint suportul formal al informaiei care se concretizeaz n cifre, litere, simboluri,
coduri i alte semne plasate pe supori tehnici de date. Datele reprezint obiectul prelucrrii
pentru informatic, materia prim a acesteia i numai prin asociere cu realitatea pe care o
reflect, se poate spune c informatica genereaz informaii. Datele obinute n urma procesului
de prelucrare pot avea calitatea de informaii pentru o anumit categorie de utilizatori sau rmn
simple date dac i pierd calitatea de noutate semantic. n practic, de multe ori termenul de
informaie este utilizat pentru a desemna date, iar expresia "prelucrarea informaiilor" nlocuiete
expresia "prelucrarea datelor". Se poate considera c datele prelucrate, n msura n care
afecteaz n sens pozitiv comportamentul receptorilor (oameni sau maini), au calitatea de
informaii. n procesul prelucrrii i utilizrii informaiilor, acestea sunt privite din trei puncte de
vedere: - din punct de vedere sintactic, cnd se urmrete aspectul formal al reprezentrii
acestora, n sensul c datele care se prelucreaz se supun riguros anumitor reguli de validitate; din punct de vedere semantic, urmrindu-se semnificaia, nelesul informaiei (coninutul real al
informaiei) ce deriv din datele prelucrate; - din punct de vedere pragmatic, urmrindu-se
utilitatea, adic msura n care sunt satisfcute cerinele utilizatorilor.

Aadar, obiectivele principale ale sistemelor informaionale sunt crearea astfel de


structuri de date care sunt purttorul anumitor poriuni concrete de informaii i
cunotine, precum i colectarea, depozitarea, prelucrarea i utilizarea n practic a
acestor structuri de date.

nainte de a trece la formularea unor definiii referitor la noiunile de sistem informaional i


baz de date, vom analiza noiunile de informaie i date i legturile ntre ele datele ca suport
al informaiei.
Datele elementare pot fi unite n structuri de diferit complexitate, care reprezint poriuni
concrete de informaii din lumea real. Spre exemplu, un tip structurat de date din care este
alctuit un fiier este nregistrre. O nregistrare este un tip compus de date cu o structur
alctuit din cmpuri. Fiecare cmp conine valori, care reprezint o caracteristic careva
particular (un atrtibut) al obiectului dat. n intregime o nregistrare reprezint un exemplar
concret al entitii din lumea real. De exemplu: A213 ALBU 2500 este o nregistrare, care
conine informaie despre identificatorul i salariul persoanei ALBU un exemplar al obiectului
LUCRATORI. Structura acestei nregistrri este alctuit din cmpurile IDENTIFICATOR,
NUME, SALARIU. O colecie de nregistrri de aceast structur va reprezenta informaie
despre salariul colectivului de lucrtori a unei ntreprindere. Printre cmpurile nregistrrilor unul

Pot fi date diferite definiii a sistemelor informaionale (SI):


O baz de date reprezint o modalitate de stocare a unor informaii i date pe un
suport extern (un dispozitiv de stocare), cu posibilitatea regsirii rapide a
acestora. De obicei o baz de date este memorat ntr-unul sau mai multe
fiiere. Bazele de date sunt manipulate cu ajutorul sistemelor de gestiune a
bazelor de date (Wikipedia, enciclopedia liber).
O colecie de documente cu o organizare structurat i de tehnologii
informaionale inclusiv tehnologii computaionale i de reea care permit
realizarea proceselor informaionale (legislaia Federaiei Ruse);
Un complex de mijloace de soft i hard menite pentru memorarea i/sau
gestionarea datelor i informaiei i pentru efectuarea calculelor.
1.2. Evoluia organizrii structurale al datelor. Dou forme de organizare
structural
Orice sistem de baz de date se bazeaz pe colecii structurate de date create i
memorate n memoria extern a calculatorului. Acestea colecii prezint modelul
informaional a unui domeniu concret din lumea real. Din acest punct de vedere
este important forma principal de organizare a datelor n colecii structurate n
memoria extern. Cu alte cuvinte, noiunea de colecii structurate de date
presupune folosirea unei forme, sau a unui sistem de organizare structural al
datelor in memoria extern.
Sub organizarea structural al datelor vom subnelege unele principii globale de
organizare al datelor n colecii structurate, precum i principiile de stabilire a
legturilor dintre elementele coleciilor structurate.

Organizarea structural al datelor ca tehnologie major a evoluat odat cu:


Creterea gradului de automatizare a proceselor de prelucrare a informaiilor
i a complexitii problemelor rezolvate;
Creterea resurselor de memorie i vitez a calculatorului electronic
(performanei calculatorului);
Dezvoltarea tehnologiilor informaionale.
De fapt acestea direcii de progres sunt strns legate ntre ele i se dezvolt
concomitent, stimulnd una pe alta n dezvoltare.
Sunt cunoscute dou sisteme de organizare structural al datelor aa cum ele au
aprut n curs de dezvoltare a sistemelor informaionale. Anume:
Sisteme de fiiere independente (flat files sau file-based fiiere plate sau
fiiere independente). Reprezint colecii de date grupate sub form de fiiere
independente care descriu obiecte i procese izolate din lumea real;
Sisteme de baz de date colecii structurate centralizate de date. Asigur
accesarea i gestiunea datelor comun i centralizat.
Fiecare din susnumite dou sisteme majore de organizare al datelor la apariia sa a
prezentat un salt calitativ n ceea ce privete: flexibilitatea descrierii i utilizrii al
datelor, reducerea resurselor de calcul (timpul de calcul i spaiul de memorie),
creterea nivelului de protecie al datelor, etc. In continuare vom analiza n mod
comparativ avantagele i dezavantajele fiecrei din aceste dou sisteme.
a) Structuri de date n forma sistemelor de fiiere independente

Avantagele sistemelor de fiiere independente


...
Dezavantajelel sistemelor de fiiere independente
Probleme cu care se confrunt aceasta form de organizare al datelor:
Redundan datelor. Redundana (excedena) const n faptul c unele grupuri
sau fragmente de date sunt memorate de mai multe ori pe suportul de
memorare. Date care reprezint aceeai informaie pot s apar n fiiere
diferite de date, de multe ori cu format de reprezentare diferit. De exemplu,
datele despre clienii unei firme comeriale pot s se repete n fiierele
independente Clienti, Vinzari, Comenzi;
Nivelul redus de protecie a integritei i consistenei datelor. Probleme de
acest gen apar la actualizarea fiierelor. Cerina de integritate nseamn c
datele n proces de prelucrare nu trebuie s se piard i nu trebuie s apar
necontrolat date noi necorecte, fantome, care nu au loc n lumea real.
Consistena datelor nseamn exhaustivitatea lor semnificativ i logic
(coerena datelor). Completitudinea datelor semnificativ i logic, coerena
lor este echivalent cu completitudinea coninutului informaional a
6

domeniului concret din lumea real. Pentru meninerea integritei i


consistenei datelor actualizarea lor trebuie s se fac n toate fiierele n care
apar;
Dependena programelor de fiierele de date. Pentru ntreinerea i
exploatarea fiecrui fiier de date, programatorii vor scrie cte un program.
Orice modificare n structura fiierului de date va avea ca efect modificarea
programului de aplicaie.
b) Structuri de date organizate n form de baz de date
Rezolvarea problemelor specifice sistemului de organizare al datelor prin fiiere
independente s-a gsit n reuniunea acestor fiiere de date ntr-un ansamblu
centralizat integru de colecii de date baz de date. Aceasta reuniune se bazeaz
pe anumite principii care minimizeaz redundana datelor.
Reprezint ansambluri de date organizate dup anumite criterii. Modeleaz
obiectele i procesele din lumea real, precum i interlegturile dintre ele.
Astfel de ansamblu structurat integru permite gestiunea centralizat a datelor dup
standarde unice. Ca urmare, baza de date asigur utilizatorilor acces comun i
centralizat la date. Aici comun nseamn acces a mai multor utilizatori sau
programe la acelai fragment de date, iar centralizat nseamn acces a unui
utilizator sau program la mai multe fragmente de date.
n aceast colecie pot fi eliminate date dublate (de exemplu informaiile despre un
client care apar i n fiierul Clienti i n fiierul Vinzari i n fiierul Comenzi),
micorndu-se foarte mult redundana datelor. Deoarece datele de acelai tip se vor
gsi numai ntrun singur loc, ntr-o colecie integr, actualizarea lor se poate face
mult mai uor, asigurndu-se astfel integritatea i consistena datelor (
). n plus, angajaii unui departament pot avea acces i la
datele create n careva alt departament.
Avantagele sistemelor cu baze de date
Aadar, avantajele folosirii bazei de date n locul fiierelor independente de date
sunt:
Partajarea informaiilor i ca urmare, micorarea redundanei datelor (ceea
ce rezult din accesul comun la date);
Creterea cantitii de informaii disponibile unui utilizator (caracterul
centralizat al datelor);
Consistena datelor (concordan, compatibilitate);
Integritatea datelor (datele nu se pierd n procesele de prelucrare);
Securitatea datelor (acces neautorizat imposibil);
Controlul centralizat al datelor;
Independena datelor de modul de memorare. Independena fizic i
independena logic.
7

Transparena datelor. Utilizatorul nu trebuie s tie unde concret sunt datele;


Dezvoltarea standardelor.
Dezavantajelel sistemelor cu baze de date
...
Pe ziua de azi predomin aplicaiile cu sisteme de baz de date, avnd avantaje
incontestabile fa de sistemele de fiiere independente.
Colecii de nregistreri ca uniti specifice de informaie
Pentru ambele sisteme de organizare comun este structura unitii minimale
de informaie cu care opereaz nregistrare. O nregistrare este un tip compus de
date cu o structur alctuit din cmpuri. Fiecare cmp conine valori de acelai tip,
care reprezint o caracteristic careva particular (un atrtibut) al obiectului dat. n
intregime o nregistrare reprezint un exemplar concret al entitii din lumea real.
De exemplu: A213 CIBOTARU 2500 este o nregistrare, care conine informaie
despre identificatorul i salariul d-lui CIBOTARU un exemplar al obiectului
LUCRATORI. Structura acestei nregistrri este alctuit din cmpurile
IDENTIFICATOR, NUME, SALARIU. O colecie de nregistrri de aceast
structur va reprezenta informaie despre salariul colectivului de lucrtori a unei
ntreprindere.
Printre cmpurile nregistrrilor unul (ca de obicei) sau mai multe se indic ca
cmpul cheie. Cmpurile cheie servesc drept unicul mijloc pentru regsirea
nregistrrilor care conin informaie despre exemplarul concret. De exemplu:
cmpul IDENTIFICATOR al coleciei de nregistrri LUCRATORI poate fi folosit
ntrun proces de cutare de tip s se gseasc numele i salariul lucrtorului cu
identificatorul A213. Atunci cmpul IDENTIFICATOR va servi drept cmp cheie.
nregistrrile sunt uniti informaionale minimale care reprezint exemplarele
entitilor din lumea real. Din colecii de nregistrri poate fi alctuit sau un fiier
independent n sistemul de fiiere independente sau o structur tabelar n sistemul
cu baze de date. n aceast structur nregistrrile devin linii de tabel.
(, , !)
1.3. Sisteme informaionale i sisteme informatice
Fiecare din aduse mai sus definiii de sistem informaional nu reflect toate
aspectele sistemelor informaionale. Mai important este de a evidenia dou tipuri
majore de astfel de sisteme sisteme informaionale i sisteme informatice.
+ de lrgit
Sisteme informaionale.

8

, , , (manuale, folosind
dispozitive tehnice specializate pentru automatizarea unor procese, etc.).
Sisteme informatice. Inportant aici este c SI contemporane se bazeaz pe
tehnologii informaionale de memorare, prelucrare i utilizare a datelor
subnelese n sensul larg al cuvntului. Ele includ ct tehnologii computaionale
i comunicaionale (de reea), att i metode teoretice de prelucrare a informaiei
n form de metode algoritmi i programe.

, , ,
,
. ,
, ,
, (hard) (soft)
( ).

.
Aadar, sistemele informatice au ca baz exclusiv tehnologiile computaionale i
comunicaionale ca partea hard i tehnologiile informaionale n form de metode
i algoritmi teoretice de prelucrare a informaiei.
Definiie a sistemului informaric sintetizat:
n acest sens un sistemului informaric presupune crearea i stocarea n memoria
extern (secundar) a calculatorului a unei colecie de date organizat i
structurat dup anumite concepte, care modeleaz careva domeniu concret din
lumea real, precum i disponibilitatea mijloacelor de program pentru crearea i
manipularea acestei colecie de date n scopurile automatizrii gestiunii proceselor
concrete de activitate uman (de producere, de bussiness, etc.) n acest domeniu.
Aadar, baza de date reprezint modelul informaional a unui domeniu concret
din lumea real.
Scopul automatizrii gestiunii proceselor de producere (bussiness) const n
optimizarea lor, adica n:
Minimizarea resurselor umane i materialelor necesare i maximizarea prin
aceasta a rezultatului final;
Prelucrarea operativ a datelor i obinerea n orice moment de timp i ntr-o
form accesibil a informaiei actuale cu privire la starea proceselor de
bussiness;
Analiza datelor cu scopul pognozrii evoluiei lor n procesul lurii deciziilor.
1.3. Componentele sistemului iformatic cu baz de date

Baza fizic de
date

Sistemul de gestiune cu
procesele de creare a
structurii de date,
memorare, actualizare i
consultare a datelor
------------------------------(SGBD)

Utilizatorii;
Partea client a
aplicaiilor cu
baze de date

Fig. 1.1. Componentele principale a sistemului


informaional cu baz de date (sistem de baz de date).

Cum s-a spus, datele se consider n calitate de suport fizic al informaiei. Din
acest punct de vedere SI presupune ndeplinirea urmtoarelor funcii cu datele:
Crearea structurei de date n memoria extern;
Manipulare cu datele n memoria operativ actualizarea i prelucrarea datelor;
Prezentarea datelor utilizatorului final utilizarea datelor n gestiunea
proceselor de activitate n domeniul concret al lumii reale.
Pentru a ndeplini funciile nominalizate sistemul informatic trebuie s posede
anumite componente (Fig. 1.1).
O parte indispensabil a sistemului o prezint un depozit unic de informaii o
colecie structurat de date memorate, permanent actualizat, care poart
denumirea bazei de date. Baza de date este o parte constituient principal a
sistemului informaional. Ea este coninutul informatic concret a sistemului
informaional. Baza de date este nucleul de date a sistemului informaional. Baza
de date este totodat modelul informaional al domeniul concret din lumea real.
O alt parte principal o prezint sistemul de gestiune a bazei de date (SGBD) un
sistem specializat de soft pentru crearea structurii coleciilor de date, actualizarea,
ntreinerea, prelucrarea i consultarea (interogarea) bazei de date.
A treea parte important a sistemului informaional o prezint utilizatorii cei care
elaboreaz, ntrein i utilizeaz aplicaii cu baze de date n scopurile automatizrii
proceselor de gestiune din lumea real.
Definiii. Exist i pot fi aduse mai multe definiii a acestor componente. Ne vom
opri la urmtoarele:
Baza de date n sensul ngust al cuvntului este o colecie structurat de date,
memorat n memoria extern, permanent actualizat, menit pentru modelarea i
prelucrarea automatizat a datelor n procesele de gestiune n domeniul concret al
lumii reale.

10

Sistemul de Gestiune a Bazei de Date (SGBD) un complex specializat de


mijloace de program i de limbaje de programare menit pentru crearea i
expluatarea bazei de date (crearea structurei datelor in memoria extern,
manipularea cu datele n memoria operativ, prezentarea datelor utilizatorului
final). nclude dou categorii de module module comune cu sisrtemul de operare
i module cu funcii specifice bazelor de date.
Utilizatorii persoane individuale i grupuri de persoane, care creaz,
actualizeaz, ntrein i utilizeaz baza de date n procesele practice de gestiune.
Aici fac parte urmtoarele categorii de utilizatori:
utilizatorii specialitii din domeniul concret a lumii reale (contabili, ingineri,
tehnologi, persone de conducere, etc.). Anume pentru ei se creaz BD;
programatorii specialitii din domeniul informaticii care elaboreaz aplicaii
concrete cu baze de date;
administratorii administratorii de date i administratorii bazelor de date.
Fiecare utilizator are viziunea sa individual asupra bazei de date.
1.4. Coninutul semnificativ a unor termeni folosii (toi termenii de prezentat n
Glosar)
n continuare vom explica coninutul unor termeni frecvent folosii n domeniul
sistemelor de baze de date
.
ntreinerea bazei de date ntreinerea bazei de date n stare actual n procesul
de utilizare. Preponderent sarcina administratorului BD.
Aplicaia cu baz de date un produs de program elaborat n mediul unui SGBD,
predestinat gestiunii automatizate a proceselor de activitate din domeniul concret al
lumii reale.
Domeniul concret al lumii reale un domeniul concret, integru de activitate
uman, gestiunea proceselor n care se efectuiaz n baza tehnologiilor
informaionale.
Domeniul concret din lumea real se reprezint printr-o totalitate de fragmente
(pri constituiente)
, ,
, , ..
,
, ,
. "
" ,
11

, .
-
.

Aici de ntrrodus noiuni de obiecte, procese, entiti i exemplare de obiect.


Sistem informatic ca sistem de baz de date
n practic termenul baza de date este folosi ntr-un sens mai larg ca o colecie
structurat de date memorate precum i mijloacele de program pentru crearea,
actualizarea, prelucrarea i consultarea (utilizarea) a acestor date. n acest caz vom
vorbi despre sistem de baze de date (K. J. Deit) prezentat n Fig. 1.1. Putem vorbi
i despre un sistem informaional cu baz de date.

,
, ,
(K. J. Deit).
.

n curs de dezvoltare sistemele informaionale n funcie de menire au cptat


caracteristici concretizate. Se poate meniona sisteme de baze de date, sisteme de
bnci de date, sisteme de baze de cunotine sau sisteme de inteligen artificial
(sisteme de expert).
Tipuri de sisteme informatice cu baze de date (?)

:
Sisteme de baze de date colecii strtucturate de date memorate n memoria de
baz, precum i mijloacele i limbajele de program pentru crearea i utilizarea
bazelor de date.
Bnci de date totalitatea bazelor de date precum i mijloacele de program,
mijloacele de limbaje de program i alte mijloace menite pentru, achiziionarea
centralizat al datelor i prelucrarea i utilizarea lor n baza tehnologiilor
informaionale.
? .

Sisteme de expert sau sisteme de inteligen artificial sau baze de cunotine


sisteme bazate pe evalurile de expert.
Evalurile de expert evalurile cantitative i/sau calitative aproximative ale
proceselor care nu pot fi direct msurate, ci sunt bazate pe aprecierile specialitilor
(experilor).
:
12

Evidena personalului i volumului de munc la o ntreprindere i calculul


salariului personalului (sistem de baz de date tipic);
Componena speiilor a unui areal de flor i/sau faun (banc de date)
Sistemul automatizat de obinere a diagnozei n baza unor simptome ale
pacienilor n medicin, sistemul de recunoatere a formelor (din imagini, etc.)
sisteme de expert.
Cele mai dezvoltate i pe larg folosite sunt sisteme de baze de date, dat fiind
faptul c menirea lor principal const n automatizarea prin intermediul
calculatorului a proceselor din domeniile concrete de activitate uman.
, ,
(?)
,
, , .
Aadar, un sistem informaional prezint o colecie structurat de date, care
modeleaz procesele informaionale a unui domeniul concret din lumea real,
precum i mijloacele de soft i hard menite pentru crearea, actualizarea, prelucrarea
i utilizarea acestor date.
Aceast definiie coincide cu definiia sistemului de baze de date, dar este mai
scurt.
(? Acolo unde se discut registrri?) Pentru bazele de date este specific c datele
sunt stocate mpreun cu descrierea lor (mpreun cu date despre date - metadate).
Ca de obicei, metadatele mpreun cu informaii despre utilizatori, sunt stocate
n dicionarul bazei de date.
,
,
.
. ,
, ,
. ,
.
1.5. Nivele de abstractizare al datelor n acele dou sisteme de organizare
Noiunea de abstractizare al datelor apare n procesul trecerii de la modul de
prezentare a lor n lumea real la modul de memorare fizic. Este o trecere
continue de la viziunea utilizatorului de specialitate asupra datelor la coninutul i
structura datelor prezentate n form de iruri de bii n memoria calculatorului.
(Desen?!)
13

Scopul principal de abstractizare const n asigurarea independenei coninutului


semantic a datelor de modul de memorare a lor pe suportul fizic i prin asta, de
modul de prelucrare a lor. Exist dou tipuri de independen a datelor:
independena fizic;
independena logic.

Independena fizic nseamn independena datelor memorate fa de programele


de aplicaie, adica orice modificare a structurii datelor memorate nu afecteaz
programul de aplicaie i reciproc, orice modificare a programului de aplicaie nu
afecteaz structura de date.
Independena logic nseamn independena fiecrei colecie individuale de date a
unui utilizator fa de colecia general conceptual de date, adic pot fi definite
noi cmpuri i pot fi adugate noi nregistrri fr s fie afectai utilizatorii care nu
au nevoie de ele.
Acest scop se atinge prin prezentarea datelor pe mai multe nivele de abstractizare
a lor. Nominalizate mai sus dou forme de organizare a datelor difer i prin nivele
de abstractizare a datelor.
n cazul fiierelor independente de date exist dou nivele de abstractizare a
datelor:
nivelul logic care const n descrierea structurii de cmpuri a nregistrrilor
de ctre programator (determin formatul fiierului reieind din viziunea
programatorului asupra datelor);
nivelul fizic care const n metodele de nregistrare fizic n memoria extern
i regsirea datelor la nivelul suportului de date. Este funcia intrinsic de
gestiune a fiierelor de ctre sistemul de operare. Rezultatele acestei gestiune
sunt invizibile pentru programator. Datele din fiier se acceseaz prin
mijloacele unui limbaj general de programare (Pascal, C), care se bazeaz
direct pe funciile sistemului de operare (SO).

14

Acestea nivele de abstractizare parial asigur independena fizic i logic a


datelor de modul de stocare a lor pe suportul fizic.


,
().
.

.
.

()
, .
:
1. ()
2. (global, conceptual logic)
3. ()
(
).
. , ,
.
.
Nivelul conceptual (conceptual global sau nivelul logic) descrie datele i
interlegturile ntre ele din cel mai general punct de vedere. Reprezint o
generalizare bazat pe anumite concepte a viziunilor tuturor utilizatorilor
individuali. Este o descriere conceptual global a domeniului concret din lumea
real n termenii SGBD concret. Reprezint modelul informaional integru a
domeniului concret din lumea real.
, ..
()
. ,
,
.
Nivelul intern (fizic)
, ..,

()

.
15

.

.


.
,
(
, ).
.
Spre deosebire de fiiere independente baza de date reprezint un mod de
organizare a datelor oferit de sistemul de gestiune a bazelor de date (SGBD)
folosit. SGBD ca sistem de program specializat nlocuiete limbajul de programare
obinuit. Pentru asigurarea independenei datelor abstractizarea datelor n cazul
bazelor de date trebuie s se fac pe cel puin trei nivele:
Nivelul intern (sau nivelul fizic) sau baza de date fizic este reprezentat de
colecia de nregistrri memorate pe suportul fizic de memorare, nregistrri
care conin datele propriu-zise dar i informaii suplimentare despre structura
coleciilor de nregistrri. n unele SGBD nregistrrile pot fi grupate n
fiiere. Gestiunea proceselor de manipulare cu nregistrrile la nivel fizic este
funcia intrinsic al SGBD+SO (sistemului de operare). Nivelul intern se
concretizeaz n schema intern a bazei de date format din:
1. set de programe care interacioneaz cu sistemul de operare i asigur acces
optimal la date;
2. set de fiiere ce conin datele propriu-zise, alctuite din articole sau
nregistrri.
Nivelul conceptual (conceptual global sau nivelul logic) reprezint descrierea
unitilor de structur ( ) din care este format baza
de date integr (global) i a legturilor dintre ele. Unitile logice
( ) reprezint entitile din domeniul concret al lumii
reale i interlegturile dintre ele. La concret ele sunt formate din structuri de
nregistrri cu proprierti specifice ale cmpurilor care reflect proprietile
semantice ale datelor (restricii, validare, etc.). Cu alte cuvinte, nivelul
reprezint modelul integru a domeniului concret format n cadrul unei sau
altei metode concret. Nivelul exprim viziunea programatorului de aplicaie
sau mai bine zis a administratorului asupra structurii globale de date
formalizat dup anumite concepte. n modelul conceptual sunt specificate
toate constrngerile (restriciile) aplicate asupra datelor, care determin
restriciile operaiilor de actualizare. Ele sunt necesare pentru a asigura
integritatea i consistena datelor. Nivelul se concretizeaz n schema
general a bazei de date n ntregime.

16

Nivelul extern (sau nivelul utilizatorului final) reprezint modelul extern cu


care opereaz utilizatorul final a bazei de date ca specialist din domeniul
concret a lumii reale. Exprim viziunea utilizatorului final asupra bazei de
date (i a administratorului BD, bineneles). Nivelul extern este format din
seturi de uniti de structur ( ) de la nivelul
conceptual cu care opereaz un utilizator sau un grup de utilizatori concret.
Nivelului i corespunde structura conceptual a schemelor individuale ale
utilizatorilor formate din uniti de structur ( ). Se
numesc i scheme externe. Cea mai important utilitate a unei scheme
individuale este aceea c prin intermediul ei se poate controla accesul unui
grup de utilizatori la baza de date. Deoarece utilizatorul are acces la baza de
date nu prin modelul conceptual, ci prin schema lui individual, este posibil
de a ascunde unui utilizator acele uniti de structur cu coninutul lor
informatic la care el nu are dreptul de acces. Schemele individuale pot se
controleze i operaiile pe care le poate executa utilizatorul cu unitile de
structur: datele din unele uniti de structur i se permite s le actualizeze,
iar din altele i se permite numai s le consulte. Interaciunea utilizatorilor cu
schemele lor individuale se efectuiaz prin interfaa aplicaiei.
Acum ne vom ntoarce la schema general a SI din Fig. 1.1 i vom comenta-o de
pe poziiile de niveluri de abstractizare al datelor.
(coninutul, structura i funciile unui sistem general socio-uman, informaional, fizic, etc.;
viziunile tuturor persoane ntrunii n SI asupra diferitor scheme; ce este o aplicaie cu BD, etc.).
Independena datelor ( )
.

.

Avantajul principal al organizrii structurii datelor n form de baz de date i


gestiunea datelor prin intermediul SGBD const n asigurarea a dou tipuri de
independen a datelor:
independena fizic;
independena logic.
Independena fizic nseamn independena datelor memorate de programele de
aplicaie, adica orice modificare a structurii datelor memorate nu afecteaz
programul de aplicaie i reciproc, orice modificare a programului de aplicaie nu
afecteaz structura de date.

17

Independena logic nseamn independena fiecrei scheme individuale a unui


utilizator fa de schema general conceptual, adic pot fi definite noi cmpuri i
pot fi adugate noi nregistrri n baza de date fr s fie afectai utilizatorii care nu
au nevoie de ele. n plus, baza de date poate fi reorganizat (pot fi regrupate
cmpurile din nregistrri) pentru a face fa cerinelor unui nou utilizator fr a fi
afectai vechii utilizatori. Eliminarea unor entiti din baza de date poate afecta ns
utilizatorii care fac referiri la acele entiti.
Independena datelor nseamn posibilitatea dezvoltrii bazei de date fr prejudiii
logice pentru aplicaiile existente.
1.6 Obiectivele, structura i funciile principale ale SGBD
Un sistem de baz de date are drept componente mari (Fig. 1.1): baza fizic de date
pe hardware (colecie structurat de date colecii de nregistrri propriu-zise, ca
de obicei n form de fiiere fizice invizibile pentru utilizatori), software-ul
(SGBD, programele de aplicaie etc.), utilizatorii. Rolul central ntre aceste
componente evident l joac SGBD.
Menirea principal a lui SGBD susinerea elaborrii i exploatrii a aplicaiei
concrete cu baz de date.
Obiectivele unui SGBD
Se are n vedere susinerea urmtoarelor aciuni generale (obiectivele SGBD)
asupra datelor:
crearea structurilor de date care adecvat reflect ansamblul integru de procese
din domeniul concret a lumii reale;
actualizarea datelor introducerea datelor noi (INSERT), modificarea datelor
(UPDATE), tergerea datelor (DELETE);
consultarea datelor interogri de selecie i prelucrare (SELECT);
administrarea datelor;
protecia datelor;
prezentarea datelor (utilizarea datelor)?.
Pentru realizarea acestor obiective sunt necesare mijloace hard i soft:
Hard memorie de baz (intern, operativ); memorie extern (pe disc, pe
suport magnetic); procesor; uniti fizice ntrare/ieire.
Soft SGBD; soft-aplicaie de business proces i interfaa utilizatorului,
utilitare.

18

Acum putem preciza schema din Fig. 1.1. astfel ca n Fig. 1.2.

Baza fizic de date


(fiiere/colecii de
nregistrri de date)

Sistemul de gestiune a
proceselor de creare a
structurii, actualizare i
interogare a datelor
------------------------------(SGBD)

Utilizatorii
Busines
aplicaii
Utilitare

Fig. 1.2. Arhitectura unui sistem de baz de date

Remarc: Trebuie s distingem sistemul de gestiune a bazei de date (SGBD) i


aplicaia concret de baz de date:
sistemul de gestiune a bazei de date (SGBD) soft instalat pe hard pentru
crearea, actualizarea i exploatarea aplicaiei de baz de date;
aplicaia de baz de date datele propriu-zise, care reprezint modelul
informaional al universului de discurs i programele de aplicaie care
realizeaz business-procesele i interfaa cu utilizatorul (ca exemplu baza de
date VINZARI).
SGBD este un ansamblu complex de programe care asigur interfaa ntre o baz
de date fizic i utilizatorii acesteia. Deci este o slug la doi stpni. SGBD este
componenta software a unui sistem de baz de date care interacioneaz cu toate
celelalte componente ale acestuia, asigurnd legtura i interdependena ntre ele.
Aadar, sistemul de gestiune a bazei de date (SGBD) este unul din cele mai
importante componente a sistemului informaional.
Funciile principale ale unui SGBD
Realizarea obiectivelor nominalizate este asigurat de SGBD printr-o serie de
componente care permit efectuarea unor operaii specifice. Acestea operaii sau
activiti pot fi grupate pe funcii astfel nct, una sau mai multe activiti, relativ
omogene, vor realiza o anumit funcie. n ciuda unor particulariti specifice
diferitor SGBD, exist cteva funcii general valabile pentru toate tipurile de
SGBD:
Funcia de descriere a datelor. Gestiunea datelor n memoria extern
definirea (crearea) obiectelor de structur a bazei de date cu ajutorul
limbajului de definire a datelor (DDL);
Funcia de manipulare a datelor. Este cea mai complex. Realizeaz
regsirea, actualizarea i prelucrarea datelor din baza de date cu ajutorului
limbajelor de manipulare (DML) i interogare (DQL) al datelor. Asigur
mulimea de modaliti necesare pentru accesarea datelor;

19

Funcia de susinere a limbajului BD interpretarea comenzilor. De fapt


istoric exist dou sublumbaje limajul de descriere (creare) a datelor
(DDL) i limbajul de manipulare a datelor (DML);
Funcia de administrare. Este complex, se ndeplinete de administratorul
cu o bogat experien. Const n autorizarea accesului la date, copierea de
rezerv a bazei de date cu o periodicitate predefinit, refacerea bazei de date
n caz de incidente, utilizarea eficient a spaiului de memorie extern i
intern, efectuarea analizelor statistice pe baza de date.
Funcia de protecie al datelor. Asigur securitatea datelor. Se concretizeaz
n jurnalizarea modificrilor (tranzaciilor) n starea bazei de date i
restaurarea automat a BD n cazurile de blocare fatal a sistemului hard;
Funcia de utilizare a datelor. Asigur mulimea de modaliti necesare
pentru accesarea datelor. Ca de obicei se concretizeaz n mulimea
interfeelor pentru comunicarea tuturor utilizatori cu baza de date. Ofer
prezentarea datelor n forme grafice, textuale, tabelare, etc.
Componentele principale a unui SGBD
(De refcut)
nucleul, care asigur:
1. Crearea structurei de date n memoria extern (funcia de descriere a
datelor, Modulul de gestiune a datelor n memoria extern);
2. Manipularea datelor n memoria de baz (funcia de manipulare a datelor,
Modulul);
3. Integritatea i securitatea datelor (jurnalizarea datelor);
motorul SGBD, asigur ndeplinirea optim a interogrilor de modificare i
selecie al datelor i crearea codului ndependent-main intern pentru
subrutine memorate;
subsistemul de interpretare on-line o versiune prescurtat a lui SGBD
care permite numai ndeplinirea aplicaiei. Nu conine mijloace de elaborare
i modificare ale structurii datelor i de programare. Poate fi oferit
utilizatorului final mpreun cu aplicaia elaborat.
utilitare externe programe de deservire care asigur posibiliti adiionale de deservire
a sistemului informaional (testarea funcionalitii, etc.).

20

. 1.2. Componentele principale ale SGBD.


,


.
.
.
:
(
), ;
;
,
.
PS: De modificat aici n stilul:
Arhitectura CODASYL a unui SGBD (Velicanu et all, p. 49);
Arhitectura ANSI a unui SGBD (Velicanu et all, p. 50);
Arhitectura unui SGBD pe componente (Velicanu et all, p. 52).

What are the difference between DDL, DML and DCL


commands?
http://www.orafaq.com/faq/what_are_the_difference_between_ddl_dml_and_dcl_c
ommands

21

1.7. Arhitectura unui SGBD. Standardul ANSI/SPARC


Arhitectura SGBD presupune principiu de structur recomandat pentru un SGBD.
Utilizate n industrie SGBD au multe diferene ntre ele, dar toate din ele se
construiesc dup concepia de arhitectur ANSI/SPARC elaborat de institutul
standartelor american ANSI. Proiectul arhitecturii a fost aprobat n 1975 de
subcomitetul SPARC (Standards Planning and Requirements Committee) al ANSI.
Conform recomandrilor ANSI/SPARC, arhitectura SGBD se prezint prin trei
nivele de reprezentare al datelor: intern, conceptual i extern
intern (fizic)
conceptual (conceptual global, intermediar, logic)
extern (de utilizator)
(
).
. , ,
.
ANSI/SPARC. . 1.3
, .. ee
,
.

22

. 1.3. Arhitectura SGBD n standardul ANSI/SPARC.



: ,
.

.

,
, ,
, .
, ..
.
( -
).
(VIEW) SQL
[3].

23


, ..
() . ,

,
.

.
.
De obicei o baz de date este memorat ntr-unul sau mai multe fiiere. Bazele de date sunt
manipulate cu ajutorul sistemelor de gestiune a bazelor de date.
Cel mai rspndit tip de baze de date este cel relaional, n care datele sunt memorate n tabele.
Pe lnga tabele, o baz de date relaional mai poate conine: indeci, proceduri stocate, trigger-e,
utilizatori i grupuri de utilizatori, tipuri de date, mecanisme de securitate i de gestiune a
tranzaciilor etc. Alte tipuri de baze de date sunt modelul ierarhic, modelul orientat pe obiecte i,
mai nou, modelul XML.

1.8. Structuri i modele de date generalizate. Tipuri de SGBD


Ne amintim structuri de organizare al datelor deja discutate:
dou sisteme de organizare al datelor aa cum ele au evoluionat n timp
fiiere independente i baze de date;
niveluri de abstractizare al datelor n acele dou sisteme de organizare. n
cazul sistemului de organizare cu baze de date avem: nivelul intern reprezint
colecii structurate de nregistrri memorate la nivelul fizic (ca de obicei
structurate n form de fiiere), nivelul conceptual global (logic) format din
uniti logice i reprezint viziunea programatorului asupra datelor aa cum ele
sunt, nivelul extern format din scheme individuale, reprezint viziunea
utilizatorului final.
La fiecare nivel de abstractizare al datelor avem structuri specifice de date formate
din nregistrri (?):
structuri de date memorate la nivel fizic (nivelul intern);
ansamblu de colecii de date integrate ntr-o structur logic format dup
anumite concepte. Acesta este nivelul conceptual global. Modelul de date care
l prezint este modelul informaional al domeniul concret din lumea real;
Scheme individuale la nivelul extern (nivelul utilizatorului).
Acestea trei niveluri evident corespund acelor trei componente principale a sistemului
informaional (vez Fig. 1.2) i ne asigur independena datelor.

24

n continuare vom analiza n detalii structurarea datelor n fiecare din acestea trei
niveluri. Vom ncepe cu nivelul conceptual global ca cel mai important.
modele de date generalizate sau globale structuri logice conceptuale de
date.
Modele de date generalizate sau globale implementate n SGBD
Pentru structurarea datelor n baza de date la nivelul conceptual global sunt
utilizate aa-numite modele de date generalizate sau modele de date mai pe
scurt. Exist o diversitate mare de tipuri obinuite de date, dar dintre ele pot fi
construite structuri de date generalizate modele de date, care vor fi specifice
pentru SGBD-ul dat.
Dac tipul de date este proprietatea principal a unei mrime (variabil), atunci
modelul de date prezint o structur integr global al datelor construit dup
anumite concepii.
Modele de date reprezint structuri de date generalizate, construite dup criterii
conceptuale care reflect viziunea programatorului sau proiectantului asupra
datelor din lumea real.
Cu alte cuvinte, modelul de date constituie un ansamblu de concepte i instrumente
necesar pentru a construi (descrie, prezenta) structura global a bazei de date sau
schema bazei de date.
Modele de date se difer prin modul de stabilire legturilor dintre colecii de date.
Amintim aici c ca elemente de structur de date n lumea real avem
entitate ca o colecie de date de acelai tip i
exemplare de entitate ca reprezentani concrei al entitilor.
Baza de date fiind de fapt o colecie de entiti reprezentate prin structuri generalizate sau
modele de date folosete organizarea acestor entiti in mai multe moduri astfel nct structura de
date s corespund ct mai bine necesitilor utilizatorului.

Tipul de date este caracterizat prin specificarea a dou momente:


domeniului de valori al datelor;
operaiilor admisibile asupra datelor.
Modelul de date reprezint structuri generalizate de date i const din trei
componente:
1. obiecte (elemente) de structur a datelor determin obiectele (elementele)
de structur i regulile de organizare acestor obiecte n structur. Reprezint
viziunea utilizatorului n general asupra structurilor de date cu care se descriu
datele din lumea real;
25

2. restricii de integritate structural sau integritatea structural a modelului


un set de reguli (restricii) asupra valorilor datelor, care asigur integritatea,
coerena i consistena (, )
datelor. Este un mecanism de susinere a corespondenei dintre datele din baza
de date i datele din lumea real. Se bazeaz pe set de reguli formale;
3. operatorii modelului set de operatori pentru definirea obiectelor de structur
i manipularea cu datele propriu zis. Modelul de date presupune existena ca
minimum a dou grupuri de operatori dou sublimbaje: sublimbajul de creare
i memorare ale elementelor de structur (DDL Data Definition language) i
sublimbajul de manipulare al datelor n structur (DML Data Manipulation
Language). Include operaii de actualizare i interogare a datelor.
Clasificarea modelelor i bazelor de date
Modelul de date implementat n SGBD concret determin tipul acestui SGBD.
Sunt cunoscute urmtoarele modele de date (i respectiv baze de date). Le
prezentm n ordinea de evoluie n timp:
ierarhice (arborescente);
de reea;
relaionale;
postrelaionale (modelul orientat pe obiecte, obiectual).
i, mai nou, modelul XML
Modelul de date este o structur logic sau global conceptual, iar baza de date
care l implementeaz este o realizare (aplicaie) concret sau o structur fizic.
Acest fapt poate fi reprezentat prin urmtoarea diagram
Domeniul concret din
lumea real
(structur din entiti i
legturi dintre ele
modelul lumii reale)

Modelul de date
(structuri conceptuale din
obiecte de structur i
legtiri dintre ele
modelul conceptual)

Baza de date
(structuri din uniti fizic
memorate)

1.6.1. Modele de date ierarhice i de reea


Modele ierarhice
n acest model de date datele se prezint printr-o structur n form de noduri. ntre
fiecare dou noduri exist relaii, dar nu de tip egalitate ci de tip subordonare.
Nodul conductor n relaie este nodul printe iar nodul condus este nodul copil.
Sau: nodurile referite s numesc noduri printe, iar nodurile care refer noduri
copil. (situaia asimilar cu relaii client server)

26

Fiecare nod copil s refer numai la un singur nod printe. Cu alte cuvinte
fiecare nod copil are un singur nod printe crui i s supune.
Pentru a forma legturi nodurile trebuie se conin ct datele propriu zise att i
referine (pointeri) la alte noduri. Deci structura unui nod este urmtoarea
Data

Referin 1

Referin 2

Referin ...

Cu alte cuvinte, nodurile sunt puncte care conecteaz ramurile unui arbore
descendent. (de prezentat desenul structurii arborescente) Un nod de pe nivelul
inferior este subordonat unui singur nod din nivelul ierarhic imediat superior, dar
poate fi n relaie cu n noduri aflate la nivelul inferior. Altfel spus fiecare entitate
are un singur nod printe (parent node), dar un printe poate avea mai multe
noduri copil (child nodes). Este cazul legturii de tip unu la muli. Pentru a gsi o
nregistrare anumit (? exemplar de entitate sau nregistrare) trebuie s se
porneasc cu nodul printe de pe primul nivel i s se coboare pe arbore pn la
copilul care conine aceast nregistrare.
Baze de date ierarhice
Bazele de date care implementeaz modelul ierarhic de date se numesc baze de
date ierarhice (hierarchical database). Un exemplu de organizare ierarhic este
baza de date pentru sistemul de rezervare a biletelor la rutele de autobus,
structurat pe 3 nivele.
Bucureti

Cluj

Constana

Timioara

Iai

Avantajele i dezavantajele a modelului ierarhic


Avantaje:
Acces rapid la date. Datele se regsesc dup adrese de memorie (pointeri) i
nu dup valori. O structur rigid de legturi se construiete printr-o structur
de referine care sunt referine la adrese fizice. Aceasta structur se creaz n
prealabil i cere eforturi adiionale;
Exist presupuneri c volumul necesar de memorie pentru stocarea datelor i
legeturilor ntre ele n unele cazuri este mai mic dect n alte modele de date.
Dezavantage. ntr-un astfel de tip de organizare apar urmtoarele probleme:
Necesit resurse mari de memorie (?). Odat cu datele propriu zise se
memoreaz i totalitatea de pointeri (nu este corect);
27

Dac se terge un nod printe, se terg toate nodurile copil subordonate.


Partea negativ a structurii rigide;
Un nod copil poate fi adugat numai dac au fost adugate mai nti nodurile
printe;
ntre nodurile copii nu pot fi stabilite relaii (dar ele nu pot fi stabilite i n alte
modele. Mai mult ca att: cu mici excepii ele nu au loc i n lumea real);
Nu orice domeniu din lumea real poate fi adecvat descris prin acest model.
Drept un alt exemplu de model ierarhic putem meniona structura de cataloage n
sistemul de operare a calculatorului.
Exemplu de Baz de date ierarhic COMENZI.
Avem obiecte: Sectoare, Colaboratori, Clienti;
Procese: Contracte
Sector
SctDenum
SctSef
SctTelefon

Colaborator
ClbNume
ClbFunctia
ClbSalariu

Colaborator
ClbNume
ClbFunctia
ClbSalariu

Contract
CntNumar
CntData
CntSuma

Client
ClnNume
ClnAdresa
ClnTelefon

Contract
CntNumar
CntData
CntSuma

Colaborator
SctDenum
SctSef
SctTelefon

Colaborator
ClbNume
ClbFunctia
ClbSalariu

Contract
CntNumar
CntData
CntSuma

Colaborator
SctDenum
SctSef
SctTelefon

Contract
CntNumar
CntData
CntSuma

Colaborator
SctDenum
SctSef
SctTelefon

Fig 1.5. Schema conceptual a bazei de


date COMENZI. Model ierarhic.
28

Dac vom introduce un sistem de pointeri Cln, Cnt, Clb ctre fiecare exemplar de
Client, Contract i Colaborator respectiv, atunci un element din lista Contracte
asociat de un nod careva cu adresa Cnt124 va avea urmtoarea form: |Cln25 124
01.10.2012 35000 Clb17|. Informaia stocat sun n felul urmtor: clientul cu
pointer Cln25 a cheeat contract cu numrul 124 pe data de 01.10.2012 n, suma
contractului fiind 35000.
Aadar, o structur conceptual global de date creat dup n modelul ierarhic
prezint o colecie de scheme arborescente. Legturile dintre nodurile arborelor
sunt de tip 1: (unu la mai mult) i sunt realizate printr-o structur de pointeri
referine (adrese) fizice n spaiul memoral. Arborele Colaborator Contract este
introdus n schema conceptual pentru admite faptul c un colaborator poate s
ndeplineasc mai multe contracte.
Model de reea
Prezint o aranjare asmntoare cu cea ierarhizat a nodurilor, cu deosebirea c
un nod copil poate s aib mai multe noduri prini. i n acest caz exist o
subordonare dintre noduri, cu deosebirea c un nod copil poate s aib mai multe
noduri prini (legtura muli la muli). ntre nodurile printe i nodurile copil se
adaug conexiuni adiionale numite pointere. Aceasta nseamn c unui nod i se
poate aduga o cale nou i c pot fi trasate n jos ramuri noi.
Baze de date reea (network database).
n aceast organizare, fiecare exemplar de entitate (nod?) poate avea un numr
nelimitat de conexiuni, disprnd noiunea de entitate (nod?) ierarhic superioar.
Un exemplu de astfel de organizare este baza de date a produselor care se execut
ntr-o fabric. Fiecare produs este format din mai multe ansambluri, iar fiecare

ansamblu este format din mai multe piese. Fiecare pies poate intra n componena
mai multor ansambluri, iar fiecare ansamblu poate intra n componena mai multor
produse.
Modelul de tip reea cum se poate observa este mai flexibil i n multe cazuri mai
eficient dect cel ierarhic. Dar acest avantaj se obine pe contul mai multor eforturi
de organizare preliminare i folosirei mai multor resurse de memorare. Modificarea
structurii n asest caz este i mai anevoioas.

29

Exemplu de Baz de date de tip reea COMENZI.


Avem obiecte: Sectoare, Colaboratori, Clienti;
Procese: Contracte
Sector
SctDenum
SctSef
SctTelefon

Colaborator
ClbNume
ClbFunctia
ClbSalariu

Client
ClnNume
ClnAdresa
ClnTelefon

Colaborator
SctDenum
SctSef
SctTelefon

Colaborator
ClbNume
ClbFunctia
ClbSalariu

Contract
CntNumar
CntData
CntSuma

Colaborator
SctDenum
SctSef
SctTelefon

Contract
CntNumar
CntData
CntSuma

Colaborator
SctDenum
SctSef
SctTelefon

Fig 1.6. Schema conceptual a bazei de date


COMENZI. Model reea.
n modelul reea noi pe ling legturi Contract Colaborator am introdus i
legturi Colavborator Contract (linii ntrerupte) i prin asta am admis faptul c
un colaborator poate s ndeplineasc mai multe contracte. Arborele
Colavborator Contract din schema ioerarhica (Fig. 1.5) a devenit de prisos i a
fost nlturat.
1.6.2. Modelul relaional de date

30

(E Codd) 19691970 .
, ,
.
.
(
), (
).
/ /,
:
Obiecte de structur: unicele obiecte de structur sunt tabele, i anume
tabele relaionale. Datele sunt privite n form de tabele relaionale i nici
cum astfel;
Integritatea structural a modelului: este prezentat de un sistem de reguli
sau restricii asupra valorilor admisibile a datelor n tabele. Acestea reguli
(restricii) asigur integritatea structural a modelului prin stabilirea
legturilor dintre tabele i corespondena dintre datele din baza de date i
datele din lumea real;
Operatorii modelului:

SELECT (RESTRICT), PROJECT, JOIN.
Exemplu de Baz de date de tip relaional COMENZI.
Avem obiecte: Sectoare, Colaboratori, Clienti;
Procese: Contracte
Sectoare
SctId
SctDenum
SctTelefon

Colaboratori

ClbId
ClbNume
ClbSector
ClbFuncia
ClbSalariu

Contracte
1

CntNumar
CntData
Client
Executant
CntSuma

Clienti

Fig 1.7. Schema conceptual a bazei de date


COMENZI. Model relaional.

ClnId
ClnNume
ClnAdresa
ClnTelefon

31

Cum vedem, n modelul relaional legturile dintre obiectele schemei conceptuale


sunt realizate prin valori egale a atributelor din relaii n legtur. Referirea i
regsirea datelor se face aici prin valorile datelor i nu prin adresare fizic ca n
modelul ierarhic, ceea ce duce la cea mai mare problem a modelului relaional:
acces lent la date n cazul bazelor mari de date.
1.9. Starea contemporan n teoria i practica bazelor de date
(? La sfritul capitolului?)
Modele i baze de date postrelaionale baze de date obiectuale;
Aplicaii de baze de date n internet. Web tehnologii cu baze de date;
Sisteme OLTP operaionale, tranzacionale. Sunt sisteme descriptive care
conin date operative;
Sisteme OLAP. Data Warehouse i Data Mining. Sisteme contemporane de
analiz analitic i intelectual a datelor;
Baze de date distribuite;
Baze de date mari i supra mari. Tehnologii MapReduce mpodelul
calculelor distribuite;
Baze de date i Grid Computing.

32

2. MODELUL RELAIONAL DE DATE


Cel mai flexibil model de organizare l reprezint modelul relaional de date
implementat de bazele de date relaionale. Autorul modelului este doctor E.Codd
(lucrrile din 1969, 1970).
Succesul modelului relaional se explic prin trei momente:
Simplicitate i percepere intuitiv a structurii. Toat lumea folosete pe larg
date n form de tabele;
Existena metodelor simple i totodat eficiente de acces la date. n model nu
exist ci de acces ierarhizate. Datele nu se regsesc prin mecanismul de
pointeri la adrese fizice ca n modelul ierarhic. Datele se regsesc i se refer
prin valorile lor. Problema vitezei de acces reduse din acest motiv se rezolv
prin mecanismul de indexare a datelor n tabele;
i, n sfrit, modelul are o fundamentare strict matematic teoria
mulimilor. Se poate spus c teoria mulimilor este o teorie matematic a
relaiilor.
Ca rezultat, metoda relaional are avantage evidente:
Predictibilitatea rezultatelor de prelucrare a datelor. n baza modelului
relaional se afl modelul matematic, de aceea orice interogare fa de baza de
date genereaz un rezultat unic, independent de organizarea fizic a datelor;
Simlicitatea descrierii datelor. Domeniul concret din lumea real n mod
natural se descrie n termenii de tabele;
Eficiena prelucrrii datelor.
Aici (???) de date trei paragrafe:
1. Simplicitatea modelului ca rezultat al nivelului nalt de abstractizare a
datelor. Descrierea datelor se face la nivelul cel mai apropiat de utilizator.
Plile pentru asta acces neeficient la date n cazul bazelor de date mari.
2. Metode eficiente de acces la date. Indexarea tabelelor relaionale.
3. Teoria mulimilor. Definiia relaiei n teoria mulimilor.
n continuare vom analiza n detalii trei pri de structur a modelului de date
relaional.
2.1. Trei pri constituiente a modelului relaional
n cadrul teoriei mulimilor a fost dat definiia matematic a relaiei. Valorile datelor n
astfel relaie au fost elementele mulimilor date abstracte.

33

n teoria lui Codd elementele modelului relaional precum i structura


modeluluii se definesc reieind din semantica (sensul) datelor.
Conform teoriei lui Codd (lucrarea principal din 1970) modelul relaional de
date const din trei pri sau este definit prin trei dimensiuni (elemente), i anume
(n interpretarea lui Date):
Structura modelului relaional de date. Aici se definesc obiectele care
formeaz structura modelului relaional. S postuleaz c unica structur de
date este format din relaii normalizate de gradul n i legturi dintre ele;
Integritatea structural a modelului relaional de date. Aici se definesc
restriciile de integritate, i anume acelea restricii care asigur meninerea
integritii, coerenei ( , ; se
compune din elemente strns legate ntre ele; interlegturi
strns ntre date) i consistenei (,

) datelor. n primul rnd vorba merge
despre restricii de integritate obligatorii de definit i de respectat atunci
cnd se lucreaz cu modelul relaional, i anume restricii de tip: unicitatea
cheii; integritatea entitii i integritatea referenial;
Operatorii modelului relaional de date sau operatorii de gestiune a datelor.
Aici se descriu dou modaliti de manipulare a datelor un set de operatori
relaionali i calculul expresiilor cu aceti operatori i anume algebra
relaional i calculul relaional. Setul de operatori a algebrei relaionale
const din operatori care opereaz cu relaii, atribute i corteje.
Consistena datelor ()
() ,
.
nainte de a formula noiunea de relaie n teoria lui Codd vom da o analiz a tipurilor de
date existente sub prisma folosirii lor in modelul relaional.
n genere exist tipuri de date:
simple sau scalare (tipuri de date de baz iruri de caractere, numerice, logice);
compuse sau vectoriale care au o structur dintr-o mulime de elemente care au indexe
(masive, tablouri, nregistrri);
referine.
Tipurile compuse, cele mai frecvent folosite sunt nregistrri care prezint nu alt ceva dect
tupluri a produsului cartezian al mulimilor.
Tipuri i structuri de date n modelul relaional. Aici accentuim dou momente:
1. Date atomice. Important: De fapt pentru modelul relaional tipul de date ca atare nu
import modelul relaional cere ca tipurile folosite de date s fie considerate ca simple,
atomice sau, mai bine zis, indivizibile. Cerina de tipuri atomare a modelului relaional nseamn
c n operaiile pe relaii structura intrinsec a tipurilor (cortejelor) de date nu poate fi luat n
considerare.
34

2. Importana semnificaiei datelor. n relaie se conin numai acele date care satisfac
predicatul relaiei, adic au un sens careva (coninutul semantic).

2.2. Definirea relaiei conform teoriei lui Codd. Noiuni formal logice de
domeniu, atribut, relaie
Redarea coninutului semantic al datelor este una din cele mai complexe
probleme n teoria bazelor de date. n teoria s-a pentru a rezolva aceast problem
Codd a mers pe calea logicii formale. El a ntrodus noiuni fundamentale abstracte
de domeniu, atribut i relaie, care reflect logica interlegeturilor dintre date,
coninutul i sensul lor.
Rezolvarea de baz a acestei probleme const n trecerea pe calea logicii formale n cadrul
crei se formuleaz noiuni fundamentale de domeniu, atribut i relaie, care reflect logica i
sensul datelor.
Altfel:

n elaborarea modelului relaional pentru redarea coninutului semantic al


datelor Codd a mrs pe calea logicii formale. El a introdus noiuni fundamentale
abstracte de domeniu, atribut i relaie, care reflect adecvat logica i sensul
datelor din lumea real.

,
. ,
, .
Ai , 1 i n
. Ai dom( Ai ) . R
A1 , A2 , ..., An . R

K B1 , B2 , ..., Bn R .

Noiunea de domeniu. Este o extensie important a tipurilor standarde de date


n care se accentuiaz coninutul semantic (sensul) al datelor.
Definiie. Domeniul reprezint un ansamblu (o mulime) de valori i:

Are nume unic;

Este definit pe un tip de date simplu (scalar, standard) sau pe alt domeniu;

Exist o condiie logic care determin mulimea valorilor admisibile;

Este un suport semnificativ a datelor.


Exemple. Domenii cu semnificaia:
vrstei lucrtorului V = {nN: n>18 and n<60};
salariu S = {sR: s>2000.00 and s<8000.00};
greutatea piesei G = {nN: n>18 and n<60};
numrul de oameni ntr-o echip C = {nN: n>18 and n<60};
35

Domeniile asigur restriciile de comparaie i ne uureaz (faciliteaz)


modelarea datelor din lumea real. Exemplu. Putem oare compara greutatea piesei
cu vrsta omului? Formal da, dar logic?
Produsul cartezian al domeniilor D1D2...Dn prezint un ansamblu de tupluri
(v1, v2, ..., vn).
De remarcat necesitatea definirii unei submulimi de tupluri, din cadrul
produsului cartezian al domeniilor, submulime care s cuprind numai tuplurile cu
semnificaie.
Noiunea de atribut. Orice obiect sau proces din lumea real (entitate, n
general) poate fi descris (definit) prin enumerarea proprietilor lui definitoare.
Acestea proprieti, proprii entitii date sunt atributele ei care o definesc n mod
unic. Terminul de atribut nseamn o particularitate a oricarei entiti din lumea
real. Proprietatea de semnificaie a domeniului ne permite s formalizm
ntroducerea noiunii de atribut al unui obiect, de exemplu <vrsta> care este o
proprietate sau o particularitate a lucrtorului (obiectului).
Prin seturi de atribute n mod formal se descriu obiecte din lumea real.
Atributul este definit pe domeniu n felul urmtor:
Atributul este o pereche de tip
<Nume_atribut: Nume_domeniu> sau <A:D>
De amintit aici c domeniu este definit pe un tip de date simplu (primitiv).
Atributelecaptureazinformaiacaredescrieiidentificoinstanspecificauneiclase
iauuntipasociatcarepoatefiunuldintipurileprimitive

Noiunea de relaie. Acum sntem gata s dm definiia relaiei:


Relaia este o unitate de structur logic (reprezint o submulime al produsului
cartezian a mai multor domenii) definit pe un set de atribute i valorile lor i
const din dou pri:
Titlul (schema) relaiei care const dintr-un numr fixat de atribute
{<A1:D1>, <A2:D2>, <A3:D3>, , <An:Dn>};
Corpul (extensia) relaiei care reprezint o submulime de tupluri (corteje) de
tip
{<A1:Val1>, <A2:Val2>, <A3:Val3>, , <An:Valn>}
astfel c valoarea Val1 a atributului A1 aparine domeniului D1 ( Val 1 D1 ) i
aa mai departe.
n cadrul modelului relaional nu intereseaz dect relaiile finite, ciar dac la
construirea relaiilor se admit domenii infinite. Numrul tuplurilor dintr-o relaie
reprezint cardinalul relaiei, n timp ce numrul de atribute definete gradul
relaiei.
36

n timp ce tuplurile dintr-o relaie trebuie s fie unice, un domeniu poate apare
de mai multe ori n produsul cartezian pe baza cruia este definit relaia.
Titlul relaiei este static, n timp ce corpul este dinamic. Orice modificare a
titlului duce la trecerea la o alt relaie (se modific schema relaiei), n tim ce
modificri n colecia tuplurilor maximum duce la modificarea cardinalului relaiei.
Numele i structura (schema) relaiei se asemeneaz cu definiia unei variabile
specifice variabila-relaie. Corpul relaiei (tabelului relaional) n acest context
este o valoare a variabilei-relaie.
Exemplu:
R1 = Salariatii(Numar_tabel, Nume_salariat, Numar_sector, Salariu),
R2 = Sportivi(Id, Name, Age, Weight, Speciality).
R1(Numar_tabel:char(5),, Salariu:S)
Aadar corpul sau extensia relaiei este o colecie de tupluri (corteje) care prezint o
submulime a produsului cartezian al domeniilor. Anume corpul este relaie n sensul ei
matematic (s ne amintim aici definiia relaiei de pe poziia teoriei mulimilor).

Din definiia relaiei vedem c fiecare atribut a relaiei conine date de acelai
tip, mai mult ca att fiecare tuplu (cortej) are aceia-i structur. Asta ne d
posibilitatea de a prezenta relaia ntr-o form tabelar:
Tabel 1.1. Forma tabelar a relaiei
Antetul
relaiei
Corpul
relaiei

<A1:D1>

<A1:Val1>

<A2:D2>

<A2:Val2>

<A3:D3>

<A3:Val3>

<An:Dn

<An:Valn>

Proprietile relaiilor. Aadar, relaiile sunt mulimi de nregistrri, care pot fi


reprezentate n form de tabele bidimensionale (Tab. 1.1). Din acest punct de
vedere n reprezentare practic trebuie s se in cont de diferena dintre relaii i
astfel de tabele:
Tuplurile n relaie sunt distincte, n timp ce n tabele pot exista linii
identice;
Tuplurile n relaie nu sunt ordonate (sortate) de sus n jos, n timp ce n
tebele liniile sunt plasate ntr-o ordine dat;
37

Atributele n relaie nu sunt ordonate (sortate de la dreapta la stnga), n


timp ce n tebele coloanele sunt plasate ntr-o ordine dat;
Valoarele atributelor sunt atomice, n timp ce n tabele la intersecia linilor
i coloanelor pot exista structuri de date (mulimi, tabele, etc.).
Aadar nu orice tabel reprezint o relaie. O relaie poate fi considerat ca clasa
de echivalen a tabelelor relaionale. Aceasta nseamn c perechea relaie tabel
relaionl este o pereche de tip variabil valoare (obiect exemlar de obiect?).
Relaia este un tip structurat de date variabil-relaie, iar tabelul relaional este o
valoare concret a acestui tip. Se poate conclude c punctul central n teoria lui
Codd este ntroducerea unui nou tip de date relaie.
Forma normal unu FN1
Conform modelului relaional de date a lui Codd unica structur de date este
format din relaii normalizate de gradul n. Exist mai multe nivele de aa numit
normalizare i respectiv forme normale a relaiilor reieind din forma relaiei i
interdependenele dintre atributele ei. Cea mai inferioar form normal este forma
normal unu FN1. Definiia formei nomale unu FN1 coincide de fapt cu
proprietile principale a relaiei:
Relaia se afl n forma normal FN1 dac i numai dac:
nu are corteje identice;
conine valori atomare (indivizibile). (valorile atributelor!)
Aceasta proprietate reies de fapt din definirea relaiei ca o mulime de corteje,
anume ca o submulime a produsului cartezian a domeniilor. Cu alte cuvinte
orice relaie se afl cel puin n forma normal unu FN1. Relaii care nu sa-r afla n
FN1 nu exist.
:

,
.
FN1 , .. .
.
Exemplu de tabel care nu prezint o relaie:
Nume

Sex

Adresa
Strada

Oras

Bloc

Se mai poate spune c relaia se afl n FN1 dac poate fi prezentat n forma unui tabel
relaional.?
38

Despre noiune de tipuri atomare (de analizat articolul lui Marin Fotache i de precizat lucrurile odat
i pentru totdeauna):
De nu uitat c o relaie este o mulime de corteje (acest lucru trebuie accentuat acolo unde se
abordeaz teoria mulimilor n genere, de comparat riguros concluziile teoriei mulimilor cu
concluzile teoriei lui Codd) iar un cortej este o concatenare a elementelor de mulime i, dat fiind
faptul c elementele mulimei sunt indivizibile dup definiie, valorile atributului trebuie s fie
indivizibile. Aceast proprietate este motenit de algebra relaional (n ce legtur este algebra
relaional cu teoria mulimelor?);
De ntemeiat linia de noiuni relaie tabel relaionl ca perechea obiect exemlar de obiect. De
tratat relaia ca tip structurat de date, iar tabelul relaional ca valoare concret a acestui tip de date
sau poate mai bine relaia este o clas de schivalen a tabelelor relaionale. Anume n legtur
cu tabele ralaionale se poate duce discuii despre FN1;
n teoria lui Codd nu se pornete de la teoria matematic a mulimelor ci de la structuri formale de
date (relaii n-are) cu accentuarea semanticei datelor. Deaceea i apar uneori discuii ndelungate
despre date atomare n FN1. i atunci trebuie de precizat c relaia reprezint un obiect din lumea
real (sau o clas de obiecte, avnd n vedere o colecie de exemplare a obiectului dat), iar
atributele relaiei sunt o colecie de caracteristici care unic (la nivel primit de detalizare)
evideniaz acest obiect dintre altele. Din punct de vedere a semanticii atributului, valorile lui
trebuie s fie complete i indivizibile. Atributul Adresa nu poate s aib numai indicaia strdei
(omul nu trete n strad). Aceasta nseamn c se poate vorbi de integritate i completitudine a
valoarelor atributului.

La ncheierea paragrafului vom formula definiia bazei de date relaional.


Baza de date relaional s numete o colecie de relaii logic interlegate ntre
ele.
Schema bazei de date relaional s numete colecia de titluri (scheme) a
relaiilor n legtur care constitue baza de date.
2.3. Obiectele de structur a modelului relaional. Tabele relaionale
Unicul element de structur n modelul relaional de date este relaie (relation din
engl.), mai precis o relaie n-ar normalizat. Fiecare relaie poate fi prezentat n
form de un tabel specific anume tabel format numai din linii i coloane simple,
care se mai numete i tabel plan sau bidimensional. Prin asta se nelege c la
intersecia coloanelor i liniilor nu mai exist alte structuri (subtabele, mulimi,
etc.) ci nemijlocit se gsesc datele. Respectiv, baza de date relaional este format
din colecii de tabele de acest tip.
Pentru a deosebi tabelele modelului relaional de orice alt form de tabele le vom
numi tabele relaionale. Fiecare linie din tabel relaional este o nregistrare de
aceeai structur. Prima nregistrare este antetul tabelului. Ea descrie structura
tabelului i se numete i nregistrare de structur. Restul nregistrrilor conin
datele propriu zise, reprezentate n conformitate cu nregistrarea de structur. Ele
sunt nregistrri de date. Totalitatea nregistrrilor de date constituie corpul
39

tabelului. Fiecare nregistrare de date conine informaii despre un exemplar de


entitate din lumea real (exemplar de obiect sau proces). Din acest punct de vedere
ea este unic n tabelul relaional. Antetul tabelului este static, deoarece se
modific rar. Dimpotriv, corpul tabeluli este dinamic. n procesul de actualizare al
datelor el se modific des.
Structura tabelului relaional
nregistrare de structur
Cmp 1
Cmp 2

Cmp M
nregistrare de date 1
Data
Data

Data
nregistrare de date 2
Data
Data

Data

nregistrare de date N
Data
Data

Data
Antetul tabelului ca o nregistrare de structur este determinat de schema relaiei
(?)dac privim tabelul ca o reprezentare a relaiei. De exemplu Furnizor(FurnId,
FurnNume, ). Datele sunt nregistrate n baza de date n strict coreasponden
cu structura definit n nregistrarea de structur. Datele nu se descriu, sensul lor
este predescris de structura tabelului (cum va fi forma vasului aa va fi i forma apei n
el ). La crearea unui tabel trebuie definit mai nti structura tabelului (antetul
tabelului reieind din schema relaiei), adica trebuie precizate cmpurile care l
compun mpreun cu caracteristicile lor. Prin descrierea fiecrui cmp al tabelului
este definit tipul de date care vor fi memorate n el. Descrierea se face prin tipul
datelor, dimensiunea lor i alte proprieti.
Tabelul relaional permite gruparea unor date nrudite i poate fi privit ca o colecie de
nregistrri. Prin descrierea fiecrui cmp al tabelului este definit tipul de date care vor fi
memorate n el. Descrierea se face prin tipul datelor, dimensiunea lor i alte proprieti. Ele
definesc implicit domeniul de definiie al datelor memorate n cmp. Dac domeniul datelor
este inclus n domeniul implicit de definiie, se pot defini condiii de validare a datelor care s
controleze corectitudinea datelor introduse sau modificate. De exemplu, datele dintr-un cmp
sunt numere ntregi cuprinse ntre 1.000 i 30.000. Se va alege tipul ntreg, ca domeniu implicit
al datelor, dar se vor preciza condiii de validare suplimentare care s oblige utilizatorul s
introduc n acest cmp numai date ntregi pozitive din domeniul 1.000 - 30.000.

Cum s-a spus, un tabel relaional reprezint o relaie. Noiunea strict de relaie va
fi dat mai trziu n acest curs cnd se va aborda teoria modelului relaional. Aici
numai vom preciza-o prin noiune de tabele echivalente. Mulimea tabelelor
relaionale obinut dintr-un tabel dat prin aplicarea totalitii operaiilor de
permutri ale liniilor i coloanelor (?) formeaz o mulime de tabele echivalente.
Oricare din acestea tabele reprezint una i aceeai relaie.
Din acest punct de vedere relaia poate fi tratat ca un specific tip de date (?), iar
fiecare tabel care o reprezint ca o valoare a acestui tip de date. Se mai vorbete
despre o variabil-relaie.
De adus aici diferena dintre tabele obinuite i tabele relaionale.
40

Acum putem stabili urmtoarea analogie terminologic ntre domeniul concret din
lumea real, un fiier de date, modelul relaional de date i o baz relaional de
date:
Domeniul din lumea real
entitate (obiect, proces)
set complet de
caracteristici (atribute) a
entitii
o caracteristic (atribut) a
entitii
valorile unui exemplar de
entitate

Modelul relaional
de date
relaie
schema relaiei

Baza relaional
de date
tabel relaional
(table)
antetul (schema)
tabelului relaional

atribut

cmp (field)

tuplu, cortej

nregistrare (record),
articol

Deoarece interfeele puse la dispoziie de sistemele de gestiune a bazelor de date


relaionale folosesc n general termenii de tabel (table), cmp (field) i
nregistrare (record), vom folosi n continuare aceti termeni pentru a defini
obiectele corespunztoare ale bazei de date.
Tipuri de tabele n baza de date
Cum s-a spus mai sus n modelul relaional datele sunt percepute (privite) de
utilizatori numai ca tabele i nici cum altfel. Tot coninutul informaional n baz
de date este reprezentat printr-un singur mod prin prezentarea direct a valorilor
datelor n tabele relaionale. Totodat tabelul relaional descrie i structura datelor
prin descrierea antetului su. n alte locuri structura datelor nu se descrie.
Aadar, o trstur deosebit a bazelor de date relaionale const n aceea c datele
n baza de date se stocheaz mpreun cu descrierea structurii lor.
n baz de date sunt cunoscute urmtoarele tipuri principale de tabele: tabele de
baz (fizice), tabele derivate din tabele de baz, reprezentri (View), cataloage.
Tebel de baz tabel independent de date care are nume i este fizic memorat n
memopria extern. n cazul tabelelor de baz att structura tabelelor ct i datele
din acestea sunt memorate pe disc. Ca de obicei conine date independente,
primare.
Tabel derivat este dependent de tabele de baz. Spre deosebire de tabel de baz,
tabelul derivat nu se memoreaz pe disc. El se definete n termenii altor tabele, n
fine n termenii tabelelor de baz. Este un tabel intermediar care apare n operaiile
41

cu tabele de baz (n expresii). Coninutul lor se calcul n momentul evalurii


expresiilor.
Tabele View viziuni sau vederi prezint o clas de tabele derivate care au
denumiri. Se numesc i tabele virtuale. Ca i tabelele derivate, viziunile nu se
memoreaz pe disc. Mai bine zis nu se memorizeaz datele din ele. Ele sunt
derivate din tabelele de baz, astfel nct pe disc este memorat doar structura
(descrierea) lor. De fapt, o vedere este o interogare memorat pe disc. Ca i orice
tabel de baz ea poate fi executat ori de cte ori fiind referit direct sau din cadrul
unei instruciuni. La nivel logic reprezint modul cum vede un utilizator, la un
moment dat, o baz de date. O viziune este de fapt o comand SELECT memorat
n dicionarul BD i apelat apoi de utilizator.
Catalog o mulime de tabele de sistem care conin descriptori al diferitor
elemente importante pentru sistem (tabelelor de baz, viziunilor, indecilor, etc.).
n fond, prezint descrierea datelor despre date metadate. Catalog sau Dicionar
de date (?)
2.4. Integritatea structural a modelului relaional
Integritatea structural este partea central a modelului relaional. ,
:
() , ,
;
.
(integritatea structural)
(, ),

. ,

.
,
. ,

- .
Integritatea structural a modelului relaional este asigurat prin impunerea unui
set de restricii (reguli, condiii) asupra valorilor datelor. Descriu legeturile ntre
date i integrarea lor ntr-o structur integr. Definirea i respectarea strict a
acestor restricii asigur integritatea, consistena i coerena datelor.

42

,
(integritate propriuzis), (corespundere
deplin consisten) (coeren)
.
(integritatea datelor)
. ..

.
(consistena datelor)

(, plenitudine, plintate, coninut
semantic deplin, suficient, plenitudinea coninutului semantic a datelor, plintatea
coninutului semantic).

, .
(coerena?) , ,

, ,
.
(consistena)
(coerena)
.
Pot fi evideniate (delimitate) dou categorii de restricii:
restricii de integritate structural. Sunt obligatoriu de definit pentru
susinerea consistenei datelor i integritii structurale a modelului de date.
Este partea indispensabil a modelului;
restricii specifice aplicaiei dat de baz de date. Aa numite restricii de
comportament. , 60,
..
n modelul relaional la restriciile de integritate structural se refer:
unicitatea cheii relaiei;
integritatea entitii;
integritatea referenial a datelor.
2.2.1. Identificare unic a nregistrrilor. Unicitatea cheii relaiei

43

, , ,

.
,
.
.
, .
Concluzie: ,
,
.
ntruct tuplurile unei relaii sunt unice, ele sunt distincte i trebuie s existe
posibilitatea identificrii unice a lor n cadrul unei relaii. Cum am putea distinge
(evidenia) cortejele? Este evident c exist unica posibilitate prin valorile
atributelor. n mod natural exist unica posibilitate de a gsi nregistrrile din
tabele prin valorile concrete a unor atribute. n realitate ns nu neaprat toate
atributele sunt necesare pentru identificarea unic a tuplurilor. Ca de obicei exist
un numr redus de atribute totalitatea valorilor crora este unic n relaie.
:

StName

StPhone

StAddress

{StName, StPhone} {StName, StAddress}.


StId
StId
StName StPhone
StAddress
: StId, {StName, StPhone} { StName, StAddress}.
Aadar, putem conclude c exist un set minim de atribute totalitatea valorilor
crora unic identfic nregistrrile tabelului relaional.
Acest ansamblu minim de artribute, numite i atribute cheie formeaz cheia
relaiei:
Cheia unei relaii de baz R reprezint un set minim de atribute,
totalitatea valorilor crora unic identfic cortejele din R.
Asta nseamn c cortejii sunt distinci unul de altul i poate fi definit un mecanism
(o modalitate) de identificare unic a lor. Drept o modalitate de distincie servesc
valorile cheii ??? Mecanismul de identificare unic este n acelai timp i
mecanism de referire (adresare) unic.
44

, ()
()
.
. ,
, .
.
,
.
. , (
)
() .
()
(),
() (.. ).

Cheia relaiei este un set minim neexcedent de atribute, totalitatea valorilor crora
este unic pentru relaia dat n orice stare a bazei de date.
:

StName

StPhone

StAddress

{StName, StPhone} {StName, StAddress}.


StId
StId
StName StPhone
StAddress
: StId, {StName, StPhone} { StName, StAddress}.
Aadar, cheia relaiei (cheia de identificare) este format dintr-un numr minim de
cmpuri definite astfel nct totalitatea valorilor lor este unic pentru fiecare
nregistrare din tabelul dat. Anume asta ne va permite identificarea unic a
nregistrrilor din tabel. Aadar, fiecare nregistrare va putea fi identificat n mod
unic prin valorile cheii astfel definit.
Proprietatea principal a cheii relaiei const n unicitatea valorilor ei. De aici
reies regula de unicitate a cheii relaiei:
Valorile cheii relaiei (tabelului relaional) sunt unice. Altfel, asta este restricia
de unicitate a cheii
Instrument unic pentru identificare i referire unic a cortejelor
, ( )

45

(). ,
.
()
,
. ,
, ,
(?).
(definiie strict a cheii relaiei)
Se numete cheia relaiei submulimea K de atribute a relaiei de baz R, care
posed urmtoarele proprieti:
1. proprietatea de unicitate R
K;
2. proprietatea de neexceden (de a nu fi redundant)
K .
,
().
( ) ,
.
( ).
Cheia relaiei poate fi simpl, dac const dintr-un singur atribut, sau compus,
dac const din mai multe atribute.
,
(n calitate de instrument
de identificare unic a cortejelor). (cheie
primar). Restul cheilor se numesc chei secindare sau alternative.

() . Reieind exclusiv din
semnificaia datelor.
Ca de obicei n orice SGBD ea se nimete cheia primar (Primary Key) i este
aleas din mulimea cheilor de identificare a relaiei pe baza anumitor criterii
(reieind din semnificaia datelor!). Ea i este folosit pentru a face legtura ntre
nregistrrile tabelului dat cu nregistrrile altor tabele ale bazei de date. Cheia
primar va fi folosit de sistemul de gestiune a bazelor de date pentru a identifica
unic nregistrrile n procesul de regsire a datelor.
Se recomand ca din mulimea cheilor de identificare s se aleag, pentru cheia
primar, cheia care este format din cele mai puine cmpuri. n practic pentru
simplicitate n calitate de cheie primar se folosesc artificial introduse cmpuri cu
46

valori garantat unice coduri de identitate. Acestea cmpuri formeaz aa numit


cheia surogat (?).
2.2.2. NULL.
NULL. NULL.
, ,
,
. () (0).
.
De adugat despre logica tripl: tabele binare tabele ternare (triple) de adevr
- tabele triple (ternare?) de adevr (valori true, false, unknown).
()

, ()
.
Cu alte cuvinte valorile cheei relaiei nu pot fi necunoscute, adica nu pot fi
nedefinite sau s fie valoari de tip NULL n orice stare a bazei de date.
De aici recurge regula de integritate a entitii:
Valorea cheii relaiei pentru orice cortej din relaie nu poate fi necunoscut, adica
nu poate fi nedefinit sau s fie valoare de tip NULL n orice stare a bazei de date.
2.3. Legturile dintre tabelele relaionale. Integritatea referenial
, (
). -.
furnizorii livreaz marf, copiii sunt copiii
colaboratorilor, conductorii conduc sectoarele.
:
furnizori marf. Legtura de tip mult la mult :;
Marfa
colaboratori copiii Furnizori
lor. Legtura de tip unu la mult 1:;
FurnizorNumeAdresaAlfa
MarfaNumeTipCalculator
Orient
conductori sectoare. Legtura de tip unu la
unu 1:1.
Televizor
( ). Acestea legturi nu sunt legturi de
egalitate, ci legturi de subordonare.
Furnizor Marfa
DataFurnizorNumeMarfaNumeCantitatePret
AlfaCalculatorOrientTelevizor
47

, (relations)

. :
() - (
);
(stri curente) (
).


.
,
. .
, ,

.
, :

;
, oe
- () .

Pentru a stabili legtur (asocierea) ntre dou relaii (tabele relaionale) trebuie:
Se avem n vedere c n legtur particip dou tabele. Legtura dintre ele nu
este una de egalitate, ci este o legtur de subordonare. Unul dintre dou
tabele n legtur este tabelul principal (sau tatl), iar altul este subordonat
(condus - copil). Deci, legtura trebue s fie de tip 1:.
S avem o modalitate de a stabili legturi unice dintre cortejele din dou
relaii (tabele). Cea mai simpl (i unica?) modalitate posibil este de a ne
referi din cortejele unui tabel la cortejele altui tabel. Aadar, legtura dintre
48

dou tabele apare cnd valorile unor atribute dintr-un tabel s refer la
valorile unor atribute din alt tabel. Acest lucru este posibil dac vom crea o
structur de referine. Pentru asta se ntroduce noiunea de migrare sau
propagare a cheii relaiei.
(
).
(mecanismul de migrare a cheilor);
S creem o structur de referine. Unica posibilitate de a crea referine
const n folosirea valorilor unice. Avem unicul instrument pentru distingere
i identificare unic a cortejelor. Unica distincie dintre dou corteje este
distincia dintre valorile unor atribute din aceste corteje. Aceast distincie
poate fi folosit n scopul identificrii unice a cortejelor. Setul de atribute cu
valori distincte n totalitate formeaz cheia relaiei, care i este folosit pentru
identificare i referire unic a cortejelor.
()
.
( );
S definim un set de restricii asupra datelor cu scopul asigurrii integritii
legturilor n orice stare a bazei de date.
===========================================================
Legturile dintre entitile lumii reale pot fi exprimate prin multitudenea propoziiilor de tip:
Furnizorul concret (I. Albu) livreaz marfa dat, sau marfa dat (televizorul) este livrat de
furnizorul dat (I. Albu);
Fiecare printe concret (Popa Ion) este printele copiilor (Mariei i Andrei), sau copiii
Maria i Andrei sunt copiii colaboratorului firmei Popa Ion;
Etc.
Putem deci spune c legtura dintre entitile Furnizori i Livrri nseamn existena unui set de
afirmaii de tip livreaz sau este livrat. Acestea legturi determin activiti (operaii) concrete
de bussiness. Deasemenea, legtura dintre entitile Colaboratori i Copii nseamn existena
setului de afirmaii de tip este printe/sunt copii. Acestea legturi determin starea actual dintre
exemplarele entitilor.
Aadar, legturile existente ntre entiti se determin prin descrierea multitudinii legturilor de
tip activitate sau stare dintre exemplarele entitilor. Adica, n forma descriptiv.
===========================================================
Din aceste exemple se vede c exist legturi elementare legturi dintre dou entiti. Fiecare
astfel de legtur se reduce la un set de legturi dintre exemplarele corespunztoare al acestor
entiti. Important s observm aici c:
Din dou entiti unite n legtur una este activ (este printe, livreaz), iar alta este
pasiv (sunt copii, este livrat);
Fiecare exemplar al entitii active este unic;

Fiecare exemplar al entitii active poate fi legat cu mai multe exemplare al entitii pasive;
Fiecare legtur concret dintre exemplarele entitilor este unic. Ea descrie o operaie

unic sau o stare unic. (? De verificat)


===========================================================
49

Stabilirea legturilor (relaiilor) dintre tabele. Mecanismul de propagare a


cheilor. Mecanismul de referire
Pentru a stabili o legtur ntre dou tabele rerlaionale se folosesc cmpuri cu
valori egale (identice). De exemplu, n tabelele Furnizori i Livrari vor fi cmpuri
comune cu valori egale ale numelor sau codurilor furnizorilor. Aceasta legtur va
prezenta informaie de tip cine a livrat marfa dat. n tabelele Colaboratori i
Copii, respectiv, vor fi cmpuri cu valori egale a numelor sau codurilor
colaboratorilor care vor reda legtura printe copil. Aadar, n cazul tabelelor
legtura dintre dou tabele nseamn un set de legturi dintre nregistrrile unui
tabel cu nregistrrile altui tabel.
Colaboratori
Cod
Nume
colaborator colaborator
...
...
C012
I. POPA
...
...
Copii
Cod copil Nume
copil
...
...
GR63
MARIA
...
...

...
...
...
...

Parinte ...
...
C012
...

...
...
...

50

Legtura dintre tabelele Colaboratori i Copii reprezint faptul c n tabelul Copii


sunt prezentai acei i numai acei copii care au ca prini persoanele din tabelul
Colaboratori. Deci, legtura are un caracter de restricie asupra unor valori i este
un element de structur a informaiei despre copiii colaboratorilor.
Unicitatea legturilor dat fiind faptul c exemplarele entitilor din lumea real sunt unice,
sunt unice i legturile ntre aceste exemplare.?? incorect

2. Stabilirea relaiilor ntre tabele. Relaiile care se vor stabili ntre fiecare
pereche de tabele sunt unidirecionale, adic ntre dou tabele nu se stabilete o
relaie de egalitate ci o relaie de subordonare: unul dintre tabele este tabelul
conductor, principal sau tabelul printe (tabelul de la care pornete legtura), iar
cellalt este tabelul condus, secundar sau tabelul copil (tabelul la care ajunge
legtura). Tabelul condus este subordonat tabelului conductor. Aceasta nseamn
c dac utilizatorul selecteaz o nregistrare n tabelul conductor, sistemul va
selecta automat nregistrarea de care este legat din tabelul condus.
Pentru a stabili legturi unice dintre nregistrrile a perechei de tabele care ntr n
legtur trebuie, cum s-a spus, s putem:
Identifica unic nregistrrile;
Stabili corespunderea unic dintre nregistrri.
Stabilirea corespunderei unice dintre nregistrrile care ntr n legtur
Stabilirea corespunderei dintre nregistrri i prin acesta a legturii dintre tabelele
bazei de date se realizeaz prin mecanismul de propagare a cheilor. Prin acest
mecanism n tabelul condus din legtur se creaz aa numit cheia extern
(Foreign Key). Cheia extern este format din cmpurile, care formeaz cheia
primar n tabelul conductor. Denumirile cmpurilor din cheia extern pot s
difere de denumirele respective din cheia primar, dar valorile lor sunt identice n
ambele tabele. Mecanismul de propagare a cheilor se realizeaz n modul
urmtor. n tabelul surs, tabelul de la care ncepe propagarea cheii (tabelul
conductor), se creaz cheia primar, iar n tabelul destinaie, tabelul pn la care
se propag cheia (tabel condus), se creaz cheia extern. Se spune c a avut loc
propagarea cheii din tabelul surs n tabelul destinaie. Acest mecanism permite
stabilirea legturii ntre o nregistrare din tabelul surs i o nregistrare din tabelul
destinaie. Se mai spune c valorile cheii externe s refer la valorile cheii primare.


, .
,
.
.

51

R1. (submulimea)
FK R1 (cheie extern), :
1. R2 ( )
K;
2. FK R1 K
R2
NULL.
R1 ()
, R2,
R2 ,
R1.
,
,
,
.
, ,
( NULL).

Employees
EmpId
EmpName
EmpPosition
EmpChief
...

Proprietile cheii externe:


cheia extern poate fi simpl sau compus;
cheia extern trebuie s fie determinat pe aceleai domenii ca i cheia
primar K;
cheia extern ca regul nu posed proprietatea de unicitate;
dac cheia extern totu-i posed proprietatea de unicitate, atunci asocierea
ntre relaii este de tip unu unu;
Corpul didactic
ProfId
ProfNume
ProfFunctie
ConducatorDirect

MI21
Condrea Mihai
profesor
MI35

MI35
Cepoi Grigore
ef catedr
MI70

MI70
Apostol Eugen
rector
NULL

Aadar, pentru a stabili legtura dintre dou tabele trebuie s:


Stabilim cheia primar n tabelul conductor (printe);
Definim prin mecanismul de propagare cheia extern n tabelul condus
(copil);
S impunem restricii asupra valorilor admisibile att pentru cheia primar,
ct i pentru cheia extern.
52

Legatura (asocierea) dintre dou tabele se stabilete prin valori care s refer i
valori referite. Valorile referite se gsesc n tabelul principal i trebuie s fie unice
sau de tip Primary Key sau de tip UNIQUE. Valorile care s refer se gsesc n
tabelul condus (dependent) n cimpurile cheii externe.
Dup definirea structurii bazei de date ncepe ncrcarea datelor n tabel. La nivelul tabelului
entitatea prelucrat este nregistrarea: se pot aduga nregistrri, se pot terge nregistrri, se pot
modifica nregistrri. Se poate modifica structura unui tabel chiar dup ce a fost ncrcat cu date.
Sistemul de gestiune a bazelor de date nu opereaz modificarea de structur direct n tabel, ci
execut urmtoarele operaii: creeaz noua structur de tabel (rezultat n urma modificrilor
cerute), ncarc n noul tabel datele din vechiul tabel i terge vechiul tabel. Toate aceste operaii
sunt executate automat de ctre sistem, fr intervenia utilizatorului i fr a fi vizibile pentru
utilizator.
Tabelele bazei de date pot fi organizate ntr-o structur arborescent (sau de reea) determinat de
relaia dintre tabele.
De obicei, modelul relaional cel mai des ntlnit este cel descris printr-un arbore cu o singur
rdcin, adic n baza de date exist un singur tabel conductor care reprezint rdcina
arborelui. Celelalte tabele sunt legate de tabelul conductor direct sau indirect (prin intermediul
altor tabele). ??? este o reea de tabele!!!

Schema general a unei baze de date relaionale este format din ansamblul
schemelor tabelelor i al legturilor dintre ele.
Regula (restricia) integritii refereniale
Legtura odat stabilit ntre dou tabele prin mecanismul de propagare a cheii
trebuie s fie permanent meninut. n orice moment trebuie s fie asigurat
determinare unic a legturii i corespunderea ei cu datele din lumea real.
Determinarea unic a legturii este asigurat de mecanismul de propagare a
valorilor cheiei primare (este rezultatul unicitii exemplarului entitii).
Corespunderea ei cu datele din lumea real se va asigura prin restricii specifice
cheii externe. Condiia care trebuie respectat pentru a putea fi asigurat
meninerea legturii n orice stare a bazei de date s numete condiia de
integritate referenial sau restricia de integritate referenial.
Este specific relaiilor dintre tabelele bazei de date. Ea nseamn o colecie de
reguli i restricii impuse tabelelor ntre care s-au stabilit relaii (sau, este un sistem
integru de referine i se cere meninerea integritii lui n orice stare a bazei de
date ). Astfel, a asigura integritatea referenial nseamn c atunci cnd se fac
modificri ale valorilor unor nregistrri dintr-un tabel din legtur s nu fie
afectat relaia dintre tabelele legturii. Aceast problem apare n cazul
cmpurilor care fac parte dintr-o cheie primar sau extern. Ele trebuie s respecte
condiia de integritate referenial.

53

Condiia de integritate referenial impune ca oricare valoare a cheiei externe s


fie inclus n mulimea valorilor cheii primare din care s-a propagat, sau s fie de
tip NULL. Poate altfel? Prin noiune de referine?
De adugat despre legturi de tip PK FK i UNIQUE FK.
2.2.4. Operaii care pot nclca (afecta) integritatea referenial
Integritatea referenial poate fi nclcat n urma ndeplinirii operaiilor care
modific starea bazei de date. Astfel de operaii sunt trei: nserarea (INSERT),
modificarea (UPDATE) i tergerea (DELETE) datelor. Acestea operaii pot
modifica valorile cheilor primar i extern. Dat fiind faptul c n formularea
regulei de integritate referenial fac parte dou relaii relaia referit i relaia
care s refer i n ambele sunt posibile toate trei operaii avem s analizm ase
variante.
C

Pentru relaia referit (relaia printe):


nserarea tuplului. Nu poate provoca (duce la)
nclcare.
Modificarea tuplului. Poate provoca nclcare.
tergerea tuplului. Poate provoca nclcare.

A
A
B
C

C
D
1

Pentru relaia care s refer (relaia copil):


nserarea tuplului. Poate provoca nclcare.
Modificarea tuplului. Poate provoca nclcare.
tergerea tuplului. Nu poate provoca nclcare.
(? a duce la nclcare)

B
E

ntr-un careva mod nserarea tuplului n relaia printe este echivalent (sau invers) cu tergerea
din relaia copil a tuplului care se refer la tuplul nserat. n ambele cazuri apar valori de cheie
primar nereferite.

Aadar n principiu integritatea referenial poate fi nclcat n rezultatul


ndeplinirii acelor operaii care pot afecta valorile cheilor primar i extern.
Acestea operaii sunt urmtoarele patru:
Modificarea tuplului n relaia printe;
tergerea tuplului n relaia printe;
nserarea tuplului n relaia copil;
Modificarea tuplului n relaia copil.
Strategiile de meninere (susinere) a integritii refereniale
Pentru a evita la nivel practic posibilele nclcri a integritii refereniale e necesar
s stabilim careva convenii despre msurile care pot fi intreprinse i care ulterior
54

pot fi realizate sau susinute de SGBD. Cu alte cuvinte, trebuie s elaborm i s


utilizm careva reguli de comportare atunci cnd se modific datele din
nregistrri. Conveniile se refer la un set de restricii care trebuie (pot fi) aplicate
pentru a menine integritatea referenial n mod automat. Cu alte cuvinte, pentru
meninerea integritii refereniale trebuie s aplicm anumite strategii susinute
de SGBD.
Exist dou strategii principale care pot fi impuse la modificarea strii bazei de
date:
RESTRICT (A RESTRICIONA) a nu permite exercitarea operaiilor care
duc la nclcrea integritii refereniale;
CASCADE (A EXERCITA N CASCAD) a permite exercitarea operaiilor
necesare dar concometent cu asta a ntroduce n cascad (n lan) n toate
relaiile subordonate n conexiune corectri corespunztoare pentru a menine
integritatea referenial.
Acestea strategii sunt standarde i sunt susinute de toate SGBD-urile n care este
prezent susinerea integritii referenial.Exist i strategii adiionale:
SET NULL (A SETA VALOAREA NULL) a seta valorea NULL n relaiile
subordonate.
SET DEFAULT (A SETA PRIN IMPLICIT) a seta o valoare primit prin
implicit n relaiile subordonate.
IGNORE (A IGNORA) - a permite exercitarea operaiilor necesare, ne innd
cont de nclcarea integritii refereniale. De fapt, aceasta convenie nseamn
c nu se aplic nici o strategie. Este lucru care rmne la discreia utilizatorului.
Aplicarea strategiilor
Vom analiza aici cum pot fi aplicate n practic strategiile descrise mai sus. Pentru
a ne simplifica aceast analiz vom considera o conexiune de tip unu la mai
multe

C
A
C

B
C

D
C

D
E
...

E
D
B
E
...

n dependen de operaiile de modificare sunt posibile enumerate mai jos strategii.


55

n tabelul principal:
Modificarea (operaia UPDATE) unei nregistrri. Poate s afecteze integritatea
referenial numai n cazul n care exist chei externe valorile crora s refer la
valorile cheii primare care se modific. Deci, dac este referire ea trebuie
meninut n orice stare a bazei de date. n acest caz se pot aplica dou strategii:
RESTRICT modificarea restricionat. Nu s accept modificarea unui cmp
dac el este cheie primar i exist cel puin o cheie extern propagat din
aceast chei care are aceeai valoare cu cheia primar pe care dorim s-o
modificm;
CASCADE modificarea n cascad. Modificarea cheii primare va avea ca
efect modificarea tuturor cheilor externe propagate din aceasta n toate tabelele
care au aceeai valoare cu cheia primar care s modific.
tergerea (operaia DELETE) unei nregistrri. Amintim aici c cu operatorul
DELETE se terg nregistrri n ntregime, dar nu valori din cmpuri. Operaia
poate afecta integritatea referenial numai n cazul n care exist chei externe care
au aceeai valoare cu valoarea cheii primare din nregistrarea care se dorete a fi
tears. n acest caz iari se pot aplica dou strategii de baz:
RESTRICT tergerea restricionat. Nu se accept tergerea nregistrrii
dac exist cel puin o cheie extern, propagat din cheia primar care are
aceeai valoare cu cheia primar din nregistrarea pe care dorim s-o tergem;
CASCADE tergerea n cascad. tergerea nregistrrii va avea ca efect
tergerea din toate tabelele a nregistrrilor care conin chei externe propagate
din cheia primar i care au aceeai valoare cu cheia primar din nregistrarea
tears.
n tabelul condus:
Operaia de adugare (nserare) a unei nregistrri trebuie s se fac numai dac
valorile din cmpurile cheii externe se vor gsi n mulimea valorilor cheii primare
din care s-au propagat. Sau s fie de tip NULL.
Operaia de modificare a valorii unui cmp dintr-o nregistrare trebuie s aib n
vedere faptul c dac acest cmp este un cmp al cheii externe, valoarea sa
modificat trebuie s se gseasc n mulimea valorilor cheii primare din care s-a
propagat. Sau s fie de tip NULL.
Aici de dat i analizat un exemplu mai extins cu schema OralulLectiii
Examinare cu relaii comune Obiecte, Profesori.
Majoritatea SGBD-urilor relaionale susin parial strategiile descrise mai sus. n
MS SQL Server strategiile se indic ca proprieti ale cmpurilor la descrierea
structurii tabelelor prin urmtorele fragmente din SQL:
ON UPDATE CASCADE, ON DELETE CASCADE, IGNORE, etc.
n MS Access strategiile se indic ca proprieti ale legturilor dintre tabele.
56

.
n Enterprise Manager al Microsoft SQL Server 2000 strategiile se introduc prin
bifarea cmpurilor respective n csua de dialog Properties of relationships:
Check existing data on creation
Enforce relationship for replication
Enforce relationship for INSERTs and UPDATEs strategia RESTRICT (se
nterzice inserarea i modificarea datelor care duc la nclcarea integritii
referenciale)
Cascade Update Related fields strategia CASCADE (la modificarea cheii
primare automat se modific n cascad i cheia extern n relaia copil)
Cascade Delete Related Records strategia CASCADE (la tergerea
nregistrrii cu cheia primar automat se terge n cascad i nrgistrarea cu
cheia extern n relaia copil)

2.5. Operatorii modelului relaional


Cum am vzut mai sus pentru modelulu relaional se ndeplinesc cel puin dou
condiii:
1. Datele se percep de utilizator ca tabele i nici cum altfel;
2. Utilizatorii au la dispoziie un set de operatori relaionali pentru operaii cu
structura datelor i cu datele nsui n tabele.
Aadar, sistemele relaionale privesc baza de date ca o colecie de tabele i prezint
un set de operatori pentru gestionarea datelor n tabele.

.
. SQL
.
.

(operaiilor relaionale de baz),
.
,
.
.
Operaiile de baz sunt urmtoare:

SELECT operaia de selecie. Este menit pentru regsirea din tabel a


mulimilor de nregistrri care satisfac careva condiie (selecia dup
orizontal);
57

PROJECT operaia de proiecie. Menit pentru extragerea necondiionat


din tabel a submulimei dat de coloane (selecia pe vertical);

JOIN operaia de uniune (reuniune?). Este menit pentru unirea


(jonciunea) a dou tabele. n cel mai des caz pe baza valorilor identice n
coloane comune.
Vom caracteriza n continuare cele mai importante proprieti ale operaiilor
relaionale.
1. Proprietatea de nchidere (c ). Aplicarea operaiilor
relaionale asupra tabelelor genereaz iari tabele.
, ,
, , . ,
- ,
. Asta nseamn c pot fi folosite expresii

complexe nglobate, rezultatele intermediare a crora nu se vor pstra pe disc.


, , .. ,
, .

(tabel total materializat), ..
. Cauza este clar s nu pierdem eficiena de

prelucrare.
2. Proprietate de multiplicitate (c ). Operaiile
relaionale se aplic odat asupra totalitii ntreag de nregistrri ci nu
asupra unor nregistrri n parte. Asta nseamn c ct operanzii, att i
rezultatele se consider drept tabele ntregi care conin mulimi de nregistrri.

.

3. Proprietatea de navigare automat (c ).


(la nivel de
mulime), , SQL,
. n operaiile relaionale utilizatorul numai indic ce trebuie

de fcut i nu cum trebuie de fcut. De a da exemple.



, ,
.
(sisteme cu navigare automat).
4. Proprietatea de optimizare (c ). ,
SQL, ,
, , .
. Navigarea automat trebuie s se

indeplineasc n mod optimal. De asta rspunde un component foarte


importatnt al SGBD optimizatorul interogrilor. Optimizatorul determin
cum se va realiza interogarea ntr-un mod optimal atunci cnd utilizatorul
indic numai ce trebuie de fcut i nu cum.

58

Sisteme relaionale concluzii la capitol


.
,
. , , ,
.
. ,
(
),
.

Sistemele relaionale se bazeaz pe urmtorii principii:

Utilizatorii vd datele numai n form de tabele;

Exist un set de restricii (reguli) impuse asupra valorilor de date pentru a


asigura integritatea de structur a datelor i consistena lor ;

Utilizatorii au la dispoziie operatori pentru a gestiona datele.


Aadar, pentru sistemele relaionale este specific:
,
.
,
.

, , ,
, ..
.
-:
,
, ,
. , ,
, ;

( ?) ,
: .

; Prezentarea datelor
prin ntroducerea valorile lor direct n sistemele BD relaionale
( ). ,


.
59


, .

.
,
.

.
,
.
.

:
Codd E.F. A Relational Model of Data for Large Shared Data Banks //CACM.
1970. 13, Nr. 6.

:
1.
? .
.
.
2.
. : ,
.
(???).
3.
.
4. .
Avantajele modelului relaional
Succesul modelului relaional se explic prin trei momente:
Simplicitate i percepere intuitiv a structurii (utilizarea tabelelor relaionale);
Existena metodelor simple i totodat eficiente de accesare a datelor
(Indexarea datelor, indexarea tabelelor. Indexarea permite utilizarea
structurilor de memorie de la nivelul fizic);
i, n sfrit, modelul are o fundamentare strict matematic teoria
mulimilor. Se poate spus c teoria mulimilor este o teorie matematic a
relaiilor.
Ca rezultat, metoda relaional are avantage evidente:
60

Predictibilitatea rezultatelor de prelucrare a datelor. n baza modelului


relaional se afl modelul matematic, de aceea orice interogare fa de baza de
date genereaz un rezultat unic, independent de organizarea fizic a datelor;
Simlicitatea descrierii datelor. Domeniul concret din lumea real n mod
natural se descrie n termenii de tabele;
Eficiena prelucrrii datelor.
Simplicitatea modelului
Se datorete faptului c modelul se bazeaz pe cel mai simplu obiect de structur
tabel relaional.
Indexare tabelelor
aici de explicat mecanismele de indexare
Dezavantajele (problemele critice) modelului
Rigiditatea modelului;
Viteza joas de regsir a datelor.

61

BAZELE TEORETICE A SISTEMELOR DE


BAZE DE DATE RELAIONALE
(ASPECTE TEORETICE A MODELULUI RELAIONAL?)
3.1. Bazele matematice a modelului relaional
Cum s-a menionat mai sus succesul modelului relaional se explic prin trei
momente:
Simplicitate i percepere intuitiv a structurii. (se utilizeaz tabele relaionale
simple);
Existena metodelor simple i totodat eficiente de accesare a datelor
(Indexarea datelor, indexarea tabelelor. Indexarea permite utilizarea
structurilor de memorie de la nivelul fizic);
i, n sfrit, modelul are o fundamentare strict matematic teoria
mulimilor. Se poate spus c teoria mulimilor este o teorie matematic a
relaiilor.
Ca rezultat, metoda relaional are avantage evidente:
Predictibilitatea rezultatelor de prelucrare a datelor. n baza modelului
relaional se afl modelul matematic, de aceea orice interogare fa de baza de
date genereaz un rezultat unic, independent de organizarea fizic a datelor;
Simlicitatea descrierii datelor. Domeniul concret din lumea real n mod
natural se descrie n termenii de tabele;
Eficiena prelucrrii datelor.
3.1.1. Elemente ale teoriei mulimilor
,
, . (n mod deosebit)
.
,
SQL.
.
Prin mulime se nelege o colecie nestructurat de obiecte numite elemente. Este
o totalitate de elemente izolate, ntre care nu exist careva interlegturi. Ea nu are o
structur intrinsec. Mulimea este ce mai simpl organizare a datelor, folosit n
matematic.
Noiunea de mulime, ca orice noiune primar, nu se definete ca alte noiuni ci se
caracterizeaz numind individual elementele sau specificnd o proprietate pe care

o au elementele sale i nu o au alte obiecte (mulimea numerilor de tip bait,


mulimea numerilor naturale, etc.). Din acest punct de vedere ea este o noiune
descriptiv.
, , .
(caracter descriptiv ,
).

Mulimea poate fi prezentat ca o totalitate nestructurat de elemente de oricare


natur care:
Se difer unul de altul sunt distincte sau unice. Din asta rezult c n
mulime nu pot fi elemente necunoscute, neprecizate (problema valorilor de
tip NULL);
Posed o proprietate comun. Aceasta proprietate reies din coninutul
semantic a elementelor. Anume de aceea elementele mulimii sunt indivizibili
sau atomici.
Spre exemplu, consuderm o mulime de adrese a studenilor. Fie proprietatea
comun const n aceea c adresa conine oraul, strada i numarul cldirii.
Elementele mulimii nu pot fi divizate n pri constituiente dat fiind c asta duce la
pierderea proprietii comun.

, , dou
reguli:
Regula de apartenen (incluziune?). ,
,
.
, ,
true,
, false, . Predicatul reflect
proprietatea comun a elementelor mulimii;
Regula de difereniere (deosebire, distingere). ,
. ,
, ..
.
,
( )
:
. (Unicitate sau difereniere);
; (indivizibilitate, atomicitate).

63

.
() :
A {a, b, c,...} . x A ,
:
x A.

(cardinalul
mulimii). B
A , , B
A (B este inclus n A):

B A.
B A , ..
B A ( ). B A
(submulime proprie),

B A AND B A .
Dou mulimi sunt egale, A = B, dac i numai dac conin aceleai elemente: A
B i B A. Nu import ordinea elementelor n fiecare mulime.
3.1.2. Operaii asupra mulimilor
,
.

(obiecte mai complexe i consistente) .
reuniune, intersecie,
diferen, i produsul cartezian.
Definiie 1. Reuniunea (suma logic) a dou mulimi A i B este o mulime nou
A B (sau A B ) format din toate elementele distincte, care se conin sau n A
sau n B, sau i n A i n B
A B x x A OR x B .

2. Intersecia ( , , produsul
logic) a dou mulimi A i B este o mulime nou A B (sau A B ) format din
toate elementele, A B
A B x x A AND x B .

64

Dou mulimi se numesc disjuncte dac AB = .


3. A B
A \ B , A B.

A \ B x x A AND x B .
: A={a,b,c,d,e}, B={c,d,e,g,h,f}, A \ B={a,b}.
Dac B A atunci A \ B se numete complementara lui B n raport cu A.
, ,
(), (complementul) A

A \ A.
, .
=

N Z\N.
1.

No
1
2
3

Notation
N
Z
Q

4
5

Description
( n 0,1,2,... ) numere naturale
numere ntregi
numere raionale.
(raport dintre numere ntregi)
numere reale
numere complexe

(
( ),
.?)

3.1.3. Produsul cartezian a mulimilor. Definirea matematic a relaiei


Produsul cartezian a mulimilor prezint o modalitate de a construi obiecte noi din
cele existente.
A B . Expresia de tip (a, b) , unde a A i b B , se
numete pereche ordonat. ,
65

a A

b B . Totalitatea (mulimea total) a perechelor (a,b) constituie


() produsul cartezian a mulimilor A i B. Se noteaz astfel:
A B a, b a A AND b B .

(egalitatea de tip) a, b c, d , a c b d . n
cazul general putem considera o nirare ordonat n-ar binar, ternar, (a1,
a2, , an) din elementele a1 A1 ,..., a n An . acestea nirri ordonate se numesc
tupluri sau cortege.
.
n.
Definiia 4. Produsul cartezian a mulimilor A1 , A2 ,..., An se numete mulimea
nirrilor ordonate n-are (tuplurilor, cortejelor) de tip
A1 A2 ... An a1 , a 2 , ... a n a i Ai , i 1, 2, ... , n

Definiia 5. Gradul produsului cartezian A1 A2 ... An se numete numrul n a


mulimilor care ntr n acest produs cartezian.
Observaie. Ai ,
A n A A ... A.

Definiia 6. Se numete relaie de gradul n (relaie n-ar) submulimea R a


produsului cartezian a mulimilor A1 A2 ... An , anume R A1 A2 ... An . De
exemplu R A B este o relaie binar, R ABC o relaie ternar, etc (aritatea
relaiei?).
Definiia 7. Se numete cardinalul relaiei R cardinalul mulimei de corteje
a1 , a2 ,..., an , care se conin n relaia R.
. (Remarc)
(numai ce am dat o definiie matematic a relaiei). ,
.

. ,
( ?). "
", ,
relation, . (
!)
..
1, , ,
66

1.

,
, " 1"
"" .
,
1. (dou
momente cheie):
-, corteje de
acelai tip. Asta ne permite s le considerm ca analojii ale linilor n tabele simple,
anume n tabele care
, .. ,

. , ,
{(1, "Albu", 1000), (2, "Condrea ", 2000), (3, "Moraru",
3000)} ,
. ,
:
1
2
3

Albu
Condrea
Moraru

1000
2000
3000

.
-. (dac excludim cazul extrem),
A1 A2 ... An ,

: R A1 A2 ... An . ,
, ,
, - . , ,
sensul () .
, (n
corespundere) P x1 , x 2 ,...x n , n
(n- un predicat n-poziional sau n-propoziional?)
, a1 , a 2 ,..., a n R .
R .
, a1 , a 2 ,..., a n R ,
P a1 , a 2 ,..., a n "":
R, dac i numai dac P a1 , a2 ,..., an true,
R, dac i numai dac P a1 , a2 ,..., an false.

a1 , a2 ,..., an

, n- n-
. ,
67

n- n- .
:
R A1 A2 ... An ;

R a1 , a 2 ,...a n a1 A1 , a2 A2 ,..., an An AND P a1 , a2 ,...an true .

, ,
. , R
R x1 , x 2 ,..., x n .

68

5. Algebra relaional i calculul relaional


Partea a treia din modelul lui Codd sau partea de manipulare a datelor relaionale
stipuleaz doua modaliti echivalente de acces la date:
Algebra relaional;
Calculul relaional.
n realizrile concrete nu sunt utilizate ntocmai nici una nici alta. Drept standard
de facto a devenit limbajul SQL pentru care algebra relaional este o baz
teoretic.
5.1. Algebra relaional
Algebra relaional const dintr-un un set de operatori care realizez operaii pe
relaii. Cu alte cuvinte, relaiile sunt operanzii acestori operatori care se numesc i
operatori relaionali. Toate proprietile studiate mai sus referitor la operaiile
relaionale se refer la operatorii relaionali ntocmai. Cea mai important este
proprietatea nchidere, care const n aceea c rezultatul aciunii operatorului
relaional asupra oricrei relaie este iari o relaie:
R f ( R1 , R2 , ..., Rn ) .

Din acest punct de vedere se spune c algebra relaional este compact (nchis).
Acest lucru ne permite s construim expresii ncorporate din operatori relaionali i
relaii:
R f ( f 1 ( R11 , R12 , ...), f 2 ( R21 , R22 , ...), ...) .

De calcularea astfel de expresii este preocupat calculul relaional.


Conform teoriei lui Codd este primit ca operatorii algebrei relaionale s se mpart
n dou grupe:
Operatorii teoriei mulimilor. Operatorii de:
1.
reuniune;
2.
intersecie;
3.
diferen;
4.
produsul cartezian.
Operatorii speciali. Operatorii de:
5.
selecie;
6.
proiecie;
7.
jonciune;
8.
diviziune.
Aceti operatori ne permit crearea noilor relaii din una sau mai multe relaii
iniiale. Pentru unii operatori binari relaiile trebuie s fie compatibile dup tip.

69

Relaii compatibile dup tip. Definiie:


Von numi dou relaii compatibile dup tip dac ele au acelai titlu (sau aceeai
schem), i anume,
au acelai set de atribute cu denumiri identice;
atributele cu acelai nume sunt definite pe aceleai domenii.
Operator de redenumire:
R RENAME Atr1 , Atr2 , ... AS NewAtr1 , NewAtr1 , ...

5.2. Operatorii teoriei mulimilor


Reuniunea
Reprezint o operaie definit pe dou relaii R1 i R2 compatibile dup tip i
este o relaie nou cu acelai titlu (aceeai schem) i corpul (sau extensia) care
conine tupluri ct din R1 , att i din R2 .
S noteaz prin

R1 R2

sau R1 UNION R2 .

Aadar:
R1 R2 R1 UNION R2 =

Exemplu:
R1

NumarTabel
1
2
3

Nume
Albu
Ceban
Vitiu

Salariu
1000
2000
3000
R2

NumarTabel
1
2
4

Nume
Albu
Proca
Vitiu

Salariu
1000
2500
3000
R1 UNION R2

NumarTabel
1
2
3
2
4

Nume
Albu
Ceban
Vitiu
Proca
Vitiu

Salariu
1000
2000
3000
2500
3000
70

n reuniunea relaiilor tuplurile identice din ambele relaii ntr numai o singur
dat. Cum observm la efectuarea operaiei de reuniune proprietatea de cheie
potenial nu este motenit. Cauza este c proprietatea de cheie potenial nu
poate fi dedus de undeva, ea explicit se inpune reieind din semnificaia
(semantica) datelor, pe cnd operatorii algebrei relaionale acioneaz ntr-un mod
formal identic n toate cazurile, independent de semnificaia datelor. Operatorii
relaionali opereaz formal logic i nu tiu de semnificaia datelor.
Intersecie
Reprezint o operaie definit pe dou relaii R1 i R2 compatibile dup tip i este
o relaie nou cu acelai titlu (schema) i corpul (extensia) care conine tupluri
aparinnd concomitent relaiei R1 i relaiei R2 .
S noteaz prin

R1 R2

sau R1 INTERSECT R2 .

Aadar:
R1 R2 R1 INTERSECT R2 =

Exemplu:
R1 INTERSECT R2

NumarTabel
1

Nume

Salariu
1000

Albu

Diferena
Diferena reprezint o operaie definit pe dou relaii R1 i R2 compatibile
dup tip i este o relaie nou cu acelai titlu (schema) i corpul (extensia) care
conine tupluri aparinnd relaiei R1 , i nu aparinnd relaiei R2 .
S noteaz prin

R1 \ R2

sau

R1 MINUS R2 .

Exemplu:
R1 MINUS R2

NumarTabel
2
3

Nume
Ceban
Vitiu

Salariu
2000
3000

Produsul cartezian
71

Produsul cartezian a relaiilor R1 ( A1 , A2 , ..., An ) i R2 ( B1 , B2 , ..., Bm ) este o relaie


nou R , a crei titlu (schema) se obine prin concatenarea schemelor relaiilor R1
i R2
R ( A1 , A2 , ..., An , B1 , B2 , ..., Bm )

i a crei corpul (extensie) cuprinde toate combinaiile tuplurilor din R1 cu cele


din R2
( a1 , a 2 , ..., a n , b1 , b2 , ..., bm ) .

S noteaz prin

R1 R2

sau R1 TIMES R2 .

Exemplu:
R1 TIMES R2

NumarTabel1
1
1
1
2
2
2
3
3
3

Nume1
Albu
Albu
Albu
Ceban
Ceban
Ceban
Vitiu
Vitiu
Vitiu

Salariu1
1000
1000
1000
2000
2000
2000
3000
3000
3000

NumarTabel2
1
2
4
1
2
4
1
2
4

Nume2
Albu
Negru
Vitiu
Albu
Negru
Vitiu
Albu
Negru
Vitiu

Salariu2
1000
2500
3000
1000
2500
3000
1000
2500
3000

Cardinalul R1 TIMES R2 este egal cu produsul cardinalelor relaiilor R1 i R2 , iar


gradul este egal cu suma gradelor lor n m .
Produsul cartezian prezint puin interes de sine stttor fiind c nu reprezint
informaie nou. El se folosete atunci cnd din relaiile date se construiesc noi
relaii prin operatori relaionali speciali.
5.3. Operatorii speciali
Selecia
Operaia de selecie asupra relaiei R reprezint o relaie nou, a crei schema este
identic cu cea a relaiei R i a crei extensia este constituit din acele tupluri din
R care satisfac o anumit condiie indicat explicit n cadrul operaiei.
Sintaxa operaiei de selecie:
R WHERE c

- selecie condiionat (selecie cu condiie general);


72

caz particular de selecie cu condiie, aa numit -selecie


unde X i Y sunt atributele R.
R WHERE XY

Condiia c este o expresie logic format n general din denumiri de atribute,


constante, operatori binari (buliene) AND, OR, NOT i operatori de comparaie
, , , , , . Operaiile binare de baz sunt i (AND), sau (OR) i negaie
(NOT). Dintre acestea, primele dou sunt operaii binare iar a treia este o operaie
unar.
Condiia XY este o expresie logic care leag valori de atribute prin operatori de
comparaie de tip , , , , , i a.m.d.
Exemplu:
R1 WHERE Salary 2000 .

Exemplu cu -selecie

Selecia nseamn efectuarea de tieturi orizontale asupra relaiei R .


Selecia este principal i unic operaie de selectare condiionat a cortejelor.
Proiecia
Proiecia relaiei R pe atributele A1 , A2 , ..., Am reprezint o relaie nou, a crei
schema este construit din atributele A1 , A2 , ..., Am i a crei extensia const din
tuplurile ( a1 , a 2 , ..., a m ) , astfel c a1 A1 , a2 A2 , ..., am Am .
Sintaxa operaiei de proiecie:
R [ A1 , A2 , ..., Am ] .

Exemplu:

R1 LName, Salary .

Remarc: n relaia de proiecie se elimin dublri de corteje.


Proiecia nseamn efectuarea de tieturi verticale asupra relaiei R . Prin operaia
de proiecie se trece de la o relaie de gradul n la o relaie de gradul m , mai mic (
m n ). Cu alte cuvinte se trece de la un spaiu cu n dimensiuni la un spaiu cu un
numr mai mic de dimensiuni m , ceia ce i nseamn proiecie. Relaia n-ar este
proiectat pe relaia m-ar, unde m < n.
Proiecia este principal i unic operaie de extragere (necondiionat!) a
anumitor atribute din relaie.
73

Jonciunea (joinul unirea relaiilor)


Jonciunea relaiilor R1 i R2 cu condiia c este o relaie nou de tip
( R1 TIMES R2 ) WHERE c .
Aici:
( R1 TIMES R2 ) produsul cartezian,
WHERE c operaia de selecie.
Expresia c este o expresie logic. Aadar jonciunea este rezultatul efecturii
consecutive a dou operaii produsului cartezian i a seleciei.
n funcie de tipul de condiie logic c din cadrul operaiei de jonciune exist mai
multe tipuri de jonciune:
operaie general de jonciune (jonciune general). Sintaxa operatorului
( R1 TIMES R2 ) WHERE c ;
-jonciune. Sintaxa operaiei ( R1 TIMES R2 ) WHERE XY , sau n form
prescurtat R1 [ XY ]R2 , unde atributele X R1 , Y R2 ;
equijonciune (equijoinul). Equijoinul este cazul particular a -jonciunei
R1 [ X Y ]R2 ;
jonciune natural (joinul natural). Joinul natural este att de important c are o
sintax proprie deosebit R1 JOIN R2 .
Exemple:
-jonciune
Fie o companie careva are nevoie de a stoca informaia despre furnizori i piese
livrate. Fiecare furnizor i fiecare pies se caracterizeaz printr-un careva propriu
merit sau grad de calitate care poate fi evaluat cu un criteriu numeric. Fie
activitatea companiei este organizat astfel c fiecare furnizor nu are drept s
livrez piese cu gradul de calitate mai mare dect propriul su grad (merit). Avem
relaiile:
Furnizori

R1

FNUM
1
2
3

FNAME
Albu
Ceban
Vitiu

FMARK
4
1
2
R2

PNUM
1
2
3

PNAME
Ciocan
Clete
urubelni

Piese

PMARK
3
2
1

74

Rspunsul la ntrebarea Care piese are drept s livreze fiecare furnizor? va fi


-jonciune R1 [ FMARK PMARK ] R2 :
R1 [ FMARK PMARK ] R2

FNUM
1
1
1
2
3
3

FNAME
Albu
Albu
Albu
Ceban
Vitiu
Vitiu

FMARK
4
4
4
1
2
2

PNUM

PNAME
ciocan
clete
urubelni
urubelni
clete
urubelni

1
2
3
3
2
3

PMARK
3
2
1
1
2
1

Equijoinul
Fie avem relaii F, P, L Furnizori, Piese, Livrari corespunztor:
F Furnizori

FNUM
1
2
3

P Piese

FNAME
Albu
Ceban
Vitiu

PNUM
1
2
3

PNAME
ciocan
clete
urubelnia
L Livrari

FNUM
1
1
1
2
2
3

PNUM
1
2
3
1
2
1

VOLUME
100
200
300
150
250
1000

Rspunsul la ntrebarea Care piese i n ce volum sunt livrate de fiecare


furnizor? va da equijoinul F [ FNUM FNUM ] L
F [ FNUM 1 FNUM 2] L

FNUM1
1
1
1
2
2

FNAME
Albu
Albu
Albu
Ceban
Ceban

FNUM2
1
1
1
2
2

PNUM
1
2
3
1
2

VOLUME
100
200
300
150
250
75

Vitiu

1000

(de continuat analiza cu R[PNUM=PNUM]P, R = F [ FNUM 1 FNUM 2] L )

Equijoinul are drept neajunsuri dublri de atribute care trebuie s fie nc i


redenumite n prealabil. De acest neajuns este lipsit joinul natural.
Joinul natural. Este att de important c are definiie i sintax proprii
R1 JOIN R2 :
Fie

R1 ( A1 , A2 , ..., An , X 1 , X 2 , ..., X p )
relaiile
i
R2 ( X 1 , X 2 , ..., X p , B1 , B2 , ..., Bm ) cu atributele X 1 , X 2 , ..., X p identice. Atunci joinul
natural a relaiilor R1 i R2 este o relaie nou cu schema
R ( A1 , A2 , ..., An , X 1 , X 2 , ..., X p , B1 , B2 , ..., Bm )
i cu extensia format din
(
a
,
a
,
...,
a
,
x
,
x
,
...,
x p , b1 , b2 , ..., bm ) ,
1
2
n
1
2
mulimea de tupluri
astfel c
( a , a , ..., a , x , x , ..., x ) R i ( x , x , ..., x , b , b , ..., b ) R .
1

sunt

date

Observm c:
1. n schema R atributele X1, X2, , Xp ntr o singur dat;
2. n sintaxa joinului natural R1 JOIN R2 nu sunt indicate atributele dup care
se formeaz joinul natural. Acest lucru s subnelege implicit: Joinul
natural se exercit dup toate atributele identice.
Joinul natural este eqivalent cu exercitarea urmtoarei secven de operaii:
a redenumi temporar atributele identice n relaiile iniiale;
a exercita produsul cartezian a relaiilor;
a exercita selecia tuplurilor cu valori egale ale atributelor care au fost identice
pn la redenumire;
a exercita proiecia, eliminnd dublri de atribute;
a restabili denumirile iniiale ale atributelor.
Joinul natural poate fi executat repetat pe mai multe relaii. Este uor de verificat
n acest context c joinul natural este o operaie asociativ:
( R1 JOIN R2 ) JOIN R3 R1 JOIN ( R2 JOIN R3 ) ,

deaceia astfel de expresii pot fi scrise fr paranteze:

R1 JOIN R2 JOIN R3 .

Exemplu:
Rspunsul la ntrebarea Ce piese i n ce volum sunt livrate de fiecare
furnizor? va da joinul natural F JOIN L JOIN P :
F JOIN L JOIN P

76

FNUM
1
1
1
2
2
3

FNAME
Albu
Albu
Albu
Ceban
Ceban
Vitiu

PNUM
1
2
3
1
2
1

PNAME
Ciocan
Cleste
surubelnita
Ciocan
Cleste
Ciocan

VOLUME
100
200
300
150
250
1000

n rezultatul final de luat proiecia


De dat n form de interogare SQL

Diviziunea
Definiie. Fie

R1 ( X 1 , X 2 , ..., X n , Y1 , Y2 , ..., Ym )
sunt date relaiile
i
R2 (Y1 , Y2 , ..., Ym ) cu atributele Y1 , Y2 , ..., Ym identice. Diviziunea relaiei R1 pe
relaia R2 este o relaie R nou cu schema ( X 1 , X 2 , ..., X n ) i extensia care const
din mulimea tuplurilor ( x1 , x 2 , ..., x n ) , acei care ntr n tuplurile
( x1 , x 2 , ..., x n , y1 , y 2 , ..., y m ) din relaia R1 n concatenare cu toate tuplurile
( y1 , y 2 , ..., y m ) din relatia R2 .
Aici:
R1 - divizor (numrtor?);
R2 - numitor.
Sintaxa: R1 DIVIDEBY R2 . Se utilizeaz la apeluri cu cuvntul toate.

Exemplu: Cine din furnizori livreaz toate piese


X L[ FNUM , PNUM ] -

FNUM
1
1
1
2
2
3

divizor
PNUM
1
2
3
1
2
1

Y P[PNUM ]

- numitor
PNUM
1
2
3

X DIVIDEBY Y

FNUM
1

Un alt exemplu mai evident pentru a nelege mai clar efectuarea operaiei de
diviziune:
S#
P#
Divizorul
Numitorii R2 :

R1 :
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4

P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5

1) P#
P1

2) P#
P2
P4

3)

P#
P1
P2
P3
P4
P5
P6

77

R1 DIVIDEBY R2

1) S#
S1
S2

2) S#
S1
S4

3)

S#
S1

5.4. Operatorii relaionali dependeni i independeni


Nu toi operatorii relaionali sunt independeni unii din ei se exprim prin alii:
operatorul de jonciune. Se exprim prin produsul cartezian, selecie iar n
joinul natural i prin proiecie;
operatorul de intersecie. Se exprim prin diferen n modul urmtor:
A INTERSECT B A MINUS ( A MINUS B )

operatorul de diviziune. Se exprim prin diferen, produsul cartezian i


proiecie n modul urmtor:
A DIVIDEBY B A[ X ] MINUS (( A[ X ]TIMES B ) MINUS A)[ X ]

Aadar, operatorii de jonciune, intersecie i diviziune nu sunt operatori elementari


sau de baz.
Operatorii relaionali independeni (elementari, primitivi, de baz)
Restul operatorilor relaionali sunt independeni, ei nu pot fi exprimai prin alii:
operatorul de reuniune. Este unicul operator cu care putem uni cortejele a dou
relaii cu aceeai schem;
operatorul de diferene. Este unicul operator cu care putem elimina acelea
cortejele din relaie care se conin n alta relaie cu aceeai schem.
operatorul produsului cartezian. Este unicul operator cu care putem aduga n
relaie atribute noi;
operatorul de selecie. Este unicul operator cu care putem selecta condiionat
tupluri anumite din relaie;
operatorul de proiecie. Este unicul operator cu care putem selecta
(necondiionat!) atribute micornd numrul lor;
5.5. Cereri care nu pot fi exprimate prin operatorii algebrei relaionale
Ne ctnd la puterea algebrei relaionale exist un ir de cereri (interogri) care nu
pot fi exprimate numai prin operatorii ei proprii. Pentru a trece aceast barier
78

trebuie se recurgem la extensii procedurale a limbajelor relaionali. Exemple de


astfel de cereri sunt:
Cereri de selecie al datelor dup atribute. Apar, cum vom vedea mai trziu, n
cazul normalizrii insuficiente;
Cereri de ncheiere tranzitiv;
Cereri de tabele ncruciate.
Exemplu:
Fie dat relaia COMPONENTA_CHIMICA_SUBSTANTE(SNAME, HIDROGEN,
HELIU, , 105_ELEMENT) n care este reprezentat informaia despre coninutul
n procente a elementelor chimice n diferite substan
SNAME
ADN(ARN)
Benzina
acid ortofosforic

HIDROGEN
5
52
24

HELIU
3
0
0

105_ELEMENT
0,01
0
0

Se pune ntrebarea De a determina tote elementele chimice care se conin ntro substan careva n cantitate mai mare de 50%. Din punct de vedere
algoritmic rspunsul se obine simplu examinm consecutiv valorile atributelor i
memorizm acele atribute care au valori mai mare de 50%. Dar aceasta nseamn
selectarea condiionat a atributelor. Formal noi nu putem exprima acest apel prin
operatorii algebrei relaionale, fiind c n algebra relaional nu exist operatori de
selecie condiionat a atributelor.
Problema a aprut de fapt de aceea c relaia dat nu este bine proiectat sau cum
vom spune bine normalizat. Ce nseamn normalizare bun vom vorbi mai trziu,
iar aici vom repartiza informaiile necesare pe trei relaii SUBSTANTE(SNUM,
SNAME), ELEMENTE(ENUM, ENAME), COMPONENTA(SNUM, ENUM,
EPROCENT):
SUBSTANTE
SNUM
1
2
3

SNAME
AND
Benzina
acid ortofosforic

ELEMENTE

ENUM
1
2

105

ENAME
Hidrogen
Heliu
...
105_element
79

SNUM
1
1

1
2
2

COMPONENTA
EPROCENT
5
3

0,01
52
0

ENUM
1
2

105
1
2

24

Pe aceste relaii interogarea dat se realizeaz prin urmtoarea secven de


operatori relaionali:
1. R1(SNUM, ENUM, EPROCENT)= COMPONENTA WHERE EPROCENT>50
(selecie);
2. R2(ENUM)=R1[ENUM] (proiecie);
3. R3(ENUM, ENAME)=R2[ENUM=ENUM] ELEMENTE (equijoinul);
4. RASPUNS(ENAME)=R3[ENAME] (proiecie).
Cum s-a menionat mai sus problema care a aprut aici se datorete normalizrii
insuficiente, dar mai bine zis proiectrii iniiale incorecte a bazei de date. n orice
caz crearea bazei de date trebuie s se nceap cu crearea proiectului semantic
(logic) folosind tehnologia diagramelor ER (Entity Relationship). Relaiile de mai
sus trebuie se rezulte din urmtoarea diagrama ER
Acum interogarea formulat mai sus uor se realizeaz n limbajul SQL cu o
SUBSTANTE
SNUM
SNAME
...

ELEMENTE

1 ENUM
ENAME
...

COMPONENTA
SNUM
ENUM
EPROCENT
...

Fig. 7.1. ER diagrama bazei de date COMPONENTA CHIMICA

singur comand:
SELECT ENAME, EPROCENT
FROM ELEMENTE, COMPONENTA
WHERE ELEMENTE.ENUM=COMPONENTA.ENUM AND
80

EPROCENT>50;
De observat aici c legturile din diagrama ER sunt referite n opiunea comenzii
WHERE prin condiia ELEMENTE.ENUM=COMPONENTA.ENUM.

81

6. PROIECTAREA SCHEMELOR BAZELOR DE DATE


RELAIONALE. FORME NORMALE
Modele de proiectare a sistemelor informatice:
Model infologic. Modelare infologic presupune analiza structurii i
activitii n dinamic a domeniului concret din lumea real. Determinarea
scopului de creare a sistemului informatic i cerinelor puse n fa;
Modelul datalogic. Modelarea datalogic presupune crearea unui sistem
integru de date interlegate dup anumite concepte care va prezenta modelul
informaional al domeniului concret din lumea real. Aici nu se au n vedere
date concrete, ci noiuni de date, tipuri de date, variabile, domenii, restricii
asupra datelor, etc.;
Modelul tehnic (fizic). Primele modele sunt generalizate. Ele nu depind de
metode i mijloace folosite n realizarea fizic a sistemului informatic.
Modelarea fizic se realizeaz n cadrul unui mediu de elaborare (programare)
concret folosind instrumentele i posibilitile specifice anume acestui mediu.
Fiecare din aceste modele are limbajul propriu de descriere. Pezentarea lor este
dat n form de diagrame specifice modelului, folosind anumite sisteme de notaii.
In cazul sistemelor de baz de date acestea modele se concretizeaz n:
Modelul conceptual. Analiza obiectelor i proceselor de activitate n
dinamic. Argumentarea necesitii crerii, formularea scopului i cerinelor
fa de sistem de baz de date. ;
Modelul relaional. In modelarea relaional are loc stabilirea asocierilor i
restriciilor de structur n conceptele modelului relaional. Se finalizeaz
cu diagrama ER.
Modelul fizic. Se realizeaz n SGBD concret, folosind instrumentele i
posibilitile lui. Relaiile se transform n tabele relaionale, atributele
relaiilor devin cmpuri n tabele, etc.
In acest capitol vom aborda problemele modelrii relaionale. Sub schema bazei de
date relaional vom nelege schemele tuturor relaiilor din aplicaie unite ntr-o
diagram entitate relaie (modelul ER Entitate/Relaie).
6.1. Forme normale a relaiilor. Forme normale inferioare
6.1.1. Exemplu de baz
Pentru expunerea ulterioar vom considera urmtorul exemplu de baz:
Domeniul concret al lumii reale universul de discurs: Fie s cere crearea unei
aplicaie de baz de date pentru o instituie tiinific care ndeplinete diferite
proiecte de cercetare. Proiectele constu din lucrri, care se ndeplinesc de
82

colaboratorii firmei. Aplicaia trebuie s modelez activitatea firmei n acest


domeniu.
Scopul (obiectivele): Trebuie se pstrm informaii (se ducem evidena operativ)
despre mersul ndeplinirii lucrrilor din proiecte la orice moment de timp.
(Despre modele infologic, datalogic, tehnic(fizic))
Dup prima convorbire cu specialitii din domeniul dat s-a stabilit c (modelul
domeniului) :
O firm tiinific structurat pe sectoare ndeplinete proiecte;
Fiecare proiect const din mai multe lucrri;
Colaboratorii ndeplinesc lucrrile din diferite proiecte;
Lucrrile se ndeplinesc pe etape n limitele prestabilite de timp;
Scopul: S cere ducerea evidenei ndeplinirei lucrrilor n timp real (cine
ndeplinete lucrarea dat la momentul dat, crui proiect ea aparine, ...).
Aici n form de text a fost formulat modelul fizic al domeniul concret din lumea
real. Au fost evideniate obiectele i menirea lor. Rolul lor n activitatea
domeniului. A fost concretizat scopul crerii i cerinele fa de produsul final.
n cadrul convorbirilor ulterioare sau evideniat procesele de activitate. S-a precizat
c (modelul logic u restricii) :
fiecare colaborator are numr de tabel. Numrul de tabel (codul
colaboratorului) este unic pe toat organizaia. Prezentarea (descrierea)
obiectului n form COLABORATOR(CNUM, CNAME, );
fiecare sector are numr unic pe toat organizaia. ;
fiecare proiect are numr unic pe toat organizaia. ;
fiecare lucrare are numr unic n cadrul proiectului dat.
fiecare lucrare se ndeplinete de unul singur colaborator independent de
sector n care el este angajat;
fiecare colaborator poate s ndeplinesc mai multe lucrri concomitent
dintr-un proiect sau mai multe sau temporar se nu activez nici ntr-un
proiect;
...
(trebuie extins exemplu cu introducerea etapelor care pot fi ndeplinite de diferii
colaboratori)
Aici sau precizat i sau descris toate obiectele, procesele i restriciile implicate n
activitatea pe care dorim s-o modelm.
Urmtoarea etap crearea modelului relaional integru a acestui domeniu din
lumea real.
Ca prima variant a modelului logic se propune o singur relaie de tip:
83

COLABORATORI_SECTOARE_PROIECTE_LUCRARI(CNUM, CNAME, SNUM,


SNAME, SPHONE, PNUM, PNAME, LNUM, LNAME)
Sau pe scurt:
CSPL(CNUM, CNAME, SNUM, SNAME, SPHONE, PNUM, PNAME, LNUM,
LNAME)
Starea actual a domeniului se caracterizeaz prin urmtoarele fapte
colaboratorul Albu este angajat n primul sector i n primul proiect Cosmos
ndeplinete lucrarea unu, iar n al doilea proiect Clima ndeplinete tot
lucrarea unu;

Acest stare este reprezentat n urmtorul tabel:
CSPL
CNUM

CNAME

SNUM

SNAME

1
1
2
3
3

Albu
Albu
Ceban
Vitiu
Vitiu

1
1
1
2
2

SPHON
E
11-22-33
11-22-33
11-22-33
34-45-56
34-45-56

PNUM

PNAME

LNUM

LNAME

1
2
1
1
2

Cosmos
Clima
Cosmos
Cosmos
Clima

1
1
2
3
2

Acest tabel reprezint relaia care n mod automat se afl n FN1. Cheia relaiei
este {CNUM, PNUM, LNUM}. Ea reies numai din tratarea noastr al datelor care
poate fi exprimat prin urmtoarele enunuri:
fiecare proiect const din mai multe lucrri (relaie dintre lucrri i proiecte);
fiecare lucrare se ndeplinete de un colaborator (relaie dintre lucrri i
colaboratori);
fiecare colaborator poate s ndeplineasc mai multe lucrri din unul sau mai
multe proiecte (relaie dintre colaboratori, lucrri i proiecte);
Mulimea de atribute {CNUM, PNUM, LNUM} unic va determina acestea relaii
dac vom impune restricia de cheie a relaiei. Valorile ei rspund la ntrebarea
cine ndeplinete, care lucrare, din care proiect, n care etap, dac vom introduce
i descrierea n dinamica timpului real. Adica, anume descrie procesul de
ndeplinire a lucrrilor n timp. Valorile cheii {CNUM, PNUM, LNUM} unic
rspund i la scopul crerii bazei de date. (? Cheia relaiei numai unic determin
corteje din R).
6.1.2. Anomalii n baza de date
Se analizm calitatea tabelului obinut reieind din relaia propus. Uor s observ
c n relaia dat are loc o redundan mare de date. De exemplu: se repet
84

informaia despre colaboratorul Albu sau despre proiectul Cosmos etc. Redundana
datelor rezult din aceea c n una i aceeai relaie se pstreaz datele despre
diferite obiecte. n relaie este cel puin o legtur de tip :
(Colaboratori:Proiecte, Sectoare:Proiecte). Redundana poate avea consecine
grave n ceea ce ine de corectitudinea datelor. Modificarea strii bazei de date n
prezena redundanei poate duce la distrugerea integritii structurale a modelului
relaional. Din acest motiv vom spune c redundana datelor duce la prezena n
relaie a aa numitor anomalii de modificare a strii bazei de date. Prezena
anomaliilor se manifest prin posibile situaii cnd modificarea datelor n relaie
(tabel) sau nu este posibil de loc sau poate duce la distrujerea corectidudinii sau
integritii datelor i cere eforturi adiionale pentru a evita aceast distrujere
posibil.
Exemple:
Nu putem ntroduce datele despre un lucrtor nou, dac el la momentul dat nu
ndeplinete nici o lucrare (nu este cunoscut valoare atributului cheie
LNUM). La fel despre un proiect nou, un colaborator nou. Deci, apare
problema de asigurare a integritii structural;
Modificarea eventual a numrului de telefon n sectorul 1 trebuie s se fac
cu mare atenie, fiind c s repet n mai multe nregistrri;
Eliminarea informaiei despre proiectul Cosmos (la finisarea etapei sau a
lucrrilor) va duce la pierderea informaiei despre colaboratorul Ceban;
...
Definiie. Vom spune c relaia dat conine anomalii atunci cnd modificarea unor
date din relaie nu este posibil sau exist pericolul c ea va duce la distrujerea
corectidudinii (integritii) datelor i sunt necesare eforturi adiionale pentru a evita
acest pericol.
Consecinele grave ale anomaliilor se manifest la efectuarea operaiilor de
modificare a strii bazei de date, deaceea exist trei tipuri de anomalii.
Anomalii de nserare (INSERT)
Nu putem introduce date despre un lucrtor nou, dac el la momentul
introducerii nu ndeplinete nici o lucrare;
Nu putem introduce date despre o lucrare, dac nc nu este numit persoana
care va ndeplini-o;

Cu alte cuvinte: nu putem introduce datele despre un obiect ne introducnd date
despre alt obiect.

85

Anomalii de modificare (UPDATE)


Modificarea datelor repetate trebuie s se fac n toate nregistrrile unde ele
apar i cere eforturi adiionale de verificare;
...
Anomalii de tergere (DELETE)
Eliminarea datelor repetate trebuie s se fac n toate nregistrrile unde ele
apar i cere eforturi adiionale de verificare;
Eliminarea informaiei despre proiectul Cosmos va duce la pierderea
informaiei despre colaboratorul Ceban;

Cu alte cuvinte: eliminarea datelor despre un obiect poate duce la eliminarea
datelor despre alt obiect. Sau: modul de pstrare a datelor despre un obiect depinde
de modul de pstrare a datelor despre alt obiect.
Anomaliile apar atunci cnd modelul de date nu este adecvat lumii reale sau nu
este bine proiectat. n exemplul nostru nu poate fi pstrat informaia despre un
colaborator care nu ndeplinete nici o lucrare. Sau despre o lucrare, dac nc nu
este numit persoana care va ndeplini-o. Deci, dac modelul de date nu este bine
proiectat atunci apar probleme adiionale n realizarea restriciilor din lumea real.
De observat n acest context c n relaia CSPL cel puin avem o legtur de tip
: (Sectoare-Proiecte) care cauzeaz redundan de date.
6.3. Forme normale. Noiuni generale
Pentru a elimina anomaliile din relaie, dar de fapt pentru a proiecta corect modelul
de date se aplic procedeul de normalizare a relaiilor. Normalizarea relaiilor
const n descompunerea lor pe relaii mai mici efectuat dup anumite reguli,
urmrind scopul principal de a elimina anomaliile (a satisface criteriile de calitate).
Procedeul prezint trecerea consecutiv de la un nivel de normalizare, sau o form
normal a relaiilor, la un alt nivel mai superior de normalizare, sau la o alt form
normal mai superioar a relaiilor.
Normalizarea relaiilor este una din dou modaliti de proiectare a aplicaiilor de
baz de date:
proiectare prin normalizarea relaiilor. Este o modalitate formalizat, logic,
bazat pe regulu formale. Const n aducerea relaiilor la diferite forme
normale reieind din diferite forme de dependene dintre atribute (n primul
rnd dependene funcionale, etc.). Proiectarea logic rezult n crearea
modelului relaional prezentat n form de aa numit diagram ER (Entity
Relationships) sau model Entitate-Relaie;

86

proiectarea semantic bazat pe sensul datelor. Proiectarea semantic se


efectuiaz folosind direct diagramele ER (Entity Relationships) sau modele
ER.
Exist mai multe nivele de normalizare a relaiilor sau mai multe forme normale n
care relaiile se afl. Aceste forme normale sunt divizate n dou grupe:
forme normale inferioare FN1, FN2, FN3, FNBC (forma normal BoyceCodd);
forme normale superioare FN4, FN5.
FNBC? n prima grup? Da, dar ca o generalizare a FN3. Forma normal FNBC
a fost descoperit mai trziu dect au fost stabilite formele FN4 i FN5.
n practic mai des se folosesc primele patru (sau chiar primele trei) forme, adica
formele inferioare, dar noi le vom trece pe toate n ordinea nominalizat.
6.4. Forme normale inferioare. Dependene funcionale
n procesul de aducere a relaiilor la forme normale inferioare rolul cheie l joac
dependene funcionae dintre atribute.
Definiie 1. Fie este dat relaia R . Mulimea de atribute Y este funcional
dependent de mulimea de atribute X ( X n mod funcional determin Y ) dac
i numai dac pentru orice tupluri r1 , r2 R din aceea c r1 . X r2 . X reies c i
r1 .Y r2 .Y n orice stare a relaiei R .
Sau, alt definiie:
Definiie 2. Atributul Y depinde funcional de atributul X dac i numai dac
fiecrei valoare a lui X i corespunde exact o singur valoare Y.
Simbolic dependena funcional se notez prin X Y . Mulimea de atribute X se
numete determinantul dependenei funcionale iar mulimea de atribute Y se
numete partea dependent a dependenei funcionale.
Dac mulimea de atribute X constituie cheia potenial a relaiei R atunci
fiecare din restul atributelor (atributelor non-cheie) depinde funcional de X .
Exemplu:
Sector
1
2
1

Telefon
11-22-33
34-45-56
11-22-33
87

Dependena funcional este

Sector Telefon .

Deoarece, n cazul general, n relaie pot fi mulimi de atribute cheie i mulimi de


atribute non-cheie, dependene funcionale sunt posibile dintre:
atrubute cheie i non-cheie;
atribute non-cheie;
atribute cheie (n cazul cheii compuse).
Cum vom vedea mai jos acestea trei forme de dependene duc la diferite nivele de
normalizare.
Dependene funcionale n relaii i dependee matematice
Dependenele funcionale (DF) i dependenele matematice sunt asemntoare, dar
nu sunt identice. ntre ele exist diferen principial. Dac dependena matematic
careva are loc n totdeauna, adica este o lege ( sin( / 2) 1 ), atunci rezultatul DF
depinde de starea bazei de date (sau starea n lumea real).
Cu alte cuvinte, putem spune c:
Dependena funcional ne permite s aflm valoarea unui atribut dup valorea
altui atribut dar n fiecare stare a bazei de date acesta valoare va fi diferit. ns,
dependena funcional se pstreaz.
La momentul dat numrul de telefon n sectorul 1 este 11-22-33, dar n alt dat el
poate fi altul, dependena lui de numrul de sector pstrnduse.
Exemple de dependene funcionale n relaia
COLABORATORI_SECTOARE_PROIECTE_LUCRARI:
Dependene funcionale de cheia relaiei (dependene totale de cheie):
1. {CNUM, PNUM, LNUM} CNAME
{CNUM, PNUM, LNUM} SNUM
{CNUM, PNUM, LNUM} SNAME
{CNUM, PNUM, LNUM} SPHONE
{CNUM, PNUM, LNUM} PNAME
{CNUM, PNUM, LNUM} LNAME
Sau n form succint :
{CNUM, PNUM, LNUM} {CNAME, SNUM, SNAME, SPHONE, PNAME,
LNAME}. Aici ne am folosit de aceea c dac cheia {CNUM, PNUM, LNUM}
determin o mulime de atribute atunci ea determin i fiecare atribut n parte.
Dependena funcional a atributelor care conin informaie despre colaborator de
codul colaboratorului (dependene de un atribut al cheii dependene pariale de
cheie):
2. CNUM CNAME
CNUM SNUM
88

CNUM SNAME
CNUM SPHONE
Sau CNUM {CNAME, SNUM, SNAME, SPHONE}.
Dependena funcional a denumirii proiectului de numrul lui (dependen
parial de cheie):
3. PNUM PNAME
Dependena funcional a denumirii lucrarii de numrului proiectului i numrul
lucrrii (dependen parial de cheie):
4. {PNUM, LNUM} LNAME
Dependena funcional a denumirii sectorului i numrului de telefon de numrul
sectorului (dependene dintre atribute non-cheie):
5. SNUM SNAME
SNUM SPHONE
Sau SNUM {SNAME, SPHONE}
1. .
,
(?) .

.

Remarc 2. Toate dependene funcionale au fost deduse nu din forma relaiei ci


din semnificaia legturilor existente dintre atributele relaiei. Ele prezint restricii
adiionale n relaie care reies din sensul datelor. Deci dependena funcional
este o noiune semantic. Totalitatea dependenelor funcionale reprezint o
totalitate de legturi (dar nu toate!) dintre obiectele lumii reale.
3.
. ,
(.. ) , , ..,
, , , ,
, . ,
( )
,
. ,
. , ,

.


.

.
(.. ),
. ()
89

. , , ,
CASE , ERWin.
4. , , , , ,
! ,
(.. !) .
Remarca 5. Anume aici de introdus noiune de dependene funcionale directe i tranzitive.

Tipuri de dependene funcionale


In relaie sunt dou grupuri de atribute: atribute care fac parte din componena
cheii atribute cheie (CNUM, PNUM, ) i atribute non-cheie (CNAME, SNUM,
SNAME, ). Deaceea, dependenele funcionale pot se apar de diferite
combinaii: dependene funcionale dintre atribute non-cheie, dependene
funcionale dintre atribute cheie i atribute non-cheie i, n cazul special, i
dependene funcionale dintre atributele cheie.
Aa dar, pot fi depistate mai multe tipuri de dependene funcionale:
dependen funcional total de cheia relaiei (exemplul 1 de mai sus);
dependen funcional parial de cheia relaiei (exemplele 2, 3,4);
dependen funcional dintre atribute cheie i atribute non-cheie (exemplul
1);
dependen funcional dintre atribute non-cheie (exemplul 5);
dependen funcional dintre atributele cheie ;
dependen funcional direct dintre atribute;
dependen funcional indirect sau tranzitiv dintre dou atribute prin
intermediul al treilea atribut. Exemplu: din aceea c CNUM SNUM i
SNUM SPHONE reies c CNUM SPHONE. n cuvinte: atributul
CNUM determin funcional atributul SPHONE tranzitiv prin intermediul
atributului SNUM.
Remarc: din exemplul 1 observm c n dependena total de cheia relaiei
{CNUM, PNUM, LNUM} {CNAME, SNUM, SNAME, SPHONE, PNAME,
LNAME} se conin toate atributele relaiei CSPL. De aici putem conclude c
dac n dependena funcional ntr toate atributele relaiei atunci determinantul
dependenei este cheia relaiei. Se mai numete i superchie.
Deci, dac n dependena funcional {A1, A2, A3} {B1, B2, , Bn} se conin
toate atributele relaiei R, atunci setul de atribute {A1, A2, A3} este cheia relaiei.
6.5. Aducerea relaiilor la forme normale inferioare

90

Dependenele funcionale ne permit s repartizm informaiile despre diferite


entiti n diferite relaii eliminnd anomaliile i pstrnd totodat legturile dintre
entiti. Acest lucru se efectuiaz prin normalizare procedeu de descompunere
dup anumite reguli a relaiei date pe mai multe relaii mai mici lipsite de anomalii.
Procedeul prezint trecerea consecutiv de la un nivel de normalizare, sau o form
normal, la un alt nivel mai superior de normalizare, sau la o alt form normal
mai superioar. Forma normal a relaiei dat depinde de tipul de dependene
funcionale n aceasta relaie.
n continuare pentru concretizare vom presupune c cheia {CNUM, PNUM,
LNUM} este unic n relaie i deaceea normalizarea vom executa-o n raport cu
acesta cheie.
Normalizarea ca eliminarea consecutiv a dependenelor funcionale nedorite
6.5.1. Forma normal unu FN1
Orice relaie nsui dup definiie se afl n forma normal FN1 fiind c const din
tupluri unice i valorile atributelor sunt atomice (indivizibile). Deci relaii care s
nu fie n forma normal FN1 nu exist.
6.5.2. Forma normal doi FN2
Definiie. Regula FN2:
Relaia R este n forma normal doi FN2 dac i numai dac ea este n forma
normal unu FN1 i n ea nu exist atribute non-cheie, care depind de o parte a
cheii potenial a relaiei (depind parial de cheia relaiei).
Cu alte cuvinte, relaia se afl n forma normal FN2 dac n ea nu sunt dependene
pariale de cheie a atributelor non-cheie.
Dependena funcional parial i total.
Remarc. Dac cheia relaiei este simpl atunci relaia n mod automat este n FN2.
Cheia relaiei CSPL este cheie compus {CNUM, PNUM, LNUM}. Analiznd
dependenele funcionale existente n relaie, concludem c relaia dat nu este n
FN2, deoarece n ea exist dependene funcionale de o parte a cheii relaiei
(dependene pariale de cheie):
CNUM {CNAME, SNUM, SNAME, SPHONE};
PNUM PNAME;
{PNUM, LNUM} LNAME.
Prezena acestor dependene este consecina redundanei datelor n relaie. De
exemplu, dac n sectorul unu lucreaz 30 colaboratori atunci, din aceea c
91

CNUM SNUM, CNUM SNAME, CNUM SPHONE reies c n 30 de


nregistrri a relaiei CSPL se va repeta aceeai informaie despre sectorul unu.
Este evident, c ar fi mult mai bine ca informaia despre sectorul unu s fie
prezentat numai o singur dat ntr-o relaie aparte. Rezult c dependenele
pariale de cheia relaiei sunt nedorite i trebuie s fie transformate n alt form de
dependene prin descompunerea relaiei dat n mai multe relaii, fiecare fiind n
forma normal FN2. Pur i simplu eliminate dependenele pariale nu pot fi,
deoarece provin din lumea real. Exist unica modalitate de a elimina (mai corect
de a transforma) dependenele pariale de cheia relaiei i, tot odat, de a pstra
toate dependenele funcionale care reprezint legturile dintre entitile
domeniului concret din lumea real. Pentru asta scoatem consecutiv acele grupuri
de atribute care ntr n dependenele funcionale cu acelai determinant ntr-o
relaie separat nou, n care atributul (atributele) determinant devine cheia relaiei
nou. n acelai timp atributul (atributele) determinant va rmne i n relaia veche
n
calitate
de
cheie
extern.
n
sfrit,
relaia
COLABORATORI_SECTOARE_PROIECTE_LUCRARI se descompune n patru
relaii una INDEPLINIRE_LUCRARI conine acele atribute care au rmas dup
descompunere, iar altele trei sunt relaii noi COLABORATORI_SECTOARE,
PROIECTE, LUCRARI n conformitate cu trei grupe de dependene pariale:
COLABORATORI_SECTOARE_PROIECTE_LUCRARI (CSPL)
CNUM

CNAME

SNUM

SNAME

SPHON
E

PNUM

PNAME

LNUM

LNAME

COLABORATORI_SECTOARE (CS)
CNUM

CNAME

SNUM

SNAME

SPHON
E

PROIECTE (P)
PNUM

PNAME

LUCRARI (L)
PNUM

LNUM

LNAME

INDEPLINIRE_LUCRARI (CPL)
CNUM

PNUM

LNUM

Remarc 1. Observm regula de baz atributele determinanii n dependenele


pariale au devenit chei poteniale n relaiile noi i tot odat au rmas n relaia
iniial ca chei externe. Acest fapt ne asigur pstrarea legturilor dintre obiectele
lumii reale.
Aadar, relaia iniial a fost descompus n patru relaii care sunt n form normal
FN2. n ele nu mai sunt anomalii de inserie. Acum putem liber se nscriem
92

colaboratori noi sau lucrri noi. Relaia COLABORATORI_SECTOARE tot este n


FN2, dar analiza ei ne demonstreaz c nu toate anomaliile din ea sunt eliminate.
n ea a rmas redundan al datelor: cortejele cu diferite valori al atributului
CNUM conin informaie repetat despre sectoare. Numrul de sectoare este n
mod natural mult mai mic dect numrul colaboratorilor. Deaceea, dac spre
exemplu, n sectorul 1 lucreaz o sut de colaboratori, atunci informaia despre
acest sector se va repeta ntr-o sut de corteje. Rezolvarea problemei iari const
n descompunerea relaiei COLABORATORI_SECTOARE n mai multe fiind n
form normal mai superioar formei normale FN2, n astfel mod ca informaia
despre sectorul 1 s fie prezentat numai o singur dat.
6.5.3. Forma normal trei FN3
Dependenele funcionale pot avea loc dintre atribute cheie i non-cheie n diferite
combinaii. (Dependene tranzitive?!)
Dou definiii adiionale:
Definiie 1. Atributele unui grup separat de atribute se numesc reciproc
independente dac nici unul din ei nu se afl n dependen funcional de altul.
Definiie 2. Dependena tranzitiv. Prin definiie, atunci cnd un atribut A
determin atributul B, iar B determin atributul C, apare dependena tranzitiv a
atributului C de atributul determinant A prin intermediul atributului B.
Deci, dac A B i B C, atunci A C. Dependenele funcionale tranzitive
dintre atributele unei relaii pot cauza erori de reactualizare, deoarece dac s
modific A, atunci trebue s se modifice i C.
Definiie 3. Regula FN3:
Relaia R este n forma normal trei FN3 dac i numai dac ea este n forma
normal doi FN2 i toate atributele non-cheie n ea sunt reciproc independente.
Definiie 4. Regula FN3 n alt form, echivalent cu prima:
Relaia R este n forma normal trei FN3 dac i numai dac ea este n forma
normal doi FN2 i n ea nu sunt dependene tranzitive a atributelor non-cheie de
cheia relaiei prin intermediul altor atribute non-cheie.
Relaia COLABORATORI_SECTOARE nu este n FN3 deoare n ea sunt
dependene funcionale ntre atributele non-cheie:
SNUM SNAME;
SNUM SPHONE.
Sau SNUM {SNAME, SPHONE}
Aici SNUM este determinantul acestor dependene funcionale (DF). Pentru a
elimina (mai bine zis, a transforma) aceste dependenele funcionale trebuie s
93

descompunem n continuare relaia COLABORATORI_SECTOARE n mai multe


relaii, scotnd din ea atributele, care fac parte n dependenele funcionale cu
acelai determinant n relaie separat nou. Pentru asta atributele non-cheie se
plaseaz ntr-o relaie nou mpreun cu copia determinantului lor.
COLABORATORI_SECTOARE
CNUM

CNAME

SNUM

SNAME

SPHON
E

COLABORATORI
CNUM

CNAME

SNUM

SECTOARE
SNUM

SNAME

SPHON
E

De observat c atributul SNUM a rmas n relaia COLABORATORI n calitate de


cheie extern, iar n relaia SECTOARE el a devenit atribut cheie ca determinantul
dependenelor funcionale nedorite n relaia COLABORATORI_SECTOARE. Dac
atributul SNUM nu ar fi rmas n relaia COLABORATORI , atunci ar fi fost
pierdut legtura CNUM SNUM in relaia iniial R.
Aa dar relaia iniial COLABORATORI_SECTOARE_PROIECTE_LUCRARI a
fost descompus n mai multe relaii mici lipsite de anomalii
COLABORATORI
CNUM

CNAME

SNUM

SECTOARE
SNUM

SNAME

SPHON
E

PROIECTE
PNUM

PNAME

LUCRARI
PNUM

LNUM

LNAME

INDEPLINIRE_LUCRARI
CNUM

PNUM

LNUM

Prin aceast descompunere sau obinut relaiile COLABORATORI, SECTOARE,


PROIECTE, LUCRARI, INDEPLINIRE_LUCRARI care se afl n FN3. n ele sunt
94

eliminate toate anomaliile. Legturile dintre obiectele bazei de date care au fost
prezente n relaia iniial sau pstrat n relaia INDEPLINIRE_LUCRARI
INDEPLINIRE_LUCRARI
CNUM
1
1
2
3
3

PNUM
1
2
1
1
2

LNUM
1
1
2
3
2

Acum sistemul nostru informaional prezint un set de relaii legate ntre ele.
Aceste relaii sunt de dou tipuri: relaii care descriu obiecte i relaii care descriu
proces sau starea de proces. Primele sunt nomenclatoare (sau dicionare,
, ). Ele conin toate informaiile
necesare pentru a descrie procesul de busines sau starea lui in dinamica timpului
real. Adesea ori acestea informaii sunt extrase din acte normative oficiale. Cu alte
cuvinte, nomenclatoarele cuprind toate detaliile caracteristice obiectelor necesare
pentru a determina procese. Procesele la
Aadar, relaiile COLABORATORI, SECTOARE, PROIECTE, LUCRARI sunt
nomenclatoare (dicionare?), iar relaia INDEPLINIRE_LUCRARI este relaia
dinamic care reprezint starea actual a procesului n lumea real.
ER-diagrama acestei baze de date va fi:
COLABORATORI
SECTOARE
SNUM
SNAME
SPHONE

CNUM
CNAME
SNUM

LUCRARI

PROIECTE
PNUM
PNAME

INDEP_LUCRARI
CNUM
PNUM
LNUM

1 LNUM
PNUM

LNAME

Din schemele relaiilor obinute se formeaz schema (structura) BD.

6.5.4. Forma normal Boyce-Codd FNBC


Pn acum noi am presupus c n relaie este numai o singur cheie candidat. n
acest caz ea este i cheia primar a relaiei. Din acest moment omitem aceast
restricie i presupunem c:
95

Relaia are dou (sau mai multe) cheie candidat;


Cheile candidat sunt compus (compuse din mai multe atribute);
Dou chei candidat se intersecteaz (au cel puin un atribut comun).
S considerm urmtorul exemplu. Fie, avem relaia FURNIZORI_PIESE_
LIVRARI sau FPL:
FURNIZORI_PIESE_ LIVRARI (FPL)
FNUM
FNAME
PNUM
1
Firma 1
1
1
Firma 1
2
1
Firma 1
3
2
Firma 2
1
2
Firma 2
2
3
Firma 3
1
(Ar trebui de adugat aici i atributul PPRICE)

PVOLUME
100
200
300
150
250
1000

PPRICE

Presupunem c atributele FNUM i FNAME au valori unice. Atunci, relaia FPL


are dou chei candidat compuse i intersectate {FNUM, PNUM} i {FNAME,
PNUM}.
, -
,
, .
, ?
( ,
):
Dependene funcionale:
{FNUM, PNUM} PVOLUME
,
{FNUM, PNUM} FNAME
,
{FNAME, PNUM} PVOLUME
,
{FNAME, PNUM} FNUM
,
FNUM FNAME
.
FNAME FNUM .
,
(. 2). ,
FNAME FNUM, .
, 2.
96

,
, .. - PVOLUME (.
3). , , FPL 3.
,
. , ,
(se elimin) (prin descompunere)
:
FURNIZORI_1
FNUM
1
2
3

FNUM
1
1
1
2
2
3

FNAME
Firma 1
Firma 2
Firma 3

PNUM
1
2
3
1
2
1

LIVRARI_1
PVOLUME
100
200
300
150
250
1000

Prin aceast descompunere relaia iniial a fost adus la aa numit form normal
Boyce-Codd FNBC:

R -
,
.
Definiie. Relaia R se afl n forma normal Boyce-Codd FNBC dac i numai
dac determinanii al tuturor dependenelor funcionale n relaie sunt chei
candidat.
Cu alte cuvinte: toate dependenele funcionale n relaie trebuie s fie numai
dependene de cheie!
,
,
.
, .. . ,
, 3.
97


,
. ,
,

.
(Heath) 1971 .
Pentru o relaie cu o singur cheie candidat care se utilizeaz implicit ca i cheia
primar, formele FN3 i FNBC coincid.
. ,
3. , 3.
FURNIZORI_PIESE_ LIVRARI ,
.. (FNUM FNAME FNAME FNUM),
(
!).
,
, ,
.
FURNIZORI_1 LIVRARI_1,
.
. FPL
FURNIZORI_1 LIVRARI_1 .

:
FURNIZORI_2
FNAME
Firma 1
Firma 2
Firma 3

FNAME
Firma 1
Firma 1
Firma 1
Firma 2
Firma 2
Firma 3

FNUM
1
2
3

PNUM
1
2
3
1
2
1

LIVRARI_2
PVOLUME
100
200
300
150
250
1000

98

, , . ,
- , ,
(
!). , , .
, ,
, - . ,
( -
!), ""
.
. "-2"
" " (FNAME) ,
"-2". , ,
"-2" (.
. 3) "2" ,
"-1". ,
. , , ,
, ,
.
. "-2",
. , "-2"
, 3.
"" , , .. ,
, (???). ,
, 3
, ""?
Problem: De efectuat normalizarea n considerat mai sus exemplu cu relaia
COLABORATORI_SECTOARE_PROIECTE_LUCRARI dac puin modificm condiiile
(modelul logic):
Fiecare colaborator are numr unic de tabel pe toat organizaia;

Fiecare sector are numr unic pe toat organizaia;


Fiecare proiect are numr unic pe toat organizaia;
Fiecare proiect const din mai multe lucrri;
Fiecare lucrare are numr unic n cadrul proiectului dat;
Fiecare lucrare are nume unic n cadrul proiectului dat;

Fiecare lucrare poate fi ndeplinit de mai muli colaboratori, independent de sector n


care ei sunt angajai;
Fiecare colaborator poate s ndeplinesc mai multe lucrri concomitent;

...
Avem aici dou chei compuse i intersectate:
{CNUM, PNUM, LNUM},
{CNUM, PNUM, LNAME}.

6.5.5. Algoritmi strici de normalizare


99

Cum am menionat mai sus normalizarea relaiilor este o modalitate formalizat,


logic de proiectare a bazelor de date. Graie acestui fapt pot fi propui algoritmi
strici de normalizare. Aceti algoritmi se bazeaz pe dependene funcionale i
prezint nu alt ceva dect eliminarea consecutiv a dependenelor funcionale
nedorite.

,
NFBC
. : ,

.

.
.


.
Pe pai:
1. Aducerea la forma normal unu FN1. Informaia se plaseaz n una sau mai
multe relaii, care reprezint entitile lumii reale. Aceste relaii n mod automat
se afl n FN1. (dac sunt relaii, binenceles)
2. Aducerea la forma normal doi FN2. Dac dup analiz se afl c n careva
relaie exist dependen funcional de o parte a cheii poteniale se recurge la
decompoziia ei n urmtorul mod:
Situaia iniial. Relaia care nu este n FN2 - R(K1,K2, A1,,An, B1,,Bm):
{K1,K2} cheia relaiei compus,
{K1,K2} { A1,,An, B1,,Bm } dependene funcionale,
{K1} { A1,,An } dependena funcional a unor atribute de o parte a
cheii relaiei;
Situaia final. Relaiile decompuse:
R1(K1,K2, B1,,Bm) restul din relaia iniial R,
R2(K1, A1,,An) relaia nou n care a fost scoas dependena funcional de
o parte a cheii poteniale. (atributul K1 n R1 a devinit i cheie extern!)
3. Aducerea la forma normal trei FN3. Dac dup analiz relaiilor noi se afl c
n careva relaie exist dependen funcional dintre atributele non-cheie
recurgem la decompoziia ei n urmtorul mod:
Situaia iniial. Relaia care nu este n FN3 - R(K, A1,,An, B, B1,,Bm):
K cheia relaiei,
K { A1,,An, B, B1,,Bm } dependene funcionale,
100

B { B1,,Bm } dependena funcional a unor atribute non-cheie de alte


atribute non-cheie;
Situaia final. Relaiile decompuse:
R1(K, A1,,An, B) restul din relaia iniial R,
R2(B, B1,,Bm ) relaia nou n care a fost scoas dependena funcional
dintre atributele necheie. (atributul B n R1 a devinit cheie extern!)
Tot acea, dar ntr-o notaie puin mai formal
Fie este dat relaia R(K1, K2, F1, F2, F3, F4,),
unde {K1, K2} cheia relaiei,
F1, F2, F3, F4, atribute non-cheie. Atunci:
1. Analuza regulii formei normal unu NF1:
Relaia R este n forma normal FN1 dup definiie. Relaii care s nu fie n forma
NF1 nu exist.
2. Analuza regulii formei normal doi NF2:
Dac cheia relaiei R este compus i exist dependen funcional a atributelor
non-cheie de o parte a cheii, de exemplu K2 F2, atunci relaia R nu satisface
cerinele FN2 i se descompune n urmtoarele dou
R1(K2, F2); R2(K1, K2, F1, F3, F4, ).
3. Analuza regulii formei normal trei NF3:
Dac n relaile noi R1 i R2 exist dependen funcional dintre atributele noncheie, de exemplu F1 F3 n relaia R2, atunci relaia R2 nu satisface cerinele
FN3 i se descompune n urmtoarele dou
R1(K2, F2); R3(F1, F3); R4(K1, K2, F1, F4, ).
Rezume:
Aadar, relaia iniial R(K1, K2, F1, F2, F3, F4,) prin normalizare consecutiv a
fost descompus n trei relaii: R1(K2, F2), R3(F1, F3), R4(K1, K2, F1, F4, ),
toate fiind n FN3. Diagrama ER a schemei normalizat pn la forma FN3 va fi
urmtoarea:

K2
F2

R3

R4

R1
1

K1
K2
F1
F4

F1
F3

101

4. Analuza regulii formei normal NFBC:


Fie este dat relaia R(K, K1, K2, F1, F2, F3, F4, ) cu dou chei candidat
compuse i intersectate:
{K,K1} { F1, F2, F3, F4, },
{K,K2} { F1, F2, F3, F4, },
K1 K2,
K2 K1.
Relaia dat R satisface forma normal FN3, dar nu satisface forma normal
FNBC, deoarece n ea sunt dependene funcionale cu determinantul ne fiind cheia
potenial (K1 K2, K2 K1). Relaia R trebuie atunci descompus n dou relaii
n felul urmtor:
R1(K1, K2); R2(K, K1, F1, F3, F4, )
sau R1(K2, K1); R2(K, K2, F1, F3, F4, ).
Dou descompuneri posibile corespund acelor dou dependene K1 K2, K2
K1.
6.6. Corectitudinea procedurii de normalizare. Descompunere fr pierderi.
Teorema lui Heath
Noiuni generale
,
.
, , .
, ..
.
(
, ),
.
.
- ?
? ,
, ?
-
?
,
.
, .
, ,
,
(, ) . ..,
.
. ,
102

-
(recompune) (exact n forma
iniial). , ,
. (. . 4). ..

, (joinul natural).
6. R[ X ] R X
, X
R (.. X
R ).
7. R1 R2 R
, R
R :
R1 JOIN R2 R .

Definiie 1. Proiecia
a relaiei R pe mulimea de atribute X se numete
proprie dac mulimea de atribute X este o submulime proprie a mulimei de
atribute n relaia R (mulimea de atribute X nu coincide cu mulimea atributelor
relaiei R ).
R[ X ]

Definiie 2. Proieciile proprii R1 i R2 a relaiei R prezint o descompunere fr


pierderi (descompunere corect) dac relaia R ntocmai se recompune din ele prin
joinul natural pentru orice stare a relaiei R :
R1 JOIN R2 R .
Exemple
Exemplu 1. Fie este dat relaia R:
R
NUM NAME SALARY
1

Petcu

1000

Albu

1000

Considerm o decompoziie relaiei R n urmtoarele dou relaii:


R1

R2

SALARY
1

1000

1000

NAME SALARY
Petcu

1000

Albu

1000

Joinul natural a acestor relaii dup atributul comun SALARY va fi urmtorul:


R1 JOIN R2
103

NUM NAME SALARY


1

Petcu

1000

Albu

1000

Petcu

1000

Albu

1000

Vedem c R1 JOIN R2 R - decompoziia dat nu este decompoziie fr pierderi


(corect). Cu formatul italic sunt artate tuplurile aprute n plus.
, , ..
(
).
. :
R1

NUM NAME
1

Petcu

Albu

R2

NUM SALARY
1

1000

1000

, "NUM", R
. , ,
, ..
R , ,
R . , , R
:
NUM

NAME

SALARY

Petcu

1000

Albu

1000

Ceban

2000

13 R
, , .. U .
! :
NUM

NAME

Petcu

Albu
104

Ceban

14 R1
NUM

SALARY

1000

1000

2000

15 R2
:
NUM NAME SALARY
1

Petcu

1000

Albu

1000

Albu

2000

Ceban

1000

Ceban

2000

16 R1 JOIN R2

Concluzie. Ca decompoziia s fie fr pierderi, trebuie si impunem careva


restricii adiionale.
. , R
.

Teorema lui Hieth


Drept acestea restricii adiionale sunt dependenele funcionale (DF) care se
stipuleaz de ctre teorema lui Heath.
Teorema lui Heath. Fie este dat relaia R( A, B, C ) cu atributele A, B, C . Dac
are loc dependena funcional A B atunci proieciile R1 R[ A, B] i
R2 R[ A, C ] formeaz o decompoziie fr pierderi.
Demonstraie (prob).
Trebuie se demonstrm c R1 JOIN R2 R pentru orice stare a relaiei R .
. , R1 JOIN R2 R
R . ,
(ncludere)
: R1 JOIN R2 R R1 JOIN R2 R .
. r (a, b, c) R . ,
R1 JOIN R2 . , r1 ( a, b) R1
r2 (a, c ) R2 . r1 r2 ,
a A ,
(a, b, c) R1 JOIN R2 . , .
. r (a, b, c) R1 JOIN R2 .
, R .

105

, r1 ( a, b) R1 r2 (a, c ) R2 . .. R1 R[ A, B ] ,
c1 , r1 ( a, b, c1 ) R . , ..
R2 R[ A, C ] , b1 , r2 (a, b1 , c ) R .
r1 r2 A , a . ,
A B , , b b1 . ,
r2 (a, b, c ) R . . .
.
R1 JOIN R2 R . ,

, .
,
, .
.. ( 3)
, ,
, ..
.

7.

Criteriile de calitate a relaiilor slab i nalt normalizate



NF3 NFBC.
.
.
,
, ,
.
, ,

, .

,
,
NF3 NFBC. ,
, ,
.
NF3 NFBC
,
.


, ,
106

. ,
, .
, ,
NF3 NFBC ,
. ,
NF1 NF2
. .

. ,

.

,
. ,
.
, ,
.

( )
.
.
:
1.
. ;
2.
.
-.
;
3.
.
. .
. ER ;
4.
.
. ;
5.
.
.

, ,
.
.
,
,
, .

( ) .
107

7.1.
,
,
, .

.
(baza de date de a fi
adecvat lumii reale);
(uurina de
elaborare);
(,
) viteza de actualizare;
( ) viteza de
regsire a datelor.
:
la orice moment de timp starea bazei de date corespunde strii lumii reale pe
care o reprezint;
modificrile n starea lumii real aduc la modificrile corespunzetoare n
starea bazei de date;
restriciile din lumea real, reflectate n modelul logic se consider de baza
de date;
legturile dintre obiectele lumii reale sunt considerate n baza de date.

Uurin de elaborare nseamn cerina de a elabora ct mai puine proceduri
memorate i trigeri.
Proceduri memorate proceduri i funcii compilate care fac parte din componena
aplicaiei bazei de date. Se folosesc de utilizatori pentru realizarea biznesproceselor concrete (calculul salariului, imprimarea datelor finale, etc.).
Trigeri proceduri memorate strns legate de careva evenimente n lumea real i,
respectiv, n baza de date, ca de obicei modificri de stare a bazei de date. Dac
n baza de date este prevzut careva triger el se ndeplinete n mod automat la
apariia evenimentului de care acest triger este asociat. Este important c
utilizatorul nu poate ocoli ndeplinirea trigerului. Trigerul se ndeplinete
independent de modul n care a aprut evenimentul. Rolul principal al trigerului
automatizarea (uurarea) procesului de prelucrare i meninerea integritii
bazei de date. Trigerii pot fi att simpli ct i compui. Exemple: la introducerea
incorect a datelor se prevede apariia la ecranul monitorului a unui mesaj, la
termirarea mrfii n depozit se prevede propunerea de a nainta o comand
furnizorilor, la ncercarea de a elibera marfa care s-a terminat iar-i un mesaj.
108

Viteza executrii operaiilor de modificare a strii bazei de date


n procesul modelrii (La nivelul modelului logic) noi am determinat relaiile i
atributele acestor relaii. Cum se procedm multe relaii cu puine atribute sau
invers? Cum aceasta decizie va influena la operaiile de modificare a strii i
interogare? Corectitudinea deciziei se va evidenia n lucrul cu tabelele. S
analizm cum depinde n primul rnd viteza de lucru cu tabele la diferite operaii.
Viteza nserrii a datelor. Nu depinde de marimea tabelului neindexat. Depinde
slab de mrimea tabelului indexat. Depinde mai mult de complexitatea
indexului.
Viteza de modificare i tergere ale datelor. Depinde mult de mrimea tabelului
neindexat fiind c implic operaie de cutare prin verificri consecutive n
toate liniile. Depinde slab de mrimea tabelului indexat (exemplu) i slab
depinde de numrul atributelor. Depinde de numrul i complexitatea
indecilor.
,

Rolul principal a acestei operaie prezentarea informaiei din baza de date. Se
efectuiaz prin selectarea datelor din diferite tabele (operatorul SELECT din SQL).
Cea mai costisitoare operaie aici operaia de jonciune a mai multor tabele (ca
de obicei joinul natural) ( ).
Deci, cu ct mai multe legate ntre ele tabele au fost create cu att mai ncet se va
ndeplini interogarea datelor. Mai ales dac interogrile nu sunt cunoscute de la
bun nceput.
Rezultatele comparrii modelelor slab i nalt normalizate se poate reprezenta n
urmtorul tabel
Criterii

Relaii slab
normalizate
(NF1, NF2)

Relaii nalt
normalizate
(NF3, NFBC)

BD este adecvat universului de


discurs

MAI PUIN (-)

MAI MULT (+)

Uurin de elaborare i exploatare a


BD

MAI COMPLICAT (-)

MAI UOR (+)

Viteza de modificare a strii BD.


Operaiile INSERT, UPDATE,
DELETE

MAI MIC (-)

MAI MARE (+)

Viteza de selectare a datelor

MAI MARE (+)

MAI MIC (-)

109

Cum se vede din acest tabel relaiile nalt normalizate sunt mai bine proiectate (trei
plusuri i un minus). Ele mai bine corespund universului de discurs, cu mai mare
uurin se elaboreaz i exploateaz, viteza de modificare a datelor n ele este mai
mare. Dar pentru aceste avantaje trebuie pltit: se ncetinete selectarea datelor
compuse.
-
,
. ,

.
, ,
.

7.2. Sisteme OLTP i OLAP



() ,

. OLTP OLAP.
OLTP - On-Line Transaction Processing
;
OLAP - On-Line Analitical Processing
.
,
, ,
, ,
,
.
Schemele de relaii nalt normalizate sunt mai bine potrivite pentru OLTP-sisteme.
Cauza este c pentru OLTP-sisteme este specific:

Se ndeplinesc permanent multe tranzacii scurte;

Tranzaciile se ndeplinesc ca de obicei concomitent de la mai multe locuri


ndeptate de lucru (de la calculatoare unite n reea);

n caz de apariie a erorii sau blocaj de sistem tranzacia se anuleaz i se


restabilete (restaureaz?) starea BD care era la nceputul tranzaciei.
Aplicaii tipice a sistemelor OLTP sunt:
Sisteme de eviden n depozite;
Sisteme de procurare a biletelor la comand (n sfera de transport etc.);
110

Sisteme bancare care ndeplinesc operaii multiple de transfer a banelor de


pe cont pe cont;
etc.
Funcia principal a acestor sisteme const n ndeplinirea mulimilor de tranzacii
scurte. Tranzaciile sunt simple (a transfera banii der pe un cont pe altul, etc.) dar
problema este n aceea c ele sunt multe i se ndeplinesc concomitent de la mai
multe calculatoare din reea (intens se lucreaz cu muli utilizatori). n al treilea
rnd n caz de eroare tranzacia se abandoneaz i BD se ntoarce la starea care era
la nceputul tranzaciei.
OLTP- ,
, , , ..

. , , "
, ". , ,
-, , -, (

), -, ,
, (
, , ).
OLTP- , ,
.
(nomenclatoare, ghid,
ndreptar). , ,
. , OLTP-
.
OLTP-, , ,
(mai rapid i mai solid, cu mai mare siguran) . (abateri de
la aceast regul) ,
,
.

.

Schemele de relaii slab normalizate mai bine se potrivesc pentru OLAP-sisteme.


Aplicaia OLAP este un termin comun pentru sisteme de:

suport al proceselor de luare a deciziilor Decision Support System (DSS);

depozitare a datelor - Data Warehouse;

analiz intelectual a datelor - Data Mining (cutare a informaiilor utile n


volumuri mari de date slab structurate).
Sistemele OLAP sunt menite pentru determinarea dependenelor analitice dintre
colecii mari de date (de exemplu, ar fi bine s aflm cum este legat volumul
realizrilor de materiale de caracteristicele cumprtorilor posibili, cursul valutei,
preurile de petrol, etc.), pentru efectuarea analizei de tip ce ar fi dac presupunem
c .... Aplicaiile OLAP opereaz cu masive mari de date, deja obinute n
aplicaiile OLTP sau luate din alte surse.
111

Pentru sisteme OLAP este specific:

ntroducerea datelor noi se face relativ rar cu seturi mari de date (de exemplu
odat n semestru datele de bilan al realizrilor comerciale din aplicaia OLTP);

La ntroducere datele se supun careva prelucrri de totalizare sau de


curire, dat fiind faptul c datele ntr n sistem din diferite surse, sunt
prezentate n diferite formate, pot fi dublate, eronate etc.;

Datele odat ntroduse ca de obicei nu se terg;

Interogrile fa de sistem snt nereglamentate i destul de complicate.


Adesea ori noi interogri sunt formulate pentru precizarea rezultatului, obinut
din interogarea precedent;

Viteza ndeplinirii interogrii este important dar nu este critic.


OLAP-
, ,
. , ,
: ( , ),
, .
.
, "
?", " -
?"

(MOLAP - Multidimensional OLAP)
(ROLAP - Relational OLAP).
, , OLAP,
(ROLAP),
,
. , ..
.
, .
OLAP (online analytic processing,
) .

OLAP- .

OLAP-

- (slice-and-dice). OLAP- SQL-
,
,
. OLAP- ,
. OLAP-,
,
SQL, ,
. OLAP- ,
Microsoft SQL Server Analysis Services,
Hyperion Essbase, Oracle Express MicroStrategy.

112

OLAP- ,

.
,
SQL, , MDX- Calc-.
,
. OLAP .
OLAP , .
OLAP- . OLAP ,
, . OLAP-
,
() ,
OLAP, .
, OLAP- ,
. OLAP-
, ,
OLAP-.
OLAP-
, OLAP-. OLAP-
,
. OLAP. OLAP-
OLAP- .
, OLAP-
. OLAP-
.
, ,
.

8. Forme normale superioare


decomposition = descompunere
nlocuirea unei relaii cu schema R, cu o colecie de relaii cu sub-schemele
R1, R2, ..., Rn, astfel nct reuniunea acestor sub-scheme are ca rezultat R.
dependencies preserving decomposition = descompunere care
conserv dependenele.
Descompunerea (R1, R2, ..., Rn) a unei scheme de relaie R, astfel nct
nchiderea tranzitiv a dependenelor funcionale valabile pe R este aceeai
cu rezultatul reuniunii dependenelor funcionale valabile pe subschemele
descompunerii

8.1. Dependene multivalente i forma normal FN4


113

Considererm urmtorul exemplu: ducerea evidenei abuturienilor care susin


examene de admitere la universitate. Din analiza universului de discurs aflm c:
Fiecare abiturient are drept s susie examene de prob la mai multe faculti
concomitent;
Fiecare facultate are lista proprie de examene de ntrare;
Unu i acelai obiect poate fi susinut de abiturient la mai multe faculti;
Abiturientul este obligat s susie examene la toate obiectele facultii la care
el candideaz, nectnd la faptul c careva obiect el posibil la susinut la alt
facultate.
Fie trebuie s pstrm informaia despre abiturieni i obiecte care ei trebuie se
le susin. Vom ncerca s memorm informaia necesar ntr-o singur relaie
Abiturieni_Faculti_Obiecte:
Abiturieni_Faculti_Obiecte
Abiturient A
Albu
Albu
Albu
Albu
Petcu
Petcu

Facultate F
Matematic
Matematic
Fizic
Fizic
Matematic
Matematic

AFO
Obiect O
Matematica
Informatica
Matematica
Fizica
Matematica
Informatica

La momentul actual avem informaie c abiturientul Albu candideaz la dou


faculti (de matematic i de fizic), iar abiturientul Petcu numai la facultatea de
matematic. Din relaie concludem c AFO
, ,
, .
,
- .
, , ,
,
.
-
,
:
Relaia Abiturieni_Faculti_Obiecte modificat AFO
ANUM
FNUM
ONUM
1
1
1
1
1
2
1
2
1
114

1
2
2

2
1
1

3
1
2

Abiturieni
ANUM
1
2

ANAME
Albu
Petcu
Faculti

FNUM
1
2

ONUM
1
2
3

FNAME
Matematic
Fizic

Obiecte
ONAME
Matematica
Informatica
Fizica


.
- ,
, .

Anomalia de inserie. "-" , (Ciobanu, Matematic, Matematica),


(Ciobanu, Matematic, Informatica), ..
.
, (3, 1, 1),
(3, 1, 2).

Anomalia de eliminare. (Albu, Matematic, Matematica),


(Albu, Matematic, Informatica)
.

,
.
, (Albu, Fizic, Matematica),
(Albu, Fizic, Fizica), ,
.
"--"
,
115

.. .
, .. .

i totui este clar c careva interdependen ntre atribute exist. ntradevr


facultatea determin o list ntreag de obiecte dependen multivalent F O .
Aceeai facultate determin i o list ntreag de abiturieni dependen
multivalent F A . Aceasta nou interdependen se determin prin noiune de
dependen multivalent.
Definiie 1. Fie R relaia i X , Y , Z careva din atributele ei (mai concret,
submulimi neintersecte de atribute).
Atributele (submulimele de atribute) Y i Z depind multivalent de atributul X
(s noteaz X Y Z ) dac i numai dac, din aceea c n relaia R se conin
tuplurile r1 ( x, y, z1 ) i r2 ( x, y1 , z ) , urmeaz c n R s conine i tuplul
r3 ( x, y , z ) .
. r1 r2 ,
, R r4 ( x, y1 , z1 ) .
, Y Z , X , ""
X .

n justea definiiei uor ne convingem dac notm


r1 ( Matematic , Albu , Informatica ) , r2 ( Matematic, Petcu, Matematica ) . Este clar c
exist i tuplurile r3 ( Matematic , Albu , Matematica) i
r4 ( Matematic , Petcu, Informatica ) .
Deci, n relaia AFO exist dependen multivalent
aceea c

F A O .

Aceasta reies din

- ( F)
( A)
( O), ( F)
( O)
( A).
.
cu seturi ntregi.
. R X, Y, Z
XY, XYZ.
,
, , R r1=(x,y,z1) r2=(x,y1,z).
XY , y=y1. r3=(x,y,z)
r2=(x,y1,z) , , R.
XY.
R r4=(x,y1,z1), r1.
XZ. , R
XYZ.
???:
116

Se poate demonstra (Fagin R.) c n relaia R(X,Y,Z) are loc dependena


multivalent X Y dac i numai dac are loc i dependena multivalent
X Z . Aadar, dependenele multivalente ntotdeauna formeaz perechi
interlegate ntre ele, deaceea ele ca de obocei se prezint simbolic n form
X Y Z .
Aadar noiunea de dependen multivalent este o generalizare a noiunei de
dependen funcional.
Definiie 2. Dependen multivalent X Y Z s numete dependen
multivalent netrivial, dac nu exist dependene funcionale X Y i X Z .
"--"

|.


. . (Fagin R.[52])
:

Teorema lui Fagin. Fie X , Y , Z - mulimi neintersecte de atribute a relaiei


R ( X , Y , Z ) . Descompunerea relaiei R n proiecii R1 R[ X , Y ] i R2 R[ X , Z ]
este o descompunere fr pierderi dac i numai dac n R exist dependen
multivalent X Y Z .
. X Y Z , ..
XY XZ, .

Definiie 3. Relaia R este n forma normal patru FN4 dac i numai dac R este
n forma normal Boyce-Codd FNBC i nu conine dependene multivalente
netriviale.
"--" , 4.
,
:
FA
F
Matematic
Fizic
Matematic

A
Albu
Albu
Petcu
FO

F
Matematic
Matematic
Fizic
Fizic

O
Matematica
Informatica
Matematica
Fizica
117

,
"--".

Observm c n relaiile obinute au rmas numai atribute care formeaz cheia


potenial, dar n ele ca i pn acum nu sunt dependene funcionale.
, , .
, ,
,
.
.
,
.
|.

8.2. Forma normal cinci FN5


Dependenele funcionale i cele multivalente ne permit s supunem relaia
dat descompunerii fr pierderi pe dou proiecii. Anume, avem:
Din R(X,Y,Z), XY => R1=R[X,Y], R2=R[X,Z] descompunere fr pierderi
(Teorema lui Heath);
Din R(X,Y,Z), X Y Z => R1=R[X,Y], R2=R[X,Z] descompunere fr
pierderi (Teorema lui Fagin);
, R1 R2
.
ns pot fi aduse exemple de relaii pentru care nu exist nici o descompunere
fr pierderi pe dou proiecii, dar care pot fi supuse descompunerii fr pierderi
pe trei sau mai multe proiecii. Sau pentru care exist aa numit ndescompunere fr pierderi.
Aadar, afirmm aici c au loc cazuri cnd relaia dat poate fi supus
descompunerii fr pierderi pe n proiecii, dar pentru care nu exist nici o
descompunere fr pierderi pe un numr de proiecii mai mic n-1.
Pentru a demonstra aceast afirmaie aducem un exemplu.
3. R:
X

Z
118

1
1
2
1
2
1
2
1
1
1
1
1
14 R
R, , :
X
Y
1
1
1
2
2
1
15 R1=R[X,Y]
X
Z
1
2
1
1
2
1
16 R2=R[X,Z]
Y
Z
1
2
2
1
1
1
17 R3=R[Y,Z]
, R
R1 JOIN R2, R1 JOIN R3 R2 JOIN R3. , R1 JOIN
R2 :
X
Y
Z
1
1
2
1
1
1
1
2
2
1
2
1
2
1
1
18 R1 JOIN R2
, R. (
)
R ( R1, R2, R3 ).
R :
R1 JOIN R2 JOIN R3 =R.

,
, ,
.
119

.
Noua dependen s numete dependen de jonciune.
5. R , A, B, ..., Z -
( )
R. R
( A, B,..., Z )

,
A, B, , Z, .. R=R[A] JOIN R[B] JOIN ... JOIN
R[Z].
, R 3
:
*(XY, XZ, YZ).
, , ..
R,
, .

,
. , ,
R( X ,Y , Z )
R[ X , Y ] R[ X , Z ] ,
X Y Z . ,
:
( ). R( X ,Y , Z )
( XY , XZ ) ,
X Y Z .
..
( ???),

. ,
, ..,
, .
, , .
6. ( A, B,..., Z )
,
:
A, B, ..., Z
R,

120

A, B, ..., Z
R.
,
R(X,Y,Z), X Y Z => R1=R[X,Z], R2=R[X,Y],
X R1 R2 (?) .
. !!! , X
. -: A, B, ..., Z

R,
,
. .., ,
NFBC. (
(? NFBC? )
,
. , ? Va fi o descompunere trivial
care nu va mbunti calitatea schemei. De dat aceast remarc n concluzii
referitor la normalizare consecutiv cu scopul eliminrii anomaliilor. Sau n
teorema lui Heath.)
:
7. ( A, B,..., Z )
, :
A, B, ..., Z
R.
A, B, ..., Z
R.

8. R (5)
,
.
5 ,
:

9. R 5,
.
, R
, .
3, , ,
,
, 5 (, ,
). ,
3 5. ,
R:
(i) R (..
).
121

(ii) ( , ):
R r1 ( x, y , z1 ) , r2 ( x, y1 , z ) r3 ( x1 , y , z ) ,
, R r4 ( x, y , z ) .
. , (i) (ii),
4, 5.
. , R 4.
4, ,
. ..
, .
( ), ,
, .
3 , ( ,

,
). .
, 5.
.
( XY , XZ , YZ ) . , .
, XY , XZ YZ
R .
?
, R1 R[ X , Y ] , R2 R[ X , Z ] R3 R[Y , Z ]
R (
,
R 3, ,
(ii)).
, ,
.

.
.

. ,

. ,

. (ii)
. .

122

NF5
.
-
(, . 335).
:
1.

( );
2. (FD, MV, S)

.
.
.
( 5)

3. ,
5.
4 ( ). ,
, ,
, .
,
. , ,

.
5 ( 4).
, .
5 ( 5).
,
.

3 , ,
-.
R - () ,

. .
-
, ,
.

.
( ) Y Z X, ( X Y Z ),
, , R r1 ( x, y, z1 )
r2 ( x, y1 , z ) , R r3 ( x, y , z ) .
,
,
123

,
.
,
,
. ( )
X Y Z
, X Y X Z .
R (4) ,

.
,
,
.
.
R (5) ,
.

9. Axiomele lui Armstrong. Clauze de deductie


Axiomele de deducie a lui Maier. Axiomele Armstrong. Teorema despre completitudinea
axiomelor Armstrong.

Un set de axiome care precizeaz modul n care, pornind de la o mulime de


dependene funcionale date, se pot obine noi dependene funcionale.
Cum s-a demonstrat mai sus formele normale FN1-FN3, FNBC ale unei relaii
utilizeaz o noiune foarte important, i anume dependena funcional ntre
diverse submulimi de atribute. Stabilirea dependenelor funcionale este o sarcin
a administratorului de date (a proiectantului) i depinde de semnificaia
(semantica) datelor ce se memoreaz n relaie. Operaiile de actualizare a datelor
din relaie (nserare, tergere, modificare) nu trebuie s ncalce dependenele
funcionale existente dintre datele concrete (trebuie s pstreze consistena
datelor).
Dependena funcional este considerat ca o proprietate (restricie) pe care
baza de date trebuie s-o ndeplineasc pe perioada existenei acesteia: se adaug
elemente n relaie numai dac dependena funcional este verificat, sau se poate
cere ca anumite dependene funcionale s nu apar (?). Dac ntr-o baz de date
exist dependene funcionale, atunci poate s apar o inconsisten a bazei de date,
deci este necesar eliminarea acestora (???).
n procedurele de normalizare scopul principal a fost minimizarea redundanei
datelor. Am vzut c redundana este strns (univoc) legat de schema relaional,
mai concret de mulimea dependenelor funcionale. Scopul a fost atins prin
eliminarea consecutiv a dependenelor nedorite din punct de vedere a restriciilor
formelor normale inferioare FN1-FNBC.
124

Avantajul normalizrii ns const nu numai n minimizarea sau eliminarea


redundanei datelor. Mai important este faptul c normalizarea se reduce la
transformarea dependenelor funcionale dintre atribute n constrngerile
(restriciile) de cheie. ntradevr, fie avem scema R(A,B,C,D,E,F) cu cheia
{A,B,C} i care conine dependena funcional {A,B}{E,F}. n procesul de
normalizare noi am descompus schema iniial R n dou scheme: R(A,B,C,D) i
R2(A,B,E,F). Atributele A, B n relaia R formeaz cheia extern.
Majoritatea SGBD-urilor nu susin restriciile de dependene funcionale dintre
atribute (DF atributare), dar toate SGBD-urile relaionale susin controlul
restriciilor de cheie i restriciilor refereniale. Acest moment este foarte
important, deoarece utilizatorii aplicaiilor cu baze de date trebuie s fie siguri c
toate datele n baz satisfac dependenele funcionale n orice stare a bazei de date.
Deci, putem conclude: transformarea dependenelor funcionale n restricii de
cheie substanial mbuntte calitatea schemei relaiei, i anume, din dou
puncte de vedere:
Minimizarea sau eliminarea total a redundanei datelor;
Asigur susinerea controlului restriciilor de integritate din partea SGBD.
Proiectanii aplicaiilor cu baze de date trebuie ct mai precis s stabileasc toate
(de dorit) dependenele funcionale reieind din semantica (sensul) datelor. Nu
ntotdeauna ns este evident rezolvarea acestei probleme. Cauza adesea ori
const n aceea c noi pur i simplu nu am neles bine sensul. Se pune ntrebarea
dac nu se poate stabili alte dependene funcionale pornind de la acelea precis
stabilite.
Rspunsul este pozitiv din dou puncte de vedere:
Este evident c mulimea de dependene valide n R este finit, fiindc
finit este schema R;
Dependenele funcionale sunt afirmaii logice i trebuie se supun regulilor
de deducie logic.
Aadar, dependenele funcionale prezint careva afirmaii logice pe mulimi i
trebuie se satisfac careva expresii logice. De fapt operaiilor algebrei pe mulimi.
Deaceea pot fi obinute regule n care, pornind de la o mulime de dependene
funcionale date, se pot obine noi dependene funcionale.
ntradevr exist un set de reguli de deducie care precizeaz modul n care,
pornind de la o mulime de dependene funcionale date, se pot obine noi
dependene funcionale. n acest caz apare problema important de a gsi toate
dependenele funcionale posibile aa numit nchiderea mulimii de dependene
funcionale.

125

Fie dat o relaie R ( A) i o mulime F de dependene funcionale ( F


dependene). Atunci, determinarea nchiderii mulimii F de dependene
funcionale const n urmtorul:
Pentru mulimea F de dependene funcionale se cere determinarea mulimii F ,
numit nchiderea mulimii F , i care conine toate dependenele funcionale
obinute logic din F .
Se poate spune c mulimea F de dependene funcionale implic logic o
dependen funcional f dac pentru orice relaie n care F este ndeplinit
rezult c i f este ndeplinit.
Pentru determinarea nchiderii F se pot aplica repetat urmtoarele trei reguli
(axiomele lui W. Armstrong, 1974):
1. Reflexivitatea. Dac Y X , atunci X Y .
2. Extinderea (mrirea, augmentarea). Dac X Y , atunci X Z Y Z .
3. Tranzitivitatea. Dac X Y i Y Z , atunci X Z .
Aceste reguli sunt logice (determin numai dependene funcionale din nchiderea
F ) i complete (aplicaiiile repetate determin toate dependenele funcionale din
nchiderea F ). Plecnd de la aceste reguli se poate demonstra c i urmtoarele
reguli adiionale sunt adevrate:
4. Reuniunea (aditivitatea). Dac X Y i X Z , atunci X Y Z .
5. Descompunerea. Dac X Y Z , atunci X Y .
6. Pseudotranzitivitatea. Dac X Y i W Y Z , atunci W X Z .
Acestea ase regule se numesc axiome sau clauze de deducie (axiomele de
deducie a lui Maier ?).
Aadar, axiomele (clauzele) de deducie reprezint afirmaia: dac relaia R
satisface careva F dependene, atunci ea trebuie s satisfac i alte F dependene.
Ca de obicei se folosesc acestea ase regule de deducie (clauze de deducie) cu
ajutorul crora se obin n mod deductiv toate dependenele funcionale. Fie relaia
R, definit pe mulimea de atribute A i fie W, X, Y, Z A. Pentru simplicitate
notm reuniunile mulimilor ca: X Y XY , X Z XZ i aa mai departe. Atunci
au loc regulele (axiomele) de deducie:
R1. Regula reflexivitii. Dac Y X , atunci X Y .
O dependen X Y este trivial, dac Y X . Mulimea, evident, determin
toate submulimile ei.

126

R2. Regula extinderii (mririi, augmentrii, incrementrii). Dac X Y ,


atunci XZ YZ pentru orice Z .
O form mai general. Dac X Y i Z W , atunci XW YZ . Din Z W
W Z , deaceia avem o form particular a acestei regul: din X Y i W Z
XW YZ .
R3. Regula tranzitivitii. Dac X Y i Y Z , atunci X Z .
R4. Regula aditivitii (de uniune). Dac X Y i X Z , atunci X YZ .
Consecina regulei R2: XXYZ sau XYZ, fiind c XX=X dup definiie.
R5. Regula proiectivitii (de descompunere, decompoziie). Dac X YZ ,
atunci X Y (i X Z , evident). Este invers a regulei R4.
R6. Regula pseudotranzitivitii. Dac X Y i YW Z , atunci XW Z .
Primele trei regule se numesc axiomele lui Armstrong (William W. Armstrong,
1974). Armstrong a demonstrat c cu ajutorul primelor trei regule pot fi deduse
regulele 4, 5 i 6.
Regula 1 de reflexitate nseamn c mulimea de atribute X n mod funcional
determin ori i ce submulime proprie Y .
Regula 2 de augmentare (mrire, alipire) nseamn c pot fi adugate atribute
la ambele pri (dreapta i stnga) a dependenei funcionale.
Regula 3 de tranzitivitate ...
Regula 4 de reuniune permite combinarea a dou dependene funcionale cu
aceeai parte stng.
Regula 5 de descompunere permite eliminarea atributelor din partea dreapt a
dependenei funcionale.
Regula 6 de pseudotranzitivitate este o mbinare a regulelor de augmentare
(alipire, extindere) i tranzitivitate; dup regula de extindere dac X Y , atunci
WX WY i dac are loc i WY Z , atunci conform regulei 3 de tranzitivitate
avem WX Z .
Axiomele de deducie ne permit deci s stabilim n mod formal toate dependenele
funcionale n relaia dat. Dat fiind faptul c regulile R1-R6 se deduc din axiomele
Armstrong (AA), vom spune c i axiomele Armstrong constituie o mulime de
reguli nchis i complet.

127

Definiie 1. Vom numi nchiderea a mulimei F de dependene funcionale


cea mai mare mulime de dependene F , care poate fi obinut ca rezultatul
aplicrii multiple a clauzelor de deducie pe mulimea iniial a dependenelor
funcionale.
n alt form:
Definiia 2. nchiderea unei mulimi de dependene funcionale F+ reprezint
mulimea tuturor dependenelor funcionale care se pot deriva din mulimea F,
aplicnd axiomele Armstrong. Este clar c F+=(F+)+.
Definiia 3. Dou mulimi de dependene funcionale F i G se numesc
echivalente, notat cu F G , dac F+=G+. Vom mai spune n acest caz c F acoper
G (sau G acoper F).
Dac F G , adica F+=G+, atunci orice dependen XY ce urmeaz logic din F
urmeaz i din G.
Exemplu: mulimea F={AB, BC, AC, ABC, ABC} se deduce din
mulimea F={AB, BC}, deci mulimea G acoper mulimea F (G este
echivalent cu F sau F G).
Utilizarea mulimei F este mai preferat: mai puin control la modificare. Reies c
trebuie se tindem spre minimumul dependenelor, acesta favorizez consistena i
integritatea.
nchiderea F a mulimii de dependene F determin toate dependenele
funcionale, care pot fi deduse din dependenele, declarate iniial ca o parte a
schemei relaiei date. nchiderea F a dependenelor funcionale se folosete n
procesele de normalizare cu scopul nbuntirii calitii schemei relaiei, n primul
rnd pentru a elimina redundana datelor.
(nchiderea)
, .

Aici trebuie de redactat i adugat despre acoperire minimal.


9.1. Determinarea cheilor poteniale din dependenele funcionale
Axiomele de deducie o metod alternativ de determinare a cheilor relaiilor
(alternative, poteniale).
Determinarea formal a supercheiei relaiei:
Fie dat relaia R( X , Z ) cu schema ( X , Z ) . Dac dependena funcional X Z
conine toate atributele schemei, atunci X este supercheie.
9.2. Exemplu formal
128

n calitate de exemplu a utilizrii n practic a axiomelor de deducie vom


considera un proces de normalizare a schemei cu atribute care nu au un sens
concret. Pornind de la o mulime de dependene funcionale vom stabili cheile
schemei bazei de date i vom efectua normalizarea.
Considerm relaia R=R(A, B, C, D, E, F, G, H). n raport cu schema R au loc
dependenele funcionale d1, d2, d3, d4:
d1: A{B, C, D}
d2: BC
d3: E{F, G, H}
d4: G{H, E}
n form grafic (?):
A

Din dependenele d1-d4 putem obine altele trei d5, d6, d7:
d5: {A, E}{B, C, D, F, G, H}
d6: G{E, F, H}
d7: {A,G}{B, C, D, E, F, H}

(regula R2 extinderii)
(regulile R5, R3, R4)
(regula R2 extinderii)

Dependena d6 se obine din d3, d4: GE, E{F, H} G{F, H}; GE,
G{F, H} G{E, F, H}.
n baza dependenelor d5-d7 concludem c sunt dou cheie: {A, E} i {A, G}. n
mod arbitrar, alegem n calitate de cheie primar mulimea {A, E}. Dar nu uitm c
i G este componenta cheii primare.
Analizm dependenele obinute:
1. Dependenele de A, E i G (d1, d3, d4, d6) ncalc (nu satisfac) regula FN2;
2. Dependenele EG i GE (d3, d4, d6) nu ncalc regula FN2, deoarece
determinanii lor E i G sunt atribute cheie.
Putem elimina G i E din prile drepte al d3, d4, i d6. Dup acest pas regula FN2
o ncalc dependenele:
d1: A{B, C, D}
d3: E{F, H}
d4: GH
d6: G{F, H}

129

Pentru prima descompunere (proiecie) putem alege oricare din aceste dependene,
spre exemplu d1. Obinem relaii:
R1=R1(A, E, G, F, H),
restul din R
R2=R2(A, B, C, D)
relaie nou
Dependenele d3, d4 i d6 ncalc regula FN2 n relaia R1. Descompunerea
dup d3 ne aduce la relaiile:
R1= R1(A, E, G),
restul din R1
R2=R2(A, B, C, D),
R3=R3(E, F, H)
relaie nou
Schemele obinute R1, R2, R3 nu mai ncalc regula FN2. Descompunerea dup
d3 ne a eliminat i nclcrile FN2 n d4 i d6.
Dependena d2 ncalc regula FN3 n relaia R2. Descompunerea R2 dup
dependena d2 ne aduce la schema final a bazei de date n forma normal FNBC:
R1= R1(A, E, G),
R2=R2 (A, B, D),
restul din R2
R3=R3(E, F, H),
R4=R4(B, C)
relaie nou
Acum putem reprezenta aceast schem i n form de ER diagram.
R4
B
C

R3

R2
A
B
D

R1

E
F
H

A
E
G

Observaie. Cum am dedus, folosind clauzele de deducie n relaia iniial R sunt


dou cheii: {A, E} i {A, G}. Deci, avem cazul ce ine de forma normal FNBC. n
rezultatul normalizrii am obinut ns c numai n relaiile R1, R 2 i R3 toi
determinanii a dependenelor funcionale sunt cheile relaiei R , aa cum cere
regula FNBC. Determinantul dependenei funcionale n relaia R 4 nu este
atributul cheie a relaiei R . Acest rezultat se datorete faptului c relaia iniiale R
nu era n FN3, anume n ea era dependen funcional dintre atribute noncheie
BC. Aceast dependen i a fost plasat ntr-o relaie separat R 4 .

130

10. ER- . -
.. , "

, .. -
".
,
.
( ""
relation - ""), .
,

,
.
,
,
.
.

.
,
,

. ,
.

. ,
.

ER- - (ER EntityRelationship). ,
ER-
-. ER-
,
.
- 1976 .
- .
( , IDEF1X,
131

.). , ,
, . ,
- -
.
,
(), .
-
, .
ER, .
10.1. "-"
( ER-)
1. - ,
.

.
"",
"", "".

:

. 1
2. -
.
, "" "
".
, ..
,
.
3. - ,
.

(, ).
""
" ", "", "", "", "", ""
..

132

. 4
,
:
4. - ,

. ,
.

. 2
.
:
5. - .
.
,
. ,
- " ", "
".
, :
.
: "",
"" ..
. .
:

. 5
-- ,
() (). -133

,
, .
-- ,
() ().
. ( "")
, ( "") - .
. 4.
-- ,
,

. --
, .
- .
:

. 6
"" ,
,
.
"" ,
.
( . 4).
,
:
< 1> < >
< > < > < 2>.
, .
. 4 :
: " ".
: "
".
10.2. ER-
(Exemplu de elaborare a unui ER-model simplu)
, ER- ,
, ,

.
( ?)
134


.

, .
-
(ER - Entity-Relationship).
:
.
-.
();

( ER-
);

ER- .
. -
, ,
.
- (,
) , (,
()). ,
- .

10.3. ER-
ER-
:
1. .
2. .
3. .
ER- , ,
.
, , .
, ,
ER-.
,
.
, .
, ,
(, ..).
, ()
, , () ,
:
135

, .
.
.
-
,
( ):
, .
- .

(?) - , ? ,
.

. 7
. 8
(?) , , ,
?
"
" " ".
:
, ,
. ,
.
"" "" ?
,
"" ""? ,
,
. .
.
( ).
, ,
136

. ,
,
. , ,
:
. ,
:

, , .
, ,
.
, ,
, .

.
.
,
, :
- ,
. .
- .
- .
- .
- .
(?) - , .
?
- .
- .
- .
(?) - .
, .
(?) - ,
? "", "
".
(?) -
, .
- ?
137

- .
.
, .
- .

. , .
, . ,
.
, , .
, - .
" " .
"" ""
--. , ,
--.
. "
". "" ""
- "
", "
", "
",
"
". " " "
" " ".
, "" "".
" ".
" ". ,
.
:

138

. 9

;
. ;
10.4. ER-
ER-
. ,
.
,
,
, .. ,
. 9 , , :

, .
, , ,
"CUST_DETAIL" "PROD_IN_SKLAD",
" " " ", ,
-
, ,
.
, 3.

139

. 10
.


, .

- (ER - Entity-Relationship).
-
.
ER-.
.

. ( !),
,
(
),
.
,
3. ,
.
, ER-,
,
,
,

,
..

140

:
, , , ;
ER , , ;
ER , , .

141

10.5. Exemplu concret. BD Vinzari (Depozit)


,

, ,

, .
Elaborarea sistemului informaional cu baze de date const din mai multe etape,
principalele dintre care sunt elaborarea proiectului (modelarea sistemului) i
realizarea bazei de date fizice n cadrul unui SGBD conret. n acest paragraf n
calitate de exemplu ne vom preocupa de elaborarea proiectului logic a bazei de
date DEPOZIT.
Problema proiectrii a sistemului informaional are cel puin dou subprobleme:
Colectarea informaiei i modelarea business-proceselor;
Elaborarea structurei a sistemului informaional.
La modelarea business-proceselor trebuie de considerat trei aspecte:
Obiectele cu care opereaz business-procesul;
Procesele implicate n business;
Evenimentele care gestioneaz procesele.
Exist dou modaliti (tehnologii) de modelare a sistemului informaional cu baz
de date:
Modelare logic formal. Reprezint procedeie de normalizare consecutiv a
relaiilor cu scopul nbuntirii calitii proiectului BD;
Modelare semantic, bazat pe sensul datelor. Este o modelare a structurelor
de date reieind din sensul (semantica) acestor date.
Ca instrument de modelare semantic se folosesc diferite variante de diagrame
Entitate-relaie (ER). Diagramele se bazeaz pe reprezentarea n forma grafic a:
Entitilor (obiectelor i proceselor);
Atributelor entitilor;
Legturilor dintre entiti.

3. Schema logic a bazei de date DEPOZIT


Fie avem de elaborat baza de date pentru o firm de comer angro (cu rdicata).
ncepem cu studierea acestui domeniu concret: vorbim cu experii, citim
documentaie, studiem documentele de ntrare/ieire
Aici trebuie s clarificm:
142

Ce prezint domeniul concret al lumii reale?


Care este scopurile elaborrii?
Ce informaie trebuie s fie memorat n BD?
Aadar, aflm c domeniul concret prezint:
O firm de comer care este posesor de ncperi de depozitare a mrfurilor.
Activitatea ei const n colectarea mrfurilor de la furnizori angro i vnzarea
mrfurilor cu rdicata clienilor.
Din convorbiri cu managerul de comer a firmei aflm c BD trebuie s:
Pstrez informaie despre mrfuri, furnizori i clieni;
S duc evidena mrfurilor primite de la furnizori prin facture de primire
(document de ntrare);
S duc evidena mrfurilor n depozit existente n prezent;
S formez i s tipreasc facture de eliberare a mrfurilor (document de
ieire);
Din analiza aceastei informaie determinm:
Entitile (obiectele i procesele);
Atributele entitilor;
Legturile dintre entiti.
Acum putem construi diagrama ER a bazei de date. Aceasta va fi schema logic a
bazei de date.

143

Fig. 2. Diagrama ER a bazei de date VINZARI

Marfa
Furnizori

Clienti

MarfaId
MarfaName
Producator
....

FurnId
FurnName
FurnPhone
FurnCont
...

ClientId
ClientName
ClientPhone
ClientCont
....

Depozit
FacturaLivrare
FactLivrId
Date
FurnId
LivrareSum
...

Livrari
NumLivrare
FactLivrId
MarfaId
Volume
Price
....

NumPozitie
MarfaId
Volume
Price
....

FacturaVinzare

Vinzari
NumVinzare
FactVinzId
MarfaId
Volume
Price
TVA
....

FactVinzId
Date
ClientId
VinzareSum
...

n continuare vom prezenta formatul simplist al operaiilor SQL de creare a


tabelelor precum i de manipulare cu datele din tabele - selectare, nserare,
modificare i eliminare.
Crearea tabelelor
CREATE TABLE Customers
(Cstid CHAR(10) NOT NULL PRIMARY KEY,
Cstname VARCHAR(30) NOT NULL,

Cstabout TEXT NULL


);
CREATE TABLE Depozit
(Vdcid CHAR(10) NOT NULL PRIMARY KEY,
Vdcname VARCHAR(20) NOT NULL,

Cstabout TEXT NULL


);
CREATE TABLE Hire
(Ordnum INTEGER NO NULL PRIMARY KEY,
Dategive DATE NOT NULL,
Cstid CHAR(10) NOT NULL,
Vdcid CHAR(10) NOT NULL,
Datereturn DATE NULL,

Payment NUMBER(4,2) NULL,


,
CONSTRAINT Constr1 FOREIGN KEY (Cstid) REFERENCES Customers
(Cstid),
CONSTRAINT Constr2 FOREIGN KEY (Vdcid) REFERENCES Depozit
(Vdcid),
);
Selectarea datelor
SELECT Vdcid, Vdcname, Vdcabout
FROM Depozit
WHERE Vdcname=MATRIX;
SELECT Cstname, Vdcname, Dategive
FROM Customers, Hire, Depozit
WHERE Dategive < {10.02.03} AND Datereturn = NULL;

nsersrea datelor noi


INSERT
INTO Customers (Cstid, Cstname, Cstpassport, Cstphone)
VALUES (STD23, ALBU ION, A123456789, 22-22-22);
Modificarea datelor
UPDATE Depozit
SET Vdcount = 4
WHERE Vdcid = MTR5;
Eliminarea datelor
DELETE
FROM Customers
WHERE Cstid = ALB3;

146

11. Limbajul bazelor de date relaionale SQL. Elemente de baz a


limbajului
11.1. E
Obiectele bazei de date n SQL:
TABLE tabele memorate (tabele de baz);
SCHEMA scheme. Seturi individuale de obiecte asociate de un utilizator
concret posesorul schemei. De exemplu: USER1.EMPLOYEE_TBL,
USER2.EMPLOYEE_TBL.
. : CONNECT
<USER_NAME>@<DATABASE_NAME>
DOMAIN domene. Tipuri de date cu sens;
INDEX indeci. Indexarea dup cmpuri;
VIEW viziuni (relaii virtuale, tabele calculate n memoria RAM);
SYNONIM sinonime (ALIAS) ale tabelelor.
1. Tipuri (categorii) de comenzi n SQL (operatori statements, comenzi
commands) :
DDL (Data Definition Language) limbajul (sublimbajul) de definire a
datelor (structurilor de date);
DML (Data Manipulation Language) limbajul (sublimbajul) de manipulare
a datelor;
DQL (Data Query Language) limbajul (sublimbajul) de interogare a datelor;
DCL (Data Control Language) limbaj (sublimbaj) de control a datelor;
Comenzi de administrare a datelor;
Comenzi de gestionare a tranzaciilor.
2. Comenzile principale a sublimbajului DDL (definirea structurilor date):
CREATE/ALTER/DROP TABLE crearea/modificarea/suprimarea tabelelor;
CREATE/ALTER/DROP
INDEX

crearea/modificarea/suprimarea
indexului;
CREATE/ALTER/DROP SCHEMA crearea/modificarea/suprimarea
schemei;
CREATE/ALTER/DROP DOMAIN a domenului;
CREATE/ALTER/DROP SYNONIM a sinonimului (ALIAS);
CREATE/ALTER/DROP VIEW a viziunii (relaie virtual);
3. Comenzile principale a sublimbajului DML (manipularea sau actualizarea
datelor):
INSERT
147

UPDATE
DELETE
4. Comenzile principale a sublimbajului DQL (interogarea datelor):
SELECT
5. Comenzile principale a sublimbajului DCL (comenzile de protecie i gestiune a
datelor crearea i eliminarea obiectelor, care determin (regleaz) drepturile
de acces la baza de date, precum i acordarea privilegiilor de niveluri cuvenite
pentru utilizatori:
CREATE/ALTER/DROP PASSWORD
GRANT acordarea privilegiilor de acces;
REVOKE anularea (revocarea, abrogarea) privilegiilor;
6. Comenzile de administrare a datelor:
START AUDIT revizia conturilor;
STOP AUDIT
7. Comenzile de gestionare a tranzaciilor:
SET TRANZACTION a stabili tranzacia;
COMMIT a ndeplini, a realiza tranzacia;
ROLLBACK a anula tranzacia;
SAVEPOINT a stabili puncte de trecere n interiorul tranzaciei.
Structuri (tipuri) de date
1. iruri de simboale
CHARACTER (n)
CHARACTER VARYING (n)
VARCHAR2 Oracle)

(VARCHAR Microsoft SQL Server,

2. Date numerice
DECFIMAL (n,m)
INTERGER
SMALLINT
FLOAT (p)
REAL (s)
DOUBLE PRESISSION (p)
3. Data i ora
DATE
148

TIME
INTERVAL
TIMESTAMP
**YEAR
**MONTH
**DAY
**HOUR
**MINUTE
**SECOND
4. Constante literale abc123.
5. Date de tip boolean (logical or boolean). Au valori TRUE, FALSE,
UNKNOWN.
6. Tipuri de date create de utilizator:
CREATE TYPE Person AS OBJECT
(NAME varchar(30),
SALARY real(p),
BIRTHDAY date);
11.2. CREAREA TABELELOR. SINTAXA GENERAL:
:
;
;
;
;
;
;
.
CREATE TABLE <tabel_name>
(field_definition_comma_list constraint_definition_comma_list);
field_definition_comma_list specificarea cmpurilor dup form
<camp_nume> <tip_date_lungimea> [NULL NOT NULL],
constraint_definition_comma_list specificarea constrngerilor (restriciilor),
care asigur consistena i integritatea (referenial n primul rnd) datelor
( ,
).

149

Remarc: Ordinea nu import


Exist trei tipuri de restricii n tabele de baz:

definiie cheie primar ( );

definiie cheie extern ( );

definiie condiii de control ( ).


Pentru formularea acestor restricii n comanda CREATE TABLE sunt susinute
urmtoarele opii (opii de constrngeri) PRIMARY KEY, UNIQUE, FOREIGN
KEY, REFERENCES, DEFAULT, CHECK.
Sintaxa general pentru crearea cheilor:
cheie primar/proprietatea UNIQUE
PRIMARY KEY (colomn-commalist)
UNIQUE (colomn-commalist)
cheie extern
FOREIGN KEY (colomn-commalist)
REFERENCES <base_table_name> [(colomn-commalist)]
[ON DELETE <option>]
[ON UPDATE <option>]
<option> NO
ACTION, CASCADE, SET DEFAULT sau SET NULL. Opia NO ACTION,
setat implicit este identic cu strategia RESTRICTED analizat n teorie..
:
CREATE TABLE Supplier
(SupplId CHAR(6) NOT NULL PRIMARY KEY,
SupplName VARCHAR(30) NOT NULL,

SupplAbout TEXT NULL


);
CREATE TABLE InvoiceSuppl
(InvSupplId CHAR(6) NOT NULL PRIMARY KEY,
InvSupplDate DATE NOT NULL,
InvSupplier CHAR(6) NOT NULL FOREIGN KEY
REFERENCES Supplier (SupplId),
InvSupplSum DECIMAL(18,6) NOT NULL,
InvSupplDepozit CHAR(6) NOT NULL FOREIGN KEY
REFERENCES Depozit (DepId),
DEFAULT (InvSupplDate = Date()));
CREATE TABLE Delivery
(OrdNum INTEGER NOT NULL UNIQUE,
150

InvoiceSuppl CHAR(6) NOT NULL,


Ware CHAR(6) NOT NULL,
Volume INTEGER NULL,
Price DECIMAL(18,6) NULL,
CONSTRAINT Delivery1 FOREIGN KEY (InvoiceSuppl)
REFERENCES InvoiceSuppl (InvSupplId),
CONSTRAINT Delivery2 FOREIGN KEY (Ware)
REFERENCES Wares (WareId),
CHECK (Volume >5));
ER-
11.3. INTRODUCEREA DATELOR N TABELE

INSERT INTO <_._>


VALUES ( 1, 2, , [NULL], );

INSERT INTO Delivery


VALUES (109, ORH023, TEL072, 15, 2499.99);
1 record inserted

INSERT INTO <_._>


(1, 2, )
VALUES (1, 2, );

INSERT INTO Delivery (OrdNum, Supplier, Ware)


VALUES (109, ORH023, TEL072);
1 record inserted

INSERT INTO <_._>


[(1, 2, )]
SELECT [ * | (1, 2, )]
FROM <_._>
151

[WHERE < >];


( WHERE)
, ,
.
INSERT INTO ORDERS_TMP
SELECT * FROM ORDERS_TBL
20 records inserted
INSERT INTO ORDERS_TMP
SELECT * FROM ORDERS_TBL
WHERE COST >= 49.99;
7 records inserted
, , ,
.
INSERT INTO ORDERS_TMP (ORD_NUM, CUST_ID, PROD_ID, QTY,
COST)
SELECT (ORD_NUM, CUST_ID, PROD_ID, QTY, COST)
FROM ORDERS_TBL
WHERE COST>=49.99;
7 records inserted
, , .

11.4. MODIFICAREA DATELOR N TABELE


UPDATE <_._>
SET <_ = >
[WHERE <>];

UPDATE <table_name >


SET <field_name> = <valuie >
[WHERE <condition>];

152

<table_name> <schema_name.table_name>


UPDATE Delivery
SET Volume = 5
WHERE OrdNum = 109;
1 record updated

UPDATE Delivery
SET Volume = 5;
109 records updated

UPDATE <_._>
SET <C1 = 1>
[, 2 = 2,
3 = 3, ]
[WHERE <>];

UPDATE <table_name >


SET <field_name1> = <valuie1 >,
<field_name2> = <valuie2 >,
...,
<field_nameN> = <valuieN >
[WHERE <condition>];

UPDATE Delivery
SET Supplier = BEL007,
Price = 2599.99
WHERE Ware = TEL072;
7 records updated
11.5. TERGEREA DATELOR DIN TABELE


153

DELETE FROM < , >


[WHERE <, >];

DELETE FROM <table_name>
[WHERE <condition>];
DELETE , .

DELETE FROM Delivery


WHERE ORD_NUM = 109;
1 record deleted
DELETE FROM Delivery;
109 records deleted
11.6. EXTRAJEREA (SELECTAREA) DATELOR DIN TABELE

:
SELECT < , >
FROM < , >
[WHERE <, >];
( )
:
SELECT <* | field_name1, field_name2, ..., field_nameN>
FROM <table_name1, table_name2, ..., table_nameN>
[WHERE <condition>];

SELECT *
FROM Delivery
WHERE Volume > 20 AND Price > 2999.00;

154

SELECT Delivery.OrdNum, Supplier.SupplName, Wares.WareName,


Delivery.Volume, Delivery.Price
FROM Supplier, Delivery, Wares
WHERE (Supplier.SupplId = Delivery.Supplier) AND (Delivery.Ware =
Wares.WareId);
( ORDER BY)
SELECT <* | field_name1, field_name2, ..., field_nameN>
FROM <table_name1, table_name1, ..., table_nameN>
[WHERE <condition>];
ORDER BY < field_name1', field_name2', ...>
, ,
.

SELECT Delivery.OrdNum, Supplier.SupplName, Wares.WareName,


Delivery.Volume, Delivery.Price
FROM Supplier, Delivery, Wares
WHERE (Supplier.SupplId = Delivery.Supplier) AND (Delivery.Ware =
Wares.WareId);
ORDER BY 2, 4;
.
CREATE TABLE SELECT
:
CREATE TABLE <__> AS
SELECT [* | <1>,<2>, ]
FROM <_>
[WHERE <>];

CREATE TABLE Delivery2 AS

155

SELECT Delivery.OrdNum, Supplier.SupplName, Wares.WareName,


Delivery.Volume, Delivery.Price
FROM Supplier, Delivery, Wares
WHERE (Supplier.SupplId = Delivery.Supplier) AND (Delivery.Ware =
Wares.WareId);
Crearea i utilizarea tabelelor virtuale, indecilor, domenelor, tipurilor proprii
de date, etc.
Crearea i utilizarea tabelelor virtuale - view
CREATE VIEW <view_nume> [<field_comma_list>]
AS
SELECT * | < field_comma_list >
FROM <table_comma_list>
WHERE <conditii de selectie>

CREATE VIEW Delivery AS


SELECT Delivery.OrdNum, Supplier.SupplName, Wares.WareName,
Delivery.Volume, Delivery.Price
FROM Supplier, Delivery, Wares
WHERE (Supplier.SupplId = Delivery.Supplier) AND (Delivery.Ware =
Wares.WareId);
Delivery (View).
. ,
() .
() .
Glosar
Regulile de inferen (Cotelea)
INFERN, inferene, s. f. Operaie logic de trecere de la un enun la altul i n care ultimul
enun este dedus din primul. Din fr. infrence.
Sursa: DEX '98 | Adugat de valeriu | Greeal de tipar | Permalink
INFERN s. f. operaie logic de derivare a unui enun din altul, prin care se admite o
judecat n virtutea unei legturi a ei cu alte judeci considerate ca adevrate. (< fr. infrence)
Sursa: MDN | Adugat de raduborza | Greeal de tipar | Permalink
DEDCIE ~i f. 1) Form de raionament prin care, pornindu-se de la idei generale, se ajunge
la concluzii particulare. 2) Raionament obinut n procesul unor operaii mintale; rezultat al
156

deduciei. [Art. deducia; G.-D. deduciei; Sil. -i-e] /<fr. dduction, lat. deductio, ~onis
Sursa: NODEX | Adugat de siveco | Greeal de tipar | Permalink
DEDCIE s.f. Raionament logic prin care se obine o judecat nou (numit concluzie) din
dou sau mai multe judeci (numite premise), dintre care una trebuie s fie neaprat universal.
[Gen. -iei, var. deduciune s.f. / cf. lat. deductio, fr. dduction].
Sursa: DN | Adugat de LauraGellner | Greeal de tipar | Permalink
DEDCIE s. f. form fundamental de raionament n care concluzia rezult cu necesitate din
premise. (< fr. dduction, lat. deductio)
Sursa: MDN | Adugat de raduborza | Greeal de tipar | Permalink

CONSISTENA DATELOR concordana, compatibilitatea datelor, cu coninut


semantic consistent bogia semantic a datelor,
Coninut semantic complet
CONSISTNT adj. v. deosebit, important, nsemnat, mare, notabil, preios, remarcabil, serios,
substanial, temeinic, valoros.

CONSISTEN
Calitate a unui sistem axiomatic de a nu conine o formul oarecare n acelai timp cu negaia ei.
[Cf. it. consistenza, fr. consistance];
(log.) nsuire a unui sistem axiomatic de a nu fi contradictoriu. (< fr. consistance, it.
consistenza)

REDUNDANA DATELOR excedena datelor ca consecina dublrii lor


SECVENE DE DATE
SUBSET DE DATE
MODELUL RELAIONAL restricii de integritate formate din totalitatea de
reguli i constrngeri impuse modelului pentru asigurarea corectitidinei datelor
Valori valide pentru fiecare cmp
Securitatea i protecia datelor
ntreinerea securitii i protecia datelor
Sigurana
O suit de protocoale
Transmitere i recepionare

157

Observaii din lucrrile studenilor


1. Organizarea n trei nivele a sistemelor de baze de date este strns legat
2. Exerciiu , .
3. Cortejii de la cortej
4. Condiia care trebuie suspectat
5. Elementele mulimii: s difer prin valori categoriale sau numerice.
Exemple: culoare = {alb, rou, negru, } individualitatea elementelor.
6. Legitate
7. Baza de date este nucleul de date a sistemului informaional
8. Centralizarea datelor permite suprimarea redundanei

relationship , SQL Where
Order by.

158

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