Post on 27-Jun-2019
Perancangan
DatabaseBagian I
14/26/2009
Pengantar
Apa yang akan dipelajari dalam modul ini?
Model data relasional
Relasi
Kunci
Integrity Constraints
Anomali
Transformasi Diagram E/R ke Relasi
Pemetaan Hubungan4/26/2009 2
Model Data Relasional
• Diperkenalkan oleh Codd tahun 1970
• Data direprentasikan dalam tabel berdimensi dua
3
Nomor_Peg Nama
05001 Karmen
05002 Tigor
05003 Sita Devi
4/26/2009
Model Data Relasional
• Tiga komponen yang mendasari model data relasional:
– Struktur data (data structure)
Data disusun dalam bentuk tabel (relasi)
– Pemanipulasi data (data manipulation)
Tabel menyimpan operasi-operasi untukmemanipulasi data. Contoh: perintah dalam bahasaSQL.
– Integritas data (data integrity)
Adanya fasilitas-fasilitas dalam aturan bisnis(business rules) yang menjaga integritas data saatterjadi manipulasi data. 4/26/2009 4
Model Data Relasional• Istilah relasi (relation)
menyatakan nama tabel
• Suatu relasi dapat dituliskan
dengan cara:
Menggambarkan tabel
Menuliskan notasi nama tabel
(namaKunciPrimer, nama
kolom2,…)
– Contoh: PEGAWAI(Nomor_Peg, Nama)
5
Nomor_Peg Nama
05001 Karmen
05002 Tigor
05003 Sita Devi
Struktur data4/26/2009
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
6PEGAWAI(Nomor_Peg, Nama)
Kunci primer
4/26/2009
Kunci
• Kunci dapat dibedakan menjadi:
1. Kunci sederhana : Terdiri atas sebuah atribut
2. Kunci komposit : Tersusun atas dua atribut atau
lebih
7
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)
4/26/2009
Kunci Tamu
• Kunci tamu (foreign key) biasa digunakan
sebagai penghubung ke relasi lain
8
Kd_Kota
Nama_Kota
0501 Semarang
0502 Salatiga
0503 Kendal
Kd_Pelanggan
Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0503
PELANGGAN(Tabel yang merujuk )
KOTA (Tabel yang dirujuk )
Kunci primer
Kunci asing
4/26/2009
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)
94/26/2009
Sifat Relasi
1. Setiap relasi memiliki nama yang unik
2. Setiap isian pada perpotongan baris dan kolom
(sel) harus bersifat atomik (bernilai tunggal)
3. Setiap baris bersifat unik
4. Setiap atribut memiliki nama yang unik
5. Urutan kolom tidak penting
6. Urutan baris juga tidak penting104/26/2009
Kekangan Integritas
(Integrity Constraint)
• Tujuannya adalah untuk memfasilitasi penjagaan
keakurasian dan integritas data dalam database
(supaya tetap konsisten)
• Macamnya:
– Kekangan domain (domain contraints)
– Integritas entitas (entity integrity constraints)
– Integritas referensial (referential integrity constraints)
– Kekangan operasional114/26/2009
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 DIGITS124/26/2009
Contoh :
Gambar 1. Diagram E/R
Nama atribut :………………
Arti :………………
Tipe data :………………
Format :………………
Jangkauan :………………
Keunikan :………………
Dukungan null:…………….4/26/2009 13
MHS KULIAHmengambilNIM
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
144/26/2009
Integritas Referensial
• Memastikan bahwa konsistensi antara dua buah
relasi tetap terjaga
15
Kd_Kota Nama_Kota
0501 Semarang
0502 Salatiga
0503 Kendal
Kd_Pelanggan Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0503
Keadaan Awal:
4/26/2009
Efek Tanpa Integritas
Referensial
16
Kd_Kota Nama_Kota
0501 Semarang
0502 Salatiga
0503 Kendal
Kd_Pelanggan Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0503
Keadaan Setelah data 0502
pada KOTA dihapus:
Menjadi
tidak konsisten4/26/2009
Efek Integritas
Referensial
17
Kd_Kota Nama_Kota
0501 Semarang
0503 Kendal
Kd_Pelanggan Nama
A001 Aditya
B002 Bramanto
Kd_Kota
0501
0503
0502 Salatiga
Keadaan Setekah data 0502
pada KOTA dihapus:
B001 Bakdi 0502
Ikut terhapus! atau
penghapusan
ditolak4/26/2009
Manipulasi data dalam
database
• Aturan-aturan yang perlu diterapkan agar tidak
terjadi pelanggaran terhadap aturan integritas
referensial :
– Insertion rule
– Deletion rule
– Update rule
4/26/2009 18
Insertion rule
• Aturan: Jika dilakukan penyisipan baris terhadap
sebuah tabel yang merujuk, maka harus terdapat
nilai yang bersesuaian dalam tabel yang dirujuk.
• Contoh: Jika dalam tabel Pelanggan akan
dimasukkan data kota dengan kode kota 0510,
maka tidak diijinkan. Mengapa?
4/26/2009 19
Deletion Rule
• Aturan: Jika diberlakukan penghapusan baris
terhadap sebuah tabel yang dirujuk dan memiliki
nilai yang bersesuaian dengan tabel yang
merujuk maka harus ada perlakuan tertentu
untuk menjamin integritas database tersebut.
4/26/2009 20
Deletion Rule……
• Perlakuan yang mungkin diterapkan:
Restrict
Tidak mengijinkan penghapusan terhadap baris dalam tabel
yang dirujuk.
Nullify
Nilai yang bersesuaian dari tabel yang merujuk diset menjadi
null kemudian menghapus baris dalam tabel yang dirujuk.
Cascading deletion
Baris yang bersesuaian dalam tabel yang merujuk secara
otomatis akan ikut terhapus4/26/B009 21
Update Rule
• Ada dua hal yang harus diperhatikan:
Jika nilai yang diupdate adalah kunci tamu pada
tabel yang merujuk, maka perlakuan seperti insertion
rule.
Jika nilai yang diupdate pada tabel yang dirujuk
memiliki nilai yang bersesuaian dengan tabel yang
merujuk maka perlakuan adalah sama seperti
deletion rule.
4/26/2009 22
Implementasi Aturan
Integritas Referensial
1. Menerapkan logika pada program aplikasi yang
menjamin aturan integritas referensial tetap
dipertahankan, yaitu dalam baris-baris program.
2. Aturan integritas referensial dikenakan pada
tabel saat dibuat. Dapat dilakukan jika DBMS
yang dipakai memiliki fasilitas untuk
mendukung integritas referensial. Mis: SQL.
4/26/2009 23
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
244/26/2009
Diskusi kelompok
• Untuk setiap jenis perlakuan (referential integrity constraint),
berikan contoh berdasar tabel PELANGGAN danKOTA
4/26/2009 25
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
264/26/2009
Anomali
1. Anomali penyisipan
2. Anomali penghapusan
3. Anomali peremajaan
274/26/2009
Anomali 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 KOTA BARANG JUMLAH
Kartika Jakarta Monitor GGG 10
Citra Bogor ZIP drive 4
Candra Jakarta Keyboard 5
Citra Bandung Mouse CCP 2528
Pemasok Citra pindah ke Bogor dan
Pengubahan dilakukan hanya pada
data pertama
4/26/2009
Anomali Penyisipan
• Terjadi bila ada
penambahan data
• Perhatikan contoh
disamping
• Masalah: “Bagaimana
caranya menyimpan
fakta bahwa ruang baru
bernama Arjuna ada
pada gedung selatan?”
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
294/26/2009
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 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
20 Bahasa Jepang 160.000
304/26/2009
Tranformasi Diagram ER/EER
ke Relasi
• Memetakan Entitas Reguler (kuat)
31
PELANGGANNo_Pelanggan
Nama_Pelanggan
Alamat_Pelanggan
No_Pelanggan Nama_Pelanggan Alamat_Pelanggan
Tipe entitas
PELANGGAN
Relasi PELANGGAN
4/26/2009
Tranformasi Diagram ER
ke Relasi
• Memetakan Entitas dengan Atribut Komposit
32
PELANGGANNo_Pelanggan
Nama_Pelanggan
Alamat_Pelanggan
No_Pelanggan Nama_Pelanggan Jalan
Tipe entitas
PELANGGAN dengan
atribut komposit
Relasi
PELANGGAN
Jalan
Kota
Kode_Pos
Kota Kode_Pos
4/26/2009
Tranformasi Diagram ER
ke Relasi
• Memetakan Entitas dengan Atribut Bernilai Ganda
33
PEGAWAI
No_Pegawai
Nama_Pegawai
Keterampilan
No_Pegawai Nama_Pegawai Alamat_Pegawai
Tipe entitas PEGAWAI
dengan atribut bernilai
ganda
Relasi PEGAWAI
Alamat_Pegawai
No_Pegawai Keterampilan Relasi KETERAMPILAN PEGAWAI4/26/2009
Pemetaan Entitas
Lemah
34
PEGAWAI Memiliki
No_Pegawai
Nama_Pegawai Nama_Tanggungan Tanggal_Lahir
TANGGUNGAN
No_Pegawai Nama_Pegawai Relasi PEGAWAI
No_Pegawai Nama_Tanggungan Tanggal_Lahir Relasi TANGGUNGAN4/26/2009
Pemetaan Hubungan 1
to M
35
MengirimPELANGGAN
No_Pelanggan
Nama_Pelanggan Nomor_Pesan Tanggal_Pesan
PESANAN
No_Pelanggan Nama_Pelanggan Relasi PELANGGAN
No_Pesan Tanggal_Pesan No_Pelanggan Relasi PESANAN4/26/2009
Pemetaan Hubungan M
to M
36
MemintaPESANAN
No_Pesan
Tgl_Pesan Kode_Produk Harga_Unit
PRODUK
No_Pesan Tgl_pesan Relasi PESANAN
Kode_Produk Harga_Unit
Relasi BARIS PESANAN
Jumlah
No_Pesan Kode_Produk Jumlah
Relasi PRODUK4/26/2009
Pemetaan Hubungan 1
to 1
37
MengepalaiDOSEN
No_Dosen
Nama_Dosen Kode_Prodi Nama_Prodi
PROGRAM STUDI
No_Dosen Nama_Dosen Relasi DOSEN
Relasi PROGRAM
STUDI
Tanggal_Penugasan
Kode_Prodi Nama_Prodi No_Dosen Tanggal_penugasan
4/26/2009
Pemetaan Entitas Asosiatif
(Ternary)
38
PENGIRIMANPELANGGAN
No_Pelanggan
Nama Kode_Vendor Alamat
VENDOR
No_Pelanggan Nama Relasi PELANGGAN
Kode_Vendor Alamat
Relasi
PENGIRIMAN
Tanggal
No_Kirim Tanggal Jumlah
Relasi VENDOR
No_KirimJumlah
No_Pelanggan Kode_Vendor
4/26/2009
Pemetaan Unary 1:N
39
PEGAWAI
No_Pegawai
Nama_Pegawai
No_Pegawai Nama_Pegawai Tgl_lahir Relasi PEGAWAI
Tgl_Lahir
Mengepalai
ID_Manajer
4/26/2009
Pemetaan Unary M:M
40
ITEM
No_Item
Nama_Item
No_Item Nama_Item Harga_Unit Relasi ITEM
Harga_Unit
Tersusun_atasJumlah
No_Item No_Komponen Jumlah Relasi KOMPONEN4/26/2009
Pemetaan Hubungan
Supertipe/Subtipe
41
PEGAWAI
d
PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK
Gaji_Bulanan
Nomor_Pegawai
Nama_PegawaiAlamat
Tgl_Mulai_Kerja
Upah_Harian Nomor_Kontrak Lama_KontrakTunjangan
Kompensasi
Tipe_Pegawai:
“H” “K”
“T”
4/26/2009
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 (termasuk kunci primer)
ke supertipe
3. Masukkan pembeda subtipe pada supertipe
4. Tambahkan kunci primer pada supertipe ke semua subtipe424/26/2009
Solusi Pemetaan Hubungan
Supertipe/Subtipe
43
Nomor_Pegawai Nama_Pegawai Alamat Tgl_Mulai_Kerja PEGAWAI
Nomor_Pegawai Upah_Harian PEGAWAI HARIAN
Nomor_Pegawai Gaji_Bulanan PEGAWAI TETAP
Nomor_Pegawai Nomor_Kontrak
PEGAWAI KONTRAK
Tunjangan
Lama_Kontrak Kompensasi
Tipe_Pegawai
4/26/2009