Apa itu Hubungan Basis Data?

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

Bagaimana Kunci Asing Bekerja untuk Membangun Hubungan

Kunci utama secara unik mengidentifikasi setiap catatan 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.

Sebagai contoh, perhatikan dua tabel ini yang mengidentifikasi guru mana yang mengajar mata pelajaran yang mana. Di sini, kunci utama tabel Kursus adalah Course_ID. Kunci asingnya adalah Teacher_ID:

Kursus_ID

Nama kursus

Guru_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:

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

Gambar Cahaya / Getty

Jenis Hubungan Database

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

Satu-ke-Satu

Jenis relasi ini hanya mengizinkan satu rekaman di setiap sisi relasi. Kunci utama hanya terkait dengan satu catatan (atau tidak ada) di tabel lain. Misalnya, dalam sebuah pernikahan, setiap pasangan hanya memiliki satu pasangan lain. Hubungan semacam ini dapat diimplementasikan dalam satu tabel dan karenanya tidak menggunakan kunci asing.

Satu-ke-Banyak

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

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

Banyak ke banyak

Ini adalah hubungan yang kompleks di mana banyak rekaman dalam tabel dapat ditautkan ke banyak rekaman di tabel lain. Misalnya, bisnis kita mungkin memerlukan tabel Pelanggan dan Pesanan, dan mungkin juga memerlukan tabel Produk.

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

Mengapa Relasi Database 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 sebagai gantinya menggabungkan data dalam tabel Kursus dan Guru, seperti:

Guru_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 basis data, Bentuk Normal Pertama, yang menyatakan bahwa setiap sel tabel harus berisi satu bagian data yang terpisah.

Atau mungkin kami memutuskan untuk menambahkan record kedua untuk Carmen, untuk menerapkan 1NF:

Guru_ID

Nama guru

Kursus

Guru_001

Carmen

Biologi

Guru_001

Carmen

Matematika

Guru_002

Veronica

Matematika

Guru_003

Jorge

Bahasa inggris

Ini masih 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 beberapa catatan? Tabel kemudian akan berisi data yang berbeda untuk individu yang sama, tanpa ada cara yang jelas untuk mengidentifikasi atau menghindarinya.

Memecah tabel ini menjadi dua tabel, Guru dan Kursus, menciptakan hubungan yang tepat antara data dan karenanya membantu memastikan konsistensi dan akurasi data.

Related Posts

© 2023 ApaFungsi.com