Pembentukan struktur database merupakan hal yang penting dilakukan dalam pengembangan sistem informasi suatu sistem, Sebagai seorang perancang database, dibutuhkan pemahaman tentang membuat struktur data yang baik dan sesuai dengan kebutuhan operasional. Dalam proses perancangan database, terdapat satu proses yang dapat dilakukan untuk penyempurnaan tabel-tabel yang dibuat untuk database, proses ini dinamakan normalisasi. Normalisasi merupakan parameter yang digunakan untuk menghindarari duplikasi terhadap tabel dalam database dan juga merupakan proses dekomposisi suatu tabel yang masih memiliki beberapa anomali. Hasil dari normalisasi adalah suatu tabel yang tidak memiliki data redundancy dan memungkinkan user untuk melakukan insert, delete, dan update pada baris (record) tanpa menyebabkan inkonsistensi data.
Denormalisasi adalah kebalikan dari proses normalisasi. Denormalisasi merupakan proses yang dilakukan pada database yang sudah dinormalisasi, dengan cara memodifikasi struktur tabel dan mengabaikan kerangkapan data (yang terkontrol) untuk meningkatkan kinerja database. Pada satu sisi denormalisasi menyebabkan adanya data redundancy yang lebih besar, bahkan dapat mengurangi fleksibilitas basis data untuk perkembangan penggunan dimasa depan. Di sisi lain, denormalisasi dapat mempercepat pemanggilan (retrieval) data, meskipun dapat memperlambat proses update data. Perbedaan normalisasi dan denormalisasi adalah terletak pada data redundancy dan kompleksitas query. Pada data redundancy, data normalisasi harus dihilangkan semaksimal mungkin sehingga apabila kita akan mengakses data dalam suatu database membutuhkan query yang kompleks. Berbeda dengan denormalisasi, denormalisasi disini tidak terlalu memikirkan tentang data redundancy sehingga dalam mengakses data lebih cepat. Secara prinsip, tidak ada metode khusus untuk melakukan denormalisasi.
Denormalisasi dapat dilakukan apabila terdapat:
- Atribut yang terderivasi (atribut turunan), yaitu atribut yang nilainya bisa diperoleh dari nilai-nilai yang sudah ada pada atribut lain.
- Atribut yang berlebihan, yaitu atribut yang memiliki kode tambahan yang menunjukkan beberapa kondisi lainnya, seperti: Atribut terkodekan (encoded attribute), Atribut gabungan (concatenated attribute), Atribut tumpang-tindih (overlapping attribute), Atribut bermakna ganda (alternate attribute)
- Tabel rekapitulasi (summary table), yaitu hasil pengolahan dari semua tabel yang ada. Pengolahan tersebut melibatkan banyak tabel sehingga akan membutuhkan waktu yang lama. Jika hal tersebut sering diakses dan diperlukan, maka perlu dibuat tabel khusus untuk menyimpan data hasil rekapitulasi tersebut.
Beberapa situasi yang menjadi pertimbangan untuk melakukan denormalisasi sebagai upaya mempercepat proses transaksi adalah sebagai berikut:
- Mengkombinasikan relasi One to One (1:1)
- Menduplikasi field bukan kunci dalam relasi one to many (1:M) untuk mereduksi proses join saat query.
- Menduplikasi field FK dalam relasi One to Many (1:M) untuk mereduksi proses join saat query.
- Membuat batasan pada multi atribut
Denormalisasi penting dalam perancangan database. Apabila terdapat proses pengaksesan yang dilakukan dabatase sewaktu data yang berada dalam suatu tabel ada 5000 baris dengan 30000 baris, maka proses tersebut akan memakan waktu yang cukup lama untuk mengakses data tersebut, terlebih lagi apabila user mengaksesnya dari beberapa table dan user hanya membutuhkan melihat sebagian datanya saja. Oleh karena itu, denormalisasi diperlukan untuk menjaga kestabilan performa sistem. Untuk menentukan apakah perlu sistem dilakukan denormalisasi atau tidak untuk mengoptimalkan kinerja sistem diperlukan beberapa pertimbangan.
Info :
No comments:
Post a Comment