Topik ini memperkenalkan PostgreSQL sebagai sistem manajemen basis data relasional open source yang dipakai luas di industri. Pembahasan mencakup arti kata relasional, jaminan ACID yang menopang keandalannya, sifat ekstensibilitas yang membedakannya, serta posisinya berdampingan dengan MySQL. Setelah membaca topik ini, pemahaman tentang apa yang dikerjakan PostgreSQL dan kapan teknologi ini dipilih sudah cukup untuk mengikuti seluruh jalur.
Sistem manajemen basis data relasional#
PostgreSQL adalah sistem manajemen basis data (database management system), yaitu perangkat lunak server yang menyimpan data, menjaganya tetap utuh, dan melayani pembacaannya bagi banyak pengguna sekaligus. Kata relasional menunjuk cara data disimpan, yakni dalam tabel (table) yang terdiri atas baris dan kolom, sebagaimana model relasional yang dirumuskan oleh Edgar F. Codd pada tahun 1970. Setiap tabel menyimpan satu jenis fakta, misalnya daftar anggota perpustakaan atau daftar buku, dan tabel-tabel itu dihubungkan melalui kunci.
Seluruh pembacaan dan penulisan data dilakukan dengan SQL (Structured Query Language), bahasa deklaratif yang menjadi standar industri. Pembaca menyatakan data apa yang diinginkan, sedangkan server yang menentukan cara paling efisien untuk memperolehnya. Arsitektur PostgreSQL memisahkan proses server dari klien: server mengelola berkas data di disk, sedangkan klien seperti psql mengirim perintah SQL dan menampilkan hasilnya.
Asal usul nama ini menjelaskan sifatnya. Proyek POSTGRES dimulai di University of California, Berkeley pada tahun 1986 sebagai penerus Ingres, dan dukungan SQL ditambahkan pada pertengahan 1990-an sehingga proyeknya dinamai ulang menjadi PostgreSQL. Nama panggilan Postgres tetap sah dan dipakai di dokumentasi resminya sendiri.
Jaminan ACID#
Keandalan PostgreSQL berdiri di atas empat jaminan transaksi yang disingkat ACID, yaitu atomicity, consistency, isolation, dan durability. Sebuah transaksi (transaction) adalah kelompok perubahan yang diperlakukan sebagai satu unit kerja, misalnya mencatat peminjaman buku sekaligus mengurangi jumlah stoknya.
Atomicity berarti semua perubahan terjadi atau tidak satu pun terjadi. Apabila pencatatan peminjaman berhasil tetapi pengurangan stok gagal, kedua perubahan dibatalkan bersama sehingga data tidak tertinggal setengah jadi. Consistency berarti transaksi selalu membawa basis data dari satu keadaan yang sah ke keadaan sah berikutnya, karena aturan seperti kunci utama dan constraint tetap ditegakkan. Isolation berarti transaksi yang berjalan bersamaan tidak saling mencemari hasil satu sama lain, sehingga pembaca tidak melihat angka stok yang setengah diperbarui. Durability berarti perubahan yang telah di-commit bertahan meskipun server mati mendadak, karena PostgreSQL menulisnya ke write-ahead log (WAL) di disk sebelum memberi tanda berhasil.
Empat jaminan ini bukan tambahan opsional, melainkan perilaku bawaan setiap transaksi. Modul transaksi di jalur ini membedahnya lagi beserta kelonggaran isolasi yang dapat dipilih.
Open source dan ekstensibilitas#
PostgreSQL dirilis di bawah PostgreSQL License, lisensi permisif yang setara dengan lisensi keluarga BSD dan MIT. Perangkat lunaknya dapat dipasang, diubah, dan dipakai untuk keperluan komersial tanpa biaya lisensi, sementara beberapa perusahaan menawarkan dukungan berbayar bagi yang membutuhkannya.
Kekuatan khasnya adalah ekstensibilitas, yakni kemampuan menambah kemampuan baru tanpa mengganti basis data. Fitur bawaan yang kaya sudah mencakup jenis data JSONB untuk dokumen, pencarian teks penuh, window function, dan jenis data khusus seperti UUID serta interval waktu. Kebutuhan yang lebih spesifik dipasang dalam bentuk ekstensi, misalnya PostGIS untuk data spasial dan pgvector untuk pencarian kemiripan vektor. Cakupan yang luas ini menjadikan satu server PostgreSQL dapat melayani kebutuhan yang biasanya membutuhkan beberapa perangkat lunak sekaligus.
PostgreSQL dan MySQL berdampingan#
PostgreSQL dan MySQL adalah dua basis data relasional open source yang paling banyak dipakai, dan keduanya sah dipilih. Perbedaannya terletak pada fokus dan rincian perilaku, bukan pada benar atau salah. Tabel berikut merangkum perbedaan yang paling memengaruhi keputusan.
| Aspek | PostgreSQL | MySQL |
|---|---|---|
| Fokus desain | kepatuhan tinggi terhadap standar SQL dan kelengkapan fitur | kesederhanaan operasi dan kecepatan pada beban baca sederhana |
| Jenis data | sangat kaya, antara lain JSONB, array, interval, dan enum | lebih ringkas, jenis dokumen dan array bukan bawaan inti |
| Konkurensi | MVCC diterapkan pada seluruh tabel | bergantung storage engine, InnoDB menerapkan MVCC |
| Lisensi | PostgreSQL License yang permisif | GPL untuk edisi komunitas |
Untuk jalur belajar ini, PostgreSQL dipilih karena aturan SQL-nya yang ketat justru melatih disiplin yang benar, sedangkan fitur seperti JSONB dan pencarian teks penuh dapat dibahas tanpa memasang alat tambahan.
Kesalahan umum#
Kesalahan pertama adalah menganggap PostgreSQL sebagai MySQL dengan nama lain. Keduanya berbahasa SQL, tetapi perilaku jenis data, pengelompokan, dan penanganan NULL berbeda, sehingga query yang sama dapat menghasilkan keluaran berbeda. Kesalahan kedua adalah mengira open source berarti tanpa dukungan, padahal justru karena kode sumbernya terbuka, beberapa perusahaan dapat menawarkan dukungan komersial atasnya.
Kesalahan ketiga adalah menunda pemilihan versi secara berlebihan. PostgreSQL merilis versi mayor setiap tahun dan memelihara beberapa lini sekaligus, sehingga memulai belajar pada lini stabil terkini adalah keputusan yang aman. Nama panggilan Postgres boleh dipakai, tetapi tulis nama lengkapnya pada dokumen formal.
Ringkasan#
- PostgreSQL adalah server basis data relasional open source yang dioperasikan dengan SQL, keturunan proyek POSTGRES dari Berkeley.
- Setiap transaksi menikmati jaminan ACID, yaitu atomicity, consistency, isolation, dan durability, sebagai perilaku bawaan.
- Lisensinya permisif, dan kemampuannya bertambah melalui fitur bawaan serta ekstensi seperti PostGIS dan pgvector.
- Perbandingan dengan MySQL adalah perbandingan fokus desain, sehingga pilihan teknologi disesuaikan dengan kebutuhan data, bukan popularitas semata.
Referensi#
- What Is PostgreSQL? — PostgreSQL Documentation — Pengantar resmi yang mendefinisikan PostgreSQL dan asal-usul namanya.
- Features of PostgreSQL — PostgreSQL Documentation — Daftar fitur utama, termasuk jaminan transaksi dan jenis data.
- A Brief History — PostgreSQL Documentation — Riwayat proyek POSTGRES di Berkeley sampai penamaan PostgreSQL.