الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قواعد البيانات العلائقية وتقنيات الوصول إليها

بدأه عبد الله فتحي في 23 فبراير 2005 · 3 رد · 12,929 مشاهدة · في قسم قواعد البيانات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قواعد البيانات وتقنيات الوصول إليها

قبل البدء بالتعامل مع قاعدة البيانات لابد أن نعرف أولاً ما هو المقصود بقاعدة البيانات ؟ ومم تتكون ؟ ولماذا ؟

قاعدة البيانات (DataBase) هي عبارة عن مخزن للبيانات والمعلومات، والتي يتم تقسيمها بطريقة معينة بحيث تصبح متاحة للحصول عليها عند الحاجة بكل بساطة.

مكونات قاعدة البيانات:

تتكون قاعدة البيانات من جدول (Table) أو أكثر، والجدول يتكون بدوره من سجلات (Records)، هذه السجلات يتم تقسيمها إلى حقول (Fields) .. تفحص النموذج التالي لقاعدة بيانات:

AFRDB1.jpg

كما نرى فإن الحقول هي عبارة عن تبويبات محددة تدل على ماهية البيانات المخزنة، مثلاً حقل الاسم يحتوي على الأسماء فقط، ولا يمكن أن يحتوي على أرقام التليفونات، والتي يتم تخصيص حقل آخر لها.

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

وهكذا يتم تخصيص سجل لكل شخص يحتوي على المعلومات الخاصة به بناء على تبويبات الحقول.

من المهم جداً أن يكون مفهوم قاعدة البيانات واضحاً، فبدونه لن يكون لأي محاولة للتعامل مع قاعدة البيانات النجاح المطلوب.

ما هي الفائدة المرجوة من قواعد البيانات:

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

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

- في الأنظمة التعليمية يتم الاعتماد على قواعد البيانات في تخزين معلومات المدرسين ومرتباتهم، والتلاميذ ودرجاتهم، و ... الخ.

- في أنظمة الدول المختلفة يتم تجميع المعلومات الخاصة بالمواطنين في قواعد بيانات ضخمة ( باستثناء بعض دول العالم الثالث المتخلفة ).

- حتى في المنازل نستخدم قواعد البيانات في برامجنا المختلفة، وأبسط مثال دليل الهاتف أو التليفون، والذي يقوم بتخزين أسماء الأصدقاء، وعناوينهم، وأرقام تليفوناتهم في قواعد بيانات بسيطة ..

ولكن ما هو سبب هذا الانتشار الواضح لقواعد البيانات؟ وهل هناك بديل آخر؟

دعنا نأخذ مثالاً لمدرستين إحداهما تستخدم نظام الورق في تخزين المعلومات الخاصة بالتلاميذ ودرجاتهم ..

وأخرى تستخدم قواعد البيانات لذلك ..

بكل المقاييس فإن تلك التي تستخدم قواعد البيانات تتفوق على نظيرتها التي تستخدم الأوراق في:

- سرعة الوصول إلى المعلومة من خلال أساليب البحث المتنوعة.

- اختصار الوقت والجهد في إصدار التقارير المختلفة بدقة متناهية.

- سهولة تنفيذ العمليات المختلفة من إضافة أو حذف أو نقل أو تعديل.

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

تقنيات الوصول إلى قواعد البيانات

كلمة ADO هي اختصار لجملة ActiveX Data Objects وهي عبارة عن مكتبة تحتوي على كل ما نحتاجه للوصول إلى قاعدة البيانات، سواء كانت Access أو Oracle أو SQL Server ..

دائماً ما نسمع عن ADO و DAO و ODBC و ... و ... الخ، ولكننا لا نعلم ما هي هذه الكلمات؟ وما الفروق بينها؟

فيما يلي سنحاول أن نلقي نظرة بسيطة على كل هذه الكلمات وتاريخ نشأتها:

جميعنا نعرف أنه يوجد العديد من البرامج التي يمكننا أن نستخدمها في بناء قاعدة بيانات، على سبيل المثال SQL Server / FoxPro Database / Oracle DB / ... الخ، وقديماً كان لزاماً على المبرمجين أن يمتلكوا نسخة من البرنامج الخاص ببناء قاعدة البيانات، وكذلك هو الحال بالنسبة للمستخدمين للبرنامج، لأن تقنية التعامل مع قواعد البيانات وقتها كان يتم من خلال استخدام الـ APIs الخاصة بهذا البرنامج، والتي تتفاعل مباشرة معه.

وبالإضافة إلى ذلك كانت هناك مشكلة أخرى، وهي أن لكل برنامج من هذه البرامج الـ APIs الخاص بها، والتي تختلف عن غيرها من الـ APIs الخاصة بالبرامج الأخرى، وبالتالي فإن الشخص الذي يجبد التعامل مع SQL Server DB APIs ليس بالضرورة أن يجيد التعامل مع الـ Oracle OCI APIs .

تخيل معي أن لدينا شركة تخزن بيانات المبيعات والتسويق، وبيانات الأفراد باستخدام 3 برامج مختلفة من قواعد البيانات FoxPro و SQL Server و Oracle، ولكي يتم الاتصال بقاعدة بيانات من هذه القواعد يجب أن تملك البرنامج الخاص ببناء هذه القاعدة، كما أنه يجب أن يكون المبرمج على دراية تامة بكيفية التعامل مع هذه البرامج المختلفة، وكيفية كتابة الكود لكل منها ... ولا يخفى ما في ذلك من الصعوبة والكلفة العالية ..

AFRDB2.jpg

وسرعان ما بدأت تظهر الحلول لهذه المشكلة، فظهر مفهوم قاعدة البيانات العامة Universal Database، والتي تعني تجميع كل البيانات في نوع واحد من قواعد البيانات، وليكن على سبيل المثال SQL Server ..

AFRDB3.jpg

ورغم أن هذا الحل يعتبر من الناحية النظرية ممكناً، إلا أنه يظل من الناحية العلمية مقيداً، ولا يصلح لكل الحالات ..

ظهرت بعد ذلك طريقة أخرى ناجحة وهي UDA وتعني الوصول للبيانات العامة، اختصاراً لجملة Universal Data Access، وبدلاً من تجميع البيانات في قاعدة بيانات واحدة، تظل البيانات في أماكنها، ويتم إضافة مستوى جديد، مهمته التواصل بين المستخدم والبرامج المصدرية لقواعد البيانات المختلفة، بحيث يكون كل تعامل المستخدم مع هذا المستوى، والذي يحمل على عاتقه التعامل مع مختلف الأنواع من قواعد البيانات.

AFRDB4.jpg

أنظمة UDA:

في عام 1992 طرحت شركة مايكروسوفت نظام وصول للبيانات العامة يسمى ODBC اختصاراً لجملة Open DataBase Connectivity، وكان بداية جيدة لإرساء مفهوم UDA، ولن نخوض هنا في تفاصيل هذا النظام، ولكن ما يهمنا هو أن البرمجة لا زالت صعبة ومعقدة، ولذلك طرحت مايكروسوفت النظام المسمى DAO اختصاراً لجملة Data Access Object وكان هو الآخر تقدماً جيداً في مجال الوصول لقواعد البيانات، واستكمالاً لمسيرة التقدم والتطوير طرحت شركة مايكروسوفت بعدها نظام ADO اختصاراً لجملة ActiveX Database Object، والذي قام بتسهيل عملية التعامل مع قواعد البيانات بشكل كبير، وأصبح الشكل النهائي للوصول لقاعدة البيانات كالتالي:

AFRDB5.jpg

جدير بالذكر أنه ظهرت تقنية جديدة كلياً في الوصول إلى البيانات، وذلك من خلال الـ ADO.Net، ورغم ذلك فإن الذين تعاملوا مع مكتبة الـ ADO لفترة طويلة سيكون لديهم الأفضلية في تعلم الـ ADO.Net لأنها تعتمد على نفس المفاهيم تقريباً ..

أتمنى لكم التوفيق

تم تعديل هذه المشاركة بواسطة عبد الله فتحي في 23 فبراير 2005 في 22:38

ani.gif
#2

بارك الله فيك يا عبد الله ودائما الي الامام

  1. سبحان الله وبحمده سبحان الله العظيم


    متى نحكم العالم زى زمان ايام اجددنا

    صلى الله على محمد صلى الله عليه وسلم



#3

جزاك الله خير

لوهناك شرح مفصل للDAO&ADO&ODBCومع أي اللغات تستخدم؟أم مع جميع اللغات؟

وهل مع جميع نظم التشغيل أم الويندوز فقط؟

مدونتي

برمجة وما يتبعها

#4

شكرا جزيلا على الموضوع

مواضيع مشابهة