Lompat ke konten Lompat ke sidebar Lompat ke footer

Aljabar Relasional

Aljabar relasional adalah sekumpulan operasi matematika yang digunakan untuk memanipulasi relasi (tabel) dalam basis data relasional. Konsep ini membantu dalam memahami bagaimana query basis data bekerja dengan cara formal.



Operasi Dasar Aljabar Relasional

1. Seleksi (σ)
Mengambil baris yang memenuhi kriteria tertentu dari relasi. Ini setara dengan pernyataan `WHERE` dalam SQL.

- Notasi: σ_kondisi(Relasi)
- Contoh: σ_harga>5000(Produk)


2. Proyeksi (π)
Mengambil kolom yang diinginkan dari relasi, seperti `SELECT` dalam SQL.

- Notasi: π_kolom1, kolom2(Relasi)
- Contoh: π_nama, harga(Produk)


3. Union (∪)
Menggabungkan dua relasi dengan menghilangkan duplikat, setara dengan `UNION` di SQL.

- Syarat: Kedua relasi harus kompatibel (memiliki jumlah kolom yang sama dan tipe data serupa).
- Notasi: Relasi1 ∪ Relasi2
- Contoh: Pelanggan ∪ Pembeli


4. Irisan (∩)
Mengambil baris yang muncul di kedua relasi, sama dengan `INTERSECT` di SQL.

- Notasi: Relasi1 ∩ Relasi2


5. Difference (−)
Mengambil baris yang ada di satu relasi tetapi tidak ada di relasi lain. Ini seperti operasi `EXCEPT` di SQL.

- Notasi: Relasi1 − Relasi2
- Contoh: Pelanggan − Pembeli


6. Kali Silang (×)
Menggabungkan setiap baris dari satu relasi dengan setiap baris dari relasi lain, membentuk produk kartesian.

- Notasi: Relasi1 × Relasi2
- Contoh: Produk × Kategori


Operasi Gabungan

1. Join

Operasi ini adalah kombinasi dari seleksi dan kali silang. Ada beberapa jenis join:
  • Inner Join: Mengembalikan baris yang cocok di kedua tabel. Setara dengan `INNER JOIN` di SQL.
  • Left Join: Mengembalikan semua baris dari tabel kiri, dan baris yang cocok dari tabel kanan.
  • Right Join: Sama seperti left join, tapi mengembalikan semua baris dari tabel kanan.
  • Full Outer Join: Mengembalikan semua baris ketika ada kecocokan di salah satu tabel.
Notasi umum join:

- Relasi1 ⨝_kondisi Relasi2
- Contoh: Pelanggan ⨝_Pelanggan.id=Pembeli.id Pembeli


Penerapan dalam Basis Data Modern

Meskipun aljabar relasional memberikan dasar yang kuat untuk memanipulasi data, ada beberapa keterbatasan:
  • Tidak mendukung query kompleks yang melibatkan fungsi agregasi (SUM, COUNT, AVG) secara langsung.
  • Optimisasi query dalam SQL tidak sepenuhnya dijelaskan oleh aljabar relasional.
Untuk mengatasi masalah ini, sistem manajemen basis data modern seperti MySQL, PostgreSQL, dan SQL Server menggunakan Optimisasi Query. Di sini, query SQL diterjemahkan menjadi berbagai langkah operasi aljabar relasional yang efisien.


Optimisasi Query

Sebagai contoh, jika kita melakukan join besar antara dua tabel dengan jutaan data, sistem akan menggunakan teknik optimisasi seperti hash join atau merge join. Ini adalah pendekatan yang tidak langsung dijelaskan dalam aljabar relasional, tetapi digunakan untuk meningkatkan efisiensi eksekusi.


Implementasi dalam SQL

Berikut contoh implementasi beberapa operasi aljabar relasional dalam SQL:

Seleksi dan Proyeksi:
 
SELECT nama, harga
FROM Produk
WHERE harga > 5000;

 
Union:

SELECT nama FROM Pelanggan
UNION
SELECT nama FROM Pembeli;

 
Join:

SELECT P.nama, P.alamat
FROM Pelanggan P
INNER JOIN Pembeli B
ON P.id = B.id;


Kesimpulan

Aljabar relasional menyediakan kerangka teoretis untuk query basis data. Dengan memahami operasi-operasi dasar ini, kita bisa mengoptimalkan cara bekerja dengan database relasional. Meskipun sistem basis data modern menggunakan teknik yang lebih kompleks untuk mengoptimalkan query, konsep dasar aljabar relasional tetap menjadi fondasi utama.