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.