النماذج العادية ليست لقواعد البيانات فقط

يمكنك تطبيق قواعد مماثلة على أنواع كائنات البيانات أيضًا.

ربما تكون قد تعلمت مصطلح النموذج العادي في سياق تعريف المخططات لقواعد البيانات العلائقية. تسعى تسوية قاعدة البيانات إلى تقليل تكرار البيانات في صفوف وأعمدة الجدول. وبالتالي ، تقل احتمالية حدوث الحالات الشاذة في البيانات.

ما هو شذوذ البيانات؟

لنفترض أن لدينا هذا الموقف:

يحتوي الجدول A على قيم للخصائص X و Y و Z للصف المحدد بواسطة معرف x ؛ هذه تأكيدات حول x. لنفترض أن Y في الصف x تم التأكيد على أنها القيمة 3.

يحتوي الجدول B أيضًا على نفس التأكيدات حول سبب Y لـ x

تم إخبار الجدول أ لاحقًا ، "لقد تغيرت الحقائق. Y هي الآن 4 "

تم الاستعلام لاحقًا عن الجدول B ، ويقول إن Y لا يزال 3.

يؤكد "أ" و "ب" الآن حقيقتين مختلفتين حول "ص" ، بناءً على الجدول الذي تستعلم عنه.

هذا شذوذ في البيانات: تأكيدات مختلفة حول حقيقة. والحقائق مهمة في أنظمة الكمبيوتر.

ماذا ولماذا من الأشكال العادية

سأستخدم نوع المصطلح للإشارة إلى البيانات الوصفية للكائن. يمكن تنفيذ ذلك من خلال تعريف فئة أو mixin أو سمة أو طابع أو أي آلية تدعمها تفضيلاتك ولغتك المفضلة. سأركز أيضًا على كائنات البيانات ، مثل POJOs و PODOs و JSON والكائنات البسيطة المماثلة.

وبصورة غير رسمية ، توصف النماذج العادية الثلاثة الأولى على النحو التالي:

النموذج العادي الأول (1NF): لا توجد عناصر متكررة أو مجموعات من العناصر

النموذج العادي الثاني (2NF): جميع السمات غير الرئيسية تعتمد على كل المفاتيح

النموذج العادي الثالث (3NF): لا تبعيات على السمات غير الرئيسية

هذه قراءة جافة جدًا. لكن تطبيق هذه المبادئ على تعريفات نوع الكائن هو في الواقع بديهي للغاية. بمجرد استيعاب هذه القواعد ، لن تفكر فيها بوعي مرة أخرى.

الكائنات علائقية أيضًا

تدعم قواعد البيانات العلائقية الاتحادات عن طريق قيود المفتاح الأساسي والخارجي. التسلسلات الهرمية ضمنية ، إن وجدت أصلاً. تعتبر الجمعيات أكثر مرونة من التسلسل الهرمي والتصنيفات ، ولكن من الصعب التفكير فيها.

في التسلسل الهرمي ، لديك علاقات بين الوالدين والطفل. غالبًا ما يكون هناك تسلسل هرمي لأنواع البيانات أيضًا (فئة فرعية) يتم تصميمها أيضًا. تكون العلاقات في التسلسل الهرمي لاحتواء الكائن أكثر تقييدًا ، وعادة ما تكون أحادية الاتجاه (من الأب إلى الطفل) ، ولكنها أيضًا أسهل في الفهم من الارتباط الأكثر عمومية (ومرونة).

1NF: لا توجد عناصر متكررة أو مجموعات من العناصر

لنفترض أن لدينا معلومات الاتصال التالية:

أين العناصر المكررة؟

  1. سمات الاسم: يمكن اعتبارها علاقة رأس بأطراف ، حيث يكون عدد الأسماء غير محدد (مثل حقوق الملكية البريطانية). من الناحية العملية ، على الرغم من ذلك ، فإن الاسم الأول والأخير وربما الأوسط كافٍ لمعظم مجالات التطبيق ، لذلك ليست هناك حاجة حقيقية لتطبيع هذه الحقول.
  2. الهواتف: يبدو أن تكرار سمات الهاتف يمثل مشكلة محتملة: هل يكفي هاتفان؟ وماذا لو ارتبطت معلومات إضافية لاحقًا برقم الهاتف ، مثل الوقت المتاح؟
  3. سطور العنوان: مرة أخرى ، هل يكفي اثنان؟ في بعض البلدان ، يمكن أن تكون عناوين الشوارع أربعة أسطر ، ولكن هذا هو الحد الأقصى. نظرًا لأنها سلاسل بسيطة ، فلا مأساة إذا تمت إضافة سطر أو سطرين من سطور العنوان لاحقًا.

إليك نموذج محتمل ، مع أنواع جهات الاتصال والهاتف:

2NF: جميع السمات غير الرئيسية تعتمد على كل المفاتيح

ماذا يعني هذا في اللغة الإنجليزية البسيطة؟ في قاعدة البيانات ، هذا يعني أن جميع الأعمدة في الصف يجب أن تعتمد بشكل مباشر على أي مفاتيح مرشحة لهذا الصف.

لذلك دعونا نلقي نظرة على الاتصال مرة أخرى:

