42
Edit by ardiawan bagu Edit by ardiawan bagu

aljabar kalkulus dan relasional

Embed Size (px)

DESCRIPTION

file ada di komputer ane, nggak tau punya siapa juga, ane share aja biar jadi ilmu

Citation preview

Page 1: aljabar kalkulus dan relasional

Edit by ardiawan bagusEdit by ardiawan bagus

Page 2: aljabar kalkulus dan relasional

Apa itu Aljabar Relasional ?Apa itu Aljabar Relasional ?

Apa itu operator aljabar dasar, dan bagaimana mereka Apa itu operator aljabar dasar, dan bagaimana mereka dikombinasikan untuk menulis query – query kompleks ?dikombinasikan untuk menulis query – query kompleks ?

Apa itu Kalkulus Relasional ?Apa itu Kalkulus Relasional ?

Subset logika matematika apa yang digunakan di dalam Subset logika matematika apa yang digunakan di dalam kalkulus relasional, dan bagaimana digunakan untuk kalkulus relasional, dan bagaimana digunakan untuk menuliskan query ?menuliskan query ?

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 22

Page 3: aljabar kalkulus dan relasional

Bahasa QueryBahasa Query adalah bahasa yang dikhususkan untuk adalah bahasa yang dikhususkan untuk mengajukan pertanyaan atau mengajukan pertanyaan atau QueryQuery, yang melibatkan , yang melibatkan data dalam sebuah database.data dalam sebuah database.

Input dan output suatu query adalah relasi.Input dan output suatu query adalah relasi.

Query dievaluasi dengan menggunakan contoh input relasi Query dievaluasi dengan menggunakan contoh input relasi dan menghasilkan contoh output relasi.dan menghasilkan contoh output relasi.

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 33

Page 4: aljabar kalkulus dan relasional

Merupakan salah satu dari 2 bahasa query formal yang Merupakan salah satu dari 2 bahasa query formal yang terkait dengan model relasional.terkait dengan model relasional.

Memiliki operator – operator dasar aljabar :Memiliki operator – operator dasar aljabar :

-- SelectionSelection

-- ProjectionProjection

-- Operasi Himpunan (Operasi Himpunan (UnionUnion, , IntersectionIntersection, , Set – Set – DifferenceDifference, , Cross – ProductCross – Product))

-- RenamingRenaming

-- JoinJoin

-- DivisionDivision

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 44

Page 5: aljabar kalkulus dan relasional

Aljabar Relasional mencakup operator untuk memilih Aljabar Relasional mencakup operator untuk memilih ((selectionselection) baris dari satu relasi () baris dari satu relasi () dan untuk ) dan untuk

memproyeksikan (memproyeksikan (projectionprojection) kolom () kolom ().).

Contoh :Contoh :

Unit Price >= Rp. 5.000.000,-Unit Price >= Rp. 5.000.000,- (Products)(Products)

Product ID, Product NameProduct ID, Product Name (Products) (Products)

Product ID, Product NameProduct ID, Product Name ( ( Unit Price >= Rp. 5.000.000,-Unit Price >= Rp. 5.000.000,- (Products))(Products))

CountryCountry (Customers) (Customers)

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 55

Page 6: aljabar kalkulus dan relasional

Misalkan :Misalkan :

T1T1

AA BB CC DD

a1a1 b1b1 cc11 d1d1

a2a2 b1b1 cc22 d1d1

a2a2 b2b2 cc22 d1d1

a3a3 b2b2 cc33 d3d3

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 66

T2T2

AA BB CC DD

a1a1 b1b1 c1c1 d1d1

a2a2 b2b2 c1c1 d1d1

a4a4 b1b1 c2c2 d3d3

T3T3

AA EE FF

a1a1 e1e1 f1f1

a2a2 e2e2 f2f2

a3a3 e1e1 f3f3

a4a4 e2e2 f4f4

Page 7: aljabar kalkulus dan relasional

C > c1C > c1 (T1) (T1)

A, BA, B ( ( C > c1C > c1 (T1)) (T1))

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 77

AA (T1) (T1)

AA BB CC DD

a2a2 b1b1 cc22 d1d1

a2a2 b2b2 cc22 d1d1

a3a3 b2b2 cc33 d3d3

AA BB

a2a2 b1b1

a2a2 b2b2

a3a3 b2b2

AA

a1a1

a2a2

a3a3

Page 8: aljabar kalkulus dan relasional

Union (Union ())

R R S Menghasilkan suatu relasi yang berisi instan – instan S Menghasilkan suatu relasi yang berisi instan – instan yang terjadi dalam suatu relasi R atau suatu relasi S. R dan yang terjadi dalam suatu relasi R atau suatu relasi S. R dan S haruslah S haruslah Union – CompatibleUnion – Compatible dan skema hasil identik dan skema hasil identik dengan skema R.dengan skema R.

2 contoh relasi dikatakan Union – Compatible jika 2 contoh relasi dikatakan Union – Compatible jika memenuhi persyaratan :memenuhi persyaratan :

-- Memiliki jumlah field yang sama.Memiliki jumlah field yang sama.

-- Field yang berurutan, dalam urutan dari kiri ke kanan, Field yang berurutan, dalam urutan dari kiri ke kanan, memiliki memiliki domain yang sama.domain yang sama.

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 88

Page 9: aljabar kalkulus dan relasional

Intersection (Intersection ())

R R S menghasilkan suatu relasi yang berisi instan – instan S menghasilkan suatu relasi yang berisi instan – instan yang terjadi baik pada R dan S. Relasi R dan S harus yang terjadi baik pada R dan S. Relasi R dan S harus Union Union – Compatible– Compatible dan skema hasil identik dengan skema R. dan skema hasil identik dengan skema R.

Set – Difference (Set – Difference (--))

R – S menghasilkan suatu relasi yang berisi instan – instan R – S menghasilkan suatu relasi yang berisi instan – instan yang terjadi pada R tetapi tidak terjadi pada S. Relasi R yang terjadi pada R tetapi tidak terjadi pada S. Relasi R dan S harus dan S harus Union – CompatibleUnion – Compatible dan skema hasil identik dan skema hasil identik dengan skema R.dengan skema R.

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 99

Page 10: aljabar kalkulus dan relasional

Cross – Product (Cross – Product ())

R R S menghasilkan suatu relasi yang skemanya berisi S menghasilkan suatu relasi yang skemanya berisi semua field R (dalam urutan yang sama dengan field R) semua field R (dalam urutan yang sama dengan field R) diikuti dengan semua field S (dalam urutan yang sama diikuti dengan semua field S (dalam urutan yang sama dengan field S).dengan field S).

Operasi Cross – Product disebut juga Operasi Cross – Product disebut juga Cartesian – Cartesian – ProductProduct..

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1010

Page 11: aljabar kalkulus dan relasional

T1 T1 T2 T2

T1 T1 T2 T2

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1111

T1 – T2T1 – T2

AA BB CC DD

a1a1 b1b1 cc11 d1d1

aa22 b1b1 cc22 d1d1

a2a2 b2b2 c1c1 d1d1

aa22 b2b2 cc22 d1d1

aa33 b2b2 cc33 d3d3

a4a4 b1b1 c2c2 d3d3

AA BB CC DD

a1a1 b1b1 cc11 d1d1

AA BB CC DD

a2a2 b1b1 cc22 d1d1

a2a2 b2b2 cc22 d1d1

a3a3 b2b2 cc33 d3d3

Page 12: aljabar kalkulus dan relasional

T2 T2 T3 T3

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1212

((AA)) BB CC DD (A)(A) EE FF

a1a1 b1b1 c1c1 d1d1 a1a1 e1e1 f1f1

a1a1 b1b1 c1c1 d1d1 a2a2 e2e2 f2f2

a1a1 b1b1 c1c1 d1d1 a3a3 e1e1 f3f3

a1a1 b1b1 c1c1 d1d1 a4a4 e2e2 f4f4

a2a2 b2b2 c1c1 d1d1 a1a1 e1e1 f1f1

a2a2 b2b2 c1c1 d1d1 a2a2 e2e2 f2f2

a2a2 b2b2 c1c1 d1d1 a3a3 e1e1 f3f3

a2a2 b2b2 c1c1 d1d1 a4a4 e2e2 f4f4

a4a4 b1b1 c2c2 d3d3 a1a1 e1e1 f1f1

a4a4 b1b1 c2c2 d3d3 a2a2 e2e2 f2f2

a4a4 b1b1 c2c2 d3d3 a3a3 e1e1 f3f3

a4a4 b1b1 c2c2 d3d3 a4a4 e2e2 f4f4

Page 13: aljabar kalkulus dan relasional

Dalam operasi himpunan Cross – Product, bisa menimbulkan Dalam operasi himpunan Cross – Product, bisa menimbulkan terjadinya terjadinya Konflik PenamaanKonflik Penamaan, karena Cross – Product bisa , karena Cross – Product bisa menghasilkan suatu relasi dari 2 relasi dengan skema yang menghasilkan suatu relasi dari 2 relasi dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama sama, sehingga skema hasil akan muncul field dengan nama yang sama.yang sama.

Operator Renaming (Operator Renaming () digunakan untuk menghindari ) digunakan untuk menghindari terjadinya Konflik Penamaan tersebut.terjadinya Konflik Penamaan tersebut.

Ekspresi Renaming :Ekspresi Renaming :

