علائقية أم غير علائقية ماهي قاعدة البيانات الأفضل لمشروعي؟
ماهي قاعدة البيانات الأفضل لمشروعي ؟ هذا سؤال متواجد بكل مواقع النقاش والمجموعات المتعلقة بالبرمجة, حسناً قبل النقاش والخوض بالفروقات والتفاصيل التقنيه والاجابة على هذا السؤال يجب عليك معرفه احتياجات مشروعك بشكل أولي على الأقل وحاول رسم قاعدة البيانات على الورق وتخيل المستقبل لهذه البيانات.
وحتى تستطيع تحديد نموذج العمل الأولي الخاص بك لقاعدة البيانات فقط فإنه يتوجب عليك طرح الأسئلة الدقيقة والغامضة والغير ذكية أيضاً عن مشروعك وبجب أن لاتسأل أسئلة تقليدية بسيطة وذات الاجابات البديهية لأنها لن تعطيك حلول كافية وبالتالي لن تكون قاعدة البيانات الخاصة بك إن كانت علائقية أو غير علائقية حل مثالي لمشروعك ولحياة المشروع الخاص بك.
حسناً هل أنت جاهز للانتقال لمرحلة أخرى أعمق بعد وضع النموذج الخاص بك؟ … دعنا نبدأ :
بنية قواعد البيانات العلائقية
قواعد البيانات من هذا النوع مثل MySQL, PostgreSQL, SQLite تقوم بحفظ البيانات في جداول وسطور بداخلها وهي مبنية بالمبدأ الجبري المعروف بالجبر العلائقي,
قواعد البيانات العلائقية تستخدم لغة الاستعلامات المهيكلة أو SQL مما يجعلها جيدة للتطبيقات التي تعمل بعمليات متعددة بنفس الوقت.
بنية قواعد البيانات الغير علائقية
قواعد البيانات الغير علائقية مثل MongoDB فإنها تخزن البيانات بمجموعات “collections” في ملفات JSON
ومن السهل تخزين أي شيء فيها ولايوجد أي قيود مثل التي تفرضها قواعد البيانات العلائقية لمعرفة البيانات قبل أن يتم حفظها ولن تظهر لك رسالة خطأ في حال حفظ محتوى من غير نوع الحقل لأنه لايوجد نوع للحقل أصلاً وقواعد البيانات من هذا الشكل جيدة لتخزين وجلب بيانات كبيرة بدون تقسيمها لجداول وانشاء علاقات بينها.
بعض المقارنات بين نوعي قاعدة البيانات
التكلفة: قواعد البيانات الغير علائقية تكون أرخص من العلائقية بشكل نسبي
شكل البيانات: البيانات بقواعد البيانات العلائقية تكون على شكل جداول وسطور بداخلها أما بقواعد البيانات الغير علائقية فتكون بمجموعة ملفات وبمحتوى json.
المرونة بالبيانات: من النقطة السابقة يتوضح لنا أن قاعدة البيانات الغير علاقية أسهل بالتعديل واضافة حقول جديدة فيها بيمنا قواعد البيانات العلائقية الأمر أصعب نوعاً ما.
الاستعلامات: قواعد البيانات العلائقية تكون استعلاماتها “SQL” أو Structured Query Language أما بقواعد البيانات الغير علائقية فتكون استعلام عن الكائنات Object Querying وهذا يعني انه يتم تمرير كامل الـObject بحسب الطلب المرسل
الأداء: أداء قواعد البيانات العلائقية يكون سيء كسرعة وأحجام تخزين كبيرة بينما قواعد البيانات الغير علائقية تكون غالباً بأداء أعلى.
التطبيق: في حال كانت البيانات تقريباً محددة ولديك توقع عن حجمها النهائي فستكون قواعد البيانات العلائقية جيدة وإلا فالغير علائقية ستكون أفضل في حال البيانات المعقدة وبأحجام كبيرة وبتداخلات وعلاقات كثيرة فيما بينها.
الأن يتوجب علينا الاجابة على السؤال الأساسي وهو:
أي قواعد البيانات أفضل لمشروعي القادم؟
أخشى أن تكون الحقيقة صادمة قليلاً فلايوجد شيء أفضل بشكل مطلق وبشكل دائم بل هذا سيكون معتمد على مشروعك وشكل البيانات التي سيحتويها.
وبالتأكيد فإن تحليل المشروع ودراسة البيانات التي سيحويها المشروع سيكون من أهم العوامل التي ستساعدك لتحديد ماهو الأفضل لك
أيضاً دائماً تذكر عند دراسة قواعد البيانات أن يكون لديك تخيل لشكل البيانات في حال عمل المشروع وانطلاقه أي تخيل أن يكون لديك مثلاً مليون زائر بنفس اليوم لموقعك وعلى هذا الأساس أعتقد انك ستغير وجهة نظرك بالكثير من تحليل قاعدة بيانات وحتى شكل المحتوى الموجود بداخلها.
يجب عليك أن تدرس جداولك والحقول والعلاقات بينها فهذا أيضاً شيء مهم جداً لك لاتخاذ القرارات الصحيحة
أخيراً ما أريد ايصاله بهذه التدوينة كما ذكرت سابقاً أن يكون لديك تصور كامل وبعيد المدى عن ماسيكون بين يديك من بيانات وعندها ستستطيع أنت أن تحدد ماهو الأفضل لمشروعك وسيتضح لك بشكل أكبر ماهو الأنسب لتبدأ به وتذكر ان التخطيط والتعديل بالبدايات سيكون أفضلبأضعاف من التعديل بعد سنه وأيضاً عليك أن لاتصدق من يقول أن هذا الأمر أفضل بالنسبة لمشروعك بشكل مطلق.