Apa Itu Hubungan Basis Data?

Daftar Isi:

Apa Itu Hubungan Basis Data?
Apa Itu Hubungan Basis Data?
Anonim

Hubungan dibuat antara dua tabel database ketika satu tabel menggunakan kunci asing yang mereferensikan kunci utama tabel lain. Ini adalah konsep dasar di balik istilah database relasional.

Cara Kerja Kunci Asing untuk Membangun Hubungan

Kunci utama secara unik mengidentifikasi setiap record dalam tabel. Ini adalah jenis kunci kandidat yang biasanya merupakan kolom pertama dalam tabel dan dapat dibuat secara otomatis oleh database untuk memastikan keunikannya. Kunci asing adalah kunci kandidat lain (bukan kunci utama) yang digunakan untuk menautkan catatan ke data di tabel lain.

Misalnya, perhatikan dua tabel berikut yang mengidentifikasi guru mana yang mengajar mata kuliah mana. Di sini, kunci utama tabel Kursus adalah Course_ID. Kunci asingnya adalah Teacher_ID:

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

Anda dapat melihat bahwa kunci asing di Kursus cocok dengan kunci utama di Guru:

Teacher_ID Nama_Guru
Guru_001 Carmen
Guru_002 Veronica
Guru_003 Jorge

Kita dapat mengatakan bahwa kunci asing Teacher_ID membantu membangun hubungan antara tabel Kursus dan Guru.

Image
Image

Jenis Hubungan Basis Data

Menggunakan kunci asing, atau kunci kandidat lainnya, Anda dapat menerapkan tiga jenis hubungan antar tabel:

Satu-ke-Satu

Jenis hubungan ini hanya mengizinkan satu record di setiap sisi hubungan. Kunci utama hanya berhubungan dengan satu catatan (atau tidak ada) di tabel lain. Misalnya, dalam sebuah pernikahan, setiap pasangan hanya memiliki satu pasangan. Hubungan semacam ini dapat diimplementasikan dalam satu tabel dan oleh karena itu tidak menggunakan kunci asing.

Satu-ke-Banyak

Hubungan satu-ke-banyak memungkinkan satu record dalam satu tabel terkait dengan beberapa record di tabel lain. Pertimbangkan bisnis dengan database yang memiliki tabel Pelanggan dan Pesanan.

Satu pelanggan dapat membeli beberapa pesanan, tetapi satu pesanan tidak dapat ditautkan ke beberapa pelanggan. Oleh karena itu tabel Pesanan akan berisi kunci asing yang cocok dengan kunci utama tabel Pelanggan, sedangkan tabel Pelanggan tidak akan memiliki kunci asing yang menunjuk ke tabel Pesanan.

Banyak-ke-Banyak

Ini adalah hubungan kompleks di mana banyak catatan dalam tabel dapat menautkan ke banyak catatan di tabel lain. Misalnya, bisnis kita mungkin membutuhkan tabel Pelanggan dan Pesanan, dan kemungkinan juga membutuhkan tabel Produk.

Sekali lagi, hubungan antara tabel Pelanggan dan Pesanan adalah satu-ke-banyak, tetapi pertimbangkan hubungan antara tabel Pesanan dan Produk. Pesanan dapat berisi beberapa produk, dan produk dapat ditautkan ke beberapa pesanan karena beberapa pelanggan mungkin mengirimkan pesanan yang berisi beberapa produk yang sama. Hubungan semacam ini membutuhkan minimal tiga tabel.

Mengapa Hubungan Basis Data Penting?

Membangun hubungan yang konsisten antara tabel database membantu memastikan integritas data, berkontribusi pada normalisasi database. Misalnya, bagaimana jika kita tidak menautkan tabel apa pun melalui kunci asing dan malah menggabungkan data di tabel Kursus dan Guru, seperti:

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

Desain ini tidak fleksibel dan melanggar prinsip pertama normalisasi database, Bentuk Normal Pertama, yang menyatakan bahwa setiap sel tabel harus berisi satu bagian data yang terpisah.

Atau mungkin kami memutuskan untuk menambahkan catatan kedua untuk Carmen, untuk menegakkan 1NF:

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

Ini masih merupakan desain yang lemah, memperkenalkan duplikasi yang tidak perlu dan apa yang disebut anomali penyisipan data, yang berarti dapat berkontribusi pada data yang tidak konsisten. Misalnya, jika seorang guru memiliki banyak catatan, bagaimana jika beberapa data perlu diedit, tetapi orang yang melakukan pengeditan data tidak menyadari bahwa ada banyak catatan? Tabel tersebut kemudian akan berisi data yang berbeda untuk individu yang sama, tanpa cara yang jelas untuk mengidentifikasi atau menghindarinya.

Membagi tabel ini menjadi dua tabel, Pengajar dan Kursus, menciptakan hubungan yang tepat antara data dan oleh karena itu membantu memastikan konsistensi dan akurasi data.

Direkomendasikan: