MySQL Community Server 5.5.9 لإدارة قواعد البيانات

Posted by YallaGroup.Net in برامج on 09-02-2011

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

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

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

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

هنالك الكثير من الفوائد التي يمكن جنيها من استخدام هذه الميزة

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

الأزندة Triggers

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

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

العروض Views



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

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

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

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

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

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

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

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

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

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

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

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

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



MySQL Community Edition is a freely downloadable version of the world&39;s most popular open source database that is supported by an active community of open source developers and enthusiasts.

MySQL delivers enterprise features including

Partitioning to improve performance and management of very large database environments RowbasedHybrid Replication for improved replication security Event Scheduler to create and schedule jobs that perform various database tasks XPath Support Dynamic GeneralSlow Query Log PerformanceLoad Testing Utility mysqlslap Improved Full Text Search faster new dev templates Improved Archive engine better compression more features Improved User session and problem SQL identification Improved MySQL embedded library libmysqld Additional INFORMATIONSCHEMA objects Faster data import operations parallel file load ACID Transactions to build reliable and secure business critical applications Stored Procedures to improve developer productivity Triggers to enforce complex business rules at the database level Views to ensure sensitive information is not compromised Information Schema to provide easy access to metadata Pluggable Storage Engine Architecture for maximum flexibility Archive Storage Engine for historical and audit data


رابط تحميل البرنامج

تحميل MySQL Community Server 5.5.9 لإدارة قواعد البيانات


Comments are closed.