Aljabar Relasional File - E Learning UPN Veteran Yogyakarta

advertisement
Sistem Basis Data
(1230283)
Pertemuan Ke-6
Aljabar Relasional
Rifki Indra Perwira
[email protected]
Teknik Informatika - UPN[V]Yk
1
Deskripsi




Pengertian aljabar relasional (relational algebra)
Macam-macam operator basis data relasional.
Kamus data dan katalog sistem
Aljabar relasional merupakan basic SQL tetapi bukan
SQL
Teknik Informatika - UPN[V]Yk
2
Tujuan Instruksional Khusus (TIK)



Tujuan perkuliahan ini agar Mahasiswa dapat menjelaskan pengertian tentang aljabar relasional.
Mahasiswa dapat menjelaskan macam-macam operator basis data relasional beserta contohnya.
Mahasiswa dapat menjelaskan tentang kamus data
dan katalog sistem.
Teknik Informatika - UPN[V]Yk
3
Aljabar Relasional
Aljabar Relasional (Relational Algebra)

Aljabar relasional adalah sekumpulan operasi yang digunakan untuk melakukan proses manipulasi data dalam rangka
untuk mendapatkan informasi yang diperlukan dari sebuah
basis data.

Secara umum dibagi menjadi dua macam:
 Operasi himpunan, seperti : UNION, INTERSECTION,
DIFFERENCE, dan CARTESIAN PRODUCT.
 Operasi yang dikembangkan secara khusus untuk basis data
relasional, seperti : SELECT, PROJECT dan JOIN
Teknik Informatika - UPN[V]Yk
4
Aljabar Relasional

UNION
 UNION menggabungkan semua baris dari dua buah tabel dan
kedua tabel tersebut harus sesuai.
 Notasi : (<nama relasi/tbl-1>) ∪ (<nama relasi/tbl-2>)
hasil
Gambar 6.1. Notasi operasi UNION
Teknik Informatika - UPN[V]Yk
5
Aljabar Relasional
 Contoh :
Gambar 6.2. Contoh operasi UNION
Teknik Informatika - UPN[V]Yk
6
Aljabar Relasional

INTERSECTION
 INTERSECTION menghasilkan sebuah daftar yang berisi hanya
record-record yang terdapat pada kedua tabel dan kedua tabel
tersebut harus sesuai.
 Notasi : (<nama relasi/tbl-1>)  (<nama relasi/tbl-2>)
Gambar 6.3. Notasi operasi INTERSECTION
Teknik Informatika - UPN[V]Yk
7
Aljabar Relasional
 Contoh :
Gambar 6.4. Contoh operasi Intersection
Teknik Informatika - UPN[V]Yk
8
Aljabar Relasional

DIFFERENCE (selisih)
 DIFFERENCE menghasilkan semua record yang terdapat pada
satu tabel tetapi tidak terdapat pada tabel lainnya dan kedua
tabel tersebut harus sesuai.
 Notasi : (<nama relasi-1>) - (<nama relasi-2>)
Hasil
Gambar 6.5. Notasi operasi DIFFERENCE
Teknik Informatika - UPN[V]Yk
9
Aljabar Relasional
 Contoh :
Tabel 1
Tabel 2
Hasil
Gambar 6.6. Contoh operasi DIFFERENCE
Teknik Informatika - UPN[V]Yk
10
Aljabar Relasional

CARTESIAN PRODUCT (cros product)
 Operasi PRODUCT menghasilkan sebuah daftar semua pasangan record dua buah tabel.
 Notasi : (<nama relasi/tbl-1>) X (<nama relasi/tbl-2>)
Hasil
Gambar 6.7. Notasi operasi DIFFERENCE
Teknik Informatika - UPN[V]Yk
11
Aljabar Relasional
 Contoh :
Wali
Kode
Wali
001
Winata
002
Adelia
Mahasiswa
X
Hasil
Mhs
SKS
IPK
Kode
Wali
Mhs
SKS
IPK
Susi
18
2.03
001
Winata
Susi
18
2.03
Toni
20
3.42
001
Winata
Toni
20
3.42
Wandi
21
2.75
001
Winata
Wandi
21
2.75
002
Adelia
Susi
18
2.03
002
Adelia
Toni
20
3.42
002
Adelia
Wandi
21
2.75
Gambar 6.8. Contoh operasi PRODUCT
Teknik Informatika - UPN[V]Yk
12
Aljabar Relasional

SELECT
 SELECT menghasilkan nilai untuk semua atribut yang ditemukan dalam tabel. Input berupa sebuah tabel dan hasilnya juga
sebuah tabel
 Notasi : <kondisi pilihan>(<nama relasi/tbl>)
Hasil
Gambar 6.9. Notasi operasi SELECT
Teknik Informatika - UPN[V]Yk
13
Aljabar Relasional
 Contoh-1 :
