المفاتيح الأساسية والمفاتيح الخارجية هي الغراء الذي ينظم جداول متعددة في قاعدة بيانات علائقية فعالة. إن تصميم المفاتيح الأساسية والمفاتيح الخارجية له تأثير حاسم على أداء قاعدة البيانات المادية وتوافرها.
يجب تحويل مخطط قاعدة البيانات من التصميم المنطقي النظري إلى التصميم المادي الفعلي. يعد هيكل المفاتيح الأساسية والمفاتيح الخارجية هو جوهر عملية التصميم هذه. بمجرد استخدام قاعدة البيانات المصممة في بيئة الإنتاج، سيكون من الصعب تعديل هذه المفاتيح، لذلك من الضروري والمفيد جدًا تصميم المفاتيح الأساسية والمفاتيح الخارجية أثناء مرحلة التطوير.
المفتاح الأساسي:
تعتمد قواعد البيانات العلائقية على المفاتيح الأساسية، وهي حجر الزاوية في المخطط الفعلي لقاعدة البيانات. المفاتيح الأساسية لها غرضان فقط على المستوى المادي:
1. تحديد الصف بشكل فريد.
2. ككائن يمكن الرجوع إليه بشكل فعال بواسطة المفاتيح الخارجية.
بناءً على الاستخدامين المذكورين أعلاه، إليك بعض المبادئ التي أتبعها عند تصميم المفاتيح الأساسية على المستوى المادي:
1. يجب أن يكون المفتاح الأساسي بلا معنى بالنسبة للمستخدم. إذا رأى المستخدم البيانات في جدول ربط يمثل علاقة متعدد بمتعدد ويشكو من أنها قليلة الفائدة، فهذا يثبت أن مفتاحه الأساسي مصمم بشكل جيد.
2. يجب أن يكون المفتاح الأساسي عبارة عن عمود واحد لتحسين كفاءة عمليات الانضمام والتصفية.
ملاحظة: عادةً ما يعذر الأشخاص الذين يستخدمون المفاتيح المركبة أنفسهم لسببين، وكلاهما خطأ. الأول هو أن المفتاح الأساسي يجب أن يكون له معنى فعلي، ومع ذلك، فإن جعل المفتاح الأساسي ذا معنى يوفر فقط الراحة لتدمير قاعدة البيانات بشكل مصطنع. والثاني هو أنه يمكنك استخدام هذه الطريقة لاستخدام مفتاحين خارجيين كمفاتيح أساسية في جدول ربط يصف علاقة متعدد بمتعدد، وأنا أيضًا أعارض هذا الأسلوب لأن: المفاتيح الأساسية المركبة غالبًا ما تؤدي إلى مفاتيح خارجية سيئة، أي أنه عند ضم الجداول يصبح الجدول الرئيسي لجدول تابع آخر، ويصبح جزءًا من المفتاح الأساسي لهذا الجدول وفقًا للطريقة الثانية أعلاه، ومع ذلك، قد يصبح هذا الجدول الجدول الرئيسي للجداول التابعة الأخرى، ومفتاحه الأساسي قد يصبح الجدول الرئيسي للجداول التابعة الأخرى كجزء من المفتاح الأساسي، إذا تم تمريره بهذه الطريقة، فكلما كان الجدول التابع متأخرًا، زاد عدد الأعمدة التي سيحتوي عليها مفتاحه الأساسي.
3. لا تقم أبدًا بتحديث المفاتيح الأساسية. في الواقع، نظرًا لأن المفتاح الأساسي ليس له أي غرض سوى تحديد صف فريد، فلا يوجد سبب لتحديثه. إذا كان المفتاح الأساسي بحاجة إلى التحديث، فسيتم انتهاك المبدأ القائل بأن المفتاح الأساسي يجب أن يكون بلا معنى بالنسبة للمستخدم.
ملاحظة: لا ينطبق هذا المبدأ على البيانات التي غالبًا ما تحتاج إلى تنظيم أثناء تحويل البيانات أو عمليات دمج قواعد البيانات المتعددة.
4. يجب ألا يحتوي المفتاح الأساسي على بيانات متغيرة ديناميكيًا، مثل الطابع الزمني وعمود وقت الإنشاء وعمود وقت التعديل وما إلى ذلك.
5. يجب أن يتم إنشاء المفتاح الأساسي تلقائيًا بواسطة الكمبيوتر. إذا تدخل الإنسان في إنشاء مفتاح أساسي، فسيكون لذلك معنى آخر غير تحديد الصف بشكل فريد. بمجرد تجاوز هذه الحدود، قد يكون هناك حافز لتعديل المفتاح الأساسي، بحيث تقع الوسائل الرئيسية التي يستخدمها هذا النظام لربط وإدارة صفوف السجلات في أيدي الأشخاص الذين لا يفهمون تصميم قاعدة البيانات.
المفتاح الخارجي هو قيد تكامل على مستوى قاعدة البيانات، وهو أسلوب تنفيذ قاعدة البيانات "التكامل المرجعي" المذكور في كتاب نظرية قاعدة البيانات الأساسية.
بالطبع، يمكن إزالة سمة المفتاح الخارجي إذا لم تعد ترغب في استخدام هذا القيد، فمن المؤكد أنه لن يكون له أي تأثير على البرمجة، ولكن عند إدخال البيانات، لن يتم إجراء فحص "التكامل المرجعي" على البيانات المدخلة. .
على سبيل المثال، هناك جدولين
A(a,b): a هو المفتاح الأساسي، b هو المفتاح الخارجي (من Bb)
B(b,c,d): b هو المفتاح الأساسي
إذا قمت بإزالة سمة المفتاح الخارجي للحقل ب، فلن يكون لها أي تأثير على البرمجة.
كما هو مذكور أعلاه، b في A إما أن تكون فارغة أو قيمة موجودة في b في B. عندما يكون هناك مفتاح خارجي، ستتحقق قاعدة البيانات تلقائيًا مما إذا كانت b في A موجودة في b في B.
1. يعبر التعبير الخارجي عن التكامل المرجعي: وهذا أمر متأصل في البيانات وليس له علاقة بالبرنامج. ولذلك، ينبغي ترك الأمر لنظام إدارة قواعد البيانات.
2. يعد استخدام قواعد البيانات الخارجية أمرًا بسيطًا وبديهيًا، ويمكن أن ينعكس بشكل مباشر في نموذج البيانات، وله فوائد كبيرة من حيث التصميم والصيانة وما إلى ذلك، خاصة عند تحليل قواعد البيانات الموجودة، فالفوائد واضحة جدًا - لم أقم بتحليلها لقد وجدت منذ فترة طويلة قاعدة بيانات مؤسسية موجودة، وقد تم وصف بعض قيود التكامل المرجعي فيها بواسطة مفاتيح خارجية، ويتم تنفيذ بعضها باستخدام المشغلات. بالطبع، قد يكون موجودًا في المستند، لكنه قد لا يكون كاملاً، لكن المفاتيح الخارجية واضحة جدًا وبديهية.
3. بما أنه يمكننا استخدام المشغلات أو البرامج لإكمال هذا العمل (في إشارة إلى قيود التكامل المرجعي)، فقد وفر نظام إدارة قواعد البيانات الوسائل، فلماذا يجب علينا القيام بذلك بأنفسنا؟ وينبغي القول أن ما نقوم به ليس بجودة نظام إدارة قواعد البيانات RDBMS. في الواقع، لم يكن لدى RDBMS المبكر مفاتيح خارجية، ولكن الآن أصبح لديهم جميعًا هذه المفاتيح، وأعتقد أنه من المنطقي أن يضيف بائعو قواعد البيانات هذه الميزة. ومن هذا المنظور، تعد المفاتيح الخارجية أكثر ملاءمة.
4. فيما يتعلق بالراحة، استنادًا إلى المشاريع التي قادتها، أفاد المبرمجون أن إدخال البيانات أثناء تصحيح الأخطاء كان أمرًا مزعجًا بشكل أساسي: إذا كانت البيانات يمكن أن تنتهك التكامل المرجعي، فإن التكامل المرجعي نفسه لا يتعارض مع أعمال السمعة. لا ينبغي استخدام برنامج العقود الآجلة الزناد، وإلا فهذا يعني أن البيانات خاطئة ولا ينبغي إدخالها في قاعدة البيانات على الإطلاق! علاوة على ذلك، يجب أن يكون هذا أيضًا جزءًا من نظام الاختبار: حظر البيانات غير القانونية. في الواقع، يجب أن يتعامل برنامج الواجهة الأمامية مع فشل الإرسال هذا. البيانات ملك للمؤسسة، وليس للبرنامج، ويجب فصل البرامج المخزنة عن البيانات قدر الإمكان، والعكس صحيح.
وأخيرا، اسمحوا لي أن أتحدث عن عدة مبادئ لبناء المفاتيح:
1. إنشاء مفاتيح خارجية للحقول ذات الصلة.
2. يجب أن تكون جميع المفاتيح فريدة.
3. تجنب استخدام المفاتيح المركبة.
4. ترتبط المفاتيح الخارجية دائمًا بحقول مفاتيح فريدة.
هذه المقالة مأخوذة من مدونة CSDN، يرجى الإشارة إلى المصدر عند إعادة الطباعة: http://blog.csdn.net/c04s31602/archive/2009/12/30/5107568.aspx .