Basis Data - L05 - Pemodelan Basis Data Menggunakan ERD (Contoh Kasus)
Pemodelan Basis Data Entity-Relationship Diagram (contoh ... · 2 Tahap Pengembangan Basis Data...
Transcript of Pemodelan Basis Data Entity-Relationship Diagram (contoh ... · 2 Tahap Pengembangan Basis Data...
Pemodelan Basis Data
Entity-Relationship Diagram
(contoh kasus 2)
Yusuf Priyandari
@Agustus 2010
2
Tahap Pengembangan Basis Data
Model
pri.and.ari@2010
1
2
3
4 5
6 7
1
Topics discussed
3
Database Design Methodology
pri.and.ari@2010
Topics discussed
4
Transformasi ERD ke Dalam Tabel
Tahapan ini adalah tahapan transformasi diagram ER yang telah dibuat
ke dalam tabel basis data dan memeriksa struktur tabel tersebut.
Tujuan utama adalah menyusun deskripsi tabel-tabel kemudian
memeriksa normalisasi tabel-tabel tersebut.
pri.and.ari@20104
5
THE STAYHOME VIDEO RENTALS
Studi Kasus
pri.and.ari@2010
6
1. Menyusun Tabel-Tabel
Untuk setiap entitas yang telah diidentifikasi dalam model ER,
susunlah/dokumentasikan tabel-tabel.
Untuk atribut komposit, simpanlah atribut sederhananya (penyusunnya).
Misal, alamat disimpan dalam bentuk : namajalan, kota, negara bagian
dan kodepos.
Bila mungkin, identifikasi field yang dapat menjadi primary key.
Tabel berikut menyajikan struktur awal tabel-tabel dari entitas yang
telah diidentifikasi sebelumnya.
pri.and.ari@2010
1.1 Tabel-Tabel dari Entitas
7
1. Menyusun Tabel-Tabel
Relasi antara satu entitas dengan entitas lainnya direpresentasikan
melalui mekanisme primary key/foreign key.
Identifikasi terlebih dahulu entitas “parent” dan “child”.
Identifikasi tersebut perlu mempertimbangkan jenis relasi antar entitas,
yakni relasi:
a. One-to-many (1:*) binary relationship
b. One-to-many (1:*) recursive relationship
c. One-to-one (1:1) binary relationship
d. One-to-one (1:1) recursive relationship
e. Many-to-many (*:*) binary relationship
f. Complex relationship
g. Multi-valued attributes.
pri.and.ari@2010
1.2 Tabel-Tabel dari Relasi
8
1. Menyusun Tabel-Tabel
Copy primary key dari tabel “parent” ke tabel “child” sebagai foreign key.
1.2 Tabel-Tabel dari Relasi
a. One-to-many (1:*) binary relationship
pri.and.ari@2010
9
1. Menyusun Tabel-Tabel
Buatlah sebuah field baru yang menyimpan primary key dari “parent” ke “child”
sebagai foreign key.
1.2 Tabel-Tabel dari Relasi
b. One-to-many (1:*) recursive relationship
pri.and.ari@2010
10
1. Menyusun Tabel-Tabel
Transformasi relasi ini lebih komplek dari sebelumnya karena perlu
mempertimbangkan cardinalitas relasi.
Ada 3 bentuk cardinalitas yang mungkin terjadi pada relasi 1:1 tersebut, yakni:
1) Relasi bersifat mandatory pada kedua entitas relasi 1:1
2) Relasi bersifat mandatory pada salah satu entitas relasi 1:1
3) Relasi bersifat opsional pada kedua sisi entitas relasi 1:1
pri.and.ari@2010
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship
11
1. Menyusun Tabel-Tabel
Gabungkan kedua entitas ke dalam sebuah tabel baru dan pilih salah satu
primary key dari kedua tabel asal sebagai primary key tabel baru, dan primary key
asal lainnya sebagai alternate key.
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship
1). Relasi bersifat mandatory pada kedua entitas relasi 1:1
pri.and.ari@2010
12
1. Menyusun Tabel-Tabel
Identifikasi entitas “parent” dan “child”, yakni entitas yang memiliki cardinalitas
opsional dijadikan sebagai tabel “parent”.
Copy primary key dari tabel “parent” ke tabel “child” sebagai foreign key.
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship
2). Relasi bersifat mandatory pada salah satu entitas relasi 1:1
pri.and.ari@2010
13
1. Menyusun Tabel-Tabel
.
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship
2). Relasi bersifat mandatory pada salah satu entitas relasi 1:1
pri.and.ari@2010
14
1. Menyusun Tabel-Tabel
Penentuan entitas
“parent” dan “child”
pada kondisi ini
sebenarnya bebas,
tergantung tingkat
pemahaman terhadap
realitas di lapangan
pada relasi kedua
entitas tersebut.
Copy primary key dari
tabel “parent” ke tabel
“child” sebagai foreign
key atau sebaliknya (ini
jk sudah ada informasi
tambahan).
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship
3). Relasi bersifat opsional pada kedua entitas relasi 1:1
pri.and.ari@2010
15
1. Menyusun Tabel-Tabel
Sama dengan one-to-one (1:1) binary relationship.
Apabila cardinality berbentuk mandatory pada kedua entitas, maka
representasikan relasi sebagai sebuah tabel baru dengan mengkopi primary key
dari kedua tabel.
Apabila cardinality berbentuk mandatory pada salah satu entitas, maka:
Membuat sebuah field baru di tabel “child” dengan mengkopi primary key dari tabel
“parent”, atau
Membuat sebuah tabel baru untuk menyajikan relasi tersebut, dimana tabel baru itu
memiliki dua buah kolom yang keduanya berisi primary key dari kedua tabel asal
1.2 Tabel-Tabel dari Relasi
d. One-to-one (1:1) recursive relationship
pri.and.ari@2010
16
1. Menyusun Tabel-Tabel
Untuk setiap relasi
biner many-to-
many (*:*) buatlah
sebuah tabel baru
untuk menyajikan
relasi kedua
entitas. Tabel baru
itu dikenal sebagai
tabel
transaksional.
Copy primary key
dari kedua entitas
ke dalam tabel
baru yang
bertindak sebagai
foreign key.
1.2 Tabel-Tabel dari Relasi
e. Many-to-many (*:*) binary relationship
pri.and.ari@2010
17
1. Menyusun Tabel-Tabel
Buatlah sebuah
tabel baru untuk
menyajikan relasi
antar entitas.
Copy primary key
dari entitas-entitas
ke dalam tabel
baru yang
bertindak sebagai
foreign key.
1.2 Tabel-Tabel dari Relasi
f. Complex relationship
pri.and.ari@2010
18
1. Menyusun Tabel-Tabel
Buatlah sebuah
tabel baru untuk
menyajikan relasi
antar entitas.
Copy primary key
dari entitas-entitas
ke dalam tabel baru
yang bertindak
sebagai foreign key.
1.2 Tabel-Tabel dari Relasi
f. Complex relationship
pri.and.ari@2010
19
1. Menyusun Tabel-Tabel
Aturannya sama
dengan relasi 1:*.
Pisahkan atribut
bernilai jamak (multi
atribut) tersebut ke
dalam sebuah tabel
baru.
Copy primary key
dari entitas “parent”
ke dalam tabel baru
yang dibentuk.
1.2 Tabel-Tabel dari Relasi
g. Multi-valued Atribute
pri.and.ari@2010
20
1. Menyusun Tabel-Tabel
Hasil pembuatan tabel disajikan sebagai berikut.
pri.and.ari@2010
21
2. Periksa Struktur Tabel (Normalisasi)
Periksa apakah setiap tabel yang telah dibentuk telah memenuhi aturan
normalisasi, minimum memenuhi bentul 3NF.
pri.and.ari@2010
22
3. Periksa Kemampuan Tabel
Mendukung Transaksi
pri.and.ari@2010
23
3. Periksa Kemampuan Tabel
Mendukung Transaksi
pri.and.ari@2010
24
3. Periksa Kemampuan Tabel
Mendukung Transaksi
pri.and.ari@2010
25
3. Periksa Kemampuan Tabel
Mendukung Transaksi
pri.and.ari@2010
26
3. Periksa Kemampuan Tabel
Mendukung Transaksi
pri.and.ari@2010
27
4. Periksa Business Rule
a. Data yang diperlukan
Periksa kembali dalam kamus data, data mana saja yang boleh bernilai
null dan data mana yang tidak boleh. Apakah data2 tersedia untuk
pengujian.
b. Batasan domain fields
Periksa kembali domain tiap field, misal untuk posisi jabatan, apakah
benar hanya berupa Manager, Supervisor, atau Staff.
Periksa kembali tipe data yang akan digunakan.
c. Integritas entitas
Periksa kembali apakah field yang dijadikan primary key selalu bernilai not
null. Hal ini untuk menjamin adanya kesatuan relasi dalam basis data.
d. Cardinalitas
Periksa kembali cardinalitas hubungan antar tabel.
e. Integritas referensial
…pri.and.ari@2010
28
4. Periksa Business Rule
e. Integritas referensial
Integritas referensial adalah jika suatu foreign key berisi nilai, maka nilai
tersebut harus benar-benar merujuk pada record di tabel induk.
Dua hal yang harus dicermati:
1. Apakah null diperkenankan untuk suatu foreign key ?
Sample: noCabang bolehkan bernilai null pada tabel Staff ?
2. Bagaimana menjamin adanya integritas referensial
Apa kondisi yang diperbolehka pada suatu foreign key apabila terjadi proses update, atau
deleted terhadap tabel induk (primary key) ?.
Ada sejumlah aturan yang dapat dipakai dalam integritas referensial (on
Update / Delete ) :
1. NO ACTION
2. CASCADE
3. SET NULL
4. SET DEFAULT
5. NO CHECK
pri.and.ari@2010
29
4. Periksa Business Rule
e. Integritas referensial
Ada sejumlah aturan yang dapat dipakai dalam integritas referensial (on
Update / Delete ) :
1. NO ACTION tidak boleh menghapus/update sebuah record di tabel induk
apabila record tersebut ada dipakai oleh tabel anak sebagai FK.
2. CASCADE Hapus secara otomatis data FK di tabel anak apabila sebuah
record di tabel induk di hapus.
3. SET NULL Apabila record di tabel induk dihapus, maka data FK di tabel anak
akan di set bernilai Null.
4. SET DEFAULT Apabila record di tabel induk dihapus, maka data FK di tabel
anak akan di set menjadi nilai default.
5. NO CHECK Apabila record di tabel induk dihapus, maka tidak dilakukan
pengecekan terhadap tabel anak yang menggunakan record tersebut..
pri.and.ari@2010
30
4. Periksa Business Rule
e. Integritas referensial
pri.and.ari@2010
31
5. Review logikal basis data
dengan Pengguna
Komunikasikan basis data yang telah dirancang dengan pengguna.
pri.and.ari@2010
32
Diskusi
pri.and.ari@201032
33
Tugas Mandiri
Baca buku [1] chapter 11
pri.and.ari@201033