السبت، 10 سبتمبر، 2011

الفرق بين sql و pl/sql


بسم الله الرحمن الرحيم

كتير مننا لما بنبدأ نتعلم تكنولوجيا جديدة بتكون فى بعض المصطلحات و المفاهيم مختلطه علينا مثلا فيه ناس بتخلط بين لغة java script و لغة java لمجرد التشابه فى الاسم رغم اللاختلاف التام بين اللغتين

و من ضمن اكتر الحاجات اللى بتلخبط اى اوراكلاوى جديد هو السؤال المصيرى ايه الفرق بين SQL و PL/SQL

تعريف لغة ال SQL

هى لغة موجهة للتعامل مع البيانات و بالتحديد مع قواعد البيانات العلائقية relational databases و من المفترض انها لغة نموذجية او standard بمعنى انها لغة موحده يمكن استخدامها بنفس الشكل مع جميع قواعد البيانات

كلمة SQL هى اختصار ل Structured Query Language او لغة الاستعلام البنيوية و بالمناسبه لو سمعت مبرمج بيقولك ايه هو ( السيكوال ) ماتتخضش لأن ده من اكتر الاسامى الدارجه و المتداولة بين المبرمجين و رد علية بكل ثقة و قوله سيكوال يعنى SQL  و من دلوقتى لأخر الدرس انا هاستخدم كلمة سيكوال عشان تاخد عليها

ملحوظة : نتيجه للتنافس بين مصنعى قواعد البيانات و اختلاف كل قاعدة بيانات عن منافسيها فظهرت بعض الاختلافات فى لغة السيكوال و لكن الاختلافات دى فى اغلبية الحلات اختلافات بسيطه

نصيحة : لغة السيكوال من اهم اللغات اللى بيتعلمها المبرمج و من اكتر اللى بيعتمد عليها خلال مشوارة كمبرمج لأن اى برنامج بيتعامل مع قاعدة بيانات مهما كان اللغة اللى مكتوب بيها بيستخدم السيكوال بشكل مباشر او غير مباشر من الاخر لغة السيكوال هى مهارة اساسية لازم تكون عند اى مبرمج


تعريف لغة ال PL/SQL

هى لغة برمجة اجرائية procedural programming language من الجيل الرابع
هى لغة البرمجة الاساسية لقواعد البيانات اوراكل و بتستخدم عادة مع لغة السيكوال لكتابة برامج للتعامل مع اوراكل

ملحوظة: لغة PL/SQL بعكس السيكوال ليست لغة نموذجية بمعنى انها خاصه بقواعد البيانات اوراكل فقط و مش ممكن تستخدمها مع اى قاعدة بيانات اخرى


و بعيد عن التعريفات و المصطلحات و الاختصارات ممكن نعتبر على سبيل المثال ان قاعدة البيانات دى زى المخزن و البضاعة اللى داخل المخزن هى البيانات نفسها و البيانات او البضاعة دى مترتبه على ارفف لو تخيلنا ان فيه عامل قوى فى المخزن ده هو اللى مسؤل عن بناء المخزن و تركيب الرفوف و رص البضاعة على الرفوف و اخراج البضاعة خارج المخزن او ادخالها داخل المخزن

و العامل ده ليه مدير هو امين المخزن و هو مسؤل عن جرد المخزن و تصنيف البضائع و اجراء عمليات حسابية معقدة و فى نفس الوقت مدير المخازن بيستخدم العامل فى التعامل المباشر مع البضائع مثلا يقوله روح هاتلى الصنف كذا من الرف رقم كذا

لو اخدنا المثال ده و طبقناه على السيكوال و الPL/SQL هانلاقى ان العامل القوى ده هو السيكوال حيث ان البينات (البضاعة) موجوده فى قاعدة البينات (المخزن) فى جداول (الرفوف) و السيكوال هو اللى بيتعامل مع البينات بشكل مباشر بس السيكوال ليه سقف مايقدرش يتخطاه مثلا السيكوال لوحده مايقدرش يقوم بعمليات معقده منطقية او حسابية فى حين ان PL/SQL (مدير المخازن) بيعوض نقاط ضعف السيكوال و لكن على الرغم من كده ال PL/SQL بدون سيكوال غير فعال و نقدر نقول ان العلاقه بينهم علاقه تكميلية يعنى بيكملوا بعض

الخلاصه

SQL لغة للتعامل مع البيانات من حيث تخزينها و استرجاعها الخ... (العضلات)
PL/SQL لغة برمجة يمكن من خلالها عمل عمليات حسابية و منطقية على البيانات (المخ)


اوجه التشابه بين السيكوال و ال PL/SQL

1- لغتين اساسيتين للتعامل مع قواعد البيانات اوراكل


2- يمكن استخدامهم فى مزيج حيث اللغتين يكمل كل منهم الاخر

اوجه الاختلاف بين السيكوال و ال PL/SQL

1- لغة السيكوال هى لغة نموذجية او Standard فى حين ان PL/SQL لغة خاصة بأوراكل فقط


2- لغة السيكوال تملك امكانيات هائلة فى التعامل مع البيانات و لكن لها حدود او limitations


3- فى حين ان PL/SQL تعوض هذه النواقص حيث تحتوى على اغلب خصائص لغات البرمجه الحديثه من حيث المتغيرات و الجمل الشرطية و التكرارية و الدوال الخ..

بعض وظائف لغة SQL

Select statement او جمل السيليكت و دى جمل بتستخدم لأستخراج البيانات من قاعدة البينات


DML او جمل التلاعب بالبيانات و هى جمل بتستخدم لاضافة بينات او تعديلها او حذفها


DDL او جمل تعريف البيانات و بتستخدم فى بناء الجداول و غيرها من الكائنات الخاصه بقاعدة البينات او التعديل فيها او حذفها


بعض وظائف و خواص PL/SQL

Variables المتغيرات و هى من اهم خصائص لغات البرمجه


Functions أو الدوال و هى مجموعه من الخطوات البرمجية و التى ينتج عنها نتيجه بالنسبه للى عارف جافا فهى زى method with return type


Procedures او الاجراءات و هى مجموع من الخطوات البرمجيه و اللى مابينتجش عنها نتيجه فى الجافا مثل method with void return


Packages او الحزم البرمجية و هى مجموعه من ال functions و ال procedures المجمعه فى وحده منطقية واحدة و فكرتها الى حد ما شبه class فى الجافا


Exception handling و هى القدره على تنفيذ مجموعه من الاجراءات فى حالة حدوث خطأ فى البرنامج

الكلام ده احد المهندسين كاتبه وانا بنقله عنه عشان الكل يستفاد 

م.احمد طرطور
وترقبوا افتاح الموقع المبرمج المحترف

‏ليست هناك تعليقات:

إرسال تعليق