Sekiranya saya Menormalkan Pangkalan Data Saya?

Normalisasi di Dunia Nyata

Pengaturcaraan pangkalan data adalah salah satu daripada lembu pemanfaatan pembangunan aplikasi. Setiap kursus pengaturcaraan siswazah yang telah anda ambil atau buku yang anda baca kemungkinannya mengajarkan pentingnya menormalkan pangkalan data .

Sudah tiba masanya untuk mencabar truism. Kadang-kadang ia adalah OK untuk menamakan semula pangkalan data anda!

Bilakah Anda Perlu Normalize?

Normalisasi pangkalan data melindungi integriti data anda. Ini adalah idea yang bagus dalam banyak kes, dan anda harus memulakan apa-apa reka bentuk pangkalan data dengan normalisasi dalam fikiran. Jika anda boleh menormalkan pangkalan data anda, pergi! Sebenarnya, Berikut adalah beberapa nasihat praktis tentang cara menormalkan pangkalan data anda di laman web ini:

Intinya ialah anda perlu menormalkan pangkalan data anda melainkan anda mempunyai sebab yang sangat baik untuk tidak melakukannya. Normalisasi biasanya amalan reka bentuk yang baik. Ia mengurangkan maklumat yang berlebihan, mengoptimumkan prestasi dan mengurangkan kemungkinan bahawa anda akan mempunyai isu integriti data yang berpunca daripada mempunyai data yang sama yang terkandung di sudut yang berlainan dalam pangkalan data anda.

Sesetengah Alasan Baik Tidak Normalkan

Yang mengatakan, terdapat beberapa sebab yang baik untuk tidak menormalkan pangkalan data anda. Lihat beberapa:

  1. Bergabung mahal . Normalisasi pangkalan data anda sering melibatkan pembuatan banyak jadual. Sebenarnya, anda boleh dengan mudah menggulung dengan apa yang anda fikir harus menjadi pertanyaan mudah yang merangkumi lima atau 10 jadual. Jika anda pernah mencuba membuat lima jadual, anda tahu bahawa ia berfungsi pada dasarnya, tetapi dengan perlahan dalam praktiknya. Sekiranya anda membina aplikasi web yang bergantung kepada pertanyaan berbilang pertanyaan dengan jadual besar, anda mungkin mendapati diri anda berfikir, "Jika hanya pangkalan data ini tidak normal!" Apabila anda mendengar pemikiran itu di kepala anda, ini adalah masa yang baik untuk perhatikan denormalizing. Jika anda boleh melekat semua data yang digunakan oleh pertanyaan itu ke dalam satu jadual tanpa membahayakan integriti data anda, pergi! Menjadi pemberontak dan menamakan semula pangkalan data anda. Anda tidak akan melihat kembali!
  2. Reka bentuk yang dinormalkan adalah sukar . Jika anda bekerja dengan skema pangkalan data yang rumit, anda mungkin akan mendapati diri anda mengepakkan kepala anda terhadap jadual atas kerumitan normalisasi. Sebagai aturan mudah, jika anda menghabiskan sepanjang hari cuba memikirkan bagaimana untuk bergerak ke bentuk normal yang keempat, anda mungkin mengambil terlalu banyak normalisasi. Balik ke belakang dan tanya diri anda jika ia benar-benar bernilai berterusan.
  1. Cepat dan kotor perlu cepat dan kotor . Sekiranya anda sedang membangunkan prototaip, lakukan saja dengan cepat. Benar. Tidak apa-apa. Pembangunan aplikasi yang cepat kadang-kadang lebih penting daripada reka bentuk yang elegan. Ingatlah untuk kembali dan berhati-hati dengan reka bentuk anda apabila anda sudah bersedia untuk bergerak di luar fasa prototaip. Harga yang anda bayar untuk reka bentuk pangkalan data yang cepat dan kotor adalah bahawa anda mungkin perlu membuangnya dan bermula apabila tiba masanya untuk membina untuk pengeluaran.
  2. Jika anda menggunakan pangkalan data NoSQL , normalisasi tradisional tidak diingini. Sebaliknya, reka bentuk pangkalan data anda menggunakan model BASE yang jauh lebih memaafkan. Ini berguna apabila anda menyimpan data yang tidak berstruktur seperti e-mel, imej atau video.

Beberapa Kata-kata Berhati-hati

Normalisasi pangkalan data biasanya adalah idea yang baik. Anda harus cuba mengikuti prinsip-prinsip normalisasi apabila nampaknya munasabah untuk berbuat demikian. Tetapi jika semua petunjuk menunjuk kepada normalisasi yang terlalu kompleks untuk dilaksanakan, pertimbangkan satu pendekatan yang akan mendapatkan pekerjaan yang dilakukan semasa masih melindungi data anda.

Akhirnya - jika anda memilih untuk menyimpang dari peraturan normalisasi, lebih berhati-hati mengenai bagaimana anda menguatkuasakan integriti pangkalan data. Jika anda menyimpan maklumat yang berlebihan, letakkan pencetus dan kawalan lain untuk memastikan maklumat itu tetap konsisten.