Teoria formelor normale

forme normale 4.2.Teoriya.

4.2.1. dependențe funcționale.

Baza de date relațională conține atât informații structurale și semantice. Structura bazei de date este determinată de numărul și tipul incluse în aceste relații și constrângerile impuse de „unu la mulți“ existente între tuplele relației. Partea semantică descrie setul de dependențe funcționale care există între atributele relației. Noi da definiția dependenței funcționale.

Dacă dat două atribute X și Y ale unei relații, spunem că Y este dependent funcțional pe X. Dacă în orice moment în timp fiecare valoare a lui X corespunde exact o valoare Y.

Dependența funcțională notată X -> Y. Rețineți că X și Y poate fi nu numai un singur atribut, dar grupul format din mai multe atribute ale unei relații.

Se poate spune că dependența funcțională constituie un tip de comunicare „una la mai multe“ existente în cadrul relației.

Unele dependențe funcționale pot fi de nedorit.

dependența Excesul funcțional - dependență, care cuprinde în sine această informație, care pot fi obținute pe baza altor dependențe, disponibile în baza de date.

A considerat în mod corect un astfel de sistem de bază de date în care dependențe funcționale redundante. În caz contrar, unul trebuie să recurgă la o procedură de descompunere (degradare) a setului de relații disponibile. Astfel set generat conține un număr mai mare de relații care sunt proiecții ale setului inițial de relații. (Operarea proiecției descrise în secțiunea privind algebra relațională). proces în etape reversibil pentru a înlocui un anumit set de relații cu alt circuit eliminarea dependențe redundante funcționale se numește normalizare.

Condițiile reversibilitate necesită descompunere păstrate circuite de echivalenta cu un singur circuit este înlocuit cu altul, și anume rezultând relația:
  • Nu ar trebui să apară tuple absente anterior;
  • pe relația noului sistem ar trebui să fie efectuate setul inițial de dependențe funcționale.

4.2.2. 1NF - Prima formă normală.

Pentru o discuție prima formă normală este necesară pentru a da două definiții:

atribut simplu - atributul ale căror valori sunt atomice (indivizibile).

Un atribut complex - compus obținut din numărul atomic de atribute care pot fi definite pe unul sau domenii diferite. (De asemenea, numite date vectoriale sau agregat).

Acum puteți da

Determinarea primei formă normală:

raportul este în 1NF dacă toate valorile sale sunt atribute atomice.

Luați în considerare acest exemplu, luat din articolul menționat deja E.F.Kodda.

Baza de date trebuie să fie stocate date HR Enterprise informații despre angajații care pot încerca să-și imagineze în ANGAJAT relație (NOMER_SLUZHASCHEGO, Nume, Data nașterii, ISTORIYA_RABOTY, copii).

