Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Aljabar Relasional. Pertanyaan Apa itu Aljabar Relasional ?Apa itu Aljabar Relasional ? Apa itu operator aljabar dasar, dan bagaimana mereka dikombinasikan.

Presentasi serupa


Presentasi berjudul: "Aljabar Relasional. Pertanyaan Apa itu Aljabar Relasional ?Apa itu Aljabar Relasional ? Apa itu operator aljabar dasar, dan bagaimana mereka dikombinasikan."— Transcript presentasi:

1 Aljabar Relasional

2 Pertanyaan Apa itu Aljabar Relasional ?Apa itu Aljabar Relasional ? Apa itu operator aljabar dasar, dan bagaimana mereka dikombinasikan untuk menulis query – query kompleks ?Apa itu operator aljabar dasar, dan bagaimana mereka dikombinasikan untuk menulis query – query kompleks ? Basis Data2

3 Aljabar Relasional Bahasa Query adalah bahasa yang dikhususkan untuk mengajukan pertanyaan atau Query, yang melibatkan data dalam sebuah database.Bahasa Query adalah bahasa yang dikhususkan untuk mengajukan pertanyaan atau Query, yang melibatkan 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 dan menghasilkan contoh output relasi.Query dievaluasi dengan menggunakan contoh input relasi dan menghasilkan contoh output relasi. Basis Data3

4 Aljabar Relasional Merupakan salah satu dari 2 bahasa query formal yang terkait dengan model relasional.Merupakan salah satu dari 2 bahasa query formal yang terkait dengan model relasional. Memiliki operator – operator dasar aljabar :Memiliki operator – operator dasar aljabar : -Selection -Projection -Operasi Himpunan (Union, Intersection, Set – Difference, Cross – Product) -Renaming -Join -Division Basis Data4

5 Selection dan Projection Aljabar Relasional mencakup operator untuk memilih (selection) baris dari satu relasi (  ) dan untuk memproyeksikan (projection) kolom (  ).Aljabar Relasional mencakup operator untuk memilih (selection) baris dari satu relasi (  ) dan untuk memproyeksikan (projection) kolom (  ). Contoh :Contoh :  Unit Price >= Rp ,- (Products)  Product ID, Product Name (Products)  Product ID, Product Name (  Unit Price >= Rp ,- (Products))  Country (Customers) Basis Data5

6 Contoh Selection dan Projection Misalkan : T1 ABCD a1b1 c1c1c1c1d1 a2b1 c2c2c2c2d1 a2b2 c2c2c2c2d1 a3b2 c3c3c3c3d3 Basis Data6T2ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T3AEF a1e1f1 a2e2f2 a3e1f3 a4e2f4

7 Contoh Selection dan Projection (Lanjutan)  C > c1 (T1)  C > c1 (T1) T1 ABCD a1b1 c1c1c1c1d1 a2b1 c2c2c2c2d1 a2b2 c2c2c2c2d1 a3b2 c3c3c3c3d3 Basis Data7  A (T1)  A (T1)ABCDa2b1 c2c2c2c2d1 a2b2 c2c2c2c2d1 a3b2 c3c3c3c3d3 ABa2b1 a2b2 a3b2Aa1 a2 a3 T2ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T3AEF a1e1f1 a2e2f2 a3e1f3 a4e2f4  A, B (  C > c1 (T1))  A, B (  C > c1 (T1))

8 Soal Tampilkan data mahasiswa yang berjenis kelamin laki-laki Tampilkan data nim, dan nama mahasiswa Tampilkan data nim, dan nama mahasiswa yang berjenis kelamin laki-laki Basis Data8

9 Operasi Himpunan Union (  )Union (  ) R  S Menghasilkan suatu relasi yang berisi instan – instan yang terjadi dalam suatu relasi R atau suatu relasi S. R dan S haruslah Union – Compatible dan skema hasil identik dengan skema R. 2 contoh relasi dikatakan Union – Compatible jika memenuhi persyaratan : -Memiliki jumlah field yang sama. -Field yang berurutan, dalam urutan dari kiri ke kanan, memiliki domain yang sama. Basis Data9

10 Operasi Himpunan (Lanjutan) Intersection (  )Intersection (  ) R  S menghasilkan suatu relasi yang berisi instan – instan yang terjadi baik pada R dan S. Relasi R dan S harus Union – Compatible dan skema hasil identik dengan skema R. Set – Difference ( - )Set – Difference ( - ) R – S menghasilkan suatu relasi yang berisi instan – instan yang terjadi pada R tetapi tidak terjadi pada S. Relasi R dan S harus Union – Compatible dan skema hasil identik dengan skema R. Basis Data10

