E-mail: dan.sitar@econ.ubbcluj.ro Departamentul de Informatică Economică, et. 4, Birou 432 Cuprins 2 1. Consideraţii generale 2. Forma normală bazată pe chei elementare (EKNF) 3. Forma normală 4 (4 NF) 4. Forma normală 3,3 (3.3 NF) 5. Forma normală 5 (5 NF, PJNF) 6. Forma normală bazată pe domenii şi chei (DK/NF) 7. Forma normală 6 (6 NF) 8. Normalizare: Avantaje şi dezavantaje 9. Exemplu normalizare 3 Consideraţii generale
• Normalizarea: proces gradual, o formă normală
superioară îndeplineşte automat condiţiile formei anterioare • În definiţii se întâlneşte sintagma: „Spunem că o relaţie este în forma normală N dacă şi numai dacă se află în forma normală N-1 şi …”. Forma normală bazată pe chei 4 elementare (EKNF) O formă normală mai puternică decât forma normală 3, însă mai slabă decât forma normală Boyce-Codd A fost definită în 1982 de către Zaniolo. Ea este cunoscută sub numele de „forma normală bazată pe chei elementare” (EKNF). Chiar dacă apariţia sa istorică o plasează în timp după descoperirea formei BCNF, specialiştii consideră că ea furnizează un grad de normalizare inferior BCNF. Definiţie: Fie Σ o mulţime de dependenţe funcţionale şi X→A o dependenţă funcţională din Σ. Spunem că o dependenţă X→A este elementară pe mulţimea Σ dacă şi numai dacă nu există o dependenţă funcţională netrivială X'→A în Σ+ astfel încât X' X. Un set de atribute K este cheie elementară dacă pentru anumite atribute A, K→A este o dependenţă funcţională elementară. Un atribut care aparţine unei chei elementare este denumit atribut cheie elementară. Definiţie: O relaţie R este în EKNF dacă pentru fiecare dependenţă funcţională netrivială X→A, fie X este o supercheie, fie A este un atribut cheie elementară. 5 Exemple fie R(DEPT, MNGR, ACC#). DEPT - numele departamentului, MNGR – nume manager şi ACC# - un număr de cont utilizat de departament. dependenţe funcţionale simetrice: DEPT → MNGR şi MNGR → DEPT. Pentru că atât DEPT –/→ ACC# , MNGR –/→ ACC# => cheie compusă DEPT, ACC# sau MNGR, ACC#. cheile candidate nu sunt elementare deoarece nici dependenţele funcţionale DEPT, ACC# → MNGR sau MNGR, ACC# → DEPT nu sunt elementare (membrul stâng fiind reductibil) Forma normală 4 (4 NF) 6 Definiţie: Fie R(A1, A2, …, An) o schemă relaţională şi X şi Y două submulţimi ale mulţimii A1, A2, …, An. Se spune că între X şi Y există o dependenţă multivocă, dacă şi numai dacă, fiind dată o valoare a lui X, acesteia îi corespunde o mulţime de valori din Y şi această mulţime este independentă de atributele din Z, unde Z = R – (X Y), ale relaţiei R. Concluzie: X determină întotdeauna acelaşi set multivaloric pentru Y; Y şi Z sunt independente; X, Y, Z pot fi grupuri de atribute şi opţional X, Y, Z acoperă întreaga relaţie şi sunt disjuncte*. Dependenţele multiple se notează X ―» Y, X ―∕∕―›Y sau X ―» Y | Z, X ―∕∕―›Y / Z *dacă este respectată şi această condiţie atunci avem dependenţe MVD simple, în caz contrar sunt încuibărite Forma normală 4 (4 NF) 7 Definiţie: O relaţie R se află în forma normală 4 dacă şi numai dacă ea este în forma normală Boyce-Codd şi nu conţine dependenţe multivoce netriviale. 8 Forma normală 3,3 (3.3 NF) A fost propusă de către Smith în 1978 Rolul acesteia era de a extinde cea de-a treia formă normală în eventualitatea că anumite dependenţe funcţionale nu acoperă întreg domeniul pe care sunt definite. 9 Forma normală 5 (5 NF, PJNF) Definiţie: Dependenţa de tip uniune fără pierderi este o proprietate a operaţiei de descompunere, care garantează că nu se generează rânduri false atunci când tabelele sunt reunite printr-o operaţiune de uniune naturală. dependenţa de joncţiune totală: dacă reuniunea atributelor e R dependenţa parţială: dacă determină o submulţime a lui R *{(X, Y), (Y, Z), (X, Z)} sau XYZ = XY * YZ * XZ = XY_YZ * XZ = XY_YZ_XZ 10 Exemplu Definiţie: O relaţie se află în forma normală 5 dacă şi numai dacă cheile candidat ale relaţiei implică fiecare dependenţe de tip uniune fără pierderi netriviale. Definiţie: O relaţie se află în forma normală 5 dacă nu conţine nicio dependenţă de tip uniune fără pierderi. Forma normală bazată pe domenii şi chei 11 (DK/NF) Afost definită de Ronald Fagin în 1981. Chiar dacă a apărut înaintea altor forme normale, ea reprezintă, după părerea mai multor specialişti, gradul cel mai înalt de normalizare. Spre deosebire de celelalte forme normale, DK/NF nu este definită în termenii tradiţionali ai dependenţelor (funcţionale, multivaloare sau uniune). Ea se defineşte în termenii primitivelor concepte legate de domenii şi chei, împreună cu un concept general legat de constrângeri Constrângere de domeniu: exprimă o constrângere potrivit căreia valorile unui anumit atribut sunt luate dintr-un domeniu precis specificat; Constrângere de cheie: este acea constrângere prin care o anumită mulţime de atribute constituie o cheie candidat. Definiţie: O relaţie R este în DKNF dacă fiecare constrângere a relaţiei este consecventă cu definiţiile de cheie şi de domenii asociate acesteia. Exemplu 12 Fie Relaţia Angajat(Marca, Functia, Salar) Domenii: D(Marca): un întreg de 4 cifre D(Functia): text, ia valori din următoarele {"Contabil sef", "Sofer","Manager general", "Muncitor"} D(Salar): valori întregi cuprinse între 200 şi 1000 RON Cheia relaţiei: Marca Constrângeri: pentru orice manager – şi numai pentru aceste funcţii –Marca începe în mod obligatoriu cu 1, iar salariul să fie mai mare de 500. 13 Forma normală 6 (6 NF) Definiţie: O relaţie R este în forma normală 6 dacă şi numai dacă este în FN5 şi fiecare dependenţă de tip uniune deţinută de relaţie este trivială. Exemplu: MECI(Data, Oponent, Locatia, GoluriDate, GoluriPrimite). Chei: Data, Oponent, Locatia (FN5) Relaţii în FN6: PROGRAM(Data, Oponent, Locatia) şi REZULTATE(Data, GoluriDate, GoluriPrimite) 14 Avantaje eliminarea anomaliilor de actualizare; reducerea dimensiunii bazei de date ca urmare a eliminării redundanţei; oferă premisa pentru creşterea vitezei de acces la înregistrările tabelelor, datorită supleţei acestora asigurarea unui acces la date consistente în regim monoutilizator crearea unor tabele cu conţinut şi comportament specific care emulează realitatea; posibilitatea adăugării altor tabele în baza de date care să nu afecteze integritatea celor existente; încurajează programarea modulară. 15 Dezavantaje performanţe reduse la recompunerea tabelei originale pe baza operaţiunilor de join multiple; scăderea lizibilităţii înregistrărilor din relaţiile individuale; caracterul subiectiv al unor acţiuni pe care un proiectant le întreprinde, chiar dacă există reguli stricte; proiectarea aplicaţiilor necesită programatori mai experimentaţi; uneori pot să rezulte relaţii forţate, care să nu corespundă realităţii, deci nu unui tip de entitate; chiar şi în condiţiile inventarierii aceloraşi atribute şi aceloraşi dependenţe nu se garantează faptul că rezolvarea va fi aceeaşi. 16 8. Exemplu normalizare 17 Tematică laborator Database Programming with SQL Section 8 - Group Functions Part I • 8-1 Group Functions • 8-2 COUNT, DISTINCT, NVL Section 9 - Group Functions Part II • 9-1 Using Group By and Having Clauses • 9-2 Using Rollup and Cube Operations, and Grouping Sets • 9-3 Using Set Operators 18 Tematică laborator Database Programming with SQL Section 15 - Views • 15-1 Creating Views • 15-2 DML Operations and Views • 15-3 Managing Views