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
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
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
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
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
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
Union
 S1 ∪ S2        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




            Aljabar Relasional                 11
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                 Sid Name         Rating Age        sid   bid   day
    S1 × S1.sid < R1.sid R1 22 Dustin        7         45.0    58    103   11/12/96
                             31  Lubber       8         55.5    58    103   11/12/96
 Equi-join
    S1 × sid R1 = S1 × S1.sid = R1.sid R1

               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




                     Aljabar Relasional                                        15
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




               Aljabar Relasional                          17
Kamis, 13 Oktober 2011

ikd312-04-aljabar-relasional

  • 1.
    Aljabar Relasional 13 Oktober 2011
  • 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  Bersifattertutup  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
  • 11.
    Union  S1 ∪S2 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 Aljabar Relasional 11
  • 12.
    Operasi Cross-product  Setiapbaris 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
  • 13.
    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
  • 14.
    Join  Conditional joinR ×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
  • 15.
    Equi-join  Theta-join dengankriteria cond =  Theta-join Sid Name Rating Age sid bid day  S1 × S1.sid < R1.sid R1 22 Dustin 7 45.0 58 103 11/12/96 31 Lubber 8 55.5 58 103 11/12/96  Equi-join  S1 × sid R1 = S1 × S1.sid = R1.sid R1 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 Aljabar Relasional 15
  • 16.
    Contoh  Tampilkan namapara 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
  • 17.
  • 18.