Relasi Aljabar Relasi Kalkulus

Download Report

Transcript Relasi Aljabar Relasi Kalkulus

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 ,...,xk
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
xSovn, 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, ToREIGNS( 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)