تقنية

المفتاح الأساسي في البيانات: كيف نحدد السجل المقصود؟

معرفا ص21 وص34 يميزان صندوقين افتراضيين يشتركان في وصف أوراق خضراء
رسم أصلي لفصل هوية السجل عن الوصف المشترك؛ لا توجد صناديق مفحوصة فعليا.

المفتاح الأساسي في البيانات يحدد صفا بعينه داخل جدول. في PostgreSQL يمكن أن يتكون من عمود أو مجموعة أعمدة، ويشترط أن تكون قيم المفتاح فريدة وغير null. تحديد هوية الصف يختلف عن مجرد عرض وصف مألوف له. [1]

الخلاصة السريعة

اختر حقلا أو مجموعة حقول تعرّف السجل دون التباس في نطاق الجدول. افصل هذا التعريف عن وصف الشيء وعن تقييم جودة بياناته؛ اختلاف المفتاح لا يثبت اختلاف كل التفاصيل أو صحة تسجيلها.

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

ماذا يضمن تعريف المفتاح هنا؟

توضح وثائق PostgreSQL أن الجدول يمكن أن يملك مفتاحا أساسيا واحدا، ولو كان مكونا من عدة أعمدة. [1]

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

هل يتكرر السجل لأن الوصف نفسه؟

تخيل صندوقين ورقيين افتراضيين، يحمل كل منهما الوصف «أوراق خضراء». نرمز إلى الأول ص21 وإلى الثاني ص34. إذا كانا صندوقين مستقلين في تعريف المصدر، فاشتراكهما في الوصف لا يحولهما إلى سجل زائد يجب حذفه.

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

معرف الصندوقالوصفوحدة الهوية في المثال
ص21أوراق خضراءصندوق مستقل
ص34أوراق خضراءصندوق مستقل آخر

كيف يعمل تعريف مركب من جزأين؟

في مثال تخزين آخر، نفترض مواضع ثابتة على أرفف. الزوج «رف أ، موضع 1» يختلف عن «رف ب، موضع 1»، وكذلك عن «رف أ، موضع 2». تكرار رقم الموضع على رف آخر لا يكرر الزوج. نصرح بأن الهوية هنا موضع تخزين، لا الصندوق الذي ينتقل إليه.

إذا تحرك صندوق بين المواضع، فقد يتغير مكانه مع بقاء الصندوق نفسه. لذلك لا نستعمل معرف الموضع كهوية دائمة للصندوق إلا إذا كانت المهمة تقصد الموضع فعلا. كتابة جزأين معا لا تعالج هذا القرار الدلالي تلقائيا؛ نحدد ما الشيء الذي نريد متابعته أولا.

كيف يفيد هذا قبل إعداد بيانات النموذج؟

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

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

المصادر ومتابعة القراءة

  1. PostgreSQL 18: Constraints — Primary Keys and Unique Constraints (يفتح في نافذة جديدة)postgresql.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.