Anda di halaman 1dari 34

Pemodelan Basis Data Entity-Relationship Diagram (contoh kasus 2)

Yusuf Priyandari @Agustus 2010

Tahap Pengembangan Basis Data


Model
1
1

Topics discussed
4

3
5

6
2

7
pri.and.ari@2010

Database Design Methodology

Topics discussed

pri.and.ari@2010

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@2010

Studi Kasus

THE STAYHOME VIDEO RENTALS

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.1 Tabel-Tabel dari Entitas
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. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
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. b. c. d. e. f. g. One-to-many (1:*) binary relationship One-to-many (1:*) recursive relationship One-to-one (1:1) binary relationship One-to-one (1:1) recursive relationship Many-to-many (*:*) binary relationship Complex relationship Multi-valued attributes.

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
a. One-to-many (1:*) binary relationship

Copy primary key dari tabel parent ke tabel child sebagai foreign key.

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
b. One-to-many (1:*) recursive relationship

Buatlah sebuah field baru yang menyimpan primary key dari parent ke child sebagai foreign key.

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship

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

10

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship

1). Relasi bersifat mandatory pada kedua entitas relasi 1:1


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.

11

pri.and.ari@2010

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
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.

12

pri.and.ari@2010

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
.

13

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
c. One-to-one (1:1) binary relationship

3). Relasi bersifat opsional pada kedua entitas relasi 1:1


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).
pri.and.ari@2010

14

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
d. One-to-one (1:1) recursive relationship

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

15

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
e. Many-to-many (*:*) binary relationship
Untuk setiap relasi biner many-tomany (*:*) 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.

16

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
f. Complex relationship
Buatlah sebuah tabel baru untuk menyajikan relasi antar entitas. Copy primary key dari entitas-entitas ke dalam tabel baru yang bertindak sebagai foreign key.

17

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
f. Complex relationship
Buatlah sebuah tabel baru untuk menyajikan relasi antar entitas. Copy primary key dari entitas-entitas ke dalam tabel baru yang bertindak sebagai foreign key.

18

pri.and.ari@2010

1. Menyusun Tabel-Tabel
1.2 Tabel-Tabel dari Relasi
g. Multi-valued Atribute

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.

19

pri.and.ari@2010

1. Menyusun Tabel-Tabel
Hasil pembuatan tabel disajikan sebagai berikut.

20

pri.and.ari@2010

2. Periksa Struktur Tabel (Normalisasi)


Periksa apakah setiap tabel yang telah dibentuk telah memenuhi aturan normalisasi, minimum memenuhi bentul 3NF.

21

pri.and.ari@2010

3. Periksa Kemampuan Tabel Mendukung Transaksi

22

pri.and.ari@2010

3. Periksa Kemampuan Tabel Mendukung Transaksi

23

pri.and.ari@2010

3. Periksa Kemampuan Tabel Mendukung Transaksi

24

pri.and.ari@2010

3. Periksa Kemampuan Tabel Mendukung Transaksi

25

pri.and.ari@2010

3. Periksa Kemampuan Tabel Mendukung Transaksi

26

pri.and.ari@2010

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.
Periksa kembali domain tiap field, misal untuk posisi jabatan, apakah benar hanya berupa Manager, Supervisor, atau Staff. Periksa kembali tipe data yang akan digunakan. Periksa kembali apakah field yang dijadikan primary key selalu bernilai not null. Hal ini untuk menjamin adanya kesatuan relasi dalam basis data. Periksa kembali cardinalitas hubungan antar tabel.
pri.and.ari@2010

b. Batasan domain fields


c.

Integritas entitas

d. Cardinalitas

27

e. Integritas referensial

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. 2. Apakah null diperkenankan untuk suatu foreign key ?
Sample: noCabang bolehkan bernilai null pada tabel Staff ?

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. 2. 3. 4. 5. NO ACTION CASCADE SET NULL SET DEFAULT NO CHECK
pri.and.ari@2010

28

4. Periksa Business Rule


e. Integritas referensial
Ada sejumlah aturan yang dapat dipakai dalam integritas referensial (on Update / Delete ) :
1. 2. NO ACTION tidak boleh menghapus/update sebuah record di tabel induk apabila record tersebut ada dipakai oleh tabel anak sebagai FK. CASCADE Hapus secara otomatis data FK di tabel anak apabila sebuah record di tabel induk di hapus. SET NULL Apabila record di tabel induk dihapus, maka data FK di tabel anak akan di set bernilai Null. SET DEFAULT Apabila record di tabel induk dihapus, maka data FK di tabel anak akan di set menjadi nilai default. NO CHECK Apabila record di tabel induk dihapus, maka tidak dilakukan pengecekan terhadap tabel anak yang menggunakan record tersebut..

3.
4. 5.

29

pri.and.ari@2010

4. Periksa Business Rule


e. Integritas referensial

30

pri.and.ari@2010

5. Review logikal basis data dengan Pengguna


Komunikasikan basis data yang telah dirancang dengan pengguna.

31

pri.and.ari@2010

Diskusi

32

32

pri.and.ari@2010

Tugas Mandiri
Baca buku [1] chapter 11

33

33

pri.and.ari@2010