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 Jalan Nama_Pelanggan Kota Kode_Pos Tipe entitas PELANGGAN dengan atribut komposit No_Pelanggan PELANGGAN Alamat_Pelanggan 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 No_Pegawai Nama_Pegawai Nama_Tanggungan Tanggal_Lahir Memiliki PEGAWAI TANGGUNGAN
Pemetaan Hubungan 1 to M No_Pelanggan Nama_Pelanggan Nomor_Pesan Tanggal_Pesan Mengirim PELANGGAN PESANAN
Pemetaan Hubungan M to M No_Pesan Tgl_Pesan Kode_Produk Harga_Unit Jumlah Meminta PESANAN PRODUK
Pemetaan Hubungan 1 to 1 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 No_Pegawai Tgl_Lahir PEGAWAI Mengepalai
Pemetaan Unary M:M Nama_Item Harga_Unit No_Item ITEM Tersusun_atas Jumlah
Pemetaan Hubungan Supertipe/Subtipe Nama_Pegawai Alamat PEGAWAI Nomor_Pegawai Tgl_Mulai_Kerja Tipe_Pegawai: d “K” “H” “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 • 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 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