ALJABAR DAN KALKULUS RELASIONAL RELASI Relasi Aljabar Relasi
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 : 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.
Relasi Aljabar : Union Relasi Tabel A S S 1 S 4 SNAME STATUS 20 20 CITY Semarang SNAME STATUS 20 10 CITY Semarang Jakarta Aris Eko Relasi Tabel B S S 1 S 2 Aris Heni
Relasi Aljabar : Union • Hasil Relasi A U B S SNAME STATUS CITY S 1 Aris 20 Semarang S 2 Eko 20 Semarang S 4 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 S 1 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.
Relasi Aljabar : Difference relasi baru A MINUS B : S SNAME S 4 Eko STATUS CITY 20 Semarang STATUS CITY 10 Jakarta B MINUS A S SNAME S 2 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.
Relasi Aljabar Cartesian Product ( / TIMES) • A TIMES B A A B B S SNAME STATU S CITY S SNAME STATUS CITY S 1 Aris 20 Semarang S 2 Heni 10 Jakarta S 4 Eko 20 Jakarta S 1 Aris 20 Semarang S 4 Eko 20 Jakarta S 2 Heni 10 Jakarta
Contoh Cartesian Product EMP SAL EMP ENO ENAME TITLE E 1 J. Doe Elect. Eng E 2 M. Smith Syst. Anal. E 3 A. Lee Mech. Eng. E 4 J. Miller Programmer E 5 B. Casey Syst. Anal. E 6 L. Chu Elect. Eng. E 7 E 8 R. Davis J. Jones Mech. Eng. Syst. Anal. SAL TITLE SAL Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 ENO ENAME EMP. TITLE SAL E 1 E 1 E 2 E 2 E 3 E 3 J. Doe M. Smith A. Lee Elect. Eng. Syst. Anal. Mech. Eng. Programmer Elect. Eng. Syst. Anal. Mech. Eng. Programmer 40000 34000 27000 24000 E 8 E 8 J. Jones Syst. Anal. Elect. Eng. Syst. Anal. Mech. Eng. Programmer 40000 34000 27000 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), T 2 T 3) A_1 B C D A_2 E F a 1 b 1 c 1 d 1 a 1 e 1 f 1 a 1 b 1 c 1 d 1 a 2 e 2 f 2 a 1 b 1 c 1 d 1 a 3 e 1 f 3 a 4 b 1 c 2 d 3 a 2 e 2 f 2 a 4 b 1 c 2 d 3 a 3 e 1 f 3 a 4 b 1 c 2 d 3 a 4 e 2 f 4 ……… ………
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 S 1 Aris S 4 Eko STATUS 20 CITY Semarang 20 Semarang
Relasi Aljabar • Projection (π) • ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi tertentu.
Relasi Aljabar : Projection (π) S S 1 S 4 SNAME Aris Eko
Join Merupakan operasi yang digunakan untuk menggunakan informasi dari dua atau lebih relasi ( ). • Equijoin • Natural Join Sistem / Teknologi Basis Data 22 • Condition Join
Condition Join R c S = c (R S) • Jadi, Condition Join ditentukan untuk menjadi sebuah Cross – Product yang diikuti dengan satu selection. Sistem / Teknologi Basis Data 23 • Condition Join identik dengan Selection Condition. Bentuk operasinya yakni :
• Satu kasus khusus yang biasa terjadi pada operasi join R S adalah pada saat condition join hanya terdiri dari equality dari bentuk R. name 1 = S. name 1, 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 24 Equijoin
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 25 Natural Join
Contoh Selection dan Projection Misalkan : T 3 T 2 A B C D A E F a 1 b 1 c 1 d 1 a 1 e 1 f 1 a 2 b 1 c 2 d 1 a 2 b 2 c 1 d 1 a 2 e 2 f 2 a 2 b 2 c 2 d 1 a 4 b 1 c 2 d 3 a 3 e 1 f 3 a 3 b 2 c 3 d 3 a 4 e 2 f 4 Sistem / Teknologi Basis Data T 1 26
Contoh Condition Join T 2. A > T 3. A T 3 (A ) B C D (A) E F a 2 b 2 c 1 d 1 a 1 e 1 f 1 a 4 b 1 c 2 d 3 a 2 e 2 f 2 a 4 b 1 c 2 d 3 a 3 e 1 f 3 Sistem / Teknologi Basis Data T 2 27
Contoh Equijoin & Natural Join T 2. A = T 3. A T 3 A B C D E F a 1 b 1 c 1 d 1 e 1 f 1 a 2 b 2 c 1 d 1 e 2 f 2 a 4 b 1 c 2 d 3 e 2 f 4 Contoh tersebut dapat juga ditulis menjadi : T 2 T 3 Sistem / Teknologi Basis Data T 2 28
Natural Join EMP ENO E 1 E 2 E 3 E 4 E 5 E 6 E 7 E 8 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 560000 EMP SAL ENO ENAME E. TITLE E 1 J. Doe Elect. Eng. 70000 E 2 M. Smith Syst. Anal. 80000 E 3 E 4 A. Lee J. Miller Mech. Eng. Programmer 560000 E 5 B. Casey Syst. Anal 80000 E 6 L. Chu Elect. Eng 70000 E 7 R. Davis Mech. Eng 56000 E 8 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)
A sno S 1 S 1 S 2 S 3 S 4 pno P 1 P 2 P 3 P 4 P 1 P 2 P 2 P 4 B 1 pno P 2 B 3 pno P 2 P 4 pno P 1 P 2 P 4 A/B 1 sno A/B 2 S 1 S 2 sno S 1 S 4 S 3 S 4 A/B 3 sno s 1
R ENO PNO E 1 E 2 E 3 E 4 E 5 E 6 E 7 E 8 P 1 P 2 P 1 P 4 P 2 P 4 P 3 PNAME BUDGET Instrumentation Database Develop. Instrumentation Maintenance CAD/CAM 150000 135000 150000 310000 250000 S PNO PNAME P 1 P 4 Instrumentation Maintenance BUDGET 150000 310000 R/S ENO E 3 Find the employees who work for both project P 1 and project P 4?
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 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 : formula, Boolean expression : variabel yang muncul pada : atribut-atribut : list target dari formula sebagai definisi struktur hasil ekspresi, dimana relasi A 1, A 2, …, Ak berisi tupel dengan nilai c 1, c 2, …, ck yang secara berurutan mengganti nilai x 1, x 2, …, 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 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 Sex James I Elizabeth Charles I M F M Birth 1566 1590 1600 Death 1625 1662 1649 Charles II Mary James II Henrietta A Mary II Anne M F F F 1630 1631 1633 1640 1662 1665 1685 1659 1701 1670 1694 1714 James F. E M 1686 1766
Relasi Kalkulus FATHERHOOD(Father, Child) Father Lord Darnley James I Child James I Elizabeth Charles I Charles I James II Charles II Mary James II Herietta A Mary II Anne James F. E
Relasi Kalkulus MOTHERHOOD(Mother, Child) Mother Child Mary Stuart Anne of Denmark James I Elizabeth Charles I Henrietta Maria Anne Hyde Mary of Modena Charles II Mary James II Herietta A Mary II Anne 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 M 1600 1625 1648 1649 Charles II M 1630 1660 1685 James II M 1633 1685 1688 1701 Mary II F 1662 1688 1694 Anne F 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
- Slides: 54