Skip to main content

Normalisasi, Denormalisasi, dan Anomali Database

Normalisasi adalah proses mengorganisasi data yang ada di sebuah tabel dan field yang ada di dalamnya dengan tujuan mengurangi pengulangan dan memperbaiki integritas data. Pengulangan data pada sebuah tabel akan memakan banyak memori penyimpanan dan menyulitkan pengguna mengelola databasenya. Integritas data berhubungan dengan keakuratan dan konsistensi sebuah database.
Gambar 1. Melakukan bentuk normal ketiga pada tblBioDataSebelum3NF, kolom PTKP  (Keterangan)
Ada beberapa tahapan normalisasi. Setiap tahap merupakan prasyarat dari tahap selanjutnya. Tahap pertama sampai ketiga adalah tahapan yang paling mudah dipahami, diaplikasikan, dan umumnya dipandang mencukupi pada sebagian besar aplikasi database. Meskipun normalisasi pada tahap yang lebih tinggi dimungkinkan, tetapi tahapan ini cenderung jarang digunakan, kecuali oleh perancang database yang benar-benar lihai dan profesional. Berikut ini tahap normalisasi database:
  1. Bentuk Normal Pertama atau First Normal Form (1NF)
  2. Bentuk Normal Kedua atau Second Normal Form (2NF)
  3. Bentuk Normal Ketiga atau Third Normal Form (3NF)
Bentuk normal pertama atau first normal form (1NF) adalah syarat yang harus ada dalam sebuah database supaya bekerja dengan efisien. Untuk bentuk normal kedua atau second normal form (2NF) dan bentuk normal ketiga atau third normal form (3NF), bergantung pada situasi, bisa ada, tetapi bisa juga tidak ada, Untuk penjelasan lebih detail, silakan baca di posting yang tersedia di link di atas.

Denormalization

Walaupun normalisasi adalah hal yang umum diterapkan dalam mengelola database secara efisien dan terintegrasi, ada kalanya kita tidak melakukan hal ini. Dengan kata lain, kita melakukan denormalisasi atau tidak menormalkan tabel.

Kita dapat melakukan denormalisasi pada sebuah tabel jika penggunaan formula dalam perhitungan yang melibatkan banyak field dalam tabel terlihat rumit dan proses pemuatan data menjadi lambat. Bila hal ini terjadi, maka solusi terbaik adalah dengan menyimpan hasil perhitungan pada sebuah field di tabel. Cara ini juga dilakukan bila komputer pengguna terasa lambat karena keterbatasan kapasitas memori pemrosesan. Dengan menyimpan data hasil perhitungan langsung ke dalam sebuah field, saat memuat data untuk ditampilkan di layar, komputer akan dengan cepat memproses data itu. Contoh paling jelas adalah proses perhitungan pajak PPH21. Perhitungan pajak PPH21 bila dilakukan menggunakan formula yang ditaruh pada sebuah field akan memakan waktu lama. Jadi, menyimpan hasil perhitungan pajak langsung ke sebuah field adalah solusi yang paling pas.

Selain lambatnya proses pemuatan data, kita juga bisa melakukan denormalisasi pada tabel karena ingin tetap mempertahankan catatan historis yang ada di database agar isinya tetap sama dengan dokumen yang tercetak. Sebagai contoh, penerbitan bukti potong PPH21 pegawai yang disimpan dalam sebuah tabel. Bukti potong PPH21 atau yang lebih dikenal dengan SPT 1721 A1 umumnya disimpan dalam sebuah tabel tersendiri. SPT 1721 A1 ini berisi rincian data gaji, bonus, THR, pajak yang telah dipotong selama satu periode pajak. Rincian data gaji itu sendiri diambil dari data gaji bulanan. Bagian akuntansi/keuangan/HRD pasti menyimpan data historis, baik dalam bentuk softcopy maupun cetakan, selama beberapa tahun yang lalu, yang mungkin bisa dicetak ulang untuk keperluan audit.

Hal yang penting untuk diketahui, denormalisasi ini biasanya melibatkan penulisan kode program yang lumayan kompleks dan membutuhkan waktu dalam menuliskannya. Dalam penulisan kode program ini, kita harus mempertahankan integritas data tetap terjaga baik pada saat data ditambahkan, diperbarui, atau pun dihapus. Oleh karena itu, bila ingin melakukan denormalisasi data, kita harus memastikan bahwa tabel yang dirancang tidak menimbulkan masalah di kelak kemudian hari. Selain itu, kita juga tidak diperbolehkan untuk melakukan pengaktualan data secara langsung melalui tabel. Pengaktualan data dilakukan dengan menggunakan form sebagai antarmuka pengguna.

Terakhir, jangan lupa untuk mendokumentasikan rancangan tabel yang di-denormalisasi. Tujuannya, supaya pengguna lain dapat memahami latar belakang atau alasan mengapa sebuah tabel di denormalisasi.
Gambar 2 Ada tiga macam anomali yang terjadi pada tabel tblAnomali di atas, yaitu insertion, deletion, dan update

Anomaly database

Anomali database adalah masalah yang timbul karena database dikelola dengan tidak rapi. Umumnya, anomali database terjadi pada data yang disimpan dalam satu tabel tunggal, tidak dipecah menjadi beberapa tabel. Ada beberapa jenis anomali database:
  1. Insertion anomaly: masalah ini muncul saat sebuah record tidak bisa ditambahkan ke dalam tabel, karena tidak memasukkan nilai pada field yang wajib untuk diisi. Contohnya seperti Gambar 2 yang berisi tabel tbAnomali. Pada tabel itu, selain NIP, kolom Departemen juga wajib diisi. Saat kita ingin menyimpan record dengan NIP=00384, sementara kolom Departemen tidak diisi, maka Access akan menampilkan pesan peringatan “You must enter a value in the ‘tblAnomali_Insert.Departemen’ field”.
  2. Deletion anomaly: Anomali ini menyebabkan data tertentu secara tidak sengaja hilang saat sebuah record dalam sebuah tabel dihapus. Contohnya, pada Gambar 2 yang berisi tabel tbAnomali, terdapat sebuah record dengan NIP=00380 dan NamaPanggilan=Allo. Bila record ini dihapus, maka Dept.HRD juga akan ikut terhapus. Dept HRD tidak akan terhapus jika kita membuat tabel terpisah.
  3. Update anomaly: menyimpan data dengan tidak menggunakan primary key sebuah tabel dapat membuat kita harus memperbarui secara berulang kali bila jumlah record lebih dari satu. Contohnya, pada Gambar 2, tabel tbAnomali mempunyai tiga record di mana kolom Departemen = Dept. Product Development. Artinya, ada tiga Dept. Product Development dalam tabel di atas. Bila ingin memperbarui kolom itu, misal dengan mengubah menjadi Dept. Product and Development, maka kita harus memperbaiki ketiga record yang mempunyai nilai Departemen = Dept. Product Development.
Untuk menyelesaikan masalah anomali seperti ini, maka kita bisa melakukan normalisasi, seperti pada dijelaskan link post di atas.

Comments

  1. Polyester woven labels in dubaiThe label factory in Dubai exceeded my expectations in both quality and service. The polyester woven labels they produced for my business are of top-notch craftsmanship. The material feels durable, and the colors have remained vivid after multiple washes. I'm impressed and will definitely be returning for more!

    ReplyDelete

Post a Comment

Posting Terpopuler

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access