Dintr-o analiză atentă a relației ar trebui să fie că „istoriya_raboty“ și „copii“ atribute sunt complicate, în plus, atributul „istoriya_raboty“ include un alt atribut complex „istoriya_zarplaty“.
Aceste unități sunt după cum urmează:
  • ISTORIYA_RABOTY (DATA_PRIEMA, NUME, ISTORIYA_ZARPLATY)
  • ISTORIYA_ZARPLATY (DATA_NAZNACHENIYA, SALARII)
  • COPIII (IMYA_REBENKA, GOD_ROZHDENIYA).

    Relația lor este prezentată în Fig. 4.3.

    Figura 4.3. Atitudinea inițială.


    Pentru a aduce relațiile originale ale angajaților la prima formă normală este necesar să se descompune în patru relații, așa cum se arată în figura de mai jos:
    Figura 4.4. set normalizată de relații.

    Aici, cheia primară a fiecărei relații se evidențiază printr-un cadru albastru, numele cheilor străine introduse în font albastru. Să ne amintim că cheile străine sunt folosite pentru a reprezenta relațiile funcționale care există în termenii inițiali. Aceste relații funcționale sunt indicate prin linii cu săgeți.

    E.F.Koddom Algoritmul de normalizare este descrisă după cum urmează:
    • Începând cu relația, situată în partea de sus a arborelui (Fig. 4.3.), Este nevoie de cheia primară și fiecare relație direct subordonat este extins prin introducerea unui domeniu sau o combinație de domenii cheie primară.
    • Cheia primară a fiecărei astfel încât relația extinsă include o cheie primară, care a fost în acest raport să se extindă și să adăugați o cheie primară a relației părinte.
    • După aceea, relația parentală pentru a șterge toate domeniile dificile, înlăturați nodul superior al arborelui, iar aceeași procedură se repetă pentru fiecare dintre subramificații rămase.

    4.2.3. 2NF - a doua formă normală.

    Foarte adesea, cheia primară a relației include un număr de atribute (în acest caz este numit un compozit) - a se vedea, de exemplu, raportul dintre copii, așa cum se arată în Fig .. 4.4. Astfel, conceptul de dependență funcțională completă.

    atribut non-cheie este complet dependentă de vedere funcțional de cheia compozit, dacă el este dependent funcțional pe toată cheia întregii, dar nu este o funcție de oricare dintre atributele conținute în ea.

    Determinarea unei a doua formă normală:

    Raportul este în 2NF, în cazul în care acesta este în 1NF și fiecare atribut non-cheie dependente complet funcțional pe cheia.

    4.2.4. 3NF - A treia normală Formă.

    Înainte de a discuta a treia formă normală este necesară introducerea conceptului de tranzitiv dependență funcțională.

    Fie X, Y, Z - trei atribute ale unei relații. În acest caz, X -> Y și Y -> Z, dar invers
    conformitatea este absent, și anume Z - / -> Y și Y - / -> X. Atunci Z este tranzitiv dependent de X.

    Raportul este în 3NF dacă este în 2NF și fiecare atribut intranzitiv non-cheie depinde de cheia primară.

    4.2.5. BCNF - forma normală Boyce-Codd.

    Această formă normală introduce o constrângere suplimentară în comparație cu 3NF.

    Determinarea formei normale a Boyce-Codd:

    Raportul este în BCNF, în cazul în care este în 3NF și îi lipsește funcția de atribut al cheii primare atributele non-cheie.

    Situația atunci când raportul este stocat în 3NF, dar nu și în BCNF, este prevăzut ca are un raport de două (sau mai multe) chei posibile, care sunt compuse și au un atribut comun. De notat că, în practică, această situație este rară, pentru toate celelalte relații 3NF și BCNF sunt echivalente.

    4.2.6. dependența multivaloare și forma normală a patra (4NF).

    În al patrulea rând Forma în Normal pentru relații, în care se repetă seturi de date. Descompunerea în funcție de dependență funcțională nu conduce la excluderea unei astfel de redundanță. În acest caz, o descompunere bazată pe dependențe multivaloare.

    dependența multivaloare este o generalizare a dependențelor funcționale și examinează corespondența dintre seturile de valori de atribute.

    Rețineți că aceste anomalii dispar atunci când schimbarea atitudinii profesorilor de proiecțiile sale: o actualizare apare anomalie în acest caz, deoarece, în ceea ce privește cadrele didactice sunt:
    1. dependența setului valori de atribute ale programelor dintr-o multitudine de valori ale atributului NAME
    2. dependență UCHEBNOE_POSOBIE pluralitate de valori atribut dintr-o multitudine de valori ale unui nume de atribut.

    Aceste parcele sunt numite multivaloare și desemnate la fel de ușor pentru a arăta că, în funcție multivaloare întotdeauna forma perechi cuplate, astfel încât acestea sunt adesea denumite Evident, fiecare dependență funcțională este de multe-evaluate, dar nu orice dependență funcțională este evaluată.

    Determinarea celei de a patra formă normală:

    Raportul este în 4NF dacă este în BCNF, și acolo otstutsvie dependențe multivaloare care nu sunt dependențe funcționale.

    4.2.7. În funcție de compus și forma normală a cincea (5NF).

    Pana acum am presupus că singura operație necesară pentru a elimina redundanta cu respect, a fost descompus în două proiecții. Cu toate acestea, există o relație, care nu se poate descompune fără pierderi în două proiecții, dar care poate fi supusă descompunerii lossless în trei (sau mai multe) proiecții. Acest fapt a devenit cunoscut, în funcție de conexiunea. și o astfel de relație se numește raportul 3-descompusă (clar că orice raport poate fi numit „n-descompusă“, unde n> = 2).

    Detalii aici această problemă, nu discutăm (vezi detalii complete. K.Deyta în carte), observăm doar că dependența de conexiunea este o generalizare a dependențelor multi-evaluate. O relație în care există, în funcție de conexiunea, care nu sunt în același timp sau cu multe evaluate sau funcționale, sunt caracterizate prin anomalii de renovare. Prin urmare, conceptul de forma normală a cincea.

    Determinarea formei normale a cincea:

    Raportul este în 5NF dacă și numai dacă există dependență de conexiunea este determinată doar de chei sale posibile.