11 Operasi Himpunan (Lanjutan) Cross – Product (  )Cross – Product (  ) R  S menghasilkan suatu relasi yang skemanya berisi semua field R (dalam urutan yang sama dengan field R) diikuti dengan semua field S (dalam urutan yang sama dengan field S). Operasi Cross – Product disebut juga Cartesian – Product. Basis Data11

12 Contoh Operasi Himpunan T1  T2T1  T2 T1 ABCD a1b1 c1c1c1c1d1 a2b1 c2c2c2c2d1 a2b2 c2c2c2c2d1 a3b2 c3c3c3c3d3 Basis Data12 T1 – T2 T1 – T2ABCDa1b1 c1c1c1c1d1 a2a2a2a2b1 c2c2c2c2d1 a2b2c1d1 a2a2a2a2b2 c2c2c2c2d1 a3a3a3a3b2 c3c3c3c3d3 a4b1c2d3ABCDa1b1 c1c1c1c1d1 ABCDa2b1 c2c2c2c2d1 a2b2 c2c2c2c2d1 a3b2 c3c3c3c3d3 T2ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T1  T2 T1  T2

13 Contoh Operasi Himpunan (Lanjutan) T2  T3T2  T3 Basis Data13 (A)(A)(A)(A)BCD(A)EF a1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 a1b1c1d1a4e2f4 a2b2c1d1a1e1f1 a2b2c1d1a2e2f2 a2b2c1d1a3e1f3 a2b2c1d1a4e2f4 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4 T2ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T3AEF a1e1f1 a2e2f2 a3e1f3 a4e2f4

14 Renaming Dalam operasi himpunan Cross – Product, bisa menimbulkan terjadinya Konflik Penamaan, karena Cross – Product bisa menghasilkan suatu relasi dari 2 relasi dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama yang sama.Dalam operasi himpunan Cross – Product, bisa menimbulkan terjadinya Konflik Penamaan, karena Cross – Product bisa menghasilkan suatu relasi dari 2 relasi dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama yang sama. Operator Renaming (  ) digunakan untuk menghindari terjadinya Konflik Penamaan tersebut.Operator Renaming (  ) digunakan untuk menghindari terjadinya Konflik Penamaan tersebut. Ekspresi Renaming :Ekspresi Renaming : Dimana R = Relasi, F = Daftar Renaming, E = Aljabar Relasional Basis Data14

15 Contoh Renaming  (Temp (1  A_1, 5  A_2), T2  T3) A_1 BCDA_2EF a1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 ……… ……… ……… a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4 Basis Data15

16 Join Merupakan operasi yang digunakan untuk menggunakan informasi dari dua atau lebih relasi ( ). Condition JoinCondition Join EquijoinEquijoin Natural JoinNatural Join Basis Data16

17 Condition Join Condition Join identik dengan Selection Condition. Bentuk operasinya yakni :Condition Join identik dengan Selection Condition. Bentuk operasinya yakni : R c S =  c (R  S) Jadi, Condition Join ditentukan untuk menjadi sebuah Cross – Product yang diikuti dengan satu selection.Jadi, Condition Join ditentukan untuk menjadi sebuah Cross – Product yang diikuti dengan satu selection. Basis Data17

18 Equijoin Satu kasus khusus yang biasa terjadi pada operasi join R S adalah pada saat condition join hanya terdiri dari equality dari bentuk R.name1 = S.name1, yakni equality antara 2 field dalam R dan S. Operasi join seperti ini disebut Equijoin.Satu kasus khusus yang biasa terjadi pada operasi join R S adalah pada saat condition join hanya terdiri dari equality dari bentuk R.name1 = S.name1, yakni equality antara 2 field dalam R dan S. Operasi join seperti ini disebut Equijoin. Skema hasil dari equijoin yang berisi field R (dengan nama dan domain yang sama seperti di dalam R) diikuti dengan field S yang tidak muncul di dalam condition join. Jika himpunan field dalam relasi hasil itu memasukkan 2 field yang mewarisi nama dari R dan S, maka relasi hasilnya tidak diberi nama.Skema hasil dari equijoin yang berisi field R (dengan nama dan domain yang sama seperti di dalam R) diikuti dengan field S yang tidak muncul di dalam condition join. Jika himpunan field dalam relasi hasil itu memasukkan 2 field yang mewarisi nama dari R dan S, maka relasi hasilnya tidak diberi nama. Basis Data18

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

20 Contoh Condition Join T2 T2.A > T3.A T3 (A)(A)(A)(A)BCD(A)EF a2b2c1d1a1e1f1 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 Basis Data20 (A)(A)(A)(A)BCD(A)EFa1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 a1b1c1d1a4e2f4 a2b2c1d1a1e1f1 a2b2c1d1a2e2f2 a2b2c1d1a3e1f3 a2b2c1d1a4e2f4 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4

21 Contoh Equijoin & Natural Join T2 T2.A = T3.A T3 Basis Data21ABCDEFa1b1c1d1e1f1 a2b2c1d1e2f2 a4b1c2d3e2f4 (A)(A)(A)(A)BCD(A)EFa1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 a1b1c1d1a4e2f4 a2b2c1d1a1e1f1 a2b2c1d1a2e2f2 a2b2c1d1a3e1f3 a2b2c1d1a4e2f4 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4 T2 T3

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

23 Contoh Division  A, B (T1)  A, B (T1) AB a1b1 a2b1 a2b2 a3b2 Basis Data23B b1b1b1b1 b2  B (  B = b1 (T1))  B (  B = b1 (T1))B b1b1b1b1  A, B (T1) /  B (T1)  A, B (T1) /  B (T1)A a2a2a2a2A a1a1a1a1 a2  B (T1)  B (T1)  A, B (T1) /  B (  B = b1 (T1))  A, B (T1) /  B (  B = b1 (T1))

24 Fungsi Aggregate ( ) SUM : menjumlah nilai dari suatu atribut AVERAGE : mencari rata-rata nilai dari suatu atribut MAXIMUM : mencari nilai paling besar dari suatu atrbiut MINIMUM : mencari nilai paling besar dari suatu atribut COUNT : menghitung jumlah record

25 Penggunaan Fungsi Aggregate Dapatkan setiap nomer department, jumlah pegawai dalam department dan gaji rata-rata mereka. R(DNO,jumlah_peg, gaji_rata2) <= DNO, COUNT SSN, AVERAGE SALARY (EMPLOYEE)

26 Soal Query Aljabar Misalkan : Customers ( CustomerID, ContactName, Gender, Address, City, Region, Country, ZIP, Phone ) Products ( ProductID, ProductName, UnitPrice, UnitInStock, UnitOnOrder ) Orders ( OrderID, CustomerID, OrderDate ) Order Detail ( OrderID, ProductID, UnitPrice, Quantity, Discount ) Basis Data26

27 Soal Query Aljabar (lanjutan) 1.Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx / xxxx”. 2.Cari nama pelanggan yang pernah memesan barang dengan kode barang = “xxx”. 3.Cari negara yang pernah memesan barang yang berdiskon dan jumlah barang yang dipesan diatas 10 unit. 4.Cari nama barang dan sisa stok yang ada untuk barang yang tidak memiliki diskon atau harga barang / unitnya dibawah Rp ,-. 5.Cari nama pelanggan yang sudah pernah memesan barang paling sedikit 2x. Basis Data27

28 Jawab Query Aljabar 1. Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx / xxxx”.  ContactName ((  OrderDate = ‘xx/xx/xxxx’ Orders) Customers) Atau  (Temp1,  OrderDate = ‘xx / xx / xxxx’ Orders)  (Temp2, Temp1 Customers)  ContactName (Temp2) Basis Data28

29 Jawab Query Aljabar (Lanjutan) 2. Cari nama pelanggan yang pernah memesan barang dengan kode barang = “xxx”.  ContactName ((  ProductID = ‘xxx’ (Order Detail)) Orders Customers) Customers)Atau  (Temp1,  ProductID = ‘xxx’ (Order Detail))  (Temp2, Temp1 Orders)  (Temp3, Temp2 Customers)  ContactName (Temp3) Basis Data29

30 Jawab Query Aljabar (Lanjutan) 3. Cari negara yang pernah memesan barang yang berdiskon dan jumlah barang yang dipesan diatas 10 unit.  Country ((  Discount>0  Quantity>10 (Order Detail)) Orders Customers) Customers)Atau  Country ((  Discount > 0 (Order Detail)   Quantity > 10 (Order Detail)) Orders Customers) Atau Basis Data30

