Relational Database Integrity Constraints adalah aturan yang diterapkan pada kolom dan tabel dalam database relasional untuk memastikan akurasi, konsistensi, dan validitas data. Tanpa batasan ini, operasi manipulasi data (INSERT, UPDATE, DELETE) dapat memasukkan data yang rusak, yatim (orphan), atau melanggar aturan bisnis yang mendasari sistem.
Secara arsitektural, aturan integritas ini dikelompokkan ke dalam beberapa jenis utama yang dieksekusi langsung oleh Database Management System (DBMS) pada level penyimpanan dan relasi tabel. Berikut adalah matriks perbandingan jenis-jenis utama integrity constraints yang wajib dipahami oleh pengembang basis data.
| Jenis Constraint | Fungsi Utama | Contoh Implementasi SQL |
|---|---|---|
| Entity Integrity | Memastikan setiap baris dalam tabel adalah entitas yang unik dan dapat diidentifikasi. | PRIMARY KEY (id) |
| Referential Integrity | Menjaga konsistensi hubungan antar dua tabel melalui kunci relasi. | FOREIGN KEY (category_id) REFERENCES categories(id) |
| Domain Integrity | Menjamin nilai yang dimasukkan ke kolom sesuai dengan tipe data, format, dan batasan nilai. | CHECK (age >= 18) atau NOT NULL |
| User-Defined Integrity | Aturan bisnis spesifik yang tidak tercakup oleh tiga constraint standar di atas. | TRIGGER atau CHECK (end_date > start_date) |
1. Entity Integrity (Integritas Entitas)
Integritas entitas menjamin bahwa setiap tabel memiliki pengidentifikasi unik yang disebut Primary Key. Aturan utamanya sangat ketat: nilai Primary Key tidak boleh bernilai NULL dan harus unik di seluruh baris dalam tabel tersebut. Jika sebuah tabel tidak memiliki primary key, sistem rentan terhadap duplikasi baris data yang membuat operasi query kehilangan presisi.
2. Referential Integrity (Integritas Referensial)
Integritas referensial mengatur hubungan konsisten antara Foreign Key pada tabel anak (child table) dan Primary Key pada tabel induk (parent table). Aturan ini mencegah keberadaan data yatim, yaitu kondisi di mana tabel anak mereferensikan baris yang sudah dihapus di tabel induk.
DBMS menyediakan mekanisme aksi referensial untuk menangani perubahan data induk, antara lain:
- CASCADE: Mengubah atau menghapus data anak secara otomatis jika data induk diubah atau dihapus.
- RESTRICT / NO ACTION: Menolak penghapusan atau perubahan data induk jika masih ada data anak yang mereferensikannya.
- SET NULL: Mengubah nilai kolom Foreign Key menjadi NULL jika data induk dihapus.
3. Domain Integrity (Integritas Domain)
Integritas domain berkaitan dengan validasi nilai yang diizinkan masuk ke dalam suatu kolom. Ini mencakup penentuan tipe data (integer, varchar, datetime), ukuran panjang maksimum, sifat NOT NULL, batasan nilai unik (UNIQUE), serta kondisi logika melalui klausa CHECK.
Contoh penerapan implementasi domain integrity dalam skema SQL:
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE NOT NULL,
age INT CHECK (age >= 17 AND age <= 65),
status VARCHAR(20) DEFAULT 'ACTIVE'
);
4. Penerapan dan Troubleshooting Lapangan
Kegagalan dalam penerapan integrity constraints biasanya memicu error code pada level aplikasi saat proses eksekusi query transaksi. Sebagai contoh, pelanggaran Foreign Key akan menghasilkan error ketika mencoba memasukkan data dengan referensi ID yang tidak eksis di tabel referensi.
Langkah mitigasi teknis saat mendesain skema basis data:
- Tentukan Primary Key pada setiap tabel sejak fase perancangan Entity-Relationship Diagram (ERD).
- Gunakan tipe data sekecil dan seakurat mungkin untuk efisiensi indeks dan penghematan memori penyimpanan.
- Tulis aturan
CHECKyang independen terhadap perubahan skema eksternal agar logika validasi tetap berada di dalam mesin basis data. - Uji integritas relasi menggunakan transaksi (
BEGIN TRANSACTION,COMMIT,ROLLBACK) untuk operasi massal yang melibatkan banyak tabel.