Sinopsis Aljabar Relasional PUTRI

  

ALJABAR RELASIONAL adalah kumpulan operasi relasi dimana setiap operasi

  menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru, dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data. (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). Operasi-operasi dasar dalam aljabar relasional adalah : select, project, union, set difference, dan cartesian product. Disamping operasi-operasi dasar terdapat beberapa operasi tambahan seperti set intersection, natural join, division dan theta join.

  a) Terdapat enam operasi dasar dalam aljabar relasional : 1. Selection.

  2. Projection.

  3. Cartesian – product.

  4. Union.

  5. Set – difference.

  6. Rename.

  b) Operasi-operasi turunan dari operasi dasar tersebut adalah 1. Set Intersection.

  2. Theta join.

  3. Natural join.

  5. Division.

  6. Minus.

  7. Aggregate function. Semua operasi tersebut menghasilkan relasi baru. Pemrogram menggunakan query SQL, DBMS menggunakan aljabar relasional sebagai bahasa antara dalam spesifikasi alogaritma query.

  Langkah-langkah dalam DBMS untuk pengolahan query adalah :

  1. DBMS melakukan parsing pada string query SQL, dan diterjemahkan kedalam ekspresi aljabar relasional yang dapat menuntun kedalam alogaritma sederhana yang tidak efisien.

  2. Lalu bagian optimizer akan mengkonversi akspresi aljabar relasional ini menjadi ekspresi lain yang ekivalen namun lebih efisien untuk dieksekusi.

  3. Query optimizer akan mempersiapkan rencana eksekusi yang kemudian ditransformasikan menjadi kode yang dapat dieksekusi pembangkit kode di DBMS.

  4. Karena ekspresi aljabar mempunyai semantik matematis yang presisi, maka sistem dapat memferifikasi ekivalensi ekspresi yang dioptimasi yang dihasilkan dari manipulasi ekspresi asal. Semantik ini juga memungkinkan perbandingan rencana-rencana evaluasi query yang berbeda.

OPERASI ALJABAR RELASIONAL.

  1. Operasi Selection. adalah operasi untuk menyeleksi tupel-tupel yang memenuhi suatu predikat, dapat digunakan operator perbandingan (<,>,<=,>=,=,!=) pada predikat. Beberapa predikat

  2. Operasi projection. adalah operasi untuk memperoleh kolom-kolom tertentu. Operasi project merupakan operasi unary yang mengirim relasi argumen dengan kolom-kolom tertentu. Dikarenakan relasi adalah himpunan, maka baris-baris duplikasi dihilangkan.

  3. Operasi Cartesian-product(x). adalah operasi untuk menghasilkan tabel hasil perkalian kartesian.

  4. Operasi Union. adalah operasi untuk menghasilkan gabungan tabel dengan syarat kedua tabel memiliki atribut yang sama, yaitu domain atribut ke-i masing-masing tabel harus sama.

  5. Operasi Set Difference. adalah operasi untuk mendapatkan tabel pada suatu relasi, tapi tidak ada pada relasi yang lain.

  R-S = {x|x ER dan X !E S}. Operasi ini dapat dilaksanankan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan, artinya adalah atribut R yang tidak ada di S akan ditampilkan, sedangkan yang sama tidak ditampilkan.

  6. Operasi Rename. adalah operasi untuk menyalin tabel lama ke dalam tabel yang baru.

  7. Operasi Set-Intersection. adalah termasuk kedalam operator tambahan, karena operator ini dapat diverifikasi dari

  8. Operasi Theta join. adalah operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria\syarat.

  9. Operasi Natural Join. adalah operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama.

  10. Operasi Outer – join. adalah operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama.

  11. Operasi Devision. adalah operasi yang banyak digunakan dalam query yang mencakup frase “setiap” atau “untuk semua”, operasi ini juga merupakan pembagian atas tupel-tupel dari dua relasi.

  Beberapa penjelasan dan conoth dari operasi relasional:

  Definisi: Notasi : σ • p (r)

  • p disebut sebgai predikat selection Definisi selection : •

  σ p (r) = {t | t ε r and p(t)} Di mana p adalah sebuah formula dalam kalkulus proposisi yang terdiri atas term yang dihubungkan dengan Setiap term adalah satu dari :

  <attribute> op <attribute> or <constant> di mana op adalah salah satu dari : =, ≠, >, ≥. <. ≤ Contoh selection: • Definisi:

  • Notasi :

  Π A1, A2, …, Ak (r) di mana A

  1 , A 2 adalah nama atribut, dan r adalah nama relasi.

  Hasil operasi project didefinisikan sebagai relasi dengan kolom sebanyak k yang • diperoleh dengan menghapus kolom yang tidak termasuk dalam kriteria.

  Duplicate rows dihilangkan dari relasi hasil, karena relasi adalah sebuah himpunan. •

  Contoh : apabila kita ingin memperoleh informasi dari relasi account, tetapi tanpa atribut •

  branch-name :

  Π account-number, balance (account) Definisi: Notasi: r U s • Definisi operasi union : • r U s = {t | t ε r or t ε s} Kriteria valid r U s : •

  • – 1. r, s harus mempunyai arity sama (jumlah atributnya sama)
  • – 2. Domain atribut harus kompatibel (misal : kolom kedua relasi r mempunyai tipe data yang sama dengan kolom kedua relasi s)

  Contoh : untuk mencari semua customer yang mempunyai account atau pinjaman : • Π customer-name (depositor) U Π customer-name (borrower).

