it-swarm.asia

ما هي الاختلافات بين NoSQL و RDBMS التقليدية؟

ما هي الاختلافات بين NoSQL و RDBMS التقليدية؟

على مدار الأشهر القليلة الماضية ، تم ذكر NoSQL بشكل متكرر في الأخبار الفنية. ما هي أهم ميزاته بالنسبة لنظام إدارة قواعد البيانات (RDBMS) التقليدي؟ على أي مستوى (مادي ، منطقي) تحدث الاختلافات؟

أين أفضل الأماكن لاستخدام NoSQL؟ لماذا ا؟

71
Spredzy

NoSQL تعني "ليس فقط SQL" وعادة ما تعني أن قاعدة البيانات ليست قاعدة بيانات علائقية ، والتي كانت شائعة جدًا في العقود الماضية.

السبب وراء شعبية NoSQL في السنوات القليلة الماضية هو أنه عندما تنمو قاعدة بيانات علائقية من خادم واحد ، لم يعد بهذه السهولة في الاستخدام. وبعبارة أخرى ، لا يتطورون بشكل جيد للغاية في نظام موزع. جميع المواقع الكبيرة التي ذكرتها Google و Yahoo و Facebook و Amazon (لا أعرف الكثير عن Digg) تحتوي على الكثير من البيانات وتخزن البيانات في الأنظمة الموزعة لعدة أسباب. يمكن أن تكون البيانات غير مناسبة لخادم واحد ، أو أن هناك متطلبات توفر عالية .

نظرية كاب

