Dokumen tersebut membahas tentang bahasa kueri relasional yang memungkinkan manipulasi dan penampilan data berdasarkan model relasional. Bahasa kueri relasional terbagi menjadi aljabar relasional dan kalkulus relasional, dimana aljabar relasional lebih fokus pada implementasi secara praktis sedangkan kalkulus relasional bersifat deklaratif tanpa menjelaskan cara pelaksanaannya. Operasi dasar aljabar relasional meliputi seleksi
2. Bahasa Kueri Relasional
Bahasa Kueri
Memungkinkan memanipulasi dan menampilkan data
Model Relasional mendukung bahasa Kueri yang
sederhana dan ampuh
Berdasarkan landasan teori Logika dan Himpunan
Memungkinkan optimasi pada level implementasi
Bahasa Kueri bukanlah bahasa pemrograman
Tidak dirancang untuk melakukan komputasi kompleks
Mendukung akses yang mudah dan efisien untuk
menampilkan data
Aljabar Relasional 2
3. Bahasa Kueri Relasional
Secara formal terbagi dua
Aljabar Relasional
Lebih ke tataran praktis dan implementasi
Memungkinkan perencanaan eksekusi yang efisien
Kalkulus Relasional
Menjelaskan apa yang diinginkan
Tidak menjelaskan bagaimana cara yang digunakan untuk
mendapatkan hasil komputasi
Deklaratif
Aljabar Relasional 3
4. R1 Sid Bid Day
22 101 10/10/96
Contoh Tabel Relasi 58 103 11/12/96
Model data sebuah S1 Sid Name Rating Age
perusahaan pelayaran 22 Dustin 7 45.0
Sailors, menyimpan 31 Lubber 8 55.5
data para nakhoda kapal 58 Rusty 10 35.0
Reserves, menyimpan
data nakhoda yang S2 Sid Name Rating Age
mengemudikan kapal 28 Yuppy 9 35.0
31 Lubber 8 55.5
44 Guppy 5 35.0
58 Rusty 10 35.0
Aljabar Relasional 4
5. Relasi dan Instance
Bahasa Kueri diterapkan terhadap instance basis data
Masukan (input) kueri adalah instance relasi
Setiap operator kueri menghasilkan luaran (output)
instance relasi
Bahasa Kueri tidak mengubah schema relasi
Aljabar Relasional 5
6. Operasi Dasar Aljabar
Relasional
Selection (σ) Mengambil subset baris dari sebuah
relasi
Projection (π) Mengambil subset kolom dari sebuah
relasi
Cross-product (×) Mengombinasikan dua relasi
Set-difference (–) Mengambil tuple di relasi pertama
yang tidak ada di relasi kedua
Union (∪) Menggabungkan tuple di kedua relasi
Aljabar Relasional 6
7. Aljabar Relasional
Bersifat tertutup
Masukan bagi Operasi dasar adalah relasi
Hasil dari Operasi dasar adalah relasi
Operasi dasar bisa diterapkan secara berulang / nested
Aljabar Relasional 7
8. Name Rating
Yuppy 9
Lubber 8
Operasi Projection π Guppy 5
Rusty 10
π name, rating (S2)
Operasi Projection seharusnya menghilangkan
duplikasi pada hasil kueri
Konsep himpunan
Implementasi DBMS tidak menghilangkan duplikasi
kecuali dinyatakan secara eksplisit
π age (S2) Age
35.0
55.0
Aljabar Relasional 8
9. Operasi Selection σ
Menampilkan baris yang memenuhi kondisi seleksi
σ rating > 8 (S2) Sid Name Rating Age
Komposisi operator 28 Yuppy 9 35.0
58 Rusty 10 35.0
π name, rating (σ rating > 8 (S2))
Name Rating
Yuppy 9
Rusty 10
Aljabar Relasional 9
10. Union, Intersection, Set-
difference
Membutuhkan dua relasi sebagai operand
Harus union-compatible
Jumlah kolomnya sama
Tipe data dalam kolom yang berpadanan harus sama
S1 ∩ S2 Sid Name Rating Age
S1 – S2 31 Lubber 8 55.5
58 Rusty 10 35.0
Sid Name Rating Age
22 Dustin 7 45.0
Aljabar Relasional 10
12. Operasi Cross-product
Setiap baris di relasi pertama dipasangkan dengan
setiap baris di relasi kedua
Jika ada kolom dengan nama yang sama dari kedua
relasi, gunakan operator renaming
ρ (C(1 sid1, 5 sid2), S1 × R1)
Kolom pada posisi ke-1 di-rename menjadi sid1
Kolom pada posisi ke-5 di-rename menjadi sid2
Aljabar Relasional 12
14. Join
Conditional join R ×cond S = σcond (R × S)
Untuk sembarang relasi R dan S,
lakukan operasi Cross-product,
lakukan operasi Selection yang memenuhi kriteria cond
Disebut juga Theta-join
Schema relasi yang dihasilkan sama dengan schema
relasi hasil operasi Cross-product
Menghasilkan jumlah tuple yang lebih sedikit
Aljabar Relasional 14
16. Contoh
Tampilkan nama para Sailors yang me-reserve kapal
nomor 103
Alternatif 1
π name ((σ bid=103 R1) × S1)
Alternatif 2
ρ(temp1, ς bid=103 R1)
ρ(temp2, temp1 × S1)
π name (temp2)
Alternatif 3
π name (σ bid=103 (R1 × S1))
Aljabar Relasional 16