Normalisasi dalam konteks Entity-Relationship Diagram (ERD) adalah proses perancangan basis data yang bertujuan untuk mengurangi redudansi dan ketergantungan data. Tujuan normalisasi adalah untuk mengorganisir struktur basis data sehingga data dapat disimpan dan diambil dengan efisien, menghindari anomali data seperti masalah update, insert, atau delete yang kompleks, dan memastikan keberlanjutan integritas data.
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut. ERD juga merupakan alat bantu untuk visualisasi pemodelan data. ERD berperan penting dalam melakukan pemodelan data logis. Seperti kita kita bersama, pemodelan data logis sangat penting dalam proses perancangan basis data. ERD juga sangat membantu dalam melakukan normalisasi data.
Anomali seringkali disebut juga dengan update anomaly, adalah efek samping yang tidak dikehendaki, yang
terjadi jika relasi tidak pada bentuk normal tertentu.
- Anomali penyisipan, terjadi ketika dilakukan penyisipan tuple pada suatu relasi. Biasanya terjadi karena nilai primary key tidak diketahui saat penyisipan
- Anomali penghapusan, terjadi sewaktu dilakukan penghapusan tuple dari relasi, padahal tuple tersebut mengandung sebagian informasi yang penting dan tidak boleh dihilangkan.
- Anomali pengubahan, terjadi karena adanya redundansi data. Ketika akan mengubah nilai data suatu atribut, maka seluruh pemunculan data tersebut harus ikut diubah.
Berikut adalah beberapa tingkatan normalisasi umum dan prinsip-prinsipnya:
- Normal Form Pertama (1NF): Memastikan bahwa setiap sel dalam tabel mengandung nilai atomik, yaitu tidak dapat dipecah lagi menjadi bagian yang lebih kecil. Ini menghilangkan duplikasi kolom.
- Normal Form Kedua (2NF): Memastikan bahwa setiap non-kunci di tabel bergantung sepenuhnya pada kunci utama. Ini mengurangi ketergantungan data sejauh mungkin.
- Normal Form Ketiga (3NF): Selain memenuhi kondisi 2NF, tidak ada dependensi transitif antara kolom non-kunci. Dependensi transitif terjadi ketika kolom non-kunci bergantung pada kolom non-kunci lainnya.
Ada juga tingkatan normalisasi yang lebih tinggi seperti Bentuk Normal Keempat (4NF), Bentuk Normal Kelima (5NF), dan seterusnya, yang mengatasi ketergantungan data yang lebih kompleks dan spesifik.
Penting untuk diingat bahwa normalisasi harus dilakukan dengan bijak, karena normalisasi yang berlebihan dapat menyebabkan kinerja sistem yang buruk dan kompleksitas yang sulit dikelola. Oleh karena itu, pengembang harus menimbang-nimbang antara mengurangi redundansi dan mempertahankan keterbacaan dan kinerja sistem.
Contoh beberapa tingkatan umum dalam normalisasi :
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.
No comments:
Post a Comment