Normalisasi
Basis data dapat diumpamakan sama dengan lemari arsip data. Dengan
adanya basis data kita jadi lebih gampang untuk menyampaikan informasi
yang tersimpan dalam lemari arsip data.
Penyampaian informasi melalui basis data selalu dibuat sesimpel dan
seringkas mungkin serta tidak menhilangkan informasi yang ingin
disampaikan. Bentuk penyampai informasi seperti ini biasanya dilakukan
pada sebuah bentuk tabel yang disebut tabel Universal.
Tabel universal menyampaikan semua informasi yang ada seringkas mungkin
dan tanpa menhilangkan satupun informasi. Tetapi kita sering tidak
melihat data atau informasi yang tertera pada tabel Universal.
Supaya kita dapat melihat informasi yang tertera pada tabel universal
sehingga tidak ada data yang tidak terbaca atau data tertambah, yang
bukan merupakan sebuah data yang tertera pada tabel universal. Maka kita
lakukan dengan cara menormalisasi data tersebut
Kosep Dasar Normalisasi
Dependensi (Ketergantungan)
Konsep dasar pada tahap normalisasi yang menjelaskan hubungan atribut
atau secara lebih khusus menjelaskan nilai suatu atribut yang
menentukan atribut lainnya.
Macam-macam dependensi, yaitu :
Dependensi fungsional
Definisi : Suatu atribut Y mempunyai dependensi fungsional terhadap
atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah
nilai Y.
Notasi : X –> Y (X secara fungsional menentukan Y)
Contoh : Tabel Pesanan
Pembeli |
Kota |
Barang |
Jumlah |
P1 |
Yogya |
B1 |
10 |
P1 |
Yogya |
B2 |
5 |
P2 |
Jakarta |
B1 |
4 |
P2 |
Jakarta |
B2 |
7 |
P3 |
Solo |
B3 |
6 |
P3 |
Solo |
B4 |
6 |
Pembeli secara fungsional menentukan kota, sebab setiap pembeli yang
sama mempunyai kota yang sama, dengan demikian : Pembeli –> Kota
contoh lain : {Pembeli, Barang} –> Jumlah
Keterangan:
- Bagian yang terletak disebelah kiri tanda panah biasa disebut
DETERMINAN / PENENTU dan bagian yang terletak di sebelah kanan panah
disebut DEPENDENSI / YANG TERGANTUNG.
- Tanda {} biasanya digunakan untuk menentukan lebih dari satu atribut sebagai penentu atau sebagai yang tergantung.
TAHAPAN NORMALISASI
NORMALISASI
Kita
telah mengetahui bahwa sasaran menyusun data base adalah untuk
meminimalisasikan simpanan – simpana data yang berlebihan (tidak
dikehendaki).Data yang Redudance ini bisa diminimalisasikan dengan
meminilmalisasikan komposisi tabel data base.Tujuan dari Normalisasi
adalah untuk menghilangkan Redudance (pemborosan),membuat data base yang
baik dan handal yang bebas/terbebas dari Redudance. Yang dimaksud
dengan pemborosan yaitu adanya kolom yang belum diisi atau adanya
penggandaan/duplikasi.
Normalisasi tabel terdapat beberapa tingkatan yaitu :
1. Normalisasi tingkat 1 ( The First normal form. 1 NF )
2. Normalisasi tingkat 2( The secend normal form. 2 NF )
3. Normalisasi tingkat 3 ( The three normal form. 3 NF )
4. Normalisasi tingkat 4 ( The four normal form. 4 NF )
Bentuk
Normal ke satu adalah bentuk normal yang tidak seperti normalisasi lain
yan tidak membutuhkan informasi tambahan seperti ketergantungan
fungsional (functional defendancy) Nilai atau domain dikatakan atomik
jika nilai suatu atribut tidak bisa di bagi – bagi lagi menjadi unit –
unit yang lebih kecil denan kata lain dalam bentuk normal pertama nilai
untuk semua atribut adalah atomik (atribut terkecil).
tabel normal pertama
|
|
Nama
|
Alamat
|
Kota
|
No_tlp
|
No_faktur
|
Nama barang
|
Merk
|
Harga
|
Qty
|
Jumlah harga
|
Total
|
Tgl
|
Petugas
|
Dendi
|
jl.Siliwangi 21
|
Cirebon
|
231901111
|
12345
|
laptop
|
Thosiba
|
2000000
|
2
|
4000000
|
5050000
|
09/04/2011
|
Indra
|
Dendi
|
jl.Siliwangi 21
|
Cirebon
|
231901111
|
12345
|
printer
|
epson
|
1000000
|
1
|
1000000
|
5050000
|
09/04/2011
|
Indra
|
Dendi
|
jl.Siliwangi 21
|
Cirebon
|
231901111
|
12345
|
DVD
|
3M
|
50000
|
1
|
50000
|
5050000
|
09/04/2011
|
Indra
|
Nobita
|
jl.Tuvaref 15
|
Cirebon
|
231900000
|
54321
|
Laptop
|
Toshiba
|
2000000
|
1
|
2000000
|
3500000
|
09/04/2011
|
indra
|
Nobita
|
jl.Tuvaref 15
|
Cirebon
|
231900000
|
54321
|
printer
|
epson
|
1000000
|
1
|
1000000
|
3500000
|
09/04/2011
|
indra
|
Nobita
|
jl.Tuvaref 15
|
Cirebon
|
231900000
|
54321
|
Hardisc
|
Seagete
|
500000
|
1
|
500000
|
3500000
|
09/04/2011
|
indra
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bentuk tidak normal
|
Nama
|
Alamat
|
Kota
|
No_Tlp
|
No_faktur
|
Nama Barang
|
Merk
|
Harga
|
Qty
|
Jumlah Harga
|
Total
|
Tgl
|
Petugas
|
Dendi
|
jl.Siliwangi 21
|
Cirebon
|
231901111
|
12345
|
Laptop
|
Thosiba
|
2000000
|
2
|
4000000
|
5050000
|
09/04/2011
|
Indra
|
|
|
|
|
12345
|
printer
|
epson
|
1000000
|
1
|
1000000
|
5050000
|
09/04/2011
|
|
|
|
|
|
12345
|
DVD
|
3M
|
50000
|
1
|
50000
|
5050000
|
09/04/2011
|
|
Nobita
|
jl.Tuvaref 15
|
Cirebon
|
231900000
|
54321
|
Laptop
|
Thosiba
|
2000000
|
1
|
2000000
|
3500000
|
09/04/2011
|
Indra
|
|
|
|
|
54321
|
printer
|
epson
|
1000000
|
1
|
1000000
|
3500000
|
09/04/2011
|
|
|
|
|
|
54321
|
Hardisc
|
Seagete
|
500000
|
1
|
500000
|
3500000
|
09/04/2011
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pelanggan
|
KD_PLG
|
NAMA
|
ALAMAT
|
KOTA
|
NO_TLP
|
PL - 001
|
Dendi
|
Jl. Siliwangi 21
|
Cirebon
|
231901111
|
PL - 002
|
Nobita
|
Jl. Tuvaref 15
|
Cirebon
|
231900000
|
Petugas
|
PETUGAS
|
KD_PTG
|
indra
|
PT - 001
|
Transaksi
|
KD_BRG
|
KD_PLG
|
QTY
|
JUMLAH HARGA
|
TOTAL
|
TGL
|
NO FAKTUR
|
KD_PTG
|
LPT688
|
PL - 001
|
2
|
2000000
|
5050000
|
09/04/2011
|
12345
|
PT - 001
|
PRT43E
|
PL - 001
|
1
|
1000000
|
5050000
|
09/04/2011
|
12345
|
PT - 001
|
DVD3M
|
PL - 001
|
1
|
50000
|
5050000
|
09/04/2011
|
12345
|
PT - 001
|
LPT688
|
PL – 002
|
1
|
2000000
|
3500000
|
09/04/2011
|
54321
|
PT - 001
|
PRT43E
|
PL – 002
|
1
|
1000000
|
3500000
|
09/04/2011
|
54321
|
PT - 001
|
HDS600
|
PL - 002
|
1
|
500000
|
3500000
|
09/04/2011
|
54321
|
PT - 001
|
|
|
|
|
|
|
|
|
Barang
|
KD_BRG
|
NAMA BARANG
|
MERK
|
HARGA
|
LPT688
|
Laptop
|
TOSHIBA
|
2000000
|
PRT43E
|
Printer
|
Epson
|
1000000
|
DVD3M
|
DVD
|
3M
|
50000
|
HDS600
|
Hardisc
|
Seagete
|
500000
|
Faktur
|
KD_PLG
|
NO FAKTUR
|
TOTAL
|
TGL
|
PL - 001
|
12345
|
5050000
|
09/04/2011
|
PL - 002
|
54321
|
3500000
|
09/04/2011
|
TABEL INDUK/MASTER ,3 NF ( the three Normalized form )
Pelanggan
|
NAMA
|
ALAMAT
|
KOTA
|
NO_TLP
|
Dendi
|
Jl. Siliwangi 21
|
Cirebon
|
231901111
|
Nobita
|
Jl. Tuvaref 15
|
Cirebon
|
231900000
|
|
KD_BRG
|
LPT688
|
PRT43E
|
DVD3M
|
LPT688
|
PRT43E
|
HDS600
|
|
|
KD_PTG
|
PT - 001
|
PT - 001
|
PT - 001
|
PT - 001
|
PT - 001
|
PT - 001
|
|
|
KD_PLG
|
PL -0 01
|
PL - 001
|
PL - 001
|
PL - 001
|
PL - 002
|
PL - 002
|
|
No_faktur
|
Qty
|
Jumlah Harga
|
Total
|
Tgl
|
12345
|
2
|
4000000
|
5050000
|
09/04/2011
|
12345
|
1
|
1000000
|
5050000
|
09/04/2011
|
12345
|
1
|
50000
|
5050000
|
09/04/2011
|
54321
|
1
|
2000000
|
3500000
|
09/04/2011
|
54321
|
1
|
1000000
|
3500000
|
09/04/2011
|
54321
|
1
|
500000
|
3500000
|
09/04/2011
|
Proses Normalisasi
Proses normalisasi dalam basis data adalah proses untuk memperoleh properti skema relasi yang bagus.
Keuntungan normalisasi :
1 Membuat sekecil mungkin terjadinya data rangkap
2 Menghindarkan adanya data yang tidak Konsisten bila dilakukan penghapusan atau penambahan data.
3 Menjamin bahwa key tabel secara tunggal sebagai determinan semua atribut.
Relasi (tabel) secara berurutatan diproses menjadi bentuk normal lebih tinggi yang memiliki redudansi lebih rendah.
Dalam proses menormalisasi data terdapat beragam tingkat bentuk normalisasi :
1 Bentuk Normal pertama (1NF)
Bentuk Normal Pertama ini dicapai bila tiap nilai atribut adalah tunggal
( bukan atribut turunan). Dan kondisi ini dapat diperoleh dengan
melakukan eliminasi terjadinya data rangkap.
2 Bentuk Normal kedua (2NF)
Bentuk Norma kedua ini bukan utama harus bergantung fungsional penuh
pada kunci relasi. Dan relasi harus telah berbentuk normal pertama.
3 Bentuk Normal ketiga (3NF)
Pada Bentuk Normal ketiga ini relasi telah berbetuk normal kedua, relasi
ini tidak boleh memuat kebergantungan fungsional diantara atribut bukan
utama dan bentuk ketiga ini menghilangkan kebergantungan transitif.
Contoh Kasus
Tugas Konsep Basis Data — Contoh Kasus Normalisasi Tabel dalam Tiga Tahap
~ rain.08 ~
Berikut adalah sebuah tabel daftar anggota beberapa grup:
Nomor
Grup
|
Nama Grup
|
Id Anggota
|
Nama Anggota
|
Kode
Posisi
|
Posisi
|
070223
|
Trot
|
13202
|
Heechul |
S
|
Visual |
13208
|
Eunhyuk |
R
|
Rapper |
0611005
|
KRY
|
13204
|
Yesung |
L
|
Leader |
13213
|
Kyuhyun |
V
|
Vocalist |
080403
|
Mandarin
|
13208
|
Eunhyuk |
R
|
Rapper |
13209
|
Siwon |
S
|
Visual |
13213
|
Kyuhyun |
V
|
Vocalist |
Tabel 1.1
Berikut bentuk normalisasi pertamanya:
Nomor
Grup
|
Nama Grup
|
I Anggota
|
Nama Anggota
|
Kode
Posisi
|
Posisi
|
070223
|
Trot
|
13202
|
Heechul |
S
|
Visual |
070223
|
Trot
|
13208
|
Eunhyuk |
R
|
Rapper |
061105
|
KRY
|
13204
|
Yesung |
L
|
Leader |
061105
|
KRY
|
13213
|
Kyuhyun |
V
|
Vocalist |
080403
|
Mandarin
|
13208
|
Eunhyuk |
R
|
Rapper |
080403
|
Mandrin
|
13209
|
Siwon |
S
|
Visual |
080403
|
Mandarin
|
13213
|
Kyuhyun |
V
|
Vocalist |
Tabel 1.2
Pada tabel 1.2 terdapat kesalahan input pada field Nama Grup.
Kesalahan seperti ini dapat terjadi lagi bila terdapat banyak input.
Oleh karena itu perlu dilakukan normalisasi kedua.
Normalisasi kedua terdiri dari tiga tabel sbb:
Tabel 1.3. Tabel grup_anggota
Nomor Grup
|
Id Anggota
|
070223
|
13202
|
070223
|
13208
|
061105
|
13204
|
061105
|
13213
|
080403
|
13208
|
080403
|
13209
|
080403
|
13213
|
Tabel 1.4. Tabel Grup
Nomor Grup
|
Nama Grup
|
070223
|
Trot
|
061105
|
KRY
|
080403
|
Mandarin
|
Tabel 1.5. Tabel Anggota
Id Anggota
|
Nama Anggota
|
Kode
Posisi
|
Posisi
|
13202
|
Heechul |
S
|
Visual |
13208
|
Eunhyuk |
R
|
Rapper |
13204
|
Yesung |
L
|
Leader |
13213
|
Kyuhyun |
V
|
Visual |
13209
|
Siwon |
S
|
Visual |
Pada tabel 1.5 terdapat kesalahan input
di mana posisi dan kode posisi anggota tidak sesuai. Untuk itu dilakukan
normalisasi ketiga untuk menghindari terjadinya kesalahan input seperti
di atas.
Bentuk normalisasi ketiga:
Tabel 1.6. Tabel Anggota
Id Anggota
|
Nama Anggota
|
Kode
Posisi
|
13202
|
Heechul |
S
|
13208
|
Eunhyuk |
R
|
13204
|
Yesung |
L
|
13213
|
Kyuhyun |
V
|
13209
|
Siwon |
S
|
Tabel 1.7. Tabel Posisi
Kode Posisi
|
Posisi
|
S
|
Visual |
R
|
Rapper |
L
|
Leader |
V
|
Vocalist |
Normalisasi ketiga dilakukan untuk membuat tabel tersendiri untuk kode posisi dan posisi.
Demikian salah satu contoh kasus normalisasi tabel.