Constraints in Database
الكاتب: Mr.Aziz
تاريخ النشر: 2021-06-12 11:47:37
مساءكم الله بالخير...
اليوم راح اشرح لكم عن القيود في Database و طبعآ القيود ضروري جدآ في عالم قواعد بيانات لانه هي راح تعطي الحدود او الاصلاحيات الى البيانات و القيمة راح تكون مخزنه.
مثلآ: لو عندي موقع لما تجي تسجل و تجي عند خانة العمر وقوانين تقول لايسمح الى عمره اقل من 12 يسجل تمام. لو جيت اسجل بعمر 10 سنوات راح يعطيني مرفوض او غير مسموح لي ولكن لو عملت عكس أخترت العمر 15 راح يسمح لي ان اسجل بكل سهوله.
ومثال ثاني: خلينا نقول مكتبة وفي عشرين الف كتاب و كل كتاب له ISBN مميز و كل كتاب راح يكون مخزن في قواعد بيانات و اكيد ISBN راح يكون UNIQUE وغير متكرر. ومستحيل تحصل كتابين مكتوب بنفس الرقم مرتين لانه هذا رقم مميز.
راح أشرح كل قيود ومعاه مثال بالصوره لتوضح الفكرة بشكل افضل.
- Not NULL: هذا النوع من القيود لايسمح بالقيمة تصبح فارغه او NULL بعمنى لازم يكون لها قيمة او غير مسموح لها ان تبقي بدون قيمة
مثال بالصوره:
بالبدايه عملت جدول و خانة وحده الى هي اسم سياره لكي نجرب الموضوع
بالجدول وضعنا NOT NULL امام names بحيث يكون قيمة لايسمح لها ان تكون فارغه.
لما جينا ندخل قيمة NULL الى هي بدون قيمة بالاساس يطلع لنا هذا الخطأ
بسبب وجود قيود من نوع NOT NULL ولكن لو وضعنا قيمة mycar راح يقبلها بسبب وجود قيمة.
- UNIQUE: هذا النوع من القيود ان يكون البيانات غير متكرره و فريد من النووع. يعني قيمة نفسها تكون فريد وليس متكرره.
هنا مثال بالصوره:
بالصوره نلاحظ اننا عملنا جدول و الاسم من النوع Unique تمام.
لما نجي نحفظ نفس قيمتين و نعمل Run بالبداية راح يظهر تم حفظ اول قيمة camry ولكن ثانيه camry لا يقبل بسبب القيود التكرار وتطلع هذي رسالة
تلاحظ لما اغير القيمة الثانيه الى Toyota و اعمل RUN راح يصير عكس بسبب اول قيمة camry هي موجوده ولااقدر اضيفها مره ثانيه بسبب القيود.
- Primary key: سبق شرحناها بالدرس السابق هو مفتاح الاساسي و يكون نوع غير متكرر و فريد من النوع. كا Parent
- Foreign key: تابعه المفتاح الاساسي ويكون مرجع له كا Child
لنسهل الموضوع سوينا جدولين
اول جدول الاشخاص ويكون فيه مفتاح الاساسي PK و الجدول ثاني اسمه سيارات يكون فيه فقط اسم السياره و FK مفتاح الفرعي يرجع الى جدول الاول.
انا ماحطيت مفتاح الاساسي بالجدول الثاني عشان توضح الفكره بشكل افضل.
راح تلاحظ لما جينا ندخل القيمه مثلآ Aziz عنده 3 سيارات و خالد عنده سيارتين
اسماء سيارات ادخلناها ثم وضعنا مفتاح الفرعي الى يربط الى جدول الى فيه مفتاح الاساسي.
- CHECK: هذا النوع من القيود يشيك اذا كان الشرط صحيح ولالا. نفس المثال الى وضحته بأول موضوع الى هو اذا كان عمر شخص اقل من 12 مايسجل واذا اعلى مسموح له .
مثال بالصوره:
هنا عملنا جدول العمر
اسم و عمر ولكن العمر المسموح اعلى من 12 او يساوي 12 ولا يرفض.
مثل ماتلاحظ لما نحط العمر 10 ماراح يقبل ويطلع خطأ بسبب القيود. ولكن اذا حطينا 12 او 13 وفوق راح يقبل بكل سهوله ومافي اي مشاكل..
- DEFAULT: هذا النوع من القيود يكون افتراضي من تلقاء نفسه. يعني في حال وجود بيانات لايوجد لها قيمة او null راح تصبح كلمة الافتراضيه الى مختار لها.
و كذا أنتهينا من الدرس اليوم
أشوفكم المره القادمة...