سؤال

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

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

المحلول

  • معرفة. يعرف مديرو قواعد البيانات المفاهيم العلائقية؛تلك الكائنات، وليس ذلك بكثير.
  • أداء. لقد ثبت أن قواعد البيانات العلائقية يمكن توسيع نطاقها بشكل أفضل بكثير.
  • نضج. SQL هي لغة قوية ومتطورة منذ فترة طويلة.
  • دعم البائع. يمكنك الاختيار من بين العديد من أدوات الطرف الأول (خوادم SQL) وأدوات الطرف الثالث (الواجهات الإدارية والتعيينات وأنواع التكامل الأخرى) مقارنة بأنظمة إدارة قواعد البيانات (OODBMS).

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

أنظر أيضاً السؤال الأخير، قواعد البيانات الموجهة للكائنات مقابل قواعد البيانات العلائقية.

نصائح أخرى

لقد تم استخدام com.db4o وهو OODB وهو يحل معظم السلبيات المذكورة:

  • الإلمام - يعرف المبرمجون لغتهم بشكل أفضل من لغة SQL (راجع الاستعلامات الأصلية)
  • الأداء - هذا الأداء شخصي للغاية ولكن يمكنك إلقاء نظرة عليه المركز الأول
  • دعم البائع ونضجه - يمكن أن يتغير بمرور الوقت
  • لا يمكن استخدامه بواسطة البرامج التي لا تستخدم أيضًا نفس إطار العمل - هناك معايير OODB ويمكنك استخدامها أطر مختلفة
  • من المحتمل أن يكون الإصدار أمرًا صعبًا بعض الشيء - الإصدار هو في الواقع أسهل!

الايجابيات التي أهتم بها هي:

  • الاستعلامات الأصلية - يتيح لك Db4o كتابة الاستعلامات بلغتك المكتوبة الثابتة بحيث لا داعي للقلق بشأن الكتابة الخاطئة لسلسلة والعثور على البيانات المفقودة في وقت التشغيل،
  • سهولة الاستخدام - يعد تحديد منطق العمل في طبقة المجال وطبقة الثبات (رسم الخرائط) وأخيرًا قاعدة بيانات SQL انتهاكًا بالتأكيد لـ DRY.مع OODB يمكنك تحديد المجال الخاص بك حيث ينتمي.

أوافق على ذلك - أمام OODB طريق طويل لنقطعه لكنهم سيقطعون الطريق.وهناك مشاكل في المجال يمكن حلها بشكل أفضل عن طريق OODB،

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

تيد نيوارد يشرح هذا وغير ذلك الكثير عن أنظمة إدارة قواعد البيانات (OODBMS) بشكل أفضل بكثير من هذا.

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

سلبيات:

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

  • موارد أقل متاحة على الإنترنت لقاعدة البيانات غير المستندة إلى SQL

  • لا يوجد توافق عبر أنواع قواعد البيانات (لا يمكن تبديله إلى مزود DB مختلف دون تغيير كل الرمز)

  • الإصدار هو ربما قليلا من العاهرة.أعتقد أن إضافة خاصية جديدة إلى كائن ليس سهلاً تمامًا مثل إضافة عمود جديد إلى جدول.

سورين

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

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

بالنسبة لتطبيق OO، ستوفر قاعدة بيانات OO ملاءمة أكثر طبيعية للكائنات المستمرة.

ربما يكون الأمر صحيحًا هو أنك تربط بياناتك بنموذج المجال الخاص بك، ولكن هذا هو جوهر الأمر!

ألن يكون من الجيد أن يكون لديك طريقة واحدة للنظر إلى كل من البيانات وقواعد العمل والعمليات باستخدام طريقة عرض تتمحور حول المجال؟

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

السلبيات، أعتقد أنه مجرد نقص عام في النضج والتبني..

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