Relasi Satu-ke-Banyak dalam Database

Daftar Isi:

Relasi Satu-ke-Banyak dalam Database
Relasi Satu-ke-Banyak dalam Database
Anonim

Hubungan satu-ke-banyak dalam database terjadi ketika setiap record di Tabel A mungkin memiliki banyak record yang terhubung di Tabel B, tetapi setiap record di Tabel B mungkin hanya memiliki satu record yang sesuai di Tabel A.

Hubungan satu-ke-banyak dalam database adalah desain database relasional yang paling umum dan merupakan inti dari desain yang baik.

Database juga dapat mengimplementasikan hubungan satu-ke-satu dan hubungan banyak-ke-banyak.

Image
Image

Contoh Hubungan Satu-ke-Banyak

Pertimbangkan hubungan antara seorang guru dan mata pelajaran yang mereka ajarkan. Seorang guru dapat mengajar beberapa kelas, tetapi kursus tersebut tidak akan memiliki hubungan yang sama dengan guru tersebut.

Oleh karena itu, untuk setiap record di tabel Guru, mungkin ada banyak record di tabel Kursus. Contoh ini menggambarkan hubungan satu-ke-banyak: satu guru dengan beberapa mata kuliah.

Mengapa Membangun Hubungan Satu-ke-Banyak Itu Penting

Untuk mewakili hubungan satu-ke-banyak, Anda memerlukan setidaknya dua tabel. Mari kita lihat alasannya.

Kepatuhan pada Desain Bentuk Normal Pertama

Mungkin kita membuat tabel di mana kita ingin mencatat nama dan mata kuliah yang diajarkan. Kita mungkin mendesain tabel Guru dan Kursus seperti ini:

Teacher_ID Nama_Guru Kursus
Guru_001 Carmen Biologi
Guru_002 Veronica Matematika
Guru_003 Jorge Bahasa Inggris

Bagaimana jika Carmen mengajar dua mata kuliah atau lebih? Kami memiliki dua opsi dengan desain ini. Kita bisa menambahkannya ke catatan Carmen yang ada, seperti ini:

Teacher_ID Guru_Nama Kursus
Guru_001 Carmen Biologi, Matematika
Guru_002 Veronica Matematika
Guru_003 Jorge Bahasa Inggris

Namun, desain di atas tidak fleksibel dan dapat menyebabkan masalah di kemudian hari saat Anda memasukkan, mengedit, atau menghapus data. Mempersulit pencarian data.

Desain ini juga melanggar prinsip pertama normalisasi database, First Normal Form (1NF), yang menyatakan bahwa setiap sel tabel harus berisi satu bagian data yang terpisah.

Aturan Bentuk Normal Kedua

Alternatif desain lain mungkin menambahkan catatan kedua untuk Carmen:

Guru_ID Guru_Nama Kursus
Guru_001 Carmen Biologi
Guru_001 Carmen Matematika
Guru_002 Veronica Matematika
Guru_003 Jorge Bahasa Inggris

Pendekatan ini menganut 1NF tetapi masih merupakan desain basis data yang buruk karena menimbulkan redundansi dan dapat membuat basis data yang besar membengkak secara tidak perlu. Lebih penting lagi, data bisa menjadi tidak konsisten.

Misalnya, bagaimana jika nama Carmen berubah? Seseorang yang bekerja dengan data mungkin memperbarui namanya di satu catatan dan gagal memperbaruinya di catatan kedua.

Desain ini melanggar standar Second Normal Form (2NF), yang mengikuti 1NF dan juga harus menghindari redundansi beberapa record. Aturan 2NF mencapai ini dengan memisahkan subset data menjadi beberapa tabel dan membuat hubungan di antara mereka.

Cara Mendesain Basis Data Dengan Hubungan Satu-ke-Banyak

Untuk mengimplementasikan hubungan satu-ke-banyak di tabel Guru dan Kursus, bagi tabel menjadi dua dan tautkan menggunakan kunci asing.

Di sini, kami menghapus kolom Kursus di tabel Guru:

Guru_ID Guru_Nama
Guru_001 Carmen
Guru_002 Veronica
Guru_003 Jorge

Dan inilah tabel Kursus. Perhatikan bahwa kunci asingnya, Teacher_ID, menautkan kursus ke guru di tabel Guru:

Course_ID Nama_Kursus Teacher_ID
Kursus_001 Biologi Guru_001
Kursus_002 Matematika Guru_001
Kursus_003 Bahasa Inggris Guru_003

Kami telah mengembangkan hubungan antara Guru dan tabel Kursus menggunakan kunci asing. Susunan ini memberi tahu kita bahwa Carmen mengajar Biologi dan Matematika dan bahwa Jorge mengajar bahasa Inggris.

Kita dapat melihat bagaimana desain ini menghindari kemungkinan redudansi, memungkinkan masing-masing guru untuk mengajar beberapa mata pelajaran, dan menerapkan hubungan satu-ke-banyak.

Direkomendasikan: