تنبيه: تم اعداد هذه المقالة بالكامل وما تحتويه من صور بواسطة ياسر فرغلي ويرجي احترام الجهد المبذول فيها وعدم نسخها او جزء منها الا بموافقة كتابية.
نبذة تاريخية
في عام 1974 قام د/ شامبرلين بتعريف لغة اطلق عليها لغة الاستعلام الهيكلية الانجليزية English structred query language - SEQUEL وكانت تتكون من كلمات ورموز من اللغة الانجليزية وفي عام 1976 تم تعريف نسخة منقحة اطلق عليها SEQUEL/2. ولاحقا قامت شركة اي بي ام بعمل نظام تجريبي لادارة قواعد البيانات عرف باسم System R.
في اوخر السبعينات انتجت شركة أوراكل اول نظام تجاري متداول لادارة قواعد البيانات و بعد سنوات قليلة قام معهد المواصفات القومي الامريكي باصدار مواصفة مبدئية للغة SQL واعقبتها منظمة المواصفات العالمية باصدار مواصفات قياسية وفي عام 1992 قامت بإصدار أول مواصفة عالمية عرفت باسم SQL/92 التزمت بها شركات انتاج البرمجيات علي الرغم من ذلك لاتوجد شركة تقريبا ملتزمة بهذه المواصفة بنسبة 100%. وفي عام 1999 تم اصدار SQL3.
كل نظام لادارة قواعد البيانات يتميز باضافات خاصة للغة اس كيو ال لاعطاء مميزات خاصة لجذب العملاء فهناك اضافات قامت بها شركة اوراكل للغة لا تعمل الا علي قواعد بيانات اوراكل وكذلك الحال مع مايكورسوفت واي بي ام. وفي نفس الوقت تطبق الشركات نسبة كبيرة جدا من المواصفات القياسية للغة SQL بحيث يمكن كتابة تطبيقات البرمجيات بغض النظر عن نوع قاعدة البيانات المستخدمة مع هذه التطبيقات.
ماهي لغة SQL؟
قبل الاجابة عن هذا السؤال يجب نتفهم ماهية قاعدة البيانات ونظم إدارة قواعد البيانات، من الاسم نستنتج ان قاعدة البيانات عبارة عن مجموعة من البيانات المنظمة وهذا صحيح ولكن في سياق الموضوع محل المناقشة فان قاعدة البيانات هي مجموعة من البيانات المنظمة يتم حفظها والتعامل معها في شكل رقمي يتفهمه الحاسب. وفي هذه المرحلة لا يجب ان نقلق فيما يختص بكيفية حفظ البيانات ماديا اي كيف يتم حفظها علي الاسطوانات او وسائط التخزين فهذه مهمة نظام ادارة قواعد البيانات.
هناك عدة انواع من قواعد البيانات اهمها قواعد البيانات العلائقية وهي الاكثر استخداما الان لكن بسبب تعقد منظومة المعلومات والاختلاف الشديد في طبيعة البيانات اصبحت هناك حاجة لقواعد بيانات اكس ام ال خالصة نظرا للقصور الموجود في قواعد البيانات العلائقية وسوف اكتب مقالة توضح قصور قواعد البيانات العلائقية والحاجة الي قواعد بيانات اكس ام ال الخالصة انشاء الله.
والان نعود الي قواعد البيانات العلائقية وكما ذكرت فهي عبارة عن مجموعة من جداول البيانات المرتبطة ببعضها بواسطة روابط وللتوضيح يمكن ان تحتوي قاعدة بيانات بسيطة علي جدول لبيانات موظفي البيع وجدول اخر لعمولات المبيعات وذلك لان الموظف الواحد يمكن ان يحصل علي عمولة لكل عملية بيع يقوم بها وهنا يجب الربط بين الجدولين حتي نتمكن من حساب مجموع العمولات لكل موظف اي يمكننا ربط سجل كل موظف بسجلات المبيعات التي قام بها.
إذا فقاعدة البيانات يمكن تخيلها علي انها تحتوي علي جداول بيانات وروابط وبيانات مفهرسة وقيود وجداول مستنبطة بلاضافة الي اشياء اخري مثل ملفات الفيديو والصوت الخ ...
كل هذه العناصر تحتاج الي نظام لادارتها مثل انشاء الجداول وتعديلها وحذفها وانشاء وتعديل الفهارس والحفاظ علي تكامل البيانات وارسترجاع البيانات وتأمين الوصول للبيانات وعمليات اخري ليست محل النقاش الان. هذا النظام يعرف بنظام ادارة قواعد البيانات العلائقية RDBMS.
والان كيف يمكن للتطبيقات المختلفة كبرامج الحسابات والمبيعات الوصول للبيانات واضافتها وتعديلها وحذفها؟ يتم ذلك عن طريق الاتصال بنظام ادارة البيانات بواسطة بروتوكولات الاتصال المختلفة عبر شبكة الاتصال حيث يتم التعبير عن العمليات المطلوب اجرائها باستخدام لغة SQL. كما يتضح من الشكل يقوم المستخدم بالاستعلام عن بيانات معينة ويقوم بادخال معطيات مثل رقم العميل فيقوم البرنامج بتحويل المعطيات الي جملة SQL وارسالها الي نظام التشغيل والذي يقوم بارسالها الي الخادم حيث يقوم بتسليمها الي نظام ادارة قاعدة البيانات الذي يقوم بدوره بتفسير الجملة والتحقق من صلاحيات المستخدم واحضار البيانات المطلوبة من القاعدة وتسليمها للخادم الذي يقوم بارسالها للحاسب الصادر منه الاستعلام ويقوم الحاسب بتسليم البيانات الي البرنامج والذي يقوم بعرضها للمستخدم.
إذا لغة اس كيو ال هي لغة التخاطب مع نظم ادارة قواعد البيانات فهي تمكننا من إنشاء وتعديل واستعلام قواعد البيانات.
جري العرف علي تقسيم اللغة الي ثلاث مجموعات:
- لغة تعريف البيانات DDL
تستخدم في انشاء هيكل قاعدة البيانات وعناصرها من جداول وقيود وفهارس...
- لغة تناول البيانات DML
تستخدم في ادخال وتعديل وارسترجاع البيانات
- لغة التحكم DCL
تستخدم في انشاء وتعديل صلاحيات العمل مع قواعد البيانات وعناصرها
والان كيف تبدو هذه اللغة وهل لها قواعد؟ لغة اس كيو ال لغة سهلة يمكن تعلمها بسرعة فمن متطلبات اللغة ان تكون سهلة التعلم لذلك فهي تستخدم كلمات انجليزية مثل امسح DELETE وعدل او حدث UPDATE وهناك مجموعة من القواعد العامة او الصيغ العامة يجب اتباعها.
مثال: لدينا جدول لبيانات الموظفين ونريد الاستعلام عن بيانات الموظفين الذين يتقادون اجر اقل من 700 جنيه والمطلوب كتابة استعلام بلغة اس كيو ال لاسترجاع هذه البيانات؟
الحل
SELECT * FROM employee WHERE salary < 700
بتحليل هذه الجملة نجد انها تبدأ بـ SELECT وهي تستخدم لاسترجاع البيانات من الجداول يعقبها الرمز * ويعني جميع الاعمدة ثم كلمة FROM وتستخدم لتحديد اسم الجدول يعقبها اسم الجدول وهو employee ثم تأتي كلمة WHERE وتعني شرط ان يكون المرتب salary اقل من 700 والجدول التالي يوضح نتيجة الاستعلام
وبترجمة الجملة كصيغة امر لنظام ادارة قواعد البيانات فهي تعني:
احضر جميع الاعمدة لجميع السجلات من جدول الموظفين بشرط ان يكون المرتب اقل من700
مما سبق يتضح مدي سهولة اللغة وفي المقالة القادمة سنبدأ ان شاء الله الدرس الاول في لغة SQL (اس كيو ال).
ساحة النقاش