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