Skip to main content

Dependența multivaluată în baze de date

Bitza feat. Kamelia – Dependentza (Aprilie 2025)

Bitza feat. Kamelia – Dependentza (Aprilie 2025)
Anonim

Î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:

Studenți
Numele studentuluiMajor
RaviIstoria artei
BethChimie

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:

Studenți
Numele studentuluiMajorsportiv
RaviIstoria arteiFotbal
RaviIstoria arteiVolei
RaviIstoria arteiTenis
BethChimieTenis
BethChimieFotbal

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.

Dependență și normalizare multivaluează

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:

Studenți și majori
Numele studentuluiMajor
RaviIstoria artei
RaviIstoria artei
RaviIstoria artei
BethChimie
BethChimie

În timp ce acest tabel are de asemenea o dependență funcțională unică a Student_Name -> Sport:

Studenți și sport
Numele studentuluisportiv
RaviFotbal
RaviVolei
RaviTenis
BethTenis
BethFotbal

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.