34654285-Normalizarea-Baze-de-date.pdf

download 34654285-Normalizarea-Baze-de-date.pdf

of 9

Transcript of 34654285-Normalizarea-Baze-de-date.pdf

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    1/9

    Normalizarea-formele normale pot fi definite in 2 moduri

    1. modul academic

    2.modul practice de implementare

    Definirea formelor normale in modul academic

    Prima forma normala: se elimina grupurile repetitive astfel incat toate inreg din toatetabelele pot fi identificate unic de o cheie unica in fiecare tabela; cu alte uvinte toatecampurile 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 decheia 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

    -acest limbaj precis poate fi foarte derutant;-intretinerea datelor relativ la accesarea inregistrarilor individuale ale db poate fi gestionata cu

    usurinta utilizand a treia forma normala sau o forma mai inalta-o interogare in acest caz va afecta mai multe tabele ceea ce poate duce la scaderea drastic a

    perfoemantelor db-sunt necesare formele normale mai inalte decat a treia forma? Posibil dar in multe situatii

    comerciale nu este necesar-implementarea excesica a formelor normale introduce prea mulr afunctionalitate bazei de

    date

    Definirea practica a formelor normale-multe aplicatii comerciale ale db relationale utilize fomrme normale mai inalte decat forma a

    treia

    -acest lucru conduce la generarea prea multor tabele ceea ce conduce la prea multe join-uri

    SQL

    -prea multe jin-uri scad performanta db

    -in general performanta este mai importanta decat perfectiunea granular a designului unei db

    relationale-normalizarea este in cele mai multe cazuri- usor de implementat

    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;

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    2/9

    -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 estedeasemenea 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 mastercontine 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 prinrelatii one-to-many

    -spatiul pe disk este ieftin, iar nr mare de join-uri conduce la performante slabe ale db

    Prima forma normala

    Definitia academica:

    -elimina grupurile repetitive-defineste chei primare

    -toate inregistrarile treb sa fie identificate unic prin interm ueni chei primare; o cheie primaraeste unica si de aceea nu sunt permise valori duplicat

    - toarte campurile diferite de cheia primara trebuei sa depinda de cheia primara direct sau

    indirect

    -toate campuriel treb sa contina o singura valoare

    -toate valorile in fiecare camp trebuie sa aiba acelati tip de date

    -se creasa o noua tabela pt a muta grupuriel care se repera din prima tabela (originala)

    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:

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    3/9

    -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

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    4/9

    -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 cheiisale primare

    -campul prefix Nume produs al tabelei medicamente2 este cheia straina catre tabela

    Componente

    Unde tabelele sunt:

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    5/9

    ,

    -prina forma normala este data de tabelele Componente si Medicaminte2

    A doua forma normala

    Definitia academica

    -tabela trebuie sa fie in prima forma normala

    -toate valorile non-chei trebuie sa fir dependente functional total de cheia primara; cu alte

    cuvinte nu sunt permise campuri non-chei care sa nu depinda complet si individual de cheiaprimara

    -dependintele partiale trebuei eliminate; o dependenta partial este un tip special de dependenta

    care exista atunci cand un camp este dependent total de o parte a unei chei primare compozite

    -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 otabela in care valorile care se repeta sunt eliminate (intr-o tabela noua) si nu campuriel care serepeta

    - rezultatul este o relatie many-to-one si nu o relatie one-to-many care se creaza intre tabelaoriginala 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

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    6/9

    - fig urmatoare prezinta tabela medicamente2 in prina forma normala dupa separarea

    componentelor medicamntelor care se repeta

    Sau inainte de separare:

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    7/9

    -informatiile referitoare la Firma producatoare si Pret sunt relative statice in raport cumedicamentele

    -in aceasta situatia tabela medicamente reprezinta informatii dinamice referitoare la Firmaproducatoare, Cod produs, etc.

    -fig urmatoare prezinta un prim pas spre forma a doua normala, eliminand datele statice siin

    tabela medicamente2;astfel vom avea 3 tabele: medicamente3, pretul si :

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    8/9

    -obs ca in tabela cod , fiecare articol apare o singura data(cod produs este cheie primara)-iar in tabela pretul, fiecare Pret apare o singura datapretul este cheie primara

    -fig urmatoare prez relatii many-to-one intre tabelele dinamice (cod si pret) si cele statice(medicamente3)

  • 7/30/2019 34654285-Normalizarea-Baze-de-date.pdf

    9/9

    -in fig urmatoare sunt create chei primare in ambele tabele cod si pretul pt a identifica unic

    codul si pretul in interiorul celor 2 tabele respective.-identificarea relatilor medicamente3-cod si medicamente3-pretul face ca cheile primare

    cod produs si pret sa fie incluse in cheia compozita a tabelei medicamente3-in fig urm cheile primare in tabelele statice sunt copiate in tabela dinamica medicamente2 ca

    parti ale cheii primare compozite a tabelei dinamice medicamente2

    -includerea cheilor primare ale tabelei statice in cheia compozita primara a tabelei dinamiceeste incorecta in aceasta situatie

    -fig urmatoarea prez situatia corecta, modificand relatiile dintre tabelele dinamice si staticedin identifyind in non-identifying

    - aceasta deoarece existent datelor statice nu este dependenta de existent datelordinamice(copil)

    -cu alte cuvinte, un articol al tabelei cod nu este dependent de existent unui component cuacel 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 trebsa 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)