سؤال

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

شكرا مقدما.

هل كانت مفيدة؟

المحلول

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

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

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

إليك عملية تطبيع بسيطة.

EMPLOYEE ( < employee_id >, name, social_security, department_name)

هذا غير طبيعي، كما هو موضح. شكل طبيعي يمكن أن يبدو

EMPLOYEE ( < employee_id >, name, social_security)

هنا، طاولة الموظف مسؤولة فقط عن مجموعة واحدة من البيانات. إذن، أين يمكننا تخزين الإدارة التي ينتمي إليها الموظف؟ في طاولة أخرى

EMPLOYEE_DEPARTMENT ( < employee_id >, department_name )

هذا ليس الأمثل. ماذا لو تغير اسم القسم؟ (يحدث في حكومة الولايات المتحدة طوال الوقت). ومن ثم من الأفضل القيام بذلك

EMPLOYEE_DEPARTMENT ( < employee_id >, department_id )
DEPARTMENT ( < department_id >, department_name )

هناك أول شكل طبيعي، الشكل العادي الثاني والنموذج العادي الثالث. ولكن ما لم تكن تدرس دورة DB، عادة ما أذهب فقط لأكثر النموذج الطبيعي الذي يمكنني فهمه.

أتمنى أن يساعدك هذا.

نصائح أخرى

التطبيع ليس ل MySQL فقط. انها مفهوم قاعدة البيانات العامة.

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

ترد أدناه النماذج العادية في SQL.

النموذج العادي الأول (1NF): تقال أن العلاقة في 1NF إذا كان لديها سمات واحدة فقط قيمة، لا يتم السماح بأي تكرار أو صفائف.

النموذج العادي الثاني (2NF): تقال أن العلاقة هي في 2NF إذا كانت في 1NF وكل السمة غير الرئيسية تعتمد بشكل كامل على المفتاح الأساسي.

النموذج العادي الثالث (3NF): نقول أن العلاقة في 3NF إذا كانت في 2NF وليس لديها تبعيات متعدية.

FOOCE-CODD النموذج العادي (BCNF): تقال أن العلاقة في BCNF إذا وفقط إذا كان كل محدد في العلاقة هو مفتاح مرشح.

الرابع النموذج العادي (4NF): تقال أن العلاقة في 4NF إذا كانت في BCNF ولا تحتوي على تبعية متعددة الجنسيات.

النموذج الخامس العادي (5NF): تقال أن العلاقة في 5NF إذا وفقط إذا كان كل تبعية في العلاقة متضمنة من خلال مفاتيح المرشح للعلاقة.

النموذج المعتاد للمجال (DKNF): نقول أن العلاقة في DKNF إذا كانت مجانية من جميع الحالات الشاذة التعديل. الإدراج والحذف وتحديث الحالات الشاذة تأتي تحت الحالات الشاذة التعديل

سيل أيضا

أساسيات تطبيع قاعدة البيانات

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

انظر مقال ويكيبيديا تطبيع قاعدة البيانات.

(إنها تقنية عامة لقواعد البيانات العلائقية، غير محددة ل MySQL.)

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

نظرا لأن كل جدول في DB الخاص بك، يحدد كيانا هاما في طلبك، وهو معرف فريد هو أعمدة يجب أن يكون لها.

الآن، أثناء تحديد مخطط التخزين، يتم تحديد أنواع مختلفة من العلاقات بين هذه الكيانات (الجداول)، Viz-A-Viz، واحد إلى واحد، واحد إلى كثير، كثير إلى كثير.

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

بمجرد الحضور إلى كل هذه السيناريوهات، سيتم تطبيع مخطط DB الخاص بك إلى 4NF.

التحقق من هذه المشاركة لديها اقتراحات مفيدة

برنامج Barry الخاص بتفهم مخطط قاعدة البيانات

http://www.youtube.com/watch?v=KqvIGYjcLQ4 

في مجال تصميم قاعدة البيانات العلائقية، تعد التطبيع طريقة منهجية لضمان أن تكون بنية قاعدة البيانات مناسبة للاستعلام عن الأغراض العامة وخالية من بعض الخصائص غير المرغوب فيها، وتحديث، وتحديث الحذف، والتي قد تؤدي إلى فقدان سلامة البيانات . [1] قدم كود EF، مخترع النموذج العلائقي، مفهوم التطبيع وما نعرفه الآن كأول شكل طبيعي في عام 1970. [2] ذهب CODD لتحديد النماذج العادية الثانية والثالثة في عام 1971، [3] وحدد CODD و Raymond F. Boyce الشكل العادي في Boyce-Codd في عام 1974. [4] تم تحديد أشكال عادية أعلى من قبل نظراء المنظرين الآخرين في السنوات اللاحقة، وأحدث كونها النموذج العادي السادس الذي قدمه كريس تاريخ، هيو داروين، ونيكوس لورنتزوس في عام 2002. [5

بشكل غير رسمي، غالبا ما يتم وصف جدول قاعدة البيانات العلائقية (التمثيل المحوسب من العلاقة) على أنه "تطبيع" إذا كان في النموذج العادي الثالث (3NF). [6] معظم الجداول 3NF خالية من الحالات الشاذة الإدراجية والتحديث وحذف الحذف، أي في معظم الحالات 3NF الجداول تلتزم BCNF و 4NF و 5NF (ولكن عادة لا 6NF).

إحدى إرشادات تصميم قاعدة البيانات القياسية هي أن المصمم يجب أن يخلق تصميما طبيعيا تماما؛ يمكن أن يتم تنفيذ الإندمالية الانتقائية لاحقا لأسباب الأداء. [7] ومع ذلك، فإن بعض تخصصات النمذجة، مثل نهج النمذجة الأبعاد لتصميم مستودع البيانات، يوصي بشكل صريح بتصميمات غير طبيعية، أي تصاميم في جزء كبير لا تلتزم ب 3NF. [8

يحرر: مصدر: http://en.wikipedia.org/wiki/database_normalization.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top