Sesi V Aljabar & Kalkulus Relasional

Slides:



Advertisements
Presentasi serupa
Aljabar Relasional Materi pertemuan.
Advertisements

Basis data - day 8 Rachmat wahyu pramono Dosen Pembimbing: Rengga Asmara, S. Kom, OCA Politeknik Elektronika Negeri Surabaya Departemen Teknik.
ALJABAR RELATIONAL Materi Pertemuan 22,23 dan 24.
Aljabar Relasional (Relational Algebra)
Bahasa Pada Model Data Relasional
ALJABAR RELASIONAL (RELATIONAL ALGEBRA)
ALJABAR RELASIONAL Mata Kuliah : Database 1 Dosen : Tessy Badriyah.
Bahasa Query Formal Aljabar Relasional.
RELASI & JOIN.
Pertemuan Minggu Ke-4 Bahasa Query Formal.
MODEL DATA.
Aljabar Relasional.
Model & Aljabar Relasional
Aljabar Relasional.
Aljabar Relasional Materi pertemuan.
ALJABAR RELASIONAL BASIS DATA Team Teaching Basis Data Oleh
Aljabar Relasional.
Aljabar Relasional (Relational Algebra)
Aljabar Relasional Materi pertemuan 21.
PERTEMUAN 13 Sistem Basis Data Presented by :
4.10 Relasi n-ary Relasi n-ary adalah relasi yang menghubungkan
Karakteristik, Komponen, Primary Key
Oleh: Henry Primandari,S.Kom STMIK-MDP Palembang
SQL (Structured Query Language) Materi Pertemuan
Desain Database Disusun Oleh : Dr. Lily Wulandari
Aljabar Relasional.
4. RELASI.
Pertemuan 9 BAHASA QUERY FORMAL.
ALJABAR RELATIONAL.
ALJABAR DAN KALKULUS RELASIONAL
Aljabar Relasional Materi pertemuan.
PERTEMUAN 10 QUERY KOMERSIAL LANJUTAN Agus Riyanto, S.Kom.
Basis Data Bab VIII Bahasa Kueri Presented by Mulyono, S.Si, M.Kom
Model Basis Data Relasional
Pertemuan Ke-6 Aljabar Relasional
Model Data Relasional.
Aljabar Relasional (Relational Algebra)
ALJABAR RELASIONAL
Daniel Damaris Novarianto S. UNIV. GUNADARMA
Operasi Relasional Basis Data
ALJABAR RELASIONAL BASIS DATA I/2009-GENAP
Database Management Systems Bab 4 – Bagian B Kalkulus Relasional (Chap
Harsiti, ST Fakultas Teknologi Informasi Universitas Serang Raya 2009
SQL (Structured Query Language)
ALJABAR RELASIONAL DAN KALKULUS RELASIONAL
Aljabar Relational (Relational Algebra) MEETING 6
SISTEM BASIS DATA STMIK BANI SALEH BEKASI Salim
Model Relational DATABASE
Presented by Team Basis Data
Operasi Relasional Basis Data
Sesi VI Query dengan SQL
KALKULUS RELASIONAL BASIS DATA I/2009-GENAP
Aljabar Dan Kalkulus Relasional
ANALYSIS.
Aljabar Relasional.
SQL Part 1.
Pertemuan ke-11 Bahasa Query Formal.
SISTEM BASIS DATA TERSEBAR
Aljabar Relational (Relational Algebra) MEETING 6
Aljabar Relational.
Aljabar Relational IK203 Sistem Basis Data Pertemuan #4
MODEL DATA RELASIONAL (1)
Aljabar Relasional (Relational Algebra)
Basis Data - Udinus Semarang
Model Data Relasional.
Basis Data Bahasa Kueri Basis Data
Model dan Aljabar Relasional
ALJABAR RELASIONAL (LANJUTAN)
Basis Data Bahasa Kueri Basis Data
Pengantar Teknologi SIM 2 (pertemuan 6)
Transcript presentasi:

Sesi V Aljabar & Kalkulus Relasional Oleh : Ng Poi Wong, S.Kom, MTI

Sistem / Teknologi Basis Data Pertanyaan Apa itu Aljabar Relasional ? Apa itu operator aljabar dasar, dan bagaimana mereka dikombinasikan untuk menulis query – query kompleks ? Apa itu Kalkulus Relasional ? Subset logika matematika apa yang digunakan di dalam kalkulus relasional, dan bagaimana digunakan untuk menuliskan query ? Sistem / Teknologi Basis Data

Aljabar & Kalkulus Relasional Bahasa Query adalah bahasa yang dikhususkan untuk mengajukan pertanyaan atau Query, yang melibatkan data dalam sebuah database. Input dan output suatu query adalah relasi. Query dievaluasi dengan menggunakan contoh input relasi dan menghasilkan contoh output relasi. Sistem / Teknologi Basis Data

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

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

Contoh Selection dan Projection Misalkan : T1 A B C D a1 b1 c1 d1 a2 c2 b2 a3 c3 d3 T2 A B C D a1 b1 c1 d1 a2 b2 a4 c2 d3 T3 A E F a1 e1 f1 a2 e2 f2 a3 f3 a4 f4 Sistem / Teknologi Basis Data

Contoh Selection dan Projection (Lanjutan)  C > c1 (T1)  A, B ( C > c1 (T1))  A (T1) A B C D a2 b1 c2 d1 b2 a3 c3 d3 A a1 a2 a3 A B a2 b1 b2 a3 Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Operasi Himpunan 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. Sistem / Teknologi Basis Data

Operasi Himpunan (Lanjutan) 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 (-) 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. Sistem / Teknologi Basis Data

Operasi Himpunan (Lanjutan) 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. Sistem / Teknologi Basis Data

Contoh Operasi Himpunan T1  T2 T1  T2 T1 – T2 A B C D a1 b1 c1 d1 a2 c2 b2 a3 c3 d3 a4 A B C D a2 b1 c2 d1 b2 a3 c3 d3 A B C D a1 b1 c1 d1 Sistem / Teknologi Basis Data

Contoh Operasi Himpunan (Lanjutan) T2  T3 (A) B C D E F a1 b1 c1 d1 e1 f1 a2 e2 f2 a3 f3 a4 f4 b2 c2 d3 Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data 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. Operator Renaming () digunakan untuk menghindari terjadinya Konflik Penamaan tersebut. Ekspresi Renaming : Dimana R = Relasi, F = Daftar Renaming, E = Aljabar Relasional Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Contoh Renaming  (Temp (1  A_1, 5  A_2), T2  T3) A_1 B C D A_2 E F a1 b1 c1 d1 e1 f1 a2 e2 f2 a3 f3 ……… a4 c2 d3 f4 Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Join Merupakan operasi yang digunakan untuk menggunakan informasi dari dua atau lebih relasi ( ). Condition Join Equijoin Natural Join Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Condition Join 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. Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data 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. Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data 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 Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Contoh Condition Join T2 T2.A > T3.A T3 (A) B C D E F a2 b2 c1 d1 a1 e1 f1 a4 b1 c2 d3 e2 f2 a3 f3 Sistem / Teknologi Basis Data

Contoh Equijoin & Natural Join T2 T2.A = T3.A T3 Contoh tersebut dapat juga ditulis menjadi : T2 T3 A B C D E F a1 b1 c1 d1 e1 f1 a2 b2 e2 f2 a4 c2 d3 f4 Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data 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. Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Contoh Division  A, B (T1)  B (T1)  B ( B = b1 (T1)) A B a1 b1 a2 b2 a3 B b1 B b1 b2 Sistem / Teknologi Basis Data

Contoh Division (Lanjutan)  A, B (T1) /  B (T1)  A, B (T1) /  B ( B = b1 (T1)) A a2 A a1 a2 Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Contoh Query Aljabar Misalkan : Customers ( CustomerID, ContactName, Genre, Address, City, Region, Country, ZIP, Phone ) Products ( ProductID, ProductName, UnitPrice, UnitInStock, UnitOnOrder ) Orders ( OrderID, CustomerID, OrderDate ) Order Detail ( OrderID, ProductID, UnitPrice, Quantity, Discount ) Sistem / Teknologi Basis Data

Contoh Query Aljabar (Lanjutan) 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) Sistem / Teknologi Basis Data

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

