Integrity Constraint pada Basis Data
Salah satu fungsi dari Database Management System (DBMS) adalah integrity services, yakni memastikan baik data di dalam basis data maupun pengubahan data selalu memenuhi aturan. Integritas basis data berkaitan dengan kebenaran dan konsistensi dari data yang disimpan, dimana berkaitan dengan constraint yang merupakan aturan didalam basis data yang tidak dapat dilanggar (Connolly, 2010: 103).
Gambar 1.Contoh Basis Data Relasional
Fungsi integrity constraint menurut Connolly (2010) yakni memastikan data adalah akurat. Terdapat 5 integrity constraint antara lain (Connolly, 2010: 231):
(1) Required data
Misalnya tanggal di tabel Transaksi dan nama di tabel Produk pada gambar 1 harus ada nilainya, jadi keduanya merupakan required data, atau dengan kata lain kedua atribut tersebut tidak diijinkan bernilai null.
(2) Domain constraints
Merupakan sekumpulan nilai yang diijinkan untuk sebuah atau banyak atribut. Misalnya Kode Produk di tabel Produk dan Detail Transaksi pada gambar 1 harus diawali oleh sebuah huruf P capital dan diikuti oleh 3 karakter angka(0-9), yakni dengan range P001-P999.
(3) Entity integrity
Aturan ini diterapkan untuk primary key dari sebuah tabel, yakni atribut yang merupakan primary key tidak boleh bernilai null. Sebuah primary key merupakan minimal identifier yang digunakan untuk mengidentifikasi data secara unik, artinya tidak ada subset dari primary key yang cukup untuk identifikasi sebuah data secara unik. Misalnya tabel DetailTransaksi yang ditunjukkan pada gambar 1. Tabel DetailTransaksi memiliki composite key (memiliki lebih dari 1 atribut sebagai primary key) antara lain KodeTransaksi dan KodeProduk, dimana 1 KodeTransaksi bisa terdiri dari banyak KodeProduk dan 1 KodeProduk dapatdibeli di banyak KodeTransaksi. Penerapan entity integrity pada tabel DetailTransaksi yakni saat memasukkan sebuah data baru maka tidak diijinkan memberikan nilai null baik untuk atribut KodeTransaksi dan KodeProduk, serta keunikan sebuah data merupakan kombinasi dari kedua nilai atribut primary key (KodeTransaksi dan KodeProduk).
(4) Referential integrity
Aturan ini diterapkan untuk foreign key, yakni jika terdapat sebuah foreign key disebuah tabel maka nilai dari foreign key harus sesuai dengan nilai candidate key dari tabel yang diacu oleh foreign key atau bernilai null (jika atribut foreign key bukan required data). Berdasarkan gambar 1, tabel DetailTransaksi memiliki 2 foreign key antara lain KodeTransaksi yang mengacu pada KodeTransaksi dari tabelTransaksi dan KodeProduk yang mengacu pada KodeProduk dari tabel Produk. Sehingga atribut foreign key pada tabel DetailTransaksi harus sesuai dengan nilai atribut yang diacu, namun tidak boleh bernilai null karena keduanya merupakan primary key seperti yang telah dijelaskan pada poin sebelumnya.
(5) General constraints
Merupakan aturan tambahan yang dispesifikasikan oleh pengguna atau administrator basis data untuk mendefinisikan batasan dari perusahaan. Misalnya sebuah cabang hanya boleh memiliki maksimum 20 karyawan, sehingga setiap karyawan baru yang akan ditempatkan di sebuah cabang maka dilakukan pengecekan apakah jumlah karyawan di cabang tersebut sudah mencapai 20 orang. Jika sudah terdapat 20 orang karyawan pada cabang tersebut, maka penempatannya tidak dapat di cabang tersebut atau karyawan baru bisa ditempatkan di cabang tersebut jika cabang tersebut belum memiliki 20 orang karyawan.