هنا المفتاح هو قيمة معرف تم إنشاؤها ، يشار إليها أحيانًا على أنها مفتاح بديل. هل سمات العنوان تعتمد على معرف جهة الاتصال؟ حسنا…

كل هذا يتوقف على المجال.

من المؤكد أن خصائص العنوان الستة ليست سمات لجهة الاتصال ، ولكنها بالأحرى وسيلة لتحديد موقع مادي. من الممكن أن يكون لجهة اتصال العديد من العناوين ، وربما يحتوي العنوان على العديد من جهات الاتصال.

هل يجب نمذجة ذلك كعلاقة أطراف بأطراف ، مع نوع كائن ContactAddress يحتوي على معرف جهة اتصال ومعرف العنوان؟ سوف يعتمد على ما هو مهم لمجال التطبيق الخاص بك. قد تتعامل بعض التطبيقات مع جهات الاتصال على أنها كيانات قوية ، مستقلة عن العنوان ، ولكن العناوين ككيانات ضعيفة ، تعتمد على جهة اتصال في الوجود. في هذه الحالة ، يمكن أن يكون لجهة اتصال واحدة العديد من العناوين ، ويشير كل عنوان إلى جهة اتصال ، مثل هذا:

هناك حالة شاذة محتملة في البيانات: إذا قمت بتغيير العنوان لجهة اتصال واحدة ، فلن تغير نفس العنوان لجميع جهات الاتصال. إذا كانت جهة الاتصال هي المصدر الأساسي للمرجعية ، فقد يكون هذا هو السلوك المرغوب: تنتقل جهة الاتصال (إلى مؤسسة أخرى ، على سبيل المثال) وتبقى جهات الاتصال المتبقية في مكانها.

3NF: لا تبعيات على السمات غير الرئيسية

وعند النظر إلى العناوين مرة أخرى، قد بقعة اثنين من الحقول التابعة المنطقة و البلاد. قد يكون لبلد ما مناطق أو لا ، لكن المنطقة بها بلد: لا تريد الخلط بينها.

تتمثل إحدى طرق التأكد من أن المنطقة تنتمي إلى البلد الصحيح في إنشاء معرف لكل زوج (بلد ، منطقة) ، ثم جعل العنوان يشير إلى المعرف بدلاً من المنطقة والبلد بشكل مستقل:

كلمة عن المعرفات التي تم إنشاؤها

في رأيي ، تعتبر المعرفات التي تم إنشاؤها بمثابة تفاصيل تنفيذ ، وهي مطلوبة حقًا فقط من خلال رمز العميل عند تعديل أو حذف سجل خلفي (مثل صف في قاعدة بيانات) ، ولكن ليس كجزء من استعلام للقراءة فقط. يجب أيضًا ألا يراها مستخدم النظام أبدًا ، لأنها لا معنى لها.

جدول لكل نوع ، جدول لكل نوع هرمي

الشيء الرائع في أنواع الكائنات التي تم تسويتها هو أنها ترتبط بسهولة بجداول قاعدة البيانات العلائقية. لتنفيذ قاعدة البيانات العلائقية ، تعكس الجداول أنواع الكائنات (جدول لكل نوع) أو تحتوي على الأقل على معلومات لأنواع متعددة مشتقة من نوع أساسي (جدول لكل نوع هرمي). قد يبدو هذا كأنني أدافع عن رسم الخرائط العلائقية للكائنات ، لكن لا ... أنا أقول فقط أنه من المفيد أن يتشارك النموذج المنطقي في نفس خصائص النموذج المادي في المفهوم التصوريمستوى. التنفيذ هو موضوع آخر تماما.

المراجع

هناك موارد وافرة حول تطبيع مخططات قاعدة بيانات العلاقة:

تطبيع قاعدة البيانات: النماذج العادية الأولى والثانية والثالثة - أندرو رولينز

لقد قرأت شرحًا رائعًا للشكل العادي الأول والثاني والثالث قبل بضعة أسابيع. لأولئك الذين يعرفون ما هي قاعدة البيانات ...

www.andrewrollins.com

شرح النموذج العادي الثاني لقاعدة البيانات بلغة إنجليزية بسيطة

ركز المنشور الثاني على النموذج العادي الأول ، وتعريفه ، وأمثلة لإبرازه في المنزل. حان الوقت الآن ...

www.essentialsql.com

ما هو النموذج العادي الثاني (2NF)؟ - التعريف من Techopedia

النموذج العادي الثاني تعريف 2NF - النموذج العادي الثاني (2NF) هو الخطوة الثانية في تطبيع قاعدة البيانات. 2NF يبني ...

www.techopedia.com

شرح النموذج العادي الثالث لقاعدة البيانات بلغة إنجليزية بسيطة

ركز التدوين الثالث على الشكل العادي الثاني ، وتعريفه ، وأمثلة لإبرازه في المنزل. بمجرد أن يكون الجدول في ...

www.essentialsql.com

أيضًا ، عند البحث في هذا المنشور ، صادفت طريقة مختلفة نوعًا ما حول كيفية تطبيق قواعد التطبيع على أنواع الكائنات.

مقدمة في تطبيع الفصل

www.agiledata.org