Atkarība ir ierobežojums, kas attiecas uz vai definē attiecības starp atribūtiem. Tas notiek datubāzē, ja tajā pašā datu bāzes tabulā saglabātā informācija unikāli nosaka citu informāciju, kas saglabāta tajā pašā tabulā. Varat arī aprakstīt to kā attiecības, ja viena atribūta (vai atribūtu komplekta) vērtības zināšana ir pietiekama, lai norādītu citā atribūta (vai atribūtu komplekta) vērtību tajā pašā tabulā.
Datu bāzu atkarības bieži vien mulsina gan studentus, gan datu bāzu speciālistus. Par laimi, tie nav tik sarežģīti, kā šķietami. Vislabāk to izskaidrot, izmantojot dažus piemērus. Šeit mēs aplūkosim kopējos datubāzu atkarību veidus.
Datu bāzu atkarības un funkcionālās atkarības
Sakot, ka tabulā ir atribūtu savstarpējā saistība, tas pats sakāms, ka starp šiem atribūtiem pastāv funkcionāla atkarība. Ja datu bāzē ir atkarība, piemēram, ka atribūts B ir atkarīgs no atribūta A, jūs to uzrakstu kā:
A -> B
Piemēram, tabulā, kurā uzskaitīti darbinieku raksturlielumi, tostarp sociālās apdrošināšanas numurs (SSN) un vārds, var teikt, ka vārds ir atkarīgs no SSN (vai SSN -> nosaukums), jo no SSN var precīzi noteikt darbinieka vārdu. Tomēr apgrieztais paziņojums (nosaukums -> SSN) nav taisnība, jo vairāk nekā vienam darbiniekam var būt viens un tas pats nosaukums, bet tam vienmēr ir dažādi SSN. Niecīga funkcionāla atkarība rodas, ja atribūtu funkcionālo atkarību apraksta atribūtu kolekcijā, kas ietver sākotnējo atribūtu. Piemēram, {A, B} -> B ir nenozīmīga funkcionāla atkarība, tāpat kā {name, SSN} -> SSN. Šī funkcionālā atkarība tiek saukta par triviāla, jo to var iegūt no veselā saprāta. Ir skaidrs, ka, ja jūs jau zināt B vērtību, tad B vērtību var unikāli noteikt ar šīm zināšanām. Pilnīga funkcionāla atkarība rodas, ja jūs jau atbilstat funkcionālās atkarības prasībām, un atribūtu kopu funkcionālās atkarības paziņojuma kreisajā pusē vairs nevar samazināt. Piemēram, {SSN, vecums} -> nosaukums ir funkcionāla atkarība, taču tā nav pilnīga funkcionāla atkarība, jo jūs varat noņemt vecumu no paziņojuma kreisās puses, neietekmējot atkarību. Transitīvās atkarības rodas, ja ir netiešas sakarības, kas izraisa funkcionālu atkarību. Piemēram, A -> C ir pārejoša atkarība, ja tā ir taisnība tikai tāpēc, ka abi A -> B un B -> C ir patiesi. Daudzvalodu atkarības rodas, ja vienas vai vairāku rindu klātbūtne tabulā nozīmē to, ka vienā un tajā pašā tabulā ir viena vai vairākas citas rindas. Piemēram, iedomājieties, ka automašīnu kompānija ražo daudzus automašīnas modeļus, taču vienmēr izgatavo katra modeļa sarkanas un zilas krāsas. Ja jums ir tabula, kurā ir katras automašīnas modeļa nosaukums, krāsa un gads, šajā tabulā ir daudzvērtīga atkarība. Ja rindā ir norādīts konkrēts modeļa nosaukums un gads zilā krāsā, jābūt arī tai pašai rindai, kas atbilst šīs automašīnas sarkanai versijai. Datu bāzu atkarības ir svarīgas, lai saprastu, jo tie nodrošina pamatelementus, kas tiek izmantoti datu bāzes normalizēšanā, procesā, kurā dati tiek efektīvi organizēti datu bāzē. Piemēram: Trivial funkcionālās atkarības
Pilnas funkcionālās atkarības
Transitīvās atkarības
Daudzvalodu atkarības
Atkarību nozīme