31 Jawab Query Aljabar (Lanjutan)  (Temp1,  Discount > 0 (Order Detail))  (Temp2,  Quantity > 10 (Order Detail))  (Temp3, Temp1  Temp2)  (Temp4, Temp3 Orders)  (Temp5, Temp4 Customers)  Country (Temp5) Basis Data31

32 Jawab Query Aljabar (Lanjutan) 4. Cari nama barang dan sisa stok yang ada untuk barang yang tidak memiliki diskon atau harga barang / unitnya dibawah Rp ,-.  ProductName, UnitInStock ((  Discount = 0  UnitPrice < Rp ,- (Order Detail)) Products) Atau  ProductName, UnitInStock ((  Discount = 0 (Order Detail)   UnitPrice < Rp ,- (Order Detail)) Products) Atau Basis Data32

33 Jawab Query Aljabar (Lanjutan)  (Temp1,  Discount = 0 (Order Detail))  (Temp2,  UnitPrice < Rp ,- (Order Detail))  (Temp3, Temp1  Temp2)  (Temp4, Temp3 Products)  (Hasil,  ProductName, UnitInStock (Temp4)) Basis Data33

34 Jawab Query Aljabar (Lanjutan) 5. Cari nama pelanggan yang sudah pernah memesan barang paling sedikit 2x.  (Pesanan,  CustomerID, ContactName, OrderID (Customers Orders))  (Pesanan2 (1  CID1, 2  Name1, 3  OID1, 4  CID2, 5  Name2, 6  OID2), Pesanan  Pesanan) CID2, 5  Name2, 6  OID2), Pesanan  Pesanan)  Name1 (  (CID1 = CID2)  (OID1 <> OID2) Pesanan2) Basis Data34

35 Kalkulus Relasional Merupakan alternatif untuk aljabar relasional.Merupakan alternatif untuk aljabar relasional. Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung.Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung. Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL.Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL. Varian kalkulus yang disajikan secara detil disebut Tuple Relational Calculus (TRC) dimana pada TRC mengambil instan (tuple) sebagai nilainya.Varian kalkulus yang disajikan secara detil disebut Tuple Relational Calculus (TRC) dimana pada TRC mengambil instan (tuple) sebagai nilainya. Basis Data35

36 Tuple Relational Calculus Variabel Tuple merupakan variabel yang nilainya diambil dari tuple skema relasi tertentu, sehingga nilai yang ditentukan untuk satu variabel tuple tertentu, punya jumlah dan tipe field yang sama.Variabel Tuple merupakan variabel yang nilainya diambil dari tuple skema relasi tertentu, sehingga nilai yang ditentukan untuk satu variabel tuple tertentu, punya jumlah dan tipe field yang sama. Bentuk tuple dari query kalkulus relasional :Bentuk tuple dari query kalkulus relasional : { T | p ( T ) } dimana T adalah sebuah variabel tuple dan p(T) adalah sebuah formula yang menggambarkan T. Hasil dari query adalah himpunan dari semua tuple t dimana formula p(T) mengevaluasi true dengan T = t.Hasil dari query adalah himpunan dari semua tuple t dimana formula p(T) mengevaluasi true dengan T = t. Penulisan formula p(T) adalah inti dari TRC dan pada dasarnya merupakan satu subset sederhana dari First – Order Logic.Penulisan formula p(T) adalah inti dari TRC dan pada dasarnya merupakan satu subset sederhana dari First – Order Logic. Basis Data36

37 Syntax TRC Query Rel adalah nama relasi.Rel adalah nama relasi. R dan S adalah variabel tuple.R dan S adalah variabel tuple. a adalah atribut dari R.a adalah atribut dari R. b adalah atribut dari S.b adalah atribut dari S. op adalah operator pada himpunan {, =, , ,  }op adalah operator pada himpunan {, =, , ,  } Atomic formula adalah salah satu dari formula berikut :Atomic formula adalah salah satu dari formula berikut : -R  Rel -R.a op S.b -R.a op constant, atau constant op R.a Basis Data37

38 Syntax TRC Query (Lanjutan) Formula didefinisikan secara rekursif untuk menjadi salah satu dari daftar berikut ini, dimana p dan q adalah formula dan p(R) menggambarkan formula dimana variabel R muncul : Semua atomic formulaSemua atomic formula  p, p  q, p  q, atau p  q  p, p  q, p  q, atau p  q  R ( p ( R ) ), dimana R adalah variabel tuple  R ( p ( R ) ), dimana R adalah variabel tuple  R ( p ( R ) ), dimana R adalah variebel tuple  R ( p ( R ) ), dimana R adalah variebel tuple Basis Data38

