Perancangan Basisdata Tahap Perancangan Basis Data 1. Pembuatan ERD (Entity Relasionship Diagram) 2. Pembuatan Struktur Tabel. – Menentukan tipe data – Menentukan Domain dan Constraint.
Download ReportTranscript Perancangan Basisdata Tahap Perancangan Basis Data 1. Pembuatan ERD (Entity Relasionship Diagram) 2. Pembuatan Struktur Tabel. – Menentukan tipe data – Menentukan Domain dan Constraint.
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 A001 Aditya 0501 B001 Bakdi 0502 B002 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 PELANGGAN Alamat_Pelanggan Tranformasi Diagram ER ke Relasi • Memetakan Entitas dengan Atribut Komposit Nama_Pelanggan Jalan 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 Memiliki Nama_Tanggungan Tanggal_Lahir TANGGUNGAN Pemetaan Hubungan 1 to M No_Pelanggan PELANGGAN Nama_Pelanggan Mengirim Nomor_Pesan 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 Mengepalai DOSEN atau PROGRAM STUDI Pemetaan Entitas Asosiatif (Ternary) No_Pelanggan Nama No_Kirim PELANGGAN Kode_Vendor Nama_Vendor Tanggal Jumlah VENDOR PENGIRIMAN Kode_Barang Nama_Barang 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 Alamat Nomor_Pegawai Tgl_Mulai_Kerja PEGAWAI Tipe_Pegawai: “H” PEGAWAI HARIAN Upah_Harian d “T” “K” PEGAWAI TETAP Gaji_Bulanan Tunjangan PEGAWAI KONTRAK Nomor_Kontrak Kompensasi 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 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 Kd_Pelanggan Nama Kd_Kota Kd_Kota Salatiga 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 Kd_Pelanggan Nama Kd_Kota Salatiga Kd_Kota Nama_Kota A001 Aditya 0501 0501 Semarang B002 Bramanto 0503 0503 Kendal B001 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 PostgreSQL, 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