Dimana R = Relasi, F = Daftar Renaming, E = Aljabar Dimana R = Relasi, F = Daftar Renaming, E = Aljabar RelasionalRelasional

)))(),((( EFR

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1313

Page 14: aljabar kalkulus dan relasional

(Temp (1 (Temp (1 A_1, 5 A_1, 5 A_2), T2 A_2), T2 T3) T3)

AA_1_1 BB CC DD A_2A_2 EE FF

a1a1 b1b1 c1c1 d1d1 a1a1 e1e1 f1f1

a1a1 b1b1 c1c1 d1d1 a2a2 e2e2 f2f2

a1a1 b1b1 c1c1 d1d1 a3a3 e1e1 f3f3

………………

………………

………………

a4a4 b1b1 c2c2 d3d3 a2a2 e2e2 f2f2

a4a4 b1b1 c2c2 d3d3 a3a3 e1e1 f3f3

a4a4 b1b1 c2c2 d3d3 a4a4 e2e2 f4f4

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1414

Page 15: aljabar kalkulus dan relasional

Merupakan operasi yang digunakan untuk menggunakan Merupakan operasi yang digunakan untuk menggunakan informasi dari dua atau lebih relasi ( ).informasi dari dua atau lebih relasi ( ).

Condition JoinCondition Join

EquijoinEquijoin

Natural JoinNatural Join

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1515

Page 16: aljabar kalkulus dan relasional

Condition Join identik dengan Selection Condition. Bentuk Condition Join identik dengan Selection Condition. Bentuk operasinya yakni :operasinya yakni :

R R cc S = S = cc (R (R S) S)

Jadi, Condition Join ditentukan untuk menjadi sebuah Cross Jadi, Condition Join ditentukan untuk menjadi sebuah Cross – Product yang diikuti dengan satu selection.– Product yang diikuti dengan satu selection.

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1616

Page 17: aljabar kalkulus dan relasional

Satu kasus khusus yang biasa terjadi pada operasi join R Satu kasus khusus yang biasa terjadi pada operasi join R S adalah pada saat condition join hanya terdiri dari S adalah pada saat condition join hanya terdiri dari equality dari bentuk equality dari bentuk R.name1 = S.name1R.name1 = S.name1, yakni equality , yakni equality antara 2 field dalam R dan S. Operasi join seperti ini antara 2 field dalam R dan S. Operasi join seperti ini disebut disebut EquijoinEquijoin..

Skema hasil dari equijoin yang berisi field R (dengan nama Skema hasil dari equijoin yang berisi field R (dengan nama dan domain yang sama seperti di dalam R) diikuti dengan dan domain yang sama seperti di dalam R) diikuti dengan field S yang tidak muncul di dalam condition join. Jika field S yang tidak muncul di dalam condition join. Jika himpunan field dalam relasi hasil itu memasukkan 2 field himpunan field dalam relasi hasil itu memasukkan 2 field yang mewarisi nama dari R dan S, maka relasi hasilnya yang mewarisi nama dari R dan S, maka relasi hasilnya tidak diberi nama.tidak diberi nama.

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1717

Page 18: aljabar kalkulus dan relasional

Kasus selanjutnya dari operasi join R S adalah satu equijoin Kasus selanjutnya dari operasi join R S adalah satu equijoin dimana equality ditentukan pada semua field yang dimana equality ditentukan pada semua field yang mempunyai nama sama dalam R dan S. Dalam kasus ini, kita mempunyai nama sama dalam R dan S. Dalam kasus ini, kita dapat mengabaikan condition join, defaultnya adalah dapat mengabaikan condition join, defaultnya adalah condition join yang merupakan kumpulan equality pada condition join yang merupakan kumpulan equality pada semua field biasa. Kasus seperti ini disebut Natural Join, dan semua field biasa. Kasus seperti ini disebut Natural Join, dan properti bagusnya adalah hasilnya dijamin tidak memiliki 2 properti bagusnya adalah hasilnya dijamin tidak memiliki 2 field dengan nama sama.field dengan nama sama.

R SR S

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1818

Page 19: aljabar kalkulus dan relasional

T2 T2 T2.A > T3.AT2.A > T3.A T3 T3

((AA)) BB CC DD (A)(A) EE FF

a2a2 b2b2 c1c1 d1d1 a1a1 e1e1 f1f1

a4a4 b1b1 c2c2 d3d3 a1a1 e1e1 f1f1

a4a4 b1b1 c2c2 d3d3 a2a2 e2e2 f2f2

a4a4 b1b1 c2c2 d3d3 a3a3 e1e1 f3f3

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 1919

Page 20: aljabar kalkulus dan relasional

T2 T2 T2.A = T3.AT2.A = T3.A T3 T3

Contoh tersebut dapat juga ditulis menjadi :Contoh tersebut dapat juga ditulis menjadi :

T2 T3T2 T3

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2020

AA BB CC DD EE FF

a1a1 b1b1 c1c1 d1d1 e1e1 f1f1

a2a2 b2b2 c1c1 d1d1 e2e2 f2f2

a4a4 b1b1 c2c2 d3d3 e2e2 f4f4

Page 21: aljabar kalkulus dan relasional

Misalkan untuk setiap nilai x di dalam R, perhatikan kumpulan Misalkan untuk setiap nilai x di dalam R, perhatikan kumpulan nilai y yang muncul dalam instan R dengan nilai x tersebut. nilai y yang muncul dalam instan R dengan nilai x tersebut. Jika kumpulan ini berisi semua nilai y dalam S, maka nilai x Jika kumpulan ini berisi semua nilai y dalam S, maka nilai x adalah hasil dari adalah hasil dari R / SR / S..

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2121

Page 22: aljabar kalkulus dan relasional

A, BA, B (T1) (T1)

BB (T1) (T1)

AA BB

a1a1 b1b1

a2a2 b1b1

a2a2 b2b2

a3a3 b2b2

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2222

BB

bb11

b2b2

BB ( ( B = b1B = b1 (T1)) (T1))

BB

bb11

Page 23: aljabar kalkulus dan relasional

A, BA, B (T1) / (T1) / BB (T1) (T1)

A, BA, B (T1) / (T1) / BB ( ( B = b1B = b1 (T1)) (T1))

AA

aa22

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2323

AA

aa11

a2a2

Page 24: aljabar kalkulus dan relasional

Misalkan :Misalkan :

CustomersCustomers ( ( CustomerIDCustomerID, ContactName, Genre, Address, , ContactName, Genre, Address, City, Region, Country, ZIP, Phone )City, Region, Country, ZIP, Phone )

ProductsProducts ( ( ProductIDProductID, ProductName, UnitPrice, UnitInStock, , ProductName, UnitPrice, UnitInStock, UnitOnOrder )UnitOnOrder )

OrdersOrders ( ( OrderIDOrderID, CustomerID, OrderDate ), CustomerID, OrderDate )

Order DetailOrder Detail ( ( OrderIDOrderID, , ProductIDProductID, UnitPrice, Quantity, , UnitPrice, Quantity, Discount )Discount )

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2424

Page 25: aljabar kalkulus dan relasional

Cari nama pelanggan yang pernah memesan barang pada Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx / xxxx”.tanggal “xx / xx / xxxx”.

ContactNameContactName (( (( OrderDate = ‘xx / xx / xxxx’OrderDate = ‘xx / xx / xxxx’ Orders) Customers) Orders) Customers)

AtauAtau

(Temp1, (Temp1, OrderDate = ‘xx / xx / xxxx’OrderDate = ‘xx / xx / xxxx’ Orders) Orders)

(Temp2, Temp1 Customers)(Temp2, Temp1 Customers)

ContactNameContactName (Temp2) (Temp2)

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2525

Page 26: aljabar kalkulus dan relasional

Cari nama pelanggan yang pernah memesan barang dengan Cari nama pelanggan yang pernah memesan barang dengan kode barang = “xxx”.kode barang = “xxx”.

ContactNameContactName (( (( ProductID = ‘xxx’ProductID = ‘xxx’ (Order Detail)) Orders (Order Detail)) Orders

Customers)Customers)

AtauAtau

(Temp1, (Temp1, ProductID = ‘xxx’ProductID = ‘xxx’ (Order Detail)) (Order Detail))

(Temp2, Temp1 Orders)(Temp2, Temp1 Orders)

(Temp3, Temp2 Customers)(Temp3, Temp2 Customers)

ContactNameContactName (Temp3) (Temp3)

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2626

Page 27: aljabar kalkulus dan relasional

Cari negara yang pernah memesan barang yang berdiskon Cari negara yang pernah memesan barang yang berdiskon dan jumlah barang yang dipesan diatas 10 unit.dan jumlah barang yang dipesan diatas 10 unit.

CountryCountry (( (( Discount > 0 Discount > 0 Quantity > 10 Quantity > 10 (Order Detail)) Orders (Order Detail)) Orders

Customers)Customers)

AtauAtau

CountryCountry (( (( Discount > 0 Discount > 0 (Order Detail) (Order Detail) Quantity > 10 Quantity > 10 (Order (Order Detail))Detail))

Orders Customers)Orders Customers)

AtauAtau

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2727

Page 28: aljabar kalkulus dan relasional

(Temp1, (Temp1, Discount > 0Discount > 0 (Order Detail)) (Order Detail))

(Temp2, (Temp2, Quantity > 10Quantity > 10 (Order Detail)) (Order Detail))

(Temp3, Temp1 (Temp3, Temp1 Temp2) Temp2)

(Temp4, Temp3 Orders)(Temp4, Temp3 Orders)

(Temp5, Temp4 Customers)(Temp5, Temp4 Customers)

Country (Temp5)Country (Temp5)

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2828

Page 29: aljabar kalkulus dan relasional

Cari nama barang dan sisa stok yang ada untuk barang yang Cari nama barang dan sisa stok yang ada untuk barang yang tidak memiliki diskon atau harga barang / unitnya dibawah Rp. tidak memiliki diskon atau harga barang / unitnya dibawah Rp. 50.000,-.50.000,-.

ProductName, UnitInStockProductName, UnitInStock (( (( Discount = 0 Discount = 0 UnitPrice < Rp. 50.000,- UnitPrice < Rp. 50.000,-

(Order Detail)) Products)(Order Detail)) Products)

AtauAtau

ProductName, UnitInStockProductName, UnitInStock (( (( Discount = 0 Discount = 0 (Order Detail) (Order Detail)

UnitPrice < Rp. 50.000,-UnitPrice < Rp. 50.000,- (Order Detail)) Products) (Order Detail)) Products)

AtauAtau

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 2929

Page 30: aljabar kalkulus dan relasional

(Temp1, (Temp1, Discount = 0Discount = 0 (Order Detail)) (Order Detail))

(Temp2, (Temp2, UnitPrice < Rp. 50.000,-UnitPrice < Rp. 50.000,- (Order Detail)) (Order Detail))

(Temp3, Temp1 (Temp3, Temp1 Temp2) Temp2)

(Temp4, Temp3 Products)(Temp4, Temp3 Products)

(Hasil, (Hasil, ProductName, UnitInStockProductName, UnitInStock (Temp4)) (Temp4))

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3030

Page 31: aljabar kalkulus dan relasional

Cari nama pelanggan yang sudah pernah memesan barang Cari nama pelanggan yang sudah pernah memesan barang paling sedikit 2x.paling sedikit 2x.

(Pesanan, (Pesanan, CustomerID, ContactName, OrderIDCustomerID, ContactName, OrderID (Customers (Customers

Orders))Orders))

(Pesanan2 (1 (Pesanan2 (1 CID1, 2 CID1, 2 Name1, 3 Name1, 3 OID1, 4 OID1, 4 CID2, 5 CID2, 5

Name2, 6 Name2, 6 OID2), Pesanan OID2), Pesanan Pesanan) Pesanan)

Name1Name1 ( ( (CID1 = CID2) (CID1 = CID2) (OID1 <> OID2) (OID1 <> OID2) Pesanan2) Pesanan2)

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3131

Page 32: aljabar kalkulus dan relasional

Merupakan alternatif untuk aljabar relasional.Merupakan alternatif untuk aljabar relasional.

Memungkinkan kita menggambarkan himpunan jawaban Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung.tersebut dihitung.

Memiliki pengaruh yang besar pada desain bahasa query Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL.komersial seperti SQL.

Varian kalkulus yang disajikan secara detil disebut Varian kalkulus yang disajikan secara detil disebut Tuple Tuple Relational CalculusRelational Calculus ( (TRCTRC) dimana pada TRC mengambil ) dimana pada TRC mengambil instan (tuple) sebagai nilainya.instan (tuple) sebagai nilainya.

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3232

Page 33: aljabar kalkulus dan relasional

Variabel Tuple merupakan variabel yang nilainya diambil Variabel Tuple merupakan variabel yang nilainya diambil dari tuple skema relasi tertentu, sehingga nilai yang dari tuple skema relasi tertentu, sehingga nilai yang ditentukan untuk satu variabel tuple tertentu, punya ditentukan untuk satu variabel tuple tertentu, punya jumlah dan tipe field yang sama.jumlah dan tipe field yang sama.

Bentuk tuple dari query kalkulus relasional :Bentuk tuple dari query kalkulus relasional :

{ T | p ( T ) }{ T | p ( T ) }

dimana dimana TT adalah sebuah variabel tuple dan adalah sebuah variabel tuple dan p(T)p(T) adalah adalah sebuah formula yang menggambarkan T.sebuah formula yang menggambarkan T.

Hasil dari query adalah himpunan dari semua tuple Hasil dari query adalah himpunan dari semua tuple tt dimana formula p(T) mengevaluasi dimana formula p(T) mengevaluasi truetrue dengan dengan T = tT = t..

Penulisan formula p(T) adalah inti dari TRC dan pada Penulisan formula p(T) adalah inti dari TRC dan pada dasarnya merupakan satu subset sederhana dari dasarnya merupakan satu subset sederhana dari First – First – Order LogicOrder Logic..

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3333

Page 34: aljabar kalkulus dan relasional

RelRel adalah nama relasi. adalah nama relasi.

RR dan dan SS adalah variabel tuple. adalah variabel tuple.

aa adalah atribut dari R. adalah atribut dari R.

bb adalah atribut dari S. adalah atribut dari S.

opop adalah operator pada himpunan { <, >, =, adalah operator pada himpunan { <, >, =, , , , , } }

Atomic formulaAtomic formula adalah salah satu dari formula berikut : adalah salah satu dari formula berikut :

-- R R Rel Rel

-- R.a op S.bR.a op S.b

-- R.a op constantR.a op constant, atau , atau constant op R.aconstant op R.a

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3434

Page 35: aljabar kalkulus dan relasional

Formula didefinisikan secara rekursif untuk menjadi salah satu Formula didefinisikan secara rekursif untuk menjadi salah satu dari daftar berikut ini, dimana p dan q adalah formula dan p(R) dari daftar berikut ini, dimana p dan q adalah formula dan p(R) menggambarkan formula dimana variabel R muncul :menggambarkan formula dimana variabel R muncul :

Semua atomic formulaSemua atomic formula

pp, , p p q q, , p p q q, atau , atau p p q q

R ( p ( R ) )R ( p ( R ) ), dimana R adalah variabel tuple, dimana R adalah variabel tuple

R ( p ( R ) )R ( p ( R ) ), dimana R adalah variebel tuple, dimana R adalah variebel tuple

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3535

Page 36: aljabar kalkulus dan relasional

Setiap variabel bebas pada sebuah formula F terikat pada nilai Setiap variabel bebas pada sebuah formula F terikat pada nilai tuple. Untuk penetapan tuple tertentu ke variabel, dengan tuple. Untuk penetapan tuple tertentu ke variabel, dengan memperhatikan contoh database, F dievaluasi ke true jika salah memperhatikan contoh database, F dievaluasi ke true jika salah satu hal berikut terpenuhi :satu hal berikut terpenuhi :

F adalah F adalah formula atomic R formula atomic R Rel Rel, dan R adalah tuple di , dan R adalah tuple di dalam dalam instance relation Rel.instance relation Rel.

F adalah komparasi F adalah komparasi R.a op S.bR.a op S.b, , R.a op constantR.a op constant, atau , atau constant constant op R.aop R.a, dan tuple yang ditentukan untuk R dan S , dan tuple yang ditentukan untuk R dan S mempunyai mempunyai nilai – nilai field R.a dan S.b yang menghasilkan nilai – nilai field R.a dan S.b yang menghasilkan komparasi true.komparasi true.

F adalah form F adalah form pp dan dan pp bukan bukan truetrue, atau form , atau form p p q q, dan baik , dan baik p p dan q adalah dan q adalah truetrue, atau , atau p p q q dan salah satunya adalah dan salah satunya adalah truetrue, ,

atau form atau form p p q q dan q adalah dan q adalah truetrue kapan saja p adalah kapan saja p adalah truetrue..

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3636

Page 37: aljabar kalkulus dan relasional

F adalah form F adalah form R(p(R)) R(p(R)), dan ada beberapa tuple untuk , dan ada beberapa tuple untuk variabel bebas pada variabel bebas pada p(R)p(R), termasuk variabel R yang , termasuk variabel R yang membuat formula membuat formula p(R)p(R) menjadi menjadi truetrue..

F adalah form F adalah form R(p(R)) R(p(R)), dan ada beberapa tuple untuk , dan ada beberapa tuple untuk variabel bebas pada variabel bebas pada p(R)p(R) yang membuat formula yang membuat formula p(R)p(R) truetrue tidak peduli tuple apa yang ditentukan untuk R. tidak peduli tuple apa yang ditentukan untuk R.

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3737

Page 38: aljabar kalkulus dan relasional

Cari nama barang yang stoknya masih ada.Cari nama barang yang stoknya masih ada.

{ A | { A | P P Products (A.ProductName = P.ProductName Products (A.ProductName = P.ProductName

P.UnitInStock > 0) }P.UnitInStock > 0) }

Cari nama barang dan harga per unit untuk barang yang Cari nama barang dan harga per unit untuk barang yang stoknya masih ada.stoknya masih ada.

{ A | { A | P P Products (A.ProductName = P.ProductName Products (A.ProductName = P.ProductName

A.UnitPrice = P.UnitPrice A.UnitPrice = P.UnitPrice P.UnitInStock > 0) } P.UnitInStock > 0) }

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3838

Page 39: aljabar kalkulus dan relasional

Cari nama pelanggan yang pernah memesan barang pada Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx / xxxx”tanggal “xx / xx / xxxx”

{ A | { A | C C Customers Customers O O Orders (C.CustomerID = Orders (C.CustomerID =

O.CustomerID O.CustomerID A.ContactName = C.ContactName A.ContactName = C.ContactName

O.OrderDate = ‘xx / xx / xxxx’) }O.OrderDate = ‘xx / xx / xxxx’) }

Cari nama pelanggan yang pernah memesan barang dengan Cari nama pelanggan yang pernah memesan barang dengan kode barang = “xxx”.kode barang = “xxx”.

{ A | { A | C C Customers Customers O O Orders Orders D D (Order Detail) (Order Detail)

(C.CustomerID = O.CustomerID (C.CustomerID = O.CustomerID O.OrderID = D.OrderID O.OrderID = D.OrderID

A.ContactName = C.ContactName A.ContactName = C.ContactName D.ProductID = ‘xxx’) } D.ProductID = ‘xxx’) }

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 3939

Page 40: aljabar kalkulus dan relasional

Cari negara yang pernah memesan barang yang berdiskon Cari negara yang pernah memesan barang yang berdiskon dan jumlah barang yang dipesan diatas 10 unit.dan jumlah barang yang dipesan diatas 10 unit.

{ A | { A | C C Customers Customers O O Orders Orders D D (Order Detail) (Order Detail)

(C.CustomerID = O.CustomerID (C.CustomerID = O.CustomerID O.OrderID = D.OrderID O.OrderID = D.OrderID

A.Country = C.Country A.Country = C.Country D.Discount > 0 D.Discount > 0 D.Quantity > D.Quantity > 10) }10) }

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 4040

Page 41: aljabar kalkulus dan relasional

Cari nama barang dan sisa stok yang ada untuk barang yang Cari nama barang dan sisa stok yang ada untuk barang yang tidak memiliki diskon atau harga barang / unitnya dibawah Rp. tidak memiliki diskon atau harga barang / unitnya dibawah Rp. 50.000,-.50.000,-.

{ A | { A | P P Products Products O O (Order Detail) (P.ProductID = (Order Detail) (P.ProductID =

O.ProductID O.ProductID A.ProductName = P.ProductName A.ProductName = P.ProductName

A.UnitInStock = P.UnitInStock A.UnitInStock = P.UnitInStock (O.Discount = 0 (O.Discount = 0 O.UnitPrice O.UnitPrice <<

Rp. 50.000,-)) }Rp. 50.000,-)) }

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 4141

Page 42: aljabar kalkulus dan relasional

Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 4242