سؤال

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

  • ما هي القيود/المعايير التي تستخدمها لاختيار قاعدة البيانات؟
  • ما مدى تلبية قواعد البيانات المختلفة التي استخدمتها لتلك القيود/المعايير؟
  • ما هي الميزات الخاصة التي تتمتع بها قواعد البيانات؟
  • ما هي قواعد البيانات التي تشعر بالراحة عند التوصية بها للآخرين؟

إلخ...

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

المحلول

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

على الجانب الآخر، ضع في اعتبارك أيضًا خبرة وخلفية المطورين والمشغلين ومسؤولي النظام الأساسي.

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

أخيرًا وليس آخرًا، عليك أن تفكر في قضايا الأعمال مثل ميزانية التراخيص والدعم والتشغيل.

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

بمعنى آخر، قم باختيار التكنولوجيا التي تناسب بشكل أفضل قيود واحتياجات مؤسستك ومشروعك.

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

نصائح أخرى

معايير الاختيار الخاصة بي (تتمحور حول البرمجة بشكل أساسي):

  • صيانة:كيف يتم تثبيت التحديثات/الإصلاحات العاجلة؟
  • مراقبة المعاملات:كيف يتم تنفيذه
  • هل الإجراءات المخزنة مدعومة؟
  • هل يمكنك استخدام معالجة الاستثناءات في الإجراءات المخزنة؟
  • التكاليف
  • كفائدة:هل يمكنك استخدام العودية على الإجراءات المخزنة؟(على سبيل المثال.في SQL Server 2000، يتوقف العودية بعد مرور 32 IIRC)

بالنسبة لمعظم الأشخاص في بيئة الشركات، يعود الاختيار إلى "الخيار الذي لدينا".

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

قد يكون المعيار الأكبر هو التكلفة.هل تريد/هل أنت على استعداد لدفع ثمن منصة DBMS الخاصة بك؟إذا لم يكن الأمر كذلك، فمن المحتمل أن Oracle وMS SQL Server وSybase وغيرهم قد توقفوا عن العمل، على الرغم من أنه إذا لم تكن تقوم بإنشاء تطبيق تجاري، فقد يكون هناك بعض المساحة للمناورة.أيضًا، النظام الأساسي - هل يمكنك تشغيل البرنامج على أجهزتك؟

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

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

لقد عملت مع Oracle وMS SQL Server وMySQL وPostreSQL وSQLite وSybase التي يمكنني التفكير فيها.يسعدني أن أوصي بكل شيء باستثناء Sybase، الذي لدي بعض المخاوف بشأنه هذه الأيام (يمكن أن أكون مخطئًا بسهولة، لكنني شخصيًا أعتقد أنه من الأفضل إنفاق الأموال في مكان آخر) ولكن ليس كلها لنفس التطبيقات.

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

من المؤكد أن العامل الأكثر إلحاحًا هو خبرتك أو خبرة فريقك... أو مجموعة الموارد التي من المحتمل أن تقوم بتوظيفها في المستقبل.أميل إلى اتباع التيار السائد في معظم الأوقات، باستخدام MySQL في فريق LAMP وSQL Server في فريق MS، نظرًا لأن أيًا من هذين المنتجين قادر على القيام بكل ما هو ضروري حتى في بيئة عالية التحميل.

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

أ.لقد تمت تجربة الخيار الواضح ولكنه فشل

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

أفترض أن هناك حاجة لتوظيف ما لا يقل عن اثنين ويفضل ثلاثة من مسؤولي قواعد البيانات الممتازين الذين يتمتعون بمعرفة طويلة الأمد بقاعدة البيانات الجديدة.

وسأحاول أولاً توظيفهم في التكنولوجيا التي كانت فاشلة، لأنه من المرجح أن تكون طريقة استخدامها أكثر من التكنولوجيا نفسها التي تسبب المشكلة.

الإجابات الموجودة رائعة.تجدر الإشارة إلى أن Oracle لديها الآن إصدار XE من قاعدة بياناتها 10g المتوفرة مجانًا وتأتي مع Application Express، وهي بيئة تطوير رائعة تعتمد على الويب.

إنه محدود، 4 جيجابايت HD، 1 جيجابايت رام ويستخدم وحدة معالجة مركزية واحدة فقط.وهذا يكفي لتشغيل نظام أصغر ويمكن ترقيته بسهولة في وقت لاحق إذا لزم الأمر.يمكن أن تكون Oracle واحدة من أصعب البرامج التي يمكنك تعلمها، ولكنها أيضًا واحدة من أفضل البرامج التي يمكنك إضافتها إلى سيرتك الذاتية :-)

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

قضاء بعض الوقت في تقييمهم :-)

  • Linux، استضافة الويب - MySQL (ربما PostreSQL)
  • الشركات الصغيرة والمتوسطة السائدة - MS SQL
  • الحديد الكبير (الخدمات المصرفية وغيرها) - أوراكل

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

  1. النضال من أجل العثور على أشخاص للعمل في المشروع أو الحفاظ على قاعدة البيانات مستمرة
  2. تكافح من أجل تحفيز قرارك دون مناقشة أكاديمية
  3. سوف يلعنك شخص ما، ويلعن أسلافك ونسبك بعد بضع سنوات - ويستبدل اختيارك على أي حال.

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

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