d) Contoh Operasi Set Difference

  Definisi: Notasi : r – s • Definisi : r – s = {t | t ε r and t ∉ s} • Operasi set difference harus dilakukan pada relasi yang kompatibel : •

  • r dan s harus mempunyai arity sama – Domain atribut r dan s harus kompatibel.

e) Contoh Operasi Cartesian-Product

  Definisi: Notasi : r x s • Definisi : r x s = {t q | t ε r and q ε s} • Asumsi atribut r(R) dan s(S) disjoint. (Yaitu R S = ∅). •

  Memungkinkan untuk memberi nama dan mengacu hasil dari operasi ekspresi aljabar relasional. Memungkinkan untuk mengacu sebuah relasi dengan lebih dari satu nama. Contoh : ρ x (E) mengembalikan ekspresi E dengan nama. Jika ekspresi aljabar relasional E mempunyai arity n, maka ρ x (A

  1 , A 2 , …, A n ) (E) mengembalikan hasil ekspresi E dengan nama X, dan atributnya direname menjadi A , A , …., A .

  1 2 n

  Operator ini digunakan untuk memberi nama pada hasil atau output query, keluaran statement selection, dan untuk melihat query pada beberapa waktu. Operator ini dilambangkan dengan rho (ρ) cara penulisan umum operator ini adalah

  ρ (R )

  

s(B1, B2, B3,….Bn)

  dimana ρ adalah operasi RENAME, S adalah nama relasi yang baru, B1,B2,B3,.. Bn adalah nama atribut(kolom) yang baru, dan R adalah relasi atau tabel yang atributnya kita pilih.

  Sebagai contoh, kita akan memilih Date of Birth dan Employee Number dan menamainya ulang dengan ‘Tanggal_Lahir’ dan ‘Nomor_Pegawai’ dari relasi EMPLOYEE ρ s(Birth_Date, Employee_Number) (EMPLOYEE ) ← ∏ dob, empno (EMPLOYEE ) arah panah yang ditulis di atas berarti pertama kali, kita mendapatkan hasil oerasi PROJECT di bagian kanan panah, kemudian mengaplikasikan operasi RENAME pada hasil di bagian kanan panah. Dalam SQL, dapat dituliskan sebagai berikut:

  

SELECT dob AS ‘Tanggal_Lahir’, empno AS ‘Nomor_Pegawai’ FROM EMPLOYEE

Operasi-operasi Tambahan:

   IntersectionSet intersection / Intersection (∩) termasuk ke dalam operator tambahan, karena operator

  ini dapat diderivikasi dari operator dasar seperti berikut: A ∩ B = A - ( A – B ), atau A ∩ B = B - ( B – A )

  Operasi set intersection berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi dan juga ada dalam tabel relasi lainnya. Simbol “∩“ digunakan untuk menunjukkan operasi

  set intersection.

  Contoh penggunaan operasi set intersection : Tampilkan NIP (dari tabel Dosen) Set Intersection dengan NIP (dari tabel Mengajar). Aljabar relasional: π (Dosen) ∩ π (Mengajar)

