Apa itu Normalisasi pada ERD?

    Normalisasi adalah proses desain database yang bertujuan untuk mengurangi redundansi dan meningkatkan integritas data. Dalam konteks Entity-Relationship Diagram (ERD), normalisasi adalah  teknik pengorganisasian atribut dan hubungan antar entitas sehingga struktur database menjadi lebih efisien dan mudah dikelola. Tujuan normalisasi adalah untuk mengurangi duplikasi data, menghindari anomali data, dan memastikan database terstruktur secara efisien dan mudah dipelihara.

    Normalisasi melibatkan pembagian tabel dalam database menjadi beberapa tabel yang lebih kecil, yang terhubung satu sama lain melalui kunci asing. Hal ini membantu mengurangi redundansi data dan menghindari masalah seperti anomali Update, Delete, dan Insert. Normalisasi juga membantu meminimalkan masalah ketidakkonsistenan data yang dapat timbul ketika data disimpan dalam struktur yang kurang terorganisir.

    Proses normalisasi umumnya terdiri dari beberapa langkah yang dinyatakan dalam bentuk bentuk normal. Bentuk normal seringkali dibagi menjadi beberapa tingkatan, mulai dari bentuk normal rendah (disebut First Normal Form atau 1NF) hingga bentuk normal yang lebih tinggi (seperti Third Normal Form atau 3NF).

    Secara umum, Normalisasi adalah bagian penting dari desain database yang baik dan membantu meningkatkan integritas data, efisiensi kueri, dan  pemeliharaan. Namun,  normalisasi yang berlebihan juga dapat mengakibatkan lebih banyak tabel yang berpartisipasi dalam kueri, sehingga dapat mengurangi performa database. Oleh karena itu, perlu dicari keseimbangan yang tepat sesuai dengan kebutuhan aplikasi.

Adapun contoh Normalisasi:

   Misalkan kita mempunyai database toko buku yang menyimpan informasi tentang penulis, buku, dan penerbit. Pertama, kita mungkin mempunyai tabel yang menyimpan informasi tentang sebuah buku, seperti judul buku, nama penulis, dan nama penerbit. Contoh tabel ini mungkin terlihat seperti ini: 

  • Tabel Buku (ID_Buku, Judul_Buku, Nama_Penulis, Nama_Penerbit)

   Namun, hal ini mungkin tidak akan berhasil karena ada beberapa buku yang ditulis oleh penulis yang sama atau diterbitkan oleh penerbit yang sama. Jadi kita ingin menghindari redundansi dan mengatur data dengan lebih baik.

Kita bisa mulai dengan memisahkan entitas entitas ini menjadi beberapa tabel. Misalnya:

  • Tabel Penulis (ID_Penulis, Nama_Penulis)
  • Tabel Penerbit (ID_Penerbit, Nama_Penerbit)
  • Tabel Buku (ID_Buku, Judul_Buku, ID_Penulis, ID_Penerbit)
    Dengan pendekatan ini diperoleh bentuk normal pertama (1NF) karena setiap fitur berbentuk tabel dengan sifat-sifat yang tidak dapat dibagi lagi. Selain itu, kami menghindari redundansi data dengan menghubungkan tabel Buku ke tabel Penulis dan Penerbit melalui kunci asing (ID_Penulis dan ID_Penerbit). Ini adalah langkah pertama dalam proses Normalisasi.

    Kemudian kalian dapat melakukan Normalisasi lebih lanjut (ke 2NF, 3NF, dll) sesuai  aturan dan kriteria yang berlaku. Setiap tingkat Normalisasi akan mengarah pada desain database yang semakin terstruktur dan efisien.

Berikut adalah beberapa tingkatan Normalisasi umum:

  1. First Normal Form (1NF): Setiap kolom dalam tabel harus berisi data atomik (tidak dapat dipecah lebih lanjut), dan setiap baris harus unik.
  2. Second Normal Form (2NF): Tabel sudah dalam 1NF, dan setiap kolom non-kunci sepenuhnya tergantung pada kunci utama. Ini mengatasi masalah dependensi parsial.
  3. Third Normal Form (3NF): Tabel sudah dalam 2NF, dan tidak ada dependensi transitif dari kunci utama. Artinya, kolom non-kunci tidak boleh bergantung pada kolom non-kunci lainnya.
  4. Boyce-Codd Normal Form (BCNF): Sejenis dengan 3NF, tetapi dengan kondisi tambahan yang ketat untuk menangani kasus-kasus tertentu.
  5. Fourth Normal Form (4NF) dan seterusnya: Bentuk-bentuk normal lebih tinggi yang menangani ketergantungan multivalued, ketergantungan join, dan aspek-aspek lainnya.

    Normalisasi membantu mengoptimalkan desain database untuk menghindari redundansi data yang tidak perlu, meningkatkan integritas data, dan mempermudah pengelolaan dan pemeliharaan database. Namun, normalisasi juga dapat membuat lebih banyak tabel, sehingga memerlukan penggabungan tabel (JOIN) saat melakukan kueri. Oleh karena itu, perlu mempertimbangkan trade-off antara normalisasi dan kinerja database.

Dalam rangka memenuhi Tugas Mata Kuliah Basis Data yang diampu oleh Bapak Adi Rizky Pratama M.Kom.




Komentar

Postingan populer dari blog ini

Apa itu attribute, entitas dan relasi dalam ERD

Memahami tentang apa itu primary key, foreign key, dan candidate key dan contoh penerapannya

Apa itu Denormalisasi?