Ngindhari Dependencies Transitif kanggo Pitulung Mesthekake Normalisasi
A ketergantungan transitif ing basis data minangka hubungan ora langsung antarane nilai ing tabel sing padha sing nyebabake ketergantungan fungsi . Kanggo entuk standar normalisasi Formulir Normal Katelu (3NF), sampeyan kudu ngilangi ketergantungan transitif.
Dadi, dependensi transitif mbutuhake atribut telu utawa luwih (utawa kolom basis data) sing nduweni katergantungan fungsional ing antarane, tegese Column A ing meja gumantung ing Kolom B liwat kolom Column C
Ayo ndeleng carane iki bisa uga.
Contoh Dependensi Transitif
AUTHORS
Author_ID | Panganggit | Buku | Author_Nationality |
---|---|---|---|
Auth_001 | Orson Scott Card | Ender's Game | Amerika Serikat |
Auth_001 | Orson Scott Card | Ender's Game | Amerika Serikat |
Auth_002 | Margaret Atwood | Tales Tanganeid | Kanada |
Ing conto AUTHORS ing ndhuwur:
- Buku → Panganggit : Kene, atribut Buku nemtokake atribut Panganggit . Yen sampeyan ngerti jeneng buku, sampeyan bisa sinau jeneng penulis. Nanging, penulis ora nemtokake Kitab , amarga penulis bisa nulis pirang-pirang buku. Contone, mung amarga kita ngerti jeneng penulis Orson Scott Card, kita isih ora ngerti jeneng buku.
- Panganggité → Author_Nationality : Mangkono uga, Atribut pangarang nemtokake Pangarang_Nasional , nanging ora cara liya; mung amarga kita ngerti warga negara ora ateges kita bisa nemtokake penulis.
Nanging tabel iki ngenali ketergantungan transitif:
- Book → Author_Nationality: Yen kita ngerti jeneng buku, kita bisa nemtokake kewarganegaraan liwat kolom Author.
Ngindari Dependensi Transitif
Kanggo mesthekake Formulir Normal Katelu, ayo mbusak ketergantungan transitif.
Kita bisa miwiti kanthi njabut kolom Buku saka tabel Authors lan nggawe tabel Buku kapisah:
BUKU
Book_ID | Buku | Author_ID |
---|---|---|
Book_001 | Ender's Game | Auth_001 |
Book_001 | Anak saka Pikiran | Auth_001 |
Book_002 | Tales Tanganeid | Auth_002 |
AUTHORS
Author_ID | Panganggit | Author_Nationality |
---|---|---|
Auth_001 | Orson Scott Card | Amerika Serikat |
Auth_002 | Margaret Atwood | Kanada |
Apa iki ndandani? Ayo kita nliti dependensi kita saiki:
Tabel BOOKS :
- Book_ID → Buku: Buku gumantung saka Book_ID .
- Ora ana dependensi liya ing tabel iki, supaya kita oke. Elinga yen manca tombol Author_ID nggandhengake tabel iki menyang tabel AUTHORS liwat kunci utami Author_ID . Kita wis nggawe hubungan kanggo nyegah ketergantungan transitif, desain tombol database hubungan.
Tabel AUTHOR :
- Author_ID → Panganggité: Panganggité gumantung marang Author_ID .
- Pangarang → Author_Nationality: Kewarganegaraan bisa ditemtokake dening penulis.
- Author_ID → Author_Nationality: Kewarganegaraan bisa ditemtokake saka Author_ID liwat atribut Panganggit . Kita isih duwe ketergantungan transitif.
Kita kudu nambah tabel katelu kanggo ngowahi data iki:
COUNTRIES
Negara_ID | Negara |
---|---|
Coun_001 | Amerika Serikat |
Coun_002 | Kanada |
AUTHORS
Author_ID | Panganggit | Negara_ID |
---|---|---|
Auth_001 | Orson Scott Card | Coun_001 |
Auth_002 | Margaret Atwood | Coun_002 |
Saiki kita duwe telung tabel, nggawe tombol manca kanggo ngubungake antarane tabel:
- Tombol manca Buku BUKU Author_ID nempelake buku menyang penulis ing tabel AUTHORS.
- Papan kunci negara AUTHORS Country_ID ngubungake penulis menyang negara ing COUNTRIES table.
- Tabel COUNTRIES ora ana tombol manca amarga ora perlu nyambung menyang meja liya ing rancangan iki.
Apa Bedane Transitif sing Bad Design Database
Punapa wigatosing nyegah dependensi transitif kanggé njamin 3NF? Ayo kita nimbang meja pertama kita maneh lan ndeleng masalah sing nggawe:
AUTHORS
Author_ID | Panganggit | Buku | Author_Nationality |
---|---|---|---|
Auth_001 | Orson Scott Card | Ender's Game | Amerika Serikat |
Auth_001 | Orson Scott Card | Anak saka Pikiran | Amerika Serikat |
Auth_002 | Margaret Atwood | Tales Tanganeid | Kanada |
Desain iki bisa nyumbang kanggo anomali data lan ketidakkonsistenan, contone:
- Yen sampeyan mbusak buku loro kasebut "Children of the Mind" lan "Game Ender," sampeyan bakal mbusak penulis "Orson Scott Card" lan kewarganegaraan sing rampung saka database.
- Sampeyan ora bisa nambah pangarang anyar ing database kajaba sampeyan uga nambah buku; Apa yen penulis durung diterbitake utawa sampeyan ora ngerti jeneng buku dheweke wis nulis?
- Yen "Orson Scott Card" ganti kewarganegaraan panjenengan, sampeyan kudu ngowahi ing kabeh cathetan sing katon. Duwe akeh cathetan karo penulis sing padha bisa nyebabake data sing ora akurat: apa yen data entri wong ora éling ana sawetara cathetan kanggo wong lan ngganti data ing mung siji rekaman?
- Sampeyan ora bisa mbusak buku kaya "Tombol Handmaid" tanpa mbusak panulis kanthi bener.
Iki mung sawetara alasan ngapa normalisasi , lan nyegah dependensi transitif, nglindhungi data lan njamin konsistensi.