Navicat Blog

Memahami Peraturan PostgreSQL Apr 11, 2024 by Robert Gravelle

PostgreSQL, sistem manajemen database relasional open-source yang kuat, menawarkan berbagai fitur untuk meningkatkan manajemen data dan manipulasi. Di antara fitur - fitur ini adalah aturan, mekanisme yang digunakan untuk mengontrol bagaimana pertanyaan dan perintah diproses dalam database. Dalam artikel ini, kami akan mengeksplorasi bagaimana aturan PostgreSQL bekerja dan bagaimana mereka berbeda dari pemicu, dengan contoh praktis menggunakan DVD Rental Database.

Apa saja Peraturan PostgreSQL?

Aturan PostgreSQL menyediakan cara untuk menulis ulang pertanyaan atau perintah sebelum dijlankan. Mereka bertindak sebagai serangkaian tindakan yang telah ditentukan untuk dilakukan secara otomatis berdasarkan kondisi tertentu. Aturan terutama digunakan untuk mengimplementasikan abstraksi data dan kustomisasi tanpa mengubah skema yang mendasarinya.

Selain itu, aturan PostgreSQL menawarkan mekanisme yang kuat untuk menegakkan logika bisnis dalam database itu sendiri, mengurangi kebutuhan akan kendala tingkat aplikasi dan memastikan manipulasi data yang konsisten di berbagai aplikasi atau antarmuka. Dengan merangkum logika kompleks dalam database, aturan mempromosikan integritas data dan pemeliharaan sambil menyederhanakan proses pengembangan.

Bagaimana Peraturan Berbeda dari Trigger?

Saat aturan dan trigger memiliki tujuan yang sama di PostgreSQL, terdapat beberapa perbedaan di keduanya.

  1. Waktu Eksekusi:
    • Aturan: aturan diaplikasikan selama penguraian query, berarti mereka mempengaruhi rencana generasi query.
    • Trigger: Trigger dijalankan setelah menyelesaikan event seperti INSERT, UPDATE, atau DELETE.

  2. Visibilitas:
    • Aturan: Aturan transparan kepada pengguna menjalankan query. Query yang ditulis terlihat di rencana jalankan query.
    • Trigger: Trigger didefinisikan secara eksplisit di tabel dan ditrigger oleh event spesifik

  3. Granulitas:
    • Aturan: Aturan dapat diaplikasikan pada level tabel atau level tampilan, menyediakan fleksibilitas lebih pada kustomisasi.
    • Trigger: Trigger terikat ke tabel spesifik dan tidak bisa diaplikasikan secara global.

  4. Kompleksitas:
    • Aturan: Aturan dapat kompleks dan mungkin terlibat beberapa Tindakan atau kondisi.
    • Trigger: Trigger dapat lebih sederhana untuk diimplementasikan dan dikelola karena didorong oleh event.

Contoh Praktikal Menggunakan Sampel Database “dvdrental”: Menekankan Validasi Data

Mari kita jelajahi contoh praktikal untuk memahami cara kerja aturan PostgreSQL bersama dengan contoh database "dvdrental".

Misalkan kita ingin memberlakukan batasan di mana durasi sewa harus minimal satu hari. Kita dapat mencapainya menggunakan aturan:

CREATE RULE enforce_min_rental_duration AS
    ON INSERT TO rental
    WHERE (NEW.return_date - NEW.rental_date) < INTERVAL '1 day'
    DO INSTEAD NOTHING;

Di Navicat, kita dapat menambahkan aturan di tab "Rules" dari Table Designer. Menu tarik-turun "Do instead" memungkinkan kita memilih antara "INSTEAD" dan "ALSO". Sementara itu, kotak teks "Where" menerima kriteria untuk menjalankan aturan dan kotak "Definition" menjelaskan apa yang harus dilakukan aturan. Berikut definisi aturan lengkap di Navicat:

enforce_min_rental_duration_rule (49K)

Aturan ini memastikan bahwa percobaan apapun untuk memasukkan rental dengan durasi kurang dari satu hari dicegah.

Kesimpulan

Aturan PostgreSQL merupakan alat yang ampuh untuk mengendalikan eksekusi query dan menegakkan integritas data. Meskipun mirip dengan trigger, aturan ini menawarkan keuntungan tersendiri dalam hal waktu eksekusi, visibilitas, ketelitian, dan kompleksitas. Dengan memahami perbedaan antara aturan dan pemicu serta memanfaatkan kemampuannya, pengembang dapat secara efektif menyesuaikan perilaku database untuk memenuhi persyaratan tertentu sekaligus menjaga integritas dan keamanan data.

Tertarik mencoba Navicat 16 For PostgreSQL? Anda dapat mengunduh aplikasi yang berfungsi penuh di sini untuk mendapatkan uji coba gratis selama 14 hari!

Navicat Blog
Feed Entri
Arsip Blog
Bagikan