σSKS>=20 (Mahasiswa)
Mahasiswa
Nama
Susi
Toni
Wandi
Rani
Anton
Beny
SKS
18
24
20
12
18
22
Hasil
IPK
2.53
3.62
2.95
2.03
2.60
3.15
Nama
Toni
Wandi
Beny
SKS
24
20
22
IPK
3.62
2.95
3.15
Gambar 6.10. Contoh operasi SELECT
Teknik Informatika - UPN[V]Yk
14
Aljabar Relasional
 Contoh-2 :
σSKS=18 OR IPK<3.00 (Mahasiswa)
Mahasiswa
Nama
Susi
Toni
Wandi
Rani
Anton
Beny
SKS
18
24
20
12
18
22
Hasil
IPK
2.53
3.62
2.95
2.03
2.60
3.15
Nama
Susi
Wandi
Rani
Anton
SKS
18
20
12
18
IPK
2.53
2.95
2.03
2.60
Gambar 6.11. Contoh operasi SELECT menggunakan OR
Teknik Informatika - UPN[V]Yk
15
Aljabar Relasional

PROJECT
 PROJECT menghasilkan daftar semua nilai untuk atribut
yang dipilih.
 Notasi : <daftar attribut>(<nama relasi>)
Hasil
Gambar 6.12. Notasi operasi PROJECT
Teknik Informatika - UPN[V]Yk
16
Aljabar Relasional
 Contoh :
Nama (Mahasiswa)
Mahasiswa
Nama
Susi
Toni
Wandi
Rani
Anton
Beny
SKS
18
24
20
12
18
22
Hasil
IPK
2.53
3.62
2.95
2.03
2.60
3.15
Nama
Susi
Toni
Wandi
Rani
Anton
Beny
Gambar 6.13. Contoh operasi PROJECT
Teknik Informatika - UPN[V]Yk
17
Aljabar Relasional

JOIN
 JOIN digunakan untuk mengkombinasikan tuple (record) dari
dua tabel yang berbeda menjadi satu tuple (record). JOIN
memiliki kemampuan untuk mendukung basis data relasional,
memungkinkan penggunaan tabel terpisah yang dihubungkan
melalui atribut yang sama.
 Notasi : (<nama relasi-1>) (<nama relasi-2>)
 Natural JOIN menghubungkan tabel dengan memilih hanya
record dengan nilai yang digunakan bersama-sama pada
atribut yang sama. Operator ini akan menghasilkan tiga
tahapan proses:
 PRODUCT
 SELECT
 PROJECT
Teknik Informatika - UPN[V]Yk
18
Aljabar Relasional
 Contoh: MAHASISWA  WALI
Mahasiswa
Wali
Mhs
SKS
IPK
Kode_Wali
Kode_Wali
Wali
Wandi
Toni
Rudi
Susi
21
20
18
18
3.25
3.04
2.65
2.23
1
1
2
4
1
2
3
Sudiro
Merry
Sumantri

Gambar 6.14. Ilustrasi operasi NATURAL JOIN
tabel Mahasiswa dan Wali
Teknik Informatika - UPN[V]Yk
19
Aljabar Relasional
 Hasil Tahap I: PRODUCT
Mhs
SKS
IPK
Wandi
Toni
Rudi
Susi
Wandi
Toni
Rudi
Susi
Wandi
Toni
Rudi
Susi
21
20
18
18
21
20
18
18
21
20
18
18
3.25
3.04
2.65
2.23
3.25
3.04
2.65
2.23
3.25
3.04
2.65
2.23
Kode_Wali Kode_Wali
1
1
2
4
1
1
2
4
1
1
2
4
1
1
1
1
2
2
2
2
3
3
3
3
Wali
Sudiro
Sudiro
Sudiro
Sudiro
Merry
Merry
Merry
Merry
Sumantri
Sumantri
Sumantri
Sumantri
Gambar 6.15. Hasil operasi NATURAL JOIN tahap I
Teknik Informatika - UPN[V]Yk
20
Aljabar Relasional
 Hasil Tahap II: SELECT
Mhs
SKS
IPK
Kode_Wali Kode_Wali
Wandi
Toni
Rudi
21
20
18
3.25
3.04
2.65
1
1
2
1
1
2
Wali
Sudiro
Sudiro
Merry
Gambar 6.16. Hasil operasi NATURAL JOIN tahap II
Teknik Informatika - UPN[V]Yk
21
Aljabar Relasional
 Hasil Tahap III: PROJECT
Mhs
SKS
IPK
Kode_Wali
Wali
Wandi
Toni
Rudi
21
20
18
3.25
3.04
2.65
1
1
2
Sudiro
Sudiro
Merry
Gambar 6.17. Hasil operasi NATURAL JOIN tahap III
Teknik Informatika - UPN[V]Yk
22
Aljabar Relasional
 FULL OUTER JOIN : pada Full Outer Join pasangan data
yang tidak cocok akan tetap dipertahankan dan nilai untuk
tabel lainnya yang tidak cocok akan dibiarkan kosong.
 Notasi : (<nama relasi-1>)
(<nama relasi-2>)
 Contoh :
Mhs
SKS
IPK
Kode_Wali
Wali
Wandi
Toni
Rudi
21
20
18
3.25
3.04
2.65
Sudiro
Sudiro
Merry
Sumantri
Susi
18
2.23
1
1
2
3
4
Gambar 6.18. Hasil operasi FULL OUTER JOIN
Teknik Informatika - UPN[V]Yk
23
Aljabar Relasional
 LEFT OUTER JOIN : pada Left Outer Join pasangan data
yang tidak cocok hanya pada tabel di sebelah kiri yang akan
tetap dipertahankan dan nilai relasinya dibiarkan kosong.
 Notasi : (<nama relasi-1>)
(<nama relasi-2>)
 Contoh :
Mhs
SKS
IPK
Kode_Wali
Wali
Wandi
Toni
Rudi
Susi
21
20
18
18
3.25
3.04
2.65
2.23
1
1
2
4
Sudiro
Sudiro
Merry
Gambar 6.19. Hasil operasi LEFT OUTER JOIN
Teknik Informatika - UPN[V]Yk
24
Aljabar Relasional
 RIGHT OUTER JOIN : pada Right Outer Join pasangan data
yang tidak cocok hanya pada tabel di sebelah kanan yang
akan tetap dipertahankan dan nilai relasinya dibiarkan kosong.
 Notasi : (<nama relasi-1>)
(<nama relasi-2>)
 Contoh :
Mhs
SKS
IPK
Kode_Wali
Wali
Wandi
Toni
Rudi
21
20
18
3.25
3.04
2.65
1
1
2
3
Sudiro
Sudiro
Merry
Sumantri
Gambar 6.20. Hasil operasi RIGHT OUTER JOIN
Teknik Informatika - UPN[V]Yk
25
Aljabar Relasional

DIVISION
 Operasi DIVISION memerlukan dua buah relasi masingmasing relasi-1 dan relasi-2, dimana isi relasi-2 merupakan
himpunan bagian isi relasi-1 dan relasi-2 tidak kosong.

Notasi : (<nama relasi-1>) ÷ (<nama relasi-2>)
Hasil
÷
Gambar 6.21. Notasi operasi DIFFERENCE
Teknik Informatika - UPN[V]Yk
26
Aljabar Relasional
 Contoh :
Hasil
Gambar 6.22. Contoh operasi DIVISION
Teknik Informatika - UPN[V]Yk
27
Aljabar Relasional
Kamus Data dan Katalog Sistem

Kamus Data berisi metadata untuk menjelaskan secara
rinci catatan semua tabel di dalam suatu basis data.
Tabel 6.1. Contoh Kamus Data
Nama
Tabel
Nama
Atribut
Siswa Nomhs
Nama
SKS
IPK
Kd_Wali
Wali
Kd_Wali
NIP
Nama
Jbt_Fng
Uraian
Tipe
Format
Nomor mhs
Nama mhs
Jumlah SKS
IP.Kumulatif
Kode wali
Char(9)
Varchar(18)
Byte
Number(4,2)
Number(2)
999999999
Xxxxxxxxx
99
9.99
99
Kode wali
No. Pegawai
Nama wali
Fungsional
Number(2)
Char(9)
Varchar(18)
Varchar(15)
99
999999999
Xxxxxxxxx
Xxxxxxxxx
Teknik Informatika - UPN[V]Yk
Range
PK/
FK
Tabel
Referensi
PK
2-24
0.00-4.00
1-99
FK
1-99
PK
Wali
28
Aljabar Relasional

Katalog Sistem adalah kamus data sistem yang sangat
detail yang menggambarkan semua objek di dalam suatu
basis data.
 Basis data yang dibentuk sistem dimana tabel-tabelnya
menyimpan isi dan sifat-sifat basis data.
 Tabel-tabelnya dapat diproses seperti tabel-tabel lainnya.
 Secara otomatis menghasilkan dokumentasi basis data
 Contoh : kalo pernah ke togamas
Teknik Informatika - UPN[V]Yk
29
Tipe Data
Tabel 6.1. Tipe data teks pada MySQL
No
Tipe Data
Keterangan
Kapasitas
1
CHAR(M)
Fix L : 1 – 255 char
M bytes, 1 <= M <= 255
2
VARCHAR(M)
Var L: 1 – 255 char
L+1 bytes, dimana L <= M
dan 1 <= M <= 255
3
TINYTEXT
L max : 255 char
L+1 bytes, dimana L < 2^8
4
TEXT, BLOB
L max : 65535 char
L+2 bytes, dimana L < 2^16
5
MEDIUMTEXT L max : 16777215 char
6
LONGTEXT
L+3 bytes, dimana L < 2^24
L max : 4294967295 char L+4 bytes, dimana L < 2^32
Teknik Informatika - UPN[V]Yk
30
Tipe Data
Tabel 6.2. Tipe data numerik pada MySQL
No
Tipe Data
Keterangan
Kap.
1
TINYINT()
(-128 s/d 127) / (0 s/d 255)
1 byte
2
SMALLINT()
(-32768 s/d 32767) / (0 s/d 65535)
2 byte
3
MEDIUMINT()
(-8388608 s/d 8388607) /
(0 s/d 16777215)
3 byte
4
INT()
(-2147483648 s/d 2147483647) /
(0 s/d 4294967295)
4 byte
5
BIGINT()
0 sd 18446744073709551615
8 byte
Teknik Informatika - UPN[V]Yk
31
Tipe Data
Tabel 6.3. Tipe data numerik (lanjutan…)
No
Tipe Data
Keterangan
Kap.
FLOAT
-3.402823466E+38 s/d -1.175494351E-38, 0
dan 1.175494351E-38 s/d 3.402823466E+38
4 byte
2
DOUBLE
-1.7976931348623157E+308 s/d
-2.2250738585072014E-308, 0 dan
2.2250738585072014E-308 s/d
1.7976931348623157E+308.
8 byte
3
REAL
Sama dengan DOUBLE
8 byte
4
DECIMAL(M,D)
Sama dengan DOUBLE, M=lebar D=desimal
M byte
(D+2, if M < D)
5
NUMERIC(M,D)
Sama dengan DECIMAL
M byte
(D+2, if M < D)
1
Teknik Informatika - UPN[V]Yk
32
SQL

PRIMARY KEY
 Sebuah primary key (kunci primer) digunakan untuk mengenali secara unik setiap baris dalam sebuah tabel. Sebuah
primary key dapat terdiri dari satu atau beberapa field dalam
sebuah tabel. Jika yang digunakan sebagai primary key
adalah gabungan dari beberapa field maka disebut dengan
composite key (kunci gabungan).

NOT NULL
 Sebagai default, sebuah kolom dapat bernilai NULL. Bila
diinginkan kolom tersebut harus terisi data (tidak boleh NULL)
maka digunakan NOT NULL ketika mendefinisikan kolom
tersebut.
Teknik Informatika - UPN[V]Yk
33
SQL

UNIQUE
 UNIQUE digunakan untuk memastikan bahwa setiap nilai
dalam sebuah kolom pasti berbeda.

CHECK
 CHECK digunakan untuk memastikan bahwa nilai dalam
sebuah kolom telah sesuai dengan kondisi yang diinginkan.

FOREIGN KEY
 Sebuah foreign key (kunci tamu) adalah sebuah field atau
beberapa field yang sama dengan primary key pada tabel
lainnya, yang berfungsi sebagai penghubung. Tujuan dibuatnya foreign key adalah untuk meyakinkan integritas referensial
(referential integrity) dari sebuah data.
Teknik Informatika - UPN[V]Yk
34
Ringkasan

Aljabar relasional adalah sekumpulan operasi yang digunakan untuk melakukan proses manipulasi data dalam rangka
untuk mendapatkan informasi yang diperlukan dari sebuah
basis data.

Secara umum dibagi menjadi dua macam:
 Operasi himpunan, seperti : UNION, INTERSECTION,
DIFFERENCE, dan CARTESIAN PRODUCT.
 Operasi yang dikembangkan secara khusus untuk basis data
relasional, seperti : SELECT, PROJECT dan JOIN
Teknik Informatika - UPN[V]Yk
35
Soal Latihan
1.
2.
3.
4.
5.
Apa yang dimaksud dengan model basis data ?
Ada berapa macam model basis data ? jelaskan!
Jelaskan yang anda ketahui tentang model basis data implentasi !
Apa keuntungan dan kerugian model basis data relasional?
Jelaskan ciri-ciri kesuksesan basis data era internet ?
Teknik Informatika - UPN[V]Yk
36
Referensi

Buku Teks (Textbook)
1. Date, C.J. 2000, An Introduction to Database System,
Addison Wesley Publishing Company, Vol. 7, New York.
2. Fathansyah, 1999, Basis Data, Informatika, Bandung.

Referensi
3. Elmasri, Ramez; Navathe, Shamkant B., 2001,
Fundamentals of Database Systems, The Benjamin/
Cummings Publishing Company, Inc., California.
Teknik Informatika - UPN[V]Yk
37
Download