يمكن وصف خصائص النظام الموزع بواسطة نظرية CAP . من بين الخصائص الثلاثة ، يمكنك الحصول على اثنين فقط على الأكثر:

  • [~ # ~] ج [~ # ~] onsistency
  • [~ # ~] توفر [~ # ~]
  • التسامح مع الشبكة [~ # ~] ص [~ # ~]

يستخدم Amazon Dynamo الاتساق النهائي ليقترب من الحصول على جميع الخصائص الثلاثة. الورقة Dynamo: Amazon's Highly Available Key-Value Store تستحق القراءة عند التعرف على قواعد بيانات NoSQL والأنظمة الموزعة. يتميز Amazon Dynamo بخصائص A و P.

تتخذ Google نهجًا مختلفًا مع BigTable ، التي تحتوي على خصائص C و A.

قواعد بيانات NoSQL أخرى

كما كتبت في البداية ، هناك العديد من أنواع قواعد بيانات NoSQL الأخرى المصممة لمتطلبات مختلفة. على سبيل المثال قواعد بيانات الرسم البياني مثل Neo4j ، وقواعد بيانات المستندات مثل CouchDB وقواعد بيانات متعددة النماذج/الكائنات مثل OrientDB .

أخيرًا ، أود أن أقول إن قواعد البيانات العلائقية ستظل شائعة. فهي مرنة للغاية وقابلة للصيانة. لكنهم ليسوا دائمًا الخيار الأفضل.

61
Jonas

NoSQL هو مصطلح واسع للغاية وعادة ما يشار إليه بمعنى "ليس فقط SQL". هذا المصطلح ينقطع عن صالح في مجتمع غير RDBMS.

ستجد أن قاعدة بيانات NoSQL لها خصائص مشتركة قليلة. يمكن تقسيمها تقريبًا إلى عدة فئات:

  • مخازن المفتاح/القيمة
  • قواعد البيانات المستوحاة من Bigtable (استنادًا إلى ورقة Google Bigtable)
  • قواعد بيانات مستوحاة من دينامو
  • قواعد البيانات الموزعة
  • قواعد بيانات الوثيقة

هذا سؤال ضخم ، ولكن تم الإجابة عليه بشكل جيد في هذا مسح قواعد البيانات الموزعة .

للحصول على إجابة قصيرة:

قد تستغني قواعد بيانات NoSQL مع أجزاء مختلفة من ACID من أجل تحقيق بعض الفوائد الأخرى - تحمل التقسيم ، والأداء ، لتوزيع الحمل ، أو التوسع بشكل خطي مع إضافة أجهزة جديدة.

فيما يتعلق بوقت استخدامها - يعتمد ذلك تمامًا على احتياجات تطبيقك.

22
Jeremiah Peschka

NoSQL هو نوع من قواعد البيانات التي لا تحتوي على مخطط ثابت مثل RDBMS التقليدي. مع قواعد بيانات NoSQL يتم تعريف المخطط من قبل المطور في وقت التشغيل. لا يكتبون عبارات SQL العادية مقابل قاعدة البيانات ، ولكن بدلاً من ذلك يستخدمون API للحصول على البيانات التي يحتاجونها. يمكن أن تتطور قواعد بيانات NoSQL عادة عبر الخوادم المادية المختلفة بسهولة دون الحاجة إلى معرفة الخادم الذي تبحث عنه البيانات.

ومع ذلك ، هناك بعض المقايضات لكل هذه المرونة: قواعد بيانات NoSQL تفتقر إلى ميزة جميلة مقارنة بأنظمة RDBMS مثل SQL Server و Oracle و DB2 و MySQL وما إلى ذلك. لا يوجد وسيط خدمة وتسجيل المعاملات وحزم ETL وما إلى ذلك.

NoSQL ليس شيئًا جديدًا. لقد كان في الواقع حوالي 50-60 سنة. في ذلك الوقت كان يطلق عليه COBOL. نفس الفكرة بالضبط ، توصلت إليها مجموعة مختلفة.

12
mrdenny

الاستغناء بشكل أساسي عن الإعداد العلائقي ، مع المفاتيح الأساسية والأجنبية ، ومع الحمل الإضافي المتضمن في الحفاظ على سلامة المعاملات ، غالبًا ما يمنحك زيادات شديدة في الأداء. ومع ذلك ، لا يقتصر هذا على قواعد البيانات/مخازن البيانات الجديدة ، على سبيل المثال تم ضبط MySQL للعمل على "مستويات NoSQL" من خلال تجاوز الطبقات.

باختصار ، يمكنك غالبًا الحصول على أداء مثير للإعجاب إذا كنت موافقًا على المخاطرة باحتمال فقدان البيانات. معظم أنظمة NoSQL تفعل ذلك. على سبيل المثال ، يقوم MongoDB بإجراء تغييرات في البيانات ليتم كتابتها عندما يكون ذلك مناسبًا. البيانات نفسها آمنة ومأمونة للمعاملات ، لكنها محفوظة في ذاكرة (ذاكرة) متقلبة. إذا فقدت الطاقة ، فلا يمكنك التأكد بنسبة 100٪ من أنك لم تفقد البيانات ، أو من عدم تلف البيانات.

إنها مقايضة بين الأمان والأداء.

6
Johanna Larsson

مكان جيد للبدء هو دخول ويكيبيديا . بدلاً من ذلك ، قم بربط البيانات في جدول إلى جدول آخر تقوم بتخزين الأشياء كأزواج قيمة رئيسية ولا يوجد مخطط قاعدة بيانات ، يتم التعامل معها بدلاً من ذلك في التعليمات البرمجية.

تستخدم بعض المواقع كلاً من NoSQL وخوادم RDBMS النموذجية بشكل متزامن ، ولكن لتخزين بيانات مختلفة. لذلك ليس عليك اختيار أحدهما.

5
steve.lippert

لقد عملت بكثافة على قاعدة بيانات MongoDB NoSQL وأوراكل.

مخطط

تحتوي قاعدة بيانات SQL على مخططها المحدد مسبقًا لتخزين البيانات المنظمة.

في قاعدة بيانات NoSQL ، لا يوجد مخطط محدد مسبقًا ، هنا المخطط هو العنصر الأكثر ديناميكية استنادًا إلى عناصر البيانات.

قابلية التوسع

قواعد بيانات SQL قابلة للتوسيع عموديًا ، مما يعني أنه إذا أردنا توسيع قاعدة بيانات قاعدة SQL ، فإننا بحاجة إلى تعزيز الأجهزة التي تم تثبيت نظام DBMS عليها. هذا هو المكان الذي يذهب فيه في بعض الأحيان للحد من قابلية التوسع.

قواعد بيانات NoSQL قابلة للتوسيع أفقياً ، مما يعني أنه إذا أردنا توسيعها ، فنحن بحاجة إلى إضافة المزيد من العقد وإنشاء شبكة توزيع بناءً على حاجتنا الخاصة والقوة المطلوبة. هذه هي الطريقة التي تقلل من الحمل على قاعدة البيانات

استرجاع البيانات

في قواعد البيانات المستندة إلى SQL ، لتحديد البيانات ومعالجتها ، يمكننا استخدام SQL (لغة الاستعلام الهيكلية) ، وهي قوية جدًا في الوقت الحاضر.

من حيث قاعدة بيانات NoSQL ، تركز الاستفسارات على التجميع والوثائق. في بعض الأحيان يطلق عليها UnQL (لغة الاستعلام غير المنظمة). لا يزال هذا في مرحلة التطور ، لذلك يختلف من بائع إلى بائع لقاعدة بيانات NoSQL.

لمزيد من المعلومات حول الاختلافات الرئيسية ، مدونتي: الفرق بين SQL و NoSQL قاعدة البيانات

0
Virat Gaywala - CSM