Transcript Basis Data_04_RelationalAljabar
Basis Data
Relational Algebra
Aljabar Relasional
• Aljabar relasional adalah kumpulan operasi terhadap relasi. Setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru.
• Operasi aljabar relasional yang dilakukan pada satu atau lebih relasi untuk mendefinisikan relasi lainnya tanpa mengubah relasi yang asli.
• Operand dan hasilnya merupakan relasi, sehingga output suatu operasi dapat menjadi input bagi operasi yang lain.
• Memungkinkan suatu operasi bertingkat (nested) (seperti aritmatika), hal ini disebut closure.
• terdapat 5 operasi dasar pada aljabar relasional: Selection, Projection, Cartesian product, Union, dan Set Difference. Menampilkan seluruh operasi pemanggilan data yang dibutuhkan.
• Operasi lainnya : Join, Intersection, dan Division operations, yang juga dapat diekspresikan dengan menggunakan operasi dasar.
Operasi aljabar Relasional
Operasi Kompleks dalam Aljabar Relasional
Selection (or Restriction)
• predicate (R) – Operasi pada relasi tunggal, dan menghasilkan relasi yang berisikan baris (tuple) yang sesuai dengan syarat yang telah ditentukan (predicate).
• Contoh : Buatlah daftar staf dengan gaji > £10,000.
salary > 10000 (Staff)
Projection
• col1, . . . , coln(R) • Operasi pada relasi tunggal R dan menghasilkan relasi yang berisikan subset vertical (kolom) dari R, Menampilkan isi atribut dan menghilangkan duplikasi.
– Contoh : Buatlah daftar gaji seluruh staff, yang terdiri dari staffNo, fName, lName, dan salary.
staffNo, fName, lName, salary(Staff)
Union
• R J).
S – Penggabungan (Union) dua relasi, R dan S, menghasilkan relasi yang berisikan semua tuple dari R, dan/atau S, dan duplikasi akan dieliminasi/dihilangkan. – Atribut ( R ) = Atribut ( S ) .
• Jika R dan S memiliki sejumlah tuple I dan J , maka hasil tupel dari union keduanya max (I + • Contoh : Tampilkan seluruh kota dimana terdapat kantor cabang dan property untuk disewakan
city(Branch)
city(PropertyForRent)
Set Difference
• R – S – Menghasilkan relasi yang terdiri dari tuple pada relasi R,yang tidak ada pada relasi S. – Atribut ( R ) = Atribut ( S ) • Contoh : Tampilkan seluruh kota dimana terdapat kantor cabang tetapi tidak terdapat property untuk disewakan.
city(Branch) –
city(PropertyForRent)
Intersection
• R S – Menghasilkan relasi yang terdiri dari kumpulan seluruh tuple yang ada pada relasi R maupun S. – Atribut ( R ) = Atribut ( S ) • Dapat dihasilkan dengan menggunakan operasi dasar: R S = R – (R – S) • Contoh : Tampilkan seluruh kota yang mempunyai kantor cabang dan sedikitnya 1 property untuk disewakan.
city(Branch)
city(PropertyForRent)
Cartesian product
• R X S – Menghasilkan relasi yang merupakan urutan (concatenation) dari setiap tuple pada relasi R dengan setiap tuple pada relasi S. • Contoh : Tampilkan nama dan komentar seluruh klien yang telah melihat property yang disewakan.
(
clientNo, fName, lName(Client)) X (
clientNo, propertyNo, comment (Viewing))
• Contoh Cartesian Product dan Selection: – Gunakan operasi selection untuk menampilkan tuple klien dimana, Client.clientNo = Viewing.clientNo.
Client.clientNo = Viewing.clientNo((
clientNo, fName, lName(Client))
(
clientNo, propertyNo, comment(Viewing)))
• Cartesian product dan Selection dapat diganti dengan operasi tunggal, Join.
Join Operation
• Join merupakan turunan dari operasi Cartesian product.
• Equivalen dengan fungsi
Selection
, menggunakan predikat join sebagai fungsi
selection
pada Cartesian product dari dua buah relasi.
• Merupakan operasi tersulit untuk diimplementasikan secara efisien pada RDBMS dan merupakan salah satu alasan mengapa RDBMS memiliki masalah-masalah.
• Jenis-jenis operasi
join
.
– Theta join – Equijoin (a particular type of Theta join) – Natural join – Outer join – Semijoin
Theta join (
-join)
• R F S • Mendefinisikan relasi yang terdiri dari tuple-tuple yang memenuhi syarat predikat F dari Cartesian product relasi R dan S. • Predikat F yaitu bentuk dari R.ai S.bi dimana dapat berupa operator pembanding (<, , >, , =, ).
• Theta join dapat dituliskan dengan menggunakan operasi dasar
Selection
dan operasi Cartesian product.
R FS = F(R S)
Contoh -
Equijoin
• Tampilkan nama dan komentar semua klien yang telah melihat property untuk disewakan. ( clientNo,fName,lName(Client)) Client.clientNo=Viewing.clientNo( clientNo,propertyNo, comment(Viewing))
Natural join
• R S • Equijoin dari dua relasi R dan S untuk seluruh atribut
x
. Perulangan akan dieliminasi dari hasil akhir. • Contoh -
Natural join
Tampilkan nama dan komentar seluruh klien yang telah melihat property untuk disewakan.
(
clientNo, fName, lName(Client)) (
clientNo, propertyNo, comment(Viewing))
Outer join
• Untuk menampilkan baris pada relasi yang dihasilkan, dimana baris tersebut tidak memiliki nilai yang cocok (matching values) dengan kolom yang di-join. • R S • (Left) outer join adalah join, dimana tuple dari R yang tidak memiliki nilai yang cocok (matching values) pada kolom dari S, yang ditampilkan dalam relasi yang dihasilkan.
Contoh -
Left Outer join
• Buatlah laporan status dari
property viewings
Viewing propertyNo, street, city (PropertyForRent)
Semijoin
• R F S • Mendefinisikan relasi yang berisikan tuple tuple dari relasi R yang ada pada join R dengan S.
• Semijoin dapat dituliskan dengan menggunakan • R F S
Projection
= A (R F S) dan join:
Contoh -
Semijoin
• Tampilkan detail lengkap semua staff yang bekerja pada kantor cabang di Glasgow.
Staff Staff.branchNo
= Branch.branchNo and Branch.city = ‘Glasgow’ Branch
Division
• R S • Mendefinisikan relasi antara atribut-atribut C yang terdiri dari himpunan tuple R yang merupakan kombinasi yang cocok/sesuai (match) dengan setiap tuple S.
• Ekpresi dengan menggunakan operasi dasar: – T1 C(R) – T2 C((S X T1) – R) – T T1 – T2
Contoh Division
• Identifikasi seluruh klien yang telah melihat seluruh properti dengan 3 buah ruang/kamar. ( clientNo, propertyNo(Viewing)) ( propertyNo( rooms = 3 (PropertyForRent)))