Mardhiya Hayaty, ST
Level-level dalam normalisasi disebut Normal Form (NF)
1.Bentuk Normal tahap Pertama (1st Normal Form/1NF) 2.Bentuk Normal tahap Kedua (2nd Normal Form/2NF) 3.Bentuk Normal tahap Ketiga (3rd Normal Form/3NF) 4.Bentuk Normal tahap Keempat (4th Normal Form/4NF) 5.Bentuk Normal tahap Kelima (5th Normal Form/5NF)
Definisi dan syarat : Suatu relasi berada dalam bentuk normal pertama jika relasi tidak mengandung atribut yang bernilai ganda (multivalue attribut).
a. Tidak ada baris yang sama dalam sebuah tabel b. Tidak ada attribut yang duplikat dalam sebuh tabel c. Tidak ada attribut multivalue, jadi nilai cell harus single d. Tidak ada pengulangan group data.
Contoh tabel yang tidak normal NOTA PLGN
ALAMAT
TGL_ORDER KODEBRG
NAMA_BRG
JML HARGASAT SUBTOTAL TOTAL
A001 Dinda Jl. Teratai 15 A
15-Jan-11B001
Gula
2
5000
10000
16500
A001 Dinda Jl. Teratai 15 A
15-Jan-11B002
Mentega
1
6500
6500
16500
B002 Paijo
Jl. Pandega no 50
17-Jan-11B001
Gula
1
5000
5000
35000
B002 Paijo
Jl. Pandega no 50
17-Jan-11B003
Roti
2
7000
14000
35000
B002 Paijo
Jl. Pandega no 50
17-Jan-11B004
Minyak Goreng
1
16000
16000
35000
a.
b.
Terdapat attribut duplikat yaitu nota,plgn,alamat,tgl_order Terdapat attribut multivalues yaitu kodebrg, dan nama_brg. Satu orang pelanggan membeli lebih dari satu barang.
Langkah-langkah 1. 2. 3.
: Hilangkan attribut duplikat Buatlah menjadi tabel terpisah untuk masing-masing group data tentukan kolom uniknya (primary key)
PK
Tabel Order
NONOTA NAMA_PLGN
ALAMAT
TGL_ORDER
TOTAL
A001
Dinda Dewi
Jl. Teratai 15 A
15-Jan-11
16500
B002
Paijo
Jl. Pandega gg. Buntu no 50
17-Jan-11
35000
FK
Tabel item_order NONOTA A001 A001 B002 B002 B002
PK
KODEBRG B001 B002 B001 B003 B004
NAMA_BRG Gula Mentega Gula Roti Minyak Goreng
JML HARGASAT SUBTOTAL 2 5000 10000 1 6500 6500 1 5000 5000 2 7000 14000 1 16000 16000
1. 2.
3.
Syarat Sudah memenuhi 1NF Attribut non key secara fungsi tergantung penuh terhadap atribut Primary Key Tidak ada partial dependencies : tidak ada attribut yang bergantung sebagian terhadap primary key, terdapat pada kasus composite primary key (artinya dalam satu tabel terdapat lebih dari satu primary key) Langkah Jika ada attribut yang bergantung sebagian terhadap primary key, maka pecah menjadi tabel sendiri.
NONOTA A001 A001 B002 B002 B002
KODEBRG B001 B002 B001 B003 B004
NAMA_BRG Gula Mentega Gula Roti Minyak Goreng
JML HARGASAT SUBTOTAL 2 5000 10000 1 6500 6500 1 5000 5000 2 7000 14000 1 16000 16000
PK Nama barang dan hargasat bergantung hanya kepada PK kodebrg, bukan kepada nonota maka pecahlah menjadi tabel tersendiri yaitu tabel BARANG KODEBRG NAMA_BRG HARGASAT PK B001 Gula 5000 B002 Mentega 6500 B003 Roti 7000 B004 Minyak Goreng 16000
PK
Tabel Order
NONOTA NAMA_PLGN
ALAMAT
TGL_ORDER
TOTAL
A001
Dinda Dewi
Jl. Teratai 15 A
15-Jan-11
16500
B002
Paijo
Jl. Pandega gg. Buntu no 50
17-Jan-11
35000
NONOTA FK A001 A001 B002 B002 B002
KODEBRG JML SUBTOTAL Tabel Item_order B001 2 10000 B002 1 6500 B001 1 5000 B003 2 14000 PK B004 1 16000 Tabel Barang FK
PK
KODEBRG NAMA_BRG HARGASAT B001 Gula 5000 B002 Mentega 6500 B003 Roti 7000 B004 Minyak Goreng 16000
Syarat 1. 2.
1.
2.
Memenuhi bentuk normal kedua Tidak ada defendensi transitif,artinya ada atribut yang bergantung dengan attribut non key yang lain.Biasanya terjadi pada attribut turunan. Langkah Hapus atau pisahkan menjadi tabel tersendiri attribut yang bergantung dengan attribut non key Pastikan semua attribut non key bergantung penuh kepada Primary Key
Terdapat attibut yang bergantung terhadap attribut yang lain misalnya Nilai Subtotal adalah : dari nilai attribut jml dan hargasatuan (dari tabel barang)
Tabel item_order NONOTA A001 A001 B002 B002 B002
KODEBRG JML SUBTOTAL B001 2 10000 B002 1 6500 B001 1 5000 B003 2 14000 B004 1 16000
PK
FK
Tabel Order
NONOTA TGL_ORDER KODE_PLGN A001 15-Jan-11P001 B002 17-Jan-11P002 PK
FK
FK
NONOTA KODEBRG JML A001 B001 2 A001 B002 1 B002 B001 1 B002 B003 2 B002 B004 1 Tabel Item_order
Tabel Pelanggan KODE_PLGN NAMA_PLGN ALAMAT P001 Dinda Dewi Jl. Teratai 15 A P002 Paijo Jl. Pandega gg. Buntu no 50
PK
Tabel Barang KODEBRG NAMA_BRG HARGASAT B001 Gula 5000 B002 Mentega 6500 B003 Roti 7000 B004 Minyak Goreng 16000
NPM
NAMA
JURMHS ALAMAT
KD_MK
MATAKULIAH
SKS NILAI
SMT THN_AKADEMIK
07.01.1234
Dewi Fortuna
D3TI
Jl. Mawar 10
DT050
PBD
4A
12008/2009
07.01.1234
Dewi Fortuna
D3TI
Jl. Mawar 10
DT051
E-commerce
2B
22008/2009
07.01.1234
Dewi Fortuna
D3TI
Jl. Mawar 10
DT052
Kalkulus
2C
32008/2009
07.01.1234
Dewi Fortuna
D3TI
Jl. Mawar 10
DT053
Multimedia
4D
12009/2010
07.11.3333
Frenky
S1TI
Jl. Melati 5
ST015
Sistem Berkas
4A
12008/2009
07.11.3333
Frenky
S1TI
Jl. Melati 5
ST016
Kripitografi
2B
22008/2009
07.11.3333
Frenky
S1TI
Jl. Melati 5
ST017
ANSI
2C
32008/2009
07.11.3333
Frenky
S1TI
Jl. Melati 5
ST018
PPA
4D
12009/2010
1NF 1. Terdapat attribut duplikat yaitu : npm,nama,jurmhs,alamat 2. Terdapat attribut multivalues, yaitu satu mhs mengambil banyak matakuliah, sehingga tercipta baris/rows yang sama. Langkah : Pisah menjadi 2 tabel yaitu tabel mahasiswa (npm,nama,jurmhs, alamat)dan tabel KRS (npm,kodemk,matakuliah,smt,thn_ajaran)
PK
FK
Tabel mahasiswa NPM 07.01.1234 07.11.3333
NAMA JURMHS Dewi Fortuna D3TI Frenky S1TI
ALAMAT Jl. Mawar 10 Jl. Melati 5
Tabel KRS NPM 07.01.1234 07.01.1234 07.01.1234 07.01.1234 07.11.3333 07.11.3333 07.11.3333 07.11.3333
KD_MK DT050 DT051 DT052 DT053 ST015 ST016 ST017 ST018
PK
MATAKULIAH PBD E-commerce Kalkulus Multimedia Sistem Berkas Kripitografi ANSI PPA
SKS 4 2 2 4 4 2 2 4
NILAI A B C D A B C D
SMT 1 2 3 1 1 2 3 1
THN_AKADEMIK 2008/2009 2008/2009 2008/2009 2009/2010 2008/2009 2008/2009 2008/2009 2009/2010
2NF
1. 2.
attribut non key harus bergantung penuh kepada primary key. Lihat tabel KRS, attibut matakuliah dan sks bergantung penuh terhadap kode_mk, tidak bergantung penuh terhadap npm.
Langkah
Pecah menjadi tabel tersendiri yaitu tabel Matakuliah (kode_mk,matakuliah,sks)
Tabel Matakuliah
PK
PK
FK
KD_MK DT050 DT051 DT052 DT053 ST015 ST016 ST017 ST018
Tabel mahasiswa NPM 07.01.1234 07.11.3333
NAMA JURMHS Dewi Fortuna D3TI Frenky S1TI
FK
Tabel KRS NPM 07.01.1234 07.01.1234 07.01.1234 07.01.1234 07.11.3333 07.11.3333 07.11.3333 07.11.3333
ALAMAT Jl. Mawar 10 Jl. Melati 5
KD_MK DT050 DT051 DT052 DT053 ST015 ST016 ST017 ST018
PK
NILAI A B C D A B C D
SMT 1 2 3 1 1 2 3 1
THN_AKADEMIK 2008/2009 2008/2009 2008/2009 2009/2010 2008/2009 2008/2009 2008/2009 2009/2010
MATAKULIAH PBD E-commerce Kalkulus Multimedia Sistem Berkas Kripitografi ANSI PPA
SKS 4 2 2 4 4 2 2 4