Normalisasi Database

By Rizky Kurniawan - January 7, 2023 ~6 mins read

RUANGDEVELOPER.com - Halo semuanya, selamat datang kembali di Ruang Developer Blog. Jika sebelumnya kita sudah membahas tentang SQL vs NoSQL Database, kali ini kita akan lanjut untuk membahas tentang database yaitu normalisasi database. Apa itu normalisasi database? Yuk kita mulai!

Normalisasi Database

Normalisasi database adalah proses mengatur struktur tabel database dengan tujuan untuk menghindari redundansi dan meningkatkan integritas data. Ini dilakukan dengan mengelompokkan data ke dalam tabel yang lebih kecil dan lebih ternormalisasi, yang kemudian dihubungkan melalui relasi. Ada beberapa tingkatan normalisasi, mulai dari tingkat pertama (1NF) hingga tingkat kelima (5NF). Normalisasi database sangat penting karena membantu menjamin integritas data, memudahkan pemeliharaan dan pembaruan data, serta meningkatkan kinerja sistem.

Normalisasi Tingkat 1NF

Tingkat pertama normalisasi database (1NF) adalah tingkat dasar normalisasi yang harus dipenuhi oleh suatu database. Berikut adalah contoh tabel sebelum dan sesudah diubah menjadi 1NF:

Contoh sebelum diubah menjadi 1NF:

Nama Alamat No. Telp
John Jl. Kebon Sirih No. 10 08123456789
Jane Jl. Merdeka No. 20 08987654321

Contoh sesudah diubah menjadi 1NF:

Tabel 1:

Nama No. Telp
John 08123456789
Jane 08987654321

Tabel 2:

Nama Alamat
John Jl. Kebon Sirih No. 10
Jane Jl. Merdeka No. 20

Setelah diubah menjadi 1NF, masing-masing tabel hanya memiliki satu atribut yang unik dan tidak terdapat atribut yang bersifat multivalued. Selain itu, setiap atribut harus terikat pada entitas yang sesuai, yaitu entitas “orang” pada contoh di atas. Dengan demikian, database tersebut sudah memenuhi tingkat pertama normalisasi.

Normalisasi Tingkat 2NF

Tingkat kedua normalisasi database (2NF) mengharuskan suatu tabel untuk memenuhi tingkat pertama normalisasi (1NF) dan memiliki setiap atribut non-kunci terikat pada kunci utama tabel tersebut. Berikut adalah contoh tabel sebelum dan sesudah diubah menjadi 2NF:

Contoh sebelum diubah menjadi 2NF:

Nama Alamat No. Telp Kota
John Jl. Kebon Sirih No. 10 08123456789 Jakarta
Jane Jl. Merdeka No. 20 08987654321 Bandung

Contoh sesudah diubah menjadi 2NF:

Tabel 1:

Nama No. Telp Kota
John 08123456789 Jakarta
Jane 08987654321 Bandung

Tabel 2:

Nama Alamat
John Jl. Kebon Sirih No. 10
Jane Jl. Merdeka No. 20

Setelah diubah menjadi 2NF, setiap atribut non-kunci terikat pada kunci utama tabel tersebut. Dalam contoh di atas, atribut “Alamat” adalah atribut non-kunci yang terikat pada kunci utama tabel 2, yaitu “Nama”. Dengan demikian, database tersebut sudah memenuhi tingkat kedua normalisasi.

Normalisasi Tingkat 3NF

Tingkat ketiga normalisasi database (3NF) mengharuskan suatu tabel untuk memenuhi tingkat kedua normalisasi (2NF) dan tidak ada atribut yang tidak terikat secara langsung pada kunci utama tabel tersebut. Berikut adalah contoh tabel sebelum dan sesudah diubah menjadi 3NF:

Contoh sebelum diubah menjadi 3NF:

Nama Alamat No. Telp Kota Provinsi
John Jl. Kebon Sirih No. 10 08123456789 Jakarta DKI Jakarta
Jane Jl. Merdeka No. 20 08987654321 Bandung Jawa Barat

Contoh sesudah diubah menjadi 3NF:

