Uploaded by Wildan Muttaqien

Aljabar Relasional

advertisement
Pemrograman Basis Data
Relational Algebra
(Aljabar Relasional)
Teknik Informatika
FIKOM Univ. Duta Bangsa Surakarta
Muslim Heri K,
INTRODUCE
2
3
Pengantar Al Jabar
4
 ditemukan oleh Abu Abdullah
Muhammad Ibn Musa alKhwarizmi.
 bahasa arab "al-jabr"  hubungan
atau penyelesaian.
 Aljabar dapat didefinisikan sebagai
suatu cabang ilmu matematika yang
mempelajari konsep atau prinsip
penyederhanaan serta pemecahan
masalah dengan menggunakan simbol
atau huruf tertentu.
Bahasa Query
 Bahasa yang digunakan
user untuk melakukan
request informasi dari basis data
 Kategori Bahasa :
 Prosedural
 Non-prosedural
 Bahasa “Murni” (“Pure”
 Aljabar Relasional
languages) :
Tuple Relational Calculus
 Domain Relational Calculus


Pure languages membentuk dasar bahasa query
yang digunakan user.
Aljabar Relasional (Bahasa Prosedural)
6
 Kumpulan operasi terhadap tabel, dimana
setiap operasi menggunakan satu atau
lebih tabel untuk menghasilkan satu tabel
yang baru.
 Lebih bersifat operasional, sangat berguna
untuk merepresentasikan eksekusi
perencanaan.
 Masukannya  >1 tabel relasi
 Keluarannya  tabel baru
Operasi dasar Aljabar Relasional
7
Operasi-operasi Dasar
a) Selection
b) Projection
c) Union
d) Set difference
e) Cross Product
f) Rename
σ
π
ᴗ
X
ᵨ
Operasi Tambahan Aljabar Relasional
8
Operasi-operasi Dasar :
a) Intersection
b) Natural Join
c) Division
ᴖ
( )
÷
Jenis Operasi
9
Unary terdiri dari selection, projection.
Disebut operasi unary, karena dapat digunakan hanya
 Operasi
pada satu tabel.
 Operasi Binary terdiri dari union, intersection, set
difference, cartesian product, join dan division.
Disebut operasi binary, karena memerlukan sepasang
tabel.
Logika Penghubung
10
Unary
(1 tabel)
Operasi
Aljabar
Relasional
Selection
Projection
Union
Binary
(>1 tabel)
Intersction
Cross
Product
Set
defference
Operasi Selection (σ)
11
 Operasi yang digunakan untuk memilih subset dari tuple-
tuple (record) pada suatu tabel.
 Notasi : σp(t)
 p disebut selection predicate (yang menentukan pemilihan)
 p merupakan formula dari kalkulus perbandingan
(proportional calculus) yang berisi terms yang
dihubungkan oleh : ^ (and), v (or), ~ (not)
setiap term salah satu dari :
<atribut> op <atribut> or <konstanta>
atau
<atribut> op <atribut>
dengan op salah satu dari : =, ≠, >, ≥, <, ≤
Operasi Selection (lanj)
12
Contoh :  tabel Siswa
σprodi=“MI” (siswa)
NIM
Nama
Prodi
Smtr
Kota
A001
Naufal
TI
2
Solo
A002
Haikal
TI
4
Klaten
B001
Fadilla
SI
6
Yogya
C001
Nayla
MI
2
Solo
C002
Zafran
MI
4
Wonogiri
D001
Gibran
TI
4
Solo
Operasi Selection (lanj)
13
Hasilnya : suatu relasi dengan tuple-tuple yang memiliki
jenis sama dengan action, yaitu prodi “MI”
NIM
Nama
Prodi
Smtr
Kota
C002
Nayla
MI
2
Solo
C002
Zafran
MI
4
Wonogiri
Operasi Selection (lanj)
14
Contoh lain:
 σprodi=“MI” v
