عند استخدام متجر بيانات القيمة الرئيسية مقابل DB العلائقية أكثر تقليدية؟

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

سؤال

متى سيقوم المرء باختيار متجر بيانات ذات قيمة رئيسية على DB العلائقية؟ ما الاعتبارات التي تذهب في تقرير واحد أو آخر؟ عندما يكون مزيج من أفضل طريق؟ يرجى تقديم أمثلة إذا استطعت.

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

المحلول

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

فيما يتعلق علاري VS KV، والسؤال لك ينبغي أن يسأل هو:

لماذا سوف ليس تريد استخدام نموذج العلائقية لهذا السيناريو: ...

نظرا لأنك لم يوصف السيناريو، فمن المستحيل أن يخبرك أي شخص لماذا يجب ألا تستخدمه. إن سبب "التقاط الكل" ل KV هو قابلية التوسع، والتي ليست مشكلة الآن. هل تعرف قواعد التحسين؟

  1. لا تفعل ذلك.
  2. (للخبراء فقط) لا تفعل ذلك الآن.

كيلو فولت هو إدراك الحل الأمثل قابل للتوساعد من المرجح أن يكون غير ضروري تماما لطلبك.

نصائح أخرى

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

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

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

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

اختبار بسيط: هل يمكن أن تمثل بياناتك وكل علاقاتها كقائمة مرتبطة أو جدول التجزئة؟ إذا كانت الإجابة بنعم، فقد تعمل KVS. إذا كان الجواب بالنفي، فأنت بحاجة إلى RDB.

لا تزال بحاجة إلى العثور على KVS التي ستعمل في بيئتك. دعم KVSESS، حتى الكبرى، ليس بالقرب من ما هو عليه، ويقول، postgresql و mysql / mariadb.

قاعدة بيانات علمية تقليدية لها مشاكل في التحول بعد نقطة. حيث تعتمد هذه النقطة قليلا على ما تحاول القيام به.

جميع (الأكثر؟) من موردي الحوسبة السحابية توفر مخازن بيانات القيمة الرئيسية.

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

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

KVP / JSON / NOSQL أمر رائع لأن التغييرات في بنية البيانات لا تتطلب إعادة صياغة نموذج البيانات بالكامل. إضافة حقل إلى كائن البيانات الخاص بك هو ببساطة مسألة إضافةها إلى البيانات. الجانب الآخر من العملة المعدنية موجودة هناك عدد أقل من القيود والتحقق من الصحة في قاعدة بيانات KVP / NOSQL من قاعدة بيانات علائقية، بحيث قد تحصل بياناتك على فوضوي.

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

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

إذا كنت تريد O (1) بحثا عن القيم بناء على المفاتيح، فأنت تريد متجر KV. معنى، إذا كان لديك بيانات النموذج k1={foo}, k2={bar}, ، إلخ، حتى عندما تكون القيم أكبر / هياكل متداخلة، وتريد البحث السريع، فأنت تريد متجر KV. حتى مع الفهرسة المناسبة، لا يمكنك تحقيق O (1) بحثا في DB العلائقية للمفاتيح التعسفية. في بعض الأحيان يشار إلى ذلك باسم "البحث العشوائي".

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

على النقيض من ذلك، إذا قمت غالبا بالاستعلام عن البيانات من خلال أي من أعمدة متعددة، فإن AKA تدعم API استعلام أكثر ثراء للبيانات، ثم قد ترغب في قاعدة بيانات علنية.

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