ما هي المآخذ على سلمان من جانب الملقم البيانات تخزين الملف ؟

StackOverflow https://stackoverflow.com//questions/23038858

سؤال

أنا أبحث عن بديل أساليب تخزين البيانات SQL (وهذا هو القول, أنا لا لا ترغب في استخدام SQL, حتى بالنسبة الاستفسارات) و جاء عبر بعض على أساس JSON.التحدث مع الأصدقاء الذين لا بيانات العمل, قالوا: لا يجب النظر هذه ، ولكن لم يذكر تفاصيل. ما هي إمكانات (و العملية) عيوب باستخدام جسون مثل تخزين البيانات تنسيق الملف ؟


فكرت سلمان سيكون أفضل من SQL لهذه الأسباب:

  1. سلمان هو محددة بدقة و لا يجب النكهات (Oracle, Microsoft, الخلية, الخ.)
  2. منذ جوجل بدأت في صنع كروم, JS المترجمين جعلت القراءة, تحليل, وإخراج JS (وبالتالي JSON) ، جدا سريع و سهل العملية.
  3. قاعدة البيانات الانتاج يمكن أن تكون نقية سلمان, تزيل الحاجة إلى رجل في منتصف مترجم المتصفحات ، إلخ.

من بين أمور أخرى...

هل كانت مفيدة؟

المحلول

أعتقد أنك قد ترغب في إلقاء نظرة على أي قواعد البيانات SQL:https://en.wikipedia.org/wiki/NoSQL

إذا كنت ترغب في استخدام JSON-مثل البيانات ، ثم واحد شخصيا استخدم هو MongoDB.

أنا لم تستخدم الرئيسية/مصدر واحد من بلدي التطبيق البيانات ، ولكن فقط من أجل أغراض ثانوية.ولكن أعتقد يمكنك محاولة استخدام الأمر الرئيسي الخاص بك تخزين البيانات أيضا (أعتقد أن الكثير من الناس).

ما جربت و كانت مرضية تماما ، MongoDB مع C# باستخدام MongoVue مثل واجهة المستخدم الرسومية تطبيق تنفيذ الاستعلامات والتفاعل مع ديسيبل.لم أكن سعيدا جدا مع MongoVUE ، ولكن يبدو أنه كان الخيار الأفضل في ذلك الوقت.

ومع ذلك, SQL DBs جيدة جدا في تحديد العلاقات في البيانات الخاصة بك.E. g.الرجوع إلى إدخال في الجدول ألف من الدخول على الجدول ب ، و هذا النوع من الاشياء.باستخدام تلك العلاقات ، يمكنك الانضمام إلى الجداول و تفعل أشياء كثيرة مثيرة للاهتمام.أعتقد أنه أمر جيد بالنسبة لك للحصول على بعض الخبرة في هذا المجال أيضا.

MongoDB ليس بناء على تعريف العلاقات (على حد علمي).لديها مفهوم "الوثائق" ، حيث يمكنك تخزين المعلومات في JSON مثل شكل (مع المتداخلة الرئيسية/القيم).يمكنك الاستعلام الوثائق ، ولكن انضمامه يبدو مثل القرصنة طريقك حول الاستخدام العادي: كيف يمكنني إجراء SQL الانضمام إلى تعادل في MongoDB? أيضا ، وضمان اتساق البيانات (في حقا بطريقة موثوق بها) عند استخدام العلاقات في MongoDB يبدو من المستحيل بالنسبة لي.ولكن حتى لو كنت مخطئا وأنه من الممكن ، وسوف يكون 10 مرات أكثر صعوبة تحقيق ذلك من SQL DBs.

ولكن هل يمكن أن يكون نظرة على قائمة في ويكيبيديا و قد يكون هناك بديل أفضل من MongoDB بالنسبة لك.

ولكن يمكنك استخدام نقية سلمان وكذلك مع أي DB النظام.

حتى في ملخص JSON-مثل التخزين (على الأقل) هذه المسائل:

  • ليست جيدة في تحديد والاستفادة من العلاقات
  • عند استخدام علاقات تكامل البيانات (أو على الأرجح ، مرجع سلامة) هو الثابت.
  • إذا كنت لا تستخدم جيد DB النظام ، ولكن كنت مجرد تفريغ سلمان في ملف عندما يصبح كبير جدا سيكون لديك مشكلات في الأداء.تخيل الاستعلام عن 1GB سلمان ترميز مجموعة من الكائنات للحصول على تلك التي تريد.سيكون لديك لتحميل مجموعة كاملة على الذاكرة تشغيل من خلال كل ذلك (منذ سيكون لديك أي مؤشرات) ثم (إذا لم تكن قد نفدت الذاكرة و الاتصال -عند استخدام الشبكة - لم تنته) سوف تحصل على نتيجة.معظم لا SQL DBs مثل MongoDB والأكثر SQL DBs ليس لديهم مثل هذه المشاكل (على الأقل في كميات معقولة من البيانات).أنها على ما يرام ضبطها ، ودعم والفهرسة والمراجع أذونات أدوار يمكنك أيضا تحديد تنفيذ التعليمات البرمجية في مستوى DB (مثل مشغلات الإجراءات المخزنة).بالتأكيد فهي أكثر تعقيدا ، إلا أن هذا التعقيد قد يكون مطلوبا أكثر من مرة لتحقيق النتيجة النهائية.

نصائح أخرى

سلمان, أو كائن جافا سكريبت التدوين, هو معيار مفتوح تنسيق يستخدم الإنسان-نص مقروء لنقل البيانات الكائنات التي تتكون من قيمة السمة أزواج.يتم استخدامه في المقام الأول لنقل البيانات بين الخادم و تطبيق ويب كبديل XML.

أنت أكثر من النظر في المقارنة بين قاعدة البيانات مقابل شقة ملف التخزين حقا.

حتى عند استخدام relational DB, تكامل البيانات (أو التكامل المرجعي) لا يزال من الصعب لأن الصفوف عادة وقتية.في كثير من الأحيان مفاتيح خارجية لا تنفذ بسبب هذا.عندما الصف تحديث يحدث لديك 2 الخيارات.أولا, 'ننسى' الإصدار السابق.ثانيا: التحديث الأصلي الصف نسخ الإصدار السابق إلى وقتية غير العلائقية تاريخ الجدول حيث المفاتيح الخارجية هي عديمة الفائدة.معظم البيانات التجارية تتطلب التحديثات.الميزات للحفاظ على التكامل المرجعي في قواعد البيانات العلائقية هي عديمة الفائدة في هذا النوع من البيانات التجارية (التي تمثل معظم بيانات المؤسسة).ما هو مطلوب هو الصدغي بيانات أو طبقة التجريد الذي يعرض المستخدم مع الإصدار المناسب من صف واحد على أساس الوقت السياق.من الناحية المثالية في 2 أبعاد أيالمعاملات الوقت وقت العمل (ويعرف أيضا باسم صالحة الوقت).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top