39 Semantik TRC Query Setiap variabel bebas pada sebuah formula F terikat pada nilai tuple. Untuk penetapan tuple tertentu ke variabel, dengan memperhatikan contoh database, F dievaluasi ke true jika salah satu hal berikut terpenuhi : F adalah formula atomic R  Rel, dan R adalah tuple di dalam instance relation Rel.F adalah formula atomic R  Rel, dan R adalah tuple di dalam instance relation Rel. F adalah komparasi R.a op S.b, R.a op constant, atau constant op R.a, dan tuple yang ditentukan untuk R dan S mempunyai nilai – nilai field R.a dan S.b yang menghasilkan komparasi true.F adalah komparasi R.a op S.b, R.a op constant, atau constant op R.a, dan tuple yang ditentukan untuk R dan S mempunyai nilai – nilai field R.a dan S.b yang menghasilkan komparasi true. F adalah form  p dan p bukan true, atau form p  q, dan baik p dan q adalah true, atau p  q dan salah satunya adalah true, atau form p  q dan q adalah true kapan saja p adalah true.F adalah form  p dan p bukan true, atau form p  q, dan baik p dan q adalah true, atau p  q dan salah satunya adalah true, atau form p  q dan q adalah true kapan saja p adalah true. Basis Data39

40 Semantik TRC Query (Lanjutan) F adalah form  R(p(R)), dan ada beberapa tuple untuk variabel bebas pada p(R), termasuk variabel R yang membuat formula p(R) menjadi true.F adalah form  R(p(R)), dan ada beberapa tuple untuk variabel bebas pada p(R), termasuk variabel R yang membuat formula p(R) menjadi true. F adalah form  R(p(R)), dan ada beberapa tuple untuk variabel bebas pada p(R) yang membuat formula p(R) true tidak peduli tuple apa yang ditentukan untuk R.F adalah form  R(p(R)), dan ada beberapa tuple untuk variabel bebas pada p(R) yang membuat formula p(R) true tidak peduli tuple apa yang ditentukan untuk R. Basis Data40

41 Contoh TRC Query Cari nama barang yang stoknya masih ada.Cari nama barang yang stoknya masih ada. { A |  P  Products (A.ProductName = P.ProductName  P.UnitInStock > 0) } Cari nama barang dan harga per unit untuk barang yang stoknya masih ada.Cari nama barang dan harga per unit untuk barang yang stoknya masih ada. { A |  P  Products (A.ProductName = P.ProductName  A.UnitPrice = P.UnitPrice  P.UnitInStock > 0) } Basis Data41

42 Contoh TRC Query (Lanjutan) Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx / xxxx”Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx / xxxx” { A |  C  Customers  O  Orders (C.CustomerID = O.CustomerID  A.ContactName = C.ContactName  O.OrderDate = ‘xx / xx / xxxx’) } Cari nama pelanggan yang pernah memesan barang dengan kode barang = “xxx”.Cari nama pelanggan yang pernah memesan barang dengan kode barang = “xxx”. { A |  C  Customers  O  Orders  D  (Order Detail) (C.CustomerID = O.CustomerID  O.OrderID = D.OrderID  A.ContactName = C.ContactName  D.ProductID = ‘xxx’) } Basis Data42

43 Contoh TRC Query (Lanjutan) Cari negara yang pernah memesan barang yang berdiskon dan jumlah barang yang dipesan diatas 10 unit. { A |  C  Customers  O  Orders  D  (Order Detail) (C.CustomerID = O.CustomerID  O.OrderID = D.OrderID  A.Country = C.Country  D.Discount > 0  D.Quantity > 10) } Basis Data43

44 Contoh TRC Query (Lanjutan) Cari nama barang dan sisa stok yang ada untuk barang yang tidak memiliki diskon atau harga barang / unitnya dibawah Rp ,-. { A |  P  Products  O  (Order Detail) (P.ProductID = O.ProductID  A.ProductName = P.ProductName  A.UnitInStock = P.UnitInStock  (O.Discount = 0  O.UnitPrice < Rp ,-)) } Basis Data44

45 Tanya - Jawab Basis Data45


Download ppt "Aljabar Relasional. Pertanyaan Apa itu Aljabar Relasional ?Apa itu Aljabar Relasional ? Apa itu operator aljabar dasar, dan bagaimana mereka dikombinasikan."

Presentasi serupa


Iklan oleh Google