• 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 :
• 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|
• Kondisi join dalam bentuk:
• 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
nice blog kags....
BalasHapusfollow balik yah......
^^
to mach mudh
BalasHapusthanks balik buat komennya