Apa itu Normalisasi dalam ERD?
Normalisasi dalam ERD (Entity-Relationship Diagram) adalah proses perancangan basis data yang digunakan untuk mengorganisasi data dalam sebuah database relasional. Tujuan normalisasi adalah untuk mengurangi duplikasi data, menghindari anomali data, dan memastikan bahwa basis data memiliki struktur yang efisien dan mudah dipelihara.
Normalisasi melibatkan pemecahan tabel-tabel dalam database ke dalam beberapa tabel yang lebih kecil, yang saling berhubungan melalui kunci asing. Ini membantu mengurangi redudansi data dan menghindari masalah seperti anomali update, delete, dan insert. Normalisasi juga membantu meminimalkan masalah ketidakkonsistenan data yang dapat muncul ketika data disimpan dalam struktur yang kurang terorganisir.
Proses normalisasi biasanya dilakukan dalam beberapa tahap, yang masing-masing diidentifikasi dengan bentuk normalisasi yang berbeda, seperti Normalisasi Tingkat Pertama (1NF), Normalisasi Tingkat Kedua (2NF), Normalisasi Tingkat Ketiga (3NF), dan seterusnya. Setiap tahap normalisasi memiliki aturan dan kriteria tertentu yang harus dipenuhi agar sebuah tabel dapat dianggap sudah ter-normalisasi pada tingkat tersebut.
Secara umum, normalisasi adalah bagian penting dari desain basis data yang baik dan membantu meningkatkan integritas data, efisiensi kueri, dan kemudahan pemeliharaan. Namun, terlalu banyak normalisasi juga bisa menghasilkan lebih banyak join tabel dalam kueri yang dapat mengurangi performa database, sehingga perlu ditemukan keseimbangan yang sesuai sesuai dengan kebutuhan aplikasi.
Tahap 1 Normalisasi (1NF):
- Buat tabel
Pelanggan
dengan atribut-atribut sepertiID Pelanggan
,Nama Pelanggan
, danAlamat Pelanggan
. - Buat tabel
Produk
dengan atribut-atribut sepertiID Produk
,Nama Produk
, danHarga Produk
. - Buat tabel
Pesanan
dengan atribut-atribut sepertiID Pesanan
,Tanggal Pesanan
,ID Pelanggan
, danID Produk
.
Tahap 2 Normalisasi (2NF):
- Pindahkan atribut
Tanggal Pesanan
dari tabelPesanan
ke tabel baru yang disebutDetail Pesanan
. TabelDetail Pesanan
akan memiliki atributID Pesanan
danID Produk
. Hal ini menghindari anomali update karena perubahan tanggal pesanan hanya perlu dilakukan di satu tempat. - Tambahkan atribut
Kuantitas
ke tabelDetail Pesanan
. Sekarang kita memiliki atributID Pesanan
,ID Produk
, danKuantitas
di tabel ini.
Tahap 3 Normalisasi (3NF):
- Pisahkan tabel
Pelanggan
menjadi dua tabel:Pelanggan
danAlamat Pelanggan
. TabelPelanggan
akan memiliki atributID Pelanggan
danNama Pelanggan
, sedangkan tabelAlamat Pelanggan
akan memiliki atributID Pelanggan
danAlamat Pelanggan
. Ini membantu menghindari anomali insert dan delete, dan mengurangi redudansi alamat pelanggan. - Pisahkan tabel
Produk
menjadi dua tabel:Produk
danDetail Produk
. TabelProduk
akan memiliki atributID Produk
danNama Produk
, sedangkan tabelDetail Produk
akan memiliki atributID Produk
danHarga Produk
. Ini menghindari anomali insert dan delete, dan mengurangi redudansi harga produk.