Normalisasi Tabel

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

4 Responses

  1. TQ mas atas petunjuknya. Oh ya Mas klu memungkinkan tlg donk penjelasan tentang normalisasi tingkat 56 dan 7, TQ sebelumnya Mas

  2. Wah gitu rupanya…
    Saya tadi ujian, bingung mau jawab gimana…
    Soalnya dosennya sok paten…
    Gak pernah ngasih contoh tapi soalnya yang kayak begini malah lebih sulit dari conth diatas yang mas berikan lagi…

    Bakalan ngulang kayaknya taun depan nih…
    Hufthh…

    Thx buat sharingnya mas…

  3. contohnya kurang lengkap…….

    • ^_^

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: