Abdulrahman AlShaikh
Abdulrahman AlShaikh

@a_skhalil93

13 تغريدة 12 قراءة Jan 05, 2022
من فترة وانا افكر اكتب عن شي في مجال عملي ومحتار واحس انه ممكن ما اقدر اوفي الموضوع حقه وتخاذلت
اليوم قررت اغامر وارتجل وراح اتكلم عن قواعد البيانات (databases) بالعربي
على بركة الله
ما هي قاعدة البيانات؟
هو نظام الهدف منه حفظ البيانات بشكل شبه دائم والعودة لهذه البيانات واستخدامها من قبل نظام واحد او اكثر
مثال: احتاج احفظ بيانات الزوار عندي وارجع لها وابحث فيها. هنا ممكن نستخدم قاعدة بيانات
ليش قلت شبه دائم؟
أغلب الأوقات بس احد يتكلم عن قاعدة البيانات يجي ببالنا الشي المعتاد اللي هما SQL databases مثل MySQL, Postgres أو Microsoft SQL وهذي انواع تحفظ البيانات بشكل دائم بمعنى أنه لو صار إعادة تشغيل لنظام قاعدة البيانات ما راح تضيع البيانات … يتبع
بينما بعض الأنواع تفقد كل البيانات بمجرد إعادة التشغيل بسبب أنها تحفظ البيانات في الذاكرة RAM وليس القرص الصلب Disk
وش أنواع قواعد البيانات؟
في أنواع كثيرة جداً وما أعتقد أقدر أذكرها جميعاً خصوصاً أني حاب أركز على نوع معين منهم فحذكر بعضها
- قواعد البيانات المعتمدة على العلاقات (Releational Databases) وهي محور حديثنا
- NoSQL مثل MongoDB
- Key-Value مثل Redis
ما هي الReleational Databases؟
هي قواعد بيانات تتميز بالقدرة على إنشاء علاقات بين العناصر المخزنة داخلها
مثال: لو كان عندنا جدول فيه بيانات الطلاب وجدول فيه بيانات المواد هنا نقدر نسوي علاقة بين الطلاب والمواد بحيث نحدد كل طالب وش المواد المسجل فيها … يتبع
هنا قاعدة البيانات راح تتأكد ان العلاقة دائماً صحيحة بمعنى انه لا يمكن لطالب أنه يأخذ مادة غير موجودة في قاعدة البيانات
ما هي أنواع العلاقات في قاعدة البيانات؟
قاعدة البيانات تمكنك من برمجة علاقة واحدة وهي إنه جدول يحتوي على معرف من جدول آخر وهذا يعتبر هوا زبدة الموضوع
الأنواع:
- واحد لواحد (one-to-one) بمعنى أنه كل عنصر من أ مرتبط بعنصر واحد من ب
مثال:
لنفترض أن أ هو طالب و ب هو صورة الطالب
كل طالب يمكن أن يكون له صورة واحدة وكل صورة يجب أن ترتبط بطالب واحد
- واحد لمجموعة (one-to-many) بمعنى أن عنصر أ يرتبط بأكثر من عنصر من ب لكن ب يرتبط فقط بعنصر واحد من أ
مثال:
طلبات المطاعم. العميل يستطيع عمل أكثر من طلب بينما الطلب الواحد يرتبط بعميل واحد فقط
- مجموعة لمجموعة (many-to-many) بمعنى أن عنصر أ يرتبط بأكثر من عنصر من ب وعنصر ب يرتبط بأكثر من عنصر من أ
هذه العلاقة لتتم داخل قاعدة البيانات يجب إنشاء جدول ربط يسمى join table الهدف منه توثيق العلاقة … يتبع
مثال:
الطلاب والمواد. الطالب يستطيع التسجيل في أكثر من مادة والمادة يمكن أن يسجل فيها أكثر من طالب.
الحل هنا إنشاء جدول جديد يسمى تسجيل المواد يحوي الطالب والمادة معاً لكل تسجيل طالب في مادة
هذا ما تيسر ذكره الليلة وإن شاء الله أتابع لاحقاً التحدث عن لغة التعامل مع قواعد البيانات SQL

جاري تحميل الاقتراحات...