BAHASA QUERY FORMAL BAHASA QUERY FORMAL ALJABAR RELATIONAL Adalah kumpulan operasi terhadap relasi, dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru OPERATOR YANG DIGUNAKAN • OPERATOR HIMPUNAN * Union atau gabungan ( ∪ ) Union dari relasi A dan B dinyatakan sebagai A ∪ B Himpunan semua elemen(Tuple) baik dari relasi A atau relasi B atau keduaduanya terdapat kerangkapan data Contoh: A = {1,2,3} B = {5,7} A U B ={1,2,3,5,7} a * b Intersection atau irisan ( ∩ ) Intersection dari relasi A dan B dinyatakan sebagai A ∩ B Himpunan semua elemen atau tuple dari relasi A, Seklaigus dari relasi B Contoh: A = {1,2,3} B = {2,3,5,7} A ∩ B ={2,3} a b D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 1 * Difference Difference dari relasi A dan B dinyatakan dengan A - B Himpunan semua elemen atau tuple dari relasi A, tetapi bukan dari relasi B Contoh: A = {1,2,3} B = {3,5,7} A ∩ B ={1,2} a b Cartesian product Product cartesian dari relasi A dan B dinyatakan dengan A X B contoh : A = { 1,2,3} B = { 5,7 } A X B = { ( 1,5), (1,7), ( 2,5), (2,7), (3,5),(3,7) } • OPERATOR RELATIONAL Restrict ( σ ) adalah Pemilihan tupel atau record Project ( π ) adalah pemilihan attribute atau field Divide ( ÷ ) adalah membagi Join ( θ ) adalah menggabungkan RELATIONAL ALGEBRA Operator pada relational algebra dibagi menjadi 2 kelompok, : 1. Operator dasar untuk fundamental operational 2. Operator tambahan untuk additional operasional Tabel dibawah ini adalah contoh untuk mengerjakan perintah – perintah Relation Algebra: Relasi Matakuliah KD_MK NAMA_MK 207 LOGIKA & ALGO 310 STRUKTUR DATA 360 SISTEM BASIS DATA 545 IMK 547 APSI 305 PEMR.PASCAL 545 DISAIN GRAFIS SKS 4 3 3 2 4 4 2 NIP 199910486 200109655 200209817 200209818 200109601 200703073 200010490 D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 2 RELATION : DEPOSIT BRANCH-NAMA ACCOUNT # CUSTOMER-NAME BALANCE DOWN TOWN 101 JOHNSON 500 MIANUS 215 SMITH 700 PERRYRIDGE 102 HAYES 400 ROUNDHILL 305 TURNER 350 PERRYRIDGE 201 WILLIAMS 900 REDWOOD 222 LINDSAY 700 BRIGHTON 217 GREEN 750 Contoh LAin RELATION : BORROW BRANCHLOAN # NAME DOWNTOWN 17 REDWOOD 23 PERRYRIDGE 15 DOWNTOWN 14 MIANUS 93 ROUNDHILL 11 POWNALL 29 NORTHTOWN 16 DOWNTOWN 18 PERRYRIDGE 25 BRIGHTON 10 CUTOMERNAME JONES SMITH HAYES JACKSON CURRY TURNER WILLIAMS ADAMS JOHNSON GLENN BROOKS AMOUNT 1000 2000 1500 1500 500 900 1200 1300 2000 2500 2200 RELATION : CLIENT EMPLOYEE – CUSTUMER – NAME NAME0 TURNER JOHNSON HATES JONES JOHNSON JOHNSON RELATION : CUSTOMER CUSTOMER – STREET CITY NAME JONES MAIN HARRISON SMITH NORTH RYE HAYES MAIN HARRISON CURRY NORTH RYE LINDSAY PARK PITTSFIELD TURNER PUTNAM STAMFORD WILLIAMS NASSAU PRINCETON ADAMS SPRING PITTSFIELD JOHNSON ALMA PALO ALTO D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 3 GLENN BROOKS GREEN SANDHILL WOODSIDE SENATOR BROOKLYN WALNUT STAMFORD RELATION : BRANCH ADDRESS BRANCH – ASSETS BRANCH – CITY NAME DOWNTOWN BROADWAY BROOKLYN 2000000 MIANUS 1 ST MANHATTAN 1000000 PERRYRIDGE 5 TH BROOKLYN 150000 REDWOOD MAIN NEWALK 2000000 OPERATOR DASAR Relation R A B C Relation S D E F a b c b g a d a f d a f c b d Selection ( σ ) Lower Case Omega Operasi selection menyeleksi tuple-tuple pada sebuah relation yaitu tuple-tuple yang memenuhi predicate/syarat yang sudah ditentukan sebelumnya Contoh : Mencari tiuple-tuple dari Realtion BORROW, yang isi atributnya : BRANCH – NAME = ‘PERRYRIDGE’ Relation Algebranya : σBRANCH – NAME = ‘PERRYRIDGE’ (BORROW) a. b. Projection ( π ) Operator projection beroperasi pada sebuah relation, yaitu membentuk relation baru dengan mengcopy atribute-atribute dan domain-domain dari relation tersebut berdasarkan argument-argument pada operator tsb. Contoh : Untuk membentuk relation baru dengan atribute-atribute BRANCH-NAME dan CUSTOMER-NAME dari relation BORROW, ditulis dengan relation algebra sebagai berikut : πBRANCH-NAME,CUSTOMER-NAME(BORROW) R[A,C] A C a c d f D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 4 c c. d Cartesian product ( X ) Operator dengan dua relation. Contoh : Untuk mencari data customer serta kota tempat tinggalnya dari customercustomer yang merupakan CLIENT dari employee ‘JOHNSON’ Contoh diatas akan menggunakan relation CLIENT dan CUSTOMER, sehingga relational Algebranya : πCLIENT.CUSTOMER-NAME,CUSTOMER.CITY (σCLIENT.CUSTOMER-NAME=CUSTOMER.CUSTOMER-NAME (σCLIENT.EMPLOYEE-NAME = “JOHNSON” (CLIENT X CUSTOMER))) Relation R X S A d. B C D E F a b c b g a a b c d a f d a f b g a d a f d a f c b d b g a c b d d a f Union ( ∪ ) Akan membentuk relational baru dengan tuple-tuple yang terdapat di relational r1 atau r2, atau tuple-tuple yang terdapat di kedua relation tsb. Contoh : Untuk mencari customer dari cabang PERRYRIDGE yang memiliki Account atau Loan atau ke-duanya, maka Relation Algebranya adalah : πCUSTOMER-NAME(σBRANCH-NAME = “PERRYRIDGE” (BORROW)) ∪ π CUSTOMER-NAME(σBRANCHNAME=”PERRYRIDGE” (DEPOSIT)) R Union S A B C a b c d a f D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 5 e. c b d b g a Set diference ( - ) Akan membentuk relational baru dengan tuple-tuple yang terdapat direlation r1 dan tidak terdapat di relation r2 Contoh :Untuk mencari Customer dari cabang PERRYRIDGE yang hanya mempunyai Account saja Relation Algebranya : πCUSTOMER-NAME(σBRANCH-NAME=”PERRYRIDGE” (DEPOSITE)) – πCUSTOMER-NAME(σBRANCH-NAME = ”PERRYRIDGE” (BORROW)) R Difference A B C a b c c b d OPERATOR TAMBAHAN 1. SET INTERSECTION ( ∩ ) Adalah Binary Operation untuk membentuk sebuah relation baru dengan tuple – tuple yang berasal dari kedua relation yang dihubungkan. Contoh : Untuk mencari Customer yang memiliki Loan dan juga Account pada Cabang PERRYRIDGE, dengan menggunakan operator Intersection, maka Relation Algebranya dapat dituliskan sebagai berikut : πCUSTOMER-NAME(σBRANCH-NAME=”PERRYRIDGE” (BOPRROW)) ∩ πCUSTOMER-NAME(σBRANCH-NAME =”PERRYRIDGE” (DEPOSITE)) R∩S(Mencari yang sama dari kedua tabel) A B C d a f 2. THETA JOIN Operator yang menggabungkan operasi cartesian product dengan operasi selection. Contoh : Untuk mencari semua customer pada cabang PERRYRIDGE yang mempunyai Loan pada cabang tersebut, sekalian mendapatkan kota tempat tinggalnya. Sehingga operasi diatas dapat ditulis dengan operator Theta Join sebagai berikut : πBORROW.CUSTOMER-NAME, CUSTOMER.CITY((BORROW⋈θ CUSTOMER)) 3. NATURAL JOIN D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 6 Merupakan operator yang melakukan operasi penggabungan terhadap tuple-tuple dari relation-relation yang dioperasikan CONTOH Relation R1 A B C Relation R2 B C D a b c b c d d b c b c e b b f a d b c a d a d b R1 ⋈ R2 A B C D a b c d a b c e d b c d d b c e c a d b 4. DIVISION Merupakan operasi pembagian atas tuple-tuple dari 2 relation Relation R1 A B C D a b c d c d a b e f e f b c e f e d c d e d e f a b d e R = R1÷R2 A B a b Relation R2 C D D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 7 e d b c e d e d D:\eri Ngajar\Sistem Basis Data 2008\Pertemuan 6 Tambahan.doc 8