البرمجة

ما تحتاج لمعرفته حول الإجراءات المخزنة

تُعرف مجموعة جمل SQL المصاحبة لاسم معين والمخزنة في قاموس بيانات قاعدة البيانات باسم الإجراء المخزن. 

بدلاً من ذلك، يمكن فهم الإجراء المخزن على أنه إجراء فرعي متاح للتطبيقات التي تصل إلى RDBMS.

عادةً، يمكن حفظ المعالجة المعقدة أو الشاملة التي تتطلب تنفيذ العديد من عبارات SQL في الإجراءات المخزنة لتوفير الوقت والذاكرة. 

من الممكن أيضًا استخدام الإجراءات المخزنة المتداخلة عن طريق تنفيذ إجراء مخزن من الآخر.

على الرغم من أن الإجراءات المخزنة قادرة على الوصول إلى البيانات الموجودة في قاعدة البيانات وتعديلها، إلا أنها لا تقتصر على قاعدة بيانات أو كائن معين.

استخدامات الإجراءات المخزنة

أساسي

  • المنطق الموحد والمركزي الذي تم تنفيذه أصلاً في التطبيقات المتصلة بـ RDBMS
  • في آليات التحكم في الوصول
  • في آليات التحقق من صحة البيانات

ثانوي

  • السماح لمسؤولي قاعدة البيانات بتتبع الأخطاء في النظام بمزيد من التفصيل عن طريق كتابة الإجراءات المخزنة كمعالجات للشرط
  • قم بالتشغيل داخل معاملة بحيث تكون شفافة بالنسبة للإجراءات المخزنة
  • للتحكم في إدارة المعاملات في بعض الأنظمة

التطبيق

من حيث التنفيذ، تشبه الإجراءات المخزنة إلى حد كبير UDFs (وظائف محددة من قبل المستخدم). 

بينما يمكن استخدام UDFs تمامًا مثل أي تعبير آخر ضمن جمل SQL، يتم استدعاء الإجراءات المخزنة باستخدام عبارة CALL أو EXECUTE.

تعتمد عملية التنفيذ الدقيقة للإجراء المخزن على نظام RDBMS المخصص له. 

ومن ثم، فإن تنفيذ إجراء مخزن، على سبيل المثال لـ MariaDB سيكون مختلفًا عن الإجراء المطبق في Microsoft SQL Server.

استنادًا إلى نظام قاعدة البيانات، من الممكن تنفيذ إجراء مخزن في مجموعة من لغات البرمجة.

 ومع ذلك، فإن الإجراءات المخزنة مكتوبة بلغات غير لغة SQL، مثل C ++ أو Java، وقد تنفذ أو لا تنفذ جمل SQL من تلقاء نفسها.

يتم سرد بعض قواعد البيانات ولغات التنفيذ المدعومة على النحو التالي:

  • DB2 – SQL PL أو Java
  • فايربيرد – PSQL
  • Microsoft SQL Server – Transact-SQL والعديد من لغات إطار عمل .NET
  • MySQL – تلتزم بشكل وثيق بمعيار SQL / PSM
  • Oracle Database – Java أو PL / SQL
  • PostgreSQL – PL / Perl أو PL / PHP أو PL / pgSQL

خادم مايكروسوفت SQL

عادةً ما يتم تطوير الإجراءات المخزنة التي تنتمي إلى Microsoft SQL Server باستخدام Transact-SQL (T-SQL). 

إنهم قادرون على قبول معلمات الإدخال ثم إرجاع قيم متعددة لمعلمات الإخراج.

في Microsoft SQL Server، تكون الإجراءات المخزنة مسؤولة عن عبارات البرمجة لتنفيذ العمليات في قاعدة البيانات ثم إرجاع قيمة الحالة إلى إجراء الاستدعاء أو الدفعة.

يتم إنشاء الإجراءات المعرفة من قبل المستخدم في قاعدة بيانات معرّفة من قبل المستخدم أو في جميع قواعد بيانات النظام، باستثناء قاعدة بيانات للقراءة فقط. 

هناك نوعان من الإجراءات المؤقتة، العامة والمحلية، ويتم تخزينها في TempDB.

بينما تكون الإجراءات المحلية مرئية فقط لاتصال المستخدم الحالي في Microsoft SQL Server، فإن الإجراءات العامة تكون مرئية لجميع المستخدمين فور إنشائها.

تأتي إجراءات الأنظمة مُعبأة مسبقًا مع Microsoft SQL Server ويتم تخزينها فعليًا في قاعدة بيانات موارد داخلية ومخفية. 

يظهر هذا النوع من الإجراءات المخزنة في مخطط SYS لكل نظام وفي قاعدة بيانات معرّفة من قبل المستخدم.

قاعدة بيانات أوراكل

لغة ملكية Oracle Database، PL / SQL مصنوعة من الإجراءات المخزنة. يستخدم المحترفون الذين يعملون مع Oracle Database البرامج المخزنة في RDBMS لكتابة التعليمات البرمجية واختبارها. 

بمجرد تجميع هذه البرامج، تصبح إجراءات مخزنة.

يتبع أي إجراء مخزن في Oracle Database بنية كتلة PL / SQL الأساسية التي تتكون من أجزاء تعريفية فردية وقابلة للتنفيذ ومعالجة الاستثناءات.

