Post on 19-Jan-2016
description
Aljabar Relational
2
Review Pertemuan Ke-6
• Normalisasi adalah Suatu Teknik/Cara yang digunakan untuk menganalisa relasi berdasarkan pada primary key (atau Candidate key dalam kasus BCNF) dan ketergantungan secara fungsional.
• Normalisasi dibagi menjadi bentuk normal I, bentuk normal II, bentuk normal III, dan BCNF
• Functional dependencies menggambarkan relasi antar attribut dalam satu skema relasi
3
Pendahuluan
• Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.
4
Operasi Aljabar Relasional
Operasi-operasi dasar dalam aljabar relasional adalah :
• Select• Project• Union• set difference• Cartesian product dan• rename.
5
Operasi Aljabar Relasiona
• Disamping operasi-operasi dasar terdapat beberapa operasi lainnya seperti set intersection, natural join, division dan assignment.
• Operasi-operasi ini akan didefinisikan dalam terminology operasi dasar.
6
Operasi-operasi Dasar
• Operasi-operasi select, project dan rename disebut operasi unary, karena operasi-operasi tersebut hanya memerlukan satu relasi.
• Tiga operasi lainnya memerlukan sepasang relasi, disebut operasi binary.
7
Operasi Select
• Operasi select menyeleksi tuple-tuple yang memenuhi predikat yang diberikan.
• Digunakan symbol sigma (σ) untuk menunjukkan operasi select.
• Predikat muncul sebagai subcript dari σ. Argumen relasi diberikan dalam kurung yang mengikuti σ.
• Jadi untuk menyeleksi tuple-tuple dari relasi loan dimana branch-name-nya adalah “Perryridge”, ditulis :
• σbranch-name = “Perrydge”(loan)
8
Operasi Select
• Jika relasi Loan adalah :
9
Operasi Select
• Maka hasil dari query di atas adalah :
10
Operasi Select
• Contoh-contoh query lain dengan operasi select adalah : σamount>1200(loan),
• untuk menemukan tuple dengan nilai amount lebih dari 1200, σbranch-name = “Perryridge” and amount >1200 (loan), untuk menemukan tuple dengan branch-name = “Perryridge” dimana nilai amountnya lebih dari 1200.
11
Operasi Project
• Seandainya diinginkan semua daftar loan-number dan amount, tanpa branchname.
• Dengan operasi project dapat dihasilkan relasi ini. Operasi project disimbolkan dengan symbol phi (π).
• Nama-nama atribut yang diinginkan tampil ditulis sebagai subcript π.
12
Operasi Project
• Contoh : πloan-number,amount(loan), adalah operasi untuk menampilkan seluruh loan-number & amount tanpa branch-name.
13
Operasi Project
• Hasil operasi tersebut adalah :
14
Komposisi Operasi-operasi relasional
• Berikut contoh query yang lebih kompleks : “ Temukan customer-customer yang tinggal di Horison “. Maka query-nya ditulis :
• πcustomer-name(σcustomer city=”Horison”(customer))
15
Komposisi Operasi-operasi relasional
• perhatikan bahwa sebagai argumen dari operasi project adalah sebuah ekspresi untuk suatu relasi.
• Oleh karenanya, operasi-operasi aljabar relasional dapat digabung dengan suatu ekspresi aljabar relasional.
16
Operasi Union
• Operasi union dalam aljabar relasional sama halnya dengan operasi union pada aritmatika.
• Misal user menginginkan nama-nama semua nasabah bank yang memiliki sebuah account atau sebuah loan atau keduanya.
• Perhatikan bahwa relasi customer tidak mengandung informasi tersebut.
17
Operasi Union
• Untuk menjawab query ini diperlukan informasi dari relasi Depositor dan relasi Borrower.
• Dengan operasi union informasi yang diinginkan dapat diperoleh dengan menulis query sebagai berikut :
• πcustomer-name(borrower) U πcustomer-name(depositor)
18
Operasi Union
19
Operasi Union
• Hasil query yang union di atas adalah :
20
Operasi Union
• Operasi union r U s bernilai benar jika kedua relasi memenuhi dua kondisi berikut :
• 1. Relasi r & s harus mempunyai jumlah atribut yang sama
• 2. Domain dari atribut ke-I di relasi r dan domain dari atribut ke-I dari s harus sama untuk semua i.
21
Operasi Pengurangan Himpunan ( Set Difference)
• Disimbolkan dengan tanda “-“. • Operasi ini untuk menemukan tuple-tuple yang
berada pada satu relasi tetapi tidak berada pada relasi yang lainnya.
• Contoh untuk menemukan semua nasabah bank yang mempunyai account tetapi tidak mempunyai loan, ditulis : πcustomer-name(depositor) - πcustomer-name(borrower)
22
Operasi Pengurangan Himpunan ( Set Difference)
• hasil query di atas :
23
Operasi Cartesian –product
• Operasi Cartesian-product disimbolkan dengan “x”. • Dengan operasi ini dapat dihasilkan informasi yang
merupakan kombinasi dari dua relasi.• Secara garis besar, jika dipunyai relasi r1(R1) dan
r2(R2), maka r1 x r2 adalah relasi yang skemanya merupakan gabungan dari R1 ( atribut-atribut relasi r1) dan R2 (atribut-atribut r2).
• Relasi R mengandung semua tuple t dimana terdapat sebuah tuple t1 dalam r1 dan t2 dalam r2 sedemikian sehingga t[R1] = t1[R1] dan t[R2]=t2[R2].
24
Operasi Cartesian –product
• Contoh : Jika diinginkan nama-nama dari semua nasabah yang mempunyai pinjaman (loan) di bank cabang Perryridge.
• Maka query-nya ditulis : σbranch-name=”Perryridge”(borrower x loan)
25
Operasi Cartesian –product
• Relasi yang dihasilkan :
26
Operasi Cartesian –product
27
Operasi Rename
• Dilambangkan dengan symbol rho (ρ). Sintaks penulisan rename : ρx(E).
• Operasi rename mengeluarkan hasil ekspresi E dengan nama x.
• Contoh : πaccount.balance(σaccount.balance<d.balance (account x ρd(account)))
28
Summary
• Jika E1 & E2 adalah ekspresi aljabar-relasional, maka berikut ini adlah semua ekspresi aljabar-relasional :
• - E1 U E2• - E1 – E2• - E1 x E2• - σp(E1), dimana p adalah sebuah predikat untuk atribut-
atribut dalam E1• - πs(E1), dimana s adalah daftar yang terdiri dari bebrapa
atribut dalam E1• - ρx(E1), dimana x adalah nama baru untuk hasil E1
29
Soal Latihan
• Diketahui tabel di bawah ini :
NIK NAMA ALAMAT RT RW KDLURAH12.14.01.181169.0001 Arif Muntasa Cipta Karya E - 24 19 9 010412.14.01.650875.0003 Audrey Cipta Karya E - 24 19 9 010412.14.12.411275.0002 Ella Marina JL Cipto Kusumo 23 12 5 1202
30
Soal Latihan
• Gunakan aljabar relasional untuk mencari :
- Nama karyawan yang beralamat di Jl. Cipto kusumo 23 dan hasil querynya
- Tuliskan perintah aljabar relasional untuk mencari alamat dari karyawan yang memiliki kode lurah 0104
31
REFERENSI
• Referensi Wajib:
Raghu Ramakhrisnan, Johannes Gehrke , “Database Management System” 6th Edition, Mc Graw Hill,2006
(chapter : 4)
• Referensi Tambahan/dianjurkan:
David M.Kroenke, Database Concepts 4th Edition, Prentice Hall 2004