Tabel 1:

Nama No. Telp Kota
John 08123456789 Jakarta
Jane 08987654321 Bandung

Tabel 2:

Kota Provinsi
Jakarta DKI Jakarta
Bandung Jawa Barat

Tabel 3:

Nama Alamat
John Jl. Kebon Sirih No. 10
Jane Jl. Merdeka No. 20

Setelah diubah menjadi 3NF, tidak ada atribut yang tidak terikat secara langsung pada kunci utama tabel tersebut. Dalam contoh di atas, atribut “Provinsi” tidak terikat secara langsung pada kunci utama tabel 1, yaitu “Nama”. Oleh karena itu, atribut tersebut dipindahkan ke tabel baru yang memiliki kunci utama “Kota”. Dengan demikian, database tersebut sudah memenuhi tingkat ketiga normalisasi.

Normalisasi Tingkat 4NF

Tingkat keempat normalisasi database (4NF) adalah tingkat normalisasi yang lebih tinggi daripada tingkat ketiga (3NF). Tingkat 4NF mengharuskan suatu tabel untuk memenuhi tingkat ketiga normalisasi (3NF) dan tidak ada atribut multivalued yang tidak terikat secara langsung pada kunci utama tabel tersebut. Jika suatu tabel memenuhi tingkat 4NF, maka tabel tersebut tidak akan memiliki atribut multivalued yang tidak terikat secara langsung pada kunci utama tabel tersebut.

Contoh tabel sebelum dan sesudah diubah menjadi 4NF:

Contoh sebelum diubah menjadi 4NF:

Nama Alamat No. Telp Kota Provinsi
John Jl. Kebon Sirih No. 10 08123456789 Jakarta DKI Jakarta
John Jl. Merdeka No. 20 08987654321 Jakarta DKI Jakarta
Jane Jl. Merdeka No. 20 08123456789, 08987654321 Bandung Jawa Barat

Contoh sesudah diubah menjadi 4NF:

Tabel 1:

Nama No. Telp Kota
John 08123456789 Jakarta
John 08987654321 Jakarta
Jane 08123456789, 08987654321 Bandung

Tabel 2:

Kota Provinsi
Jakarta DKI Jakarta
Bandung Jawa Barat

Tabel 3:

Nama Alamat No. Telp
John Jl. Kebon Sirih No. 10 08123456789
John Jl. Merdeka No. 20 08987654321
Jane Jl. Merdeka No. 20 08123456789, 08987654321

Setelah diubah menjadi 4NF, tidak ada atribut multivalued yang tidak terikat secara langsung pada kunci utama tabel tersebut. Dalam contoh di atas, atribut “No. Telp” merupakan atribut multivalued yang tidak terikat secara langsung pada kunci utama tabel 1, yaitu “Nama”. Oleh karena itu, atribut tersebut dipindahkan ke tabel baru yang memiliki kunci utama “Nama” dan “Alamat”. Dengan demikian, database tersebut sudah memenuhi tingkat keempat normalisasi.

Normalisasi Tingkat 5NF

Tingkat kelima normalisasi database (5NF) adalah tingkat normalisasi yang lebih tinggi daripada tingkat keempat (4NF). Tingkat 5NF mengharuskan suatu tabel untuk memenuhi tingkat keempat normalisasi (4NF) dan tidak ada dependensi fungsional tersembunyi di dalam tabel tersebut. Jika suatu tabel memenuhi tingkat 5NF, maka tabel tersebut tidak akan memiliki dependensi fungsional tersembunyi di dalamnya.

Contoh tabel sebelum dan sesudah diubah menjadi 5NF:

Contoh sebelum diubah menjadi 5NF:

Nama Alamat No. Telp Kota Provinsi
John Jl. Kebon Sirih No. 10 08123456789 Jakarta DKI Jakarta
Jane Jl. Merdeka No. 20 08987654321 Bandung Jawa Barat
Jane Jl. Merdeka No. 20 08123456789, 08987654321 Bandung Jawa Barat

Contoh sesudah diubah menjadi 5NF:

Tabel 1:

