Model Basis Data Relasional Relational dan Queries 12
Model Basis Data Relasional Relational dan Queries
12 Basis Data Pandangan Logika Data Tabel 2. 1. Rangkuman Sifat-sifat Tabel Relasional 1 Sebuah tabel seolah-olah merupakan struktur dua dimensi yang terdiri dari baris dan kolom. 2 Setiap baris (tupel) mewakili sebuah entitas. 3 Setiap kolom mewakili atribut dan memiliki nama yang jelas. 4 Setiap perpotongan baris dan kolom mewakili nilai sebuah data. 5 Setiap tabel harus memiliki primary key yang dikenali secara unik untuk setiap baris. 6 Semua nilai pada kolom harus sesuai format data. 7 Setiap kolom memiliki jangkauan nilai tertentu yang dikenal sebagai domain atribut. 8 Setiap baris membawa informasi yang menggambarkan satu kejadian entitas. 9 Urut-urutan baris dan kolom bukan hal yang penting untuk DBMS.
12 Basis Data Nilai Atribut Tabel SISWA Gambar 2. 1. Nilai atribut tabels siswa
12 Basis Data Kunci (Key) ¿ Redudansi yang terkontrol (penggunaan atribut secara bersama-sama) membuat basis data relasional berjalan dengan baik. ¿ Primary key suatu tabel akan muncul lagi pada tabel lainnya sebagai penghubung (foreign key) ¿ Jika foreign key mengandung suatu nilai atau nilai kosong yang cocok, maka tabel yang menggunakan foreign key tersebut dikatakan menunjukkan integritas referensial.
12 Basis Data Contoh Sederhana Basis Data Relasional Nama tabel : SISWA Primary key : NOMHS Foreign key : KODE_WALI Hubungan Nama tabel : WALI Primary key : KODE_WALI Tidak ada foreign key
12 Basis Data Skema Basis Data Relasional : Perwalian Gambar 2. 3. Skema basis data relsional : Perwalian
12 Basis Data Kunci (Key) ¿ Sebuah kunci (key) dapat membantu mendefinisikan relasi entitas. ¿ Aturan kunci didasarkan pada konsep yang dikenal dengan istilah determinasi, yang digunakan untuk mendefinisikan ketergantungan fungsional.
12 Basis Data Kunci (Key) ¿ Ketergantungan Fungsional. ¨ Atribut B bergantung secara fungsional pada A, Jika A menentukan B. ¨ Sebuah atribut bagian dari suatu kunci dikenal sebagai atribut kunci. ¨ Kunci yang memiliki lebih dari satu atribut disebut dengan kunci komposit. ¨ Jika atribut (B) bergantung secara fungsional pada kunci komposit (A) tetapi tidak terdapat pada salah satu kunci komposit tersebut, atribut (B) bergantung penuh secara fungsional pada (A).
12 Basis Data Kunci (Key) Tabel 2. 2. Kunci Basis Data Relasional Superkey Sebuah atribut (atau kombinasi atribut) secara unik mengenali setiap entitas dalam sebuah tabel. Candidat Sebuah superkey minimal, yaitu superkey yang e key tidak merupakan bagian atribut dari suatu superkey Primary Candidate key yang terpilih untuk mengenali key secara unik seluruh nilai atribut pada sebuah baris. Tidak boleh kosong Secondar Sebuah atribut (atau kombinasi atribut) secara y key paksa digunakan untuk tujuan pengambilan data Foreign Sebuah atribut (atau kombinasi atribut) dalam
12 Basis Data Tabel 2. 3. Aturan Integritas Entitas Syarat Tujuan Seluruh entias bersifat unik dan tidak ada primary key yang bernilai kosong. Menjamin setiap entitas memiliki identitas secara unik dan meyakinkan bahwa nilai setiap foreign key pasti mereferensi nilai primary key secara tepat. Integritas Referensial Syarat Tujuan Foreign key dapat bernilai kosong sejauh bukan merupakan bagian dari primary key tabel atau memiliki nilai yang sesuai dengan nilai primary key dari suatu tabel yang terhubung. Membuat nilai suatu atribut yang berhubungan tidak memiliki nilai yang salah.
12 Basis Data Ilustrasi Aturan Integritas Gambar 2. 4. Ilustrasi aturan integritas
12 Basis Data Operator Basis Data Relasional ¿ Derajat kesempurnaan relasi dapat diukur dengan seberapa luas dukungan aljabar relasionalnya. ¿ Aljabar relasional mendefinisikan secara teoritis cara memanipulasi isi tabel dengan menggunakan delapan fungsi relasional: SELECT, PROJECT, JOIN, INTERSECT, UNION, DIFFERENCE, PRODUCT dan DIVIDE.
12 Basis Data Operator Basis Data Relasional ¿ UNION menggabungkan semua baris dari dua buah tabel dan kedua tabel tersebut harus sesuai. NIP Union NIP Hasil NIP 090710100 090710120 090710103 090710123 090710109 090710112 090710120 090710123 Gambar 2. 5. Union
12 Basis Data Operator Basis Data Relasional ¿ INTERSECT menghasilkan sebuah daftar yang berisi hanya record-record yang ter-dapat pada kedua tabel dan kedua tabel tersebut harus sesuai. Nama INTERSECT Nama HASIL Nama Nico Sandy Rudi Heni Surya Heni Santi Gambar 2. 6. Intersect
12 Basis Data Operator Basis Data Relasional ¿ DIFFERENCE menghasilkan semua record yang terdapat pada satu tabel tetapi tidak terdapat pada tabel lainnya dan kedua tabel tersebut harus sesuai. Nama DIFFERENCE Nama HASIL Nama Nico Sandy Heni Surya Heni Gambar 2. 7. Difference
12 Basis Data Operator Basis Data Relasional ¿ PRODUCT menghasilkan sebuah daftar semua pasangan record dua buah tabel. Wali PRODUCT Mhs SKS IPK HASIL Wali Mhs SKS IPK Winat a Adelia Susi 18 2. 03 Winata Susi 18 2. 03 Toni 20 3. 42 Winata Toni 20 3. 42 Wandi 21 2. 75 Winata Wandi 21 2. 75 Adelia Susi 18 2. 03 Adelia Toni 20 3. 42 Adelia Wandi 21 2. 75 Gambar 2. 8. Product
12 Basis Data Operator Basis Data Relasional ¿ SELECT menghasilkan nilai untuk semua atribut yang ditemukan dalam tabel. Mhs SKS IPK Susi Toni Wandi 18 20 21 2. 03 3. 42 2. 75 SELECT ALL Hasilnya Mhs SKS IPK Toni Wandi 20 21 3. 42 2. 75 SELECT SKS 20 Hasilnya Gambar 2. 9. Select
12 Basis Data Operator Basis Data Relasional ¿ PROJECT menghasilkan daftar semua nilai untuk atribut yang dipilih. Mhs Susi Toni Wandi SKS 18 20 21 IPK 2. 03 3. 42 2. 75 PROJECT MHS Hasilnya PROJECT MHS and IPK Hasilnya Mhs Susi Toni Wandi IPK 2. 03 3. 42 2. 75 Gambar 2. 10. Project
12 Basis Data Operator Basis Data Relasional ¿ JOIN memungkinkan kita untuk mengkombinasikan informasi dari dua tabel atau lebih. JOIN memiliki kemampuan nyata untuk mendukung basis data relasional, memungkinkan penggunaan tabel independen yang dihubungkan melalui atribut yang sama. ¨ 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
12 Basis Data Operator Basis Data Relasional ¿ Contoh dua tabel yang akan digunakan untuk ilustrasi JOIN: Nama Tabel : SISWA Mhs SKS IPK Kode_Wal i Wandi 21 2. 75 1 Nama Tabel : WALI Kode_Wa Wali li 1 Suminto Toni 20 3. 42 1 2 Farid Rudi 18 2. 45 2 3 Ganjar Susi 18 2. 03 2 Tatik 22 3. 68 4 Gambar 2. 11. Tabel untuk ilustrasi join
12 Basis Data Operator Basis Data Relasional Natural JOIN, Tahap 1: PRODUCT Mhs Wandi Toni Rudi Susi Tatik SKS 21 20 18 18 22 IPK 2. 75 3. 42 2. 45 2. 03 3. 68 Kode_Wali 1 1 2 2 4 Kode_Wali 1 1 1 2 2 2 3 3 3 Gambar 2. 12. Natural join, tahap 1: Product Wali Suminto Suminto Farid Farid Ganjar Ganjar
12 Basis Data Operator Basis Data Relasional Natural JOIN, Tahap 2: SELECT Mhs SKS IPK Wandi Toni Rudi Susi 21 20 18 18 2. 75 3. 42 2. 45 2. 03 Kode_Wali 1 1 2 2 Gambar 2. 13. Natural join, tahap 2: Select Wali Suminto Farid
12 Basis Data Operator Basis Data Relasional Natural JOIN, Tahap 3: PROJECT Mhs Wandi SKS 21 IPK 2. 75 Kode_Wali 1 Wali Suminto Toni 20 3. 42 1 Suminto Rudi 18 2. 45 2 Farid Susi 18 2. 03 2 Farid Gambar 2. 13. Natural join, tahap 3: Project
12 Basis Data Operator Basis Data Relasional ¨ Equi. JOIN menghubungkan tabel didasarkan pada kondisi yang sama dengan memban-dingkan kolom tertentu setiap tabel. Hasil equi. JOIN tidak menghilangkan kolom dupli-kat dan kondisi atau kriteria penggabungan tabel harus terdefinisi secara eksplisit. ¨ Theta JOIN adalah equi. JOIN yang membanding-kan kolom tertentu setiap tabel menggunakan operator pembanding selain operator sama dgn. ¨ Pada Outer JOIN pasangan data yang tidak cocok akan tetap dipertahankan dan nilai untuk tabel lainnya yang tidak cocok akan dibiarkan kosong.
12 Basis Data Operator Basis Data Relasional Outer JOIN Mhs Wandi Toni Rudi Susi Tatik SKS 21 20 18 18 22 IPK 2. 75 3. 42 2. 45 2. 03 3. 68 Kode_Wali 1 1 2 2 3 4 Gambar 2. 15. Outer Join Wali Suminto Farid Ganjar
12 Basis Data Operator Basis Data Relasional ¿ DIVIDE memerlukan dua buah tabel yang masing-masing terdiri dari satu dan dua kolom. Perhatikan ilustrasi berikut ini: Tabel 1 Kode Lok A 5 B 5 C 6 D 7 D 8 E 8 A 9 A 4 B 3 DEVIDE Tabel 2 Kode A B Gambar 2. 16. Devide Hasil Tabel 3 Lok 5
12 Basis Data Kamus Data Dan Katalog Sistem ¿ Kamus data berisi metadata untuk menjelas kan secara detail catatan semua tabel di dalam suatu basis data. ¿ 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
12 Basis Data Tabel 2. 4. Contoh Kamus Data Nama Tabel Atribut Siswa Nomhs Uraian Tipe Nomor mhs Char(9) Format Range 9999 9 Nama mhs Varchar(1 Xxxxx 8) SKS Jumlah Byte 99 2 -24 SKS IPK IP. Kumulati Number(4, 9. 99 0. 00 f 2) 4. 00 Kd_Wali Kode wali Number(2) 99 1 -99 Wali Kd_Wali Kode wali Number(2) 99 1 -99 NIP No. Char(9) 9999 Pegawai 9 Nama wali Varchar(1 Xxxxx 8) PK/ Tabel FK Referensi PK FK PK Wali
12 Basis Data Relasi Pada Basis Data Relasional ¿ E-R Diagram (ERD) ¨ Bentuk persegi panjang mewakili entitas. ¨ Nama entitas berupa kata benda dan huruf besar. ¨ Bentuk berlian digunakan untuk mewakili relasi antar entitas. ¨ Angka 1 digunakan untuk mewakili “ 1” (satu) data pada relasi. ¨ Huruf M digunakan untuk mewakili “many” (banyak) data dari relasi.
12 Basis Data Relasi Antara Wali Dan Siswa WALI 1 Membimbing M SISWA Gambar 2. 17. Relasi antara wali dan siswa
12 Basis Data Cara Lain Untuk Menyatakan Relasi Antara Wali Dan Siswa 1 WALI M Membimbing SISWA Gambar 2. 18. Bentuk lain relasi antara wali dan siswa
12 Basis Data Relasi 1: M : Basis Data Perwalian Tabel : WALI PK : KODE_WALI FK : - Hubungan Tabel : SISWA PK : NOMHS FK : KODE_WALI Gambar 2. 19. Relasi 1: M untuk basis data perwalian
12 Basis Data Relasi 1: M Antara Kursus dan Kelas 1 KURSUS M Memiliki Gambar 2. 20. Relasi 1: M antara kursus dan kelas KELAS
12 Basis Data Relasi M : N Antara Siswa dan MKA M SISWA N Mengambil Gambar 2. 21. Relasi M: N antara siswa dan MKA
12 Basis Data Tabel 2. 5. Contoh Data Pengambilan MKA M N SISWA 1 SISWA MKA Mengambil M M 1 PESERTA Gambar 2. 21. Relasi M: N antara siswa dan MKA
12 Basis Data Relasi “Many to Many” Antara Siswa dan MKA Tabel SISWA Basis Data KRP Tabel MKA Gambar 2. 22. Relasi “many to many” antara siswa dan MKA
12 Basis Data Konversi Relasi M : N Menjadi Dua Relasi 1 : M Tabel SISWA Primary key NOMHS Tabel KULIAH Primary key KODE_MKA+NOMHS Foreign key KODE_MKA, NOMHS Tabel MKA Primary key KODE_MKA Gambar 2. 23. Konversi relasi M: N menjadi relasi 1: M
12 Basis Data Perintah SQL Tabel 3. 2. Cakupan Perintah SQL Perintah Penjelasan Berfungsi untuk memasukkan data awal pada tabel atau dapat juga untuk menambah data. SELECT Berfungsi untuk menampilkan isi satu tabel atau beberapa tabel sekaligus. COMMIT Berfungsi untuk menyimpan hasil pekerjaan kedalam media penyimpan (disk). UPDATE Berfungsi untuk melakukan perubahan data. DELETE Berfungsi untuk menghapus satu atau beberapa baris isi tabel. ROLLBAC Berfungsi untuk mengembalikan isi tabel basis data ke bentuk aslinya, berdasarkan perintah K COMMIT yang terakhir kali dilakukan. INSERT
12 Basis Data Perintah SQL ¿ Pemasukan Data INSERT INTO <nama tabel> VALUES(harga atribut 1, harga atribut 2, . . dan seterusnya); · Contoh: INSERT INTO WALI VALUES (‘ 5’, ‘ 095065123’, ’ Ir. Siswanto, MT. ’, ’Lektor Kepala’); · Contoh: INSERT INTO MAHASISWA VALUES (‘ 111900555’, ’ Agus Salim’, ’ 18’, ’ 2’, ’ 48’, ‘ 5’);
12 Basis Data Perintah SQL Form Input Data Wali Gambar 3. 1. Form input data wali
12 Basis Data Perintah SQL ¿ Menyimpan Isi Tabel COMMIT <nama tabel>; · Contoh: COMMIT WALI; ¿ Menampilkan Isi Tabel SELECT <daftar atribut> FROM <nama tabel> WHERE <kondisi>; · Contoh: SELECT * FROM WALI;
12 Basis Data Perintah SQL ¿ Mengedit Isi Tabel UPDATE <nama tabel> SET <atribut> = <harga baru> WHERE <kondisi>; · Contoh: UPDATE WALI SET KD_WALI=7 WHERE KD_WALI=5; ¿ Mengembalikan Isi Tabel ROLLBACK;
12 Basis Data Perintah SQL ¿ Menghapus Record (Baris Tabel) DELETE FROM <nama tabel> WHERE <kondisi>; · Contoh: DELETE FROM WALI WHERE KD_WALI=2; DELETE FROM WALI WHERE FUNGSIONAL=‘Lektor’; DELETE FROM WALI WHERE NIP=‘ 095067120’; DELETE FROM MAHASISWA WHERE IPK<2. 00;
12 Basis Data QUERIES ¿ Menampilkan Sebagian Isi Tabel SELECT <daftar atribut> FROM <nama tabel> WHERE <kondisi>; · Contoh: SELECT NIP, NAMA FROM WALI WHERE JBT_FNG=‘Lektor’; SELECT KD_WALI, NIP FROM WALI WHERE JBT_FNG=‘Asisten Ahli’;
12 Basis Data QUERIES Operator Matematik
12 Basis Data QUERIES · Contoh: SELECT KD_WALI, NIP, NAMA FROM WALI WHERE JBT_FNG<>‘Lektor’; SELECT NIP, NAMA, JBT_FNG FROM WALI WHERE KD_WALI>5; SELECT NOMHS, NAMA, SKS FROM MAHASISWA WHERE IPK>2. 5; SELECT NOMHS, NAMA, IPK FROM MAHASISWA WHERE SKS<18;
12 Basis Data QUERIES • Special Operators – BETWEEN - digunakan untuk menentukan range nilai. SELECT * FROM MAHASISWA WHERE IPK BETWEEN 2. 00 AND 3. 00; – IS NULL - digunakan untuk mengecek apakah suatu atribut bernilai kosong (NULL) SELECT * FROM WALI WHERE JBT_FNG IS NULL; – LIKE - digunakan untuk mengecek apakah suatu atribut mengandung string/ karaker yang mirip SELECT * FROM WALI WHERE NAMA LIKE %SANTO%’; – IN - digunakan untuk mengecek apakah suatu nilai suatu atribut terdapat dalam suatu daftar himpunan nilai SELECT * FROM WALI WHERE JBT_FNG IN (‘ASISTEN AHLI’, ‘LEKTOR’); – EXISTS - digunakan untuk mengecek apakah suatu atribut memiliki nilai. EXISTS is the opposite of IS NULL. SELECT * FROM WALI WHERE JBT_FNG EXIST;
Basis Data QUERIES 12¿ Fungsi-fungsi aggregate yang biasa digunakan: SUM() AVG() COUNT(*) MAX() MIN()
- Slides: 48