Perancangan Database Bagian I Ahmad Hanafi
1
Model Data Relasional Data direprentasikan dalam tabel
berdimensi dua Tiga komponen yang mendasari model data relasional: Struktur data Pemanipulasi data Integritas data
2
Nomor_Peg
Nama
05001
Karmen
05002
Tigor
05003
Sita Devi
Model Data Relasional Istilah relasi (relation) menyatakan
nama tabel
Nomor_Peg
Contoh:
05001
Karmen
05002
Tigor
05003
Sita Devi
PEGAWAI(Nomor_Peg, Nama)
Struktur data
3
Nama
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)
4
Kunci
Kunci dapat dibedakan menjadi: 1. 2.
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)
5
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
Kunci asing PELANGGAN Kd_Pelanggan
Kd_Kota
A001
Aditya
0501
B001
Bakdi
0502
B002
6
Nama
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)
7
Sifat Relasi 1. 2. 3. 4. 5. 6.
8
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
9
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
10
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
11
Integritas Referensial Memastikan bahwa konsistensi antara dua buah relasi tetap
terjaga
Keadaan Awal: Kd_Pelanggan
12
Nama
Kd_Kota
Kd_Kota
Nama_Kota
A001
Aditya
0501
0501
Semarang
B001
Bachdim
0502
0502
Malang
B002
Bramanto
0502
0503
Kendal
Efek Tanpa Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502
Kd_Pelanggan
13
Nama
Kd_Kota
Kd_Kota
Malang
Nama_Kota
A001
Aditya
0501
0501
Semarang
B001
Bachdim
0502
0503
Kendal
B002
Bramanto
0502
Menjadi tidak konsisten
Efek Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502
Kd_Pelanggan
Kd_Kota
Kd_Kota
Nama_Kota
A001
Aditya
0501
0501
Semarang
B002
Bramanto
0503
0503
Kendal
B001 14
Nama
Malang
Bachdim
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
15
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
16
Anomali 1. 2. 3.
17
Anomali penyisipan Anomali penghapusan Anomali peremajaan
Anomali Peremajaan Terjadi bila terdapat
pengubahan pada sejumlah data yang redundan, tetapi tanpa sengaja tidak semua ikut diubah
18
PEMASOK
KOTA
BARANG
JUMLAH
Kartika
Jakarta
Monitor GGG
Citra
Bandung
ZIP drive
4
Candra
Jakarta
Keyboard
5
Citra
Bandung
Mouse CCP
10
25
Pemasok Citra pindah ke Bogor dan Pengubahan dilakukan hanya pada data pertama
PEMASOK
KOTA
BARANG
JUMLAH
Kartika
Jakarta
Monitor GGG
Citra
Bogor
ZIP drive
4
Candra
Jakarta
Keyboard
5
Citra
Bandung
Mouse CCP
10
25
Anomali Penyisipan Terjadi bila ada
penambahan data Perhatikan contoh disamping Masalah: “Bagaimana caranya menyimpan fakta bahwa ruang baru bernama Arjuna ada pada gedung selatan?” 19
KULIAH
RUA NG
TEMPAT
Jaringan Komputer
Merapi
Gedung Utara
Pengantar Basis Data
Merbabu
Gedung Utara
Matematika I
Rama
Gedung Selatan
Sistem Pakar
Sinta
Gedung Selatan
Kecerdasan Buatan
Merapi
Gedung Utara
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
20
NO_SISWA
NAMA_KURSUS
BIAYA
10
Bahasa Inggris
120.000
10
Bahasa Prancis
120.000
10
Bahasa Mandarin
180.000
15
Bahasa Inggris
120.000
12
Bahasa Jepang
160.000
Tranformasi Diagram ER/EER ke Relasi Memetakan Entitas Reguler (kuat)
Nama_Pelanggan Tipe entitas PELANGGAN No_Pelanggan
PELANGGAN
Alamat_Pelanggan
Relasi PELANGGAN No_Pelanggan Nama_Pelanggan 21
Alamat_Pelanggan
Tranformasi Diagram ER ke Relasi Memetakan Entitas dengan Atribut Komposit Jalan Nama_Pelanggan
Kota Kode_Pos
No_Pelanggan
PELANGGAN
No_Pelanggan Nama_Pelanggan 22
Alamat_Pelanggan
Jalan
Kota
Kode_Pos
Tipe entitas PELANGGAN dengan atribut komposit
Relasi PELANGGAN
Tranformasi Diagram ER ke Relasi Memetakan Entitas dengan Atribut Bernilai Ganda Nama_Pegawai Alamat_Pegawai
No_Pegawai
PEGAWAI
23
No_Pegawai
Nama_Pegawai
No_Pegawai
Keterampilan
Keterampilan
Alamat_Pegawai
Tipe entitas PEGAWAI dengan atribut bernilai ganda
Relasi PEGAWAI
Relasi KETERAMPILAN PEGAWAI
Pemetaan Entitas Lemah No_Pegawai
PEGAWAI
24
Nama_Pegawai
Memiliki
No_Pegawai
Nama_Pegawai
No_Pegawai
Nama_Tanggungan
Nama_Tanggungan
Tanggal_Lahir
TANGGUNGAN
Relasi PEGAWAI
Tanggal_Lahir
Relasi TANGGUNGAN
Pemetaan Hubungan 1 to M No_Pelanggan
Nama_Pelanggan
PELANGGAN
No_Pesan
Tanggal_Pesan
Tanggal_Pesan
PESANAN
Mengirim
No_Pelanggan Nama_Pelanggan
25
Nomor_Pesan
Relasi PELANGGAN
No_Pelanggan
Relasi PESANAN
Pemetaan Hubungan M to M No_Pesan
Tgl_Pesan
Kode_Produk
Harga_Unit
Jumlah
PESANAN
26
PRODUK
Meminta
No_Pesan
Tgl_pesan
No_Pesan
Kode_Produk
Kode_Produk
Harga_Unit
Relasi PESANAN Jumlah
Relasi PRODUK
Relasi BARIS PESANAN
Pemetaan Hubungan 1 to 1 No_Dosen
Nama_Dosen
Kode_Prodi
Nama_Prodi
Tanggal_Penugasan
DOSEN
No_Dosen
Kode_Prodi 27
PROGRAM STUDI
Mengepalai
Nama_Dosen
Nama_Prodi
Relasi DOSEN
No_Dosen
Tanggal_penugasan
Relasi PROGRAM STUDI
Pemetaan Entitas Asosiatif (Ternary) No_Pelanggan
Nama
Kode_Vendor
Alamat
Tanggal
No_Kirim
Jumlah PELANGGAN
No_Pelanggan
No_Kirim 28
Kode_Vendor
PENGIRIMAN
Nama
Tanggal Alamat
VENDOR
Relasi PELANGGAN
Jumlah No_Pelanggan Kode_Vendor
Relasi VENDOR
Relasi PENGIRIMAN
Pemetaan Unary 1:N Nama_Pegawai Tgl_Lahir
No_Pegawai
PEGAWAI
Mengepalai
No_Pegawai
29
Nama_Pegawai
Tgl_lahir
ID_Manajer
Relasi PEGAWAI
Pemetaan Unary M:M Nama_Item Harga_Unit
No_Item
ITEM
Jumlah
30
Tersusun_atas
No_Item
Nama_Item
Harga_Unit
No_Item
No_Komponen
Jumlah
Relasi ITEM
Relasi KOMPONEN
Pemetaan Hubungan Supertipe/Subtipe Nama_Pegawai
Alamat
Nomor_Pegawai
Tgl_Mulai_Kerja
PEGAWAI Tipe_Pegawai:
d
“H”
“K”
“T”
PEGAWAI HARIAN
Upah_Harian
31
PEGAWAI TETAP
Gaji_Bulanan
PEGAWAI KONTRAK
Tunjangan
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. 2. 3. 4.
32
Buat relasi terpisah untuk masing-masing supertipe dan subtipe Berikan atribut-atribut yang umum (termasuk kunci primer) ke supertipe Masukkan pembeda subtipe pada supertipe Tambahkan kunci primer pada supertipe ke semua subtipe
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 33
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
34