RELASI Relasi Aljabar Relasi Kalkulus Relasi Aljabar Operasi aljabar terdiri dari himpunan operator level tinggi yang dioperasikan pada suatu relasi. Setiap operator menggunakan satu atau dua relasi sebagai input dan menghasilkan relasi baru sebagai output. Relasi Aljabar Codd mendefinisikan operator relasi aljabar terdiri dari delapan operator, terbagi menjadi dua kelompok : 1. 2. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan Cartesian Product. Operasi relasional khusus, terdiri dari Restrict, Project, Join, dan Devide Relasi Aljabar Union A B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A atau B atau kedua-duanya. A B Relasi Aljabar : Union Relasi Tabel A S S1 S4 SNAME STATUS 20 20 CITY Semarang Semarang SNAME STATUS CITY Aris Eko Relasi Tabel B S S1 Aris 20 Semarang S2 Heni 10 Jakarta Relasi Aljabar : Union Hasil Relasi A U B S SNAME STATUS CITY S1 Aris 20 Semarang S2 Eko 20 Semarang S4 Heni 10 Jakarta Relasi Aljabar Intersect ∩ A∩B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A dan B. A B Relasi Aljabar : Intersect Hasil A∩B S S1 SNAME Aris STATUS 20 CITY Semarang Relasi Aljabar Difference (MINUS) A MINUS B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A, tetapi tidak terdapat pada B. A B Relasi Aljabar : Difference relasi baru A MINUS B : S SNAME S4 Eko STATUS CITY 20 Semarang STATUS CITY 10 Jakarta B MINUS A S SNAME S2 Heni Relasi Aljabar Cartesian Product ( / TIMES) A TIMES B adalah relasi yang terdiri dari semua himpunan tuples untuk setiap elemen relasi pada A dikombinasikan dengan semua elemen pada relasi B. Cartesian Product P Z P Z Q R K P Q Q R K Z K Z R K Relasi Aljabar Cartesian Product ( / TIMES) A TIMES B A A A A B B B B S SNAME STATU S CITY S SNAME STATUS CITY S1 Aris 20 Semarang S1 Aris 20 Semarang S1 Aris 20 Semarang S2 Heni 10 Jakarta S4 Eko 20 Jakarta S1 Aris 20 Semarang S4 Eko 20 Jakarta S2 Heni 10 Jakarta Contoh Cartesian Product EMP SAL EMP ENO ENAME TITLE E1 J. Doe Elect. Eng E2 M. Smith Syst. Anal. E3 A. Lee Mech. Eng. E4 J. Miller Programmer E5 B. Casey Syst. Anal. E6 L. Chu Elect. Eng. E7 E8 R. Davis J. Jones Mech. Eng. Syst. Anal. SAL TITLE ENO ENAME EMP.TITLE SAL.TITLE SAL E1 E1 E1 E1 E2 E2 E2 E2 E3 E3 E3 E3 J. Doe J. Doe J. Doe J. Doe M. Smith M. Smith M. Smith M. Smith A. Lee A. Lee A. Lee A. Lee Elect. Eng. Elect. Eng. Elect. Eng. Elect. Eng. Syst. Anal. Syst. Anal. Syst. Anal. Syst. Anal. Mech. Eng. Mech. Eng. Mech. Eng. Mech. Eng. Elect. Eng. Syst. Anal. Mech. Eng. Programmer Elect. Eng. Syst. Anal. Mech. Eng. Programmer Elect. Eng. Syst. Anal. Mech. Eng. Programmer 40000 34000 27000 24000 40000 34000 27000 24000 40000 34000 27000 24000 E8 E8 E8 E8 J. Jones J. Jones J. Jones J. Jones Syst. Anal. Syst. Anal. Syst. Anal. Syst. Anal. Elect. Eng. Syst. Anal. Mech. Eng. Programmer 40000 34000 27000 24000 SAL Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 Relasi Aljabar Restriction (σ) ekstraksi terhadap suatu tuples (baris) pada suatu relasi yang memenuhi kondisi tertentu. Kondisi untuk relasi, direpresentasikan menggunakan klausa WHERE dan dapat dikombinasikan dengan operator logika dan/atau matematika. Relasi Aljabar : Restriction (σ) Tuples (baris) yang memenuhi kondisi Relasi Aljabar : Restriction (σ) A WHERE CITY = ‘Semarang’ (CITY 'Semarang') ( A) S SNAME S1 Aris S4 Eko STATUS 20 CITY Semarang 20 Semarang Relasi Aljabar Projection (π) ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi tertentu. Atribut (kolom) yang memenuhi kondisi Relasi Aljabar : Projection (π) S , SNAME ( A) S S1 S4 SNAME Aris Eko Relasi Aljabar Natural Join (JOIN) membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasi tuples, dimana tuples pada relasi yang kedua memenuhi suatu kondisi tertentu (memiliki nilai atribut yang sama). Relasi Aljabar : Natural Join Natural Join a1 a2 a3 b1 b1 b2 b1 b2 b3 c1 c2 c3 a1 a2 a3 b1 b1 b2 c1 c1 c2 Jika suatu relasi yang tidak memiliki atribut yang memenuhi kodisi (memiliki nilai sama), maka A JOIN B adalah ekuivalen dengan A TIMES B. Natural Join EMP ENO E1 E2 E3 E4 E5 E6 E7 E8 ENAME TITLE J. Doe M. Smith A. Lee J. Miller B. Casey L. Chu R. Davis J. Jones Elect. Eng Syst. Anal. Mech. Eng. Programmer Syst. Anal. Elect. Eng. Mech. Eng. Syst. Anal. SAL TITLE Elect. Eng. Syst. Anal. Mech. Eng. Programmer SAL 70000 80000 56000 60000 EMP SAL SAL ENO ENAME E.TITLE E1 J. Doe Elect. Eng. 70000 E2 M. Smith Syst. Anal. 80000 E3 E4 A. Lee J. Miller Mech. Eng. Programmer 56000 60000 E5 B.Casey Syst.Anal 80000 E6 L. Chu Elect.Eng 70000 E7 R.Davis Mech.Eng 56000 E8 J. Jones Syst. Anal. 80000 Relasi Aljabar Devide (DEVIDEBY) A DEVIDEBY B adalah relasi dengan heading (X) dan terdiri dari himpunan semua tuples (X : x) dari tuples (X : x, Y : y) pada relasi A untuk semua tuples (Y : y) pada relasi B. Relasi Aljabar : Devide (DEVIDEBY) Devide a x x a a b c y z x y y a A sno S1 S1 S1 S1 S2 S2 S3 S4 S4 pno P1 P2 P3 P4 P1 P2 P2 P2 P4 B1 pno P2 B2 B3 A/B1 sno A/B2 S1 S2 pno P2 P4 pno P1 P2 P4 sno S1 S4 S3 S4 A/B3 sno s1 R ENO PNO E1 E2 E2 E3 E3 E4 E5 E6 E7 E8 P1 P1 P2 P1 P4 P2 P2 P4 P3 P3 PNAME BUDGET Instrumentation Instrumentation Database Develop. Instrumentation Maintenance Instrumentation Instrumentation Maintenance CAD/CAM CAD/CAM 150000 150000 135000 150000 310000 150000 150000 310000 250000 250000 S PNO PNAME P1 P4 Instrumentation Maintenance BUDGET 150000 310000 R/S ENO E3 Find the employees who work for both project P1 and project P4? Relasi Relasi Aljabar • secara aktual untuk membentuk relasi yang diharapkan dari suatu relasi yang terdapat pada basis data. • Perspektif. Relasi Kalkulus •memberikan notasi untuk memformulasikan definisi relasi yang diinginkan pada kondisi relasi yang diharapkan. •Deskriptif Relasi Relasi Aljabar •Memberikan prosedur untuk menyelesaikan permasalahan (prosedural). •Programming Language Relasi Kalkulus •Merepresentasikan kondisi suatu permasalahan (nonprosedural) •Natural language Relasi Kalkulus Relasi kalkulus merupakan bahasa yang berbasiskan first order predicate calculus. Ekspresi menyatakan sifat dari hasil yang diharapkan, tanpa menentukan bagaimana hasil tersebut di proses Relasi Kalkulus Ciri-ciri relasi kalkulus : First order calculus menggunakan simbol-simbol predikat dan simbol-simbol fungsi. Untuk kaitannya dengan basis data : simbol fungsi tidak diperlukan dan predikat diinterprestasikan sebagai relasi. Formula pada first order calculus dapat dibedakan ke dalam dua kelas : Open formulas (free variable) Closed formulas atau sentences yang memiliki variable terbatas. Ciri Relasi Kalkulus Open formula didefinisikan sebagai himpunan tuples elemen dari kondisi secara keseluruhan, yang dapat menghasilkan formula “TRUE”. Closed formula Karena kalkulus dipergunakan sebagai bahasa query dan basis data bertujuan untuk instant maupun relasi lainnya, maka closed formulas tidak diperhatikan. Relasi Kalkulus Domain Relational Calculus (DRC) Simbol yang muncul pada formula terdiri dari : konstan (elemen-elemen domain D), variabel (elemen-elemen dari himpunan berhingga V yang dihubungkan dengan domain D), nama relasi (tabel) dan atribut (berdasarkan skema basis data), operator perbandingan (=, ≠, >, >=, <, <=), penghubung logika (Λ ( dan / konjugsi), (V atau/disjungsi), ⌐ (not/negasi), ada/beberapa( ), dan semua ()) Relasi Kalkulus Ekspresi DRC A1 : x1 , A2 : x2 ,..., Ak : xk | f f f x1 , x2 ,..., x k A1 , A2 ,..., Ak A1 : x1 , A2 : x2 ,..., Ak : xk : formula, Boolean expression : variabel domain yang muncul pada : atribut-atribut : list target dari formula sebagai definisi struktur hasil ekspresi, dimana relasi A1, A2, …,Ak berisi tupel dengan nilai c1, c2, …, ck yang secara berurutan mengganti nilai x1, x2,…,xk yang memenuhi f (f = TRUE) Relasi Kalkulus Diberikan skema basis data silsilah dinasti keluarga REIGNS(Sovereign, From, To) PERSON(Name, Sex, Birth, Death) FATHERHOOD(Father, Child) MOTHERHOOD(Mother, Child) Relasi Kalkulus REIGNS(Sovereign, From, To) Sovereign James I Charles I Charles II James II Mary II Anne From 1603 1625 1660 1685 1688 1702 To 1625 1648 1685 1688 1694 1714 Relasi Kalkulus PERSON(Name, Sex, Birth, Death) Name James I Elizabeth Charles I Charles II Mary James II Henrietta A Mary II Anne James F.E Sex M F M M F M F F F M Birth 1566 Death 1625 1590 1600 1630 1662 1649 1685 1631 1633 1640 1659 1701 1670 1662 1665 1686 1694 1714 1766 Relasi Kalkulus FATHERHOOD(Father, Child) Father Lord Darnley James I Child James I Elizabeth James I Charles I Charles I Charles I Charles I Charles II Mary James II Charles I James II Herietta A Mary II James II Anne James II James F.E Relasi Kalkulus MOTHERHOOD(Mother, Child) Mother Child Mary Stuart Anne of Denmark James I Elizabeth Anne of Denmark Henrietta Maria Henrietta Maria Henrietta Maria Charles I Charles II Mary James II Henrietta Maria Anne Hyde Herietta A Mary II Anne Hyde Anne Mary of Modena James F.E Relasi Kalkulus Contoh : Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F). Bentuk DRC : N : x1 , B : x3 | PERSON N : x1 , Sex : x2 , B : x3 , D : x4 x2 ' F ' Relasi Kalkulus : DRC N : x1 , B : x3 | PERSON N : x1 , Sex : x2 , B : x3 , D : x4 x2 ' F ' Name Birth Elizabeth 1590 Mary 1631 Henrietta A 1640 Mary II 1662 Anne 1665 Relasi Kalkulus : DRC Mengambil Nama, Sex, dan dates (birth, death, mulai dan berakhirnya kekuasaan) untuk semua keluarga Sovereigns. Sovn : x1 , Sex : x2 , B : x3 , From : x4 , To : x5 , D : x6 | REIGNS Sovn : x1 , From : x4 , To : x5 PERSONS N : x1 , Sex : x2 , B : x3 , D : x6 Relasi Kalkulus : DRC Sovn : x1 , Sex : x2 , B : x3 , From : x4 , To : x5 , D : x6 | REIGNS Sovn : x1 , From : x4 , To : x5 PERSONS N : x1 , Sex : x2 , B : x3 , D : x6 Name Sex Birth From To Death James I M 1566 1603 1625 1625 Charles I M 1600 1625 1648 1649 Charles II M 1630 1660 1685 1685 James II M 1633 1685 1688 1701 Mary II F 1662 1688 1694 1694 Anne F 1665 1702 1714 1714 Relasi Kalkulus : DRC Mengambil nama-nama Sovereigns yang ayahnya diketahui, tetapi tidak terdapat pada list sebagai anggota dinasti. Sovn : x1 | REIGNS Sovn : x1 , From : x3 , To : x4 FATHERHOOD F : x2 , C : x1 x5 x6 x7 PERSON N : x2 , Sex : x5 , B : x6 , D : x7 Relasi Kalkulus : DRC Sovn : x1 | REIGNS Sovn : x1 , From : x3 , To : x4 FATHERHOOD F : x2 , C : x1 x5 x6 x7 PERSON N : x2 , Sex : x5 , B : x6 , D : x7 Sovereign James I Relasi Kalkulus Tuple Relational Calculus (TRC) Ekspresi dalam TRC memiliki bentuk : x x X | f f formula x Merupakan variabel tuple, satu-satunya variabel tuple di X Satu set atribut yang berkorespodensi dengan Nilai dari ekspresi adalah relasi dalam X yang berisi semua tuples yang menghasilkan . f TRUE Relasi Kalkulus : TRC Bentuk DRC Sovn : x1 , From : x2 , To : x3 | REIGNS Sovn : x1 , From : x2 , To : x3 Bentuk TRC xSovn, From, To | REIGNS x Relasi Kalkulus : TRC DRC Sovn : x1 , Sex : x2 , B : x3 , From : x4 , To : x5 , D : x6 | REIGNS Sovn : x1 , From : x4 , To : x5 PERSONS N : x1 , Sex : x2 , B : x3 , D : x6 TRC x1 Sovn, Sex, B, From, To, D | x2 Sovn, From, ToREIGNS ( x2 ) ( x2 .Sovn x1.Sovn) ( x2 .From x1.From) ( x2 .To x1.To) x3 Name, Sex, B, D PERSONS ( x3 ) ( x3 .Name x1 .Sovn) ( x3 .Sex x1 .Sex) ( x3 .B x1 .B) ( x3 .D x1 .D)