Perancangan Basisdata Tahap Perancangan Basis Data 1. Pembuatan ERD (Entity Relasionship Diagram) 2. Pembuatan Struktur Tabel. – Menentukan tipe data – Menentukan Domain dan Constraint.

Download Report

Transcript 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