Hubungan siji-kanggo-akeh ing basis data dumadi nalika saben cathetan ing Tabel A uga akeh cathetan sing disambung ing Tabel B, nanging saben cathetan ing Tabel B mung nduweni siji cathetan sing cocog ing Tabel A. Hubungan siji-kanggo-akeh ing basis data minangka desain basis data sing paling umum lan ana ing jantung desain apik.
Coba hubungan sesambungan karo guru lan kursus sing diwulangake. Guru bisa mulang pirang-pirang kursus, nanging mesthi ora duwe hubungan sing padha karo guru.
Mulane, kanggo saben cathetan ing tabel Guru, bisa uga ana akeh cathetan ing tabel Kursus. Iki minangka hubungan siji-kanggo-akeh: siji guru kanggo macem-macem kursus.
Apa sing Nggawe Hubungan Kanggo Siji-kanggo-akeh penting
Kanggo makili hubungan siji-kanggo-akeh, sampeyan kudu paling sethithik rong tabel. Ayo ndeleng apa.
Mbok manawa kita nggawe tabel guru sing arep kita rekam jeneng lan kursus sing diajarke. Kita bisa ngrancang kaya iki:
Guru_ID | Teacher_Name | Course |
---|---|---|
Guru_001 | Carmen | Biologi |
Guru_002 | Veronica | Math |
Guru_003 | Jorge | Inggris |
Apa yen Carmen ngajar loro utawa luwih kursus? Kita duwe rong opsi karo rancangan iki. Kita bisa nambahake cathetan sing ana ing Carmen, kaya iki:
Guru_ID | Guru _Name | Course |
---|---|---|
Guru_001 | Carmen | Biologi, Matematika |
Guru_002 | Veronica | Math |
Guru_003 | Jorge | Inggris |
Desain ing ndhuwur, Nanging, ora fleksibel lan bisa nyebabake masalah nalika gawe, masang utawa mbusak data.
Nggawe angel kanggo nelusuri data. Rancangan iki nglanggar prinsip pisanan saka normalisasi basis data, Formula Normal Pertama (1NF) , sing nyatakake saben sel tabel kudu ngemot sawijining data data tunggal sing diskret.
Alternatif desain liyane bisa uga nambah rekor liya kanggo Carmen:
Guru _ID | Guru _Name | Course |
---|---|---|
Guru_001 | Carmen | Biologi |
Guru_001 | Carmen | Math |
Guru_002 | Veronica | Math |
Guru_003 | Jorge | Inggris |
Iki adhedhasar 1NF nanging isih ora nduweni desain basis data sing mlarat amarga ngenalake redundansi lan bisa ngowahi basis data sing ora akeh banget. Liyane, data bisa dadi ora konsisten. Contone, apa yen jeneng Carmen diganti? Sapa sing nggarap data bisa nganyarake jenenge ing sawijining rekaman lan gagal nganyari ing rekaman kapindho. Desain iki nglanggar Formulir Normal Kapindho (2NF), sing adhedhasar 1NF lan uga kudu nyingkirake mundhut saka sawetara cathetan kanthi pamisahan subset data menyang sawetara tabel lan nggawe hubungan ing antarane.
Cara Nggawe Database kanthi Hubungan siji-kanggo-akeh
Kanggo ngleksanakake hubungan siji-kanggo-akeh ing tabel Guru lan Kurso, kita ngilangi tabel dadi loro lan nggabungake nganggo tombol asing .
Kene, kita wis ngilangi kolom Course ing tabel Guru:
Guru _ID | Guru _Name |
---|---|
Guru_001 | Carmen |
Guru_002 | Veronica |
Guru_003 | Jorge |
Lan ing kene ana tabel Kursus. Elinga yen kunci manca, Teacher_ID, pranala dalan menyang guru ing tabel Guru:
Course_ID | Course_Name | Guru_ID |
---|---|---|
Course_001 | Biologi | Guru_001 |
Course_002 | Math | Guru_001 |
Course_003 | Inggris | Guru_003 |
Kita wis ngembangake hubungan antarane Tabel Guru lan Kursi nggunakake tombol manca.
Iki nuduhake yen Biologi lan Matematika diwulang dening Carmen lan Jorge ngajar basa Inggris.
Kita bisa nyumurupi carane desain iki bisa ngindari keluwihan sing bisa ditindakake, ngidini para guru individu kanggo ngajarake pirang-pirang kursus, lan nindakake hubungan siji-kanggo-akeh.
Database uga bisa ngleksanakake hubungan siji-kanggo-siji lan hubungan akeh banget.