لماذا يوجد أكثر من نوع من نظام إدارة قواعد البيانات؟
MySQL - SqlServer - Oracle - etc..
ببساطة ما الفرق بينهم، وكيف يمكنني معرفة ماهو المتطلب المناسب لمشروعي؟
وشكراً :)
الفروقات كثيرة عادة ما تبدأ من هدف معين ويتم تطبيقه برمجيا
قواعد البيانات التي ذكرتها هي من RDBMS وغالبا يتم برمجتها باستخدام أحد أنواع B-tree وكأي treeيتم استخدام خوارزمية لفحص الشجرة للبحث عن البيان المطلوب تظهر الاختلافات عندما
يقرر مبرمج قواعد البيانات ان يولي اهمية لخاصية معينة من خصائص قواعد البياناتACID
يقرر مبرمج قوعد البيانات مراعاة معايير ansi sql بشكل كلي أو جزئي واضافة بعض الزيادات للتسهيل علي المستخدم
يقرر مبرمج قواعد البيانات التعامل مع البيانات في الذاكرة وكتابه النتائج في الهارد بعد فترة أم الكتابة لحظة بلحظة
يقرر مبرمج قواعد البيانات استخدام احجام معينة للداتا بحيث يتم يتخزينها على قطاع واحد من الهارد ديسك وبذلك يصبح يتم قرائتها مرة وحدة
متي يتم انشاء inverted index -index
إلخ إلخ
قواعد بيانات RDBMS مناسبة للبيانات التي يجب حفظها بدون خطأ ولهذا تكون بطيئة من حيث الوصول للبيانات في ظروف معينة ولهذا ظهرت أنواع اخري تستخدم hashing للوصول للبيانات تكون الكتابة بها سريعة جدا
وهناك العديد من التفاصيل الأخري والأنواع الأخري
أما بالبنسبة لكيفية معرفة النوع المناسب لمشروعك ففي الغالب يكفيك أي نوع RDBMS والأشهر هو MYSQL أو Postgresql أو sql server إذا كنت تبرمج لبيئة وندوز
وفي حالات معينة عندما يكون المشروع ضخم جدا يتم استخدام اكثر من نوع بحيث يكون لكل نوع استخدام معين فمثلا المعاملات المادية يتم حفظها في RDBMS لأنها تتطلب دقة وصحة في الحفظ بينما يتم حفظ معلومات الاحصائيات كعدد الزيارات في نوع columner database مثل cassandra أو يمكن استخدام Hadoop أو Hbase مع حساب الاحصائيات باستخدام أى data processing مثل apache spark ويمكن استخدام apache storm او apache kafka
ولان غالب البيانات لاتتغير بصورة متواصلة باستمرار فبدلا من جلب البيانات كل مرة من RDBMS يتم جلبها من قاعدة بيانات بسيطة موجودة بالميموري in-memory database مثل redis أو memcached
وللإستزادة عن استخدام انواع مختلفة يمكنك البحث عن lambda architecture
كل واحدة لها مزاياها وكل واحدة أنجزت بيد فريق متخصص خاص بها ليس مهتما بالآخر إلا في التحسين والمنافسة،
مثلا خذ هذا المقال يتكلم عن اوراكل
وهذه عن sql
وأتذكر ان لايت اس كيو إل هي الأنسب للجوالات المحمولة و ماي اس كيو إل هي الأفضل لسطح المكتب.
وأعتقد أن هذه هي الأفضل على الإطلاق
هل هنالك مقال كامل يشرح الفرق بين الثلاثة أنظمة (MySQL - SqlServer - Oracle) بالتحديد ويوضح الفروقات بطريقة حيادية وعلمية في نفس الوقت، سأكون شاكر لك لو ساعدتني.
وشكراً.
لم أبحث عن ذلك ولست متفرغ لذلك هذه الأيام، ولكن أعتقد أن الأمر سهل، اقرأ عن كل منهم على حدة او بلغة عالمية كالانجليزية او الفرنسية وبعدها اعمل مقال ملخص وتستفيد وتفيد غيرك ^_^
التعليقات