Perancangan Basisdata Tahap Perancangan Basis Data 1 Pembuatan
Perancangan Basisdata
Tahap Perancangan Basis Data 1. Pembuatan ERD (Entity Relasionship Diagram) 2. Pembuatan Struktur Tabel. – Menentukan tipe data – Menentukan Domain dan Constraint
Pembuatan ERD (tahap Logika) 1. Tahap pembuatan ERD awal (preliminary design) 2. Tahap optimasi ERD (final design).
Tahap awal (preliminary design) 1. Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database tersebut. 2. Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya 3. Mengidentifkasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan entity yang ada. 4. Menentukan derajat relasi untuk setiap himpunan relasi, yang akan menjadi dasar penentuan kunci tamu (foreign key)- nya 5. 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 Kunci primer dengan garis bawah PEGAWAI(Nomor_Peg, Nama)
Kunci • Kunci dapat dibedakan menjadi: 1. Kunci sederhana : Terdiri atas sebuah atribut 2. 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 A 001 Aditya 0501 B 001 Bakdi 0502 B 002 Bramanto 0502 Kunci primer KOTA Kd_Kota Nama_Kota 0501 Semarang 0502 Salatiga 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 No_Pelanggan Tipe entitas PELANGGAN Alamat_Pelanggan
Tranformasi Diagram ER ke Relasi • Memetakan Entitas dengan Atribut Komposit Jalan Nama_Pelanggan Kota Kode_Pos No_Pelanggan PELANGGAN Alamat_Pelanggan Relasi PELANGGAN Tipe entitas PELANGGAN dengan atribut komposit
Tranformasi Diagram ER ke Relasi • Memetakan Entitas dengan Atribut Bernilai Ganda Nama_Pegawai Alamat_Pegawai No_Pegawai PEGAWAI Keterampilan Tipe entitas PEGAWAI dengan atribut bernilai ganda
Pemetaan Entitas Lemah No_Pegawai PEGAWAI Nama_Pegawai Nama_Tanggungan Memiliki Tanggal_Lahir TANGGUNGAN
Pemetaan Hubungan 1 to M No_Pelanggan Nama_Pelanggan PELANGGAN Nomor_Pesan Mengirim Tanggal_Pesan PESANAN
Pemetaan Hubungan M to M No_Pesan Tgl_Pesan Kode_Produk Harga_Unit Jumlah PESANAN Meminta PRODUK
Pemetaan Hubungan 1 to 1 No_Dosen Nama_Dosen Kode_Prodi Nama_Prodi Tanggal_Penugasan DOSEN Mengepalai atau PROGRAM STUDI
Pemetaan Entitas Asosiatif (Ternary) No_Pelanggan Nama No_Kirim PELANGGAN Kode_Vendor Nama_Vendor Tanggal Jumlah PENGIRIMAN Kode_Barang VENDOR Nama_Barang Alamat
Pemetaan Unary 1: N Nama_Pegawai Tgl_Lahir No_Pegawai PEGAWAI Mengepalai
Pemetaan Unary M: M Nama_Item No_Item ITEM Jumlah Tersusun_atas Harga_Unit
Pemetaan Hubungan Supertipe/Subtipe Nama_Pegawai Nomor_Pegawai Alamat PEGAWAI Tipe_Pegawai: d “H” “T” Tgl_Mulai_Kerja “K” PEGAWAI HARIANPEGAWAI TETAPPEGAWAI KONTRAK Upah_Harian Gaji_Bulanan Kompensasi 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: 1. Buat relasi terpisah untuk masing-masing supertipe dan subtipe 2. Berikan atribut-atribut yang umum dalam supertipe 3. Masukkan pembeda subtipe pada supertipe 4. 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 • Contoh: – 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 Nama_Kota A 001 Aditya 0501 Semarang B 001 Bakdi 0502 Salatiga B 002 Bramanto 0502 0503 Kendal
Efek Tanpa Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502 Kd_Pelanggan Nama Kd_Kota Salatiga Nama_Kota A 001 Aditya 0501 Semarang B 001 Bakdi 0502 0503 Kendal B 002 Bramanto 0502 Menjadi tidak konsisten
Efek Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502 Kd_Pelanggan Nama Kd_Kota Salatiga Nama_Kota A 001 Aditya 0501 Semarang B 002 Bramanto 0503 Kendal B 001 Bakdi 0502 Ikut terhapus! atau penghapusan ditolak
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 Postgre. SQL, hal ini bisa diimplementasikan dalam prosedur tersimpan
Solusi Pemetaan Hubungan Supertipe/Subtipe Nomor_Pegawai Nama_Pegawai Nomor_Pegawai Alamat Tgl_Mulai_Kerja Tipe_Pegawai PEGAWAI Upah_Harian Nomor_Pegawai Gaji_Bulanan Tunjangan PEGAWAI HARIAN 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
- Slides: 32