Kas priklauso nuo duomenų bazių?

Duomenų bazių priklausomybės yra tema, kuri dažnai klaidina tiek studentus, tiek duomenų bazių specialistus. Laimei, jie nėra tokie sudėtingi ir geriausiai iliustruojami, naudojant keletą pavyzdžių. Šiame straipsnyje aptariami bendrieji duomenų priklausomybės tipai.

Duomenų bazių priklausomybės / funkcinės priklausomybės

Duomenų bazėje priklauso priklausomybė, kai ta pati duomenų bazės lentelėje saugoma informacija vienareikšmiškai nustato kitą tą pačią lentelę saugomą informaciją. Taip pat galite apibūdinti tai kaip santykį, kai žinant vieno atributo (arba atributų rinkinio) vertę yra pakankamai, kad pasakytų jums kito atributo (arba atributų rinkinio) vertę toje pačioje lentelėje.

Sakydamas, kad lentelėje yra priklausomybė tarp atributų, ta pati sakoma, kad tarp šių atributų yra funkcinė priklausomybė. Jei duomenų bazėje yra priklausomybė, tokia, kad atributas B priklauso nuo atributo A, tai parašyti kaip "A -> B".

Pavyzdžiui, lentelėje, kurioje yra darbuotojų charakteristikos, įskaitant socialinio draudimo numerį (SSN) ir pavadinimą, galima sakyti, kad vardas priklauso nuo SSN (arba SSN -> pavadinimas), nes darbuotojo vardas gali būti vienareikšmiškai nustatytas iš jo SSN. Tačiau atvirkštinis pareiškimas (pavadinimas -> SSN) nėra teisingas, nes daugiau nei vienas darbuotojas gali turėti tą patį pavadinimą, bet skirtingus SSN.

Trivialios funkcinės priklausomybės

Trimatis funkcinė priklausomybė atsiranda, kai apibūdinate atributo funkcinę priklausomybę atributų rinkiniui, į kurį įtraukiamas pradinis atributas. Pavyzdžiui, "{A, B} -> B" yra nereikšminga funkcinė priklausomybė, kaip yra "{name, SSN} -> SSN". Ši funkcinės priklausomybės rūšis vadinama nereikšminga, nes ji gali būti gauta iš sveiku protu. Akivaizdu, kad jei jau žinote B vertę, tuomet B reikšmė gali būti unikaliai nustatyta šiomis žiniomis.

Visos funkcinės priklausomybės

Visiškai funkcinė priklausomybė atsiranda tada, kai jau patenkate funkcinės priklausomybės reikalavimams, o funkcinių priklausomybių pranešimo kairėje pusėje esančių atributų rinkinys negali būti toliau mažinamas. Pavyzdžiui, "{SSN, age} -> name" yra funkcinė priklausomybė, tačiau ji nėra visiškai funkcinė priklausomybė, nes jūs galite pašalinti amžių iš kairės ataskaitos dalies nepažeidžiant priklausomybės santykio.

Transitinės priklausomybės

Transitinės priklausomybės atsiranda, kai yra netiesioginis ryšys, dėl kurio atsiranda funkcinė priklausomybė. Pavyzdžiui, "A-> C" yra tarpinė priklausomybė, kai ji yra tiesa tik todėl, kad "A-> B" ir "B-> C" yra tiesos.

Daugialypės priklausomybės

Daugialypės priklausomybės atsiranda tada, kai vienos ar kelių lentelės eilučių buvimas rodo, kad vienoje ar daugiau kitų eilučių yra ta pati lentelė. Pvz., Įsivaizduokite automobilių kompaniją, kuri gamina daugelį automobilių modelių, bet visada daro tiek raudoną, tiek mėlyną kiekvieno modelio spalvą. Jei turite lentelę, kurioje yra kiekvieno automobilio modelio pavadinimas, spalva ir metai, tai lentelėje yra daugialypis priklausomumas . Jei yra tam tikro modelio pavadinimo ir metų ženklo mėlynos spalvos eilutė, taip pat turi būti panaši eilutė, atitinkanti to paties automobilio raudonąją versiją.

Priklausomybės svarba

Duomenų bazių priklausomybės yra svarbios suprasti, nes jos teikia pagrindinius elementus, naudojamus duomenų bazių normalizavimui . Pavyzdžiui: