لمحـــة تاريخية ان SQL لغة تعامل مع قواعد البيانات وقد تم زرعها نظريا في جميع أنظمة ادارة قواعد البيانات العلائقية (DBMS) المصممة لعدة مستخدمين وقد تم هذا الأمر نتيجة اعتماد هذه اللغة من هيئة المواصفات الوطنية الأمريكية (ANSI) و من قبل هيئة المواصفات الدولية (ISO) كلغة استفسارات قياسية لقواعد البيانات العلائقية سنبدأ بلمحة تاريخية بحيث يتم توضيح بدايات هذه اللغة و من بدأ بها من ثم سوف نستعرض قاعدة البيانات التي سوف نستخدمها في هذا الشرح لاستعراض الأمثلة بالضافة الى تعابير قواعد البيانات العلائقية و سوف نستعرض أيضا طريقة تنفيذ أوامر SQL البيئات البرمجية التي تعمل ضمنها و سنتطلع في نهاية الأمر على معالج أوامر VisData SQL المرفق بلغة vb و كذلك على استخدام تعابير sql المضمنة في برمجيات VB تم تطرير لغة SQL قبل IBM في مخبر أبحاث سان جوزية في بدايات 1970 وقد تم عرض هذه اللغة في مؤتمر ACM عام 1974 باسم SEQUEL و ذلك اختصارا لعبارة structured english query language و تلفظ سيكويل و قد أطلق عليها الأسم المختصر لاحقا SQL و رغم أن هذه اللغة من تأليف IBM فان أول عملية زرع لها تمت من قبل شركة ORACLE و كانت تسمى و قتها (relational software inc) تمت أغلب عمليات الزرع التجارية اللاحقة على أنظمة قةاعد بيانات علائقية DBMS مبينية ضمن أنظمة UNIX مثل ORACLE و ingres و informix و قد تبعتهم IBM لاخقا عام 1981 من خلال نظام SQL/DS الذي تحول الى DB/2 ابتداءا من عام 1983 قامت هيئة المواصفات ANSI بنشر معيار (SQL-86) علم 1986 تبعها اصدار دولي لهذه المعاير من قبل هيئة ISO عام 1987 تم اصدار تحديث جوهري لهذا المعيار عام 1989 باسم SQL-89 و تعنمد أغلب أنزمة ادارة قواعد البيانات DBMS حاليا واحدا على الأقل من مستويات معاييرعام 1989 تمت مراجعة المعايير مرة ثانية عام 1992 حيث اضيفت امكانيات أخرى الى لغة sql و أصبحت SQL-92 أكبر من مجموعة SQL-89 و بالتالي فانه يمكن لبرامج قواعد المعطيات القديمة أن تعمل بوجود المعايير الجديدة بدون تعديلات جوهرية لقد كان باستطاعة بائعي أنظمة DBMS حتى عام 1996 الطلب من الهيئة الوطنية للكتنولوجيا و المواصفات (NIST) التحقق من موافقة منتجاتهم لمعاير SQL حيث كانت عمليات التحقق و الموافقة تعتبر تشجيع كبير لبائعي أنظمة DBMS من أجل الألتزام بمعاير SQL و رغم ان عدم الألتزام بالمعايير و المواصفات قد يوفر على بائعي الأنظمة بعض المال و لكنه يؤدي الى الأبتعاد عن المعايير و بالتالي عدم التوافقيه الأمكانيات الحالية و المستقبلية لقد رأينا سابقا أن SQL هي لغة متكاملة للتعامل بالمعطيات يمكنك استخدامها للقيام بعمليات انشاء و صيانة قواعد البيانات و كذلك لتعديل و استحصال المعطيات من قواعد البيانات لكن لا يمكن التعامل مع لغة SQL بشكل مستقل بل يجب تضمين أوامر SQL ضمن لغة أخرى عند القيام ببناء البرامج لقواعد البيانات و تقوم حاليا هيئات ANSI و ISQ بالعمل معا لتحوبل SQL الى لغة برمجة مستقلة و يجب بعد ذلك الأنتظار أن يقوم مطورو البرامج بتحديث برامجهم لتضمينها المواصفة الجديدة على شكل بيئات برمجة SQL مستقلة مقاهيم أساسية لقواعد البيانات العلائقية تتكون قاعدة البيانات العلائقية من مجموعة من الجداول مكونة بدورها من أعمدة و أ سطر يتم حفظ تصاميم الجداول في ملف قاموس معطيات data dictionary و هو عبارة عن مجموعة جداول تحتوي على معلومات توصيفية عن القاعدة و رغم أن الجداول في قاعدة علائقية يبدو كجزء من صفحة معطيات أو كملف معطيات بسيط فان الجدول يتميز بالخصائص التالية : يمكن أن يكون الجدول فارغ أو محتويا على عدة أسطر من المعطيات بمعنى أخر فان العلاقة ( أو الجدول ) هي عبارة عن تعريف لبنية الجدول و عند تضمين الجدول صفوف من المعطيات فانك تحصل على نسخة (instance) من العلاقة يحتوي كل عمود من أي سطر في الجدول على قيمة واحدة فقط أو بمعنى أدق لا يوجد سمات متعددة القيم يتم أخذ المعطيات التي تم وضعها في عمود من مجال العمود الذي هو عبارة عن تعريف للقيم المسموح فيها في هذا العمود و هذا يتطابق في أغلب الأحيان مع نوع المعطيات المعرف أثناء انشاء الجدول ويقوم نظام DBMS بالتحقق من هذه الشروط على المعطيات عند كل عملية تعديل لقيم العمود تحتوي الجداول على مفتاح أساسي مكون من عمدو أ أكثر تكون قيمته وحيدة و معرفة لكل سطر يمكن تعريف المفتاح الأساسي من عدة أعمدة ضمن ما يسمى مفتاح أساسي مركب بحيث يكون معرف وحيد للأسطر بما ان المفتاح الأساسي و حيد فان قيمه لا يمكن أن تكون معدومة (NULL) و هي قيمة تعني " غير معروف " و بالتالي فان نظام DBMS يقوم بالتأكد من أن قيمة المفتاح الأساسي و حيدة و غير معدومة يتم التعبير عن علاقات الأرتباط بين الجداول في قاعدة البيانات العلائقية من خلال تضمين جدولين أو أكثر بأعمدة تعريف متوافقة عندما يحتوي جدول على عمود أو مجموعة أعمدة متطابقة مع مفتاح أساسي من جدول أخر نقول أن هناك علاقة ارتباط منطقية و ندعو العمود أو مجموعة الأعمدة المتوافقة مع المفتاح الأساسي من الجدول الموافق بمفتاح خارجي أو ثانوي على كل مفتاح خارجي يحتوي على قيمة غير معدومة أن يطابق قيمة موجودة في عمود المفتاح الأساسي نسمي هذا الشرط بالتكامل المرجعي referential integrity و على جميع أنظمة DBMS أن تقوم بالتأكد من تحقق هذا الشرط جداول القاعدة الجداول الأفتراضية و العروض ندعو الجداول المخزنة فعليا ضمن قاعدة البيانات بجداول القاعدة (الجداول الأساسية) وهي جزء دائم من القاعدة.بالمقابل فان نظام DBMSيقوم بانشاء جداول مؤقتة في الذاكرة الئيسية لجهاز العمل جوابا على استفسار ما.ندعو هذا النوع من الجداول بالجداول الافتراضية .حيث أن جداول الأستفسارات الأفتراضية هي عبارة عن جداول مؤقتة يتم تدميرها في أغلب الحالات عندما يقوم المستخدم باستفسار استدعاء جديد(retrieval request) . يمكن أن تحتوي قاعدة البيانات أيضا على مناظر أو عروض يتم تخزينها في قاموس المعطيات كتعبير استفسار و عندما يذكر مستخدم ما اسم منظر في تعبير تعامل بالمعطيات يقوم نظام DBMS بتنفيذ تلك الأستفسارات و انشاء جدول افتراضي يحتوي على النتيجة في الذاكرة الرئيسية يمكن بعد ذلك التعامل مع المنظر و اجراء الأستفسارات عليه تماما كجدول قاعدة البيانات التوضيحية ( مخزن كتب الكتروني ) ان الذي سوف نستخدمه هو عبارة عن مخزن للكتب موجود على الأنترنت يتم التعبير عن الجداول ضمن هذه القاعدة كما يلي :
Table_name (primary key, column,…)
Customers (customer numb, customer_first_name, customer_last_name, customer_street, customer_city, customer_state, customer_zip, customer_phone, customer_email)Books (isbn, author_name, title, publisher_name, publication_year, binding, source_numb, retail_price)Author (author name)Publishers (publisher name)Sources ( source numb, source_name, source_street, source_city, source_state, source_zip, source_phone)Order (order numb, customer_numb, order_date, credit_card_numb, card_exp_date, order_filled)Order_lines (order numb, isbn, quantity, cost_each, cost_line, shipped)