اذهب إلى المحتوى

السؤال

Recommended Posts

  • 2
نشر

لنقم أولا بفهم كل منهما كالتالي : 

  • NoSQL هو نظام قواعد بيانات غير علائقي يقوم بتوفير آلية لتخزين واسترجاع البيانات التي تم تصميمها بتقنيات أو طرق غير العلاقات المجدولة المستخدمة في قواعد البيانات العلائقية مثل الشائع استعمالها في SQL  . 

  • SQL , ترجمة عن Structured Query Language , لغة الاستعلامات البنائية (أو البنيوية) . هي لغة برمجة غير اجرائية تستخدم في مضمونها مفاهيم مثل العلاقات و الفهرسة .

فكلاهما لغتان برمجيتان غير إجرائيتين ، أي أنهما يختلفان عن لغات البرمجة المعتادة مثل C ، فهي لغات متخصصة للتعامل والتحكم مع قواعد البيانات المترابطة من خلال التعامل مع تراكيب البيانات وإجراء عمليات إدخال البيانات والحذف والفرز والبحث والتصفية والتعديل و غيره . 

و نلقم بتلخيص الفروقات التالية بينهما كالتالي : 

  • من حيث نموذج تخزين البيانات Data storage model : فـ SQL تعتمد جداول بأعمدة و صفوف ثابتة و مرنة , على عكس NoSql التي تستعمل مفاهيم أخرى مثل مفتاح - قيمة (Key - Value NoSQL Database) , الجدول الكبير (Big table) و غيرها .. 
  • من حيث الهدف من إنشاء كل منهما . فـ SQL أنشئت للغرض العام , في حين أن NoSql تستوعب كميات كبيرة من البيانات مع استعلامات بحث بسيطة ،أو مع أنماط استعلام يمكن التنبؤ بها .  
  • من حيث السهولة و السرعة : تعتبر NoSql أسهل منطقا و تجريدا و تعاملا و أسرع مقارنة بـ SQL .  
  • من حيث التوسع : تتطلب منك معظم قواعد بيانات SQL التوسع عموديًا ( مثل الإضطرار إلى الانتقال إلى خادم أكبر وأكثر تكلفة) عندما تتجاوز متطلبات السعة لخادمك الحالي . على العكس من ذلك ، تسمح لك معظم قواعد بيانات NoSQL بالتوسع أفقيًا ، مما يعني أنه يمكنك إضافة خوادم سلعة أرخص كلما احتجت إلى ذلك .  

  • من حيث الإستعمال : تعتبر SQL أفضل بكثير في جانب تنظيم البيانات ,فلو كانت بياناتك منظمة للغاية ، ولا تتغير بنية أو تركيبا بشكل متكرر فـ SQL أفضل بكثير . على عكس NoSql التي يكون استعمالها شائع من حيث التعامل مع البيانات غير المهيكلة أو شبه المنظمة التي لا تتناسب مع النموذج العلائقي الذي تستعمله SQL . 

  • من ناحية الأمان : يعتبر الكثير SQL أكثر أمانا , و أفضل حلا عندما يتطلب الأمر درجة عالية من سلامة البيانات وأمانها .

يمكنك القراءة أكثر عن شرح الفروقات بين قواعد بيانات SQL ونظيراتها NoSQL . 

كما قد تحتاج الإطلاع أكثر عن NoSQL مقابل SQL و حالات إستخدام كل واحد منهما . 

  • 2
نشر

كلمة nosql هي كلمة عمومية بعض الشئ, حيث أن المقصود بال nosql هو أي نوع من أنواع قواعد البيانات التي ﻻ تتبع لغة الsql , من الممكن أن تكون قاعدة البيانات تلك من النوع

  • مفتاح وقيمة(key- value) حيث تعتمد على تخزين البيانات على هيئة مفتاح وقيمة, حيث يجب معرفة المفتاح حتى تستطيع الوصول إلى قيمته مثل قاعدة بيانات Redis
  • وثائقية(document store) حيث تعتمد على تخزين البيانات على هيئة وثائق تُشبه ملفات الjson مثل قاعدة بيانات MongoDB
  • تخزين الرسم البياني( graph store) والتي تعتمد على تخزين البيانات على هيئة هيكل بيانات الgraph مثل قاعدة بيانات Neo4j

وأما قواعد بيانات الsql هي قواعد البيانات التي تعتمد في إستعلاماتها وعملياتها على لغة الsql مثل oracle, mysql, postgresql

وبالنسبة لسؤالك أيهما تستخدم فذلك يعتمد على نوع البيانات المُراد تخزينها ونوع العمليات المُراد تنفيذها على تلك البيانات ويمكنك معرفة الإجابة على سؤالك بعد قراءة المقارنة التالية

  1. سرعة التطوير أو الإنتاجية: الsql تحتاج إلى تصميم جيد للschema حتى تقوم بتخزين البيانات بشكل فعال والإستفادة من خصائص قواعد البيانات العﻻئقية , وبالتالي يُهدر المطور وقتاً في تصميم قاعدة البيانات, على الجانب الأخر بما أن قواعد بيانات الnosql تعتمد على unstructured-data فإن المُطور ﻻ يحتاج إلى التفكير وقتاً طويلاً في تصميم قاعدة البيانات بالإضافة لسهولة تعديل التصميم في الnosql على عكس الsql التي تحتاج إلى عدداً من الأوامر حتى تستطع تعديل التصميم
  2. سرعة الكتابة : بما أننا قلنا أن ال nosql ﻻ تحتاج إلى مخطط (schema) هذا يجعل إدخال البيانات سواء بالتحديث أو الإنشاء(create/ update)  يتم في غاية السرعة على عكس قواعد البيانات sql التي تحتاج إلى القيام بعمليات تصديق(validation)  على البيانات قبل إدخالها مما يُبطئ من عملية الكتابة
  3. سرعة القراءة: في تلك النقطة تتفوق الsql بجدارة نظراً لتنظيم البيانات ووجود مخطط واضح مما يُسهل عملية الوصول إلى البيانات وسرعة عملية القراءة بالإضافة إلى تقنية الفهرس ( index technique) التي تجعل من عملية القراءة سريعة 

إذا ماذا تستخدم؟ إن كنت تحتاج إلى قاعدة بيانات منظمة وواضحة وسهل قراءة البيانات والوصول إليها, أو كنت تحتاج إلى تخزين بيانات مرتبطة ببعض , أو تحتاج قاعدة بيانات تضمن لك سﻻمة البيانات وتنظيمها فعليك إختيار قواعد بيانات الsql

على الجانب الأخر إن كنت بحاجة إلى تخزين كمية ضخمة من البيانات غير المنظمة فهنا عليك إختيار الnosql 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...