NORMALISASI Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi untuk menyatakan entitas dan hubungan mereka sehingga terwujud satu bentuk database yang mudah untuk dimodifikasi Tujuan : supaya tabel yg dihasilkan akan lebih baik dan terhindar dari anomaly dan redudancy / pengulangan informasi dalam tabel Normalisasi yang biasa terbagi menjadi 3 bagian, yaitu : 1. Normalisasi 1-NF (normalisasi tahap pertama-normal form) 2. Normalisasi 2-NF (normalisasi tahap ke-2) 3. Normalisasi 3-NF(normalisasi tahap ke-3) Dari tahapan normalisasi di atas memiliki ciri-ciri sebagai berikut : 1. 1-NF Langkah pertama dari proses normalisasi adalah mentransformasikan data ke dalam bentuk tabel 2 dimensi. Perpotongan antara baris dan kolom diperbolehkan memuat hanya satu nilai data saja, artinya tidak ada pengulangan nilai atau null (tanpa nilai data) pada perpotongan antara baris dan kolom. 2. 2-NF Tabel dikatakan mempunyai relasi bentuk normal ke-2, jika untuk setiap atribut yang bukan sebagai key bergantung secara penuh pada identifikasi unik (primary key). Normal ke-2 ini dibuat untuk menghilangkan anomaly-anomaly atau pengulangan informasi sebagai akibat yang terjadi dalam 1-NF. Untuk mengatasi penyimpangan-penyimpangan yang terjadi pada bentuk normal pertama adalah pisahkan kolom-kolom di tempat mana duplikasi data terjadi atau bangun entiti baru yang terdiri dari atribut-atribut yang bergantung secara penuh pada bagian dari key, dengan ketentuan sebagai berikut : a. Key dari tabel baru adalah key dari group duplikasi b. Key dari tabel asal adalah sebagai atribut pada tabel baru. 3. 3-NF Tabel dikatakan mempunyai relasi bentuk normal ke-3, jika tidak ada atribut bukan key yang bergantung pada atribut lain yang juga bukan sebagai key dalam satu tabel, atau dapat juga dikatakan dalam relasi tersebut tidak ada ketergantungan transitif (ABC) C memiliki ketergantungan transitif terhadap A. Penyimpangan-penyimpangan yang terjadi pada relasi bentuk normal ke-2, dapat diatasi dengan membangun entiti baru yang terdiri dari atribut-atribut yang memiliki ketergantungan transitif, dan proses normalisasinya menghasilkan relasi bentuk ke-3.
Contoh-1 : 4. Bentuk Tabel Unnormalized (bentuk tabel yang belum normal) Tabel : Operasi No_ps Nm_ps Almt_ps Kd_dok Nm_dok Tgl_opr P-111 John Jl. AA D-112 Dr.A 11-01-87
Jns_opr Nm_obt Efek Katarak Tetracyline Demam
Jl. AA
D-113 Dr.C
05-03-87
Ginjal
Jl. AA
D-112 Dr.A
15-01-87
Kornea Tetracyline Demam
Jl. AA
D-114 Dr.B
15-01-87
Amandel Demiciline ---
P-113 Dian
Jl. BB
D-113 Dr.C
11-01-87
Kornea Tetracyline Demam
P-114 Ari
Jl. CC
D-114 Dr.B
15-01-87
Ginjal
P-112 Mary
Penicilin
Penicilin
Gelisah
Gelisah
5. Dari bentuk tabel yang belum normal, akan kita normalkan menjadi bentuk tabel yang normal (1-NF) Tabel : Operasi No_ps Nm_ps Almt_ps Kd_dok Nm_dok Tgl_opr P-111 John Jl. AA D-112 Dr.A 11-01-87
Jns_opr Nm_obt Efek Katarak Tetracyline Demam
P-111 John
Jl. AA
D-113 Dr.C
05-03-87
Ginjal
P-112 Mary
Jl. AA
D-112 Dr.A
15-01-87
Kornea Tetracyline Demam
P-112 Mary
Jl. AA
D-114 Dr.B
15-01-87
Amandel Demiciline ---
P-113 Dian
Jl. BB
D-113 Dr.C
11-01-87
Kornea Tetracyline Demam
P-114 Ari
Jl. CC
D-114 Dr.B
15-01-87
Ginjal
Penicilin
Penicilin
Gelisah
Gelisah
6. Tabel bentuk Normal ke-2 Memisahkan atribut-atribut yang memiliki repeating group pada nilai datanya, maka akan menghasilkan 3 buah tabel : Pasien, Dokter, dan Operasi Tabel : Pasien No_ps Nm_ps Almt_ps P-111 John Jl. AA P-112
Mary
Jl. AA
P-113
Dian
Jl. BB
P-114
Ari
Jl. CC
Tabel : Dokter Kd_dok Nm_dok D-112 Dr.A D-113
Dr.C
D-114
Dr.B
Tabel : Operasi No_ps Kd_dok Tgl_opr P-111 D-112 11-01-87
Jns_opr Nm_obt Efek Katarak Tetracyline Demam
P-111 D-113 05-03-87
Ginjal
P-112 D-112 15-01-87
Kornea Tetracyline Demam
P-112 D-114 15-01-87
Amandel Demiciline ---
P-113 D-113 11-01-87
Kornea Tetracyline Demam
P-114 D-114 15-01-87
Ginjal
Penicilin
Penicilin
Gelisah
Gelisah
Dari tabel Operasi ternyata masih memiliki repeating group pada Nm_obt, terbukti dari Nm_obt : Penicilin maka efeknya adalah Gelisah. Jadi dari tabel di atas selain memiliki key yaitu : No_ps, Kd_dok yang menentukan tgl_opr, Jns_opr, Nm_obt, dan efek, juga memiliki ketergantungan yang lain, yaitu efek masih bergantung pada Nm_obt. Dari hal tersebut, maka harus di pisahkan kembali (yang terjadi repeating group) menjadi sebuah tabel baru, yaitu : Obat.
Tabel : Obat Nm_obt Efek Tetracyline Demam Demiciline --Penicilin
Gelisah
Tabel : Operasi No_ps Kd_dok Tgl_opr P-111 D-112 11-01-87
Jns_opr Nm_obt Katarak Tetracyline
P-111 D-113 05-03-87
Ginjal
P-112 D-112 15-01-87
Kornea Tetracyline
P-112 D-114 15-01-87
Amandel Demiciline
P-113 D-113 11-01-87
Kornea Tetracyline
P-114 D-114 15-01-87
Ginjal
Penicilin
Penicilin
Contoh 2: 1. Tabel Unnormalized No_fak Tgl K_sup N_sup
K_brg
N_brg
Qty
273
P2
Meja
3
P3
Kursi
2
P4
Kasur
2
P2
Meja
4
P4
Kasur
2
P3
Kursi
2
P4
Kasur
4
P2
Meja
2
274
276
277
02/05/87
02/05/87
02/06/87
02/06/87
335
275
230
208
Smith
PT.A
PT.B
PT.C
2. Bentuk tabel 1-NF Tabel : Pembelian No_fak Tgl
K_sup N_sup
K_brg
N_brg
Qty
273
02/05/87
335
Smith
P2
Meja
3
273
02/05/87
335
Smith
P3
Kursi
2
273
02/05/87
335
Smith
P4
Kasur
2
274
02/05/87
275
PT.A
P2
Meja
4
274
02/05/87
275
PT.A
P4
Kasur
2
276
02/06/87
230
PT.B
P3
Kursi
2
276
02/06/87
230
PT.B
P4
Kasur
4
277
02/06/87
208
PT.C
P2
Meja
2
3. Bentuk Tabel 2-NF Tabel : Faktur No_fak Tgl K_sup
N_sup
273
02/05/87 335
Smith
274
02/05/87 275
PT.A
276
02/06/87 230
PT.B
277
02/06/87 208
PT.C
Tabel : Pembelian No_fak K_sup K_brg
N_brg
Qty
273
335
P2
Meja
3
273
335
P3
Kursi
2
273
335
P4
Kasur
2
274
275
P2
Meja
4
274
275
P4
Kasur
2
276
230
P3
Kursi
2
276
230
P4
Kasur
4
277
208
P2
Meja
2
Tabel : Barang K_brg N_brg P2
Meja
P3
Kursi
P4
Kasur
Tabel : Pembelian No_fak K_sup K_brg
Qty
273
335
P2
3
273
335
P3
2
273
335
P4
2
274
275
P2
4
274
275
P4
2
276
230
P3
2
276 277
230 208
P4 P2
4 2
4. Bentuk tabel 3-NF Dari tabel faktur dapat dilihat masih terdapat ketergantungan transitif, dimana No_fak dapat menentukan Tgl, K_sup dan N_sup, juga K_sup dapat pula menentukan N_sup, jadi N_sup memiliki ketergantungan transitif pada atribut No_fak (No_fakK_supN_sup). Dari hal tersebut, maka harus di pisahkan kembali (yang memiliki ketergantungan transitif) menjadi sebuah tabel baru, yaitu : Supplier. Tabel : Suplier K_sup N_sup 335
Smith
275
PT.A
230
PT.B
208
PT.C
Tabel : Faktur No_fak
Tgl
K_sup
273
02/05/87
335
274
02/05/87
275
276
02/06/87
230
277
02/06/87
208
Dari hasil normalisasi (tabel : Pembelian) di atas terbentuk menjadi 4 tabel, yaitu : 1. Pembelian = {No_fak, K_sup, K_brg, Qty} {No_fak,K_sup,K_brg} Qty 2. Faktur = {No_fak, Tgl, K_sup} No_fak {Tgl, K_sup} 3. Barang = {K_brg, N_brg} K_brg N_brg 4. Supplier = {K_sup, N_sup} K_sup N_sup