الأربعاء، 27 ديسمبر 2017

الدرس التاسع محددات SQL او SQL Constraints

محددات SQL او SQL Constraints هي عبارة عن قواعد تستخدم للتحكم في البيانات التي يتم خزنها في الجدول ولها فوائد كثيرة مثلا يمكن ان نحدد نوع وقيمة البيانات التي يمكن ادخالها في الحقول على سبيل المثال المحدد NOT NULL اذا اضفناه بعد اسم الحقل سوف لا يسمح للمستخدم بترك هذا الحقل فارغ ويجبره على ادخال قيمة في هذا الحقل والا سوف لن تتم عملية اضافة او تعديل البيانات وهذه ميزة مهمة. بصورة عامة ان المحددات سوف تعمل على زيادة دقة البيانات و الوثوقية (accuracy and reliability) واذا حصل اي انتهات اك بين المحددات و عمليات البيانات فأن نظام SQL Server  سوف يلغي هذه العمليات ولايظهر تأثيرها على البيانات. مثلا في جدول الزبائن اذا استخدمنا NOT NULL Constraint مع حقل الاسم فأذا حاول التطبيق او المستخدم ان يكون سجل جديد( عن طريق عبارة INSERT ) وترك الاسم فارغ فان SQL Server سوف يلغي عملية (INSERT) وذلك لان هذه العملية تنتهك القاعدة التي وضعها محدد NOT NULL الا وهي يجب اعطاء قيمة محددة لحقل الاسم. لذلك من السهل فهم المحددات على انها قوانين توضع للتحكم بشكل دقيق في البيانات التي يتم خزنها في الجداول. 
مثال اخر على المحددات التي يمكن اضافتها يمكن اضافة محدد الى حقل العمر في جدول الزبائن والذي كان عبارة عن حقل من نوع رقم صحيح (CUTSOMER_AGE INT) للتحكم بقيمة البيانات بحيث تسمح فقط بأدخال القيم العددية التي تكون اكبر من الصفر. رغم الفوائد الكثيرة للمحددات يجب كذلك استخدامها بحكمة لان الاكثار من المحددات (الغير ضرورية) قد يؤدي الى اثار غير مرغوبة مثلا صعوبة ادخال وتعديل البيانات في الجداول وبعض الاحيان قد تؤدي الى بطىء في عمل النظام خصوصا في الانظمة التي تتعامل مع كم هائل من البيانات وبشكل متزامن. 
هناك العديد من المحددات وسوف نشرحها في مواضيع منفصلة لاهميتها وفي ما يلي قائمة بأنواع المحددات والاستخدامات العامة لها 
  • NOT NULL يضمن ادخال قيم في الحقل ولا يسمح بأستخدام القيمة الفارغة (NULL Value) في الحقل.
  • UNIQUE يضمن ان تكون جميع القيم في الحقل فريدة ولا يسمح بتكرار القيم وهذه من خصائص PRIMARY KEY او المقتاح الاساسي.
  • PRIMARY KEY  المفتاح الاساسي من اهم المحددات وهو يمزج بين المحددين NOT NULL  و UNIQUE  
  • FOREIGN KEY المفتاح الاجنبي وهو يعرف بشكل فريد الاسطر ولكن في جدول ثاني غير الجدول الحالي اي هو عبارة عن حقل PRIMARY KEY  المفتاح الاساسي في جدول اخر.
  • CHECK يضمن ان جميع القيم للحقل تتبع قاعدة معينة مثلا قاعدة حقل العمر التي شرحناها اعلاه
  • DEFAULT يضمن اعطاء قيمة افتراضية للحقل في حالة عدم تحديد قيم لهذا الحقل. 
  • INDEX وهو محدد مهم جدا يساعد في تحسين سرعة وكفاءة التطبيق عن طريق فهرسة البيانات مما يسرع عمليات استعادة البيانات. 

ليست هناك تعليقات:

إرسال تعليق