Pertemuan 6 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 a b * Intersection atau irisan ( ) Intersection dari relasi A dan B dinyatakan sebagai A B a b
* Difference Difference dari relasi A dan B dinyatakan dengan A - B 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: 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 RELATION : BORROW BRANCH- NAME LOAN # CUTOMER- NAME AMOUNT DOWNTOWN 17 JONES 1000 REDWOOD 23 SMITH 2000 PERRYRIDGE 15 HAYES 1500 DOWNTOWN 14 JACKSON 1500 MIANUS 93 CURRY 500 ROUNDHILL 11 TURNER 900 POWNALL 29 WILLIAMS 1200 NORTHTOWN 16 ADAMS 1300 DOWNTOWN 18 JOHNSON 2000 PERRYRIDGE 25 GLENN 2500 BRIGHTON 10 BROOKS 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 GLENN SANDHILL WOODSIDE BROOKS SENATOR BROOKLYN GREEN WALNUT STAMFORD RELATION : BRANCH BRANCH ADDRESS BRANCH ASSETS NAME CITY DOWNTOWN BROADWAY BROOKLYN 2000000 MIANUS 1 ST MANHATTAN 1000000 PERRYRIDGE 5 TH BROOKLYN 150000 REDWOOD MAIN NEWALK 2000000
OPERATOR DASAR a. Selection ( ) Lower Case Omega Operasi selection menyeleksi tuple-tuple pada sebuah relation yaitu tuple-tuple yang memenuhi predicate/syarat yang sudah ditentukan sebelumnya Mencari tiuple-tuple dari Realtion BORROW, yang isi atributnya : BRANCH NAME = PERRYRIDGE Relation Algebranya : BRANCH NAME = PERRYRIDGE (BORROW) 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. 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) c. Cartesian product ( X ) Operator dengan dua relation. Untuk mencari data customer serta kota tempat tinggalnya dari customer-customer 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))) d. Union ( ) Akan membentuk relational baru dengan tuple-tuple yang terdapat di relational r1 atau r2, atau tuple-tuple yang terdapat di kedua relation tsb.
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( BRANCH- NAME= PERRYRIDGE (DEPOSIT)) e. Set diference ( - ) Akan membentuk relational baru dengan tuple-tuple yang terdapat direlation r1 dan tidak terdapat di relation r2 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)) OPERATOR TAMBAHAN 1. SET INTERSECTION ( ) Adalah Binary Operation untuk membentuk sebuah relation baru dengan tuple tuple yang berasal dari kedua relation yang dihubungkan. 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)) 2. THETA JOIN Operator yang menggabungkan operasi cartesian product dengan operasi selection. 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 Merupakan operator yang melakukan operasi penggabungan terhadap tuple-tuple dari relation-relation yang dioperasikan CONTOH Relation R1 Relation R2 A B C a b c d b c b b f c a d B C D b c d b c e a d b 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 Relation R2 A B C D C D a b c d a b e f b c e f e d c d e d e f a b d e c e d f R = R1 R2 A a e b e e B b d c d d