4 Aljabar Dan Kalkulus Relasional Lanjutan

Embed Size (px)

Citation preview

ALJABAR RELASIONAL Pertanyaan Basis Data 2 Apa itu Aljabar? Apa itu Aljabar Relasional? Aljabar Relasional Basis Data 3 BahasaQueryadalahbahasayangdikhususkanuntuk mengajukanpertanyaanatauQuery,yangmelibatkandatadalam sebuah database. Input dan output suatu query adalah relasi. Querydievaluasidenganmenggunakancontohinputrelasidan menghasilkan contoh output relasi. Aljabar Relasional Basis Data 4 Merupakansalahsatudari2bahasaqueryformalyangterkait dengan model relasional. Memiliki operator operator dasar aljabar : -Selection -Projection -Operasi Himpunan (Union, Intersection,Set Difference,Cross Product) -Renaming -Join -Division Operasi Selection dan Projection Basis Data 5 AljabarRelasionalmencakupoperatoruntukmemilih(selection) barisdarisaturelasi(o)danuntukmemproyeksikan(projection) kolom (t). Contoh : o Unit Price >= Rp. 5.000.000,- (Products) t Product ID, Product Name (Products) t Product ID, Product Name (o Unit Price >= Rp. 5.000.000,- (Products)) t Country (Customers) Contoh Selection dan Projection Misalkan : T1 ABCD a1b1c1d1 a2b1c2d1 a2b2c2d1 a3b2c3d3 Basis Data 6 T2 ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T3 AEF a1e1f1 a2e2f2 a3e1f3 a4e2f4 Contoh Selection dan Projection (Lanjutan) o C > c1 (T1) T1 ABCD a1b1c1d1 a2b1c2d1 a2b2c2d1 a3b2c3d3 Basis Data 7 t A (T1) ABCD a2b1c2d1 a2b2c2d1 a3b2c3d3 AB a2b1 a2b2 a3b2 A a1 a2 a3 T2 ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T3 AEF a1e1f1 a2e2f2 a3e1f3 a4e2f4 t A, B (o C > c1 (T1)) Soal Basis Data 8 Berikut adalah tabel Mahasiswa & Selesaikan soal di bawah: 1. o jk = P (Mahasiswa) 2. o tahun >2000 (Mahasiswa) 3. o kota = Jakarta (Mahasiswa) 4. t nama (Mahasiswa) 5. t kota (Mahasiswa) 6. t nama, kota (o tahun < 2005 (Mahasiswa)) no namajk tahun kota 1Tina Turner P 1980 Jombang 2Sam Witwicky L 2010 Chicago 3Johnny Depp L 2009 Jember 4Bruce Willis L 2008 Jakarta 5Madonna P 1999 Semarang 6Optimus Prime L 2011 Jakarta 7Salma Hayek P 2005 Lawang 8Donald Duck L 1970 New York 9TomL 1990 San Fransisco Soal Basis Data 9 Berikut adalah tabel Mahasiswa & bagaimana bahasa formalnya: 1. Tampilkan data Mahasiswa Laki-laki 2. Tampilkan nama Mahasiswa yang ada di kota Jakarta, Lawang, dan Jember 3. Tampilkan nama dan kota Mahasiswa Laki-laki dengan tahun diatas 2000 4. Tampilkan nama dan kota Mahasiswa Perempuan dengan tahun diatas 2000 dan nomor urut di atas 6 no namajk tahun kota 1Tina Turner P 1980 Jombang 2Sam Witwicky L 2010 Chicago 3Johnny Depp L 2009 Jember 4Bruce Willis L 2008 Jakarta 5Madonna P 1999 Semarang 6Optimus Prime L 2011 Jakarta 7Salma Hayek P 2005 Lawang 8Donald Duck L 1970 New York 9TomL 1990 San Fransisco Operasi Himpunan Basis Data 10 Union () RSMenghasilkansuaturelasiyangberisiinstaninstanyang terjadidalamsuaturelasiRatausuaturelasiS.RdanSharuslah Union Compatible dan skema hasil identik dengan skema R. 2contohrelasidikatakanUnionCompatiblejikamemenuhi persyaratan : -Memiliki jumlah field yang sama. -Fieldyangberurutan,dalamurutandarikirikekanan,memiliki domain yang sama. Contoh OperasiUnion Sistem / Teknologi Basis Data 11 sales2005 U sales2006 Operasi Himpunan (Lanjutan) Basis Data 12 Intersection () RSmenghasilkansuaturelasiyangberisiinstaninstanyang terjadibaikpadaRdanS.RelasiRdanSharusUnion Compatible dan skema hasil identik dengan skema R. Set Difference (-) RSmenghasilkansuaturelasiyangberisiinstaninstanyang terjadipadaRtetapitidakterjadipadaS.RelasiRdanSharus Union Compatible dan skema hasil identik dengan skema R. Operasi Himpunan (Lanjutan) Basis Data 13 Cross Product () R S menghasilkan suatu relasi yang skemanya berisi semua field R(dalamurutanyangsamadenganfieldR)diikutidengansemua field S (dalam urutan yang sama dengan field S). Operasi Cross Product disebut juga Cartesian Product. Contoh Operasi Himpunan T1T2 T1 ABCD a1b1c1d1 a2b1c2d1 a2b2c2d1 a3b2c3d3 Basis Data 14 T1 T2 ABCD a1b1c1d1 a2b1c2d1 a2b2c1d1 a2b2c2d1 a3b2c3d3 a4b1c2d3 ABCD a1b1c1d1 ABCD a2b1c2d1 a2b2c2d1 a3b2c3d3 T2 ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T1 T2 Contoh Operasi Himpunan (Lanjutan) T2 T3 Basis Data 15 (A)BCD(A)EF a1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 a1b1c1d1a4e2f4 a2b2c1d1a1e1f1 a2b2c1d1a2e2f2 a2b2c1d1a3e1f3 a2b2c1d1a4e2f4 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4 T2 ABCD a1b1c1d1 a2b2c1d1 a4b1c2d3 T3 AEF a1e1f1 a2e2f2 a3e1f3 a4e2f4 Renaming DalamoperasihimpunanCrossProduct,bisamenimbulkan terjadinyaKonflikPenamaan,karenaCrossProductbisa menghasilkan suatu relasi dari 2 relasi dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama yang sama. OperatorRenaming()digunakanuntukmenghindariterjadinya Konflik Penamaan tersebut. Ekspresi Renaming : Dimana R = Relasi, F = Daftar Renaming, E = Aljabar Relasional ))) ( ), (( ( E F R Basis Data 16 Contoh Renaming (Temp (1 A_1, 5 A_2), T2 T3) A_1BCDA_2EF a1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4 Basis Data 17 Join Basis Data 18 Merupakanoperasiyangdigunakanuntukmenggunakaninformasi dari dua atau lebih relasi (). Condition Join Equijoin Natural Join Condition Join Basis Data 19 ConditionJoinidentikdenganSelectionCondition.Bentuk operasinya yakni : R c S = o c (R S) Jadi,ConditionJoinditentukanuntukmenjadisebuahCross Product yang diikuti dengan satu selection. Contoh Condition Join T2T2.A > T3.A T3 (A)BCD(A)EF a2b2c1d1a1e1f1 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 Basis Data 20 (A)BCD(A)EF a1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 a1b1c1d1a4e2f4 a2b2c1d1a1e1f1 a2b2c1d1a2e2f2 a2b2c1d1a3e1f3 a2b2c1d1a4e2f4 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4 Equijoin Basis Data 21 SatukasuskhususyangbiasaterjadipadaoperasijoinRS adalahpadasaatconditionjoinhanyaterdiridariequalitydari bentuk R.name1 = S.name1, yakni equality antara 2 field dalam R dan S. Operasi join seperti ini disebut Equijoin. SkemahasildariequijoinyangberisifieldR(dengannamadan domainyangsamasepertididalamR)diikutidenganfieldSyang tidakmunculdidalamconditionjoin.Jikahimpunanfielddalam relasi hasil itu memasukkan 2 field yang mewarisi nama dari R dan S, maka relasi hasilnya tidak diberi nama. Natural Join Basis Data 22 Kasus selanjutnya dari operasi join RS adalah satu equijoin dimana equalityditentukanpadasemuafieldyangmempunyainamasama dalamRdanS.Dalamkasusini,kitadapatmengabaikancondition join,defaultnyaadalahconditionjoinyangmerupakankumpulan equality pada semua field biasa. Kasus seperti ini disebut Natural Join, danpropertibagusnyaadalahhasilnyadijamintidakmemiliki2field dengan nama sama. RS Contoh Equijoin & Natural Join T2T2.A = T3.A T3 Basis Data 23 ABCDEF a1b1c1d1e1f1 a2b2c1d1e2f2 a4b1c2d3e2f4 (A)BCD(A)EF a1b1c1d1a1e1f1 a1b1c1d1a2e2f2 a1b1c1d1a3e1f3 a1b1c1d1a4e2f4 a2b2c1d1a1e1f1 a2b2c1d1a2e2f2 a2b2c1d1a3e1f3 a2b2c1d1a4e2f4 a4b1c2d3a1e1f1 a4b1c2d3a2e2f2 a4b1c2d3a3e1f3 a4b1c2d3a4e2f4 T2T3 Division Basis Data 24 MisalkanuntuksetiapnilaixdidalamR,perhatikankumpulannilaiy 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. Contoh Division t A, B (T1) AB a1b1 a2b1 a2b2 a3b2 Basis Data 25 B b1 b2 t B (o B = b1 (T1)) B b1 t A, B (T1) / t B (T1) A a2 A a1 a2 t B (T1) t A, B (T1) / t B (o B = b1 (T1)) 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 recordPenggunaan Fungsi Aggregate Dapatkan setiap nomer department, jumlah pegawai dalam department dan gaji rata-rata mereka.

R(DNO,jumlah_peg, gaji_rata2) 0 . Quantity>10 (Order Detail)) Orders Customers) Atau t Country((o Discount>0 (OrderDetail)oQuantity>10(Order Detail)) OrdersCustomers) Atau Jawab Query Aljabar (Lanjutan) Basis Data 34 (Temp1, o Discount > 0 (Order Detail)) (Temp2, o Quantity > 10 (Order Detail)) (Temp3, Temp1 Temp2) (Temp4, Temp3Orders) (Temp5, Temp4Customers) t Country (Temp5) Jawab Query Aljabar (Lanjutan) Basis Data 35 4. Cari ProductName dan sisa stok yang ada untuk barang yang tidak memiliki diskon atau harga barang / unitnya dibawah Rp. 50.000,-. t ProductName, UnitInStock ((o Discount = 0 v UnitPrice < Rp. 50.000,- (Order Detail))Products) Atau t ProductName, UnitInStock ((o Discount = 0 (Order Detail) o UnitPrice < Rp. 50.000,- (Order Detail))Products) Atau Jawab Query Aljabar (Lanjutan) Basis Data 36 (Temp1, o Discount = 0 (Order Detail)) (Temp2, o UnitPrice < Rp. 50.000,- (Order Detail)) (Temp3, Temp1Temp2) (Temp4, Temp3Products) (Hasil, t ProductName, UnitInStock (Temp4)) Jawab Query Aljabar (Lanjutan) Basis Data 37 5. Cari CustomerName yang sudah pernah memesan barang dengan Quantity paling sedikit 2x. (Pesanan,t CustomerID,ContactName,OrderID(Customers Orders)) (Pesanan2 (1 CID1, 2 Name1, 3 OID1, 4 CID2, 5 Name2, 6 OID2), Pesanan Pesanan) t Name1 (o (CID1 = CID2) . (OID1 OID2) Pesanan2) Kalkulus Relasional Basis Data 38 Merupakan alternatif untuk aljabar relasional. Memungkinkankitamenggambarkanhimpunanjawabantanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung. Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL. VariankalkulusyangdisajikansecaradetildisebutTuple RelationalCalculus(TRC)dimanapadaTRCmengambilinstan (tuple) sebagai nilainya. Tuple Relational Calculus Basis Data 39 VariabelTuplemerupakanvariabelyangnilainyadiambildarituple skemarelasitertentu,sehingganilaiyangditentukanuntuksatu variabel tuple tertentu, punya jumlah dan tipe field yang sama. Bentuk tuple dari query kalkulus relasional : { T | p ( T ) } dimanaTadalahsebuahvariabeltupledanp(T)adalahsebuah formula yang menggambarkan T. Hasildariqueryadalahhimpunandarisemuatupletdimana formula p(T) mengevaluasi true dengan T = t. Penulisanformulap(T)adalahintidariTRCdanpadadasarnya merupakan satu subset sederhana dari First Order Logic. Syntax TRC Query Basis Data 40 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 { , =, s, >, = } Atomic formula adalah salah satu dari formula berikut : -R e Rel -R.a op S.b -R.a op constant, atau constant op R.a Syntax TRC Query (Lanjutan) Basis Data 41 Formuladidefinisikansecararekursifuntukmenjadisalahsatudari daftarberikutini,dimanapdanqadalahformuladanp(R) menggambarkan formula dimana variabel R muncul : Semua atomic formula p, p . q, p v q, atau p q - R ( p ( R ) ), dimana R adalah variabel tuple R ( p ( R ) ), dimana R adalah variebel tuple Semantik TRC Query Basis Data 42 SetiapvariabelbebaspadasebuahformulaFterikatpadanilaituple. Untukpenetapantupletertentukevariabel,denganmemperhatikan contohdatabase,Fdievaluasiketruejikasalahsatuhalberikut terpenuhi : FadalahformulaatomicReRel,danRadalahtupledidalam instance relation Rel. FadalahkomparasiR.aopS.b,R.aopconstant,atauconstant op R.a, dan tuple yang ditentukan untuk R dan S mempunyai nilai nilai field R.a dan S.b yang menghasilkan komparasi true. Fadalahformpdanpbukantrue,atauformp.q,danbaikp danqadalahtrue,ataupvqdansalahsatunyaadalahtrue, atau form p q dan q adalah true kapan saja p adalah true. Semantik TRC Query (Lanjutan) Basis Data 43 Fadalahform-R(p(R)),danadabeberapatupleuntukvariabel bebas pada p(R), termasuk variabel R yang membuat formula p(R) menjadi true. FadalahformR(p(R)),danadabeberapatupleuntukvariabel bebaspadap(R)yangmembuatformulap(R)truetidakpeduli tuple apa yang ditentukan untuk R. Contoh TRC Query Basis Data 44 Cari nama barang yang stoknya masih ada. { A | - P e Products (A.ProductName = P.ProductName . P.UnitInStock > 0) } Carinamabarangdanhargaperunituntukbarangyangstoknya masih ada. { A | - P e Products (A.ProductName = P.ProductName . A.UnitPrice = P.UnitPrice . P.UnitInStock > 0) } Contoh TRC Query (Lanjutan) Basis Data 45 Cari nama pelanggan yang pernah memesan barang pada tanggal xx / xx / xxxx { A | - C e Customers - O e 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 e Customers - O e Orders - D e (Order Detail) (C.CustomerID = O.CustomerID . O.OrderID = D.OrderID . A.ContactName = C.ContactName . D.ProductID = xxx) } Contoh TRC Query (Lanjutan) Basis Data 46 Cari negara yang pernah memesan barang yang berdiskon dan jumlah barang yang dipesan diatas 10 unit. { A | - C e Customers - O e Orders - D e (Order Detail) (C.CustomerID = O.CustomerID . O.OrderID = D.OrderID . A.Country = C.Country . D.Discount > 0 . D.Quantity > 10) } Contoh TRC Query (Lanjutan) Basis Data 47 Carinamabarangdansisastokyangadauntukbarangyangtidak memiliki diskon atau harga barang / unitnya dibawah Rp. 50.000,-. { A | - P e Products - O e (Order Detail) (P.ProductID = O.ProductID . A.ProductName = P.ProductName . A.UnitInStock=P.UnitInStock.(O.Discount=0vO.UnitPrice< Rp. 50.000,-)) } Tanya - Jawab Basis Data 48