Normalisasi Tabel
Juli 14, 2008
Dalam mempersiapkan suatu sistem database, selain melalui tahap pemodelan untuk menghasilkan suatu relasi antar tabel yang logik, adakalanya kita dihadapkan oleh suatu tabel transaksi tertentu yang sudah digunakan sebelumnya yang hendak kita jadikan tabel yang berelasional. Kendala yang mungkin dihadapi ialah tabel transaksi yang dimaksud tersebut belum memenuhi kategori secara logik sebagai tabel yang dapat direlasionalkan, setidaknya tabel tersebut:
- Masih adanya duplikasi data, yaitu menyimpan data yang sama ke dalam lebih satu tabel (redudansi data).
- Tidak adanya ketergantungan secara logik antar data, dimana data yang disimpan dalam satu tabel belum tentu memiliki ketergantungan secara logik.
Untuk memenuhi keteraturan secara logik maka tabel yang hendak direlasionalkan setidaknya memenuhi kriteria normal tertentu. Metoda yang tepat dalam menentukan bahwa sebuah relation sudah masuk atau tidak dalam kategori normal maka tabel tersebut sebelumnya sudah di normalisasi terlebih dahulu. Lalu apakah normalisasi itu? Normalisasi secara umum dapat dikatakan sebagai proses efisiensi dari pengorganisasian data dalam suatu database.
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Suatu relation dikatakan sudah berada pada bentuk normalisasi tertentu bila memenuhi beberapa batasan tertentu pada tingkat tersebut. Tingkat normalisasi yang lebih tinggi dianggap lebih baik dari tingkat dibawahnya.
Tingkat-tingkat Normalisasi:
- Relation umum (yang belum dan yang sudah ternormalisasi)
- 1NF (First Normal Form) relation yang sudah ternormalisasi.
- 2NF (Second Normal Form) relation.
- 3NF (Third Normal Form) relation.
- BCNF (Boyce Codd Normal Form) relation.
- 4NF (Fourth Normal Form) relation.
- PJ/NF (Project Join Normal Form) atau 5NF (Fifth Normal Form) relation
Dalam praktiknya dilapangan bentuk normalisasi yang banyak digunakan hanyalah dari tingkat 1NF sampai dengan 3NF, untuk tingkat selanjutnya amat jarang digunakan. Oleh karena itu dalam pembahasan kali ini pun kita hanya akan membahas bentuk normal relasi suatu tabel dari bentuk normal ke Satu (1NF) hingga bentuk normal ke Tiga (3NF).
Bentuk Normal ke Satu(1NF), Syarat :
- Tidak ada set atribut yang berulang atau bernilai ganda.
- Telah ditentukannya primary key untuk tabel atau relasi.
- Tiap atribut hanya memiliki satu pengertian.
- Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
contoh :
|
kode_projek |
tgl_realisasi |
jenis1 |
jenis2 |
jenis3 |
total_anggaran |
|
PRGOO1 |
10/01/2008 |
P1 |
P3 |
P2 |
500.000.000 |
|
PRGOO2 |
11/03/2008 |
P2 |
P1 |
|
250.000.000 |
|
PRG003 |
5/05/2008 |
P3 |
|
|
10.000.000 |
Tabel diatas tidak memenuhi aturan normal ke Satu dan setelah dinormalisasi, menjadi:
|
kode_projek |
tgl_realisasi |
total_anggaran |
|
PRGOO1 |
10/01/2008 |
500.000.000 |
|
PRGOO2 |
11/03/2008 |
250.000.000 |
|
PRG003 |
5/05/2008 |
10.000.000 |
|
kode_projek |
jenis |
|
PRGOO1 |
P1 |
|
PRGOO1 |
P2 |
|
PRG001 |
P3 |
|
PRG002 |
P1 |
|
PRG002 |
P2 |
|
PRG003 |
P3 |
Bentuk Normal ke Dua(2NF), Syarat :
- Bentuk data telah memenuhi kriteria bentuk normal ke satu.
- Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key.
contoh :
Tabel Pelaksana_Program
|
kode_projek |
penanggung_jawab |
bidang |
|
PRGOO1 |
Uu Permana |
Kesejahteraan Sosial |
|
PRGOO2 |
Firman Utina |
Pembangunan |
|
PRG003 |
Uu Permana |
Kesejahteraan Sosial |
Tabel Pelaksana_Program sudah memenuhi aturan normal ke Satu namun atribut bukan kunci penanggung_jawab dan bidang tidak sepenuhnya bergantung kepada atribut key kode_projek, setelah di normalisasi menjadi:
Tabel Pelaksana_Program
|
kode_projek |
penanggung_jawab |
|
PRGOO1 |
Uu Permana |
|
PRGOO2 |
Firman Utina |
|
PRG003 |
Uu Permana |
|
kode_projek |
bidang |
|
PRGOO1 |
Kesejahteraan Sosial |
|
PRGOO2 |
Pembangunan |
|
PRG003 |
Kesejahteraan Sosial |
Bentuk Normal ke Tiga(3NF), Syarat :
- Bentuk data telah memenuhi kriteria bentuk normal ke dua.
- Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
contoh :
Tabel bidang_pegawai
|
NIP |
nama |
id_bagian |
bagian |
|
656597745 |
Tian Gunawan |
6 |
Pemberdayaan Wanita |
|
999999999 |
Irma Lestari |
6 |
Pemberdayaan Wanita |
|
777777777 |
Uu Permana |
2 |
Kesejahteraan Sosial |
Tabel bidang_Pegawai sudah memenuhi aturan normal ke Satu dan ke Dua namun atribut bukan kunci bagian tidak sepenuhnya bergantung kepada atribut key nip melainkan kepada atribut bukan kunci id_bagian, setelah di normalisasi menjadi:
Tabel Pegawai
|
NIP |
nama |
|
656597745 |
Tian Gunawan |
|
999999999 |
Irma Lestari |
|
777777777 |
Uu Permana |
|
id_bagian |
bagian |
|
6 |
Pemberdayaan Wanita |
|
2 |
Kesejahteraan Sosial |
|
NIP |
id_bagian |
|
656597745 |
6 |
|
999999999 |
6 |
|
777777777 |
2 |
Entry Filed under: Pemograman dan Database. Tag: Pemograman dan Database; Data Base.






Trackback this post | Subscribe to the comments via RSS Feed