SISTEM BASIS DATA Rahajeng Ratnaningsih, S. Kom STMIK – AUB SURAKARTA MODEL DATA RELASIONAL SISTEM BASIS DATA Rahajeng Ratnaningsih, S. Kom STMIK – AUB SURAKARTA
Permodelan Data Menyatakan hubungan antar data dalam database Ada tiga macam model data dasar Hierarkis Jaringan Relasional
Model Hierarkis Dikenal pula sebagai model pohon Menggunakan pola hubungan orangtua anak Contoh: Information Management System Dosen Siti Nurbaya Dosen Ashadi Pengantar Basis Data Pemrograman C Matematika I Rudi Asti Dina Dina Edi Ita Edi
Model Jaringan Disebut juga model CODASYL Setiap anak bisa memiliki lebih dari satu orangtua Contoh: Integrated Database Management System Dosen Siti Nurbaya Dosen Ashadi Pengantar Basis Data Pemrograman C Matematika I Rudi Asti Dina Edi Ita
Model Relasional Merupakan model data yang paling populer Nama Dosen Kelas Mahasiswa Siti Nurbaya Pengantar Basis Data Rudi Asti Dina Pemrograman C Edi Ashadi Matematika I Ita Merupakan model data yang paling populer Menggunakan model berupa tabel berdimensi dua (yang disebut relasi atau tabel) Memakai kunci tamu (foreign key) sebagai penghubung dengan tabel lain
Model Relasional (Lanjutan…) NO_MHS NAMA_MHS 55 Ashadi 56 Rina 57 Budi KODE_MK NAMA_MK DB001 Pengantar Basis Data Basis Data Lanjut PI001 Teknik Multimedia NO_MHS KODE_MK NILAI 55 DB001 A PI001 B 56 57
Model Relasional (Lanjutan…) Relasi atau tabel NO_MHS KODE_MK NILAI 55 DB001 A PI001 B 56 57 Sebuah baris atau tuple Domain NILAI (A, B, C, D, E) Atribut atau kolom
Model Relasional (Lanjutan…) Beberapa sifat yang melekat dalam relasi: Tidak ada baris yang kembar Urutan tupel tidak penting Setiap atribut memiliki nama yang unik Letak atribut bebas Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua baris
Model Data Relasional Data direprentasikan dalam tabel berdimensi dua Nomor_Peg Nama 05001 Karmen 05002 Tigor 05003 Sita Devi Data direprentasikan dalam tabel berdimensi dua Tiga komponen yang mendasari model data relasional: Struktur data Pemanipulasi data Integritas data
Model Data Relasional Struktur data Istilah relasi (relation) menyatakan nama tabel Contoh: PEGAWAI(Nomor_Peg, Nama) Nomor_Peg Nama 05001 Karmen 05002 Tigor 05003 Sita Devi Struktur data
Relasi Setiap relasi memiliki kunci primer (primary key) Kunci primer adalah atribut atau sejumlah atribut yang menjadi pembeda setiap baris dalam relasi Kunci primer biasa dinyatakan dengan garis bawah Kunci primer PEGAWAI(Nomor_Peg, Nama)
Kunci Kunci dapat dibedakan menjadi: Kunci sederhana : Terdiri atas sebuah atribut Kunci komposit : Tersusun atas dua atribut atau lebih Kunci sederhana: PEGAWAI(Nomor_Peg, Nama) DEPARTEMEN(Kode_Dep, Nama_Dep) BARANG(Kode_Barang, Nama_Barang) Kunci komposit: BARANG DIPESAN(No_Pesanan, Kode_Barang, Jumlah) NILAI(No_Mhs, Kode_Matakuliah,Skor)
Kunci Tamu Kunci asing Kunci primer Kunci tamu (foreign key) biasa digunakan sebagai penghubung ke relasi lain Kunci asing PELANGGAN Kd_Pelanggan Nama Kd_Kota A001 Aditya 0501 KOTA B001 Bakdi 0502 Kd_Kota Nama_Kota B002 Bramanto 0502 0501 Semarang 0502 Salatiga Kunci primer 0503 Kendal
Kunci Tamu (Lanjutan…) Garis bawah terputus-putus biasa dipakai untuk menyatakan kunci tamu Contoh: PELANGGAN(Kd_Pelanggan, Nama, Kd_Kota) KOTA(Kd_Kota, Nama_Kota)
Sifat Relasi Setiap relasi memiliki nama yang unik Setiap isian pada perpotongan baris dan kolom harus bersifat atomik (bernilai tunggal) Setiap baris bersifat unik Setiap atribut memiliki nama yang unik Urutan kolom tidak penting Urutan baris juga tidak penting
Kekangan Integritas (Integrity Constraint) Tujuannya adalah untuk memfasilitasi penjagaan keakurasian dan integritas data dalam database (supaya tetap konsisten) Macamnya: Kekangan domain Integritas entitas Integritas referensial Kekangan operasional
Kekangan Domain Memastikan data dalam domain yang telah ditetapkan Domain adalah kemungkinan nilai terhadap suatu atribut Contoh: A,B,C,D,E untuk nilai TRUE untuk pria dan FALSE untuk wanita INTEGER untuk menyatakan nilai bulat Dalam praktek, domain juga mencakup panjang data CHARACTER, SIZE 35 INTEGER, 3 DIGITS
Integritas Entitas Memastikan bahwa data yang terkait dengan kunci primer tidak terlanggar Secara khusus, data Null pada kunci primer akan ditolak Null berarti nilai pada atribut tidak pernah diberikan
Integritas Referensial Memastikan bahwa konsistensi antara dua buah relasi tetap terjaga Keadaan Awal: Kd_Pelanggan Nama Kd_Kota Kd_Kota Nama_Kota A001 Aditya 0501 0501 Semarang B001 Bakdi 0502 0502 Salatiga B002 Bramanto 0502 0503 Kendal
Efek Tanpa Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502 Salatiga Kd_Pelanggan Nama Kd_Kota Kd_Kota Nama_Kota A001 Aditya 0501 0501 Semarang B001 Bakdi 0502 0503 Kendal B002 Bramanto 0502 Menjadi tidak konsisten
Efek Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502 Salatiga Kd_Pelanggan Nama Kd_Kota Kd_Kota Nama_Kota A001 Aditya 0501 0501 Semarang B002 Bramanto 0503 0503 Kendal Ikut terhapus! atau penghapusan ditolak B001 Bakdi 0502
Kekangan Operasional Kekangan yang berhubungan dengan aturan bisnis Misalnya “Saldo tabungan tidak boleh negatif” Pada Access, kekangan seperti ini bisa diimplementasikan pada Validation Rule. Pada PostgreSQL, hal ini bisa diimplementasikan dalam prosedur tersimpan
Relasi Berstruktur Baik Suatu relasi dikatakan berstruktur baik kalau : Mengandung redundansi sesedikit mungkin dan Memungkinkan pemakai memasukkan, mengubah, atau menghapus baris tanpa menimbulkan kesalahan atau tidak konsisten Kesalahan atau akibat tidak konsisten yang ditimbulkan pada ulasan di atas biasa dinamakan anomali
Anomali Anomali penyisipan Anomali penghapusan Anomali peremajaan
Anomali Peremajaan Terjadi bila terdapat pengubahan pada sejumlah data yang redundan, tetapi tanpa sengaja tidak semua ikut diubah PEMASOK KOTA BARANG JUMLAH Kartika Jakarta Monitor GGG 10 Citra Bandung ZIP drive 4 Candra Keyboard 5 Mouse CCP 25 Pemasok Citra pindah ke Bogor dan Pengubahan dilakukan hanya pada data pertama PEMASOK KOTA BARANG JUMLAH Kartika Jakarta Monitor GGG 10 Citra Bogor ZIP drive 4 Candra Keyboard 5 Bandung Mouse CCP 25
Anomali Penyisipan Terjadi bila ada penambahan data KULIAH RUA NG TEMPAT Jaringan Komputer Merapi Gedung Utara Pengantar Basis Data Merbabu Matematikaa I Rama Gedung Selatan Sistem Pakar Sinta Kecerdasan Buatan Terjadi bila ada penambahan data Perhatikan contoh disamping Masalah: “Bagaimana caranya menyimpan fakta bahwa ruang baru bernama Arjuna ada pada gedung selatan?”
Anomali Penghapusan Terjadi kiranya sesuatu baris yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang Perhatikan contoh di samping Apa yang terjadi seandainya data bahwa siswa dengan identitas 12 dihapus? Data yang menyatakan bahwa biaya kursus bahasa Jepang juga akan terhapus NO_SISWA NAMA_KURSUS BIAYA 10 Bahasa Inggris 120.000 Bahasa Prancis Bahasa Mandarin 180.000 15 12 Bahasa Jepang 160.000
Model Relasional Salah satu model database yang terkenal adalah model relasional Data disusun dalam bentuk tabel-tabel Antar dua tabel bisa punya hubungan
Contoh Model Relasional NO_MHS NAMA_MHS 55 Ashadi 56 Rina 57 Budi KODE_MK NAMA_MK DB001 Pengantar Basis Data DB002 Basis Data Lanjut PI001 Teknik Multimedia NO_MHS KODE_MK NILAI 55 DB001 A PI001 B 56 57 DB002 Hubungan
Contoh Informasi yang Bisa Diperoleh NO_MHS NAMA_MHS 55 Ashadi 56 Rina 57 Budi KODE_MK NAMA_MK DB001 Pengantar Basis Data DB002 Basis Data Lanjut PI001 Teknik Multimedia NO_MHS KODE_MK NILAI 55 DB001 A PI001 B 56 57 DB002 NAMA_MHS NAMA_MK NILAI Ashadi Pengantar Basis Data A Teknik Multimedia B Rina Budi Basis Data Lanjut
Istilah Dasar Sebuah database terdiri atas sejumlah tabel Tabel sering disebut sebagai relasi Setiap tabel menyimpan sekumpulan data atau baris Database Akademik Mahasiswa Registrasi Matakuliah Nilai Matakuliah Contoh ada 3 tabel
Istilah Dasar (Lanjutan…) Tabel Data dalam sebuah tabel mengikuti hierarki seperti disamping Rekaman … Rekaman Elemen Data … Elemen Data Deretan byte/bit
Istilah Dasar (Lanjutan…) Database Akademik Mahasiswa Registrasi Matakuliah Nilai Matakuliah Atribut atau kolom NO_MHS KODE_MK NILAI 55 DB001 A PI001 B 56 57 Relasi atau tabel Baris atau tuple
Karakteristik dalam Relasi Tidak ada baris yang kembar Urutan baris tidak penting Setiap atribut memiliki nama yang unik Letak atribut bebas Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua baris
Pengertian Tidak Ada Baris Kembar Primary key Baris punya identitas yang membuat dua buah baris tidak kembar Identitas tersebut dinamakan “primary key” NO_MHS KODE_MK NILAI 55 DB001 A PI001 B 56 57 Contoh baris kembar
Pengertian Urutan Baris Tidak Penting NO_MHS KODE_MK NILAI 55 DB001 A PI001 B 56 57 DB002 NO_MHS KODE_MK NILAI 57 DB001 A 55 PI001 B 56 DB002
Setiap Atribut Memiliki Nama Unik Nama atribut unik Nama atribut unik Nama atribut unik TIDAK UNIK Nama atribut unik NO_SISWA TES_1 TES_2 12 75 80 13 76 78 14 89 58 15 60 90 16 86 NO_SISWA TES 12 75 80 13 76 78 14 89 58 15 60 90 16 86
Letak Atribut Bebas Urutan kolom tidak penting NO_SISWA TES_1 TES_2 12 75 80 13 76 78 14 89 58 15 60 90 16 86 TES_2 TES_1 NO_SISWA 80 75 12 78 76 13 58 89 14 90 60 15 86 16 Urutan kolom tidak penting
Setiap Atribut Memiliki Nilai Tunggal Semua atribut bernilai tunggal Nilai TIDAK TUNGGAL NO_SISWA TES 12 75 80 13 76 78 14 89 58 15 60 90 16 86 NO_SISWA TES_1 TES_2 12 75 80 13 76 78 14 89 58 15 60 90 16 86
Setiap Atribut Berjenis Sama untuk Semua Baris Semua atribut bernilai tunggal Jenis tidak sama NO_SISWA TES_1 TES_2 12 75 80 13 Tujuh puluh enam 78 14 89 58 15 60 90 16 86 NO_SISWA TES_1 TES_2 12 75 80 13 76 78 14 89 58 15 60 90 16 86
Apa Primary Key-nya? (1) NO_KTP NO_KK NAMA ?
Apa Primary Key-nya? (2) KODE_DEPARTEMEN NAMA_DEPARTEMEN 1 Akunting 2 EDP 3 Pemasaran 4 Produksi
Apa Primary Key-nya? (3) NO_FAKTUR KODE_ITEM JUMLAH 456 K-1 2 457 K-5 459 3 K-2 460 K-8 5
Apa Primary Key-nya? (4) SEMESTER TAHUN NO_MHS KODE_MKULIAH SKS 1 2007 1189 M-01 3 M-02 2 1190 M-03
Apa yang Salah? (1) NO_FAKTUR ITEM 456 Pensil 457 Buku Penggaris Spidol 459 460 461 Penghapus
Apa yang Salah? (2) NO_PEGAWAI SEX BAHASA_ASING 12345 L ARAB 12346 W 12347 INGGRIS 12348 JERMAN 12349 SPANYOL
Apa yang Salah? (3) NO_PEGAWAI SEX BAHASA_ASING 12345 L ARAB 12346 W 12347 INGGRIS 12348 JERMAN