Normalisasi : Teknik/pendekatan yang digunakan dalam membangun
disain lojik database relasional melalui organisasi himpunan data dengan
tingkat ketergantungan fungsional dan keterkaitan yang tinggi sedemikian
sehingga menghasilkan struktur tabel yang normal.
Tujuan :
- Minimalisasi redundansi (pengulangan data)
- Memudahkan identifikasi entitas
- Mencegah terjadinya anomali
Beberapa
bentuk normal (normal forms, NF) :
- 1NF, 2NF, 3NF, BCNF
based on
keys and functional dependencies
- 4NF, 5NF
First Normal Form (1NF)
Suatu relasi disebut memenuhi bentuk normal pertama
(1NF) jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki
nilai tunggal dan tidak ada pengulangan grup atribut dalam baris. Bentuk 1NF
tidak boleh mengandung grup atribut yang berulang.
- Tujuan membentuk 1NF :
::. semantik
tabel menjadi lebih eksplisit (say anything once).
::. semua
operator aljabar relasional dapat diaplikasikan pada tabel.
Contoh 1
Dinormalkan :
Contoh 2
Dinormalkan
Normal Form (2NF)
Suatu relasi
disebut memenuhi bentuk normal kedua (2NF)
jika dan
hanya jika :
1. memenuhi
1NF
2. setiap
atribut yang bukan kunci utama tergantung secara fungsional terhadap semua
atribut kunci dan bukan hanya sebagian atribut kunci (fully functionally
dependent).
-Untuk
normalisasi ke bentuk 2NF, maka tabel 1NF didekomposisi
-menjadi
beberapa tabel yang masing-masing memenuhi 2NF.
-Bila terdapat
ketergantungan parsial maka eliminate.
·
Tujuan
membentuk 2NF :
1. semantik
tabel 2NF menjadi lebih eksplisit (fully FD)
2.
mengurangi update anomali yang masih mungkin terjadi pada 1NF
Contoh :
Diketahui
tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD :
A,B & C,D,E maka tabel R memenuhi 2NF sebab :
A,B &
C,D,E berarti :
A,B & C,
A,B & D
dan
A,B & E
Jadi semua atribut
bukan kunci utama tergantung penuh pada (A,B).
Bagaimana
bila R = (A,B,C,D,E) tetapi dengan FD :
(A,B) &
(C,D) dan B & E. Apakah memenuhhi 2NF ?
Jelas bahwa
R bukan 2NF karena ada atribut E yang bergantung
hanya pada
atribut B saja dan bukan terhadap (A,B).
Dari FD :
(A,B) Ã (C,D) juga mencerminkan bahwa hanya C dan D saja yang
bergantung secara fungsional terhadap (A,B), tidak untuk E.
Jadi bukan
2NF.
Untuk mengubah menjadi 2NF, lakukan dekomposisi
menjadi :
R1 = (A,B,C,D)
dan R2 = (B,E). Tampak R1
dan R2
memenuhi 2NF.
Third Normal Form (3NF)
Suatu relasi
disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika :
1. memenuhi 2NF
2. setiap atribut yang bukan kunci
tidak tergantung secara fungsional terhadap atribut bukan kunci yang lain dalam
relasi tsb (tidak terdapat ketergantungan transitif pada atribut bukan kunci).
Another
Definition :
- Suatu relasi disebut memenuhi bentuk normal ketiga (3NF)
jika dan
hanya jika setiap FD nontrivial : X & A,
dimana X dan
A atribut (atau kompositnya), memenuhi salah satu
kondisi :
1. X adalah
superkey
2. A
merupakan anggota candidate key (A disebut prime attribute)
Jika suatu
relasi sudah memenuhi 2NF tapi tidak memenuhi 3 NF, maka untuk normalisasi ke
bentuk 3NF, tabel 2NF didekomposisi menjadi beberapa tabel hingga masing-masing
memenuhi 3NF.
Tujuan
membentuk 3NF :
1. semantik
tabel 3NF menjadi lebih eksplisit (fully FD hanya pada primary key).
2.
menghindari update anomali yang masih mungkin terjadi pada 2NF.
Note :
Jika suatu relasi
memenuhi 2NF dan hanya memiliki tepat satu atribut yang bukan kunci utama maka
relasi tsb memenuhi 3NF
Contoh :

Diketahui : Bentuk Unnormalized Form
Normalisasinya
:
Tabel 3a
Tabel 3b
Tabel 1 dan 2 sudah memenuhi criteria bantuk 3NF,
namun tidak untuk tabel 3, karena bila kita ingin merubah value bobot dari
nilai, maka kita akan melakukan perubahan pada banyak record/baris yang
lainnya. Sehingga pada bentuk 3NF, tabel 3 dapat dipecah lagi menjadi 2 tabel
agar memenuhi kriteria bentuk 3NF.
Boyce Codd Normal Form (BCNF)
Suatu relasi disebut memenuhi BCNF jika dan hanya jika
setiap determinan yang ada pada relasi tersebut adalah candidate key.
Definisi
yang lain :
Suatu relasi
disebut memenuhi BCNF jika untuk setiap FD nontrivial :
X Ã A
atribut X adalah superkey.
- Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi BCNF.
- Tujuan membentuk BCNF :
:: semantik multiple candidate key
menjadi lebih eksplisit
(FD hanya pada candidate key).
:: menghindari update anomali yang
masih mungkin terjadi pada 3NF.
Dari
definisi 3NF dan BCNF, maka apabila suatu relasi memenuhi
BCNF pasti
memenuhi 3NF, tetapi belum tentu sebaliknya.
Contoh :
3 nf.
No
Pesanan
|
No Urut
|
Kode Item
|
Nama Item
|
50001
|
0001
|
P1
|
Pensil
|
50001
|
0002
|
P2
|
Buku
Tulis
|
50001
|
0003
|
P3
|
Penggaris
|
50001
|
0004
|
P4
|
Penghapus
|
50002
|
0001
|
P3
|
Penggaris
|
50002
|
0002
|
P5
|
Bulpen
|
50002
|
0003
|
P6
|
Spidol
|
50003
|
0001
|
P1
|
Pensil
|
50003
|
0002
|
P2
|
Buku
Tulis
|
kenapa tabel BCNFnya gak di tampil.
BalasHapustrims.