normalisasi database

NORMALISASI DATA

Normalisasi database biasanya jarang dilakukan dalam database skala kecil, dan dianggap tidak diperlukan pada penggunaan personal. Namun seiring dengan berkembangnya informasi yang dikandung dalam sebuah database, proses normalisasi akan sangat membantu dalam menghemat ruang yang digunakan oleh setiap tabel di dalamnya, sekaligus mempercepat proses permintaan data.

Proses normalisasi model data dapat diringkas sebagai berikut:

  1. Menemukan entitas-entitas utama dalam model data.
  2. Menemukan hubungan antara setiap entitas.
  3. Menentukan atribut yang dimiliki masing-masing entitas.

Normalisasi model data dilakukan dengan mengikuti langkah-langkah sederhana, mengubahnya agar memenuhi apa yang disebut sebagai bentuk normal pertama, kedua, lalu ketiga secara berturutan.

Langkah-Langkah Normalisasi

1. Bentuk Normal Pertama ( 1NF )

Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yang dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.

2. Bentuk Normal Kedua ( 2NF )

Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuk normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut.

3. Bentuk Normal Ketiga (3NF)

Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuk normal kedua dan tidak ada satupun atribut non-identifying (bukan pengidentifikasi unik) yang bergantung pada atribut non-identifying lain. Apabila ada, pisahkan salah satu atribut tersebut menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut.

STUDI KASUS TOKO ABC

No. Faktur :
Tanggal : Kepada :

No.

Nama

Jumlah

Harga

Total

Total Bayar

Diskon

Jumlah Bayar

Petugas : …………………………..

TAHAP-TAHAP NORMALISASI DATA

A. BASIS DATA BELUM TERNORMALISASI

Berdasarkan faktur di atas, maka gambaran database yang belum ternormalisasi adalah sebagai berikut :

1. Tabel yang memiliki field dengan banyak data / tidak tunggal

No_Faktur

Tanggal

Nama_pelanggan

Daftar_Belanja

05070101

29/05/07

Pitoyo

Bedak, Beras, Minyak Tanah, Buku

05070102

29/05/07

Bowo

Baby Oil, Garam, Gula, Pensil

05070103

30/05/07

Erlina

Sikat gigi, Sabun, Odol, Sampo

06070001

01/06/07

Dayat

Beras

2, Tabel dengan field yang mengalami repeating groups

No_Faktur

Tanggal

Pelanggan

Belanja 1

Harga1

Belanja2

Harga2

Belanja3

Harga3

Belanja4

Harga4

05070101

29/05/07

Pitoyo

Bedak

1500

Beras

10000

Minyak Tanah

3500

Buku

2000

05070102

29/05/07

Bowo

Baby Oil

5600

Garam

2500

Gula

4000

Pensil

1500

05070103

30/05/07

Erlina

Sikat gigi

12000

Sabun

2500

Odol

13000

Sampo

16000

06070001

01/06/07

Dayat

Beras

25000

Walaupun susunan tabel data di atas belum menampilkan keseluruhan atribut dari bentuk faktur yang tertera pada masalahini, tetapi ia telah dapat menggambarkan bentuk basis data yang belum ternormalisasi, karena suatu relasi memenuhi 1-NF jika dan hanya jika setiap atribut hanya memiliki nilai tunggal dalam satu baris / record dan tidak mengalami repeating groups.

B. FIRST NORMAL FORM ( 1NF )

Implementasi 1-NF dari table data yang belum ternormalisasi di atas adalah dengan cara mengeliminasi keberadaan repeating groups dan dekomposisi relasi menjadi dua atau lebih dengan syarat “tidak boleh ada informasi yang hilang karena proses dekomposisi” Adapun caranya adalah :

1. Membuat 3 tabel yang memiliki fungsi sebagai berikut :

  • TBFaktur, berfungsi untuk menyediakan atribut-atribut yang bersifat atomic dari tiap nomor faktur (ID_Faktur), seperti : Tanggal, Nama_Pelanggan, Total_Bayar, Diskon dan Nama_Petugas
  • TBProduk, berfungsi untuk menyediakan atribut-atribut yang berulang atau tidak bernilai tunggal pada tiap nomor faktur (ID_Faktur), seperti : Nama_Barang dan harga
  • TBTransaksiDetail, berfungsi sebagai penghubung antara nomor faktur (ID_Faktur) dengan kode barang (ID_Barang) agar proses dekomposisi tidak menyebabkan kerusakan informasi.

2. Menentukan type data dari tiap atribut dan membuat digram relasional sebagai berikut


3. Pada table TBTransaksiDetail terdapat atribut “Harga” yang berfungsi untuk menyimpan harga per transaksi, sedangkan atribut “Harga_Default” yang terdapat pada table TBProduk adalah atribut yang berfungsi untuk menyimpan harga barang terbaru dari tiap jenis barang.Hal ini berguna untuk mengantisipasi adanya perubahan harga dari waktu ke waktu.

4. Primary key yang digunakan pada TBTransaksiDetail adalah “ID_Transaksi”. Atribut kunci tersebut merupakan candidate key yang dibentuk dari superkey hasil penggabungan 2 atribut yaitu : ID_Faktur dan ID_Barang

C. SECOND NORMAL FORM ( 2NF )

Suatu relasi berada dalam 2nd normal form jika dan hanya jika:

o Berada dalam bentuk first normal form (1-NF)

o Semua atribut bukan kunci memiliki dependensi sepenuhnya dengan kunci primer (Primary Key)

Jika kita lihat kembali relasi bentuk 1-NF yang telah dibuat sebelumnya, maka atribut bukan kunci pada table TBFaktur yang tidak memiliki dependensi sepenuhnya dengan primary key (ID_Faktur), yaitu : “Nama_Petugas”. Oleh sebab itu dekomposisi relasi perlu dilakukan kembali dengan cara :

  1. Mengeliminasi atribut “Nama_Petugas” dari table TBFaktur
  2. Membuat tabel TBPetugas, menyediakan atribut-atribut yang terkait dengan identitas dan data pelanggan

THIRD NORMAL FORM ( 3NF )

Pada Second Normal Form (2-NF) atribut yang terkait dengan “Nama_Pelanggan” tidak didekomposisi dari table TBFaktur karena atribut tersebut masih memiliki dependensi fungsional dengan primary key (ID_Faktur) karena tiap nomor faktur akan berbeda untuk tiap pembeli/pelanggan. Tetapi pada tahap 3-NF (Third Normal Form), atribut “Nama_Pelanggan” harus didekomposisi relasi karena pada tahap ini atribut bukan kunci tidak boleh ada yang berdependensi transitif dengan kunci primer.

Atribut “Nama_Pelanggan” dikatakan berdependensi transitif terhadap primary key (ID_Faktur) karena :

  1. ID_Pelanggan → Nama_Pelanggan (Nama_Pelanggan berdependensi fungsional terhadap ID_Pelanggan)
  2. ID_Faktur → ID_Pelanggan (ID_Pelanggan berdependensi fungsional terhadap ID_Faktur, karena tiap nomor faktur akan dikeluarkan untuk suatu ID_Pelanggan tertentu)
  3. Sehingga dikatakan bahwa ID_Faktur memiliki dependensi transitif terhadap atribut Nama_Pelanggan

7 Responses to “normalisasi database”

  1. sangat membantu dalam kuliah perancangan data base saya.
    tanks,

  2. Dia rahmiaty Says:

    tlng boatin atu cnth database ternormalisasi tentang projek / tender dunkx. tentang pembangunan uga bleh.
    aq mcih rada bngung ne,

  3. Terimakasih🙂 sangat bermanfaat

  4. Makasih yah, add fb syahrul rakhim abhie… thx

  5. Klo tabel tidak normal untuk perancangan database data nilai siswa seperti apa ya contohnya…bagi yg tau kirim ke Email (yunniella@yahoo.com)
    makasiiiiiih….🙂

  6. wesly juntak Says:

    lumayan..

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: