Bismillah...

Aljabar Relasional

            Basis data dipahami oleh pengguna sebagai kumpulan tabel-tabel yang saling ber relasi, konsep untuk akses pada basis data model relasi dapat diterapkan berdasarkan matematika aljabar relasional. 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

Operasi-operasi dasar dalam aljabar relasional

      •         Selection (g = sigma) 
            adalah memilih tupel (baris) dalam relasi yang memenuhi predikat    
            yang diberikan. σbranch-name = “Perrydge”(loan)
      Contoh :

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.
         Projection (p = phi) 
      adalah operasi semacam selection tetapi mengambil atau memilih beberapa atribut (kolom) dalam relasi.
Contoh : πloan-number,amount(loan), adalah operasi untuk menampilkan seluruh loan-number & amount tanpa branch-name
Hasil operasi tersebut adalah 

      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))
perhatikan bahwa sebagai argumen dari operasi project adalah sebuah ekspresi untuk suatu relasi.

         Union (U = gabungan) 
      adalah menghasilkan semua tupel yang berada di kedua relasi.
Contoh :
πcustomer-name(borrower) U πcustomer-name(depositor)

       Hasil query yang union di damping adalah :
       
       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.
  
         Set different (- =  minus) 
      adalah menghasilkan relasi dengan tupel-tupel yang berada pada relasi kesatu, tetapi tidak ada pada relasi yang kedua.
Contoh untuk menemukan semua nasabah bank yang mempunyai account tetapi tidak mempunyai loan, ditulis : πcustomer-name(depositor) - πcustomer-name(borrower)


      •         Joint (X = cross) 
            adalah tupel t adalah hasil operasi joint antara r dan s jika t memenuhi beberapa tupel di r 
            dalam skema r dan beberapa tupel dalam skema s.

      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].

     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)

  
        ·         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)))
       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



    ·       Operasi Tambahan Aljabar Relasional
Tujuan :
Penyederhanaan penulisan query dalam Aljabar Relasional


 > Operasi Set-Intersection : Digunakan untuk menyatakan / mendapatkan irisan ( kesamaan anggota ) dari dua buah kelompok data dari suatu tabel.
   Rumus :
     E1 ∩ E2
Tampilkan nama, jalan dan kota yang ditempati mahasiswa dan dosen.
Penyelesaian :
   >> Set-Difference
   ∏ jalan, kota (mahasiswa) – (∏ jalan, kota (mahasiswa)  - ∏ jalan, kota (dosen) )
   >> Set-Intersection  
   ∏ jalan, kota (mahasiswa) ∩ ∏ jalan, kota (dosen) 


> Operasi Natural Join
Rumus :
    E1  |X| E2


Tampilkan nama, kode_matkul nilai
 E1 = Mahasiswa 
 E2 = Nilai
   >> Cartesian Product  :
∏ nama, kode_matkul, nilai (δ mahasiswa.nim=nilai.nim (mahasiswa X nilai) )
   >> Natural Join :
∏ nama, kode_matkul, nilai ( mahasiswa |X| nilai )


> Operasi Divisi,Simbol : ÷
Tampilkan nama barang dan sub total penjualan pada tanggal =‘2011-11-11’
     E1 = penjualan
     E2 = detail_penjualan
     E3 = barang
E1 = ∏ kode_jual(δtgl_jual=‘2011-11-11’(penjualan) )
E2 = ∏ nama_barang, (jumlah * total) subtotal (barang |X| detail_jual )
   
 Maka : 
   E1 ÷ E2


> Operasi Assigment ,  simbol <- : Digunakan untuk menuliskan ekspresi aljabar dalam sebuah variabel relasi temporer


Menampilkan indeks_nilai tertinggi  yang diperoleh mahasiswa.
∏nilai.indeks_nilai(nilai) - ∏.nilai.indeks_nilai(δ nilai.indeks_nilai < n.indeks_nilai (nilai X ρn (nilai) ) )
 Dengan Operasi Assignment :
 temp1 <- ∏nilai.indeks_nilai(nilai) 
 temp2 <- ∏.nilai.indeks_nilai(δ nilai.indeks_nilai < n.indeks_nilai (nilai X ρn (nilai) ) )
 hasil <- temp1 – temp2
-----------------------------
yenikustiyahningsih.files &sumber lain