مزايا

  • يعزز الإجراء المخزن الإنتاجية حيث يجب كتابة العبارات في إجراء مخزن مرة واحدة فقط
  • نظرًا لأن الأوامر الموجودة في الإجراء المخزن يتم تنفيذها كدفعة واحدة من التعليمات البرمجية، فإن استخدام الإجراءات المخزنة يمكن أن يقلل بشكل كبير من حركة مرور الشبكة بين العملاء والخوادم. 
  • بمعنى آخر، بدلاً من إرسال كل سطر من التعليمات البرمجية عبر شبكة فقط، يتم إرسال المكالمة المراد تنفيذها عبر الشبكة
  • لأن المعلومات يتم إدخالها بطريقة متسقة، تحافظ إجراءات البيانات على تكامل البيانات
  • يعد ترميز إجراء مخزن أسهل من إنشاء استعلام عبر واجهة مستخدم رسومية
  • نظرًا لطبيعتها المعيارية، فمن الأسهل استكشاف أخطاء الإجراء المخزن وإصلاحها في حالة حدوث مشكلة في التطبيق
  • عرض مزايا على تضمين الاستعلامات في واجهة المستخدم الرسومية
  • توفير الدعم للأمان عبر ضوابط الوصول إلى البيانات. 
  • يمكن للمستخدمين النهائيين تعديل البيانات أو إدخالها ولكنهم غير قادرين على كتابة الإجراءات. ومن ثم، فإنها توفر طبقة أمان مهمة بين قاعدة البيانات وواجهة المستخدم
  • الإجراءات المخزنة قابلة للضبط. وبالتالي، فإنه يلغي الحاجة إلى تعديل كود مصدر واجهة المستخدم الرسومية لتحسين الأداء

سلبيات

  • نظرًا لأن لغات الإجراءات المخزنة عادةً ما تكون خاصة بالمورد، فإن تغيير موفري قواعد البيانات يتطلب عادةً إعادة كتابة الإجراءات المخزنة الحالية
  • مقارنة بالتعليمات البرمجية الأخرى، من الصعب تتبع التغييرات التي تم إجراؤها على الإجراءات المخزنة باستخدام نظام التحكم في الإصدار.
  •  أيضًا، من الصعب دمج وتعقب الاختلافات التي تم إجراؤها في الإجراءات المخزنة
  • لغات الإجراءات المخزنة المختلفة التي يقدمها بائعون مختلفون لها درجات مختلفة من التطور
  • لا تكون أدوات تصحيح الأخطاء وكتابة الإجراءات المخزنة في كثير من الأحيان بنفس جودة الأدوات المتاحة للغات البرمجة التي لا تعتمد على قواعد البيانات

MySQL وSQL والإجراءات المخزنة من المبتدئين إلى المتقدمين

الإجراءات المخزنة مقابل UDFs (وظائف من تحديد المستخدم)

في حين أن الإجراء المخزن هو روتين فرعي، فإن الوظيفة المعرفة من قبل المستخدم هي برنامج فرعي يهدف إلى إجراء عمليات حسابية معينة. 

أنواع مختلفة من الوظائف ترجع قيمًا مختلفة. على سبيل المثال، ترجع الدالة العددية قيمة واحدة فقط بينما تقوم دالة الجدول بإرجاع جدول علائقي.

في حين أنه من غير الممكن تضمين الإجراءات المخزنة في عبارات SELECT، يمكن استخدام الوظائف في عبارة SELECT. ومع ذلك، هناك شرط يجب ألا يقوموا بمعالجة البيانات.

إرجاع القيمة إلزامي للوظائف. ومع ذلك، لا يتم فرض مثل هذا الشرط على الإجراءات المخزنة. يمكنهم أيضًا استخدام RETURN keyword كما تفعل الوظائف ولكن مع عدم تمرير قيمة. 

على عكس الوظيفة، فإن الإجراء المخزن هو قاعدة بيانات وكائن مادي.

مقارنةً بوظيفة ما، يقطع الإجراء المخزن وقت تجميع الاستعلام. أيضًا، يمكن للإجراء المخزن إرجاع عدة قيم عن طريق معلمة OUT.

كل من الإجراءات والوظائف المخزنة مناسبة لإنجاز نفس المهمة. على الرغم من أنه يمكن تعريف كليهما حسب الطلب، إلا أن الدالات مصممة خصيصًا لإرسال مخرجاتها إلى استعلام أو عبارة T-SQL.

بينما تم تصميم الإجراءات المخزنة لإرجاع المخرجات إلى التطبيق، تقوم الوظائف المعرفة من قبل المستخدم بإرجاع متغيرات الجدول. علاوة على ذلك، لا يمكن للوظائف تغيير بيئة نظام التشغيل أو بيئة الخادم.

الإجراءات المخزنة مقابل البيانات المعدة

يأخذ البيان المُعد استعلامًا أو بيانًا عاديًا ويضع نفس المعايير للسماح باستخدام قيم حرفية مختلفة في وقت لاحق. بالمقارنة مع الإجراءات المخزنة، تكون البيانات المعدة أكثر وضوحًا وأبسط.

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

ومع ذلك، توفر البيانات المعدة إمكانية إعادة استخدام أفضل بين أنظمة قواعد البيانات المختلفة نظرًا لتطبيقاتها من جانب العميل وواجهات أبسط نسبيًا.

خاتمة

الإجراء المخزن هو ببساطة كود SQL مُعد يمكنك حفظه لإعادة استخدامه مرارًا وتكرارًا. بهذا، تكون مقالة الإجراءات المخزنة كاملة الآن. آمل أن يساعدك ذلك على فهم الإجراءات المخزنة والعمل معها بشكل أفضل.

المصدر: hackr

شاهد ايضا:

أفضل استضافة مواقع WordPress

إنشاء موقع جديد

متجر سلة

ادوات مشرفي المواقع

انشاء صفحة ويكيبيديا

أفضل مواقع قياس سرعة الانترنت

افضل سيرفر بيع متابعين

افضل برنامج تصميم صور

قياس سرعة الموقع الالكتروني

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *