NOT NULL PRIMARY KEY

 Assalamu'alaikum wr. wb.

Judul dengan frase NOT NULL PRIMARY KEY atau juga PRIMARY KEY NOT NULL di atas akan terbiasa digunakan dalam pembuatan tabel dalam sistem manajemen basis data relasional terutama MySQL atau mungkin SQL Server.  Frase tersebut merupakan CONSTRAINT yang didefiniskan saat membuat tabel yang salah satu tujuannya untuk memberikan batasan atau filter terhadap data yang akan diinputkan.

NOT NULL akan menolak data dengan nilai NULL pada kolom yang diberikan CONSTRAINT tersebut. Sedangkan PRIMARY KEY merupakan "batasan" agar data yang diinputkan bersifat unik dan juga NOT NULL. Sehingga dengan menyebut PRIMARY KEY saja seharusnya didalamnya sudah mengandung batasan NOT NULL. Definisi PRIMARY KEY yang harus memiliki sıfat UNIQUE dan NOT NULL. Primary keys must contain UNIQUE values, and cannot contain NULL values . Hal ini juga sesuai dengan "perintah" yang ada dalam 12 aturan Codd, khususnya pada rule ke-10, Entity integrity: No component of a primary key is allowed to have a NULL value.

 Sehingga jika ada yang mengharuskan menambahkan NOT NULL  baik di depan atau di belakang PRIMARY KEY bisa disimpulkan secara sederhana bahwa sistem manajemen tersebut "belum mampu" memberikan NOT NULL dalam CONSTRAINT PRIMARY KEY nya, atau dengan alasan lain.

MySQL (kalo tidak salah) mulai versi 5.7 sudah memasukan batasan NOT NULL ini kedalam PRIMARY KEY nya. Sehingga tanpa menyebut NOT NULL di sekitar PRIMARY KEY sudah bisa menolak nilai NULL yang akan dimasukan dalam kolom yang dipilih sebagai PRIMARY KEY.

Kebiasaan penggunaan NOT NULL PRIMARY KEY ini sampai saat ini masih banyal dijumpai, sebagai contoh pembuatan tabel berikut dilakukan oleh mahasiswa beberapa waktu yang lalu pada sistem basis data PostgreSQL.

CREATE TABLE kecamatan(id serial PRIMARY KEY NOT NULL,
kode serial,
nama varchar(100),
status boolean,
last_update date,
user_update boolean); 

Di PostgreSQL sendiri sepengetahuan saya sejak pertama kali menggunakan sekitar akhir tahun 1998 cukup hanya dengan "mengucap" PRIMARY KEY maka sudah termasuk NOT NULL didalamnya.

Sehingga jika ada mahasiswa yang membuat tabel terdapat frase NOT NULL PRIMARY KEY, saya sering menanyakan, pasti lulusan pemakai MySQL ya ? 


Semoga bermanfaat


Wassalamu'aikum wr. wb



Komentar

Postingan populer dari blog ini

Membuat Web Directory dengan Drupal

Membandingkan Kecepatan Web PT di Yogyakarta

Migrasi data bocor dari CSV ke PostgreSQL