Skip to main content

Apa itu Hubungan Database?

Database Tutorial for Beginners (Juni 2026)

Database Tutorial for Beginners (Juni 2026)
Anonim

Suatu hubungan dibuat antara dua tabel basis data ketika satu tabel memiliki kunci asing yang merujuk kunci primer dari tabel lain. Ini adalah konsep dasar di balik istilah database relasional.

Bagaimana Kunci Asing Bekerja untuk Membangun Hubungan

Mari kita tinjau dasar-dasar kunci primer dan asing. Kunci utama secara unik mengidentifikasi setiap catatan dalam tabel. Ini adalah jenis kunci kandidat yang biasanya merupakan kolom pertama dalam tabel dan dapat secara otomatis dihasilkan oleh database untuk memastikan bahwa itu unik.

Kunci asing adalah kunci kandidat lain (bukan kunci utama) yang digunakan untuk menghubungkan catatan ke data di tabel lain.

Sebagai contoh, pertimbangkan dua tabel ini yang mengidentifikasi guru mana yang mengajar kursus mana.

Di sini, kunci utama tabel Kursus adalah Course_ID. Kunci asingnya adalah Teacher_ID:

Kursus
Course_IDNama kursusTeacher_ID
Course_001BiologiTeacher_001
Course_002MatematikaTeacher_001
Course_003InggrisTeacher_003

Anda dapat melihat bahwa kunci asing di Kursus sesuai dengan kunci utama di Pengajar:

Guru
Teacher_IDNama guru
Teacher_001Carmen
Teacher_002Veronica
Teacher_003Jorge

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

Jenis Hubungan Database

Dengan menggunakan kunci asing, atau kunci kandidat lainnya, Anda dapat mengimplementasikan tiga jenis hubungan antar tabel:

Satu-ke-satu: Jenis hubungan ini memungkinkan hanya satu catatan di setiap sisi hubungan.

Kunci utama berhubungan dengan hanya 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 oleh karena itu tidak menggunakan kunci asing.

Satu-ke-banyak: Hubungan satu-ke-banyak memungkinkan satu catatan dalam satu tabel terkait dengan beberapa catatan 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 dari tabel Pelanggan, sementara tabel Pelanggan tidak akan memiliki kunci asing yang menunjuk ke tabel Pesanan.

Banyak ke banyak: Ini adalah hubungan yang kompleks di mana banyak catatan dalam tabel dapat terhubung ke banyak catatan di tabel lain. Misalnya, bisnis kami mungkin tidak hanya membutuhkan tabel Pelanggan dan Pesanan, tetapi 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: beberapa pelanggan mungkin mengirimkan pesanan yang berisi beberapa produk yang sama. Hubungan semacam ini membutuhkan minimal tiga tabel.

Apa Hubungan Database Penting?

Menetapkan hubungan yang konsisten antara tabel database membantu memastikan integritas data, berkontribusi terhadap normalisasi database. Misalnya, bagaimana jika kita tidak menghubungkan tabel apa pun melalui kunci asing dan sebagai gantinya hanya menggabungkan data dalam tabel Kursus dan Pengajar, seperti:

Guru dan Kursus
Teacher_IDNama guruTentu saja
Teacher_001CarmenBiologi, Matematika
Teacher_002VeronicaMatematika
Teacher_003JorgeInggris

Desain ini tidak fleksibel dan melanggar prinsip pertama normalisasi database, First Normal Form (1NF), 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:

Guru dan Kursus
Teacher_IDNama guruTentu saja
Teacher_001CarmenBiologi
Teacher_001CarmenMatematika
Teacher_002VeronicaMatematika
Teacher_003JorgeInggris

Ini masih merupakan desain yang lemah, memperkenalkan duplikasi yang tidak perlu dan apa yang disebut anomali penyisipan data , yang artinya itu dapat berkontribusi pada data yang tidak konsisten.

Misalnya, jika seorang guru memiliki beberapa 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.

Memecah tabel ini menjadi dua tabel, Guru dan Kursus (seperti yang divisualisasikan di atas), menciptakan hubungan yang tepat antara data dan karena itu membantu memastikan konsistensi dan akurasi data.