Nama No. Telp Kota
John 08123456789 Jakarta
Jane 08987654321 Bandung
Jane 08123456789, 08987654321 Bandung

Tabel 2:

Kota Provinsi
Jakarta DKI Jakarta
Bandung Jawa Barat

Tabel 3:

Nama Alamat
John Jl. Kebon Sirih No. 10
Jane Jl. Merdeka No. 20

Setelah diubah menjadi 5NF, tidak ada dependensi fungsional tersembunyi di dalam tabel tersebut. Dalam contoh di atas, atribut “Alamat” tergantung pada atribut “Nama”, sehingga tidak ada dependensi fungsional tersembunyi. Dengan demikian, database tersebut sudah memenuhi tingkat kelima normalisasi.

Perlu dicatat bahwa tingkat kelima normalisasi (5NF) adalah tingkat normalisasi terakhir yang umumnya diterapkan dalam database. Tingkat normalisasi di atas tingkat kelima (5NF) jarang diterapkan dalam praktik sehari-hari karena biasanya sudah cukup memenuhi kebutuhan database.

Apakah Normalisasi Berlaku Untuk NoSQL Database?

Normalisasi database merupakan suatu teknik yang diterapkan dalam sistem manajemen database relasional (RDBMS). NoSQL database merupakan jenis database yang tidak menggunakan sistem manajemen database relasional, sehingga tidak memerlukan teknik normalisasi database. Namun, meskipun NoSQL database tidak memerlukan teknik normalisasi database, terdapat beberapa prinsip yang dapat diterapkan dalam mengelola data di NoSQL database agar data tetap terorganisir dengan baik dan mudah diakses.

Kesimpulan

Normalisasi database adalah proses mengatur struktur tabel database dengan tujuan untuk menghindari redundansi dan meningkatkan integritas data. Normalisasi database terdiri dari beberapa tingkatan, mulai dari tingkat pertama (1NF) hingga tingkat kelima (5NF).

Tingkat pertama normalisasi (1NF) mengharuskan setiap tabel hanya memiliki satu atribut yang unik dan tidak terdapat atribut yang bersifat multivalued. Setiap atribut harus terikat pada entitas yang sesuai.

Tingkat kedua normalisasi (2NF) mengharuskan setiap tabel memenuhi tingkat pertama normalisasi (1NF) dan memiliki setiap atribut non-kunci terikat pada kunci utama tabel tersebut.

Tingkat ketiga normalisasi (3NF) mengharuskan setiap tabel memenuhi tingkat kedua normalisasi (2NF) dan tidak ada atribut yang tidak terikat secara langsung pada kunci utama tabel tersebut.

Tingkat keempat normalisasi (4NF) mengharuskan setiap tabel memenuhi tingkat ketiga normalisasi (3NF) dan tidak ada atribut multivalued yang tidak terikat secara langsung pada kunci utama tabel tersebut.

Tingkat kelima normalisasi (5NF) mengharuskan setiap tabel memenuhi tingkat keempat normalisasi (4NF) dan tidak ada dependensi fungsional tersembunyi di dalam tabel tersebut.

Normalisasi database sangat penting karena membantu menjamin integritas data, memudahkan pemeliharaan dan pembaruan data, serta meningkatkan kinerja sistem. Tingkat normalisasi di atas tingkat kelima (5NF) jarang diterapkan dalam praktik sehari-hari karena biasanya sudah cukup memenuhi kebutuhan database.

NoSQL database merupakan jenis database yang tidak menggunakan sistem manajemen database relasional, sehingga tidak memerlukan teknik normalisasi database.

Ingin Berdiskusi?

Yuk bergabung di Grup Telegram Ruang Developer atau mulai diskusi melalui GitHub. See You!

Dapatkan contoh source code project backend, frontend, atau fullstack untuk kamu amati, tiru, dan modifikasi sesuka hati. Klik untuk melihat detail!
comments powered by Disqus

Berlangganan Gratis

Kamu akan menerima email update dari Ruang Developer

Beri Dukungan

Beri dukungan, dapatkan full source code project web untuk bahan referensi, tiru, dan modifikasi.
Lightbox