DEPENDENCY DAN NORMALISASI
Functional Dependency (Ketergantungan Fungsional)
Functional dependency
(ketergantungan fungsional) menggambarkan relationship / hubungan antara
atribut-atribut dengan relasi. Sebagai contoh: Jika A dan B adalah atribut-atribut
dari relasi R. B
dikatakan functionally dependent
(bergantungan fungsional)
terhadap A (dinotasikan dengan A à B), jika masing-masing
nilai dari dalam relasi R berpasang-an secara tepat
dengan satu nilai dari B dalam relasi R.
1. Full functional dependency (ketergantungan fungsional sepenuhnya)
Suatu ketergantungan fungsional
A à B adalah
ketergantungan fungsional sepenuhnya,
jika perpindahan beberapa atribut dari A menghasilkan tepat satu pasangan pada atribut
B. Suatu ketergantungan fungsional
A à B
adalah ketergantungan fungsional
sebagian, jika ada beberapa atribut yang dapat dihilangkan dari A sementara ketergantungan
tersebut tetap berlaku /berfungsi.
2.
Partially dependency (ketergantungan parsial)
Merupakan ketergantungan fungsional,
dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap
dipertahankan.
3. Transitive Dependency (ketergantungan transitif)
Suatu kondisi dimana
A, B, dan C adalah atribut-atribut dari
suatu relasi sedemikian sehingga A à B dan B à C, maka A à C (C memiliki ketergantungan transitif terhadap
A melalui B),
dan harus dipastikan
bahwa A tidak
memiliki ketergantungan fungsional (functional dependent) terhadap B
atau C).
Pengertian Normalisasi
·
Normalisasi adalah
suatu proses memperbaiki
/ membangun dengan
model data relasional, dan secara
umum lebih tepat dikoneksikan dengan model data logika.
·
Normalisasi adalah proses
pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan
entitas dan hubungan mereka sehingga terwujud satu bentuk database yang mudah
untuk dimodifikasi.
Langkah-Langkah Pembentukan Normalisasi
1.
Bentuk tidak normal
(unnormalized form)
Bentuk ini merupakan kumpulan data yang akan
direkam, tidak ada keharusan mengikukti format
tertentu, dapat saja
data tidak lengkap
atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan
saat menginput.
Tabel Pelanggan_Biaya yang belum normal
(unnormal)
|
No_
Pelanggan
|
Nama
|
Nomor Poperty
|
Alamat Property
|
Tgl_
pinjam
|
Tgl_
selesai
|
Biaya
|
No_
Pemilik
|
Nama_
Pemilik
|
|
CR76
|
Badi
|
PG4
|
Riau
|
19-07-2012
|
19-07-2014
|
200
|
CO40
|
Ewin
|
|
|
|
PG16
|
Jakarta
|
30-11-2012
|
30-11-2014
|
400
|
CO93
|
Durki
|
|
CR56
|
Sirajuddin
|
PG4
|
Riau
|
23-10-2012
|
22-11-2013
|
200
|
CO40
|
Ewin
|
|
|
|
PG36
|
Jepang
|
11-02-2012
|
11-02-2013
|
300
|
CO93
|
Durki
|
|
|
|
PG16
|
Jakarta
|
12-12-2012
|
12-12-2013
|
500
|
CO93
|
Durki
|
Dari tabel di
Pelanggan Biaya di atas terdapat
multiple value pada beberapa atributnya. Misalkan terdapat dua (2) nilai
untuk No_Property yaitu PG4 dan PG16 untuk Nama Pelanggan (Nama) Badi.
Untuk
mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang memenuhi kriteria
1NF adalah kita
harus merubah seluruh atribut
yang multivalue menjadi atribut
single value, dengan cara menghilangkan repeating group pada tabel di atas.
2. Bentuk normal ke satu (first normal form / 1 nf)
Langkah pertama yang
dilakukan pada Tabel Pelanggan Biaya tersebut adalah menghilangkan elemen data
yang berulang dengan data-data Pelanggan yang
sesuai pada setiap
baris. Hasil dari
tabel yang telah
memenuhi bentuk normal pertama. Kita dapat
mengidentifikasi primary key
untuk relasi Pelanggan_Biaya yang masih
memiliki
composite key
(No_Pelanggan,No_Property). Pada kasus ini kita akan memperoleh primary key
yang bersifat composite key.
Tabel
Pelanggan Biaya dalam bentuk normal kesatu (1-NF)
|
No_
Pelanggan
|
Nama
|
Nomor Poperty
|
Alamat Property
|
Tgl_
pinjam
|
Tgl_
selesai
|
Biaya
|
No_
Pemilik
|
Nama_
Pemilik
|
|
CR76
|
Badi
|
PG4
|
Riau
|
19-07-2012
|
19-07-2014
|
200
|
CO40
|
Ewin
|
|
CR76
|
Badi
|
PG16
|
Jakarta
|
30-11-2012
|
30-11-2014
|
400
|
CO93
|
Durki
|
|
CR56
|
Sirajuddin
|
PG4
|
Riau
|
23-10-2012
|
22-11-2013
|
200
|
CO40
|
Ewin
|
|
CR56
|
Sirajuddin
|
PG36
|
Jepang
|
11-02-2012
|
11-02-2013
|
300
|
CO93
|
Durki
|
|
CR56
|
Sirajuddin
|
PG16
|
Jakarta
|
12-12-2012
|
12-12-2013
|
500
|
CO93
|
Durki
|
3.
Bentuk normal ke dua
(second normal form / 2 nf)
Syarat normal kedua (2-NF) sebagai
berikut.
a.
Bentuk data telah memenuhi
kriteria bentuk normal kesatu.
b. Atribute bukan kunci
(non-key) haruslah memiliki
ketergantungan fungsionla sepenuhnya (fully
functional dependency) pada kunci utama / primary key.
Dengan demikian untuk
membentuk normal kedua haruslah sudah
ditentukan primary keynya. Primary
key tersebut haruslah
lebih sederhana, lebih
unik, dapat mewakili atribute lain yang menjadi
anggotanya, dan lebih sering digunakan pada tabel / relasi tersebut.
Tabel Pelanggan Biaya dalam bentuk normal kedua (2-NF)
(a) Relasi Pelanggan
|
No_Pelanggan
|
Nama
|
|
CR76
|
Badi
|
|
CR56
|
Sirajuddin
|
(b) Relasi Biaya
|
No_Pelanggan
|
No_Property
|
Tgl_Pinjam
|
Tgl_Selesai
|
|
CR76
|
PG4
|
19-07-2012
|
19-07-2014
|
|
CR76
|
PG16
|
30-11-2012
|
30-11-2014
|
|
CR56
|
PG4
|
23-10-2012
|
22-11-2013
|
|
CR56
|
PG36
|
11-01-2012
|
11-02-2013
|
|
CR56
|
PG16
|
12-12-2012
|
12-12-2013
|
(c) Relasi
Property_Pemilik
|
No_Property
|
Alamat Property
|
Biaya
|
No_Pemilik
|
Nama_Pemilik
|
|
PG4
|
Riau
|
200
|
CO40
|
Ewin
|
|
PG36
|
Jepang
|
300
|
CO93
|
Durki
|
|
PG16
|
Jakarta
|
500
|
CO93
|
Durki
|
4.
BENTUK NORMAL KE TIGA
(THIRD NORMAL FORM / 3 NF)
Syarat normal ketiga (Third Normal Form
/ 3 NF) sebagai berikut.
a.
Bentuk data telah memenuhi
kriteria bentuk normal kedua.
b. Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan
transitif, dengan kata lain suatu atribut bukan kunci (non_key)
tidak boleh memiliki
ketergantungan fungsional (functional
dependency) terhadap atribut
bukan kunci lainnya,
seluruh atribut bukan
kunci pada suatu
relasi hanya memiliki
ketergantungan fungsional terhadap priamry key di relasi itu saja.
Hasil akhir uji normalisasi sampai ke bentuk (3-NF) yang berasal
dari relasi Pelanggan_Biaya
(a) Relasi Customer
|
No_Pelanggan
|
Nama
|
|
CR76
|
Badi
|
|
CR56
|
Sirajuddin
|
(b) Relasi Rental
|
No_Pelanggan
|
No_Property
|
Tgl_Pinjam
|
Tgl_Selesai
|
|
CR76
|
PG4
|
19-07-2012
|
19-07-2014
|
|
CR76
|
PG16
|
30-11-2012
|
30-11-2014
|
|
CR56
|
PG4
|
23-10-2012
|
22-11-2013
|
|
CR56
|
PG36
|
11-01-2012
|
11-02-2013
|
|
CR56
|
PG16
|
12-12-2012
|
12-12-2013
|
(c) Relasi Property_for _Rent
|
No_Property
|
Alamat Property
|
Biaya
|
No_Pemilik
|
|
PG4
|
Riau
|
200
|
CO40
|
|
PG36
|
Jepang
|
300
|
CO93
|
|
PG16
|
Jakarta
|
500
|
CO93
|
(d) Relasi Owner
|
No_Pemilik
|
Nama_Pemilik
|
|
CO40
|
Ewin
|
|
CO93
|
Durki
|
|
CO93
|
Durki
|