Afaceri | Agricultura | Economie | Management | Marketing | Protectia muncii | |
Transporturi |
Agenda
Definitii preliminare
Teorema de descompunere
A doua forma normala
Forma a 3-a normala (3nf) si variantele (3 ½ nf)
1. Consideratii generale
Intreprindere = un univers real.
Model - modelele de date, modelul conceptual → schema conceptuala, model logic global → modele arborescente, in retea sau relationale.
Schema de date = imaginea la nivel relational a schemei conceptuale si deci a intreprinderii. Baza de date = schema de date + datele (intenia - extensia)
Problema centrala a proiectarea unei baze de date este: Stabilirea ansamblului relatiilor care descrie corect schema conceptuala, si deci, intreprinderea.
Dupa stabilirea schemei conceptuale - (proiectarea bazelor de date) stabilirea schemei logice globale - structura bazei de date. Pentru stabilirea structurii - diferite tabele. In timpul proiectarii - transformarea tabelelor in relatii corecte.
Exemplu. Fie o tabela cu orarul salilor de curs din Facultatea de Stiinte Economice. Sa consideram deci tabelul:
Sala# |
Capacitate |
Orar |
An |
Materia |
Cadru didactic |
|
Zi |
Ora |
|||||
Luni |
IE III |
Baze de date |
Ionesu |
|||
Luni |
MF III |
MRU |
Popescu |
|||
Luni |
CIG III |
Bazele contabilitatii |
Georgesu |
|||
Luni |
IE III |
Cap. Spec. Baze de date |
Ionescu |
|||
Luni |
IE III |
Contabilitte financiara |
Georgescu |
|||
Probleme:
Atomicitate?
Dependente de tip N:1 (functionale):
Sala → Capacitate
Adica mai multe sali (022, 033) au aceeasi capacitate de 150 de locuri.
→ se pot genera mai multe tipuri de anomalii:
redundanta logica - perechile de forma (026, 100) sau (022,150) apar de mai multe ori;
anomanii de stocare
o anomalii de inserare - se termina o noua sala de curs; nu poate fi introdusa in tabela orarului pana nu se da o valoare pentru cheia primara Sala# - nu poate fi vida in nici o relatie (nul);
o anomalii de stergere -sala 022 trebuie scoasa din orar - reparatii; stergerea liniilor → pierde legatura (Sala, Capacitate) - legatura semantica.
o Anomalii de modificare - s-a extins capacitatea salii 022 la 120 de locuri → sa se urmareasca toate tuplele (022,100) - daca se scapa una dintre ele - anomalie - aceeasi sala apare cu doua capacitati diferite.
probleme de reconexiune:
Sala1: |
Sala2: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Recompun prin echijoin → un tabel de forma:
Sala# |
Capacitate |
Orar |
An |
Materia |
Cadru didactic |
|
Zi |
Ora |
|||||
Luni |
IE III |
Baze de date |
Ionesu |
|||
Luni |
MF III |
MRU |
Popescu |
|||
Luni |
IE III |
Baze de date |
Ionesu |
|||
Luni |
MF III |
MRU |
Popescu |
|||
Luni |
CIG III |
Bazele contabilitatii |
Georgesu |
|||
Luni |
IE III |
Cap. Spec. Baze de date |
Ionescu |
|||
Luni |
CIG III |
Bazele contabilitatii |
Georgesu |
|||
Luni |
IE III |
Cap. Spec. Baze de date |
Ionescu |
|||
fiecare tuplu din tabelul din stanga se combina cu fiecare tuplu din tabela a doua pe baza egalitatii cheii comune, deci nu se ajunge la tabelul initial.
→ Mecanismul - la dispozitie proiectantul sau administratorul bazei de date pentru rezolvarea acestor probleme - NORMALIZARE
Normalizarea - operatie prin care se urmareste:
transformarea tabelelor in relatii;
inlaturarea redundantelor;
inlaturarea dependentelor interne intre atributele unei relatii, transformandu-le in dependente intre tabele obtinute prin descompunere (intrarelatii → interrelatii);
inlaturarea diferitelor anomalii (de inserare, modificare sau stergere) existente initial sau aparute in urma descompunerii tabelelor;
asigurarea descompunerilor fara pierderi - recompunand tabelele obtinute in urma descompunerilor uni tabel trebuie sa se ajunga la tabelul initial.
Normalizarea - procesul iterativ prin care baza de date se aduce la o forma standard in - dispare fenomenul de redundanta, nu exista anomalii si fiecare tabel contine o singura entitate semantica (nu exista dependente intre atribute).
Forme normale - parcurse piramidal de la Forma 1-a normala (1NF) pana la Forma a 5-a normala (5NF). (Date - forma a 6-a normala). Aducerea la 1NF este obligatorie pentru a aduce o tabela la forma unei relatii. Proiectare - 3NF.
Teoria normalizarii - vast, materialele referitoare la teoria sau proiectarea bazelor de date relationale:
teoretic [Ullmann80, Abitaboul01]
mai pragmatic [Date2004, Connolly&co2001, Nitchi&co2006].
Nu este obligatorie si nici nu se merge de regula pana la ultimul nivel de normalizare (Francoise Pascal).
2. Definitii preliminare
Algoritmul - de la o relatie data intr-o forma normala se ajunge la o relatie in forma imediat superioara - algoritm de descompunere
Dependenta de tip n:1 - o dependenta functionala (DF). Exemplu: Sala → Capacitate. DF - functia din matematica: Sala → Capacitate. Deosebirea - timp ce functia matematica - atemporala, DF depinde de timp. DF se numesc si dependente univoce
Observatie. A si B doua grupuri de atribute dintr-o tabela - DF daca si numai daca din t1(A) = t2(A) rezulta t1(B) = t2(B), cu ti(A), respectiv ti(B) pentru i=1,2 s-au notat subtupluri corespunzatoare lui A respectiv B.
A - domeniul de definitie sau determinantul, B - valorilor sau cel determinat
R o relatie, A si B - doua multimi de atribute → intre A si B - dependenta functionala totala, si de noteaza cu DFT: A→B ↔ au loc urmatoarele 2 conditii:
1. DF: A→B
2. Nu exista nici o submultime proprie A' a lui A ca DF: A'→B.
O DF care nu este totala este o dependenta functionala partiala
Dependenta functionala tranzitiva A→B, B→C → A→C
Observatie. Dependentele multivoce (DM) - unui element din A corespund un ansamblu de elemente din B. Exemplu, (Sala, An_de_Studiu), sau (Sala, Cadru_ Didactic). Dependenta tranzitiva din cadrul DF se poate extinde si pentru DM.
E o multime de dependente (DF sau DM) - E+ a tuturor dependentelor tranzitive obtinute din E - numeste inchiderea lui E
E si E' - 2 multimi de dependente si E' contine dependentele din E precum si unele dependente obtinute din E aplicand proprietatile dependentelor → E' - acoperire a lui E ↔ E si E' au aceeasi inchidere.
Proprietati DF - cele mai cunoscute sunt axiomele lui Armstrong - 1974. Fie R o relatie si A,B,C trei multimi de atribute ale ei. Pentru dependentele functionale au loc urmatoarele axiome:
A1. Reflexivitatea A→A, mai general, daca A'A rezulta A→A'.
A2. Cresterea determinantului
daca DF: A→B
A C
→ DF: C→B.
DF: C→B - dependenta functionala partiala.
A3. Tranzitivitatea:
A→B
B→C
→ A→C.
DF:A→C - inchiderea tranzitiva a primelor doua dependente - C depinde tranzitiv de A.
Multimile de axiome - 2 notiuni care permit caracterizarea lor:
o multime de axiome - completa ↔ pornind de la o multime de dependente E→ pe baza axiomelor →toate dependentele E+.
o multime de axiome inchisa ↔ pornind de la E nu se pot deduce, cu ajutorul axiomelor, dependente care nu fac parte din E.
→T.Ullman (1980): Multimea axiomelor lui Armstrong este completa si inchisa.
E' - acoperire minimala ↔ acoperire a lui E & nici o parte a lui E' nu este acoperire.
Observatie.
acoperirea minimala - rol important in descompunerea relatiilor;
o multime de aplicatii - mai multe acoperiri minimale.
Descompunere reversibila: fara pierderi - recompunand relatiile obtinute prin descompunere → relatia initiala. Relatie ireductibila nu poate fi descompusa in mod reversibil.
Observatie. Relatie ireductibila - o singura entitate semantica → relatiile ireductibile pot fi considerate module logice pe baza carora se modeleaza intreprinderea.
Descompunere atomica a lui R - descompunere reversibila a lui R in relatii ireductibile.
PERSONAL:
MARCA# |
Nume si Prenume |
Domiciliu |
Copil |
Copil |
Copil |
||||
Judet |
Localitate |
Strada |
Numar |
||||||
Nu este o relatie in 1NF:
Domiciliu = (Judet, Localitate, Strada, Numar) - nu este atomic,
Copil este repetitiv; cate campuri sa se rezerve?
O relatie este in prima forma normala (1NF) - fiecare atribut (camp) este atomic si tabela nu contine grupuri repetitive.
Trecerea unui tabel la 1NF:
atributele care nu sunt atomice se transforma in atribute atomice prin proiectare (descompunere) si eventual redenumire;
pentru campurile repetitive - introduc tuple cate aparitii are campul respectiv, fiecare tuplu continand o aparitie a campului.
Trecerea de mai sus poate fi rezumata astfel:
PERSONAL1:
MARCA# |
Nume si Prenume |
D-Judet |
D-Localitate |
D-Strada |
D-Numar |
Copil |
|
→ Ionescu are 3 copii, el va avea 3 tuple de forma:
|
Ionescu Ion |
CJ |
Cluj-Napoca |
Th.Mihali |
Petrica |
||
|
Ionescu Ion |
CJ |
Cluj-Napoca |
Th.Mihali |
Marioara |
||
|
Ionescu Ion |
CJ |
Cluj-Napoca |
Th.Mihali |
Costica |
→Tabelul - cantitate mare de informatie redundanta datorita grupului repetitiv. Pentru a inlatura se descompune (prin proiectie) in doua:
PERS1:
MARCA# |
Nume si Prenume |
D-Judet |
D-Localitate |
D-Strada |
D-Numar | |
si tabelul COPII:
MARCA# |
Nume si Prenume |
Data-Nasterii |
Locul-Nasterii |
Situatia scolara |
Alocatie |
unde MARCA# - cheie straina - asigura legatura cu tabelul PERS1 - restul date proprii copiilor. MARCA# este cheie primara? → cheie primara "Nume si Prenume" + "Data-Nasterii".
→ doua tabele in prima forma normala, iar prin recompunerea tabelelor (prin echijoin) se ajunge la relatia initiala, deci descompunerea este fara pierderi, adica:
PRESONAL = PERS1 [MARCA# = MARCA#] COPII
4. Teorema de descompunere
Descompunerea se utilizeaza pentru a evita anomaliile de stocare.
Teorema de descompunere reversibila (Delobel & Cassey 1973): R o relatie definita pe multimea atributelor Ω, R(Ω) si A,B,C o partitionare a lui Ω, astfel ca DF:A→B. Atunci R(Ω)poate fi descompus fara pierderi, in doua relatii R(Ω1 ) si R(Ω2 ), unde
Ω1=A U B - reuniunea atributelor din DF
Ω2=A U C- reuniunea atributelor care nu fac parte din DF.
→ Descompunerea - izolarea a doua concepte care initial in acelasi tabel → transforma o dependenta intra-relatie intr-o dependenta inter-relatie.
Dezavantaj - migrare de atribute - atributele din grupul A (in cazul exemplului Marca#) se dubleaza.
5. A doua forma normala
O relatie - in a doua forma normala (2NF), 1NF & orice atribut care nu face parte din cheia primara, DFT de cheia primara → nici un atribut care nu face parte din cheia primara nu depinde functional de o parte a cheii primare
Relatia PERS1 este in 2NF - MARCA# - singur atribut - celelalte atribute DFT de cheia primara. Tabelul COPII nu este in 2NF, (Alocatia DF de Data-Nasterii parte a KP → nu exista DFT: KP (Nume si Prenume, Data Nasterii) si Alocatia.
→ o serie de anomalii:
anomalia de inserare - nu se poate introduce Alocatia, care depinde de Data-Nasterii pana cand nu se introduce si numele copilului, desi alocatia nu depinde de acest parametru;
anomalia de stergere - prin stergerea numelui unui copil (care face parte din cheia primara) - riscul pierderii legaturii dintre data nasterii si alocatie;
anomalii de punere la zi - pentru a pune la zi perechea (Data-Nasterii, Alocatie) - 2 strategii:
o daca se pune la zi - prima aparitie - inconsistenta;
o pentru a pune la zi toate aparitiile - analizat fiecare articol → o operatie foarte costisitoare.
→ aducere la 2NF, prin T descompunerii lui Delobel & Cassey → COPII se va descompune in COPIL1 si COPIL2:
COPIL1
COPII |
Nume si Prenume
Data-Nasterii
Locul-Nasterii
COPIL2
Data-Nasterii |
Situatia scolara |
Alocatie |
Se inlatura redundantele & anomaliile - DF: Data-Naterii→Alocatie nu mai este in COPIL1. Descompunere fara pierderi, adica prin recompunere celor doua tabele se regaseste tabela initiala:
COPII = COPIL1 [Data-Nasterii = Data-Nasterii] COPIL2
Schematic:
6. Forma a 3-a normala (3NF) si variantele (3 ½ NF)
3NF - mai multe definitii, dintre care 3 sunt mai importante:
O relatie in 3NF (Codd ,70 - 3NF) - 2NF & intre doua atribute care nu sunt cheie nu exista o dependenta tranzitiva.
Un atribut C depinde tranzitiv de atributul B daca au loc dependentele functionale intre B si C, A si B, respectiv intre A si C - schema dependentelor functionale are forma:
A B
C
Alta formulare: o relatie este in 3NF - 2NF si nu exista dependente functionale intre atributele care nu sunt cheie.
A doua definitie: Codd in 1971 si se numeste forma BCNF sau Boyce-Codd Normal Form: R este in BCNF daca pentru orice multime de atribute A pentru care exista un atribut din C(A), care depinde functional de A, are loc proprietatea ca orice atribut din R depinde functional de A [Miranda&Busta].[Gardarin] R - BCNF ↔singurele DF elementare sunt cele prin care o cheie detrmina 1 atribut.
A treia definitie a 3NF Sharman in 1975: O relatie este in 3NF daca orice determinant este o cheie (primara sau candidat).
Ideea de baza este deci aceea ca: fiecare relatie contine un singur concept semantic.
PERS1:
MARCA |
Nume si Prenume |
Data -Angajarii |
Ore -Lucrate |
Salar - Brut | ||
Este in 2NF, nu este in a 3NF, deoarece intre atributele care nu sunt cheie, Data-Angajarii si Ore-Lucrate, pe de o parte, si Salar-Brut, pe de alta parte, exista o relatie functionala. Izoland aceasta relatie, din PERS1 se obtin tabelele:
PERS11:
PERS1 |
Nume si Prenume
Data-Angajarii
Ore-Lucrate
PERS12:
Data-Angajarii |
Ore-Lucrate |
Salar-Brut |
Se elimina anomalii legate de prezenta
DF: (Data Angajarii, Ore Lucrate → Salar Brut)
& descompunerea este fara pierderi:
PERS1 = PERS11 [Data Angajarii, Ore Lucrate =
Data Angajarii, Ore Lucrate] PERS12
Trecerea de la 2NF la 3NF se realizeaza prin izolarea DF tranzitive si aplicand teorema de descompunere. Schematic are loc fenomenul:
Observatie. A doua si a treia definitie sunt echivalente si sunt mai restrictive decat 3NF.
BNCF - mai generala ca forma 3NF relatia PERS12. Aceasta este in 3NF. Ipoteza: realizarea salarului brut → angajatul lucreaza un numar de ore → apare o
DF: Salar Brut → Ore Lucrate
→ relatia nu este in BCNF - schematic relatiile se poate observa ca au loc dependentele conform figurii:
Aplicand teorema descompunerii si izoland (1) vor rezulta doua tabele:
PERS121: |
PERS122: |
||||||||
|
|
PERS121 este format numai din cheie (ALL KEY) deci nu are nici un atribut care sa nu fie cheie si ca descompunerea este fara pierderi, deci:
PERS12 = PERS121 [Ore lucrate = Ore lucrate] PERS122
Schematic operatia se poate reprezenta astfel:
Observatii.
BCNF fiind mai generala ca 3NF se considera ca este forma 3 ½.
Orice baza de date pentru a fi corect proiectata se aduce cel putin pana la a 3NF.
Copyright © 2024 - Toate drepturile rezervate
Finante-banci | |||
|
|||
| |||
| |||
|
|||