PostgreSQL -Constraints: Panduan Teman Anda untuk Keselarasan Data
Hai teman-teman masa depan ahli basis data! ? Hari ini, kita akan melihat dunia yang menakjubkan dari constraints PostgreSQL. Jangan khawatir jika Anda masih baru; kita akan berjalan langkah demi langkah, dan pada akhirnya, Anda akan dapat mengatur data seperti seorang ahli! Mari kita mulai perjalanan menarik ini bersama-sama.
Apa Itu Constraints?
Sebelum kita masuk ke detil, mari bicarakan apa itu constraints. Bayangkan Anda sedang membuat 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 masing-masing dengan contoh dan penjelasan.
Jenis Constraint | Deskripsi |
---|---|
NOT NULL | Memastikan bahwa kolom tidak dapat memiliki nilai NULL |
UNIQUE | Memastikan bahwa semua nilai dalam kolom berbeda |
PRIMARY KEY | Mengidentifikasi secara unik setiap baris dalam tabel |
FOREIGN KEY | Menghubungkan data antara tabel |
CHECK | Memastikan bahwa semua nilai dalam kolom memenuhi syarat tertentu |
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 yang ketat yang tidak menerima jawaban kosong dalam tes. Itu memastikan bahwa 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, berarti setiap buku harus memiliki judul dan pengarang. Namun, price
dapat NULL, mungkin untuk buku yang belum dihargai.
Constraint UNIQUE
Constraint UNIQUE seperti memberikan nama panggilan unik kepada 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');
INSERT kedua akan gagal, menjaga data kita bersih dan unik!
Constraint PRIMARY KEY
Constraint PRIMARY KEY seperti kapten tim olahraga – unik dan penting. Itu mengidentifikasi secara unik setiap baris dalam tabel.
Kami sudah menentukan PRIMARY KEY dalam tabel books
kita (book_id
), tapi mari kita 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 untuk setiap pelanggan baru.
Constraint FOREIGN KEY
FOREIGN KEY seperti koneksi dalam jaringan sosial. Mereka menghubungkan data antara tabel.
mari buat tabel orders
yang merujuk 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 dengan hormat menolak, menjaga data kita logis dan konsisten.
Constraint EXCLUSION
Constraint EXCLUSION seperti aturan kompleks dalam permainan papan. Itu avanzado, tapi kuat saat Anda memerlukannya.
Bayangkan kita menjadwal acara dan ingin memastikan bahwa tidak ada dua acara yang overlap 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 tidak benar bahwa keduanya memiliki nomor ruangan yang sama DAN rentang waktu overlap.
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 baru saja melakukan perjalanan besar ke PostgreSQL constraints. Dari NOT NULL ke 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 menghindari banyak masalah di jalan.
Sebagai Anda terus melanjutkan perjalanan PostgreSQL Anda, terus mencoba constraints ini. Cobalah mengkombinasikan mereka dalam cara yang berbeda, dan Anda akan segera menemukan diri Anda menciptakan desain basis data yang kuat dan dapat dipercaya. Selamat mengecilkan! ?
Credits: Image by storyset