ikd312-04-aljabar-relasional
-
Upload
anung-ariwibowo -
Category
Education
-
view
575 -
download
9
Transcript of ikd312-04-aljabar-relasional
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
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
Contoh Tabel Relasi Model data sebuah
perusahaan pelayaran
Sailors, menyimpan data para nakhoda kapal
Reserves, menyimpan data nakhoda yang mengemudikan kapal
Aljabar Relasional 4
R1 Sid Bid Day
22 101 10/10/96
58 103 11/12/96
S1 Sid Name Rating Age
22 Dustin 7 45.0
31 Lubber 8 55.5
58 Rusty 10 35.0
S2 Sid Name Rating Age
28 Yuppy 9 35.0
31 Lubber 8 55.5
44 Guppy 5 35.0
58 Rusty 10 35.0
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
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
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
Operasi Projection π π name, rating (S2)
Operasi Projection seharusnya menghilangkan duplikasi pada hasil kueri
Konsep himpunan
Implementasi DBMS tidak menghilangkan duplikasi kecuali dinyatakan secara eksplisit
π age (S2)
Aljabar Relasional 8
Name Rating
Yuppy 9
Lubber 8
Guppy 5
Rusty 10
Age
35.0
55.0
Operasi Selection σ Menampilkan baris yang memenuhi kondisi seleksi
σ rating > 8 (S2)
Komposisi operator
π name, rating (σ rating > 8 (S2))
Aljabar Relasional 9
Sid Name Rating Age
28 Yuppy 9 35.0
58 Rusty 10 35.0
Name Rating
Yuppy 9
Rusty 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
S1 – S2
Aljabar Relasional 10
Sid Name Rating Age
31 Lubber 8 55.5
58 Rusty 10 35.0
Sid Name Rating Age
22 Dustin 7 45.0
Union S1 ∪ S2
Aljabar Relasional 11
Sid Name Rating Age
22 Dustin 7 45.0
28 Yuppy 9 35.0
31 Lubber 8 55.5
44 Guppy 5 35.0
58 Rusty 10 35.0
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
Operasi Cross-product
(sid) Name Rating Age (sid) Bid Day
22 Dustin 7 45.0 22 101 10/10/96
22 Dustin 7 45.0 58 103 11/12/96
31 Lubber 8 55.5 22 101 10/10/96
31 Lubber 8 55.5 58 103 11/12/96
58 Rusty 10 35.0 22 101 10/10/96
58 Rusty 10 35.0 58 103 11/12/96
Aljabar Relasional 13
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
Equi-join Theta-join dengan kriteria cond =
Theta-join
S1 × S1.sid < R1.sid R1
Equi-join
S1 × sid R1 = S1 × S1.sid = R1.sid R1
Aljabar Relasional 15
Sid Name Rating Age sid bid day
22 Dustin 7 45.0 58 103 11/12/96
31 Lubber 8 55.5 58 103 11/12/96
Sid Name Rating Age sid bid day
22 Dustin 7 45.0 22 101 10/10/96
58 Rusty 10 35.0 58 103 11/12/96
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