ikd312-04-aljabar-relasional

18
Aljabar Relasional 13 Oktober 2011

Transcript of ikd312-04-aljabar-relasional

Aljabar Relasional 13 Oktober 2011

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

Pustaka http://tjerdastangkas.blogspot.com/search/label/ikd312

17 Aljabar Relasional

Kamis, 13 Oktober 2011