Selasa, 22 Desember 2015

Normalisasi Database dan Contohnya

Tags

Normalisasi, teori ini pertama kali ditemukan oleh Dr. Codd kira-kira sekitar tahun 1970-an. Dengan teori normalisasi kita dapat meminimalisir terjadinya kesalahan dalam mendesain sebuah database. Semakin baik desain struktur sebuah database, maka semakin kecil pula kemungkinan terjadinya kesalahan-kesalahan seperti redudansi data dan anomali.

Adapun jenis normalisasi database diantaranya, yaitu:

  • Normalisi Pertama
  • Normalisasi Kedua
  • Normalisasi Ketiga
  • Normalisasi Boyce Codd
  • Normalisasi Keempat
  • Normalisasi Kelima

Dari jenis normalisasi database di atas biasanya sampai proses normalisasi ketiga pun sudah cukup. Oleh karena itu pada artikel ini saya hanya membahas sampai normalisasi ketiga saja.


Normalisasi Database


Di bawah ini adalah contoh tabel yang masih dalam bentuk tidak normal.

normalisasi database
Tabel 1.1

Dari contoh tabel di atas, apabila kita mencoba menyimpannya ke dalam database, maka akan terlihat seperti tabel di bawah ini.

contoh normalisasi database
Tabel 1.2

Dari tabel 1.2 terdapat beberapa kolom yang datanya kosong (NULL), itu karena ada dua orang karyawan (Haniif Fii Sabiilillah dan Andri Setiawan) yang bekerja pada dua perusahaan.

Untuk mengatasi beberapa kolom yang datanya kosong, mari kita coba satukan saja data perusahaan pada dua orang karyawan tersebut, maka akan terlihat seperti tabel di bawah ini.

proses normalisasi
Tabel 1.3

Permasalahan data kosong (NULL) sudah teratasi, akan tetapi menyebabkan permasalahan baru, yaitu pada kolom kode_perusahaan, nama_perusahaan, kategori_perusahaan dan deskripsi_perusahaan. Yang mana pada kolom tersebut bukan hanya menyimpan nilai satu buah data saja, tetapi berisi beberapa data atau yang dikenal juga dengan sebutan group berulang. Tentunya hal ini tidak baik dalam sebuah desain database, karena idealnya sebuah kolom hanya berisi satu buah nilai saja, bukan beberapa nilai.

Nah, untuk mengatasi permasalahan-permasalahan desain database di atas kita dapat menggunakan normalisasi.


1. Normalisasi Pertama


Sebuah tabel supaya dapat menjadi sebuah bentuk normalisasi pertama, apabila memenuhi syarat berikut ini.

  • Tidak terdapat group berulang.
  • Harus mendefinisikan sebuah key (kunci) pada sebuah kolom.
  • Semua kolom yang ada atau bukan kolom primary key harus bergantung pada kolom primary key (kunci utama).

Silahkan perhatikan kembali tabel 1.3, kita akan ubah struktur desain yang ada di dalamnya supaya memenuhi syarat dari normalisasi pertama.

Untuk mengatasi group berulang kita akan membuatkan record baru, maka akan terlihat seperti tabel di bawah ini.

normalisasi pertama
Tabel 1.4

Untuk permasalahan group berulang sudah terselesaikan. Syarat selanjutnya adalah harus mendefinisakan sebuah key. Nah, kira-kira kolom mana yang cocok untuk dijadikan primary key (kunci utama)?. Ya, kolom yang cocok untuk dijadikan primary key adalah kolom nik, karena hampir semua kolom yang ada pada tabel di atas bergantung terhadap kolom ini dibandingkan dengan kolom lainnya seperti kode_perusahaan, karena hanya beberapa kolom yang bergantung kepada kolom ini seperti nama_perusahaan, kategori perusahaan dan deskripsi_perusahaan. Sedangkan kolom lainnya seperti nama, alamat dan kota tidak bergantung pada kolom ini.

Namun, dari struktur di atas masih belum bisa dikatakan struktur database yang baik, karena masih memiliki permasalahan seperti masih banyak terjadi redudansi data dan memungkinkan banyak terjadinya anomali.


2. Normalisasi Kedua


Sebuah tabel supaya dapat menjadi sebuah bentuk normalisasi kedua, apabila memenuhi syarat di bawah ini.

  • Sudah memenuhi syarat dari normalisasi pertama.
  • Tidak boleh terdapat ketergantungan parsial, maksudnya kolom-kolom yang bukan key (kunci) harus bergantung sepenuhnya kepada kolom primary key.

Silahkan perhatikan tabel 1.4, pada tabel tersebut terdapat ketergantungan parsial di mana kolom nama_perusahaan, kategori_perusahaan dan deskripsi_perusahaan tidak sepenuhnya bergantung pada kolom nik, tetapi memiliki ketergantungan juga pada kolom kode_perusahaan. Agar syarat dari normalisasi kedua ini terpenuhi, maka kita harus memecah tabel di atas menjadi beberapa bagian.

normalisasi kedua
Tabel 1.5

Pada tabel 1.5 sudah tidak terdapat ketergantungan parsial. Dengan struktur seperti itu kita telah meminimalisir terjadinya redudansi data. Redudansi data hanya terjadi pada tabel pekerjaan.


3. Normalisasi Ketiga


Sebuah tabel supaya dapat menjadi sebuah bentuk normalisasi ketiga, apabila memenuhi syarat di bawah ini.

  • Sudah memenuhi syarat pada normalisasi kedua.
  • Tidak boleh terdapat ketergantungan transitif, maksudnya kolom-kolom yang bukan key (kunci) tidak boleh bergantung pada kolom yang bukan primary key.

Silahkan perhatikan tabel 1.5, pada tabel tersebut tepatnya pada tabel perusahaan terdapat ketergantungan transitif di mana kolom deskripsi_perusahaan sangat bergantung pada kolom kategori_perusahaan, yang mana kolom ini bukan primary key (kunci utama). Agar syarat dari normalisaasi ketiga ini terpenuhi, maka kita harus memecah tabel perusahaan menjadi beberapa bagian.

normalisasi ketiga
Tabel 1.6

Dari proses normalisasi di atas, kita dapat menarik kesimpulan bahwa tujuannya adalah untuk meminimalisir terjadinya ketergantungan terhadap sebuah kolom dalam sebuah tabel seperti ketergantungan parsial dan ketergantungan transitif. Idealnya sebuah tabel hanya memiliki ketergantungan pada sebuah kolom yang merupakan primary key (kunci utama).

Saya rasa cukup, semoga penjelasan mengenai normalisasi database yang dilengkapi dengan contohnya di atas dapat menambah wawasan untuk Anda. Terimakasih.

Kata kunci pencarian:

  • normalisasi
  • normalisasi database
  • contoh normalisasi database
  • jenis normalisasi
  • normalisasi pertama
  • normalisasi kedua
  • normalisasi ketiga

Artikel Terkait

Tambahkan komentar Anda
EmoticonEmoticon