النتائج 1 إلى 10 من 10

الموضوع: ما الجديد في MySQL 5

  1. #1

    ما الجديد في MySQL 5



    كما يقول المثل الشهير، أن تأتي متأخرا خير من أن لا تأتي،

    لكن الواقع هو أن كافة المزايا “الجديدة” التي سأذكرها متوفرة من زمن بعيد في أنظمة قواعد البيانات الأخرى من Oracle وMicrosoft وIBM وحتى في نظام قواعد البيانات مفتوح المصدر PostgreSQL، لكنها لم تصل إلى MySQL إلا مؤخرا، ولهذا السبب قلت في بداية مقالتي، أن تأتي متأخرا خير من أن لا تأتي.

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

    الإجراءات المخزنة Stored Procedures

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

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

    هنالك الكثير من الفوائد التي يمكن جنيها من استخدام هذه الميزة:
    1. تقليل الأخطاء في البيانات. المثال السابق قد يكون بسيطا نوعا ما، وفي بعض الأحيان تكون هنالك مجموعة أكبر من العمليات التي تنفذ في عدة أماكن من البرنامج، وتكرار نفس العمليات في أكثر من مكان في البرنامج يزيد من احتمالات الخطأ في واحدة من هذه الأماكن، أما إذا كانت العمليات كلها مجموعة في مكان واحد وخزنت على المزود، فستقل احتمالات الخطأ.
    2. توزيع العمل بين المبرمجين ومديري قواعد البيانات. في كثير من الأحيان تكون قاعدة البيانات معقدة جدا لدرجة أنها تحتاج لشخص متخصص للتعامل معها وهندستها، وفي هذه الحالات يكون من الصعب جدا على المبرمج التعامل مع قاعدة البيانات مباشرة، فإنه سيحتاج بدلا من ذلك لمجموعة من الأوامر السهلة التي يوفرها له مدير قاعدة البيانات ليستخدمها في كتابة البرامج التي تحتاج للتعامل مع البيانات.
    3. زيادة الأمان. في كثير من الأحيان، يكون من الخطير إعطاء كافة البرامج أو المبرمجين وصولا مباشرا إلى البيانات ليقوموا بتنفيذ الأوامر التي يريدونها على البيانات وبالطريقة التي تعجبهم، والإجراءات المخزنة تساعدك على التقليل من خطورة ذلك بأن تعطي البرنامج صلاحيات تنفيذ بعض من الأوامر المخزنة فقط دون القيام بالأوامر الأساسية مباشرة مثل الإضافة أو الحذف أو التعديل.
    4. تسهيل التطوير. أعود إلى المثال السابق، ماذا لو قررت أنك تريد أن تحتفظ سجلا بكافة عمليات التحويل بين الحسابات؟ إذا لم تكن تستخدم الإجراءات المخزنة، فسيكون عليك البحث في البرنامج كله عن كل مكان تقوم فيه بالتحويل بين الحسابات وتعدل الأوامر هنالك لتضيف إليها أمرا يحتفظ بسجل بالعملية، أما إذا كنت تستخدم الأوامر المخزنة فكل ما سيكون عليك القيام به هو تعديل الأوامر المخزنة في قواعد البيانات دون الحاجة لتغيير أي شيء في البرنامج، ومن الممكن أن ينقذك هذا الأمر في حال كنت تريد عمل تغييرات جذرية أو كبيرة في قاعدة البيانات لكنك لا تريد تحمل عبئ تعديل البرنامج ليتوافق مع التغييرات في قاعدة البيانات.
    5. تقليل حجم البيانات المتبادل بين المزود والبرنامج. الاتصال بين مزود قاعدة البيانات والبرنامج يكون عادة عبر الشبكة، ونقل البيانات بهذه الصورة أبطأ مما لو كانت تتم معالجة البيانات مباشرة على السيرفر، وهذه الفائدة تظهر بوضوح في بعض الحالات التي يحتاج فيها البرنامج للقيام بالعديد من الأوامر والاستعلامات التي تعتمد على بعضها البعض للحصول على معلومة واحدة صغيرة، فبدلا من أن يتم ارسال كل استعلام وإجابة بين المزود والبرنامج، يقوم المزود بالقيام بكافة العمليات ويرسل النتيجة النهائية إلى البرنامج فقط.

    الأزندة Triggers

    العروض تشبه الجداول إلى حد كبير، لكنها في الواقع لا تحتوي على أي بيانات! كل البيانات الموجودة في العروض يتم جلبها من جداول أخرى، فيمكنك أن تعتبر العروض كجداول ديناميكية أو جداول حية تتحدث معلوماتها تلقائيا بناءا على المعلومات الموجودة في جداول أخرى.

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

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

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

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

    رأي: هل نحتاج لكل هذه المزايا؟

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

    ويبدو لي بأن المسألة كلها تتعلق بموازنتين.

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

    الأمر بالنسبة لي يشبه وضع عشرة أقفال على الباب بدلا من وضع قفل واحد، فعلى الرغم من أن هذه الأقفال الإضافية قد تزيد الإحساس بالأمان، لكن الحقيقة هي أن مفاتيح هذه الأقفال إذا وضعت في سلسلة واحدة وضاعت أو سرقت مع بعضها البعض فإن ذلك لا يختلف عن ضياع مفتاح واحد، وإذا كان اللص قادرا على فك أحد الأقفال بأساليبه الخاصة دون امتلاك المفتاح فإنه سيتمكن من فك عشرة أقفال أيضا، ولا أستبعد أبدا أن يصبح فتح الأقفال العشرة ثم اغلاقها بعد ذلك في كل مرة يحتاج فيها شخص ما لعبور الباب أمرا متعبا لدرجة أن صاحب المنزل قد يفضل أن يترك الباب دون قفل على أن يتعيش هذا العذاب، فتكون المحصلة هي أن يصبح الباب بالقفل الواحد أكثر أمانا بكثير!

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

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

    أي أنني في النهاية، وبعد ذكر هذه المزايا الجديدة في نظام MySQL، أحب أن أشير إلى أنني لست من أشد المعجبين بهذه المزايا، صحيح بأننا ستتيح لي القيام ببعض الأمور بصورة أفضل، لكنني لا أعتقد بأنني سأستخدمها كما يستخدمها المبرمجين الذين يستخدمون أنظمة قواعد البيانات الأخرى من Oracle وIBM وMicrosoft.

    بقلم: احمد الهاشمي بارك الله فيه







  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    353


    موضوع اكثر من رائع الف شكر





    __________________
    http://feckra.net/ads.php
    http://mp3egy.com
    http://feckra.org
    http://q8cam.com
    http://mesk-3.net
    http://gsmegypt.com
    http://gsmiraq.com
    للاتصال بى
    009659447208
    wael@feckra.com
    وائل فكرى بدر



  3. موضوع رائع تشكر له

    هنا لا بد لنا من سؤال مهم جدا

    لماذا هناك بعض التطبيقات التي كانت تعمل على الاصدار الرابع من ماي اس كي ال
    اصبحت لا تعمل الان؟؟

    حيث ان هناك سيكربتات مثل اندكسي..لا يعمل على MySQL 5

    ولكنه يعمل تماما على الاصدار القديم

    فما السبب؟؟

    هل تم حذف شيء معين بالاصدار الجديد؟؟





    __________________
    سكربت دليل المحيط
    الدليل الاكثر صداقة لمحركات البحث العالمية
    الاسرع والاقوى ارشفة وجلبا للزوار
    للطلب ولمزيد من المعلومات
    اتصل بنا

  4. #4


    موضوع رائع

    تشكر عليه اخوي






  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Jul 2002
    المشاركات
    878


    موضوع رائع قرأته منذ مدة على مدونة الأخ أحمد الهاشمي بارك الله فيه ..

    أرى أنه لا بأس من وضع عنوان مدونة الهاشمي كي يرى الاعضاء ما فيها من مواضيع لا تقل عن ما هو موجود هنا وبقلم أكثر من رائع أستفيد منه وإن كان تأخر منذ آخر مرة كتب فيه ..

    مدونة أحمد الهاشمي
    http://www.ahmadh.com/weblog/





    __________________
    للمراسلة :--
    http://alwa7eed.arabform.com

  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    جزاك الله خير .






  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2005
    المشاركات
    956


    جزاك الله خير
    على المعلومات القيمة
    الله يعطيك العافية





    __________________
    Ramy AlNemr
    Another look for creativity
    Change your life
    965/55905925-50624462
    waiak@msn.com

  8. #8


    جزاك الله خير

    وبالتوفيق دوما

    رائع كعادتك يا سردال






  9. #9


    الله يعطيك العافية





    __________________
    UQUNI.COM

    منتديات طلاب و طالبات جامعة أم القرى

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    48


    تسلم ياغالي على الموضوع










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض