Kas ir atkarība no datu bāzes?

Datu bāzu atkarības ir tēma, kas bieži vien mulsina gan studentus, gan datu bāzu speciālistus. Par laimi, tie nav tik sarežģīti, un to vislabāk var ilustrēt, izmantojot vairākus piemērus. Šajā rakstā mēs analizējam kopīgos datubāzu atkarību veidus.

Datubāzes atkarības / funkcionālās atkarības

Datu bāzē pastāv atkarība, 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ā.

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ē pastāv atkarība, 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 nosaukums, 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 dažādi SSN.

Trivial funkcionālās atkarības

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.

Pilnas funkcionālās atkarības

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, bet 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

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, kad tā ir taisnība tikai tāpēc, ka abi "A -> B" un "B -> C" ir patiesi.

Daudzvalodu atkarības

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.

Atkarību nozīme

Datu bāzu atkarība ir svarīga, lai saprastu, jo tā nodrošina pamatelementus, ko izmanto datu bāzes normalizēšanā . Piemēram: