Hubungan siji-kanggo-akeh ing Database

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 lan Kursus
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 lan Kursus
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 lan Kursus
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
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:

Kursus
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.