220 likes | 419 Views
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.
E N D
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.
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 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 + J). • 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 FS • 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 Projection dan join : • R F S = A(R F S)
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)))