PostgreSQL -Constraints: Panduan Kawan untuk Keselamatan Data

Hai sana, para ahli basis data masa depan! ? Hari ini, kita akan melihat dunia yang menarik dari constraints PostgreSQL. Jangan khawatir jika Anda masih baru di ini; kita akan mengambil langkah demi langkah, dan pada akhirnya, Anda akan dapat mengatur data seperti seorang pro! Ayo mulai perjalanan menarik ini bersama-sama.

PostgreSQL - Constraints

Apa Itu Constraints?

Sebelum kita memulai, mari bicarakan apa itu constraints. Bayangkan Anda membangun rumah kartu. Setiap kartu harus ditempatkan dengan benar, atau seluruh struktur mungkin akan runtuh. Constraints dalam basis data seperti aturan untuk membangun rumah kartu itu – mereka memastikan bahwa data kita terstruktur dengan benar dan menjaga integritasnya.

Jenis Constraints

PostgreSQL menawarkan beberapa jenis constraints. Mari kita jelajahi setiap satu dengan contoh dan penjelasan.

Jenis Constraint Deskripsi
NOT NULL Memastikan bahwa kolom tidak dapat memiliki nilai NULL
UNIQUE Memastikan semua nilai dalam kolom berbeda
PRIMARY KEY Menyediakan identifikasi unik untuk setiap baris dalam tabel
FOREIGN KEY Menghubungkan data antar tabel
CHECK Memastikan semua nilai dalam kolom memenuhi syarat khusus
EXCLUSION Memastikan bahwa jika dua baris dibandingkan pada kolom yang ditentukan menggunakan operator yang ditentukan, tidak semua perbandingan akan mengembalikan TRUE

Constraint NOT NULL

Constraint NOT NULL seperti seorang guru ketat yang tidak menerima jawaban kosong dalam tes. Itu memastikan bahwa sebuah kolom harus selalu mengandung nilai.

mari buat tabel untuk tokoh buku khayal kita:

CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(100) NOT NULL,
price DECIMAL(10, 2)
);

Dalam contoh ini, title dan author adalah NOT NULL, artinya setiap buku harus memiliki judul dan pengarang. Namun, price dapat NULL, mungkin untuk buku yang belum dinilai harga nya.

Constraint UNIQUE

Constraint UNIQUE seperti memberikan nama panggilan unik untuk teman Anda. Tidak ada yang bisa memiliki nama panggilan yang sama.

Mari tambahkan constraint UNIQUE ke tabel books kita:

ALTER TABLE books
ADD CONSTRAINT unique_isbn UNIQUE (isbn);

Sekarang, jika kita mencoba menambahkan dua buku dengan ISBN yang sama:

INSERT INTO books (title, author, isbn) VALUES ('Book 1', 'Author 1', '1234567890');
INSERT INTO books (title, author, isbn) VALUES ('Book 2', 'Author 2', '1234567890');

Penyisipan kedua akan gagal, menjaga data kita bersih dan unik!

Constraint PRIMARY KEY

Constraint PRIMARY KEY seperti kapten tim olahraga – unik dan penting. Itu secara unik mengidentifikasi setiap baris dalam tabel.

Kita sudah menentukan PRIMARY KEY di tabel books kita (book_id), tetapi mari buat tabel lain untuk menunjukkan:

CREATE TABLE customers (
customer_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE
);

Di sini, customer_id adalah PRIMARY KEY. Itu secara otomatis dinaikkan dan unik bagi setiap pelanggan baru.

Constraint FOREIGN KEY

Constraints FOREIGN KEY seperti koneksi dalam jaringan sosial. Mereka menghubungkan data antar tabel.

Mari buat tabel orders yang mengacu ke tabel customers kita:

CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INTEGER,
order_date DATE NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

Sekarang, kita tidak dapat menambahkan pesanan untuk pelanggan yang tidak ada dalam tabel customers. Itu seperti mencoba mengirim surat ke alamat yang tidak ada!

Constraint CHECK

Constraint CHECK seperti penjaga di klub, memastikan hanya data yang benar yang masuk.

Mari tambahkan constraint CHECK ke tabel books kita untuk memastikan semua harga buku positif:

ALTER TABLE books
ADD CONSTRAINT positive_price CHECK (price > 0);

Sekarang, jika kita mencoba menambahkan buku dengan harga negatif:

INSERT INTO books (title, author, price) VALUES ('Cheap Book', 'Frugal Author', -5.99);

PostgreSQL akan sopan menolak, menjaga data kita logis dan konsisten.

Constraint EXCLUSION

Constraint EXCLUSION seperti aturan kompleks dalam permainan papan. Itu advanced, tapi kuat saat Anda memerlukannya.

Bayangkan kita menjadwal acara dan ingin memastikan bahwa tidak ada dua acara yang ber重叠 di ruangan yang sama:

CREATE TABLE events (
event_id SERIAL PRIMARY KEY,
room_no INTEGER,
event_start TIMESTAMP,
event_end TIMESTAMP,
EXCLUDE USING gist (room_no WITH =, tsrange(event_start, event_end) WITH &&)
);

Ini memastikan bahwa untuk dua baris mana pun, itu bukan benar bahwa keduanya memiliki nomor ruangan yang sama DAN rentang waktu ber重叠.

Menghapus Constraints

kadang-kadang, kita perlu menghapus constraints, seperti mengubah aturan permainan. Berikut cara kita menghapus constraints:

-- Menghapus constraint yang dinamai
ALTER TABLE books DROP CONSTRAINT unique_isbn;

-- Menghapus PRIMARY KEY
ALTER TABLE books DROP CONSTRAINT books_pkey;

-- Menghapus FOREIGN KEY
ALTER TABLE orders DROP CONSTRAINT orders_customer_id_fkey;

Ingat, menghapus constraints harus dilakukan dengan hati-hati, karena itu dapat mempengaruhi integritas data!

Kesimpulan

Selamat! Anda telah melakukan perjalanan besar ke constraints PostgreSQL. Dari NOT NULL hingga EXCLUSION, Anda sekarang memiliki alat untuk menjaga data Anda bersih, konsisten, dan terstruktur. Ingat, menggunakan constraints seperti membangun fondasi kuat untuk rumah – mungkin memerlukan sedikit usaha lebih awal, tapi itu menyelamatkan Anda dari banyak masalah di jalan!

Sebagai Anda terus melanjutkan perjalanan PostgreSQL Anda, terus mencoba constraints ini. Cobalah mengombinasikan mereka dalam cara yang berbeda, dan Anda akan segera menemukan diri Anda menciptakan desain basis data yang kuat dan dapat dipercaya. Selamat menjaga data!

Credits: Image by storyset