Ulah Transitive Depéndensi jeung Mantuan Patikeun normalisasi
A kagumantungan transitive databés anu mangrupa hubungan langsung antara nilai dina tabel sarua nu ngabalukarkeun kagumantungan hanca . Pikeun ngahontal standar normalisasi of Normal Bentuk Katilu (3NF), anjeun kudu ngaleungitkeun sagala kagumantungan transitive.
Ku alam na, anu kagumantungan transitive merlukeun tilu atawa leuwih atribut (atawa kolom database) nu boga kagumantungan fungsi antara aranjeunna, hartina Tihang A dina méja gumantung ka Tihang B ngaliwatan hiji Tihang panengah C.
Hayu urang tingali kumaha ieu bisa jalan.
Transitive Dependency Conto
pangarang
Author_ID | nu ngarang | buku | Author_Nationality |
---|---|---|---|
Auth_001 | Témbal Card Orson | Game Ender urang | Amérika Sarikat |
Auth_001 | Témbal Card Orson | Game Ender urang | Amérika Sarikat |
Auth_002 | Margaret Atwood | The Handmaid urang Dongéng | Kanada |
Dina conto pangarang luhur:
- Buku → Author: Di dieu, dina atribut buku nangtukeun atribut Author. Lamun nyaho nami buku, anjeun tiasa diajar ngaran panulis urang. Sanajan kitu, Author henteu nangtukeun Book, sabab hiji pangarang bisa nulis sababaraha buku. Contona, ngan kusabab urang nyaho ngaran panulis urang Orson témbal Card, urang masih teu kenal nami buku.
- Panulis → Author_Nationality: Kitu ogé, anu atribut pangarang nangtukeun Author_Nationality, tapi moal cara sejen sabudeureun; ngan kusabab urang nyaho kabangsaan nu teu hartosna urang tiasa nangtukeun nyeratna.
Tapi tabel ieu nawarkeun hiji kagumantungan transitive:
- Buku → Author_Nationality: Upami urang terang nami buku, urang bisa nangtukeun kabangsaan via kolom Author.
Ngahindarkeun Transitive Depéndensi
Pikeun mastikeun Katilu Normal Bentuk, hayu urang nyabut kagumantungan transitive.
Urang mimitian ku nyoplokkeun kolom Kitab tina tabel Pangarang sarta nyieun hiji méja Buku misah:
buku
Book_ID | buku | Author_ID |
---|---|---|
Book_001 | Game Ender urang | Auth_001 |
Book_001 | Barudak tina Pikiran teh | Auth_001 |
Book_002 | The Handmaid urang Dongéng | Auth_002 |
pangarang
Author_ID | nu ngarang | Author_Nationality |
---|---|---|
Auth_001 | Témbal Card Orson | Amérika Sarikat |
Auth_002 | Margaret Atwood | Kanada |
Naha ieu ngalereskeun eta? Hayu urang nalungtik kabebasan urang kiwari:
Buku tabel:
- Book_ID → Kitab: The Book gumantung kana Book_ID.
- Taya kabebasan sejen dina tabél ieu aya, jadi kami oke. Catetan yén asing Tumbu Author_ID konci tabel ieu tabel pangarang ngaliwatan Author_ID konci primér na. Kami geus dijieun hubungan ka nyingkahan kagumantungan transitive, desain konci basis data relational.
Pangarang tabel:
- Author_ID → Author: Author The gumantung kana Author_ID.
- Panulis → Author_Nationality: kabangsaan bisa ditangtukeun ku nyeratna.
- Author_ID → Author_Nationality: kabangsaan bisa ditangtukeun ti Author_ID ngaliwatan atribut Author. Simkuring masih boga kagumantungan transitive.
Urang kudu nambahan hiji méja katilu mun normalize data ieu:
nagara
Country_ID | nagara |
---|---|
Coun_001 | Amérika Sarikat |
Coun_002 | Kanada |
pangarang
Author_ID | nu ngarang | Country_ID |
---|---|---|
Auth_001 | Témbal Card Orson | Coun_001 |
Auth_002 | Margaret Atwood | Coun_002 |
Kiwari kami boga tilu tabel, sahingga pamakéan kenop asing kaitkeun antara tabel:
- Author_ID konci asing nu BUKU tabel urang numbu buku ka hiji pangarang dina tabel pangarang.
- Country_ID konci asing pangarang tabel urang numbu hiji panulis ka nagara dina tabel Nagara.
- Tabel Nagara boga konci asing sabab boga teu kudu ieu numbu ka méja sejen dina rarancang ieu.
Naha Transitive Depéndensi Dupi Desain Bad databés
Naon ajén Ngahindarkeun transitive kabebasan pikeun mantuan mastikeun 3NF? Hayu urang nganggap tabel munggaran urang deui tur tingal isu eta nyiptakeun:
pangarang
Author_ID | nu ngarang | buku | Author_Nationality |
---|---|---|---|
Auth_001 | Témbal Card Orson | Game Ender urang | Amérika Sarikat |
Auth_001 | Témbal Card Orson | Barudak tina Pikiran teh | Amérika Sarikat |
Auth_002 | Margaret Atwood | The Handmaid urang Dongéng | Kanada |
jenis ieu rarancang tiasa nyumbang kana anomali data na inconsistencies, contona:
- Lamun dihapus dina dua buku "Anak tina Pikiran" jeung "Ender urang Game," Anjeun bakal ngahapus panulis "Orson témbal Card" na kabangsaan na tos rengse ti pangkalan data.
- Anjeun teu bisa nambahkeun hiji pangarang anyar kana databés iwal anjeun ogé nambahkeun buku; kumaha lamun nyeratna téh acan unpublished atawa anjeun teu nyaho ngaran hiji buku manehna geus pangarang?
- Lamun "Orson témbal Card" robah kawarganagaraan na, anjeun bakal kudu ngarobah éta dina sakabéh rékaman di mana manéhna némbongan. Ngabogaan sababaraha rékaman jeung panulis sarua bisa ngahasilkeun data taliti: kumaha lamun asupna data jalma teu sadar aya sababaraha rékaman keur anjeunna jeung robah data dina ngan hiji catetan?
- Anjeun teu bisa mupus hiji buku kawas "The Handmaid urang Dongéng" tanpa ogé mupus pangarang tuntas.
Ieu ngan sabagian alesan naha normalisasi , sarta Ngahindarkeun kabebasan transitive, ngajaga data tur mastikeun konsistensi.