Apa itu Primary Key, Foreign Key, Candidate Key di MySQL dan MariaDB

Daftar Isi [Tutup]

    Sebelumnya kita sudah membahas tentang apa itu mysql dan mariadb, dan kita juga sudah membahas cara penginstalan mysql / mariadb. mungkin saat ini anda bertanya-tanya apa itu istilah primary key, foreign key, dan candidate key ? dalam dunia database kita tidak akan asing lagi mendengar istilah-istilah tersebut karna bagi seorang database administrator sangatlah penting memahami apa itu primary key, foreign key dan candidate key berkaitan dengan database yang akan dibuat, dirancang dan dioptimalisasi, nah sekarang kita akan membahas satu persatu dalam artikel kali ini gengs..


    Pengertian Database dalam Relational Database

    Sebelum kita memahami apa itu primary key, kita harus paham apa itu relational database model

    Sebuah database adalah kumpulan relasi yang saling terhubung satu sama lainnya. Relasi adalah istilah dalam relational database, tapi kita lebih sering menyebutnya sebagai tabel

    Sebuah tabel memiliki kolom dan baris, dalam relational database kolom (column) disebut attribute, sedangkan baris (row) disebut tuple

    • kolom (column) = attribute
    • baris (row) = tuple

    Ini hanya sekedar penamaan, dan agar lebih mudah saya akan menggunakan istilah tabel, kolom dan baris dalam artikel ini, namun jika anda menemui istilah relation, attribut dan tuple, itu hanya istilah lain dari tabel, kolom, dan baris.

    IDKode_ItemKodeSerialNama_ItemJumlah
    1A01AWAHSNKomputer30
    2A02PWIAJCWLaptop45
    3A03PSSEUANSpeaker100
    4A04IEANASDMouse90
    5A05PEKASCAKeyboard50
    Table A.

    Apa itu Candidate Key ?

    Relational database dapat di sederhanakan menjadi kumpulan tabel yang saling terhubung. Setiap baris dari dalam tabel setidaknya harus memiliki sebuah data kolom yang unik

    Unik disini artinya data yang tidak boleh sama. Contohnya, dalam tabel A; kolom ID, kode_item, KodeSerial mungkin bisa menjadi kandidat yang bagus, karena tidak ada 2 nilai yang sama. IDkode_itemKodeSerial disini disebut juga dengan Candidate Key (Kunci Kandidat). 

    Candidate Key adalah satu atau beberapa kolom dalam tabel yang bisa mengidentifikasi tiap baris dari tabel tersebut.

    Namun data kode_item dan KodeSerial terkadang tidak selalu ada, karena bisa saja item tersebut belum memiliki kode dan serial yang ditentukan karena sesuatu dan lain hal. 

    Beberapa karakteristik Candidate key : unik (tidak boleh berulang), tidak boleh memiliki nilai null (kosong), nilai dari candidate key akan sangat jarang berubah.

    Apa itu Primary Key ?

    Dalam sebuah tabel, akan terdapat beberapa candidate key, namun hanya ada 1 Primary key (kunci utama). 

    Primary key adalah salah satu candidate key yang kita nobatkan sebagai kolom unik untuk identifikasi baris dalam tabel. 

    Kolom ini tidak boleh berulang, dan tidak boleh kosong (null). Dari tabel A, ID dapat kita tetapkan sebagai primary key.

    IDKode_ItemKodeSerialNama_ItemJumlah
    1A01AWAHSNKomputer30
    2A02PWIAJCWLaptop45
    3A03PSSEUANSpeaker100
    4A04IEANASDMouse90
    5A05PEKASCAKeyboard50
    Table A.
    Kode_ItemHarga
    A013000000
    A024500000
    A03100000
    A0490000
    A05120000
    Table B.

    Apa itu Foreign Key ?

    Dalam sebuah database, biasanya akan terdapat beberapa tabel. Tabel-tabel ini dapat dihubungkan satu dengan yang lainnya dengan kolom yang merupakan bagian dari tabel lain.

    Foreign Key (Kunci Tamu) adalah Primary key dari tabel lainnya yang terdapat di tabel saat ini. 

    Sebagai contoh di dalam tabel A dapat terlihat bahwa ID adalah primary key dari tabel A, dan kode_item adalah primary key pada table B. Kedua tabel tersebut dihubungkan oleh kolom kode_item.

    Berikut ini saya akan mencontohkan perintah yang digunakan untuk menggabungkan table A dan table B;

    SELECT A.Nama_Item, B.Harga

    FROM A  

    INNER JOIN B  

    ON A.kode_item = B.kode_item  

    ORDER BY A.Nama_Item;

    Nama_ItemHarga
    Komputer3000000
    Laptop4500000
    Speaker100000
    Mouse90000
    Keyboard120000
    Hasil dari query diatas

    Post a Comment

    Previous Post Next Post

    Contact Form