Sunteți pe pagina 1din 18

Baze de Date în Economie

Cursul 8
Forme normale superioare

Conf. dr. Dan-Andrei Sitar-Tăut


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

S-ar putea să vă placă și