NIP NIP

  Hasil: NIP 95002 95003 95004

  Natural Join

  Operasi natural join berfungsi untuk menggabungkan operasi selection dan cartesian

  product menjadi hanya 1 operasi saja. Simbol “

  ⋈“ digunakan untuk menunjukkan operasi

  natural join. Operasi natural join hanya menghasilkan tupel yang mempunyai nilai yang sama pada 2 atribut yang bernama sama pada 2 tabel relasi yang berbeda.

  Contoh penggunaan operasi natural join : Tampilkan seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar. Aljabar relasional : Matakuliah ⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk Mengajar Hasil: Kd_mk Nama_mk Sks NIP Kelas MKB3 BDT 3 95002 A MKB4 ASD 3 95002 A MPK1 PKN 2 95003 A MPK1 PKN 2 95003 B MKB4 ASD 3 95004 B

   Theta Join

  Operasi theta join berfungsi untuk mengkombinasikan tupel dari 2 tabel relasi dimana kondisi dari kombinasi tersebut tidak hanya nilai dari 2 atribut bernama sama, tetapi kondisi yang diinginkan juga bisa menggunakan operator relasional (≤, <, =, >, ≥). Operasi theta join Tampilkan seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar. Aljabar relasional : Matakuliah Mengajar

  ⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk Hasil: Kd_mk Nama_mk Sk NIP Kd_mk Kelas s MKB3 BDT 3 9500 MKB3 A

  2 MKB4 ASD 3 9500 MKB4 A

  2 MPK1 PKN 2 9500 MPK1 A

  3 MPK1 PKN 2 9500 MPK1 B

  3 MKB4 ASD 3 9500 MKB4 B

  4 Division Operation  Operasi ini akan menghasilkan relasi R(X) yang mengandung semua tuple t[X] dalam R(Z) yang muncul di R1 dalam kombinasi dengan setiap tuple dari R2(Y), dimana Z = X

  ∪ Y. Operasi DIVISION ini dilambangkan dengan R1(Z)

  ∻ R2(Y) Operator DIVISION ini adalah operator yang paling sulit diimplementasikan di SQL karena tidak ada perintah DIVISION yang ada. Operator DIVISION akan terlihat sebagai lawan dari CARTESIAN PRODUCT; seperti dalam matematika standard, hubungan antara pembagian dan perkalian. Maka dari itu, serangkaian perintah SQL sekarang ini harus dilengkapi dengan operator DIVISION. Sebuah contoh dari implementasi operator DIVISION ini adalah:

  Minus  Operasi ini memilih tuple ari satu relasi yang tidak ada di relasi yang lain. Misalkan ada relasi A dan B, operasi A – B dibaca operasi A MINUS B, yang menghasilkan tuple yang ada di A namun tidak ada di B. Implementasi SQL dari operasi MINUS ini adalah: MINUS RESULT ← A – B SQL Statement SELECT dob From A MINUS SELECT dob from B

  Aggregate Function  Fungsi aggregate dikenal dengan kata kunci singkatan dari nama operatornya Avg : average value Min : minimum balue Max : maximum value Sum : sum values Count: number of values

  Outer Join  Operasi ini merupakan ekstensi dari operasi join. Operasi ini menghindari adanya informasi yang hilang, dengan menghitung join, kemudian menambahkan tuple yang tidak mendapatkan pasangan kemudian mengisiskan atribut-atribut yang tidak terdefinisi menggunakan nilai null. Sebenarnya terdapat tiga jenis outer join, yaitu: Operasi ini mengambil semua tuple di sebelah kiri relasi. Tuple dari relasi sebelah kiri yang tidak memiliki pasangan dari relasi sebelah kanan akan diisi dengan nilai null.

  Right outer join  Operasi ini merupakan kebalikan dari left outer join. Operasi ini mengambil semua tuple yang berada di sebelah kanan relasi yang tidak memiliki pasangan dari relasi dari relasi sebelah kiri akan diisi dengan nilai null.

  Full outer join

   Operasi ini merupakan gabungan dari kedua operasi di atas, dengan mengisikan null pada atribut yang tidak memiliki pasangan di kedua relasi, baik yang kiri maupun yang kanan.[5] Referensi : Database System Concepts Silberschatz-Korth-Sudarshan, McGraw Hill, Fourth Edition, - 2002 http://rizarulham.wordpress.com/2009/10/16/aljabar-relasional-bahasa-pada-model-data- - relasional/