Normalisasi Database 1NF, 2NF, 3NF,BCNF dan 4NF

Pengertian Normalisasi

  • Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
  • Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

Tujuan Normalisasi

  • Untuk menghilang kerangkapan data
  • Untuk mengurangi kompleksitas
  • Untuk mempermudah pemodifikasian data

Tujuan normalisasi database adalah untuk menghilangkan dan mengurangi redudansi data dan tujuan yang kedua adalah memastikan dependensi data (Data berada pada tabel yang tepat).

Jika data dalam database tersebut belum di normalisasi maka akan terjadi 3 kemungkinan yang akan merugikan sistem secara keseluruhan.

  1. INSERT Anomali : Situasi dimana tidak memungkinkan memasukkan beberapa jenis data secara langsung di database.
  2. DELETE Anomali: Penghapusan data yang tidak sesuai dengan yang diharapkan, artinya data yang harusnya tidak terhapus mungkin ikut terhapus.
  3. UPDATE Anomali: Situasi dimana nilai yang diubah menyebabkan inkonsistensi database, dalam artian data yang diubah tidak sesuai dengan yang diperintahkan atau yang diinginkan.

Proses Normalisasi

  • Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
  • Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.

Pentingnya Normalisasi

Suatu rancangan database disebut buruk jika :

  • Data yang sama tersimpan di beberapa tempat
    (file atau record)
  • Ketidakmampuan untuk menghasilkan informasi
    tertentu
  • Terjadi kehilangan informasi
  • Terjadi adanya redudansi (pengulangan) atau duplikasi data sehingga memboroskan ruang penyimpanan dan menyulitkan saat proses updating data
  • Timbul adanya NULL VALUE.
  • Kehilangan informasi bisa terjadi bila pada waktu merancang database
    (melakukan proses dekomposisi yang keliru).
  • Bentuk normalisasi yang sering digunakan adalah 1st NF, 2nd NF, 3rd NF,
    dan BCNF.

Normalisasi Database

Normalisasi database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9 bentuk normalisasi yang ada yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun dalam prakteknya dalam dunia industri bentuk normalisasi ini yang paling sering digunakan ada sekitar 5 bentuk.

Normal Form

Data yang direkam dan dimasukkan secara mentah dalam suatu tabel pada bentuk ini sangat mungkin terjadi inkonsistensi dan anomali data

Contoh Normal Form

Contoh normal form

Pada bentuk ini ada beberapa ciri ciri yang penting, yang pertama adalah akan terjadi anomali dalam insert, update, dan delete. Hal ini menyebabkan beberapa fungsi DML dalam SQL tidak dapat berjalan dengan baik. Sebagai contoh jika ingin menghapus penerbit maka data judul buku akan ikut terhapus begitu juga jika ingin menghapus peminjam, maka data penerbit dan buku yang harusnya tidak terhapus akan ikut hilang.

Aturan Normalisasi  :

Aturan normalisasi dibagi menjadi bentuk normal berikut:

  1. First Normal Form
  2. Second Normal Form
  3. Third Normal Form
  4. BCNF
  5. Fourth Normal Form

1.First Normal Form (1NF)

Bentuk normal yang pertama atau 1NF mensyaratkan beberapa kondisi dalam sebuah database, berikut adalah fungsi dari bentuk normal pertama ini.

  • Menghilangkan duplikasi kolom dari tabel yang sama.
  • Buat tabel terpisah untuk masing-masing kelompok data terkait dan mengidentifikasi setiap baris dengan kolom yang unik (primary key).

Contoh Normalisasi Database 1NF

Normalisasi Database 1NF

Pada intinya bentuk normalisasi 1NF ini mengelompokkan beberapa tipe data atau kelompok data yang sejenis agar dapat dipisahkan sehingga anomali data dapat di atasi. Contoh adalah ketika kita ingin menghapus, mengupdate, atau menambahkan data peminjam, maka kita tidak bersinggungan dengan data buku atau data penerbit. Sehingga inkonsistensi data dapat mulai di jaga.

2.Second normal form (2NF)

Syarat untuk menerapkan normalisasi bentuk kedua ini adalah data telah dibentuk dalam 1NF, berikut adalah beberapa fungsi normalisasi 2NF.

  • Menghapus beberapa subset data yang ada pada tabel dan menempatkan mereka pada tabel terpisah.
  • Menciptakan hubungan antara tabel baru dan tabel lama dengan menciptakan foreign key.
  • Tidak ada atribut dalam tabel yang secara fungsional bergantung pada candidate key tabel tersebut.

Contoh normalisasi database bentuk 2NF

Contoh Normalisasi Database 2NF

Contoh di atas kita menggunakan tabel bantuan yaitu tabel transaksi, pada intinya bentu kedua ini adalah tidak boleh ada field yang berhubungan dengan field lainnya secara fungsional. Contoh Judul Buku tergantung dengan id_Buku sehingga dalam bentuk 2NF judul buku dapat di hilangkan karena telah memiliki tabel master tersendiri.

3.Third Normal Form (3NF)

Normalisasi database dalam bentuk 3NF bertujuan untuk menghilangkan seluruh atribut atau field yang tidak berhubungan dengan primary key. Dengan demikian tidak ada ketergantungan transitif pada setiap kandidat key. Syarat dari bentuk normal ketiga atau 3NF adalah :

  • Memenuhi semua persyaratan dari bentuk normal kedua.
  • Menghapus kolom yang tidak tergantung pada primary key.

Contoh Normalisasi Database Bentuk 3NF

Tidak semua kasus atau tabel dapat kita sesuaikan dengan berbagai bentuk normalisasi ini, untuk contoh 3NF kita akan mengambil contoh dari tabel order.

Normalisasi Database Bentuk 3NF

Pada tabel pertama di atas, apakah semua kolom sepenuhnya tergantung pada primary key? tentu tidak, hanya saja ada satu field yaitu total yang bergantung pada harga dan jumlah, total dapat dihasilkan dengan mengalikan harga dan jumlah. Bentuk 3NF dalam tabel di atas dapat dilakukan dengan membuang field Total.

Bentuk SQL

SELECT ORDERID, HARGA, JUMLAH, TOTAL
FROM ORDER

Menjadi

SELECT ORDERID, HARGA*JUMLAH AS TOTAL
FROM ORDER

4.BCNF Boyce–Codd normal form

Merupakan sebuah teknik normalisasi database yang sering disebut 3.5NF, memiliki hubungan yang sangat erat dengan bentuk 3NF. Pada dasarnya adalah untuk menghandle anomali dan overlooping yang tidak dapat di handle dalam bentuk 3NF. Normalisasi database bentuk ini tergantung dari kasus yang disediakan, tidak semua tabel wajib di normalisasi dalam bentuk BCNF.

Untuk tabel untuk memenuhi Bentuk Normal Boyce-Codd, harus memenuhi dua kondisi berikut:

  1. yaitu Table harus dalam Bentuk Normal Ketiga.
  2. Dan, untuk ketergantungan apa pun A → B, A harus menjadi super key.
    Poin kedua terdengar agak rumit, kan? Dengan kata sederhana, itu berarti, bahwa untuk ketergantungan A → B, A tidak dapat menjadi atribut non-prima, jika B adalah atribut utama.

Contoh nya seperti berikut :

Dibawah ini ada table mahasiswa dengan coloumnya yaitu student_id, subject and professor.

student_id subject professor
101 Java P.Java
101 C++ P.Cpp
102 Java P.Java2
103 C# P.Chash
104 Java P.Java

Mengapa tabel ini tidak ada di BCNF?
Pada tabel di atas, student_id, subject form primary key, yang berarti kolom subjek adalah atribut utama.

Tapi, ada satu lagi ketergantungan, profesor → subjek.

Dan sementara subjek adalah atribut utama, profesor adalah atribut non-utama, yang tidak diizinkan oleh BCNF.

Bagaimana cara membuat BCNF?

Untuk membuat relasi (tabel) BCNF, kitai akan menguraikan tabel ini menjadi dua tabel, tabel siswa dan tabel profesor.

