Title: Perancangan Database Bagian I
1Perancangan DatabaseBagian I
2Model Data Relasional
- Data direprentasikan dalam tabel berdimensi dua
- Tiga komponen yang mendasari model data
relasional - Struktur data
- Pemanipulasi data
- Integritas data
3Model Data Relasional
- Istilah relasi (relation) menyatakan nama tabel
- Contoh
- PEGAWAI(Nomor_Peg, Nama)
Struktur data
4Relasi
- 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)
5Kunci
- 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_B
arang, Nama_Barang)
Kunci komposit BARANG DIPESAN(No_Pesanan,
Kode_Barang,
Jumlah) NILAI(No_Mhs, Kode_Matakuliah,Skor)
6Kunci Tamu
- Kunci tamu (foreign key) biasa digunakan sebagai
penghubung ke relasi lain
Kunci asing
PELANGGAN
Kd_Pelanggan ?
Nama
Kd_Kota
A001
Aditya
0501
KOTA
Kd_Kota ?
Nama_Kota
B001
Bakdi
0502
B002
Bramanto
0502
0501
Semarang
0502
Salatiga
Kunci primer
0503
Kendal
7Kunci Tamu (Lanjutan)
- Garis bawah terputus-putus biasa dipakai untuk
menyatakan kunci tamu - Contoh
- PELANGGAN(Kd_Pelanggan, Nama, Kd_Kota)
- KOTA(Kd_Kota, Nama_Kota)
8Sifat Relasi
- 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
9Kekangan 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
10Kekangan 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
11Integritas 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
12Integritas Referensial
- Memastikan bahwa konsistensi antara dua buah
relasi tetap terjaga
Keadaan Awal
Kd_Kota
Nama_Kota
Kd_Pelanggan
Nama
Kd_Kota
0501
Semarang
A001
Aditya
0501
0502
Salatiga
B001
Bakdi
0502
0503
Kendal
B002
Bramanto
0502
13Efek Tanpa Integritas Referensial
Keadaan Setelah data 0502 pada KOTA dihapus
0502
Salatiga
Kd_Kota
Nama_Kota
Kd_Pelanggan
Nama
Kd_Kota
0501
Semarang
A001
Aditya
0501
0503
Kendal
B001
Bakdi
0502
B002
Bramanto
0502
Menjadi tidak konsisten
14Efek Integritas Referensial
Keadaan Setekah data 0502 pada KOTA dihapus
0502
Salatiga
Kd_Kota
Nama_Kota
Kd_Pelanggan
Nama
Kd_Kota
0501
Semarang
A001
Aditya
0501
0503
Kendal
B002
Bramanto
0502
Ikut terhapus! atau penghapusan ditolak
B001
Bakdi
0502
15Kekangan 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
16Relasi 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
17Anomali
- Anomali penyisipan
- Anomali penghapusan
- Anomali peremajaan
18Anomali Peremajaan
- Terjadi bila terdapat pengubahan pada sejumlah
data yang redundan, tetapi tanpa sengaja tidak
semua ikut diubah
PEMASOK KOTA BARANG JUMLAH
Kartika Jakarta Monitor GGG 10
Citra Bandung ZIP drive 4
Candra Jakarta Keyboard 5
Citra Bandung Mouse CCP 25
Pemasok Citra pindah ke Bogor dan Pengubahan
dilakukan hanya pada data pertama
PEMASOK KOTA BARANG JUMLAH
Kartika Jakarta Monitor GGG 10
Citra Bogor ZIP drive 4
Candra Jakarta Keyboard 5
Citra Bandung Mouse CCP 25
19Anomali Penyisipan
KULIAH RUA NG TEMPAT
Jaringan Komputer Merapi Gedung Utara
Pengantar Basis Data Merbabu Gedung Utara
Matematikaa I Rama Gedung Selatan
Sistem Pakar Sinta Gedung Selatan
Kecerdasan Buatan Merapi Gedung Utara
- Terjadi bila ada penambahan data
- Perhatikan contoh disamping
- Masalah Bagaimana caranya menyimpan fakta bahwa
ruang baru bernama Arjuna ada pada gedung
selatan?
20Anomali 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 20 dihapus? Data yang menyatakan
bahwa biaya kursus bahasa Jepang juga akan
terhapus
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
21Tranformasi 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
Alamat_Pelanggan
22Tranformasi Diagram ER ke Relasi
- Memetakan Entitas dengan Atribut Komposit
Jalan
Nama_Pelanggan
Kota
Tipe entitas PELANGGAN dengan atribut komposit
Kode_Pos
No_Pelanggan
PELANGGAN
Alamat_Pelanggan
Relasi PELANGGAN
No_Pelanggan
Nama_Pelanggan
Jalan
Kota
Kode_Pos
23Tranformasi Diagram ER ke Relasi
- Memetakan Entitas dengan Atribut Bernilai Ganda
Nama_Pegawai
Alamat_Pegawai
No_Pegawai
Tipe entitas PEGAWAI dengan atribut bernilai ganda
PEGAWAI
Keterampilan
No_Pegawai
Nama_Pegawai
Alamat_Pegawai
Relasi PEGAWAI
No_Pegawai
Keterampilan
Relasi KETERAMPILAN PEGAWAI
24Pemetaan Entitas Lemah
No_Pegawai
Nama_Pegawai
Nama_Tanggungan
Tanggal_Lahir
Memiliki
PEGAWAI
TANGGUNGAN
No_Pegawai
Nama_Pegawai
Relasi PEGAWAI
No_Pegawai
Nama_Tanggungan
Tanggal_Lahir
Relasi TANGGUNGAN
25Pemetaan Hubungan 1 to M
No_Pelanggan
Nama_Pelanggan
Nomor_Pesan
Tanggal_Pesan
Mengirim
PELANGGAN
PESANAN
No_Pelanggan
Nama_Pelanggan
Relasi PELANGGAN
No_Pesan
Tanggal_Pesan
No_Pelanggan
Relasi PESANAN
26Pemetaan Hubungan M to M
No_Pesan
Tgl_Pesan
Kode_Produk
Harga_Unit
Jumlah
Meminta
PESANAN
PRODUK
No_Pesan
Tgl_pesan
Relasi PESANAN
No_Pesan
Kode_Produk
Jumlah
Relasi BARIS PESANAN
Kode_Produk
Harga_Unit
Relasi PRODUK
27Pemetaan Hubungan 1 to 1
No_Dosen
Nama_Dosen
Kode_Prodi
Nama_Prodi
Tanggal_Penugasan
Mengepalai
DOSEN
PROGRAM STUDI
No_Dosen
Nama_Dosen
Relasi DOSEN
Relasi PROGRAM STUDI
Kode_Prodi
Nama_Prodi
No_Dosen
Tanggal_penugasan
28Pemetaan Entitas Asosiatif(Ternary)
No_Pelanggan
Nama
Vendor
Alamat
Tanggal
No_Kirim
Jumlah
PENGIRIMAN
PELANGGAN
VENDOR
No_Pelanggan
Nama
Relasi PELANGGAN
Relasi PENGIRIMAN
No_Kirim
Tanggal
Jumlah
No_Pelanggan
Kode_Vendor
Kode_Vendor
Alamat
Relasi VENDOR
29Pemetaan Unary 1N
Nama_Pegawai
Tgl_Lahir
No_Pegawai
PEGAWAI
Mengepalai
No_Pegawai
Nama_Pegawai
Tgl_lahir
ID_Manajer
Relasi PEGAWAI
30Pemetaan Unary MM
Nama_Item
Harga_Unit
No_Item
ITEM
Tersusun_atas
Jumlah
No_Item
Nama_Item
Harga_Unit
Relasi ITEM
No_Item
No_Komponen
Jumlah
Relasi KOMPONEN
31Pemetaan 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
Gaji_Bulanan
Upah_Harian
Nomor_Kontrak
Lama_Kontrak
Tunjangan
32Pemetaan 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 (termasuk kunci
primer) ke supertipe - Masukkan pembeda subtipe pada supertipe
- Tambahkan kunci primer pada supertipe ke semua
subtipe
33Solusi 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
34PR
- Suatu hasil ujian dinyatakan dengan atribut
seperti berikut - No_Mhs
- Nama_Mhs
- Mataujian
- No_Dosen_Penguji
- Nama_Dosen_Penguji
- Nilai
- Gambarkan diagram E-R-nya
- Kemudian ubahlah diagram E-R tersebut ke relasi