Documente Academic
Documente Profesional
Documente Cultură
PBD2005 Cap02 Normalizare PDF
PBD2005 Cap02 Normalizare PDF
1 [Muller99], p.321
2 [Harrington02], [Fleming & von Halle 89], [Riordan99], [Teorey99], [Hernandez97], [O'Neil &
O'Neil 01], [Elmasri & Navathe00]
3 Dup cum preciza i Chris Date [Date86], p.364, normalizarea nu este considerat parte a
modelului relaional, ci o teorie separat construit "deasupra" modelului
2 Capitolul 2
Restricia de domeniu
Dup cum am vzut n paragraful anterior, un atribut este definit printr-un
nume i un domeniu. Orice valoare a atributului trebuie s se ncadreze n
domeniul definit. Exist mai multe moduri de percepie a acestei restricii. O parte
din informaticieni substituie domeniul tipului atributului: numeric, ir de caractere,
dat calendaristic, logic (boolean) etc. i, eventual, lungimii (numrul maxim de
poziii/caractere pe care se poate ntinde un atribut). Dup cum se observ, este
luat n calcul numai aspectul sintactic al domeniului. Faptul c anul de studiu al
unei clase poate fi una din valorile: 9, 10, 11, 12 reprezint o restricie de
comportament sau, mai simplu, o restricie definit de utilizator.
Cea de-a doua categorie privete domeniul deopotriv sintactic i semantic.
Astfel, domeniul sintactic al atributului LitClasa (litera) dintr-o relaie precum
ELEVI_LICEU este un caracter, obligatoriu liter, i, chiar mai restrictiv, litera e
obligatoriu majuscul. Din punct de vedere semantic, LitClasa poate lua una din
valorile: A, B, C, ... n funcie de numrul de clase dintr-un an de studiu (cinci clase
de a IX-a, patru de a X-a etc.).
Majoritatea SGBD-urilor permit definirea tuturor elementelor ce caracterizeaz
domeniul (sintactic i semantic) atributuelor prin declararea tipului i lungimii
atributului i prin aa-numitele reguli de validare la nivel de cmp (field validation
rule). Sunt ns i produse la care domeniul poate fi definit explicit, sintactic i
semantic, dndu-i-se un nume la care vor fi legate atributele n momentul crerii
tabelelor.
Nenulitatea
Dei inventat de nsui E.F. Codd, valoarea nul este vehement contestat de
cea mai mare parte a liniei purist-relaionale (Date, Darwen, Pascal). Nu discutm
aici legitimitatea unei asemenea meta-valori, ci doar amintim c ntr-o baza de date
unora dintre atribute li se pot interzice valoarea NULL.
Atomicitate
Conform teoriei bazelor de date relaionale, orice atribut al unei tabele oarecare
trebuie s fie atomic, n sensul imposibilitii descompunerii sale n alte atribute. n
6 Capitolul 2
aceste condiii, se spune c baza de date se afl n prima form normal sau prima
form normalizat (1NF). n tabela STUDENI un atribut cu valori neatomice
poate fi considerat, pentru majoritatea situaiilor, Adresa, ntruct valorile sale
ngrmdesc elemente ce pot fi i individualizate: strada, numr, bloc, scara, etaj,
apartament, localitate i jude.
Astzi, atomicitatea valorii atributelor a devenit o int predilect a atacurilor
dumnoase la adresa modelului relaional, datorit imposibilitii nglobrii unor
structuri de date mai complexe, specifice unor domenii ca: proiectare asistat de
calculator, baze de date multimedia etc. Pentru detalii privind atomicitatea, vezi
capitolul urmtor.
Unicitate
ntr-o relaie nu pot exista dou linii identice (dou linii care prezint aceleai
valori pentru toate atributele). Mai mult, majoritatea relaiilor prezint un atribut,
sau o combinaie de atribute, care difereniaz cu siguran un tuplu de toate
celelalte tupluri ale relaiei. Cheia primar a unei relaii (tabele) este un atribut sau
un grup de atribute care identific fr ambiguitate fiecare tuplu (linie) al relaiei
(tabelei). Exist trei restricii pe care trebuie s le verifice cheia primar:
unicitate: o cheie identific un singur tuplu (linie) al relaiei.
compoziie minimal: atunci cnd cheia primar este compus, nici un atribut
din cheie nu poate fi eliminat fr distrugerea unicitii tuplului n cadrul
relaiei; n cazuri limit, o cheie poate fi alctuit din toate atributele relaiei.
valori non-nule: valorile atributului (sau ale ansamblului de atribute) ce
desemneaz cheia primar sunt ntotdeauna specificate, deci ne-nule; mai
mult, nici un atribut din compoziia cheii primare nu poate avea valori nule.
Cea de-a treia condiie se mai numete i restricie a entitii.
Domeniul unui atribut care este cheie primar ntr-o relaie este denumit
domeniu primar. Dac ntr-o relaie exist mai multe combinaii de atribute care
confer unicitate tuplului, acestea sunt denumite chei candidate. O cheie candidat
care nu este identificator primar este referit ca i cheie alternativ. n tabela
STUDENI, exist dou chei candidat, Matricol i CNP. Pe baza unor criterii
tainice (deocamdat), am ales Matricol drept cheie primar, CNP-ul devenind
cheie alternativ.
Dac cheia primar a tabelei STUDENI este una simpl, exist ns suficiente
cazuri n care cheia primar este compus din dou, trei s.a.m.d. sau, la extrem,
toate atributele relaiei. S lum spre analiz o relaie PERSONAL care conine date
generale despre angajaii firmei. Fiecare tuplu al relaiei se refer la un angajat,
atributele fiind: Nume, Prenume, DataNaterii, Vechime, SalariuTarifar.
Atributul Nume nu poate fi cheie, deoarece chiar i ntr-o ntreprindere de
talie mijlocie, este posibil s existe doi angajai cu acelai nume.
Dac apariia a dou persoane cu nume identice este posibil, atunci
apariia a dou persoane cu acelai Prenume este probabil.
Nici unul din aceste atributele DataNaterii, Vechime, SalariuTari-
far nu poate fi "nzestrat" cu funciunea de identificator.
Proiectarea bazelor de date 7
Restricia referenial
O baz de date relaional este alctuit din relaii (tabele) aflate n legtur.
Stabilirea legturii se bazeaz pe mecanismul cheii strine i, implicit, a restriciei
refereniale. Figura 2.2 prezint o relaie n care sunt implicate tabelele TIP_BURSE
i STUDENI. Atributul Tip_Bursa joac un rol de agent de legtur ntre cele
dou relaii. Pentru tabela TIP_BURSE, atributul Tip_Bursa este cheie primar, n
timp ce n tabela STUDENI, Tip_Bursa reprezint o coloan de referin sau cheie
strin (extern), deoarece numai pe baza valorilor sale se poate face legtura cu
relaia printe TIP_BURSE. Cheile strine sau coloanele de referin sunt deci
atribute sau combinaii de atribute care pun n legtur linii (tupluri) din relaii
diferite. Tabela n care atributul de legtur este primar se numete tabel-printe
(n cazul nostru, TIP_BURSE), iar cealalt tabel-copil.
Legat de noiunea de cheie strin apare conceptul de restricie referenial. O
restricie de integritate referenial apare atunci cnd o relaie face referin la o
alt relaie. Cnd dou tabele (relaii), T1 i T2, prezint atributul sau grupul de
atribute notat CH, care, pentru T1, este cheie primar, iar pentru T2 cheie strin,
dac n T2 se interzice apariia de valori nenule ale CH care nu exist n nici un
tuplu din T1, se spune c ntre T2 i T1 s-a instituit o restricie referenial.
8 Capitolul 2
Observaii
Pentru muli utilizatori i profesioniti ai bazelor de date, denumirea de
"relaional" desemneaz faptul c o baz de date este alctuit din tabele
puse n legtur prin intermediul cheilor strine. Aceasta este, de fapt, a
doua accepiune a termenului de BDR, prima, cea "clasic", avnd n vedere
percepia fiecrei linii dintr-o tabel ca o relaie ntre clase de valori.
Majoritatea SGBD-urilor prezint mecanisme de declararea i gestionare
automat a restriciilor refereniale, prin actualizri n cascad i interzice-
rea valorilor care ar nclca aceste restricii.
Respectarea restriciilor refereniale este una din cele mai complicate sarcini
pentru dezvoltatorii de aplicaii ce utilizeaz baze de date. Din acest punct
de vedere, tentaia este a sparge baza de date n ct mai puine tabele cu
putin, altfel spus, de a avea relaii ct mai corpolente. Gradul de
fragmentare al bazei ine de normalizarea bazei de date, care, ca parte a
procesului de proiectare a BD, se bazez pe dependenele funcionale,
multivaloare i de jonciune ntre atribute.
Restricii-utilizator
Proiectarea bazelor de date 9
STUDENI_EXAMENE
Matricol NumePrenume An Specializare CodDisc
EL13455 Popovici I Vasile 3 Informatic economic AI3501
EL13456 Zineanu W Ion 3 Informatic economic AI3501
EL13457 Ablaei R Zicu 3 Informatic economic AI3501
EL13455 Popovici I Vasile 3 Informatic economic AI3502
EL13456 Zineanu W Ion 3 Informatic economic AI3502
EL13457 Ablaei R Zicu 3 Informatic economic AI3502
EL13456 Zineanu W Ion 3 Informatic economic AI3501
EL13457 Ablaei R Zicu 3 Informatic economic AI3502
EL13458 pag M Michael 3 Informatic economic AI3503
2.2.1. Redundane
Este lesne de observat c relaia de mai sus conine redundane. Astfel, dac un
student susine, pe parcursul primelor n semestre de studii, 25 de examene, atunci
matricolul, numele, anul i specializarea sunt prezente n toate cele 25 de linii. Dac
pentru o disciplin s-au consemnat n baza de date 1500 de examinri, atunci nu
numai codul, ci i denumirea i numrul de credite alocat disciplinei apar de
acelai numr de ori.
Cu ct baza de date este mai mare, cu att risipita de spaiu este mai
important. Chiar dac spaiul de stocare nu mai este o problem din punctul de
vedere al costului, obezitatea unei tabele precum cea de mai sus poate atrage
serioase probleme de vitez n exploatare (timpi de ateptare la preluarea noilor
note etc.).
S lum n discuie studenii din anul I. Dup examenul de admitere, ce are loc
n lunile iulie i septembrie acetia sunt nmatriculai. Dac, ns, baza de date are
schema relaiei de mai sus, preluarea este imposibil pn n momentul primului
examen al studentului respectiv. Aceasta deoarece n cheia primar sunt incluse i
atributele CodDisc i DataEx, iar modelul relaional interzice valori nule pentru
atributele-cheie (restricia de entitate). Ori, la data nmatriculrii, studenii din anul
I nu au nici un examen susinut (asta ar mai trebui !), iar prima sesiune e abia n
ianuarie viitor, aa c i CodDisc i DataEx sunt n acel moment NULL.
Anomaliile la tergere se manifest atunci cnd prin eliminarea unei linii dintr-o
tabel se pierd involuntar nu numai informaiile despre entitatea reflectat pe linia
respectiv, ci i alte informaii. Astfel, dac tergem ultima linie din relaia de mai
sus, cea care conine nota examenului la Analiza sistemelor informaionale susinut de
studentul pag Michael pe 4 februarie 2004, se pierd nu numai datele despre
examenul respectiv, ci i toate informaiile despre studentul pag M. Aceasta
deoarece aceasta era singura linie n care aprea studentul cu pricina.
Inceput
Relaie universal - R
nu Exist grupuri da
repetitive ?
Atomizarea atributelor
nu Relaia R are da
cheie primar ?
Descompunere n relaii
ce au cheie primar
1 FN
nu Exist DF da
pariale ?
Aducerea relaiilor n 2FN
2FN
nu Exist DF da
tranzitive ?
Aducerea relaiilor n 3FN
3 FN
nu Toi determinanii da
sunt chei candidate ?
Aducerea relaiilor
n BCFN
BCFN
nu da
Exist DF
multivaloare ?
Aducerea relaiilor n 4FN
4 FN
nu Exist dependene da
de jonciune ?
Aducerea relaiilor n 5FN
5 FN
Sf rit
DISCIPLINE
CodDisc DenumireDisc NrCredite
AI3501 Baze de date I 6
AI3502 Programare vizual i RAD 7
AI3503 Analiza sistemelor informaionale 6
EXAMENE NOTE
CodDisc DataExamen Matricol CodDisc Nota
AI3501 29/01/2004 EL13455 AI3501 8
AI3502 01/02/2004 EL13456 AI3501 4
AI3501 12/02/2004 EL13457 AI3501 9
AI3502 15/02/2004 EL13455 AI3502 10
AI3503 04/02/2004 EL13456 AI3502 8
EL13457 AI3502 4
EL13456 AI3501 8
EL13457 AI3502 9
EL13458 AI3503 7
Figura 2.6. Prin recompunere se obine o alt relaie universal dect cea iniial
16 Capitolul 2
6 Din acest punct de vedere, de plasm mai aproape de accepiunea lui Chris Date ([Date04], p.195)
Proiectarea bazelor de date 17
Atribut Descriere
Jud Indicativul auto al judeului (2 caractere)
Jude Denumirea judeului
Regiune Regiunea rii din care face parte judeul
CodPost Codul potal al unei adrese
Localitate Denumirea oraului sau satului
Comuna Denumirea comunei din care face parte satul curent
CodCl Codul firmei client
DenCl Denumirea firmei-client
CodFiscal Codul fiscal al firmei client
StradaCl Strada pe care se afl sediul clientul
NrStradaCl Numrul la care se afla adresa clientului
BlocScApCl Eventualele informaii suplimentare despre adresa clientului:
bloc, scar, etaj, apartament
TelefonCl Telefonul firmei client
CodPr Codul produsului / sortimentului comercializat
DenPr Denumirea produsului
UM Unitatea de msur a produsului/sortimentului
Grupa Grupa sortimental (Bere, Ciocolat, Cafea etc.) n care se
ncadreaz produsul curent
ProcTVA Procentul TVA aplicat n mod obinuit produsului
NrFact Numrul facturii emise
DataFact Data ntocmirii facturii
Obs Observaii privitoare la factur
Linie Linia curent (corespunztoare unui produs) dintr-o factur
Cantitate Cantitatea vndut din produs n factur (pe linia curent)
PreUnit Preul unitar de vnzare (fr TVA) al produsului n factur (pe
linia curent)
Codnc Codul ncasrii
Datanc Data ncasrii (n care banii intr n casierie sau n contul bancar)
CodDoc Codul documentului de ncasare
NrDoc Numrul documentului de ncasare
DataDoc Data la care a fost ntocmit documentul de ncasare
Tran Trana primit din factur prin ncasarea (documentul) curent
Atribut Descriere
IdFilm Codul unic al filmului
TitluOriginal Titlul n englez, francez etc., aa cum apare la lansarea filmului
TitluRO Traducerea romneasc a titlului original
AnLans Anul lansrii
Productori Productorul sau productorii filmului
Regizori Regizorul sau regizorii filmului
Distribuie Actorii i rolurile interpretate n film
Genuri Genul/genurile la care se ncadreaz filmul (horror, comedie etc.)
Premii Numele premiului - tipul (Oscar, Leul de argint, Ursul de aur etc.),
categoria (cel mai bun film, cel mai bun actor n rol principal) anul
premiului i, eventual, numele actorului.
Proiectarea bazelor de date 19
Un film poate fi produs i regizat de una, dou sau mai multe persoane. Pentru
fiecare actor distribuit n film intereseaz i personajul sau personajele (dac
actorul e n dublu rol) interpretate. O pelicul se poate ncadra la mai multe
categorii (dram, comedie) simultan. Dac un premiu se refer la regie, scenariu
etc., intereseaz numele, tipul i anul decernrii, iar dac se refer la o performan
actoriceasc, la informaiile anterioare se adaug i numele actorului laureat.
Practic, dou tupluri din aceast relaie s-ar prezenta c n figura 2.5.
7 [Kent81]
20 Capitolul 2
ale cheii sale primare ce risc s ia valori nule, ceea ce modelul relaional nu
accept, indiferent de tabere.
n articolul su din 1981, Kent este chiar tranant spunnd c relaia universal
este un model nesatisfctor pentru teoria i practica relaional 8. Afirmaia sa a
strnit reacia a o serie de autori, printre care Jeffrey Ullman9, pentru care care,
dincolo de inadvertene, conceptul de relaie universal este unul polimorfic, fiind
suficient de amintit dou dintre abordri: pe de o parte, ca un soi de creuzet,
rezervor al tuturor atributelor i dependenelor dintre atribute i, pe de alt parte,
ca o perspectiv general a utilizatorilor asupra bazei de date.
Fr a-l supra prea mult pe Ullman, vom considera relaia universal drept o
construcie ipotetic de pornire n demersul normalizrii, fr a fi anxioi privitor
la unicitatea sau neunicitatea sa, i alte proprieti care nu au prea mult tangena
cu proiectarea efectiv a unei baze de date.
8 [Kent81]
9 Vezi, spre exemplu, [Ullman82], [Ullman83]