Navicat Blog

Memastikan Integritas Data di PostgreSQL dengan Periksa Constraint Mar 25, 2024 by Robert Gravelle

Integritas data merupakan aspek penting dari sistem basis data apa pun, yang memastikan bahwa data yang disimpan tetap akurat, konsisten, dan bermakna. Di PostgreSQL, salah satu alat yang ampuh untuk menjaga integritas data adalah penggunaan batasan pemeriksaan. Batasan ini memungkinkan Anda untuk menentukan aturan yang harus dipatuhi data, mencegah penyisipan atau modifikasi data yang tidak valid. Dalam artikel ini, kita akan membahas cara menggunakan batasan pemeriksaan untuk memvalidasi data di PostgreSQL, dengan menggunakan DVD Rental Database gratis sebagai referensi.

Memahami Periksa Constraint

Pemeriksaan constraint adalah aturan yang membatasi value yang dapat dimasukkan ke dalam kolom atau serangkaian kolom dalam tabel. Aturan ini diberlakukan oleh sistem database, mencegah penyisipan atau modifikasi baris yang melanggar ketentuan yang ditetapkan. Batasan pemeriksaan didefinisikan menggunakan kata kunci CHECK diikuti oleh ekspresi yang dievaluasi menjadi value Boolean.

Validasi Durasi Rental

Mari kita pertimbangkan skenario menggunakan versi modifikasi dari tabel "rental" dalam database "dvdrental" yang berisi kolom "rental_duration". Definisi tabel mungkin muncul sebagai berikut di Navicat Table Designer:

rentals_with_rental_period_table_definition (48K)

Sekarang, misalkan kita ingin memastikan bahwa durasi sewa selalu lebih besar dari nol hari. Kita dapat mencapainya dengan menambahkan batasan pemeriksaan ke tabel "rentals_with_rental_period" sebagai berikut:

ALTER TABLE rentals_with_rental_period
ADD CONSTRAINT rental_duration_check
CHECK (rental_duration > 0);
    

Di Navicat, kita dapat menambahkan batasan pemeriksaan di tab "Pemeriksaan" dari Perancang Tabel. Kita hanya perlu menyediakan ekspresi dan nama opsional. Navicat akan membuat nama unik untuk kita jika kita tidak menyediakannya!

rental_duration_check_in_navicat (28K)

Setelah menekan tombol Simpan, Navicat akan membuat batasan pemeriksaan atau menampilkan pesan kesalahan jika ada baris yang melanggar batasan tersebut.

Dengan batasan ini, setiap upaya untuk memasukkan atau memperbarui baris dalam tabel "rentals_with_rental_period" yang durasi sewanya kurang dari atau sama dengan nol akan menghasilkan kesalahan, yang memastikan bahwa hanya durasi sewa yang valid yang diizinkan.

Menekankan Peringkat yang Valid

Contoh lain dari tabel "film" dalam database "dvdrental" melibatkan validasi peringkat film. Misalkan kita ingin membatasi peringkat hanya pada nilai tertentu, seperti 'G', 'PG', 'PG-13', 'R', atau 'NC-17'. Kita dapat mencapainya dengan batasan pemeriksaan:

ALTER TABLE film
ADD CONSTRAINT film_rating_check
CHECK (rating IN ('G', 'PG', 'PG-13', 'R', 'NC-17'));
    

Berikut ini adalah batasan yang sama dalam Navicat Table Designer:

film_rating_check_in_navicat (34K)

Sekarang, setiap upaya untuk memasukkan atau memperbarui baris dalam tabel "film" dengan peringkat yang bukan salah satu value yang ditentukan akan ditolak, memastikan bahwa hanya peringkat yang valid yang diizinkan.

Menagani Value NULL

Penting untuk dicatat bahwa batasan pemeriksaan tidak diterapkan pada baris yang satu atau beberapa kolomnya berisi value NULL kecuali batasan tersebut secara khusus menyertakan kondisi untuk memeriksa NULL. Misalnya, untuk memastikan bahwa kolom "rental_rate" dalam tabel "film" selalu lebih besar dari nol dan bukan NULL, kami akan menggunakan batasan berikut:

ALTER TABLE film
ADD CONSTRAINT film_rental_rate_check
CHECK (rental_rate > 0 AND rental_rate IS NOT NULL);
    

Berikut ini adalah batasan yang sama dalam Navicat Table Designer:

film_rental_rate_check_in_navicat (43K)

Kesimpulan

Batasan pemeriksaan merupakan alat yang ampuh untuk memastikan integritas data di PostgreSQL. Dengan menetapkan aturan yang harus dipatuhi data, Anda dapat mencegah penyisipan atau modifikasi data yang tidak valid, yang membantu menjaga keakuratan dan konsistensi database Anda. Dengan menggabungkannya ke dalam desain database, Anda dapat membangun sistem data yang tangguh dan andal yang memenuhi kebutuhan organisasi Anda.

Navicat Blog
Feed Entri
Arsip Blog
Bagikan