bab 9 - aljabar relasional

22
1 Aljabar Relasional (Relational Algebra) Teknik Informatika Basis Data (MMT-042)

Upload: ali-bardadi

Post on 24-Sep-2015

53 views

Category:

Documents


0 download

DESCRIPTION

tes

TRANSCRIPT

  • *Aljabar Relasional(Relational Algebra)Teknik InformatikaBasis Data (MMT-042)

  • *TIUMahasiswa mampu membuat query dengan aljabar relasionalTIKMahasiswa memahami bentuk Aljabar RelationalMahasiswa mengetahui pengambilan field dan record dari satu tabel dan banyak tabel.

  • *Aljabar Relasional (Bahasa Prosedural)Kumpulan operasi terhadap tabel, dimana setiap operasi menggunakan satu atau lebih tabel untuk menghasilkan satu tabel yang baru.Lebih bersifat operasional, sangat berguna untuk merepresentasikan eksekusi perencanaan.Operasi-operasi Dasar :selectionprojectionUnionintersectionset differenceOperasi lainnya :cross/cartesian productjoindivisionsum, average, min, max

  • *Jenis OperasiOperasi Unary terdiri dari selection, projection. Disebut operasi unary, karena dapat digunakan hanya pada satu tabel.Operasi Binary terdiri dari union, intersection, set difference, cartesian product, join dan division. Disebut operasi binary, karena memerlukan sepasang tabel.

  • *Operasi Selection ()Operasi yang digunakan untuk memilih subset dari tuple-tuple pada suatu tabel.Notasi : p(t) dibaca sigmap disebut selection predicate (yang menentukan pemilihan)p merupakan formula dari kalkulus perbandingan (proportional calculus) yang berisi terms yang dihubungkan oleh : ^ (and), v (or), ~ (not)setiap term salah satu dari : op or atau op dengan op salah satu dari : =, , >, ,
  • *Operasi Selection (lanj)Contoh : dilakukan operasi jenis=action(film) pada tabel film sebagai berikut :

    Hasilnya : suatu relasi dengan tuple-tuple yang memiliki jenis sama dengan action.

    kode_filmjenisjuduljml_kepingjml_filmA01actionSpiderman23A02actionSpiderman 225D01dramaLove Story13H01hororEvil Death32

    kode_filmjenisjuduljml_kepingjml_filmA01actionSpiderman23A02actionSpiderman 225

  • *Operasi Projection (p)Operasi yang digunakan untuk memilih subset dari kolom-kolom pada suatu tabel p dibaca piNotasi : pA1,A2,,An(t), dimana A1, A2, , An adalah daftar nama atribut dan t adalah nama suatu tabel.Hasilnya : suatu tabel dengan atribut yang tercantum pada daftar nama atribut pada operasi.

  • *Operasi Projection (lanj)Contoh : dilakukan operasi pkode_film, jenis, judul(film) pada tabel film sebagai berikut :

    Hasilnya :

    kode_filmjenisjuduljml_kepingjml_filmA01actionSpiderman23A02actionSpiderman 225D01dramaLove Story23H01hororEvil Death22

    kode_filmjenisjudulA01actionSpidermanA02actionSpiderman 2D01dramaLove StoryH01hororEvil Death

  • *Komposisi Operasi-Operasi RelasionalOperasi-operasi aljabar relasional dapat digabungkan dengan ekspresi aljabar relasional lainnya.Contoh : terdapat tabel film sebagai berikut :

    kode_filmjenisjuduljml_kepingjml_filmA01actionSpiderman23A02actionSpiderman 225D01dramaKabayan23H01hororScream22

  • *Komposisi Operasi-Operasi RelasionalTampilkan kode_film, judul dan jml_film dengan jml_film > 3, maka operasi komposisinya sebagai berikut :pkode_film, judul, jml_film(jml_film > 3(film))hasilnya :

    kode_filmjuduljml_filmA02Spiderman 25

  • *Operasi Union/Gabungan ()Operasi yang digunakan untuk menggabungkan hasil dari beberapa query.Notasi : r s, menghasilkan suatu tabel baru yang elemen barisnya merupakan elemen dari r dan s, tidak ada duplikasi data.Untuk r s harus valid : r, s harus memiliki jumlah atribut yang sama.

  • *Operasi Union/Gabungan (lanj)tabel r

    pA(r) pA(s)tabel s

    ABCaa17bb57bb127dd2310

    ABCaa57cc44dd107aa610

    Aaabbddcc

  • *Operasi Intersection/Irisan ()Notasi : r s, menghasilkan suatu tabel baru dengan elemen barisnya merupakan elemen yang terdapat pada tabel r dan elemen tersebut juga terdapat pada tabel s, tidak ada duplikasi data. r dan s harus memiliki jumlah atribut yang sama.tabel rtabel s

    r s

    ABa1a2b1

    ABa2b3

    ABa2

  • *Operasi Set Difference ()Notasi r s, hasilnya tabel yang elemen barisnya terdapat pada r tetapi tidak terdapat di s. r dan s harus memiliki jumlah atribut yang sama.tabel r

    pA(r) - pA(s)

    tabel s

    ABCaa17bb57bb127dd2310

    Abb

    ABCaa57cc44dd107aa610

  • *Operasi Cross/Cartesian-ProductNotasi r x s, menghasilkan semua kombinasi baris/tuple dari 2 buah tabel, yaitu tabel r dan s. Jumlah atribut tidak harus sama. Contoh :tabel r :maka r x s :

    tabel s :

    ABa1b3

    CDa6b5c12

    ABCDa1a6a1b5a1c12b3a6b3b5b3c12

  • *Operasi Join ()Digunakan untuk menggabungkan dua tabel atau lebih.Syarat : dilakukan jika kedua relasi memiliki satu atau lebih atribut sekutuSemua tuple-tuple dalam E1xE2 yang mempunyai nilai sama pada atribut sekutuKolom atribut sekutu bersifat tunggal(diambil salah satu)tabel Rtabel S

    sidsnameratingage22dustin745.031lubber855.558rusty1035.0

    sid bidday2210110/10/965810311/12/96

  • *Operasinya : R S sama dengan operasi (RxS), disebut juga Full Join.Hasilnya :Operasi Join (lanj)

    sidsnameratingagesidbidday22dustin745.02210110/10/9622dustin745.05810311/12/9631lubber855.52210110/10/9631lubber855.55810311/12/9658rusty1035.02210110/10/9658rusty1035.05810311/12/96

  • *Operasi Division (/)Notasi : R/S.Menghasilkan suatu tabel dari dua buah tabel yang terdiri dari atribut dari tabel R yang tidak terdapat pada tabel S dengan tupel-tupel dari tabel R yang memiliki kesamaan dengan tupel-tupel yang ada pada tabel S secara keseluruhan dan tidak terdapat duplikasi data.

  • *Operasi Division (lanj)tabel R tabel S1 tabel S2

    R/S1 R/S2

    snopnos1p1s1p2s1p3s1p4s2p1s2p2s3p2s4p2s4p4

    pno p2

    snos1s2s3s4

    pno p2p4

    snos1s4

  • *Operasi SUM, AVERAGE, MIN, MAX, COUNTSUM digunakan untuk menghitung jumlah nilai pada suatu kolom.AVERAGE digunakan untuk menghitung rata-rata dari suatu kolom.MIN digunakan untuk mencari nilai minimal pada suatu kolom.MAX digunakan untuk mencari nilai maksimal pada suatu kolom.COUNT digunakan untuk menghitung jumlah baris pada suatu kolom.

  • *Studi KasusTable PeminjamTable Penabung

    nonasabahnamanasabahnamacabangjumlahL-001AnggiPeunayong3000L-052PriyantoPekanBada4500L-125SusilloLamdingin7000

    nonasabahnamanasabahjumlahL-081Abidin7500L-052Priyanto5000L-175Suryo1200

  • *Tampilkan semua dengan jumlah uang pinjaman di bawah 5000Tampilkan namanasabah dan namacabang daari tabel peminjamTampilkan nonasabah untuk setiap jumlah peminjaman lebih besar dari 4000Tampilkan semua namanasabah yang memiliki pinjaman atau tabungan dari bankTampilkan nonasabah, namanasabah, dan jumlah dari tabel peminjam dan penabung dimana jumlah dari pinjaman dan tabungan lebih besar dari 2500

    *