Apa itu PostgreSQL?

PostgreSQL, sering disebut sebagai PG, adalah sistem manajemen basis data relasional (RDBMS) sumber terbuka tingkat lanjut dengan reputasi kuat dalam hal keandalan, ketahanan fitur, dan kinerja. Awalnya dikembangkan di Universitas California, Berkeley, PostgreSQL dikenal karena ekstensibilitas dan kepatuhannya terhadap standar SQL. Ini mendukung berbagai tipe data, memungkinkan kueri kompleks, dan mampu menangani data dalam jumlah besar secara efisien.

Fitur Utama PostgreSQL

  1. Kemungkinan diperpanjang: PostgreSQL dirancang agar dapat diperluas, artinya pengembang dapat menentukan tipe data, fungsi, dan operatornya sendiri. Hal ini menawarkan fleksibilitas yang besar, memungkinkan pengguna untuk menyesuaikan database untuk memenuhi kebutuhan aplikasi tertentu.

  2. Kepatuhan ASAM: PostgreSQL memastikan atomisitas, konsistensi, isolasi, dan daya tahan (ACID) dalam transaksi. Hal ini menjamin bahwa semua transaksi diproses dengan andal, yang sangat penting untuk aplikasi yang memerlukan integritas data tinggi.

  3. Dukungan untuk Tipe Data Tingkat Lanjut: Selain tipe data standar seperti integer dan string, PostgreSQL mendukung array, JSON, XML, dan bahkan tipe khusus. Fungsionalitas ini sangat bermanfaat dalam aplikasi modern yang menangani beragam format data.

  4. Kontrol Konkurensi Multi-Versi (MVCC): PostgreSQL menggunakan MVCC untuk mengelola konsistensi data tanpa memerlukan kunci baca. Hal ini memungkinkan beberapa transaksi terjadi secara bersamaan tanpa mengganggu satu sama lain, sehingga meningkatkan kinerja untuk operasi bersamaan.

  5. Fitur Keamanan yang Kuat: PostgreSQL menyediakan serangkaian langkah keamanan, termasuk otentikasi berbasis peran, sertifikat SSL, dan mekanisme enkripsi data. Ini menjadikannya pilihan yang aman untuk menyimpan data sensitif.

Instalasi dan Pengaturan

Persyaratan Sistem

Sebelum menginstal PostgreSQL, pastikan sistem Anda memenuhi persyaratan yang diperlukan. PostgreSQL mendukung berbagai platform, termasuk Windows, Linux, dan macOS. Persyaratan umum meliputi:

  • Minimal RAM 512 MB (disarankan 1 GB).
  • Ruang disk kosong 1 GB untuk instalasi dasar dan ruang tambahan untuk data.
  • Prosesor yang kompatibel (arsitektur x86 atau x64).

Langkah-Langkah Instalasi

  1. Unduh PostgreSQL: Kunjungi situs web resmi PostgreSQL dan unduh penginstal yang sesuai untuk sistem operasi Anda.

  2. Jalankan Penginstal: Jalankan penginstal yang diunduh dan ikuti petunjuk untuk menyiapkan PostgreSQL. Selama instalasi, pilih komponen pilihan Anda, termasuk server, alat baris perintah, dan dokumentasi.

  3. Konfigurasikan Klaster Basis Data: Penginstal akan meminta Anda untuk mengonfigurasi cluster database awal, termasuk mengatur kata sandi pengguna super, nomor port, dan lokal.

  4. Selesaikan Instalasi: Setelah mengonfigurasi, selesaikan penginstalan dan secara opsional instal alat tambahan apa pun seperti pgAdmin, antarmuka grafis populer untuk mengelola database PostgreSQL.

Memahami Arsitektur PostgreSQL

Komponen PostgreSQL

  1. Kepala kantor pos: Proses utama PostgreSQL yang mengelola operasi dan koneksi database.

  2. Proses: PostgreSQL beroperasi pada model proses, di mana setiap koneksi database memunculkan proses backend baru. Hal ini memungkinkan koneksi individual ditangani secara independen.

  3. Buffer Bersama: Area memori ini menampung halaman data yang sering diakses. PostgreSQL menggunakan buffer bersama untuk mengoptimalkan kinerja dengan meminimalkan operasi I/O disk.

  4. Logging Depan Tulis (WAL): PostgreSQL menggunakan WAL untuk memastikan ketahanan data. Semua perubahan pertama kali ditulis ke file WAL sebelum dikomit ke file data utama, memberikan titik pemulihan jika terjadi kerusakan.

Operasi Dasar PostgreSQL

Menghubungkan ke PostgreSQL

Untuk terhubung ke PostgreSQL, gunakan utilitas baris perintah psql. Buka terminal Anda dan masukkan perintah berikut, ganti kolom yang relevan jika diperlukan:

psql -U username -d database_name -h host -p port

Membuat Basis Data

Setelah terhubung, buat database baru menggunakan perintah SQL:

CREATE DATABASE my_database;

Membuat Tabel

Membuat tabel adalah operasi mendasar dalam database relasional. Perintah sederhana untuk membuat tabel mungkin terlihat seperti ini:

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    position VARCHAR(50),
    start_date DATE,
    salary NUMERIC(10, 2)
);

Memasukkan Data

Untuk menambahkan data ke tabel baru Anda, gunakan INSERT penyataan:

INSERT INTO employees (name, position, start_date, salary) VALUES
('John Doe', 'Developer', '2023-01-15', 75000.00),
('Jane Smith', 'Manager', '2023-02-01', 95000.00);

Meminta Data

Pengambilan data dari tabel dilakukan dengan menggunakan SELECT penyataan. Berikut beberapa contohnya:

  • Pilih semua catatan:

    SELECT * FROM employees;
  • Pilih kolom tertentu:

    SELECT name, salary FROM employees;
  • Menerapkan kondisi dengan WHERE:

    SELECT * FROM employees WHERE salary > 80000;

Teknik SQL Tingkat Lanjut

Bergabung

Gabungan memungkinkan Anda menggabungkan baris dari dua tabel atau lebih berdasarkan kolom terkait. Jenis gabungan dasar meliputi:

  • GABUNG DALAM: Mengembalikan baris dengan nilai yang cocok di kedua tabel.

    SELECT e.name, d.department_name
    FROM employees e
    INNER JOIN departments d ON e.department_id = d.id;
  • KIRI GABUNG: Mengembalikan semua baris dari tabel kiri, dan baris yang cocok dari tabel kanan.

    SELECT e.name, d.department_name
    FROM employees e
    LEFT JOIN departments d ON e.department_id = d.id;

Pengindeksan untuk Kinerja

Membuat indeks pada kolom yang sering ditanyakan dapat meningkatkan kinerja database secara signifikan. Berikut cara membuat indeks:

CREATE INDEX idx_salary ON employees (salary);

Cadangkan dan Pulihkan

Pencadangan rutin sangat penting untuk integritas data. Gunakan pg_dump utilitas untuk membuat cadangan database:

pg_dump my_database > my_database.sql

Untuk memulihkan database, gunakan:

psql my_database < my_database.sql

Kesimpulan

Memahami dasar-dasar PostgreSQL melibatkan pengenalan fitur, arsitektur, dan operasi umum. Pengetahuan ini berfungsi sebagai landasan untuk memanfaatkan PostgreSQL secara efektif dalam berbagai aplikasi, mulai dari proyek skala kecil hingga sistem perusahaan besar. Dengan latihan, eksplorasi kemampuan yang lebih canggih—termasuk penyesuaian performa, replikasi, dan penelusuran teks lengkap—akan menjadi tujuan yang dapat dicapai.