Dalam kuliah dalam membuat database selalu ditekankan agar database tersebut dinormalisasi terlebih dahulu. Bahkan ada dosen yang mengajarkan kalo tidak ternormalisasi penuh maka data akan lambat. Memang bukunya pun bilang begitu
Berikut kutipan dafinisi Normalisasi dan Tujuannya dari berbagai sumber :
Normalisasi adalah suatu teknik untuk mengorganisasi dalam tabel-tabel untuk memenuhi kebutuhan dalam suatu organisasi.
Tujuan dari normalisasi
-Untuk menghilangkan kerangkapan data
-Untuk mengurangi kompleksitas
-Untuk mempermudah pemodifikasian data
-Untuk mempercepat akses data
Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data / database, teknik pengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
Proses normalisasi akan sangat membantu dalam menghemat ruang yang digunakan oleh setiap tabel di dalamnya, sekaligus mempercepat proses permintaan data.
Semuanya betul. Tetapi ketika kita membangun aplikasi client/server atau Web dengan data yang besar Aturan normalisasi digunakan tetapi jangan dipaksakan memenuhi bentuk normal, sesuai yang ada diteori. Kenapa?
Karena hasil dari normalisasi penuh kadang tabelnya terlalu banyak dan jika membutuhkan suatu data yang kompleks untuk laporan harus join tabel kemana-mana, apabila data sudah diatas 100ribu record maka lama banget keluarnya.
Solusinya :
1. Database dibuat fleksibel, tidak harus normalisasi penuh, menganalisa kolom-kolom yang sering dipakai untuk laporan agar dibuat dalam satu table. Sehingga pada saat query untuk laporan data tidak harus join kemana-mana cukup 1 atau 2 table saja. Dan hasilnya akan lebih cepat.
2. Datawarehousing, menciptakan table-table yang siap dipakai untuk Laporan yang diambil dari table-table transaksi. Proses pemindahan ke table-table tersebut bisa batch(per jam / per hari) atau realtime
Efeknya dengan normalisasi tidak penuh maka kadang ada proses update lebih dari 1 table.
Gimana jikalau ada gagal dalam update, yang satu sudah ke update yang lain belum, bisa kacau??
itulah fungsinya penggunaan fasilitas Transact SQL yaitu update data kebanyak table dalam suatu waktu. Jika yang satu gagal maka semua proses update di rollback (digagalkan semua) sehingga data menjadi lebih konsisten
Tidak ada komentar:
Posting Komentar