Basis Data Relational Algebra Aljabar Relasional Aljabar relasional
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 • col 1, . . . , 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 staff. No, f. Name, l. Name, dan salary. staff. No, f. Name, l. Name, 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(Property. For. Rent)
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(Property. For. Rent)
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(Property. For. Rent)
Cartesian product • RXS – 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. ( client. No, f. Name, l. Name(Client)) X ( client. No, property. No, comment (Viewing))
• Contoh Cartesian Product dan Selection: – Gunakan operasi selection untuk menampilkan tuple klien dimana, Client. client. No = Viewing. client. No(( client. No, f. Name, l. Name(Client)) ( client. No, property. No, 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. ( client. No, f. Name, l. Name(Client)) Client. client. No=Viewing. client. No( client. No, property. No, 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. ( client. No, f. Name, l. Name(Client)) comment(Viewing)) ( client. No, property. No,
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 property. No, street, city(Property. For. Rent) Viewing
Semijoin • R FS • Mendefinisikan relasi yang berisikan 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. branch. No = Branch. branch. No 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: – T 1 C(R) – T 2 C((S X T 1) – R) – T T 1 – T 2
Contoh Division • Identifikasi seluruh klien yang telah melihat seluruh properti dengan 3 buah ruang/kamar. ( client. No, property. No(Viewing)) ( property. No( rooms = 3 (Property. For. Rent)))
- Slides: 22