ما هي قاعدة بيانات NoSQL ؟

11934945_1051030848275415_7434842817154608697_n
في البداية ، نتعرف على أنواع قواعد البيانات حيث يوجد عدة أنواع هيكلية لقواعد البيانات ، تعلمون الشبكية والهرمية والعلائقية، والكائنية ………..إلخ
لا يخفى عليكم النوع المشهور ، وهي قواعد البيانات العلائقية Relational Database ، وهي القواعد المشهورة ( والتي نعرفها ) أوراكل Oracle ، سكول سيرفر SQL Server ، أكسيس، MySQL … إلخ

الكثير من الكلام حول هذه القواعد، ولكن ما يهمنا أمرين: الأول أن هذه القواعد تخزن البيانات على شكل جداول – كما يعلم الجميع -، والأمر الثاني، أن هذه الجداول مرتبطة بعلاقات بينها

هنالك نوع OOP Database وهي من اسمها قاعدة معتمدة على الكائنات في بنيتها، وهنالك نوع من قواعد البيانات يسمى Document Oriented Database أو Document Store أو قواعد NoSQL…

إذاً ماهو تعريف NoSQL وماهي فائدتها ؟
هي قواعد بيانات تتيحُ تخزينَ واسترجاع البيانات بعد نمذجتها بتقنيات تختلفُ عن تلك المستخدمة في نمذجة البيانات في قواعد البيانات
العلاقاتية. ويميلُ المطورون إلى استخدام هذا النوع من قواعد البيانات لما تقدمه من بساطة في التصميم، وقابلية التوسع أفقياً، وزيادة في التحكم على حساب الجاهزية.
يتزايد استخدام NoSQL بشكل كبير في تطبيقات البيانات الكبيرة Big Data وتطبيقات الزمن الحقيقي(Real-Time Applications). ويأتي الحديث عن هذه
التقنية للتخلص من التكلفة الكبيرة لقواعد البيانات العلائقية وبطئها الشديد واستخدام تقنيات أرخص وأكثر فعالية في إدارة البيانات.

هذه القواعد يتم تخزين البيانات فيها على هيئة ملفات مرمزة Encoded بصيغ معروفة مثل XML أو JSON ، أو حتى ملفات كالوورد أو الأكروبات PDF، المقصد هي في النهاية ملفات كالملفات النصية، تحتلف عن ملفات القواعد العلائقية
حيث تخزين البيانات في هذه الملفات يتم بسهولة، وبدون وجود بنية صارمة كما في القواعد العلائقية.
وهي أقرب لصيغة JSON أو XML ، وهنالك عدة خوارزميات متبعة في هذه القواعد، وتختلف اختلاف كبير في طريقة تخزين واسترداد البيانات، فهنالك مثلا أنواع يتم فيها استرداد البيانات عن طريق اسم فريد بكل حقل، وهو مشابه أيضا لمبدأ المفتاح والقيمة Key-Value .

ما الذي يميز قواعد NoSQL على القواعد العلائقية ؟
قواعد البيانات العلائقة تحتاج للعديد من الموارد ، وتحتاج لخبرة عالية لإدارتها، وخبرة في تصميمها وتنصيبها وضبط إعداداتها، بينما قواعد بيانات NoSQL مصممة لتحتاج أقل إدارة، وأقل صيانة

أيضا هنالك صعوبات في التعامل مع ملفات القاعدة كتقسيم الملفات Clustering ونقل البيانات، والمقصود هنا أن قواعد البيانات العلائقية لا تتعامل بكفاءة مع الكميات الضخمة من البيانات ، مثلا كموقع الفيسبوك، حيث كمية البيانات المخزنة ضخمة جدا، وكمية العمليات على القاعدة ضخمة جدا، وأساسا لم يتم تصميم قواعد البيانات العلائقية لتحميل هذا الكم الهائل من البيانات والعمليات عليها،

كذلك قواعد بيانات NoSQL تستخدم في حالة كان هنالك بيانات، وكمية هذه البيانات والعمليات عليها ضخمة، وغير مهم وجود العلاقات بينها، والمهم هنا استرداد هذه البيانات الضخمة بكفاءة عالية.

ما زال أمام نموذج قواعد البيانات العلائقية المعتمدة على SQL سنوات طويلة قبل أن تزاح من تطبيقات حفظ البيانات ، و لكن بسبب نموذج المفتوح المصدر لتطوير قواعد بيانات NoSQL و بسبب نشرها المتكرر في خدمات منتجة ستوفر بديل سريع التحسن أو مكمل لقرينتها المعتمدة على SQL ، ستظل قواعد بيانات SQL محافظة على مزاياها من ناحية تقديم معاملات تحت مفهوم ACID ( الذرية ،التناسق ، العزل ،الدوام) ، و قدرات علائقية مما يجعلها أفضل خيار للعديد من استخدامات الأعمال ، كذلك لم تتوقف تقنية قواعد بيانات SQL ؛ فعلى سبيل المثال Ingres تضع تقنية VectorWise في قاعدة بياناتها ليعطيها قدرات لمنافسة خازنات الأعمدة في مجال تحيل البيانات.

كذلك تمثل قواعد بيانات NoSQL قوة مثيرة و جديدة في أعمال تخزين البيانات و استرجاعها ؛ بتطبيق تقنيات طالما تجاهلت بسبب أنها لم تتناسب مع كيفية التي تدار بها الأشياء بواسطة SQL ، نحن الآن ننتقل إلى وقت تختلط فيه الأشياء في عالم تخزين البيانات و استرجاعها……. ..للمقاله بقيه انتظرونا ..