Contoh Query Aljabar (Lanjutan) 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) Atau  Country (( Discount > 0 (Order Detail)   Quantity > 10 (Order Detail)) Orders Customers) Sistem / Teknologi Basis Data

Contoh Query Aljabar (Lanjutan)  (Temp1,  Discount > 0 (Order Detail))  (Temp2,  Quantity > 10 (Order Detail))  (Temp3, Temp1  Temp2)  (Temp4, Temp3 Orders)  (Temp5, Temp4 Customers)  Country (Temp5) Sistem / Teknologi Basis Data

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

Contoh Query Aljabar (Lanjutan)  (Temp1,  Discount = 0 (Order Detail))  (Temp2,  UnitPrice < Rp. 50.000,- (Order Detail))  (Temp3, Temp1  Temp2)  (Temp4, Temp3 Products)  (Hasil,  ProductName, UnitInStock (Temp4)) Sistem / Teknologi Basis Data

Contoh Query Aljabar (Lanjutan) 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)  Name1 ( (CID1 = CID2)  (OID1 <> OID2) Pesanan2) Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Kalkulus Relasional Merupakan alternatif untuk aljabar relasional. Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung. 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. Sistem / Teknologi Basis Data

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. 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. Penulisan formula p(T) adalah inti dari TRC dan pada dasarnya merupakan satu subset sederhana dari First – Order Logic. Sistem / Teknologi Basis Data

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

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 formula p, p  q, p  q, atau p  q  R ( p ( R ) ), dimana R adalah variabel tuple  R ( p ( R ) ), dimana R adalah variebel tuple Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data 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 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. Sistem / Teknologi Basis Data

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) yang membuat formula p(R) true tidak peduli tuple apa yang ditentukan untuk R. Sistem / Teknologi Basis Data

Sistem / Teknologi Basis Data Contoh TRC Query 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. A.UnitPrice = P.UnitPrice  P.UnitInStock > 0) } Sistem / Teknologi Basis Data

Contoh TRC Query (Lanjutan) 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”. { A |  C  Customers  O  Orders  D  (Order Detail) (C.CustomerID = O.CustomerID  O.OrderID = D.OrderID  A.ContactName = C.ContactName  D.ProductID = ‘xxx’) } Sistem / Teknologi Basis Data

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) } Sistem / Teknologi Basis Data

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

Sistem / Teknologi Basis Data Tanya - Jawab Sistem / Teknologi Basis Data