NIM
Kota=“Solo”(siswa)
Nama
Prodi
Smtr
Kota
A001
Naufal
TI
2
Solo
C001
Nayla
MI
2
Solo
C002
Zafran
MI
4
Wonogiri
D001
Gibran
TI
4
Solo
σprodi=“MI”
NIM
C001
^ Kota=“Solo”(siswa)
Nama
Nayla
Prodi
MI
Smtr
Kota
2
Solo
Operasi Projection (p)
15
 Operasi yang digunakan untuk memilih subset (field)
dari kolom-kolom pada suatu tabel
 Notasi : pA1,A2,…,An(t), dimana A1, A2, …, An adalah
daftar nama atribut dan t adalah nama suatu tabel.
 Hasilnya : suatu tabel dengan atribut yang tercantum
pada daftar nama atribut pada operasi.
Operasi Projection (lanj)
16
Contoh : dilakukan operasi σ (pNIM, Nama, Kota(Siswa) )pada
tabel Siswa sebagai berikut :
NIM
Nama
Prodi
Smtr
Kota
A001
Naufal
TI
2
Solo
A002
Haikal
TI
4
Klaten
B001
Fadilla
SI
6
Yogya
C002
Nayla
MI
2
C002
Zafran
MI
D001
Gibran
TI
Hasilnya :
NIM
Nama
Kota
Solo
A001
Naufal
Solo
4
Wonogiri
A002
Haikal
Klaten
4
Solo
B001
Fadilla
Yogya
C002
Nayla
Solo
C002
Zafran
Wonogiri
D001
Gibran
Solo
Contoh Operasi Projection (lanj)
17
p Nama,prodi(σ prodi=“SI”(Siswa))
Nama
Fadilla
Prodi
SI
p Nama,prodi,Kota(σ prodi=“TI” ^ Kota=“Solo”
(Siswa))
Nama
Prodi
Kota
Naufal
TI
Solo
Gibran
TI
Solo
Latihan Operasi Selection + Rejection
18
1. Tampilkan Nim,nama,prodi,smtr khusus untuk prodi TI atau
SI yang smtr >2!
2. Tampilkan NIM,nama,prodi,Kota khusus untuk Kota Solo atau
Yogya yang prodi TI
NIM
A001
A002
B001
C001
C002
D001
Nama
Naufal
Haikal
Fadilla
Nayla
Zafran
Gibran
Prodi
TI
TI
SI
MI
MI
TI
Smtr
2
4
6
2
4
4
Kota
Solo
Klaten
Yogya
Solo
Wonogiri
Solo
Operasi Binary (lebih dari satu table)
19
NIM
Nama
Prodi
Smtr
Kota
A001
Naufal
TI
2
Solo
A002
Haikal
TI
4
Klaten
B001
Fadilla
SI
6
Yogya
C001
Nayla
MI
2
Solo
C002
Zafran
MI
4
Wonogiri
D001
Gibran
TI
4
Solo
NIM
Kd_mk
Nilai
A001
M001
A
A001
M005
C
A001
M003
A
A002
M001
B
A002
M003
B
B001
M002
C
Smtr
B001
M003
B
Kd_mk Nm_matkul
SKS
M001
Bhs. Inggris
2
2
C002
M002
B
M002
Simbada
3
4
C002
M003
A
M003
Algorithma
3
6
C002
M001
A
M004
Akuntansi
2
2
D001
M001
C
M005
Jarkom 1
3
4
Operasi Union/Gabungan ()
20
 Operasi yang digunakan untuk menggabungkan hasil
dari beberapa query.
 Notasi : r  s, menghasilkan suatu tabel baru yang
elemen barisnya merupakan elemen dari r dan s, tidak
ada duplikasi data.
 Untuk r  s harus valid : r, s harus memiliki jumlah
atribut yang sama.
Operasi Union/Gabungan (lanj)
21
 tabel r

tabel s
A
B
C
A
B
C
aa
1
7
aa
5
7
bb
5
7
cc
4
4
bb
12
7
dd
10
7
dd
23
10
aa
6
10
 pA(r)  pA(s)
A
aa
bb
dd
cc
Contoh Operasi Union ()
22
pNIM(siswa)  pNIM (krs)
p kd_mk(matkul)  p kd_mk (krs)
NIM
Kd_mk
A001
M001
A002
M005
B001
M003
C002
M002
D001
M004
C001
Operasi Intersection/Irisan ()
23
r  s, menghasilkan suatu tabel baru dengan elemen
barisnya merupakan elemen yang terdapat pada tabel r dan
elemen tersebut juga terdapat pada tabel s, tidak ada
duplikasi data. r dan s harus memiliki jumlah atribut yang
 Notasi :
sama.
 tabel r

tabel s
A
B
a
1
a
2
b
1
rs
A
B
a
2
b
3
A
B
a
2
Contoh Operasi Intersection ()
24
pNIM(siswa)  pNIM (krs)
p kd_mk(matkul)  p kd_mk (krs)
NIM
A001
A002
Kd_mk
M001
B001
M005
C002
M003
D001
M002
Operasi Set Difference (–)
25
r – s, hasilnya tabel yang elemen barisnya
terdapat pada r tetapi tidak terdapat di s. r dan s
 Notasi
harus memiliki jumlah atribut yang sama.
 tabel r
 tabel s
A
B
C
A
B
C
aa
1
7
aa
5
7
bb
5
7
cc
4
4
bb
12
7
dd
10
7
dd
23
10
aa
6
10
 pA(r) - pA(s)
A
bb
Contoh Operasi Set Difference (-)
26
pNIM(siswa) - pNIM (krs)
 Menampilkan data siswa yg tidak terdapat pada tabel KRS
p kd_mk(matkul) - p kd_mk (krs)
 Menampilkan data matkul yg tidak terdapat pada tabel KRS
NIM
C001
Kd_mk
M004
Operasi Cross/Cartesian-Product (X)
27
r x s, menghasilkan semua kombinasi baris/tuple dari 2 buah tabel,
yaitu tabel r dan s. Jumlah atribut tidak harus sama.
 Notasi
 Mendapatkan record yang terdapat dalam relasi 1, tapi tidak terdapat pada
relas 2
 Contoh :
tabel r :
tabel s :
A
B
a
1
b
3
maka r x s :
A
B
C
D
a
1
a
6
a
1
b
5
a
1
c
12
b
3
a
6
C
D
b
3
b
5
a
6
b
3
c
12
b
5
c
12
Contoh1 Operasi Cross/Cartesian-Product (X)
28
Biasanya diikuti operasi lainnya
Menampilkan NIM, Nama, Prodi (tabel Siswa),
kd_mk,Nilai(tabel KRS) khusus yang nilai A
pNIM,Nama,Prodi,kd_mk,nilai(σ nilai=“A” ^
KRS.NIM=siswa.NIM(KRS x Siswa))
NIM
A001
A001
C002
C002
Nama
Naufal
Naufal
Zafran
Zafran
Prodi Kd_mk
M001
TI
M003
TI
M003
MI
M001
MI
Nilai
A
A
A
A
Contoh2 Operasi Cartesin/Cross-Product (X)
29
 Menampilkan kd_mk,nilai(tabel KRS),NIM,nama(tabel Siswa),
khusus yang Nim-nya A001
pNIM,Nama,kd_mk,nilai, (σ NIM=“A001” ^
krs.NIM=siswa.NIM(krs x siswa))
NIM
ATAU
Nama
Kd_mk
Nilai
A001
Naufal
M001
A
A001
Naufal
M005
C
A001
Naufal
M003
A
σ NIM=“A001” ^ krs.NIM=siswa.NIM((pNIM,Nama(siswa) x
pkd_mk,nilai(krs))
Latihan Cross-Product
30
Dari ke3 tabel di atas, tuliskan aljabar relasional utk:
1. Tampilkan kd_mk,nim,nilai (tabel krs), nm_mk,smtr(tabel
matkul) khusus yang smtr-nya 4!
2. Tampilkan kd_mk,nim,nilai (tabel krs), nm_mk,sks(tabel
matkul) khusus yang NIM-nya ”A001”!
Download