O baz de date normalizat trebuie s conin tabele (relaii) n care s nu existe
anomalii i pierderi de informaii. De asemenea, o baz de date normalizat trebuie s respecte att restriciile modelului relational ct cerinele definite de ctre utilizator. Proiectarea unei baze de date relaionale se poate realiza prin urmtoarele metode: 1.Obinerea modelului relaional pe baza unui model conceptual semantic(Merise, Entitate-Asociere) 2.Obinerea modelului relaional utiliznd modelarea obiectuala(OMT, UML .a.) 3.Obinerea modelului relaional prin normalizare Procesul de normalizare : ANOMALII 1) Redundan pentru facturile emise de acelai furnizor; 2) Anomalii la adugare: se refer la faptul c anumite date ce urmeaz a fi adugate, fac parte din tupluri incomplete(nu pot fi adugai furnizori care nu au emis facturi); 3) Anomalii la modificare:se refer la faptul c e dificil s se modifice o realizare, dac ea se repet n mai multe tupluri(dac un furnizor i schimb numele, atunci, acesta trebuie modificat n toate nregistrrile aferente facturilor emise de acel furnizor); 4) Anomalii la tergere : constau n faptul c anumite informaii ce se doresc a fi terse, fac parte dintr-un tuplu ce conine i alte date care sunt utile n continuare(de exemplu, tergerea unei facturi din tabela Furnizori-Facturi, conduce la eliminarea din baza de date a furnizorului emitent). Dependena funcional : unic Dependenele sunt legturi logice, ce se stabilesc ntre cmpurile modelului relaional. Exist o dependen funcional ntre 2 atribute atunci cnd cunoscnd valoarea luat de ctre un atribut, se furnizeaz sistematic valoarea pentru cellalt atribut : dependen simpl sau unic. A -> B(Bdepinde funcional de A, dac la orice valoare a lui A corespunde n orice moment o valoare unic a lui B) Exemple de dependene funcionale: -> Denumire produs -> Pre de referin Numr Comand -> Dat Comanda Numr Comand -> Cod Client-> Nume Client=> cod fiscal Tranzitivitate: Dac A -> B i B -> C, atunci A ->C Dac un atribut sau un grup de atribute dintr-un tabel determin funcional celelalte atribute ale tabelului, rezult c atributul sau grupul de atribute constituie cheia primar a tabelului. Dependena funcional : multipl
Dependena multipl: exist o dependen multipl de la A la B(A-B) atunci cnd o valoare a lui A determin mai multe valori ale lui B; Exemple de dependene funcionale multiple: SerieFactur- CodProdus Data factura->> Nr facture Dac ntre dou atribute A i B exist o dependen multivaloare(AB), atunci ntre A i B exist i o dependen multipl (A-B).
Dependena dubl (tripl): se identific o dependen dubl (tripl) acele dependene dintre un lan de atribute; Exemple de dependene funcionale triple: SerieFactur- CodProdus DenumireProdus
Dependena funcional complet Se numete dependen funcional complet(elementar, total, deplin),o dependen funcional de forma AB n care B este dependent funcional de A, fr s fie dependent funcional de nici una din componentele lui A. (NrFactur, CodProdus) Cantitate Exemplu: Nr Factura Cantitate ,CodProdusCantitate ntre grupul de atribute (NrFactur, CodProdus) i Cantitatee xist o dependen funcional complet, deoarece cmpul Cantitate depinde funcional doar de (NrFactur, CodProdus) fr s depind funcional de NrFactur sau de CodProdus. Dependena funcional partial. O dependent funcional A B se numete dependen funcional partial dac i numai dac B este dependent funcional att de A ct i de o parte a lui A.
ntre CodProdus i CodFurnizor nu este o dependen funcional, deoarece un produs poate fi livrat de mai muli furnizori.
Normalizarea Bazelor de Date : Formele normale 1, 2, 3
Dicionar de date i Reguli de gestiune: Potrivit regulilor de gestiune coroborate cu analiza informaional referitoare la aplicaia de informatizat se declar ntr-un tablou toate atributele disponibile (Identificatorul + Denumirea n clar)
1 FN-O relaie R este n 1FN atunci cnd atributele sale nu pot fi descompuse n uniti mai mici 2 FN-O relaie R este n 2FN, dac este n 1FN i toate dependenele ntre cheia primar a lui R i celelalte atribute a lui R sunt elementare (atributele nu depind de o parte din cheie) 3 FN-O relaie R este n 3FN, dac este n 2FN i dac sunt eliminate toate dependenele funcionale tranzitive (dac nu exist nici o dependen funcional ntre atributele non-cheie) 1 FN O relaie R este n 1FN dac toate atributele sale conin numai valori (realizri) atomice (elementare sau indivizibile); -n general, o valoare este considerat elementar, atunci cnd descompunerea ei nu mai prezint interes pentru utilizatorii finali. -Fiecare relaie trebuie s conin un identificator care s o caracterizeze de o manier unic O relaie R este n 1FNdac conine valori nerepetitive. n acest sens, o list de valori repetitive trebuie nlocuit cu un singur atribut. Atributele descompuse trebuie s fie stabile n timp (de exemplu, este preferabil a se utiliza data naterii, dect vrsta). Persoana(CNP, Nume, Domiciliu)nu respectFN1, dac se dorete dezvoltarea unui sistem informatic n care s se urmreasc evidena persoanelor n funcie de localitate, strad etc. Deasemenea, FN1 exclude apariia atributelor sau grupurilor de atribute repetitive ncadrul unei relaii.
Pentru aducerea relaiei n FN1, se parcurg urmtoarele etape: -Pentru grupul de atribute repetitive, se formeaz o alt relaie -Cheia primar din noua relaie, va fi n vechea relaie, cheie extern.
2FN-O relaie R este n 2FN, dac este n 1FN i dac orice atribut noncheiese afl n dependen funcional complet fa de cheia primar a relaiei. FN2 interzice existena dependenelor funcionale pariale ntre atributele cu rol de cheie primar i celelalte atribute 2 FN : Pentru aducerea relaiilor din FN1 n FN2, se parcurg urmtoarele etape: -Se identific eventualele dependene funcionale pariale -Fiecare dependen funcional parial va genera cte o relaie nou. Relaia nou format va avea ca structur atributele participante n dependena funcional partiala -Atributele determinante devin chei externe n relaiile iniiale i chei primare n relaiile nou formate O relatie care nu respecta FN2 prezinta urmatoarele anomalii: -Redunda pentru cmpurile care depind parial de cheia primar. Realizrile cmpului DenumirePies, se repet inutil -Anomalii la adugare: nu se pot aduga piese dac nu s-au fcut comenzi pentru acestea -Anomalii la modificare: dac se modific denumirea unei piese, atunci trebuie modificate toate nregistrrile care conin denumirea piesei respective -Anomalii la tergere: tergerea unei comenzi poate conduce la tergerea definitiv a unor piese
3FN-O relaie verific FN3 dac se afl n FN2 i dac toate atributele noncheiesunt dependente funcional netranzitiv de cheia primar a relaiei(toate atributele care nu aparin cheii primare s nu depind funcional de un alt atribut. Pentru aducerea unei relaii din FN2 n FN3: -Se identific eventualele dependene funcionale tranzitive -Determinantul noncheiempreun cu atributul sau atributele determinate funcional de ctre acesta, vor forma o nou relaie -Determinantul noncheiedevine cheie primar n relaia nou format i cheie extern n relaia initial
O relaie care nu respect FN3 prezint urmtoarele anomalii: -Redundan pentru atributele determinate funcional tranzitiv -Anomalii la adugare: nu se pot aduga clieni care nu au ntocmit comenzi -Anomalii la modificare: dac un client i schimb denumirea, atunci trebuie modificate toate nregistrrile n care apare acea denumire de client -Anomalii la tergere: tergerea unei comenzi poate conduce la tergerea definitiv a clientului din relaie
Etapele procesului de NORMALIZARE 1)Se ntocmete dicionarul datelor -Un atribut poate fi nscris o singur dat n dicionar -Se elimin atributele sinonime (de ex. Cod furnizor = Simbol furnizor) -Dicionarul datelor nu admite atribute derivate sau calculate (Valoare, TVA) 2)Se stabilesc dependenele funcionale ntre atribute prin MDF 3)Toate atributele sau grupurile de atribute determinante, devin CHEI CANDIDATE(posibile chei ale relaiei). Cheile candidate aparinnd aceleiai relaii sunt caracterizate prin dependene funcionale reciproce. 4)Se stabilesc CHEILE PRIMAREdintre cheile candidate 5)Pentru atributele isolate se vor cuta grupuri de atribute ce pot constitui determinani ai acestora. Se vor cuta mai nti grupuri de chei primare, apoi grupuri de atribute non-cheie, iar n final, dac va fi cazul, se vor aduga chei surogat. 6)Cu fiecare cheie primar i cu atributele determinate direct (fr tranzitivitate) se formeaz o nou relaie. 7)Se stabilesc CHEILE EXTERNE