قاعدة بيانات MongoDB
MongoDB قاعدة بيانات تحفظ كل سجل كمستند مرن مستقل، فيستطيع منتجان أن يحملا تفاصيل مختلفة تمامًا دون إجبارهما على قالب واحد ثابت.
يُعرف أيضًا بـ قاعدة بيانات مستندية قاعدة بيانات NoSQL مونجو
التعريف
MongoDB مكان تحفظ فيه بياناتك، والفرق بينه وبين غيره هو الشكل الذي يحفظها به. فأغلب قواعد البيانات تعمل مثل جدول إكسل، حيث لكل صف الأعمدة نفسها وعلى كل صف أن يملأها. أما MongoDB فيحفظ كل سجل وحده في كتلة صغيرة اسمها مستند، ولهذا لا يحمل المستند إلا الحقول التي يحتاجها فعلًا.
كتالوج المنتجات يوضح الفكرة، فالحذاء له مقاس ولون بينما اللابتوب له معالج وحجم شاشة. أما كيس القهوة فلا يشبه أيًّا منهما، لأن ما يحتاجه هو تاريخ التحميص. ولو دفعت الثلاثة في جدول واحد لحصلت على عشرات الأعمدة الفارغة عند معظم المنتجات، وهذه هي الفوضى التي يتجنبها MongoDB. فهناك يحفظ الحذاء بيانات الحذاء، ويحفظ اللابتوب بيانات اللابتوب، ولا يعرف أحدهما شيئًا عن الآخر.
لهذه الحرية ثمن، وهو الجزء الذي لا ينبهك إليه أحد. فلا شيء يمنع سجلين من الاختلاف، إذ يستطيع منتج أن يحفظ سعره كرقم 100 بينما يحفظه منتج آخر كنص "100". ويقبل النظام الاثنين بلا اعتراض. ثم يرتب أحدهم الكتالوج حسب السعر فيخرج الترتيب خاطئًا، لأن النص يُقارن حرفًا بحرف فيأتي "100" قبل "9". والقواعد لم تختفِ، بل انتقلت إلى البرنامج الذي يكتبه فريقك، وهذا عمل أكثر لا أقل. ولهذا تتفق لينكي سوفت لنظم المعلومات على هذه القواعد في اليوم الأول من مشروع تطبيق ويب، لأن إصلاحها لاحقًا على مليون سجل قديم أسبوع سيئ.
لذلك يناسب MongoDB الحالات التي تكون فيها السجلات مختلفة فعلًا، مثل كتالوجات المنتجات وإجابات النماذج وسجلات الأحداث وكل ما يتغير شكله مع تغير العمل. ولا يناسب البيانات المرتبة التي يجب أن تكون حساباتها دقيقة، ولهذا تبقى قاعدة البيانات الجدولية العادية أأمن للفواتير والمدفوعات. وكثير من الأنظمة تشغّل النوعين معًا في وقت واحد. فنظام محل مثل ستوريك يحمل الكتالوج الذي يتغير شكله باستمرار بجانب المال الذي لا يحتمل خطأ واحدًا في التقريب.
واسأل أي مورّد سؤالًا واحدًا قبل التوقيع، وهو ماذا يحدث حين يتغير معنى حقل ما العام القادم. فإن كانت الإجابة أنهم سيكتبون حقلًا جديدًا ببساطة، فاسأل من يصلح السجلات القديمة. ثم اطرح السؤال نفسه على الهاتف، لأن تطبيق الجوال الذي يحفظ العمل بدون إنترنت يبقي المستندات على الجهاز أيامًا. وبعض هذه الأجهزة ما زال يشغّل نسخة العام الماضي، ولهذا تعامل لينكي سوفت الأمر كسؤال تصميم لا كسؤال قاعدة بيانات. والإجابة عنه هي غالبًا الفرق بين سنة ثانية هادئة وأخرى متعبة.
أسئلة حول قاعدة بيانات MongoDB
هل MongoDB أفضل من MySQL؟
هل استخدام MongoDB مجاني؟
هل أستطيع إخراج بياناتي من MongoDB لاحقًا؟
هل ما زال MongoDB يحتاج إلى نسخ احتياطي؟
هل MongoDB خيار جيد لعمل صغير؟
ما زلت غير متأكد كيف ينطبق هذا على مشروعك؟
أخبرنا بما تبنيه وسنجيبك بلغة واضحة.