Rimba Store – Normalisasi database seperti 1NF, 2NF, 3NF adalah proses pengelompokan atribut data yang membentuk entitas sederhana, nonredundant, fleksibel, dan mudah beradaptasi. Sehingga dapat dipastikan bahwa database yang dibuat berkualitas baik.
Tujuan utama dari normalisasi database adalah:
- Menghilangkan dan mengurangi redudansi data.
- Memastikan dependensi data (data berada pada tabel yang tepat).
Jenis Anomali yang Dapat Terjadi
Jika sebuah database belum dinormalisasi, kemungkinan terburuk yang akan merugikan sistem adalah:
- INSERT Anomali: Situasi dimana tidak memungkinkan untuk memasukkan beberapa jenis data secara langsung di database.
- UPDATE Anomali: Situasi dimana nilai yang diubah mengakibatkan ketidakkonsistenan database, artinya data yang diubah tidak sesuai dengan yang diinginkan.
- DELETE Anomali: Penghapusan data tidak sesuai yang diharapkan, artinya data yang seharusnya tidak terhapus malah terhapus.
Cara dan Contoh Melakukan Normalisasi Database
Untuk melakukan normalisasi database, kita harus mengidentifikasi data seperti apa yang akan disimpan. Sebagai contoh, kita ambil contoh data struk penjualan.
Contoh Data Struk Penjualan
Kode Faktur | Tanggal | Nama Pelanggan | Kode Barang | Nama Barang | Qty | Harga |
---|---|---|---|---|---|---|
001 | 2022-01-01 | John Doe | 001 | Barang A | 2 | 10000 |
001 | 2022-01-01 | John Doe | 002 | Barang B | 1 | 5000 |
002 | 2022-01-02 | Jane Doe | 003 | Barang C | 3 | 20000 |
Normalisasi 1NF (First Normal Form)
Suatu tabel dikatakan 1NF jika dan hanya jika setiap atribut dari data tersebut hanya memiliki nilai tunggal dalam satu baris.
Kode Faktur | Tanggal | Nama Pelanggan | Kode Barang | Nama Barang | Qty | Harga |
---|---|---|---|---|---|---|
001 | 2022-01-01 | John Doe | 001 | Barang A | 2 | 10000 |
001 | 2022-01-01 | John Doe | 002 | Barang B | 1 | 5000 |
002 | 2022-01-02 | Jane Doe | 003 | Barang C | 3 | 20000 |
Normalisasi 2NF (Second Normal Form)
Syarat 2NF adalah tidak diperkenankan adanya partial “functional dependency” kepada primary key dalam sebuah tabel.
Kode Faktur | Tanggal | Nama Pelanggan |
---|---|---|
001 | 2022-01-01 | John Doe |
002 | 2022-01-02 | Jane Doe |
Kode Faktur | Kode Barang | Nama Barang | Qty | Harga |
---|---|---|---|---|
001 | 001 | Barang A | 2 | 10000 |
001 | 002 | Barang B | 1 | 5000 |
002 | 003 | Barang C | 3 | 20000 |
Normalisasi 3NF (Third Normal Form)
Pada 3NF tidak diperkenankan adanya partial “transitive dependency” dalam sebuah tabel.
Kode Faktur | Tanggal | Nama Pelanggan |
---|---|---|
001 | 2022-01-01 | John Doe |
002 | 2022-01-02 | Jane Doe |
Kode Barang | Nama Barang | Harga |
---|---|---|
001 | Barang A | 10000 |
002 | Barang B | 5000 |
003 | Barang C | 20000 |
Kode Faktur | Kode Barang | Qty | Harga |
---|---|---|---|
001 | 001 | 2 | 10000 |
001 | 002 | 1 | 5000 |
002 | 003 | 3 | 20000 |
Kesimpulan
Dalam kesimpulan, normalisasi database adalah proses pengelompokan atribut data yang membentuk entitas sederhana, nonredundant, fleksibel, dan mudah beradaptasi. Dengan melakukan normalisasi database, kita dapat menghilangkan dan mengurangi redudansi data, memastikan dependensi data, dan menghindari anomali yang dapat terjadi.