Lesson4-Part2

SQL

(Structured Query Language)

(لغة الإستعـلام الهيكلية أو المُركبة)

(الغائب المُنتظر –على ما أعتقد- من الدرس السابق)

بعد أن علمنا أن الغاية النهائية لإنشاء مستر كودّ لقوانين نظام يُسمى بـ “نظام قواعد البيانات العلائقية” كانت بمثابة الأثاث الخرساني لبناء تطبيقات إلكترونية تعمل على الحاسب الآلي وتقوم بإدارة قواعد البيانات تِبعاً لتلك القوانين التي تفضل سيادته بها, وبما أن تلك النظم (RDBMS) تتخصص فى إدارة قواعد البيانات فكان لابد من وجود مُحرك (Engine) بداخلها يُمكنها من الإدارة والتحكم والقيادة لقواعد البيانات العلائقية,

ولكن ما طبيعة عمل الـ Database Engine (مُحرك قواعد البيانات)  داخل قواعد البيانات العلائقية؟!

بعد أن انتهى مستر كودّ من قوانين قواعد البيانات العلائقية, قام إثنين من الباحثين بشركة IBM بإنشاء لغة برمجة جديدة تُحقق وتسعى لتحقيق هدف قوانين ومبادئ قواعد البيانات العلائقية, وقد سُميت تلك اللغة فى بادئ الأمر بـأسـم:

American Structured Query Language (ونعم الإنتماء الوطني)

(لغة الإستعلام الهيكلية الأمريكية), أما بالنسبة للنطق فكان يُطلق عليها إسم S.Q.L إختصاراً لكلماتها (Structured Query Language). أو SEQUEL كنطقاً للثلاثة حروف معاً, ولكن سرعان ما غيرت IBM منطوق وإسـم SEQUEL إلى SQL بعد أن وُجد أنها علامة تُجارية مُسجلة لأحد شركات الطيران فى ذلك الوقت وكان الإسم النهائي لتلك اللغة هو SQL (Structured Query Language) إ           لا أن الكثير من المائلين للإختصار مازالوا يُطلقون عليها إسم SEQUEL ولكن ذلك لا تُسأل عنه IBM.

ما هي SQL؟

SQL أحد لغات البرمجة الغير إجرائية (Non Procedural Language) على عكس غيرها من اللغات مثل VB, C++, Java …إلخ.

حيث ان لغات البرمجة الغير إجرائية تتخصص للتعامل والتحكم داخل مجال واحد أما لغات البرمجة الإجرائية فتتعمم فى إنشاء شتى أنواع التطبيقات والبرامج كـ C++و VB …إلخ.

وتتخصص لغة SQL فى التعامل والتحكم فى قواعد البيانات العلائقية فقط, أي لا تنتظر منها أن تُساعدك فى برمجة تطبيق مُعين, فلو لاحظت من إسمها ستجد أنها لغة إستعلام.

إذا كانت قاعدة البيانات هي البناء أو الجسد القوي الصلب الذى يحمل البيانات فإن SQL هي روح هذا الجسد التي تجعل له قيمة وتملأه حيوية ونشـاط ولا حول ولا قوة إلا بالله العلي العظيم.

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

فإن الهدف الأساسي لقواعد البيانات هو إمكانية تسجيل الببانات لتوفير المعلومات للمساعدة فى إتخاذ القرارات, ودون SQL لن تتمكن من تسجيل بيانات ولا توفير معلومات, حيث أن لغة SQL هي الرائد والقائد والمسؤل عن تسجيل وتوفير المعلومات داخل قاعدة البيانات.

سؤال, هل يعني ذلك أن نُظم إدارة قواعد البيانات تدعم تلك لغة SQL؟

لا ليست داعمة لها!…… هي لم تُبنى إلا على أساسها أصلاً!.

 أي يُمكنك أن تقول أن نظام إدارة قواعد البيانات الذى أمامك مهما كان نوعه ومهما كانت الشركة المُصممه له فهو ليس أكثر من شيئين فقط لا غير وهمـا (واجهة و لغة SQL). الواجهة او الـ Interface هي الأدوات والنوافذ المرئية التي تشاهدها وتستخدمها داخل ذلك النظام وتُمكنك من التعامل مع قواعد البيانات إما بإستخدام الـ Keyboard أو الـ Mouse, أما بالنسبة لما وراء الحائط أو ما وراء الستار أو ما وراء تلك الواجهة من تأثيرات وحركات (Transactions) على قواعد البيانات بمعنى أوضح فهو ليس أكثر من SQL.

يعني ذلك أن SQL هي الأساس الأول للتحكم وإدارة قواعد البيانات العلائقية؟!

-أييييوة, بالضبط.

يتبين من كلمة “لغة” أنها تتطلب دراسة وجهد جهيد حتى نتمكن من فهمها وأساسياتها, أليس كذلك؟

على العكس تمااااماً, لغة SQL كما أخبرتك لغة غير إجرائية أي تقتصر مهامها على مجال معين فقط –قواعد البيانات- ويُوضح لك ذلك أنها لغة بسيطة جداً وليست مُتشعبة وهي كذلك فعلاً فقواعدها بسيطة جدا وسهلة جدا لشدة تقاربها للغة الأنجليزية –لا يعني ذلك أنك لابد أن تكون مُتحدثاً للإنجليزية بطلاقة لكي تتعلمها ولكن يُفضل ذلك عموماً وليس خصوصاً- وأوامرها قليلة أيضاً.

لا داعي للثرثرة, لقد حان الوقت لتُشمر عن ساعديك وتبدأ بطرقعة أناملك الجميلة ويبدأ تعدد ضحاياك من لوحات المفاتيح التي سوف تُدمرها عملاً وكتابة لأوامر SQL (لغة البرمجة الرقيقة).

 

بما أن لغة SQL هي لغة برمجة وبما أن إحتراف لغات البرمجة لا يأتي إلا بالـفهم ومن ثُم الـ Practice أو المُمارسة, فلابد لنا من مثالاً عملياً (قاعدة بيانات) حتى نتمكن من التطبيق عليه.

أسرع الأن بفتح نظـام إدارة قواعد البيانات الذي تستخدمه -حيث أن ما سنقوم به يسري على أي نظام لقواعد البيانات العلائقية- وسمي الله, وإبدأ معي بإنشاء أولى قواعد بياناتك فى تلك الدروس المُملة!.

قُم بإنشاء قاعدة بيانات جديدة بإسم:

MedicalCenter

(أعتقد انها قاعدة بيانات لمركز طبي!)

 

ثم قُم بإنشاء الوحدات او الجداول التالية:

بعد أن قُمت بتصميم الوحدات أو الجدوال, قُم إنشاء العلاقات التالية ما بين الجداول السابقة:

(الصور السابقة مُلتقطة من نظـام Ms-SQL Server 2008)

الأن وبعد أن إنتهينا, من تصميم قاعدة البيانات, يتوجب عليك الأن القيام بإدخال بيانات داخل تلك القاعدة قدر المُستطاع, حتى تكون مُستعداً للتلاعب بالبيانات (Manipulating Data) بإستخدام أوامر SQL وذلك…

فى الدرس القادم بإذن الله >>


Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s