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