ALJABAR DAN KALKULUS RELASIONAL
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 : 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.
Relasi Aljabar : Union S SNAME STATUS CITY S1 Aris 20 Semarang S4 Eko Relasi Tabel A S SNAME STATUS CITY S1 Aris 20 Semarang S4 Eko Relasi Tabel B S SNAME STATUS CITY 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 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.
Relasi Aljabar : Intersect Hasil A∩B S SNAME STATUS CITY S1 Aris 20 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.
Relasi Aljabar : Difference relasi baru A MINUS B : S SNAME STATUS CITY S4 Eko 20 Semarang B MINUS A S SNAME STATUS CITY S2 Heni 10 Jakarta
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.
Relasi Aljabar Cartesian Product ( / TIMES) A TIMES B A B S SNAME STATUS CITY S1 Aris 20 Semarang S2 Heni 10 Jakarta S4 Eko
Contoh Cartesian Product 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 E6 L. Chu Elect. Eng. E7 R. Davis E8 J. Jones EMP ENO ENAME EMP.TITLE SAL.TITLE SAL E1 J. Doe Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 E2 M. Smith E3 A. Lee E8 J. Jones EMP SAL TITLE SAL Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000
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
Contoh Renaming (Temp (1 A_1, 5 A_2), T2 T3) A_1 B C D A_2 E F ……… a4 c2 d3 f4
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 (σ)
Relasi Aljabar : Restriction (σ) A WHERE CITY = ‘Semarang’ S SNAME STATUS CITY S1 Aris 20 Semarang S4 Eko
Relasi Aljabar Projection (π) ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi tertentu.
Relasi Aljabar : Projection (π) SNAME S1 Aris S4 Eko
Join Merupakan operasi yang digunakan untuk menggunakan informasi dari dua atau lebih relasi ( ). Condition Join Equijoin Natural Join 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
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
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
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 Condition Join T2 T2.A > T3.A T3 (A) B C D E F a2 b2 c1 d1 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
Natural Join EMP EMP SAL 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 E6 L. Chu Elect. Eng. E7 R. Davis E8 J. Jones EMP EMP SAL ENO ENAME E.TITLE SAL E1 J. Doe Elect. Eng. 70000 E2 M. Smith Syst. Anal. 80000 E3 A. Lee Mech. Eng. 56000 E4 J. Miller Programmer 60000 E5 B.Casey Syst.Anal 80000 TITLE SAL Elect. Eng. 70000 Syst. Anal. 80000 Mech. Eng. 56000 Programmer 60000 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)
sno pno S1 P1 P2 P3 P4 S2 S3 S4 sno S1 S2 S3 S4 pno P2 sno S1 S4 pno A sno pno S1 P1 P2 P3 P4 S2 S3 S4 sno S1 S2 S3 S4 B1 pno P2 A/B1 A/B2 sno S1 S4 B2 pno P2 P4 A/B3 sno s1 B3 pno P1 P2 P4
Find the employees who work for both project P1 and project P4? ENO PNO PNAME E1 P1 Instrumentation 150000 BUDGET E2 P2 Database Develop. 135000 E3 P4 Maintenance E4 E5 E6 E7 P3 CAD/CAM E8 310000 250000 R R / S ENO E3 Find the employees who work for both project P1 and project P4? S PNO PNAME BUDGET P1 Instrumentation 150000 P4 Maintenance 310000
Relasi Relasi Aljabar Relasi Kalkulus secara aktual untuk membentuk relasi yang diharapkan dari suatu relasi yang terdapat pada basis data. Perspektif. memberikan notasi untuk memformulasikan definisi relasi yang diinginkan pada kondisi relasi yang diharapkan. Deskriptif
Relasi Relasi Aljabar Relasi Kalkulus Memberikan prosedur untuk menyelesaikan permasalahan (prosedural). Programming Language Merepresentasikan kondisi suatu permasalahan (non-prosedural) 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 Closed 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 : formula, Boolean expression : variabel 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 Sovereign From To James I 1603 1625 Charles I 1648 REIGNS(Sovereign, From, To) Sovereign From To James I 1603 1625 Charles I 1648 Charles II 1660 1685 James II 1688 Mary II 1694 Anne 1702 1714
Relasi Kalkulus Name Sex Birth Death James I M 1566 1625 Elizabeth F PERSON(Name, Sex, Birth, Death) Name Sex Birth Death James I M 1566 1625 Elizabeth F 1590 1662 Charles I 1600 1649 Charles II 1630 1685 Mary 1631 1659 James II 1633 1701 Henrietta A 1640 1670 Mary II 1694 Anne 1665 1714 James F.E 1686 1766
Relasi Kalkulus Father Child Lord Darnley James I Elizabeth Charles I FATHERHOOD(Father, Child) Father Child Lord Darnley James I Elizabeth Charles I Charles II Mary James II Herietta A Mary II Anne James F.E
Relasi Kalkulus Mother Child Mary Stuart James I Anne of Denmark MOTHERHOOD(Mother, Child) Mother Child Mary Stuart James I Anne of Denmark Elizabeth Charles I Henrietta Maria Charles II Mary James II Herietta A Anne Hyde Mary II Anne Mary of Modena James F.E
Relasi Kalkulus Contoh : Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F). Bentuk DRC :
Relasi Kalkulus : DRC 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.
Relasi Kalkulus : DRC Name Sex Birth From To Death James I M 1566 1603 1625 Charles I 1600 1648 1649 Charles II 1630 1660 1685 James II 1633 1688 1701 Mary II F 1662 1694 Anne 1665 1702 1714
Relasi Kalkulus : DRC Mengambil nama-nama Sovereigns yang ayahnya diketahui, tetapi tidak terdapat pada list sebagai anggota dinasti.
Relasi Kalkulus : DRC Sovereign James I
Relasi Kalkulus Tuple Relational Calculus (TRC) Ekspresi dalam TRC memiliki bentuk : formula Merupakan variabel tuple, satu-satunya variabel tuple di Satu set atribut yang berkorespodensi dengan Nilai dari ekspresi adalah relasi dalam yang berisi semua tuples yang menghasilkan .
Relasi Kalkulus : TRC Bentuk DRC Bentuk TRC
Relasi Kalkulus : TRC DRC TRC