Haruskah saya menormalkan database saya?

Normalisasi di Dunia Nyata

Normalisasi database adalah salah satu sapi suci pengembangan aplikasi. Setiap mata kuliah program sarjana yang Anda ambil atau buku yang Anda baca kemungkinan berkhotbah tentang pentingnya normalisasi database .

Saatnya untuk menantang truisme itu. Terkadang tidak apa-apa untuk mendenormalkan database Anda!

Kapan Anda Harus Menormalkan?

Normalisasi database melindungi integritas data Anda. Ini adalah ide bagus dalam banyak kasus, dan Anda harus memulai setiap usaha desain database dengan memikirkan normalisasi. Jika Anda dapat menormalkan database Anda, lakukanlah! Bahkan, Berikut adalah beberapa saran praktis tentang cara menormalkan database Anda di situs ini:

Intinya adalah bahwa Anda harus menormalkan database Anda kecuali Anda memiliki alasan yang sangat bagus untuk tidak melakukannya. Normalisasi biasanya merupakan praktik desain suara. Ini mengurangi informasi redundan, mengoptimalkan kinerja dan mengurangi kemungkinan bahwa Anda akan memiliki masalah integritas data yang dihasilkan dari memiliki data yang sama disimpan di berbagai sudut database Anda.

Beberapa Alasan Baik Bukan Untuk Menormalkan

Yang mengatakan, ada beberapa alasan bagus untuk tidak menormalkan database Anda. Mari kita lihat beberapa:

  1. Bergabung mahal . Normalisasi database Anda sering melibatkan membuat banyak tabel. Bahkan, Anda dapat dengan mudah mengakhiri dengan apa yang Anda pikir seharusnya merupakan pertanyaan sederhana yang mencakup lima atau 10 tabel. Jika Anda pernah mencoba bergabung dengan lima meja, Anda tahu bahwa itu bekerja pada prinsipnya, tetapi latihannya sangat lambat. Jika Anda membangun aplikasi web yang bergantung pada beberapa-bergabung dengan query terhadap tabel besar, Anda mungkin menemukan diri Anda berpikir, "Jika hanya database ini tidak dinormalisasi!" Ketika Anda mendengar pikiran itu di kepala Anda, ini saat yang tepat untuk pertimbangkan denormalkan. Jika Anda dapat memasukkan semua data yang digunakan oleh kueri tersebut ke dalam satu tabel tanpa benar-benar membahayakan integritas data Anda, lakukanlah! Jadilah pemberontak dan denormalkan database Anda. Anda tidak akan melihat ke belakang!
  2. Desain yang dinormalisasi sulit . Jika Anda bekerja dengan skema basis data yang rumit, Anda mungkin akan menemukan diri Anda membenturkan kepala ke meja di atas kerumitan normalisasi. Sebagai aturan praktis sederhana, jika Anda menghabiskan sepanjang hari untuk mencoba mencari cara untuk pindah ke bentuk normal keempat, Anda mungkin akan terlalu normal. Mundur dan tanyakan pada diri Anda apakah itu benar-benar layak dilanjutkan.
  1. Cepat dan kotor harus cepat dan kotor . Jika Anda hanya mengembangkan prototipe, lakukan apa pun yang berhasil. Sangat. Tidak apa-apa. Pengembangan aplikasi yang cepat terkadang lebih penting daripada desain yang elegan. Jangan lupa untuk kembali dan melihat desain Anda dengan cermat setelah Anda siap untuk melangkah melampaui tahap pembuatan prototipe. Harga yang Anda bayar untuk desain database yang cepat dan kotor adalah bahwa Anda mungkin perlu membuangnya dan memulai lagi ketika saatnya membangun untuk produksi.
  2. Jika Anda menggunakan database NoSQL , normalisasi tradisional tidak diinginkan. Sebaliknya, desain database Anda menggunakan model BASE yang jauh lebih memaafkan. Ini berguna ketika Anda menyimpan data tidak terstruktur seperti email, gambar, atau video.

Beberapa Kata-Kata Bijak

Normalisasi database pada umumnya merupakan ide yang bagus. Anda harus mencoba mengikuti prinsip-prinsip normalisasi ketika tampaknya masuk akal untuk melakukannya. Tetapi jika semua indikator menunjukkan normalisasi terlalu rumit untuk diterapkan, pertimbangkan pendekatan yang akan menyelesaikan pekerjaan sambil melindungi data Anda.

Akhirnya - jika Anda memilih untuk menyimpang dari aturan normalisasi, ekstra waspada tentang bagaimana Anda menegakkan integritas basis data. Jika Anda menyimpan informasi yang berlebihan, letakkan pemicu dan kontrol lainnya untuk memastikan bahwa informasi tetap konsisten.