Kas yra tranzitinė priklausomybė duomenų bazėje

Venkite tranzitinių priklausomybių, siekiant padėti normalizuoti

Perdavimo priklausomybė duomenų bazėje yra netiesioginis ryšys tarp verčių toje pačioje lentelėje, dėl kurios atsiranda funkcinė priklausomybė . Norint pasiekti trečiosios įprastos formos normalizavimo standartą (3NF), turite pašalinti bet kokią pereinamąją priklausomybę.

Dėl savo pobūdžio pereinamojo priklausomumo reikalauja trys ar daugiau atributų (arba duomenų bazių stulpelių), kurie tarp jų yra funkcinė priklausomybė, o tai reiškia, kad lentelės A stulpelis remiasi B stulpeliu per tarpinę C stulpelį.

Pažiūrėkime, kaip tai gali paveikti.

Tranzitinis priklausomybės pavyzdys

AUTORIAI

Author_ID Autorius Knyga Autoriaus vardas
Auth_001 Orson Scott Card Enderio žaidimas Jungtinės Valstijos
Auth_001 Orson Scott Card Enderio žaidimas Jungtinės Valstijos
Auth_002 Margaret Atwood Handmaid pasaka Kanada

Toliau pateiktame AUTHORS pavyzdyje:

Tačiau šioje lentelėje pateikiama pereinamoji priklausomybė:

Pereinamojo priklausomybės vengimas

Norint užtikrinti trečią įprastinę formą, leiskite pašalinti pereinamąjį priklausomybę.

Mes galime pradėti, pašalindami stulpelį "Knyga" iš lentelės "Autoriai" ir sukūrę atskirą Knygų lentelę:

Knygos

Book_ID Knyga Author_ID
Book_001 Enderio žaidimas Auth_001
Book_001 Proto vaikai Auth_001
Book_002 Handmaid pasaka Auth_002

AUTORIAI

Author_ID Autorius Autoriaus vardas
Auth_001 Orson Scott Card Jungtinės Valstijos
Auth_002 Margaret Atwood Kanada

Ar tai išsprendė? Dabar patikrinkime priklausomybes:

KNYGŲ lentelė :

AUTORIŲ lentelė :

Norint normalizuoti šiuos duomenis, turime pridėti trečią lentelę:

ŠALYS

Country_ID Šalis
Coun_001 Jungtinės Valstijos
Coun_002 Kanada

AUTORIAI

Author_ID Autorius Country_ID
Auth_001 Orson Scott Card Coun_001
Auth_002 Margaret Atwood Coun_002

Dabar mes turime tris lenteles, naudodami užsienio klavišus, norėdami susieti stalus:

Kodėl tranzitinės priklausomybės yra blogos duomenų bazės dizainas

Kokia vertė išvengti pereinamųjų priklausomybių, siekiant padėti užtikrinti 3NF? Dar kartą apsvarstykite mūsų pirmąją lentelę ir peržiūrėkite jos sukurtas problemas:

AUTORIAI

Author_ID Autorius Knyga Autoriaus vardas
Auth_001 Orson Scott Card Enderio žaidimas Jungtinės Valstijos
Auth_001 Orson Scott Card Proto vaikai Jungtinės Valstijos
Auth_002 Margaret Atwood Handmaid pasaka Kanada

Toks dizainas gali prisidėti prie duomenų anomalijų ir neatitikimų, pavyzdžiui:

Tai yra tik keletas priežasčių, kodėl normalizavimas ir išvengimas pereinamojo laikotarpio priklausomybių, duomenų apsaugos ir nuoseklumo užtikrinimo.