Documente Academic
Documente Profesional
Documente Cultură
Prima forma normala: se elimina grupurile repetitive astfel incat toate inreg din toate
tabelele pot fi identificate unic de o cheie unica in fiecare tabela; cu alte uvinte toate
campurile care nu sunt chei primare treb sa depinda de cheile primare
A doua forma normala: toate valoriel non-cheie trebuie sa fie dependente functional total de
cheia primara; nu se admit dependente partiale; o dependenta partiala exista atunci cand un
camp este dependent total de o parte a unei chei composite primare
A treia forma normala: elimina dependintele transitive, adica un camp este determinat
indirect de cheia primara; aceasta deoarece campul este dependent functional de alt camp,
cand celalat camp este dependent de cheia primara
Forma normala Boyce-Codd: orice determinat al unei tabele este o cheie candidat; daca
exista o cheie candidat, , a trei aforma noramla coincide ci forma normala B-C
A patra forma normala: elimina multimile multiple de dependente multivaloare
A cincea forma normala: elimina dependentele ciclice; ac f n dse mai numeste fi forma
normala a proiectiei
Forma normala de cheie de domeniu: este cea mai inalta treapta a normalizarii si este mai
mult o masura a unui concept abstract decat o transformare proproi-zisa
Prima forma normala: elimina campurile care se repeta creand o noua tabela astfel incat
tabela originala si noua tabela sunt relationate master –detail cu o relatie one-to-many
-de ex, o tabela master contin inregistrari ce reprezinta toate vasele ce apartin unei firme; o
tabela detail va contine inreg de detaliu, cum ar fi toti paragenii unui vas;
-trebuie create chei in ambele tabele: tabela detail va avea o cheie primara compozita ce
contine cheia primara a tabelei master ca prefix al cheii sale primare; acest camp prefix este
deasemenea foreign key pentru tabela master
A doua forma normala: creaza o tabela unde valorile care se repeta (si nu campurile care se
repeta) sunt eliminate intr-o nooua tabela
-rezultatul este o relatie many-to-one create intre tabela originala si noile tabele create
-noua tabela va avea o cheie primara ce va fi formata dintr-un singur camp; tabela master
contine o cheie foreign catre cheia primara a noii tabele
- cheia straina nu este parte a cheii primare a tabelei originale
A treia forma normala: este dificil de explicat intr-un lb simplu; eliminrea dependintelor
tranzitive implica crearea unei noi tabele pentru niste date care depend indirect de cheia
primara a unei tabele existente
-exista o multime de moduri in care poate fi interpretata a treia forma normala
Peste a treia forma normala: multe db relationale nu trec de a treia forma normala; uneori
nic a treia forma normal anu este atinsa;
-aceasta deoarece sunt generate prea multe tabele ceea ce conduce la prea multe join-uri SQL,
ceea ce conduce la timpi de raspuns foarte mari ai bazei de date
- cazul care trebuei mentionat este eliminarea campurilor cu valori NULL in tabele noi prin
relatii one-to-many
-spatiul pe disk este ieftin, iar nr mare de join-uri conduce la performante slabe ale db
Definitia practica:
-se elimina campurile care se repeta creand o noua tabela astfel incat tabela originala si noua
tabela sunt legate printr-o relatie one-to-many
-tabeal urm prez forma normala 0:
-aceasta tabela trebuie impartita in 2 tabele in care fiecare Nume produs sa aiba mai multe
Componente
- mai intai vom elimina campurile care se repeta(Componente) astfel:
-acum vom separa campul Nume produs intr-o tabela separata, si restul campurilor in alta
tabela ac tabele fiind relationate printr-o relatie one-to-many
-se creaza chei primare in ambele tabele, iar tabela medicamente (medicamente1) are o
cheie primara compozita, care contine cheie cheia primara a tabelei master ca prefix al cheii
sale primare
-campul prefix Nume produs al tabelei medicamente2 este cheia straina catre tabela
Componente
-ultimele 2 cerinte se pot formula si astfel: se elimina campurile care sunt independente de
cheia primara
- se creaza o noua tabela pt a separa partea dependenta partial a cheii primare si campurile
sale dependente
Definitia practica:
-a doua forma normala efectuaza o operatie similara cu prima forma normala, dar creaza o
tabela in care valorile care se repeta sunt eliminate (intr-o tabela noua) si nu campuriel care se
repeta
- rezultatul este o relatie many-to-one si nu o relatie one-to-many care se creaza intre tabela
originala si noile tabele
-noua tabela va avea o cheie primara formata dintr-un singur camp
-tipic, a doua forma normala creaza relatii many-to-one intre datele dinamice si datele statice,
eliminand datele statice in tabele noi
- fig urmatoare prezinta tabela medicamente2 in prina forma normala dupa separarea
componentelor medicamntelor care se repeta
-includerea cheilor primare ale tabelei statice in cheia compozita primara a tabelei dinamice
este incorecta in aceasta situatie
-fig urmatoarea prez situatia corecta, modificand relatiile dintre tabelele dinamice si statice
din identifyind in non-identifying
- aceasta deoarece existent datelor statice nu este dependenta de existent datelor
dinamice(copil)
-cu alte cuvinte, un articol al tabelei cod nu este dependent de existent unui component cu
acel cod
- aceasta nu este o regula generala pt a doua forma normala, dar in general este adevarat
-realtiile celei de-a doua forme normale treb intelese astfel: articolele din tabela
Medicamente depind de existent articolelor din tabelele Cod si Pret; fiecare medicament treb
sa aiba un cod si un pret;
-relatia dintre tabela Medicamente si Pret plus Cod produs si Pret sunt de fapt one-to-zero,
one sau many;
-se pare ca plasand tabela medicamente in a doua forma normala se face economie de spatiu;
s-au eliminat inreg duplicat (in tabelele cod si pret)