أما بنروح المكتبة بنلاقي الكتب والروايات والمراجع مقسمة بشكل كويس يسهل للناس انها تروح تجيب اللي هي عاوزاه من غير ما تبذل مجهود كبير , نفس الكلام في الدولاب اما بتكون الهدوم مترتبة ده هيسهل عليك انك تلاقي اللبس اللي انت محتاجه بسهولة.
وهي دي ببساطة فكرة الـ Database Normalization هي عملية الـ Categorization أو الفصل اللي بنعمله بحيث نخلي كل جزء مترتب في مكان لوحده.
تعالوا نتخيل ان عندنا بيانات مجموعة من الطلاب , بس بيانات الطلاب دي كلها موجودة في Table واحد , الـ Table ده يشتمل على ايه ؟ يشتمل على كل حاجة خاصة بالطالب (بيانات الطالب - الكورسات اللي بيشوفها - درجاته - المدرسين اللي بيشرحوله) الخ..
اللي عندنا ده دلوقتي اسمه Database De-Normalization طب ايه الـ Database Normalization ؟
الـ Normalization هو اني ابدأ اعمل Categorization واعمل فصل لبيانات الطلاب دي فاخلي بيانات الطالب في Table وليكن Students اخلي الكورسات في Table تاني اسمه Courses وهكذا..
طب ايه الفرق بين الـ Normalization والـ De-Normalization , وايه مميزات وعيوب كل واحد منهم , ده اللي هنعرفه انهاردة 🎉
مميزات الـ Normalization
Reduce Redundancy
أول ميزة مهمة من الـ Normalization هي أنه بيقلل التكرار اللي ممكن يحصل, فزي ما شوفنا لو انا عندي بيانات الطلاب في Table واحد , لو كان عندي Student Enrolled في 5 كورسات هيكون عندي 5 Entries
الفكرة مش في كده بس الفكرة ماذا لو بيانات الطالب دي كبيرة يعني بتشتمل على (عنوان - اسم - رقم تليفون - ايميل) وتفاصيل تانية كتير ؟ هنلاقي ان كل البيانات دي بتتكرر
ولكن لو لجأنا للـ Normalization فاحنا هنقلل الـ Storage وهتبقى Efficient لاننا ممكن نبدل كل ده بالـ StudentID ويكون بيانات الطالب في Table منفصل والـ Courses كذلك.