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
Pelanggandengan atribut-atribut sepertiID Pelanggan,Nama Pelanggan, danAlamat Pelanggan. - Buat tabel
Produkdengan atribut-atribut sepertiID Produk,Nama Produk, danHarga Produk. - Buat tabel
Pesanandengan atribut-atribut sepertiID Pesanan,Tanggal Pesanan,ID Pelanggan, danID Produk.
Tahap 2 Normalisasi (2NF):
- Pindahkan atribut
Tanggal Pesanandari tabelPesananke tabel baru yang disebutDetail Pesanan. TabelDetail Pesananakan memiliki atributID PesanandanID Produk. Hal ini menghindari anomali update karena perubahan tanggal pesanan hanya perlu dilakukan di satu tempat. - Tambahkan atribut
Kuantitaske tabelDetail Pesanan. Sekarang kita memiliki atributID Pesanan,ID Produk, danKuantitasdi tabel ini.
Tahap 3 Normalisasi (3NF):
- Pisahkan tabel
Pelangganmenjadi dua tabel:PelanggandanAlamat Pelanggan. TabelPelangganakan memiliki atributID PelanggandanNama Pelanggan, sedangkan tabelAlamat Pelangganakan memiliki atributID PelanggandanAlamat Pelanggan. Ini membantu menghindari anomali insert dan delete, dan mengurangi redudansi alamat pelanggan. - Pisahkan tabel
Produkmenjadi dua tabel:ProdukdanDetail Produk. TabelProdukakan memiliki atributID ProdukdanNama Produk, sedangkan tabelDetail Produkakan memiliki atributID ProdukdanHarga Produk. Ini menghindari anomali insert dan delete, dan mengurangi redudansi harga produk.
No comments:
Post a Comment