Perancangan Database Bagian I*
description
Transcript of Perancangan Database Bagian I*
Perancangan DatabasePerancangan DatabaseBagian I*Bagian I*
*diadopsi dari Abdul Kadir, 2005*diadopsi dari Abdul Kadir, 2005
Model Data RelasionalModel Data Relasional
Data direprentasikan Data direprentasikan dalam tabel berdimensi dalam tabel berdimensi duadua
Tiga komponen yang Tiga komponen yang mendasari model data mendasari model data relasional:relasional: Struktur data Struktur data Pemanipulasi dataPemanipulasi data Integritas dataIntegritas data
Nomor_Peg Nama
05001 Karmen
05002 Tigor
05003 Sita Devi
Model Data RelasionalModel Data Relasional
Istilah Istilah relasirelasi ( (relationrelation) ) menyatakan nama tabelmenyatakan nama tabel Contoh: Contoh:
PEGAWAI(Nomor_Peg, Nama)PEGAWAI(Nomor_Peg, Nama)
Nomor_Peg Nama
05001 Karmen
05002 Tigor
05003 Sita Devi
Struktur data
RelasiRelasi
Setiap relasi memiliki kunci primer (Setiap relasi memiliki kunci primer (primary primary keykey))
Kunci primer adalah atribut atau sejumlah Kunci primer adalah atribut atau sejumlah atribut yang menjadi pembeda setiap baris atribut yang menjadi pembeda setiap baris dalam relasidalam relasi
Kunci primer biasa dinyatakan dengan Kunci primer biasa dinyatakan dengan garis garis bawahbawah
PEGAWAI(PEGAWAI(Nomor_PegNomor_Peg, Nama), Nama)
Kunci primer
Kunci Kunci
Kunci dapat dibedakan menjadi:Kunci dapat dibedakan menjadi:1.1. Kunci sederhanaKunci sederhana : Terdiri atas sebuah atribut : Terdiri atas sebuah atribut
2.2. Kunci kompositKunci komposit : Tersusun atas dua atribut atau : Tersusun atas dua atribut atau lebihlebih
Kunci sederhana:PEGAWAI(PEGAWAI(Nomor_PegNomor_Peg, Nama), Nama)DEPARTEMEN(DEPARTEMEN(Kode_DepKode_Dep, Nama_Dep), Nama_Dep)BARANG(Kode_Barang, Nama_Barang)BARANG(Kode_Barang, Nama_Barang)
Kunci komposit:BARANG DIPESAN(BARANG DIPESAN(No_PesananNo_Pesanan, , Kode_BarangKode_Barang, , Jumlah)Jumlah)NILAI(NILAI(No_MhsNo_Mhs, , Kode_MatakuliahKode_Matakuliah,Skor),Skor)
Kunci TamuKunci Tamu Kunci tamu.(( tidak ada ketentuan nilainya beda) Kunci tamu.(( tidak ada ketentuan nilainya beda)
fforeign keyoreign key) biasa digunakan sebagai penghubung ke ) biasa digunakan sebagai penghubung ke relasi lainrelasi lain
Kd_Kota
Nama_Kota
0501 Semarang
0502 Salatiga
0503 Kendal
Kd_Pelanggan
Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0502
PELANGGAN
KOTA
Kunci primer
Kunci asing
Kunci Tamu (Lanjutan…)Kunci Tamu (Lanjutan…)
Garis bawah terputus-putus biasa dipakai Garis bawah terputus-putus biasa dipakai untuk menyatakan kunci tamuuntuk menyatakan kunci tamu
Contoh:Contoh:PELANGGAN(PELANGGAN(Kd_PelangganKd_Pelanggan, Nama, Kd_Kota), Nama, Kd_Kota)
KOTA(KOTA(Kd_KotaKd_Kota, Nama_Kota), Nama_Kota)
Sifat RelasiSifat Relasi
1.1. Setiap relasi memiliki nama yang unikSetiap relasi memiliki nama yang unik
2.2. Setiap isian pada perpotongan baris dan Setiap isian pada perpotongan baris dan kolom harus bersifat atomik (bernilai kolom harus bersifat atomik (bernilai tunggal)tunggal)
3.3. Setiap baris bersifat unikSetiap baris bersifat unik
4.4. Setiap atribut memiliki nama yang unikSetiap atribut memiliki nama yang unik
5.5. Urutan kolom tidak pentingUrutan kolom tidak penting
6.6. Urutan baris juga tidak pentingUrutan baris juga tidak penting
Kekangan IntegritasKekangan Integritas(Integrity Constraint)(Integrity Constraint)
Tujuannya adalah untuk memfasilitasi Tujuannya adalah untuk memfasilitasi penjagaan keakurasian dan integritas data penjagaan keakurasian dan integritas data dalam dalam databasedatabase (supaya tetap konsisten) (supaya tetap konsisten)
Macamnya:Macamnya: Kekangan domainKekangan domain Integritas entitasIntegritas entitas Integritas referensialIntegritas referensial Kekangan operasionalKekangan operasional
Kekangan Domain(kemungkinan Kekangan Domain(kemungkinan nilai)nilai)
Memastikan data dalam domain yang telah ditetapkanMemastikan data dalam domain yang telah ditetapkan Domain adalah kemungkinan nilai terhadap suatu Domain adalah kemungkinan nilai terhadap suatu
atributatribut Contoh:Contoh:
A,B,C,D,E untuk nilaiA,B,C,D,E untuk nilai TRUE untuk pria dan FALSE untuk wanitaTRUE untuk pria dan FALSE untuk wanita INTEGER untuk menyatakan nilai bulatINTEGER untuk menyatakan nilai bulat
Dalam praktek, domain juga mencakup panjang dataDalam praktek, domain juga mencakup panjang data Contoh:Contoh:
CHARACTER, SIZE 35CHARACTER, SIZE 35 INTEGER, 3 DIGITSINTEGER, 3 DIGITS
Integritas EntitasIntegritas Entitas
Memastikan bahwa data yang terkait dengan Memastikan bahwa data yang terkait dengan kunci primer tidak terlanggarkunci primer tidak terlanggar
Secara khusus, data Null pada kunci primer Secara khusus, data Null pada kunci primer akan ditolakakan ditolak
NullNull berarti nilai pada atribut tidak pernah berarti nilai pada atribut tidak pernah diberikan diberikan
Integritas ReferensialIntegritas Referensial
Memastikan bahwa konsistensi antara dua Memastikan bahwa konsistensi antara dua buah relasi tetap terjagabuah relasi tetap terjaga
Kd_Kota Nama_Kota
0501 Semarang
0502 Salatiga
0503 Kendal
Kd_Pelanggan Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0502
Keadaan Awal:
Efek Tanpa Integritas Efek Tanpa Integritas ReferensialReferensial
Kd_Kota Nama_Kota
0501 Semarang
0502 Salatiga
0503 Kendal
Kd_Pelanggan Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0502
Keadaan Setekah data 0502 pada KOTA dihapus:
Menjadi tidak konsisten
Efek Integritas ReferensialEfek Integritas Referensial
Kd_Kota Nama_Kota
0501 Semarang
0503 Kendal
Kd_Pelanggan Nama
A001 Aditya
B002 Bramanto
Kd_Kota
0501
0502
0502 Salatiga
Keadaan Setekah data 0502 pada KOTA dihapus:
B001 Bakdi 0502Ikut terhapus!
atau penghapusan
ditolak
Kekangan OperasionalKekangan Operasional
Kekangan yang berhubungan dengan aturan Kekangan yang berhubungan dengan aturan bisnisbisnis
Misalnya “Saldo tabungan tidak boleh negatif”Misalnya “Saldo tabungan tidak boleh negatif” Pada Access, kekangan seperti ini bisa Pada Access, kekangan seperti ini bisa
diimplementasikan pada Validation Rule.diimplementasikan pada Validation Rule. Pada PostgreSQL, hal ini bisa Pada PostgreSQL, hal ini bisa
diimplementasikan dalam prosedur tersimpandiimplementasikan dalam prosedur tersimpan
Relasi Berstruktur BaikRelasi Berstruktur Baik
Suatu relasi dikatakan berstruktur baik kalau :Suatu relasi dikatakan berstruktur baik kalau : Mengandung redundansi sesedikit mungkin danMengandung redundansi sesedikit mungkin dan Memungkinkan pemakai memasukkan, mengubah, Memungkinkan pemakai memasukkan, mengubah,
atau menghapus baris tanpa menimbulkan atau menghapus baris tanpa menimbulkan kesalahan atau tidak konsistenkesalahan atau tidak konsisten
Kesalahan atau akibat tidak konsisten yang Kesalahan atau akibat tidak konsisten yang ditimbulkan pada ulasan di atas biasa ditimbulkan pada ulasan di atas biasa dinamakan dinamakan anomalianomali
AnomaliAnomali
1.1. Anomali penyisipanAnomali penyisipan
2.2. Anomali penghapusanAnomali penghapusan
3.3. Anomali peremajaanAnomali peremajaan
Anomali PeremajaanAnomali Peremajaan
Terjadi bila terdapat Terjadi bila terdapat pengubahan pada pengubahan pada sejumlah data yang sejumlah data yang redundan, tetapi tanpa redundan, tetapi tanpa sengaja tidak semua ikut sengaja tidak semua ikut diubahdiubah
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
Anomali PenyisipanAnomali Penyisipan
Terjadi bila ada Terjadi bila ada penambahan datapenambahan data
Perhatikan contoh Perhatikan contoh disampingdisamping
Masalah: Masalah: “Bagaimana “Bagaimana caranya menyimpan caranya menyimpan fakta bahwa ruang baru fakta bahwa ruang baru bernama Arjuna ada bernama Arjuna ada pada gedung selatan?”pada gedung selatan?”
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
Anomali PenghapusanAnomali Penghapusan Terjadi kiranya sesuatu Terjadi kiranya sesuatu
baris yang tak terpakai baris yang tak terpakai dihapus dan sebagai dihapus dan sebagai akibatnya terdapat data lain akibatnya terdapat data lain yang hilangyang hilang
Perhatikan contoh di Perhatikan contoh di sampingsamping
Apa yang terjadi seandainya Apa yang terjadi seandainya data bahwa siswa dengan data bahwa siswa dengan identitas 12 dihapus?identitas 12 dihapus? Data Data yang menyatakan bahwa yang menyatakan bahwa biaya kursus bahasa Jepang biaya kursus bahasa Jepang juga akan terhapusjuga 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
Tranformasi Diagram ER/EER Tranformasi Diagram ER/EER ke Relasike Relasi
Memetakan Entitas Reguler (kuat)Memetakan Entitas Reguler (kuat)
PELANGGANNo_Pelanggan
Nama_Pelanggan
Alamat_Pelanggan
No_PelangganNama_PelangganAlamat_Pelanggan
Tipe entitas PELANGGAN
Relasi PELANGGAN
Tranformasi Diagram ER Tranformasi Diagram ER ke Relasike Relasi
Memetakan Entitas dengan Atribut KompositMemetakan Entitas dengan Atribut Komposit
PELANGGANNo_Pelanggan
Nama_Pelanggan
Alamat_Pelanggan
No_PelangganNama_Pelanggan Jalan
Tipe entitas PELANGGAN dengan atribut komposit
Relasi PELANGGAN
JalanKota
Kode_Pos
Kota Kode_Pos
Tranformasi Diagram ER Tranformasi Diagram ER ke Relasike Relasi
Memetakan Entitas dengan Atribut Bernilai GandaMemetakan Entitas dengan Atribut Bernilai Ganda
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 PEGAWAI
Pemetaan Entitas LemahPemetaan Entitas Lemah
PEGAWAI Memiliki
No_Pegawai Nama_PegawaiNama_Tanggungan Tanggal_Lahir
TANGGUNGAN
No_Pegawai Nama_Pegawai Relasi PEGAWAI
No_PegawaiNama_TanggunganTanggal_Lahir Relasi TANGGUNGAN
Pemetaan Hubungan 1 to MPemetaan Hubungan 1 to M
MengirimPELANGGAN
No_Pelanggan Nama_Pelanggan Nomor_Pesan Tanggal_Pesan
PESANAN
No_PelangganNama_Pelanggan Relasi PELANGGAN
No_Pesan Tanggal_Pesan No_Pelanggan Relasi PESANAN
Pemetaan Hubungan M to MPemetaan Hubungan M to M
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 PRODUK
Pemetaan Hubungan 1 to 1Pemetaan Hubungan 1 to 1
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_DosenTanggal_penugasan
Pemetaan Entitas AsosiatifPemetaan Entitas Asosiatif(Ternary)(Ternary)
PENGIRIMANPELANGGAN
No_Pelanggan Nama Vendor Alamat
VENDOR
No_Pelanggan Nama Relasi PELANGGAN
Kode_Vendor Alamat
Relasi PENGIRIMAN
Tanggal
No_Kirim Tanggal Jumlah
Relasi VENDOR
No_KirimJumlah
No_PelangganKode_Vendor
Pemetaan Unary 1:NPemetaan Unary 1:N
PEGAWAI
No_Pegawai
Nama_Pegawai
No_Pegawai Nama_Pegawai Tgl_lahir Relasi PEGAWAI
Tgl_Lahir
Mengepalai
ID_Manajer
Pemetaan Unary M:MPemetaan Unary M:M
ITEM
No_Item
Nama_Item
No_Item Nama_Item Harga_Unit Relasi ITEM
Harga_Unit
Tersusun_atasJumlah
No_Item No_Komponen Jumlah Relasi KOMPONEN
Pemetaan Hubungan Pemetaan Hubungan Supertipe/Subtipe Supertipe/Subtipe
PEGAWAI
d
PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK
Gaji_Bulanan
Nomor_Pegawai
Nama_Pegawai Alamat
Tgl_Mulai_Kerja
Upah_Harian Nomor_KontrakLama_KontrakTunjangan
Kompensasi
Tipe_Pegawai:
“H”
“K”“T”
Pemetaan Hubungan Pemetaan Hubungan Supertipe/Subtipe (Lanjutan…)Supertipe/Subtipe (Lanjutan…)
Model relasional tidak mendukung hubungan Model relasional tidak mendukung hubungan supertipe/subtipe secara langsungsupertipe/subtipe secara langsung
Strategi pemecahan untuk kasus di depan:Strategi pemecahan untuk kasus di depan:1.1. Buat relasi terpisah untuk masing-masing supertipe dan Buat relasi terpisah untuk masing-masing supertipe dan
subtipesubtipe
2.2. Berikan atribut-atribut yang umum (termasuk kunci Berikan atribut-atribut yang umum (termasuk kunci primer) ke supertipeprimer) ke supertipe
3.3. Masukkan pembeda subtipe pada supertipeMasukkan pembeda subtipe pada supertipe
4.4. Tambahkan kunci primer pada supertipe ke semua Tambahkan kunci primer pada supertipe ke semua subtipesubtipe
Solusi Pemetaan Hubungan Solusi Pemetaan Hubungan Supertipe/SubtipeSupertipe/Subtipe
Nomor_PegawaiNama_Pegawai AlamatTgl_Mulai_Kerja PEGAWAI
Nomor_Pegawai Upah_Harian PEGAWAI HARIAN
Nomor_PegawaiGaji_Bulanan PEGAWAI TETAP
Nomor_PegawaiNomor_Kontrak
PEGAWAI KONTRAK
Tunjangan
Lama_KontrakKompensasi
Tipe_Pegawai
TugasTugas
Suatu hasil ujian dinyatakan dengan atribut seperti Suatu hasil ujian dinyatakan dengan atribut seperti berikut:berikut: No_MhsNo_Mhs Nama_MhsNama_Mhs MataujianMataujian No_Dosen_PengujiNo_Dosen_Penguji Nama_Dosen_PengujiNama_Dosen_Penguji
Gambarkan diagram E-R-nyaGambarkan diagram E-R-nya Kemudian ubahlah diagram E-R tersebut ke relasiKemudian ubahlah diagram E-R tersebut ke relasi