Sistem Basis Data
Pertemuan 6
Relational Algebra
Tujuan Pertemuan
•
Mahasiswa memahami prinsip dasar
relational algebra.
•
Mahasiswa mampu menggunakan operator
selection, projection.
•
Mahasiswa mampu menggunakan operator
product, theta-join, natural join & renaming.
•
Mahasiswa mampu membuat complex
expressions pada relational algebra.
•
Mahasiswa akan mampu membuat bahasa
query formal berupa relational algebra.
Algebra
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 3
•
Algebra adalah sistem
matematika yang terdiri dari:
–
Operands
variabel atau nilai
dimana nilai baru akan terbentuk
darinya.
–
Operators
Simbol yang
menyatakan prosedur
pembentukan nilai baru dari
nilai-nilai yang diberikan (pada
Relational Algebra
•
Relational Algebra adalah:
–
Suatu algebra dimana
operands
–nya
adalah relasi-relasi atau variabel-variabel
yang merepresentasikan relasi-relasi.
–
Menggunakan
operators
yang didisain untuk
melakukan hal-hal yang paling umum yang
perlu kita lakukan terhadap relasi-relasi
pada suatu database.
•
Hasilnya adalah suatu algebra yang dapat
digunakan sebagai bahasa query (
query
language
) pada relasi-relasi.
Core (Inti) Relational
Algebra
•
Union
,
intersection
, dan
difference
.
–
Set operasi biasa, tapi dua operand yang
digunakan harus memiliki skema relasi yang
sama.
•
Selection
: Pemilihan baris (tuples) data
tertentu.
•
Projection
: Pemilihan kolom (attributes)
data tertentu.
•
Products
dan
joins
: Komposisi relasi.
•
Renaming
terhadap relasi dan attributes.
Selection (σ / theta)
–
C
adalah kondisi (seperti dalam
statement
“
if
”) yang
me-
refer
pada
atributes
-nya
R2
.
–
R1
adalah tuples dari
R2
yang memenuhi kondisi
yang ditetapkan di
C
.
•
Contoh:
Relasi Sells:
JoeMenu :=
σ
bar=“Joe’s”(Sells):
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 6
R1 :=
σ
C
(R2)
bar
bee
r
pric
e
Joe’
s
Joe’
s
Sue’
s
Sue’
s
Bud
Mille
r
Bud
Mille
r
2.5
0
2.7
5
2,5
0
3.0
0
bar
bee
r
pric
e
Joe’s
Joe’s
Bud
Mille
r
Projection (π / Pi)
•
L
adalah daftar attributes dari skema relasi
R2
.
•
R1
dibentuk dengan melihat setiap tuple pada
R2
,
ekstraksi atribut pada daftar
L
(sesuai urutan pada daftar),
dan dibuat tuple untuk
R1
dari komponen tersebut.
•
Eliminasi
tuples yang duplikat, jika ada.
•
Contoh:
Relasi
Sells
:
Prices :=
π
beer,price(Sells)
:
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 7
•
R1 :=
π
L
(R2)
Projection Lanjutan
•
Dengan menggunakan operator
π
Lyang sama,
dimungkinkan untuk daftar
L
berisi ekspresi yang
melibatkan attributes:
–
Arithmetic terhadap attributes,
Contoh; A+B->C.
–
Melakukan duplikasi kemunculan attribute yang sama,
A+B->C,A,A
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 8
A
B
1
3
2
4
R = ( )πA+B->C,A,A (R) =
C A1 A2
3
Product (X)
•
Pasangkan tiap tuple t1 (dari R1) dengan tiap tuple t2 (dari R2)
•
Rentetan/Penggabungan t1t2 tersebut merupakan tuple dari R3
•
Skema dari R3 merupakan atribute2 dari R1 dan kemudian R2, secara
berurutan.
•
Hati2 dengan attribute yang memiliki nama sama di R1 dan R2; misal
attribute A terdapat di R1 maupun R2, maka gunakan: R1.A dan R2.A
•
Contoh: R3 := R1 X R2
.
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 9
•
R3 := R1 Χ R2
A
B
1
3
2
4
R1 = ( )
A R1.
B
R2.
B
C
1
1
1
3
3
3
2
2
2
4
4
4
5
7
9
5
7
9
6
8
10
6
8
10
B
C
5
7
9
6
8
10
R2 = ( )
Theta–join (⋈
C
)
–
Lakukan product
R1 Χ R2
,
–
Kemudian aplikasikan
σ
Cuntuk mendapatkan hasil.
–
C
adalah kondisi yang memiliki nilai boolean.
•
Operator yang boleh digunakan A
B, dimana
is =, <, dst.;
karenanya operasi ini dinamakan “theta-join.”
Contoh:
.
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 10
R3 := R1
⋈
C
R2
Bar,
Beer
,
pric
e
Joe’s
Joe’s
Sue’
s
Sue’
s
Bud
Miller
Bud
Miller
2.50
2.75
2,50
3.00
bar
beer
price Name
Addr
Joe’
s
Joe’
s
Sue’
s
Sue’
s
Bud
Miller
Bud
Miller
2.50
2.75
2,50
3.00
Joe’s
Joe’s
Sue’s
Sue’s
Maple
St.
Maple
St.
River
Rd.
River
Rd.
Sells ( )
Nam
e,
Addr
Joe’s
Sue’s
Maple
St.
River
Rd.
Bars ( )
BarInfo := Sells ⋈
Sells.bar = Bars.nameBars
Natural join (⋈)
–
Natural join menggabungkan dua relasi dengan cara:
•
Menyamakan attribute yang memiliki nama sama, dan
•
Memproyeksikan satu attribute untuk tiap pasang attribute
yang sama
Contoh:
.
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 11
R3 := R1
⋈
R2
Bar,
Beer
,
Pric
e
Joe’s
Joe’s
Sue’
s
Sue’
s
Bud
Miller
Bud
Miller
2.50
2.75
2,50
3.00
Bar
Beer
Pric
e
Addr
Joe’
s
Joe’
s
Sue’
s
Sue’
s
Bud
Miller
Bud
Miller
2.50
2.75
2,50
3.00
Maple
St.
Maple
St.
River
Rd.
River
Rd.
Sells ( )
Bar,
Addr
Joe’s
Sue’s
Maple
St.
River
Rd.
Bars ( )
BarInfo := Sells ⋈
Bars
Renaming (ρ)
•
operator
ρ
menghasilkan skema baru pada suatu relasi.
•
R1 :=
ρ
R1(A1,…,An)(R2)
, membuat R1 menjadi relasi dengan
attributes A1,…,An dan memiliki tuples yang sama dengan R2.
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 12
Simplified notation:
R1(A1,…,A
n
)
:= R2
Nam
e,
Addr
Joe’s
Sue’s
Maple
St.
River
Rd.
Bars ( )
Contoh:
R(bar, addr)
:=
Bars
bar,
addr
Joe’s
Sue’s
Maple
St.
River
Rd.
Building Complex
Expressions
•
Kombinasikan operator dengan tanda
kurung dan sesuai aturannya
•
Tiga notasi, seperti dalam aritmatika:
1. Sequences of assignment statements.
Urutan dari instruksi tugas
2. Expressions with several operators.
Ekspresi dengan beberapa operator
3. Expression trees.
Pohon ekspresi
Sequences of Assignments
•
Buat nama relasi sementara.
•
Renaming dapat dilakukan dengan
menyertakan attributes pada relasi
•
Contoh:
R3 := R1
⋈
C
R2 , Dapat ditulis
menjadi:
R4 := R1
Χ
R2
R3 :=
σ
C
(R4)
Expressions with several operators
(
Expressions in a Single Assignment
)
•
Contoh:
theta-join R3 := R1
⋈
C
R2 can be written:
R3 :=
σ
C
(R1
Χ
R2)
•
Urutan prioritas operator-operator
relational:
1. [
σ
,
π
,
ρ
] (
prioritas tertinggi
).
2. [
Χ
,
⋈
].
3.
∩
.
4. [
∪
,
—
]
Expression trees
•
Leaves (daun) adalah operands ---
termasuk variables untuk relasi atau
konstanta relasi tertentu.
•
Interior nodes (titik yang bukan
leaves) adalah operators, yang
diaplikasikan kepada child atau
children–nya (titik dibawahnya).
Expression trees
Contoh: Tree untuk Query
•
Gunakan relasi
Bars(name, addr)
dan
Sells(bar,
beer, price)
, cari nama-nama dari semua bar
yang terletak di Maple St. atau yang menjual Bud
dengan harga kurang dari $3.
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 17
Bars
Sells
σ
addr = “Maple St.”σ
price<3 AND beer=“Bud”π
nameρ
R(name)π
barExpression trees
Contoh: Self-Join
•
Gunakan
Sells(bar, beer, price)
, Cari bar yang
menjual dua beer yang berbeda tapi harganya sama.
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 18
Strategy
:
Lakukan
copy
sells
dengan nama
S
dan
rename
attribute
beer beer1 sehingga
menjadi
S(bar, beer1, price)
.
Lakukan
natural join
Sells
dan
S
sehingga
menjadi
quadruples (bar, beer,
beer1, price)
hingga
bisa diketauhi Bar
yang menjual dua
beer berbeda dengan
harga yang sama
Sells
Sells
ρ
S(bar, beer1, price)⋈
π
barSkema dari hasil operasi
•
Union
,
intersection
, dan
difference
:
Skema dari dua operands harus sama, jadi skema relasi dari hasil
operasi tersebut sama dengan skema operand.
•
Selection
:
Skema relasi dari hasil operasi sama dengan skema
operands.
•
Projection
:
Daftar atribut menentukan skema relasi hasil
operasi.
•
Product
:
Skema hasil relasi adalah berupa atribut gabungan
dari atribut-atribut dua operands.
(Gunakan penulisan R.A, untuk mengatasi attribute yang memiliki
nama sama)
•
Theta-join
:
sama dengan operasi product.
•
Natural join
:
Gabungan dari atribut-atribut dua relasi.
•
Renaming
:
Operator yang menentukan skema relasi hasil.
Quiz
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 20
Mhs
Mhs
Jur
Jur
Fak
Fak
Kasus
1. Mhs_Ik := σ
jurusan=“IK”(Mhs)
2. Mhs_Jur := π
nama,jurusan(Mhs)
3. Mhs_lengkap := Mhs X Jur
4. InfoMhs := Mhs ⋈
Mhs.jurusan = Jur.kd_jurJur
5. InfoMhs := Mhs ⋈ Jur
6. Berdasarkan relational algebra
pada no 4
a. Buat sequence of
assignment-nya
tugas
1.
σ
A+B < 5
(R) = …
2.
π
A
(R) = …
AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 21
B
C
5
7
9
6
8
10
R2 = ( )
A
B
1
5
1
2
6
2
R = ( )
B
C
3
7
4
8
S = ( )
3. R
Χ
S = …
See You Next Session
•
Thank’s