Care sunt dependențele bazei de date?

Baze de date dependente sunt un subiect care confundă adesea atât studenții, cât și profesioniștii bazei de date. Din fericire, acestea nu sunt atât de complicate și pot fi ilustrate cel mai bine prin utilizarea unui număr de exemple. În acest articol, examinăm tipurile comune de dependență a bazei de date.

Dependențele bazelor de date / dependențele funcționale

O dependență apare într-o bază de date 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. Puteți, de asemenea, descrie acest lucru ca fiind o relație în care cunoașterea valorii unui atribut (sau a unui set de atribute) este suficientă pentru a vă spune valoarea unui alt atribut (sau set de atribute) în același tabel.

Spunând că există o dependență între atributele într-un tabel, este aceeași cu a spune că există o dependență funcțională între acele atribute. Dacă există o dependență într-o bază de date, astfel încât atributul B depinde de atributul A, ați scrie acest lucru ca "A -> B".

De exemplu, într-un tabel care prezintă caracteristicile angajaților, inclusiv numărul de securitate socială (SSN) și numele, se poate spune că numele este dependent de SSN (sau SSN -> name) deoarece numele unui angajat poate fi determinat în mod unic de SSN. Cu toate acestea, instrucțiunea inversă (nume -> SSN) nu este adevărată deoarece mai mulți angajați pot avea același nume, dar SSN-uri diferite.

Definiții funcționale triviale

O dependență funcțională trivială apare atunci când descrieți o dependență funcțională a unui atribut dintr-o colecție de atribute care include atributul original. De exemplu, "{A, B} -> B" este o dependență funcțională trivială, așa cum este "{name, SSN} -> SSN". Acest tip de dependență funcțională se numește trivial, deoarece poate fi derivat din bunul simț. Este evident că dacă cunoașteți deja valoarea lui B, atunci valoarea lui B poate fi determinată în mod unic de acea cunoaștere.

Dependențe funcționale complete

O dependență funcțională totală apare atunci când îndepliniți deja cerințele pentru o dependență funcțională și setul de atribute din partea stângă a instrucțiunii de dependență funcțională nu mai poate fi redus. De exemplu, "{SSN, age} -> name" este o dependență funcțională, dar nu este o dependență funcțională completă, deoarece puteți elimina vârsta din partea stângă a instrucțiunii fără a afecta relația de dependență.

Dependențe tranzitorii

Dependențele tranzitorii apar atunci când există o relație indirectă care determină o dependență funcțională. De exemplu, "A -> C" este o dependență tranzitivă când este adevărată doar pentru că atât "A -> B", cât și "B -> C" sunt adevărate.

Dependențe multivite

Dependențele multivate au loc atunci când prezența unuia sau mai multor rânduri într-un tabel implică prezența uneia sau a mai multor rânduri în același tabel. De exemplu, imaginați-vă o companie de automobile care produce multe modele de mașini, dar întotdeauna face atât culorile roșu și albastru ale fiecărui model. Dacă aveți un tabel care conține numele modelului, culoarea și anul fiecărei mașini pe care compania o produce, există o dependență multivolită în tabelul respectiv. Dacă există un rând pentru un anumit nume de model și un an cu albastru, trebuie să existe și un rând similar cu versiunea roșie a aceleiași mașini.

Importanța dependențelor

Baza de date a dependențelor este important de înțeles, deoarece ele furnizează blocurile de bază utilizate în normalizarea bazei de date . De exemplu: