اي نظام برمجي يتكون في الأساس من مكونان
1- اوامر
2- بيانات او معلومات
وتقو الاوامر بدور المايسترو في التعامل مع البيانات وتنفيذ العمليات عليها. ومنذ ظهرت الاغراض المتقدمة للحاسب (بعيدا عن كونه اله حاسبة او ما شابه ) ظهرت الحاجة إلى حفظ البيانات ومن ثم ظهرت التنكونوجيات الخاصة بحفظ البيانات. وتطورت من الاشرطة المثقبة Bunched Tapes حتي الأقراص المدمجة CD مرورا بالديسكات والهارد … إلخ.
كل تلك التعاملات تتم مع الجزء الصلب, ولأن مادية الحاسب Hardware لا يمكن فصلها عن البرامج Software فقد ظهرت الحاجة لتتوير نظم حفظ البيانات.
في البداية كانت الملفات في الملاذ الاول والاخير في حفظ البيانات, حتي ظهرت عيوبها, فالحفظ في الملفات له كثير من العيوب
1- صعوبة التعامل مع الملافات داخل البرامج
2- كثرة الاخطاء
3- صعوبة ترتيب البيانات داخل الملفات
ووقتها كان على المبرمج ان يقضي معظم وقته في وضع طريقه للتعمال مع الملفات في برنامجه مما كان يشكل عقبة كبيرة, ولذلك ظهرت قواعد البيانات.
التعريف العام لقاعدة البيانات هي مجموعة من الجداول تحمل كما معينا من البيانات. والتاعمل معها يكون بالتعامل مع البيانات مباشرة فأنت ليت في حاجة ان تعرف كيف تحفظ هذه البيانات او اي شئ من هذا…. ولكن كيف حدث ذلك؟
حدث ذلك عن طريق التقسيم, فلأن كل برنامج كان ينقسم إلى جزئين (جزء البرمجة العادية وجزء العمل مع الملفات) فقد وفرت شركات البرمجيات حل قواعد البيانات لإراحة المبرمجين من التعامل مع الملفات, فقط قل لقاعدة البيانات ان تحفظ البيانات هذه فتحفظها وهذا كل شئ.
داخليا, تنقسم نظم قواعد البيانات إلى قسمين
1- البيانات نفسها
2- خادم قاعدة البيانات Database Server
الاولي مفهومه, ماذا عن الثانية؟
خادم قاعدة البيانات هو برنامج تعكف الشركة المقدمة لقاعدة البيانات (سواء مايكروسوفت او اوراكل او… ) على تطويره بحيث يأخذ البيانات من المبرمج ويضعها في ملفات بطريقة ما مع امكانية استرجاعها.
فأنت عندما تريد حفظ بيانات ما تنادي على الخادم وتطلب منه ان يحفظها فيحفظها, او تطلب منه استرجاع بيانات معينه فيرجعها.
وهناك انواع عديدة من قواعد البيانات مثل Access, Microsoft SQL Server , Oracle والفروقات بينهم عديدة تحتاج إلى مجلدات لذكرها. لكن هناك فرق مهم احب ان اوضحه.
قواعد بيانات اكسيس تنتمي إلى نوع يمسى Desktop databaes او قواعد بيانات سطح المكتب وهي نظم موجهة بالأساس إلى المستخدم العادي فهي لا تحتاج إلى امكانيات عاليه بالحاسب (رام او سرعة او…) كما ان خادم قاعدة البيانات يكون صغير الحجم لأنه سوف يدمج في البرنامج.
اما قواعد البيانات الأخري مثل SQL Server و Orcale فهي تعمل بتكنيك مختلف, فالخادم منفصل تماما عن البرنامج مما اتاح امكانيات كبيرة في التعامل عن طريق الشبكات او حتي الانترنت, فمثلا قد يعمل البرنامج على حاسبي مستخدما قاعدة بيانات موجودة على حاسب اخر ربما يكون في بلد اخرى. كذلك فإن الخادم في هذه الحالة يكون كبير الحجم ويحتاج في العادة إلى حاسب ذو امكانيات اعلى.
بصفة عامة, إذا ما كانت البيانات موجهه نحو حاسب واحد, او كان البرنامج صغيرا فإن Access هو بطل المعركة بلا منافس. (مثل برنامج لتسجيل مبيعات ومشتروات متجر ما) اما إذا تعددت الأجهزة المستفيدة من نفس البيانات, فإن Access يتوارى خجلا في حضور SQL Server و Orcale (مثل قاعدة بيانات لمطار).