4 aljabar dan kalkulus relasional
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.
1. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan Cartesian Product.
Relasi Aljabar
- Codd mendefinisikan operator relasi aljabar terdiri dari delapan operator, terbagi menjadi dua kelompok :
2. 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
S SNAME STATUS CITY
S1 Aris
20 Semarang S4 Eko
20 Semarang
S SNAME STATUS CITY
Relasi Tabel ARelasi Tabel B
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
S SNAME STATUS CITY
S1 Aris
20 Semarang
Hasil A∩B
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 STATUS CITY
S4 Eko
20 Semarang
B MINUS A S SNAME STATUS CITY
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 K P K R Q Z
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
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 R. Davis Mech. Eng.
E8 J. Jones Syst. Anal. EMP TITLE SAL SAL ENO ENAME EMP.TITLE SAL.TITLE SAL E1 J. Doe Elect. Eng. E1 J. Doe Elect. Eng. E1 J. Doe Elect. Eng. E1 J. Doe Elect. Eng. Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 E2 M. Smith Syst. Anal. E2 M. Smith Syst. Anal. E2 M. Smith Syst. Anal. E2 M. Smith Syst. Anal. Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 Elect. Eng. 40000 Syst. Anal. 34000 Mech. Eng. 27000 Programmer 24000 E3 A. Lee Mech. Eng. E3 A. Lee Mech. Eng. E3 A. Lee Mech. Eng. E3 A. Lee Mech. Eng. EMP SAL Contoh Cartesian Product
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’
S SNAME STATUS CITY
S1 Aris
20 Semarang S4 Eko
20 Semarang
) ( )' ' (
A Semarang CITY
Atribut (kolom) yang memenuhi kondisi Relasi Aljabar : Projection (π) ( A )
Relasi Aljabar
- Projection (π)
- – ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi tertentu.
S , SNAME
S SNAME
S1 Aris S4 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).
Jika suatu relasi yang tidak memiliki atribut yang
Natural Join
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 R. Davis Mech. Eng.
E8 J. Jones Syst. Anal. EMP TITLE SAL SAL Elect. Eng. 70000 ENO ENAME E.TITLE SAL E1 J. Doe Elect. Eng. 70000 E2 M. Smith Syst. Anal. 80000 56000 80000 E3 A. Lee Mech. Eng. E8 J. Jones Syst. Anal. EMP SAL 60000 E4 J. Miller Programmer 80000 E5 B.Casey Syst.Anal 70000 E6 L. Chu Elect.Eng 56000 E7 R.Davis Mech.Eng
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 Devide x y a a x y a z b x sno pno S1 P1 S1 P2 S1 P3 S1 P4 S2 P1 S2 P2 S3 P2 S4 P2 pno P2 pno P2 P4
A
pno P1 sno s1 sno S1 S4 sno S1 S2 S3 S4
B1 B2 B3
A/B1 A/B2
E1 P1 Instrumentation 150000 BUDGET E2 P1 Instrumentation 150000 E2 P2 Database Develop. 135000 E3 P1 Instrumentation E3 P4 Maintenance E4 P2 Instrumentation E5 P2 Instrumentation E6 P4 E7 P3 CAD/CAM E8 P3 CAD/CAM 310000 150000 150000 310000 250000 250000
R Maintenance 150000 S PNO PNAME BUDGET P1 Instrumentation 150000
ENO PNO PNAME
ENO E3 R / S Find the employees who work for both project P1 and
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- prosedu
- 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)
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
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 /
Relasi Kalkulus
- Ekspresi DRC
f A : x , A : x ,..., A : x | f
1
1
2 2 k k
: formula, Boolean expression
f: variabel yang muncul pada x , x ,..., x
1 2 k : atribut-atribut
A , A ,..., A 1 2 k A : x , A : x ,..., A : x 1 1 2 2 k k : list target dari formula
sebagai definisi struktur hasil ekspresi, dimana relasi A , A , …,A berisi
1 2 k
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 1625 1648 Charles II 1660 1685 James II 1685 1688 Mary II 1688 1694
REIGNS(Sovereign, From, To)
Relasi Kalkulus Name Sex Birth Death
James I M 1566 1625 Elizabeth F 1590 1662 Charles I M 1600 1649 Charles II M 1630 1685 Mary F 1631 1659 James II M 1633 1701 Henrietta A F 1640 1670
PERSON(Name, Sex, Birth, Death)
Relasi Kalkulus Father
Child Lord Darnley James I James I
Elizabeth James I Charles I Charles I Charles II Charles I Mary Charles I James II Charles I Herietta A
FATHERHOOD(Father, Child)
Relasi Kalkulus Mother
Child Mary Stuart
James I Anne of Denmark Elizabeth Anne of Denmark Charles I Henrietta Maria Charles II Henrietta Maria Mary Henrietta Maria James II Henrietta Maria Herietta A
MOTHERHOOD(Mother, Child)
Relasi Kalkulus
- Contoh :
- Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F).
- Bentuk DRC :
N : x , B : x | PERSON N : x , Sex : x , B : x , D : x x ' F '
1 3 1 2 3 4 2
Relasi Kalkulus : DRC
Name BirthElizabeth 1590 Mary 1631 Henrietta A 1640 Mary II 1662
' ' : , : , : , : | : , : 2 4 3 2 1 3 1 F x x D x B x Sex x N PERSON x B x N
Relasi Kalkulus : DRC
- Mengambil Nama, Sex, dan dates (birth, death, mulai dan berakhirnya kekuasaan) untuk semua keluarga Sovereigns.
| : , : , : , : , : , : 6 5 4 3 2 1 D x x To x From x B x Sex x Sovn
5
4
1 : , : , :
To x x From x Sovn REIGNS
6 3 2 1
: , : , : , :
D x x B x Sex x N PERSONS
Relasi Kalkulus : DRC
Name Sex Birth From To DeathJames I M 1566 1603 1625 1625 Charles I M 1600 1625 1648 1649 Charles II M 1630 1660 1685 1685
| : , : , : , : , : , : 6 5 4 3 2 1 D x x To x From x B x Sex x Sovn
5
4
1 : , : , :
To x x From x Sovn REIGNS
6 3 2 1
: , : , : , :
D x x B x Sex x N PERSONS
Relasi Kalkulus : DRC
• Mengambil nama-nama Sovereigns yang
ayahnya diketahui, tetapi tidak terdapat
pada list sebagai anggota dinasti.
Sovn : x | 1
REIGNS Sovn : x , From : x , To : x 1 3 4
FATHERHOOD F : x , C : x 2 1
Relasi Kalkulus : DRC Sovereign
| : 1 Sovn x
4
3
1 : , : , : x To x From x Sovn REIGNS 1 2 : , : x C x F FATHERHOOD
7 6 5 2 7 6 5 : , : , : , :
D x x B x Sex x N PERSON x x x Relasi Kalkulus
- Tuple Relational Calculus (TRC)
- Ekspresi dalam TRC memiliki bentuk :
x X | f formula f
Merupakan variabel tuple, satu-satunya variabel tuple di x
Satu set atribut yang berkorespodensi dengan
X x
Relasi Kalkulus : TRC
| : , : , :
3
2
1 To x x From x Sovn
3 2 1
: , : , :
To x x From x Sovn REIGNS
REIGNS x To From Sovn x | , , Bentuk DRC Bentuk TRC Relasi Kalkulus : TRC DRC
Sovn : x , Sex : x , B : x , From : x , To : x , D : x | 1 2 3 4 5 6 REIGNS Sovn : x , From : x , To : x
1
4
5
PERSONS N : x , Sex : x , B : x , D : x
1 2 3 6 TRC x Sovn , Sex , B , From , To , D |
1 x Sovn , From , To REIGNS ( x )
2 2 ( x . Sovn x . Sovn ) ( x . From x . From ) ( x . To x . To ) 2
1 21
2 1