logo

Pereinamoji priklausomybė DBVS

Panagrinėkime santykį R(A B C). Čia A, B ir C yra žinomi kaip santykio R atributas. Kai atsiranda ši sąlyga; tada DBVS atsiranda pereinamoji priklausomybė. Sąlygos yra A → B, B → C. Todėl sąlyga tampa A → C. Kitaip tariant, galime sakyti, kad kai priklausomybes sudaro dvi funkcinės priklausomybės, tada funkcinės priklausomybės tampa pereinamomis.

Kas yra pereinamoji priklausomybė?

Apsvarstykite santykį R(A B C). Čia A, B ir C yra žinomi kaip santykio R atributas. Kai atsiranda ši sąlyga; tada DBVS atsiranda pereinamoji priklausomybė. Sąlygos yra A → B, B → C. Todėl sąlyga tampa A → C. pereinamosiose funkcinėse priklausomybėse, priklausomasis yra tiesiogiai priklausomas nuo determinanto.

Supraskime pereinamąsias priklausomybes naudodami šį pavyzdį.

Autoriaus_ID Autorius Knyga Autorius_Tautybė
A1 Arundhati Roy Mažų dalykų Dievas Indija
A1 Kiranas Desai Praradimo paveldėjimas Indija
A2 R. K. Narajanas Malgudžio žmogus valgytojas Indija

Aukščiau pateiktoje autoriaus lentelėje mes tai gauname.

    Knyga → Autorius:Čia autoriaus atributą lemia knygos atributas. Jei kas nors žino knygos pavadinimą, gali sužinoti ir autoriaus vardą.Autorius → Autoriaus_Tautybė:Jei kas nors žino autoriaus vardą, gali sužinoti ir autoriaus tautybę.Knyga → Autorius_Tautybė: Jei kas nors žino knygos pavadinimą, gali sužinoti ir autoriaus tautybę.

Jei atidžiai pažvelgsime į aukščiau aptartas funkcines priklausomybes, rastume tokį modelį.

  • A → B ir B → C B → C; todėl A → CA → C.
  • A → Knyga, B → Autorius B → Autorius ir C → Autoriaus_tautybė C → Autoriaus_tautybė

Tarkime, kad aukščiau pateiktoje autoriaus lentelėje taikome trečiąją normaliąją formą (3NF). Tokiu atveju pereinamoji autoriaus lentelės priklausomybė turi būti pašalinta, o duomenų bazės pereinamųjų priklausomybių pašalinimo procesas vadinamas normalizavimo procesu.

Kaip išvengti pereinamųjų priklausomybių?

Dar kartą apsvarstykime aukščiau pateiktą autoriaus lentelę ir pažiūrėkime, kokios problemos kyla kuriant lentelę.

Autorių lentelė:

Autoriaus_ID Autorius Knyga Autorius_Tautybė
A1 Arundhati Roy Mažų dalykų Dievas Indija
A1 Kiranas Desai Praradimo paveldėjimas Indija
A2 R. K. Narajanas Malgudžio žmogus valgytojas Indija

Duomenų anomalijas (pvz., atnaujinimo, įterpimo ir ištrynimo anomalijas) ir nenuoseklumą gali sukelti autoriaus lentelė. Kai duomenų bazėje yra per daug dubliavimo, atsiranda duomenų anomalijas. Duomenų anomalijos taip pat atsiranda, kai kyla problemų atnaujinant, ištrinant ir įterpiant naujus duomenis. Pavyzdžiui, autoriaus lentelėje-

  • Negalime pridėti naujo autoriaus, kol negalime pridėti knygos prie lentelės.
  • Negalime ištrinti autoriaus, kol visiškai neištrinsime knygos iš duomenų bazės.
  • Jei norime ištrinti knygą „Smulkių dalykų Dievas“, taip pat bus ištrintas autoriaus ID, autorius ir tautybė.

Pirmiau nurodytos problemos kyla bet kuriame santykyje, kuriame yra pereinamųjų priklausomybių.

Trečioji normali forma pašalinus pereinamąją priklausomybę

Apsvarstykime Autorių lentelė su trimis atributais (Author_ID, Author, Author_Nationalality) ir pabandykite rasti ir pašalinti pereinamąją priklausomybę iš šios lentelės,

Autorių lentelė:

Autoriaus_ID Autorius Knyga Autorius_Tautybė
A1 Arundhati Roy Mažų dalykų Dievas Indija
A1 Kiranas Desai Praradimo paveldėjimas Indija
A2 R. K. Narajanas Malgudžio žmogus valgytojas Indija

Aukščiau pateiktos autoriaus lentelės nėra 3NF, nes ji turi pereinamąją priklausomybę. Pažiūrėkime kaip

... Java
  • Autorius → Autorius_Tautybė Autorius → Autorius_Tautybė
  • Autoriaus_ID → Autorius

Todėl taip pat egzistuoja tokia funkcinė priklausomybė:

  • Authir_ID → Author_Nationality formuoja modelį, panašų į tai, ką aptarėme aukščiau.

Dabar, kad pašalintume pereinamąją priklausomybę, viskas, ką turime padaryti, tai padalinti autoriaus lentelę taip, kad Autoriaus_ID funkciškai nebepriklausytų nuo Autoriaus_Nacionalumo.

Sukurkime dvi lenteles: vienoje yra tik { Author_ID, Author}, o kitoje - {Author_Nationality}. Naujos lentelės atrodys taip,

Autorių lentelė

Autoriaus_ID Autorius
A1 Mažų dalykų Dievas
A2 Praradimo paveldėjimas
A3 Malgudžio žmogus valgytojas

Autoriaus tautybės lentelė

Autorius Autorius_Tautybė
Arundhati Roy Indija
Kiranas Desai Indija
R. K. Narajanas Indija

Dabar naujoje autoriaus lentelėje ir autoriaus tautybės lentelėje nėra pereinamosios priklausomybės, o ryšys dabar yra 3NF.