Perancangan Basisdata
Tahap Perancangan Basis Data Pembuatan ERD (Entity Relasionship Diagram) Pembuatan Struktur Tabel. Menentukan tipe data Menentukan Domain dan Constraint
Pembuatan ERD (tahap Logika) Tahap pembuatan ERD awal (preliminary design) Tahap optimasi ERD (final design).
Tahap awal (preliminary design) Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database tersebut. Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya Mengidentifkasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan entity yang ada. Menentukan derajat relasi untuk setiap himpunan relasi, yang akan menjadi dasar penentuan kunci tamu (foreign key)- nya Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key).
Tahap optimasi Diagram ER (final design). Transformasi Relasi M-M Pemetaan Hubungan Supertype/Subtype Normalisasi Tabel
Relasi/ Tabel 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 tamu (foreign key) biasa digunakan sebagai penghubung ke relasi lain PELANGGAN Kunci asing 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)
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
Tranformasi Diagram ER/EER ke Relasi Memetakan Entitas Reguler (kuat) Nama_Pelanggan Tipe entitas PELANGGAN No_Pelanggan PELANGGAN Alamat_Pelanggan
Tranformasi Diagram ER ke Relasi Memetakan Entitas dengan Atribut Komposit PELANGGAN No_Pelanggan Nama_Pelanggan Alamat_Pelanggan Tipe entitas PELANGGAN dengan atribut komposit Jalan Kota Kode_Pos Relasi PELANGGAN
Tranformasi Diagram ER ke Relasi Memetakan Entitas dengan Atribut Bernilai Ganda Nama_Pegawai No_Pegawai Alamat_Pegawai Tipe entitas PEGAWAI dengan atribut bernilai ganda PEGAWAI Keterampilan
Pemetaan Entitas Lemah PEGAWAI Memiliki No_Pegawai Nama_Pegawai Nama_Tanggungan Tanggal_Lahir TANGGUNGAN
Pemetaan Hubungan 1 to M Mengirim PELANGGAN No_Pelanggan Nama_Pelanggan Nomor_Pesan Tanggal_Pesan PESANAN
Pemetaan Hubungan M to M Meminta PESANAN No_Pesan Tgl_Pesan Kode_Produk Harga_Unit PRODUK Jumlah
Pemetaan Hubungan 1 to 1 atau No_Dosen Nama_Dosen Kode_Prodi Nama_Prodi Tanggal_Penugasan Mengepalai DOSEN PROGRAM STUDI atau
Pemetaan Entitas Asosiatif (Ternary) No_Pelanggan Nama Kode_Vendor Nama_Vendor Tanggal No_Kirim Jumlah PENGIRIMAN PELANGGAN VENDOR Kode_Barang Alamat Nama_Barang Barang
Pemetaan Unary 1:N Nama_Pegawai Tgl_Lahir No_Pegawai PEGAWAI Mengepalai
Pemetaan Unary M:M Nama_Item Harga_Unit No_Item ITEM Tersusun_atas Jumlah
Pemetaan Hubungan Supertipe/Subtipe Nama_Pegawai Alamat Nomor_Pegawai PEGAWAI Tgl_Mulai_Kerja Tipe_Pegawai: d “H” “K” “T” PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK Kompensasi Upah_Harian Gaji_Bulanan Tunjangan Nomor_Kontrak Lama_Kontrak
Pemetaan Hubungan Supertipe/Subtipe (Lanjutan…) Model relasional tidak mendukung hubungan supertipe/subtipe secara langsung Strategi pemecahan untuk kasus di depan: Buat relasi terpisah untuk masing-masing supertipe dan subtipe Berikan atribut-atribut yang umum dalam supertipe Masukkan pembeda subtipe pada supertipe Tambahkan kunci primer pada supertipe ke semua subtipe
Pemetaan Hubungan Supertipe/Subtipe (Lanjutan…)
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
Solusi Pemetaan Hubungan Supertipe/Subtipe Nomor_Pegawai Nama_Pegawai Alamat Tgl_Mulai_Kerja Tipe_Pegawai PEGAWAI Nomor_Pegawai Upah_Harian PEGAWAI HARIAN Nomor_Pegawai Gaji_Bulanan Tunjangan PEGAWAI TETAP Nomor_Pegawai Nomor_Kontrak Lama_Kontrak Kompensasi PEGAWAI KONTRAK
PR Suatu hasil ujian dinyatakan dengan atribut seperti berikut: No_Mhs Nama_Mhs Mataujian No_Dosen_Penguji Nama_Dosen_Penguji Gambarkan diagram E-R-nya Kemudian ubahlah diagram E-R tersebut ke relasi