5 دورة الـ SQL || مرحلة التطبيق العملي بإنهائنا للدروس السابقة .. أتوقع أنه قد تكونت لدينا خلفية - ولو بسيطة - عن قواعد البيانات .. وعرفنا علاقة لغة الإستعلام SQL بها .. وأصبحنا مهيئين للتطبيق العملي ..

وقفة مهمة .. في أحد الدروس السابقة .. مر بنا أن قواعد البيانات تستخدم أسلوب الطبقات الثلاث 3Tier .. وقلنا أن الطبقات الثلاث هي:
طبقة واجهة المستخدم .. وطبقة المنطق والبرمجة .. وطبقة قاعدة البيانات ..

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

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

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

نظام Oracle
يوفر الطبقات كلها .. ويتيح لك خيارين:
بناء جميع الطبقات .. (قاعدة البيانات وواجهات المستخدم وبرمجتها) ..
بناء طبقة قاعدة البيانات فقط .. وبالتالي تحتاج لبرامج مساعدة لبناء الطبقات الأخرى (واجهات المستخدم وبرمجتها).. كالفيجول بيسك مثلا .. ثم ربطها بقاعدة البيانات ..

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

نظام Access
يوفر الطبقات الثلاث .. وذلك فهو كنظام الـ Oracle .. من حيث أنه يتيح لك خيارين:
بناء جميع الطبقات .. (قاعدة البيانات وواجهات المستخدم وبرمجتها) ..
بناء طبقة قاعدة البيانات فقط .. وبالتالي تحتاج لبرامج مساعدة لبناء الطبقات الأخرى (واجهات المستخدم وبرمجتها).. كالفيجول بيسك مثلا .. ثم ربطها بقاعدة البيانات ..

س: في حال أننا بنينا قاعدة البيانات ببرنامج ما .. كـ SQL_SERVER مثلاً .. وبنينا واجهات المستخدم بنظام آخر .. كالفيجول بيسك دوت نت مثلاً .. فكيف يتم الربط بينهما؟؟
ج: يمكننا ربط الواجهات بقاعدة البيانات من خلال تقنية تسمى بالـ ADO.NET .. وهي تقوم بدور الوسيط بين واجهات المستخدم (النماذج) وبين قاعدة البيانات ..

س: برنامج الـ Access يوفر الطبقات الثلاث جميعا .. فهل يعتبر بذلك أقوى من الـ SQL_SERVER ؟
النماذج والتقارير الموجودة في الآكسس ليست احترافية .. ولا تستخدم لبناء الأنظمة والبرامج القوية .. ولاقواعد البيانات الحقيقية .. وإنما هي للاستخدامات البسيطة والشخصية .. فلا تعمل بها برامج قواعد بيانات قوية إلا في حالات شاذة .. كأن يكون عدد المستخدمين قليل جدا .. وتكون القاعدة بسيطة وليست ضخمة ..


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


مرفق بالدرس قاعدة بيانات آكسس .. بعنوان: (التطبيقات التجارية) .. وللأمانة فلست من أنشأها .. بل تناولنا التدريب عليها في أحد الدورات .. وأريد أن تستفيدوا منها .. نظرا لكونها كبيرة نوعا ما .. وهذا يمكّننا من كثرة التدريب وبناء الاستعلامات عليها .. قوموا بتحميلها لديكم .. واستعرضوها .. وسنبدأ بإذن الله من الدرس القادم .. بالتطبيق العملي لبناء الاستعلامات بلغة الـ SQL



لتنزيل قاعدة البيانات اضغط هنا

الواجب: بعد تنزيلك لقاعدة البيانات .. وتجوالك بين جداولها .. حاول أن تتخاطب معها .. وذلك بإنشاء 3 عبارات استعلام .. من أي جدول شئت .. وبلهجتك الطبيعية .. وليس بعبارات الـ SQL .. مع مراعاة دقة الأوامر ..

مثال:

اظهر بيانات الشركات التي لا يوجد لها رقم تلفون من جدول (Customer)
وهذا الاستعلام يفيدنا بضرورة استكمال بيانات الشركات للتواصل معها عند الحاجة


اظهر الاعتمادات التي تمت بين تاريخ كذا وتاريخ كذامن جدول (Orders)
وهذا الاستعلام قد يفيدنا بمعرفة عدد الاعتمادات التي تمت في فترة معينة


وهكذا .. وسنتعلم فيما بعد - بمشيئة الله - تحويل هذه الاستعلامات إلى لغة الـ SQL