2 dependență funcțională
Normalizarea modelului relațional se bazează pe conceptul de dependență funcțională.
Să presupunem dat un raport de R.
Caracteristica Afunktsionalno definește atributul B (AV) în cazul în care valoarea unui atribut A corespunde unei singure valori atributului B. De exemplu, în ceea ce privește STUDENT (№ Gradebook, numele, prenumele, data nașterii) în proiecția R [A, B] poate fi identifică următoarele dependențe funcționale: zachotnoo numărul knizhkiFamiliya, numărul de înregistrare student knizhkiImya, numărul de înregistrare knizhkiOtchestvo student, numărul de înregistrare knizhkiData naștere student. În același timp, determină Nume punct de vedere funcțional gradebook numărul. deoarece același nume poate avea mai multe cărți transcrieri.
Dacă AV și VA. atunci există o relație bijectivă (AV), de exemplu, INN№ Gradebook.
De exemplu, în ceea ce privește TEST (număr de cod de student disciplina, data, codul de profesor, evaluare) pot identifica următoarele relații funcționale: numărul de elev, distsiplinyotsenka cod; Numărul de cod dataotsenka disciplină de student; Numărul de cod disciplinei de student, prepodavatelyaotsenka data de cod; numărul de studenți, data, codul prepodavatelyaotsenka; . Codul de Profesor datakod disciplina și alte condiții ale existenței unor relații funcționale ale acestora sunt următoarele afirmații la o disciplină dată de student specificat poate fi atribuit doar o singură evaluare în timpul existenței bazei de date; la aceeași dată profesorul poate lua doar un singur examen; subiect specific pentru o anumită dată, numai un singur cadru didactic predă. Astfel, dependențe funcționale reflectă normele specifice pentru acest domeniu. Schimbarea regulilor atrage după sine o schimbare în dependențe funcționale.
Folosind conceptul de dependență funcțională putem formula următoarea regulă:
dacă modelul relațional proiectat satisface criteriul de normalizare, singurele relații funcționale într-o relație trebuie să se bazeze vidaKV, gdeK- relație cheie primară.
Din cele de mai sus declarațiile se poate da o definiție cheie:
cheie - setul minim de atribute care sunt determină funcțional toate atributele de relații separat.
3 Teoreme de dependențe funcționale
Teorema 1. Orice set de atribute determină funcțional orice subset sale.
Teorema 5. Între atributele cheie ale dependențe funcționale nu există.
A se vedea „Teoria Relational Database“
Forme normale de relații. Metoda de descompunere
1 Forme normale de relații
Forma normală a relației - o relație cu restricții suplimentare privind valorile stocate în ea.
Prima formă normală (1NF) - raportul în care fiecare element are o valoare atomică aparținând domeniului corespunzător.
Al doilea Form Normal (2NF) - un raport care este în primul formă normală și care nu conține dependențe funcționale parțiale.
relație funcțională incompletă apare atunci când o relație de atribut depinde de un subset al atributelor cheie compuse.
Luați în considerare exemplul unei dependențe funcționale parțiale. În exemplul de relații funcționale sunt reprezentate vertical, pentru a le înregistra într-o formă mai compactă. Figura 1 atribut Numărul depinde numai de chei compozit, și atributele numele furnizorului și detaliile furnizorului depinde de subseturi cheie compozite.
Figura 1 - Raportul, care nu se află în 2NF
Dezavantajele acestei atitudini:
1) coloana „Furnizor Numele“ și „furnizor de informații“ nu poate fi umplut până la livrarea efectivă a unui anumit partid;
2) În cazul în care furnizorul întârziat de livrare a unor părți, îndepărtarea tuplul va duce la eliminarea a furnizorului;
3) Dacă doriți să modificați informațiile furnizor, acestea trebuie să se schimbe toate tuplele, care se referă la furnizor.
Pentru a doua formă normală trebuie să fie raportul inițial împărțit în două atitudini:
- se referă la o cheie compozit;
- relație cu cheia fiind un subset al cheii compozit.
Pentru acest exemplu, vom obține:
Provider (număr de furnizor, numele furnizor, furnizor de informații);
PARTY (număr de furnizor, codul produsului, numărul de lot, cantitate).
A treia formă normală (3NF) - raportul, situat în a doua formă normală și nu cuprinde relații tranzitive.
Luați în considerare exemplul unei relații în care există o relație tranzitiv:
STUDENT (№studenta, grp, Codul Facultății).
În acest sens №studenta№gruppy, №gruppyKod facultate №studentaKod facultate.
1) redundanța datelor (cod Facultatea se repetă pentru toate grupurile de elevi, cu toate că ar fi de ajuns să-l subliniem o dată pentru un grup);
2) complicarea integritatea datelor.
trebuie să împartă relația inițială Pentru 3NF în două: