Minggu, 19 September 2010

Aljabar relasional

Aljabar Relasional
•    Merupakan salah satu dari 2 bahasa query formal yang terkait dengan model  relasional.
•    Merupakan bahasa prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.
•    Operator dasar :
a.    selection
b.    projection
c.    operasi himpunan :
       1.    Union
       2.     Intersection
       3.    Set-difference
       4.    Cross-product
d.    Join
       1.    Tetha Join
       2.    Natural Join
       3.    Conditional Join
e.    Renaming
f.    division
•    Operator yang melibatkan dua atau lebih relasi sebagai input akan menghasilkan satu relasi baru sebagai output.



a.    Selection
•    Notasi : σp(r) digunakan untuk menunjukkan operasi select
•    p disebut sebagai predikat selection. Predikat muncul sebagai subscript dari σ dan kondisi yang diinginkan yang ditulis dalam predikat.
•    Argumen diberikan dalam tanda kurung yang mengikuti σ dan berisi tabel relasi yang dimaksud.
•    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  ^(or),  v (and),  ¬( not)
Setiap term adalah satu dari : op or di mana op adalah salah satu dari : =, ≠, >, ≥. <. ≤.
•    Contoh soal penggunaan operasi selection :
Temukan transaksi yang dilakukan member yang bertipe checking dari table account!
jawab
σTYPE = “checking”ACCOUNT
Perintah diatas berarti memilih tupel-tupel dari tabel ACCOUNT yang memiliki atribut TPYE bernilai checking.
NO    MEMBER    SALDO    TYPE    ACCOUNT
10    D. Jorge    15.000.000    Checking
11    K. Andre    11.200.000    Saving
12    S. James    19.000.000    Saving
13    W. Pablo    16.000.000    Saving

            Hasil dari operasi diatas adalah :
NO    MEMBER    SALDO    TYPE    ACCOUNT
10    D. Jorge    15.000.000    Checking

b.    Projection
•    Notasi :  ΠA1, A2, …, Ak (r)
di mana A1, A2 adalah nama atribut, dan r adalah nama relasi dan Simbol phi “Π” digunakan untuk menunjukkan operasi project.
•    Predikat muncul sebagai subscript dari Π dan hanya nama atribut yang diinginkan yang ditulis dalam predikat.
•    Argumen diberikan dalam tanda kurung yang mengikuti Π dan berisi tabel relasi yang dimaksud.
•    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 soal operasi  projection :
Dapatkan operasi yang dapat menampilakan seluruh loan number dan amount tanpa branch-namenya !
Jawab :
Πloan-number,amount(loan), adalah operasi untuk menampilkan seluruh loan number dan amount tanpa brach-namenya
Relasi loan
Branche-name     Loan-number    Amount
Jakarta                      B-11           2000
Bandung                    B-17           3000
Surabaya                   L-25          2900
Malang                      N-18         4000
Seandainya dinginkan semua daftar loan-number dan amount, tanpa branch-name, dengan operasi project maka hasil operasinya adalah :
Loan-number    Amount
B-11    2000
B-17    3000
L-25    2900
N-18    4000
     





c.    Operasi himpunan
1.    Union
•    Notasi: R U S
•    R È S Menghasilkan suatu relasi yang berisi instan – instan yang terjadi dalam suatu relasi R atau suatu relasi S. R dan S haruslah Union – Compatible dan skema hasil identik dengan skema R.
•    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)
3. Field yang berurutan, dalam urutan dari kiri ke kanan, memiliki domain yang sama.
•    Contoh soal penggunaan operasi union :
Tampilakanlah seluruh daftar nama dari gabungan table_1 dan table_2 dengan opersi union !
Jawab :
Tabel_1
NIM               Nama               Kelas
10953342    Risa Putri            PTI09
10953343    Ike Rahmawati    PTI09
10953344    Aninda Styarini    PTI09
Tabel_2
NIM             Nama                  Kelas
10953345    Anang Amir        PTI09
10953346    Sasa Sania          PTI09
10953344    Aninda Styarini    PTI09
dan dari 2 tabel relasi diatas dilakukan operasi union sebagai berikut :
Π Nama(Tabel_1) ∪ Π Nama(Tabel_2)
Perintah diatas berarti menggabungkan hasil dari operasi project terhadap Tabel_1 dengan hasil dari operasi project terhadap Tabel_2.
Hasil dari operasi diatas adalah :
Risa Putri
Ike Rahmawati
Aninda Styarini
Sasa Sania
Anang Amir
Perhatikan bahwa nama Aninda Styarini hanya muncul sekali pada hasil operasi, ini karena relasi adalah set sehingga nilai duplikat dihilangkan.

 2. Intersection
•    R Ç S menghasilkan suatu relasi yang berisi instan – instan yang terjadi baik pada R dan S.
•    Relasi R dan S harus Union – Compatible dan skema hasil identik dengan skema R.
•    Operasi 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 soal penggunaan operasi intersection :
Temukan nama mahasiswa yang sama dan berapa pada table_1 dan table_2 !
Jawab :
Π Nama(Tabel_1) ∩ Π Nama(Tabel_2)
Tabel_1
NIM             Nama                Kelas
10953342    Risa Putri            PTI09
10953343    Ike Rahmawati    PTI09
10953344    Aninda Styarini    PTI09
Tabel_2
NIM                Nama              Kelas
10953345    Anang Amir         PTI09
10953346    Sasa Sania          PTI09
10953344    Aninda Styarini    PTI09

Perintah diatas berarti mendapatkan nilai atribut Nama yang terdapat di Tabel_1 dan juga terdapat di Tabel_2. Hasil dari operasi diatas adalah :

Aninda Styarini
3.    Set- different
•    Notasi : R – S
•    Definisi : R – S = {t | t ε R and t ∉ S}
•    R – S menghasilkan suatu relasi yang berisi instan – instan yang terjadi pada R tetapi tidak terjadi pada S. Relasi.
•    Operasi set difference berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya. Simbol “-“ digunakan untuk menunjukkan operasi set difference.
•    Operasi set difference harus dilakukan pada relasi yang kompatibel :
1    R dan S harus mempunyai arity sama
2    Domain atribut R dan S harus kompatibel
•    Contoh soal penggunaan operasi set difference :
Dapatkan nama mahasiswa yang hanya terdapat pada table_1 Dan tidak berada pada table _2 !
Jawab :
•    Tabel_1
NIM            Nama                   Kelas
10953342    Risa Putri             PTI09
10953343    Ike Rahmawati    PTI09
10953344    Aninda Styarini    PTI09
•    Tabel_2
NIM                Nama              Kelas
10953342    Risa Putri             PTI09
10953346    Sasa Sania            PTI09
10953344    Aninda Styarini    PTI09
Π Nama(Tabel_1) – Π Nama( Tabel_2)
Perintah diatas berarti mendapatkan nilai atribut Nama yang terdapat di          Tabel_1, tapi tidak terdapat di Tabel_2.
 Hasil dari operasi diatas adalah :
Risa Putri
Ike Rahmawati
4.    Cross-product
•    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 = ∅).
•    Jika atribut R(R) dan R(S) tidak disjoint, maka harus dilakukan renaming.
•    R ´ S menghasilkan suatu relasi yang skemanya berisi semua field R (dalam urutan yang sama dengan field R) diikuti dengan semua field S (dalam urutan yang sama dengan field S).
•    Operasi Cross – Product disebut juga Cartesian – Product.
•    Contoh Soal penggunaan operasi cartesian product :
Kombinasikan seluruh data dari table_1 dan tabel_MK !
Jawab:
•    Tabel_1
NIM             Nama                  Kelas
10953342    Risa Putri            PTI09
10953343    Ike Rahmawati    PTI09
10953344    Aninda Styarini    PTI09
•    Tabel_MK
Kode_mk    MK                           SKS
KD213     Basis Data                      2
KT341     Praktikum Basis Data      3
Tabel_1 x Tabel_MK⟹ tabel relasi baru
Perintah diatas berarti mengkombinasikan seluruh tupel yang ada pada Tabel_1 dengan Tabel_MK. Hasil dari operasi diatas adalah :
NIM                  Nama           Kelas      Kode_mk    MK                              SKS
10953342    Risa Putri            PTI09    KD213    Basis Data                          2
10953342    Risa Putri            PTI09    KT341    Praktikum Basis Data          3
10953343    Ike Rahmawati    PTI09    KD213    Basis Data                         2
10953343    Ike Rahmawati    PTI09    KT341    Praktikum Basis Data         3
10953344    Aninda Styarini    PTI09    KD213    Basis Data                         2
10953344    Aninda Styarini    PTI09    KT341    Praktikum Basis Data        3
d.    Join
1.    Tetha join
•    Untuk mengkombinasikan baris-baris yang berhubungan dari dua relasi menjadi baris-baris tunggal.
•    Operasi join dengan kondisi join secara umum disebut dengan Theta Join.
•    Kondisi join yang operator pembandingannya berupa =, disebut dengan Equijoin
•    Notasi: R |x| S
•    Kondisi join dalam bentuk:  AND AND … AND    
•    Operator pembandingan:  {=, <, ≤, >, ≥, ≠}
•    Skema thetha join mirip dengan croos-product hanya diberi kondisi tertentu.
•    Lebih sedikit tupel yang dihasilkan, dibanding dengan menggunakan operasi cross-product, karena komputasinya lebih efisien.
•    Contoh operasi thetha join :
Kombinasikan sid pada tabel_1 dengan table_2 dan jadikanlah menjadi data tunggal !
Jawab:
S1 X S1.sid
( Sid )    Nama     Rating    Umur
 12       Diana          6          19
12        Diana          6          19
32       Rio               9         18
32       Rio               9         18
22       Rasti            5          20
22      Rasti             5          20

( Sid )    Bid    Hari
44    100    11/11/2010
54    102    12/12/2010
44    100    11/11/2010
54    102    12/12/2010
44    100    11/11/2010
54    102    12/12/2010
   
Maka hasil perasinya adalah :
( Sid )    Nama    Rating         Umur    ( Sid )    Bid    Hari
12    Diana             6               19         54        102    12/12/2010
32    Rio                 9              18          54       102    12/12/2010
2.    Natural join
•    Yakni operasi equijoin yang mana yang mana pasangan attribut-attribut yang di’join’kan memiliki nama yang sama. Jika tidak sama, perlu dilakukan pengubahan nama attribut (rename) terlebih dahulu
•    Notasi:
        R * (),() S
•    List 1 adalah attribut-attribut R dan list 2 adalah attribut-attribut S. List 1 dan list 2 membentuk pembandingan equality dari pasangan attribut yang memiliki nama yang sama, yang mana semua pembandingan tersebut di ‘AND’ kan
•    Contoh penggunaan operasi natural join :

Π NIM,Kode_MK,MK(MHS ⋈ NILAI)
Perintah diatas berarti mendapatkan nilai dari operasi project dengan predikat NIM, Kode_MK, dan MK dan argumen hasil dari operasi natural join antara tabel MHS dengan tabel NILAI.
•    Tabel_1
NIM                 Nama            Kelas
10953342    Risa Putri            PTI09
10953343    Ike Rahmawati    PTI09
10953344    Aninda Styarini    PTI09
•    Tabel_MK
Kode_mk    MK                          SKS
KD213    Basis Data                    2
KT341    Praktikum Basis Data    3
•    MHS
NIM    NILAI
10953342    89
10953343    90
10953344    86

Hasil dari operasi natural join diatas adalah
NIM    Kode_MK    NILAI
10953342    KD213    89
10953343    KT341    90
10953344    KD213    86
10953343    KD213    88
10953344    KT341    90

3.    Conditional-join
•    Kasus khusus dari condition join dimana kondisi c hanya berisi kesamaan (nilai yang sama dari kedua relasi)
•    Skema conditional join hampir sama dengan cross-product, tapi hnay berisi satu copy filed yang mempunyai kesamaan dari field yang sudah ditentukan.
•    Contoh operasi conditional – join :
Temukan nilai data yang sama dari table_1 dan table _2 !
Jawab :
S1 X sidR1
 ( Sid )    Nama     Rating    Umur
 12    Diana                 6    19
12    Diana                  6    19
32    Rio                     9    18
32    Rio                    9    18
22    Rasti                  5    20
22    Rasti                 5    20

( Sid )    Bid    Hari
44    100    11/11/2010
54    102    12/12/2010
44    100    11/11/2010
54    102    12/12/2010
44    100    11/11/2010
54    102    12/12/2010

 Hasil dari operasinya adalah
Sid    Nama    Rating    Umur    Bid    Hari
12    Diana        6    19    44    100
22    Rasti         5    20    54    102
e.    Renaming
•    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 (A1, A2, …, An) (E)
•    mengembalikan hasil ekspresi E dengan nama X, dan atributnya direname menjadi A1, A2, …., An.
•    Dalam operasi himpunan Cross – Product, bisa menimbulkan terjadinya Konflik Penamaan, karena Cross – Product bisa menghasilkan suatu relasi dari 2 relasi dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama yang sama.
•    Operator Renaming (r) digunakan untuk menghindari terjadinya Konflik Penamaan tersebut.
•    Contoh soal dari operasi renaming
Salinlah table baru dengan nama DosenNew dari table Dosen, dimana jenis kelaminnya adalah ‘Pria’.
    r  DosenNew ( s jenis kelamin=’Pria’) (Dosen)) 
Dosen
Nama                    Jenis kelamin              Mata kuliah
Andik nugroho              Pria               Bahasa inggris teknik
Nindia rahmaputri       Wanita             Arsitektur dan organisasi komputer
Dodi ardianto                Pria               Matematika teknik
Nursida armawati        Wanita             Basis data
Maka hasil dari operasi renaming ini adalah
DosenNew
Nama                      Jenis kelamin     Mata kuliah
Andik nugroho               Pria            Bahasa inggris teknik
Nindia rahmaputri           Pria            Arsitektur dan organisasi komputer
Dodi ardianto                  Pria           Matematika teknik
Nursida armawati            Pria           Basis data


f.    Divison
•    Operasi division berfungsi untuk query yang memasukkan frase “untuk semua/seluruh”. Simbol “÷“ digunakan untuk menunjukkan operasi division.
•    Contoh penggunaan operasi division :
•    Misalkan terdapat 3 tabel relasi bernama ACCOUNT, BRANCH, dan DEPOSITOR seperti dibawah :
dan dari 3 tabel relasi dibawah lakukan operasi division yang mendapatkan branche-name yang tinggal dikota ciamis !
jawab :
Π customer-name,branch-name(DEPOSITOR ⋈ ACCOUNT) ÷ Π branch-name(σbranch-city=”ciamis”(BRANCH))            
Branche-name     account-number    Balance
Jakarta                         B-11            2000
Bandung                       B-17            3000
Surabaya                      L-25            2900
Malang                        N-18             4000
 ACCOUNT                 
                                            




                     BRANCH
Branche-name     Brance-town        Assets
Jakarta                    Ciamis              12000000
Bandung                  Tanjung            43000000
Surabaya                Tanjung perak    39000000
Malang                  Puncak tidar        41000000








                      DEPOSITOR
Customer name    Account-number
Anindia                    B-11
Rosyta                      B-17
Monika                     L-25
Anjel                        N-18
Dengan asumsi operasi project awal adalah relasi r1 dan akhir adalah r2, perintah diatas berarti mendapatkan nama pelanggan yang muncul pada hasil relasi r2 untuk semua nama cabang hasil relasi r1. Hasil dari operasi diatas adalah :
Anindia



2 komentar:

anybody yang mau komentar no problem, gak masalah smua .

monggo komentar. . . . .