DENORMALISASI
DENORMALISASI
Denormalisasi
database adalah pelanggaran aturan normalisasi atau menjabarkan suatu tataan
database yang telah normal untuk meningkatkan performa pengaksesan data pada
database. Database yang telah normal disini dimaksudkan database yang
redundansi datanya minim sehingga data yang disimpan tidak mengalami kerancuan
dalam proses pengaksesan.
Denormalisasi dapat menggunakan dua cara yaitu :
· Dengan pembuatan kolom baru pada tabel /
mengabungkan kolom pada tabel satu dengan yang lain.
· Dengan pembuatan tabel baru
Cara
yang pertama dilakukan apabila data yang didenormalisasi hanya kecil dan
digunakan untuk mempermudah pengaksesan data apabila diakses dalam satu tabel.
Sedangkan yang kedua dilakukan apabila data yang terdapat dalam tabel tersebut
merupakan rangkuman / rekapitulasi dari satu atau beberapa tabel yang
pengaksesannya terpisah dari tabel yang ada.
KAITAN
REDUNDANSI PADA DENORMALISASI DAN NORMALISASI
Perbedaan
normalisasi dan denormalisasi adalah terletak pada redundansi data dan
kompleksitas query. Pada redundansi data normalisasi lebih strik atau harus
dihilangkan sebisa mungkin sehingga mengakibatkan apabila kita akan mengakses
data dalam suatu database membutuhkan query yang kompleks. Berbeda dengan
denormalisasi, denormalisasi disini tidak terlalu memikirkan tentang data yang
redundan sehingga dalam mengakses data lebih cepat.Dan juga pada normalisasi
intergritas data akan meningkat sedangkan pada denormalisasi, integritas data
akan menurun.
Relasi
antar tabel tidak akan ada jika redundansi dihilangkan, di lain sisi redundansi
harus diminimalisir untuk mengurangi ketidakintergritasan basis data. Khususnya
pada saat terjadi operasi perubahan data yangtidak dijalarkan ke tabel-tabel
lain yang berhubungan.Performansi dapat ditingkatkan dengan mengendalikan
redundansi untuk mengurangi perhitungan, kompleksitas perintah dan jumlah tabel
yang harus dilibatkan (join).Untuk itu digunakan Denormalisasi basis data.
KEGUNAAN
DENORMALISASI
Apabila
kita menilik lebih lanjut tentang proses pengaksesan yang dilakukan database
sewaktu data yang berada dalam suatu tabel ada 1000 baris dengan 100 juta
baris. Hal itu akan terasa sangat beda proses kita menunggu untuk dapat melihat
data. Itupun apabila kita mengaksesnya dari beberapa tabel yang setiap tabel
berisikan jutaan data dan kita hanya menginginkan sebagian saja. Dari situ
denormalisasi diperlukan, untuk menjaga kestabilan performa suatu sistem.
4. Bentuk-bentuk Denormalisasi
Denormalisasi terbagi terdiri dari beberapa bentuk
yaitu :
·
Atribut yang terderivasi (atribut turunan)
·
Atribut yang berlebihan
·
Tabel rekapitulasi (summary table)
a. Atribut yang Terderivasu (Atribut Turunan)
Atribut
turunan adalah atribut yang nilai-nilainya diperoleh dari pegolahan atau dapat
diturunkan dari atribut atau tabel lain yang berhubungan. Atribut yang demikian
sebenarnya dapat ditiadakan dari sebuah tabel, karena nilai-nilainya bergantung
pada nilai yang ada pada atribut lainnya.hal inilah yang disebut sebagai
denormalisasi. Yang keberadaan atributnya bersifat redundan. Atribut semacam
ini digunakan untuk menghindari proses perhitungan yang berulang dan memakan
banyak waktu.
Contoh :
‘Tampilkan berapa banyak matakuliah yang sudah diambil
oleh mahasiswa tertentu!’
Select
count (*) from mengambil where NIM = ’09.51.0062’;
Untuk menampilkan banyak mata kuliah; di lakukan
denormalisasi yaitu dengan menambahkan beberapa baru agar tidak memakan banyak
waktu dalam pemrosesannya.
Dari perintah di atas, terlihat kalau adanya
penambahan atribut total_sks, total_matkul,dan ipk. Atribut-atribut itu disebut
atribut turunan.
b. Atribut yang Berlebihan
Atribut
yang berlebihan atribut yang menyatakan lebih dari satu fakta.Atribut
berlebihan terbagi atas beberapa bagian yaitu :
Ø Atribut
Terkodekan
Atribut
terkodekan adalah atribut yang memiliki kode tambahan yang menunjukkan beberapa
kondisi lainnya.
Contoh :
id_mk
di tabelkuliah yang didalamnya sudah terkandung data program studi. Data
program studi ini sebenarnya tidak diperlukan lagi karena sudah ada atribut
prog_studi di tabel kuliah.
Tapi
akan menjadi aneh jika kode matakuliah tidak mengikuti format aturan penulisan
yang ada. Untuk itu kita bisa lakukan denormalisasi dengan tetap menuliskan kode
matakuliah seperti di atas.
Ø Atribut
Gabungan
Atribut
gabungan adalah atribut yang terdiri dari atribut yang lain.
Contoh :
Atribut nim di tabel mahasiswa merupakan gabungan dari
tahun masuk/angkatan dengan program studi dan no urut mahasiswa. Dengan
demikian atribut ini sebenarnya tidak atomik (bagian terkecil) karena masih
bisa dibagi lagi.
‘Misalnya
: NIM : 09.51.0062 (Ket: angkatan.jurusan.no urut).’
Sama halnya dengan atribut terkodekan,akan menjadi
aneh jika nomor mahasiswa tersebut hanyalah nomor urut.Tentu hal ini akan
membutuhkan informasi lebih tentang angkatan dan terdaftar dijurusan mana
mahasiswa tersebut.
Ø Atribut
Tumpang Tindih
Atribut
tumpang tindih adalah atribut dengan nilai yang tidak sepenuhnya ekslusif
(bersifat khusus).
Contoh :
Atribut semester di tabel kuliah berisikan:
– ‘1’ :
matakuliah ganjil
– ‘2’ :
matakuliah genap
– ‘3’ :
matakuliah ganjil & genap
Nilai ‘3’ mencakup semester genap dan ganjil sekaligus(jadi
tidak ekslusif).
Jadi
sebaiknya matakuliah dimasukkan dua kali, jika itu di laksanakan di semester
ganjil dan genap.
Tentu
saja hal ini melanggar aturan normalisasi (redundansi), tapi untuk performansi
hal ini dapat ‘dilanggar’.
Ø Atribut
Bermakna Ganda
Atribut
bermakna ganda adalah atribut yang memiliki arti berbeda tergantung kelompok
entitasnya.
Contoh :
Di
tabel dosen terdapat atribut gaji. Bagi dosen tetap atribut ini berisi gaji
tetap perbulan, sedangkan bagi dosen tidak tetap gaji ini berisi insentif (gaji
tambahan) mengajar tiap sks.
Jika
gaji dosen harus dibedakan, maka harus disediakan 2 buah atribut yakni
gaji_tetap dan gaji_tidak_tetap.Walaupun sama-sama berisi tentang jumlah gaji
yang diterima dosen, hal ini tentu sajamelanggar aturan normalisasi karena ada
blok data yang kosong. Tetapi sekali lagi, denormalisasi dalam hal ini boleh
dilakukan.
c.
Tabel Rekaptulasi
Laporan hasil rekapitulasi akan
selalu merupakan 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. Pada contoh kasus sebelumnya,
akan dibutuhkan waktu yang lama jika harus menghitung jumlah matakuliah, jumlah
sks dan ipk mahasiswa yang pengolahannya berasal dari beberapa tabel. Untuk itu
bisa dibuat tabel khusus, misal : rekap_mahasiswa yang berisi data tentang jumlah
matakuliah, jumlah sks, ipk. Hal ini tentu saja akan menimbulkan redundansi,
tapi dengan mempertimbangkan performansi, Denormalisasi pada kasus ini perlu
dilakukan.
KESIMPULAN
Pengaruh
denormalisasi terhadap basis data cukup besar khususnya dalam hal meningkatkan
performansi database. Terkait dengan denormalisasi pembuatan database penting
juga untuk dilakukan karena hal ini akan mempunyai efek terhadapat kecepatan
akses data sehingga akan mempercepat proses pelayanan sehingga waktu yang
dibutuhkan lebih efesien.
SUMBER
: https://goverto.wordpress.com/2013/10/07/denormalisasi/
& http://mr_jock.mywapblog.com/denormalisasi.xhtml
Komentar
Posting Komentar