Di bawah ini kami memiliki struktur untuk kedua tabel.

Table siswa

student_id p_id
101 1
101 2
and so on…

Table profesor

p_id professor subject
1 P.Java Java
2 P.Cpp C++
and so on…

Pada gambar di bawah ini, kami telah mencoba menjelaskan BCNF dalam hal relasi.

BCNF Normal Form

 

5.Fourth Normal Form (4NF)

Fourth Normal Form  muncul ketika Dependensi Multi-Nilai terjadi dalam relasi apa pun. Dalam tutorial ini kita akan belajar tentang Ketergantungan Multi-Nilai, bagaimana menghapusnya dan bagaimana membuat tabel apa pun memenuhi bentuk normal keempat.

Sebuah table dikatakan berada di dalam Bentuk Normal Keempat ketika,

1.Table dalam Bentuk Normal Boyce-Codd.

2. Table tidak memiliki Ketergantungan Multi-Nilai.

Apa itu Ketergantungan Multi Nilai?

Sebuah tabel dikatakan memiliki ketergantungan multi-nilai, jika kondisi berikut ini benar,

1.Untuk ketergantungan A → B, jika untuk satu nilai A, beberapa nilai B ada, maka tabel mungkin memiliki ketergantungan multi-nilai.

2.Juga, tabel harus memiliki setidaknya 3 kolom untuk memiliki ketergantungan multi-nilai.

3.Dan, untuk relasi R (A, B, C), jika ada ketergantungan multi-nilai antara, A dan B, maka B dan C harus independen satu sama lain.

Jika semua kondisi ini benar untuk setiap relasi (tabel), dikatakan memiliki ketergantungan multi-nilai.

Contoh nya seperti berikut :

Dibawah ini ada table jurusan dengan coloumnya yaitu s_id, mata_kuliah  dan  hobi.

s_id mata_kuliah hobi
1 Science Cricket
1 Maths Hockey
2 C# Cricket
2 Php Hockey

 

Seperti yang terlihat dalam tabel di atas, siswa dengan s_id 1 telah memilih dua mata_kuliah, Sains dan Matematika, dan memiliki dua hobi, Kriket dan Hoki. Kita harus memikirkan masalah apa yang bisa ditimbulkan? Nah dua catatan untuk siswa dengan s_id 1, akan menimbulkan dua catatan lagi, seperti yang ditunjukkan di bawah ini, karena untuk satu siswa, memiliki dua hobi, bersama dengan kedua mata_kuliah, hobi ini harus ditentukan secara spesifik.

s_id mata_kuliah hobi
1 Science Cricket
1 Maths Hockey
1 Science Hockey
1 Maths Cricket

Dan, pada tabel di atas, tidak ada hubungan antara kolom mata_kuliah dan hobi. Mereka independen satu sama lain.

Jadi ada ketergantungan multi-nilai, yang mengarah pada pengulangan data yang tidak perlu dan anomali lainnya juga.

Bagaimana cara membuat Fourth Normal Form?

Untuk membuat relasi di atas meratifikasi bentuk normal ke-4, kita dapat menguraikan tabel menjadi 2 tabel.

Table mata_kuliah

s_id mata_kuliah
1 Science
1 Maths
2 C#
2 Php

Table hobi,

s_id hobi
1 Cricket
1 Hockey
2 Cricket
2 Hockey

Sekarang hubungan ini memenuhi bentuk normal keempat.

Sebuah tabel juga dapat memiliki ketergantungan fungsional bersama dengan ketergantungan multi-nilai. Dalam hal ini, kolom yang bergantung secara fungsional dipindahkan dalam tabel terpisah dan kolom dependen bernilai banyak dipindahkan ke tabel terpisah.

Jika Anda mendesain database Anda dengan hati-hati, Anda dapat dengan mudah menghindari masalah ini.

Sumber diambil dari :

1. https://rifalfahrudin.wordpress.com/2015/09/27/normalisasi-database-1nf-2nf-3nf/

2. https://www.studytonight.com/dbms/fourth-normal-form.php

3. https://www.studytonight.com/dbms/boyce-codd-normal-form.php

 

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.