aljabar kalkulus dan relasional
-
Upload
ardiawan-harisa -
Category
Education
-
view
150 -
download
8
description
Transcript of aljabar kalkulus dan relasional
Edit by ardiawan bagusEdit by ardiawan bagus
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
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
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
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
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
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
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
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
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
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
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
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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
(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
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
(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
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
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
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
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
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
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
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
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
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
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
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
Sistem / Teknologi Basis DataSistem / Teknologi Basis Data 4242