Database: Access or SQL Server

databases

من أهم الأسألة التي تحير أغلب المبرمجين بشكل عام والمبرمجين بتقنيات مايكروسوفت بشكل خاص عند التخطيط لبرمجة منظومة ما لسطح المكتب (Windows Application) معتمدة علي قاعدة بيانات هو: هل أستخدم قاعدة بيانات اكسس نظرا لسهولتها وقابليتها للحمل (Portability) أو أستخدم نظام قواعد SQL Server بسبب قدرته علي التعامل مع كم ضخم من البيانات وعدد كبير من المستخدمين!

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

Microsoft Access

access2010flat

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

المميزات: صغير الحجم ومناسب للبيانات الصغيرة والمتوسطة، يمكن نقله مع البرنامج بسهولة وتشغيله من USB Disk او CD/DVD Disk بدون اي تعقيدات، متطلباته العتادية بسيطة، ويمكن تقديم الدعم الفني والمتابعة عبر الهاتف بسهولة.

العيوب: غير مناسب لتعدد المستخدمين خصوصا اكثر من 5 مستخدمين، غير مناسبة للعمل علي شبكة، قد يحدث ضرر لا يمكن اصلاحه في حال انقطاع التيار الكهربائي ووجود عمليات قراءة وكتابة علي ملف قاعدة البيانات، ملف قواعد البيانات يحتاج لعمليتي ضغط (Compact) واصلاح (Repair) كل فترة للمحافظة علي سلامته, لا يتمتع بنظام جيد للأمان والصلاحيات حيث أن النظام المرفق به صعب الادارة.

Microsoft SQL SERVER

Microsoft-SQL-Server

هو نظام قواعد بيانات يعتمد علي تخزين البيانات في ملف خاص يرافقه ملف أخر به كل الحركات التي تمت على ملف البيانات الرئيسي، ويقوم نظام SQL Server Database Engine بإدارة ملفات البيانات من حيث مراقبة الصلاحيات وتنظيم حركات الكتابة وقراءة البيانات وتنظيمها، وهناك نظام أخر هو SQL Server Agent. مهمته تنفيذ عمليات محددة ( مثل النسخ الإحتياطي وتبادل البيانات مع قواعد بيانات أخرى أو حتى اضافة بيانات معينة في أوقات محددة أو عند حدوث أشياء معينة)، كما يتميز بوجود برنامج SQL Server Management وهو مخصص لتكوين قواعد البيانات وتعديلها والتحكم بها والتحكم بنظام الصلاحيات الموجود بها، كما تتميز بوجود اجراءات تنفيذية مخزنة داخل قواعد البيانات (Stored Procedure) يتم تنفيذها بمناداتها مباشرة او عند حدوث أشياء تتطلب تنفيذ أوامر مرتبطة بها.

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

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

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

وجهة نظري مبنية علئ خبرة عملية في مجال برمجة تطبيقات سطح المكتب لنظام الوندوز وببيئة VB6 و VB.NET و #C.

This entry was posted in C#, Developer, SQL2008, VB.NET, VB6 and tagged , , . Bookmark the permalink.

التعليقات مغلقة