Apa itu Normalisasi Database ?

Normalisasi database bagi saya merupakan suatu bentuk pengaplikasian / cara dalam memetakan suatu informasi data menjadi beberapa bagian / entitas agar menjadi lebih mudah dalam pengelolaan data.

Hubungan tiap entitas tersebutlah yang dimaksud sebagai sebuah normalisasi, biasanya normalisasi database terbagi menjadi beberapa tingkatan bergantung dengan seberapa kompleksnya data tersebut, seperti bentuk normalisasi pertama (1NF) , normalisasi kedua (2NF), 3NF dan BCNF. Sebelum melangkah lebih jauh, saya ingin menjelaskan bahwa dalam konteks RDBMS istilah-istilah normalisasi tersebut merujuk kepada:

  • Entitas , yakni sebuah table, hubungan antar entitas berarti hubungan antara tiap table
  • Atribut, yakni kelengkapan sebuah table, dalam database hal ini berarti adalah sebuah field yang tentu saja beragam
  • Identifier, yakni atribut pengidentifikasian setiap entitas, dalam Bahasa mudahnya kita mengenalnya sebagai ID
  • Relasi/Hubungan tiap table yang menjadi sebuah nilai foreign key

Oke langsung saja pada prakteknya (dalam hal ini saya menggunakan database MySQL) kita memiliki sebuah data sebagai berikut :

Data diatas masih berupa bentuk Normal Data, yang tentunya dapat membuat fungsi DML (Data Manipulation Language) tidak berjalan sempurna, karena adanya redudansi/duplikasi data. Sehingga misalkan saya ingin mengubah salah satu buku berdasakan jenis buku IT, maka ada 2 row yang akan terupdate.

Bentuk 1NF (First Normal Form)

Sehingga kita perlu mengubahnya dalam bentuk 1NF (First Normal Form), yakni memetakan data redudansi tersebut menjadi beberapa entitas. Berikut hasil 1NF nya :

Table Normalisasi Database - 1NF

 

Dapat kita lihat data normal form sebelumnya dapat kita pecah menjadi 3 entitas baru beserta atributnya. Dan perlu diperhatikan bahwa setiap entitas memiliki identifier / ID masing, masing sehingga menghindarkan lagi terjadinya redudancy data.

Bentuk 2NF (Second Normal Form)

Jika data sudah bisa dibentuk dalam bentuk 1NF, jika kita perlu melakukan hubungan/relasi antara entitas tersebut, (pada contoh nyata : membuat table transaksi untuk menyimpan order) nah bentuk 2NF ini sudah mengakomodir hal tersebut berdasarkan identifier dari masing-masing entitas. Lihat table 2NF nya sebagai berikut :

contoh Table Normalisasi database 2NF

Bentuk 3NF (Third Normal Form)

Bentuk ini adalah pengembangan dari 2NF, Hal ini yakni dengan membuang field/atribut yang tidak bergantung pada identifier / Primary key ID. Itu artinya kita masih bisa menambahkan field jika itu sesuai/berhubungan dengan primary key  Misalkan sebagai berikut :

Demikian penjelasan singkat tentang normalisasi sampai bentuk 3 tingkat, insya allah di trit saya berikutnya saya akan menjelaskan lebih detail. Okay

by: adji hendrawan