Mengenal Konsep Primary Key, Foreign Key, dan Candidate Key dalam Basis Data

 Apa Itu Primary Key


    Primary Key adalah kolom atau kumpulan kolom dalam sebuah tabel basis data yang berfungsi untuk mengidentifikasi setiap record secara unik. Setiap tabel hanya boleh memiliki satu Primary Key, meskipun Primary Key tersebut bisa terdiri dari lebih dari satu kolom (disebut Composite Key).
    Primary Key digunakan untuk memastikan bahwa setiap data di dalam tabel tidak ada yang duplikat, dan berfungsi sebagai acuan untuk melakukan operasi seperti mencari, memperbarui, atau menghapus data tertentu. Misalnya, dalam tabel Mahasiswa, kolom NIM (Nomor Induk Mahasiswa) biasanya dijadikan Primary Key karena setiap mahasiswa memiliki NIM yang unik.

Contoh Primary Key pada penerapan ERD

1. Sistem Akademik Universitas
    - Entitas: Mahasiswa
    - Primary Key: NIM (Nomor Induk Mahasiswa)
   Setiap mahasiswa memiliki NIM yang unik dan menjadi pengidentifikasi utama dalam sistem akademik.

2. Sitem Pemesanan Hotel
    - Entitas : Kamar
    - Primary Key : Nomor_Kamar
Setiap kamar hotel memiliki nomor kamar yang unik sebagai pengidentifikasi utama di sistem pemesanan.

3. Sistem Penjualan Online
    - Entitas : Produk
    - Primary Key : Id_Produk
Setiap produk di toko online memiliki Id produk yang unik untuk mengidentifikasi setiap barang dikatalog.

4.  Sistem Perpustakaan
    - Entitas : Buku
    - Primary Key : ISBN
Setiap buku memiliki nomor ISBN yang unik dan digunakan untuk mengidentifikasi buku dalam koleksi perpustakaan.

5. Sistem Pegawaian Perusahaan
    - Entitas : Pegawai
    - Primary Key : NIP 
Setiap pegawai memiliki NIP yang unik sebagai pengidentifikasi dalam sistem kepegawaian.

Apa Itu Foreign Key



    Foreign Key adalah sebuah kolom atau kumpulan kolom dalam sebuah tabel basis data yang digunakan untuk membuat hubungan antara dua tabel. Kolom ini mengacu pada Primary Key di tabel lain dan memastikan adanya keterkaitan antara data dalam dua tabel. Foreign Key berfungsi untuk menjaga referential integrity (integritas referensial), yaitu memastikan bahwa data yang ada di satu tabel benar-benar terkait dengan data di tabel lain.
    Foreign Key mengizinkan nilai yang sama muncul lebih dari sekali (duplikat), karena satu entitas di tabel satu bisa berhubungan dengan beberapa entitas di tabel lain. Selain itu, kolom Foreign Key dapat bernilai null, yang berarti tidak ada keterkaitan dengan data di tabel lain untuk baris tertentu.

Contoh Foreign Key pada penerapan ERD

1. Sistem Manajemen Rumah Sakit
    - Entitas: Rekam Medis
    - Foreign Key: Id_Pasien mengacu pada Primary Key di tabel pasien
Menghubungkan setiap rekam medis dengan pasien yang bersangkutan.

2. Sistem Investasi Barang
    - Entitas: Transaksi Pembelian
    - Foreign Key: Id_Supplier mengacu pada Primary Key di tabel Supplier.
Menghubungkan transaksi pembelian barang dengan pemasok yang menyediakan barang tersebut.

3. Sistem Manajemen Proyek
    - Entitas: Proyek
    - Foreign Key: Id_Proyek mengacu pada Primary Key di tabel proyek
Menghubungkan tugas - tugas dengan proyek yang sedang dikerjakan.

4. Sistem Manajemen Penjualan Mobil
    - Entitas: Penjualan
    - Foreign Key: Id_Mobil mengacu pada Primary Key di tabel Mobil.
Menghubungkan setiap penjualan dengan mobil yang dijual.

5. Sistem E-commerce
    - Entitas: Ulasan Produk
    - Foreign Key: Id_Produk mengacu pada Primary Key di tabel Produk.
Menghubungkan ulasan yang diberikan oleh pelanggan dengan produk yang diulas.
 

Apa Itu Candidate Key



    Candidate Key adalah satu atau lebih kolom dalam sebuah tabel yang bisa digunakan untuk secara unik mengidentifikasi setiap baris (record) dalam tabel tersebut. Sebuah tabel bisa memiliki lebih dari satu Candidate Key, tetapi hanya satu yang akan dipilih sebagai Primary Key. Setiap Candidate Key harus memiliki karakteristik unik, yang artinya tidak boleh ada dua baris yang memiliki nilai yang sama untuk kolom tersebut, dan kolom tersebut tidak boleh mengandung nilai null.
    Setiap Candidate Key berpotensi untuk menjadi Primary Key, tetapi tidak semua Candidate Key akan dipilih sebagai Primary Key. Jika ada lebih dari satu Candidate Key, yang lainnya tetap dianggap sebagai Alternate Key.

Contoh Candidate Key pada penerapan ERD

1. Sistem Akademik Universitas
    - Entitas: Mahasiswa
    - Candidate Key: NIM (Nomor Induk Mahasiswa) dan Email
   Kedua kolom ini bisa digunakan untuk mengidentifikasi mahasiswa secara unik. Meskipun NIM biasanya dipilih sebagai Primary Key, Email juga dapat berfungsi sebagai Candidate Key.

2. Sistem Pemesanan Hotel
    - Entitas: Tamu
    - Candidate Key: id_Tamu dan Nomor_Paspor
  ID_Tamu (misalnya nomor identitas tamu) dan Nomor_Paspor dapat digunakan untuk mengidentifikasi tamu secara unik, keduanya merupakan kandidat yang sah untuk Primary Key.

3. Sistem Penjualan Toko Online
    - Entitas: Pelanggan
    - Candidate Key: ID_Pelanggan dan Email
    ID_Pelanggan dan Email keduanya dapat digunakan untuk mengidentifikasi pelanggan secara unik dalam sistem.

4. Sistem Perpustakaan
    - Entitas: Buku
    - Candidate Key: ISBN (International Standard Book Number) dan Kode_Buku
    ISBN dan Kode_Buku bisa digunakan untuk mengidentifikasi buku secara unik di perpustakaan.

5. Sistem Manajemen Karyawan
    - Entitas: Pegawai
    - Candidate Key: NIP (Nomor Induk Pegawai) dan Email
    NIP dan Email keduanya dapat digunakan untuk secara unik mengidentifikasi pegawai dalam sistem manajemen karyawan.


Apa itu Relation pada ERD
    
    Relation dalam konteks ERD (Entity-Relationship Diagram) merujuk pada hubungan antara dua atau lebih entitas yang ada dalam suatu sistem basis data. Dalam ERD, relasi menggambarkan bagaimana entitas-entitas tersebut saling berinteraksi atau berhubungan. Relasi ini digambarkan dengan garis penghubung antara entitas-entitas yang terlibat, dan biasanya dilengkapi dengan jenis hubungan yang menunjukkan kardinalitas (berapa banyak entitas yang dapat terhubung satu sama lain).

Mengapa Many to Many tidak baik digunakan pada ERD
    Berikut alasan utama mengapa relasi many to many dianggap tidak baik / kurang ideal :
1. Kesulitan dalam Implementasi: Relasi Many-to-Many mengharuskan adanya tabel penghubung (junction table) untuk menyimpan data terkait antara dua entitas yang memiliki banyak hubungan satu sama lain. Hal ini membuat desain lebih kompleks dan lebih sulit diimplementasikan dengan benar.
2. Masalah Integritas Data: Relasi Many-to-Many dapat menyebabkan duplikasi data dalam tabel penghubung, meningkatkan kemungkinan inkonsistensi dan kesalahan data. Hal ini akan memperburuk kualitas data yang ada dalam sistem
3. Kesulitan dalam Pemeliharaan: Mengelola data dalam hubungan Many-to-Many membutuhkan pemeliharaan yang lebih rumit. Operasi pembaruan atau penghapusan data bisa lebih sulit dilakukan secara konsisten di banyak tabel, terutama saat data dalam tabel penghubung harus diperbarui atau dihapus.
4. Kardinalitas yang Tidak Jelas: Relasi Many-to-Many dapat membingungkan dalam hal menentukan kardinalitas yang tepat antara entitas. Tanpa penjelasan yang jelas, bisa muncul masalah dalam pemodelan dan pengelolaan hubungan antar entitas tersebut.

Komentar

Postingan Populer