TAHA
11-27-2009, 12:02 AM
طرفداران MySQL تا همين اواخر از اينكه نرمافزار بانكاطلاعاتي محبوبشان ازStored procedure ها پشتيباني نميكند، دلخور ميشدند. اما از زمان عرضه نسخه 4، شركت MySQL AB وعده داده بود كه از اين قابليت در نسخه 5 پشتيباني خواهد كرد. بدين ترتيب براي نخستين بارStored procedureها در نسخههاي 5 و 5.0.10 به كار گرفته شدند.
يك stored procedure همانطور كه از نام آن مشخص ميشود، دستور فرايند يا تابعي است كه در محل خودِ بانك اطلاعاتي ذخيرهسازي ميشود. stored procedure از چندين منظر داراي اهميت فراوان است. اصولاً يك stored procedure تابعي است كه برنامهنويس از آن براي انجام عمليات منطقي پيچيده بر روي دادههاي بانك اطلاعاتي استفاده ميكند. البته بايد توجه داشته باشيد كه چنين تابعي در خود بانك اطلاعاتي ذخيره ميشود. بدين ترتيب خواص متعددي كه به آن اشاره كرديم، در اين شرايط تحقق مييابند. نخست آنكه در يك مدل برنامههاي كاربردي از نوع Client/server، انجام چنين عمليات پيچيدهاي به هيچ وجه به سكويي كه بخش Client بر روي آن در حال اجرا خواهد بود، وابسته نيست. نكته ديگر آنكه در سيستمهاي شبكه، انجام عمليات پيچيده و سنگين تحت هيچ شرايطي منجر به ايجاد ترافيك در سطح شبكه و در نتيجه ايجاد تأخير نخواهد شد. زبان مورد استفاده براي نوشتن توابع ذخيره شده در بانك Stored procedure، زبان استانداردي است كه 2003 SQL نام دارد. اين زبان همان زباني است كه بسياري از بانكهاي اطلاعاتي از آن براي چنين منظورهايي استفاده ميكنند. به عنوان مثال بانك اطلاعاتي معتبر و معروف IBM به نام DB2 هم از همين زبان براي بيان روتينهاي توابع خود بهره ميگيرد.
در پروژههاي بزرگ و پيچيدهتر،stored procedureها نقش ديگري نيز مييابند. معمولاً مرسوم است كه در پروژههاي بزرگ، يك يا دو نفر از برنامهنويسان خبره بانكهاي اطلاعاتي وظيفه مييابند تا به حل مسائل پيچيدهتر بپردازند و حاصل كار خود را بهصورت يك عبارت SQL و در قالب يك Stored procedure تحويل دهند. بدين ترتيب مابقي برنامهنويسان ميتوانند به پيادهسازي بخشهاي ديگر پروژه بپردازند.
http://www.developercenter.ir/download/MySqlStoredProc.JPG (http://www.7622.com/booken/582.htm)
يك stored procedure همانطور كه از نام آن مشخص ميشود، دستور فرايند يا تابعي است كه در محل خودِ بانك اطلاعاتي ذخيرهسازي ميشود. stored procedure از چندين منظر داراي اهميت فراوان است. اصولاً يك stored procedure تابعي است كه برنامهنويس از آن براي انجام عمليات منطقي پيچيده بر روي دادههاي بانك اطلاعاتي استفاده ميكند. البته بايد توجه داشته باشيد كه چنين تابعي در خود بانك اطلاعاتي ذخيره ميشود. بدين ترتيب خواص متعددي كه به آن اشاره كرديم، در اين شرايط تحقق مييابند. نخست آنكه در يك مدل برنامههاي كاربردي از نوع Client/server، انجام چنين عمليات پيچيدهاي به هيچ وجه به سكويي كه بخش Client بر روي آن در حال اجرا خواهد بود، وابسته نيست. نكته ديگر آنكه در سيستمهاي شبكه، انجام عمليات پيچيده و سنگين تحت هيچ شرايطي منجر به ايجاد ترافيك در سطح شبكه و در نتيجه ايجاد تأخير نخواهد شد. زبان مورد استفاده براي نوشتن توابع ذخيره شده در بانك Stored procedure، زبان استانداردي است كه 2003 SQL نام دارد. اين زبان همان زباني است كه بسياري از بانكهاي اطلاعاتي از آن براي چنين منظورهايي استفاده ميكنند. به عنوان مثال بانك اطلاعاتي معتبر و معروف IBM به نام DB2 هم از همين زبان براي بيان روتينهاي توابع خود بهره ميگيرد.
در پروژههاي بزرگ و پيچيدهتر،stored procedureها نقش ديگري نيز مييابند. معمولاً مرسوم است كه در پروژههاي بزرگ، يك يا دو نفر از برنامهنويسان خبره بانكهاي اطلاعاتي وظيفه مييابند تا به حل مسائل پيچيدهتر بپردازند و حاصل كار خود را بهصورت يك عبارت SQL و در قالب يك Stored procedure تحويل دهند. بدين ترتيب مابقي برنامهنويسان ميتوانند به پيادهسازي بخشهاي ديگر پروژه بپردازند.
http://www.developercenter.ir/download/MySqlStoredProc.JPG (http://www.7622.com/booken/582.htm)