Salah satu fitur penting PostgreSQL adalah kemampuan untuk menegakkan berbagai kendala pada data, memastikan integritas dan keandalan data. Artikel blog hari ini akan menyediakan gambaran tentang tipe constraint yang berbeda di PostgreSQL dan menjelajahi penggunaan mereka dengan contoh dari "dvdrental" sample database gratis.
1. Constraint Check:
Constraint check memungkinkan Anda untuk menspesifikkan kondisi yang harus dipenuhi untuk kolom Ketika memasukkan atau update data. Ini memastikan bahwa hanya data yang valid yang disimpan di database. Sebagai contoh, jika Anda memiliki tabel “customers” dan ingin memastikan bahwa umur pelanggan setidaknya 18, Anda akan menambahkan constraint check seperti ini:
ALTER TABLE customers
ADD CONSTRAINT check_age CHECK (age >= 18);
2. Constraint Not-Null:
Constraint not-null memastikan bahwa kolom tidak dapat mengandung value null. Sebagai contoh, pada tabel “customers”, jika Anda ingin memastikan bahwa setiap pelanggan mempunya alamat email yang valid, Anda akan menegakkan constraint not-null pada kolom email seperti ini:
ALTER TABLE customers
ALTER COLUMN email SET NOT NULL;
3. Constraint Unique:
Constraint unique memastikan bahwa value di kolom atau grup kolom adalah unik di semua baris di tabel. Ini sering digunakan pada field seperti nama pengguna atau alamat email untuk menghindari duplikasi. Sebagai contoh, pada tabel “customers”, jika Anda ingin memastikan bahwa setiap pelanggan memiliki alamat email yang unik, Anda akan menambahkan constraint unique seperti ini:
ALTER TABLE customers
ADD CONSTRAINT unique_email UNIQUE (email);
4. Primary Keys:
Primary key adalah kombinasi constraint not-null dan unique. Ini mengidentifikasi secara unik setiap catatan di tabel dan memastikan integritas data. Pada tabel “customers”, Anda mungkin memiliki kolom bernama “customer_id” yang melayani sebagai primary key:
ALTER TABLE customers
ADD CONSTRAINT pk_customer_id PRIMARY KEY (customer_id);
5. Foreign Keys:
Foreign key mendirikan hubungan antara dua tabel dengan menegakkan integritas referensi. Mereka memastikan value pada kolom satu tabel cocok dengan value di tabel yang lain. Sebagai contoh, pada tabel “rental”, jika Anda ingin memastikan bahwa setiap referensi catatan rental merujuk pada pelanggan yang valid, Anda dapat menambahkan constraint foreign key seperti ini:
ALTER TABLE rental
ADD CONSTRAINT fk_customer_id
FOREIGN KEY (customer_id)
REFERENCES customers(customer_id);
6. Constraint Exclusion:
Constraint exclusion memastikan bahwa tidak ada dua baris pada tabel memuaskan predikat spesifik. Ini memungkinkan Anda untuk mendefinisikan constraint kustom selain unik sederhana atau constraint check. Sebagai contoh, Anda mungkin memiliki tabel “bookings” dimana Anda ingin memastikan bahwa tidak ada dua pemesanan untuk satu kamar secara bersamaan:
ALTER TABLE bookings
ADD CONSTRAINT exclude_overlapping_bookings
EXCLUDE USING GIST (room_id WITH =, booking_range WITH &&);
Constraint di Navicat
Navicat for PostgreSQL 16 menawarkan Table Designer dengan grafis yang mudah digunakan untuk membuat dan mengelola constraint PostgreSQL:
Constraint Primary Key dibuat Ketika Anda ingin menambahkan icon key untuk satu atau lebih field dengan mengklik kolom Key. Constraing yang lain dapat ditemukan di tab terkait.
Kesimpulan
PostgreSQL menyediakan beberapa jenis constraint yang berbeda untuk mempertahankan integritas data dan menegakkan aturan bisnis. Memahami constraint ini dan bagaimana menggunakannya secara efektif sangat penting untuk merancang skema database yang kuat dan andal.
Mencari alat grafis yang mudah digunakan untuk pengembangan database PostgreSQL? Navicat 16 for PostgreSQL telah mengcover Anda. Klik di sini untuk mengunduh aplikasi yang