Într-o bază de date relațională, o dependență are loc atunci când informațiile stocate în același tabel al bazei de date determină în mod unic alte informații stocate în același tabel. O dependență multivită are loc atunci când prezența unuia sau a mai multor rânduri într-un tabel implică prezența uneia sau a mai multor rânduri în același tabel. Altfel, două atribute (sau coloane) într-o tabelă sunt independente una de alta, dar ambele depind de un al treilea atribut.
O dependență multivolară împiedică formarea normală standard 4 (4NF). Bazele de date relaționale urmează cinci forme normale care reprezintă orientări pentru designul înregistrărilor. Acestea împiedică anomaliile și neconcordanțele de actualizare a datelor. A patra formă normală se referă la relațiile multiple într-o bază de date.
Dependența funcțională vs. dependența multivolită
Pentru a înțelege o dependență multivită, este util să revedeți ce este dependența funcțională.
Dacă un atribut X determină în mod unic un atribut Y, atunci Y este funcțional dependent de X. Acesta este scris ca X -> Y. De exemplu, în tabelul Studenți de mai jos, Student_Name determină majore:
Numele studentului | Major |
---|---|
Ravi | Istoria artei |
Beth | Chimie |
Această dependență funcțională poate fi scrisă: Student_Name -> Maior . Fiecare Student_Name determină exact unul Major și nu mai mult. Dacă doriți ca baza de date să urmărească, de asemenea, sporturile pe care acești studenți le iau, s-ar putea să vă gândiți că cel mai simplu mod de a face acest lucru este doar să adăugați o altă coloană intitulată Sport: Problema este că atât Ravi cât și Beth joacă mai multe sporturi. Este necesar să adăugați un nou rând pentru fiecare sport suplimentar. Această tabelă a introdus o dependență multivolită, deoarece principalul și sportul sunt independenți unul de altul, dar ambii depind de student. Acesta este un exemplu simplu și ușor de identificat, dar o dependență multivalueală ar putea deveni o problemă într-o bază de date complexă și complexă. O dependență multivită este scrisă X -> -> Y. În acest caz: Numele studentului ->-> MajorNumele studentului->-> sportiv
Acesta este citit ca "Student_Name multidetermines Major" și "Student_Name multidetermines Sport". O dependență multivolită necesită întotdeauna cel puțin trei atribute deoarece constă în cel puțin două atribute care depind de oa treia. Un tabel cu o dependență multivalabilă încalcă standardul de normalizare a Formei 4 Normale (4NK), deoarece creează concedieri inutile și poate contribui la date inconsistente. Pentru a aduce acest lucru până la 4NF, este necesar să rupă aceste informații în două tabele. Tabelul de mai jos are acum o dependență funcțională a Student_Name -> Major și nu există dependențe multivate: În timp ce acest tabel are de asemenea o dependență funcțională unică a Student_Name -> Sport: Este clar că normalizarea este adesea abordată prin simplificarea tabelelor complexe, astfel încât acestea să conțină informații referitoare la o singură idee sau temă, în loc să încerce să facă o singură masă, să conțină prea multe informații disparate.Numele studentului Major sportiv Ravi Istoria artei Fotbal Ravi Istoria artei Volei Ravi Istoria artei Tenis Beth Chimie Tenis Beth Chimie Fotbal Dependență și normalizare multivaluează
Numele studentului Major Ravi Istoria artei Ravi Istoria artei Ravi Istoria artei Beth Chimie Beth Chimie Numele studentului sportiv Ravi Fotbal Ravi Volei Ravi Tenis Beth Tenis Beth Fotbal