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:

  1. Masih adanya duplikasi data, yaitu menyimpan data yang sama ke dalam lebih satu tabel (redudansi data).
  2. 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:

  1. Relation umum (yang belum dan yang sudah ternormalisasi)
  2. 1NF (First Normal Form) relation yang sudah ternormalisasi.
  3. 2NF (Second Normal Form) relation.
  4. 3NF (Third Normal Form) relation.
  5. BCNF (Boyce Codd Normal Form) relation.
  6. 4NF (Fourth Normal Form) relation.
  7. 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 :

  1. Tidak ada set atribut yang berulang atau bernilai ganda.
  2. Telah ditentukannya primary key untuk tabel atau relasi.
  3. Tiap atribut hanya memiliki satu pengertian.
  4. Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.

contoh :

Tabel Program

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:

Tabel Program

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

Tabel Jenis_Program

kode_projek

jenis

PRGOO1

P1

PRGOO1

P2

PRG001

P3

PRG002

P1

PRG002

P2

PRG003

P3

Bentuk Normal ke Dua(2NF), Syarat :

  1. Bentuk data telah memenuhi kriteria bentuk normal ke satu.
  2. 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

Tabel Bidang_Pelaksana_Program

kode_projek

bidang

PRGOO1

Kesejahteraan Sosial

PRGOO2

Pembangunan

PRG003

Kesejahteraan Sosial

Bentuk Normal ke Tiga(3NF), Syarat :

  1. Bentuk data telah memenuhi kriteria bentuk normal ke dua.
  2. 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

Tabel Bidang

id_bagian

bagian

6

Pemberdayaan Wanita

2

Kesejahteraan Sosial

Tabel Bidang_Pegawai

NIP

id_bagian

656597745

6

999999999

6

777777777

2

Entry Filed under: Pemograman dan Database. Tag: .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Arsip

Blog Stats

Klik tertinggi

Tulisan Terakhir

Tulisan Teratas

Komentar Terakhir

Pasa Firaya, ST di Dowlaoad Buku Pelajaran Elektr…
intan di ERD (Entitas Relationship…
martino di SISTEM INFORMASI SEKOLAH (SIS)…
ryan di e-Mail bikin hidup lebih …
lia dwi anggraini di MEDIA PEMBELAJARAN BERBASISKAN…

Kategori

Manusia ???

Manusia memiliki arti jika hidup dalam mengaktualkan potensi dirinya.
Manusia belajar jika ada kesadaran dalam dirinya.
Manusia sadar jikalau dia mau menggunakan akalnya.
Benarkah demikian Manusia itu?

Blogroll

Lain-lain

Masih Punya Saya

Teman-teman

Feed

Meta

Spam Blocked

Chicklet Chooser

I heart FeedBurner

Pay Now with e-gold...
Pay Now with e-gold...