aljabar relasional

advertisement
BASIS DATA
ALJABAR RELASIONAL
Oleh
Team Teaching Basis Data
23 Juli 2017
BASIS DATA
1
Aljabar Relational
Yaitu sekumpulan operasi yang digunakan
untuk melakukan proses manipulasi data dalam
rangka untuk mendapatkan informasi yang
diperlukan dari database
23 Juli 2017
BASIS DATA
2
Aljabar Relational, Cont’d…
Secara umum dibagi menjadi 2:
operasi himpunan (UNION, INTERSECTION,
DIFFERENCE, dan CARTESIAN PRODUCT)
operasi yang dikembangkan secara khusus
untuk database relational. (SELECT,
PROJECT dan JOIN)
Istilah Relasi, dalam bahasan ini dipergunakan untuk
penamaan tabel beserta datanya baik yang murni
maupun yang sudah dilakukan modifikasi dengan
operasi-operasi aljabar relasional.
23 Juli 2017
BASIS DATA
3
Contoh Database
23 Juli 2017
BASIS DATA
4
Operasi SELECT
Untuk memilih baris tertentu dari
sebuah himpunan baris data
(record) yang memenuhi kondisi
dan membuang baris yang lain.
Notasi :
<kondisi pilihan> (<nama relasi>)
23 Juli 2017
BASIS DATA
5
Operasi SELECT, Cont’d…
CONTOH :


23 Juli 2017
dep_nomor=4(PEGAWAI)
untuk memilih sub himpunan pegawai
yang bekerja departemen nomor 4
gaji>30000 AND dep_nomor=3 (PEGAWAI)
untuk memilih sub himpunan pegawai
yang memiliki gaji lebih dari 30000 yang
bekerja di departemen 3
BASIS DATA
6
Operasi PROJECT
Untuk memilih attribut (kolom)
tertentu dari himpunan /
subhimpunan dan membuang yang
lain
Notasi :
<daftar attribut> (<nama relasi>)
23 Juli 2017
BASIS DATA
7
Operasi PROJECT,Cont’d…
Jika <daftar attribut> tidak menyertakan primary
key, maka dimungkinkan akan terjadi duplikasi.
Duplikasi ini akan dihilangkan sehingga hanya
sekali yang muncul.
Contoh :
Untuk memilih atribut JenisKel dan Gaji dari tabel
Pegawai:
JenisKel, Gaji (Pegawai)
23 Juli 2017
BASIS DATA
8
Urutan Operasi
Sebuah operasi bisa dituliskan dalam bentuk
beberapa ekspresi aljabar relasional dengan
mengelompokkan untuk tiap-tiap operasi dan
memberi nama
Contoh :
nmDepan, nmBlk, gaji (dep_nomor=5(PEGAWAI))
Mengambil informasi nama depan, nama
belakang dan gaji dari pegawai-pegawai yang
bekerja di departemen nomor 5
23 Juli 2017
BASIS DATA
9
Urutan Operasi, Cont’d…
bisa ditulis dalam bentuk:
PEG_DEP5  dep_nomor=5 (PEGAWAI)
(tabel pegawai dipilah dulu hanya dengan
mengambil yg memenuhi dep_nomor=5 dan
disimpan dalam relasi dengan nama PEG_DEP5)
HASIL  nmDepan, nmBlk, gaji (PEG_DEP5)
(kemudian setelah itu, relasi PEG_DEP5 dipilah
hanya diambil kolom-kolom nmDepan, nmBlk dan
gaji)
23 Juli 2017
BASIS DATA
10
Perubahan Nama Atribut
Untuk mengubah nama attribut dari sebuah
relasi yang merupakan hasil dari operasi aljabar
relasional, ditulis nama atribut baru dalam huruf
besar
Contoh :
TEMP  dep_nomor=5 (PEGAWAI)
RBARU (NAMADEPAN, NAMABELAKANG, GAJI)
 nmdepan, nmblk, gaji (TEMP)
23 Juli 2017
BASIS DATA
11
Operasi Himpunan
UNION: notasi  R  S
Relasi yang menggabungkan semua baris di R atau S
dengan meniadakan duplikasi
INTERSECTION: notasi  R  S
Relasi yang terdiri dari baris yang ada di R dan juga ada
di S
DIFFERENCE: notasi  R – S
Relasi yang terdiri dari semua baris di R, tetapi tidak ada
di S
Relasi yang dioperasikan dengan operasi-operasi di atas harus
memiliki jumlah attribut dan jenis yang sama (union
compatible)
23 Juli 2017
BASIS DATA
12
Operasi Himpunan, Cont’d…
CARTESIAN PRODUCT  R X S
Relasi yang terdiri dari kombinasi baris yang terdapat di
R dan S. Yang mana setiap baris di R digabungkan
dengan setiap baris di S
Contoh :
Mengambil nama-nama pegawai wanita beserta namanama tanggungan masing-masing:
23 Juli 2017
BASIS DATA
13
Operasi Himpunan, Cont’d…
Jawab :
23 Juli 2017
BASIS DATA
14
Operasi Join
Digunakan untuk mengkombinasikan baris-baris
yang berhubungan dari dua relasi menjadi barisbaris tunggal.
Notasi:
R |x|<kondisi join> S
Kondisi join dalam bentuk:
<kondisi> AND <kondisi> AND … AND
<kondisi>
Operator pembandingan: {=, <, ≤, >, ≥, ≠}
23 Juli 2017
BASIS DATA
15
Operasi Join, Cont’d…
Contoh
Mendapatkan nama departemen beserta nama
pimpinan masing-masing
DEPT (dep_nomor, dep_nama, dep_nama,
dep_noKTP, dep_TglMulai, dep_JmlPegawai)
 DEPARTEMEN
PIM_DEP  DEPT |x|dep_noKTP=noKTP PEGAWAI
HASIL  dep_nama, nmDepan, nmBlk (PIM_DEP)
23 Juli 2017
BASIS DATA
16
Operasi Join, Cont’d…
Operasi join dengan kondisi join
secara umum disebut dengan Theta
Join.
Kondisi join yang operator
pembandingannya berupa =, disebut
dengan Equijoin
23 Juli 2017
BASIS DATA
17
Natural Join
Yakni operasi equijoin yang mana yang mana pasangan
attribut-attribut yang di’join’kan memiliki nama yang
sama. Jika tidak sama, perlu dilakukan pengubahan
nama attribut (rename) terlebih dahulu
Notasi:
R * (<list 1>),(<list 2>) S
List 1 adalah attribut-attribut R dan list 2 adalah attributattribut S. List 1 dan list 2 membentuk pembandingan
equality dari pasangan attribut yang memiliki nama yang
sama, yang mana semua pembandingan tersebut di
‘AND’ kan
23 Juli 2017
BASIS DATA
18
Natural Join, Cont’d…
Contoh
DEPT (dep_nomor, dep_nama,
dep_jmlPegawai, dep_noKTP)  DEPARTEMEN
PROY_DEPT  PROYEK * DEPT
23 Juli 2017
BASIS DATA
19
Fungsi Aggregate( )
SUM : menjumlah nilai dari suatu atribut
AVERAGE : mencari rata-rata nilai dari suatu
atribut
MAXIMUM : mencari nilai paling besar dari suatu
atrbiut
MINIMUM : mencari nilai paling besar dari suatu
atribut
COUNT : menghitung jumlah record
23 Juli 2017
BASIS DATA
20
Fungsi Aggregate( ), Cont’d…
Dapatkan setiap nomer department, jumlah
pegawai dalam department dan gaji rata-rata
mereka.
R(DNO,jumlah_peg, gaji_rata2) <=
DNO,
COUNT SSN, AVERAGE SALARY (EMPLOYEE)
23 Juli 2017
BASIS DATA
21
PENUTUP
Terima kasih
23 Juli 2017
BASIS DATA
22
Download