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-
LOAN #
CUTOMER-
AMOUNT
NAME
NAME
DOWNTOWN 17
JONES
1000
REDWOOD
23
SMITH
2000
PERRYRIDGE 15
HAYES
1500
DOWNTOWN 14
JACKSON
1500
MIANUS
CURRY
500
ROUNDHILL 11
TURNER
900
POWNALL
WILLIAMS
1200
NORTHTOWN 16
ADAMS
1300
DOWNTOWN 18
JOHNSON
2000
PERRYRIDGE 25
GLENN
2500
BRIGHTON
BROOKS
2200
93
29
10
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
NAME
BRANCH CITY
DOWNTOWN BROADWAY BROOKLYN MIANUS
– ASSETS
1 ST
2000000
MANHATTAN 1000000
PERRYRIDGE 5 TH
BROOKLYN
150000
REDWOOD
NEWALK
2000000
MAIN
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 Contoh : 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. 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) c. Cartesian product ( X ) Operator dengan dua relation. Contoh : 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.
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(BRANCH-
NAME=”PERRYRIDGE” (DEPOSIT)) e. 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))
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)) 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 Merupakan operator yang melakukan operasi penggabungan terhadap tuple-tuple dari relation-relation yang dioperasikan CONTOH Relation R1
Relation R2
A
B
C
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
Relation R2
B
C
D
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 = R1R2 A
B
a
b
e
d
b
c
e
d
e
d