,ويژگي هاي بانك اطلاعاتي MySQL
اشاره :
بانك اطلاعاتي معروف MySQL كه اپنسورس است، طرفداران زيادي در بين برنامهنويسان دارد. MySQL علاوه بر آنكه يكي از نمونههاي بسيار موفق نرمافزارهاي منبع باز محسوب ميشود، مثالي از نرمافزاري است كه در اروپا (سوئد) پا به عرصه گذاشته است. نخستين نسخه اين بانك اطلاعاتي توسط دو نفر از برنامهنويسان سوئدي نوشته شد و از آن پس بر اساس مدل نرمافزارهاي منبع باز توسعه يافت. البته در ميانه راه (يعني در زمان عرضه نسخه سوم اين نرمافزار) بر اساس توافقي ميان شركت MySQL AB از يك سو و شركت معظم SAPكه داراي خط تحقيق و توسعه بانك اطلاعاتي اختصاصي خود بود. از طرف ديگر، نسخه ويژهاي موسوم به MaxDB از تلفيق تكنولوژيهاي اين دو شركت در فهرست محصولات MySQL قرار گرفت. اما شركت MySQL همچنان كار توسعه نسخه قبلي و منبع باز نرمافزار MySQL را تا اين لحظه به موازات MaxDB ادامه داده است.
طرفداران فلسفه نرمافزارهاي منبع باز همواره از MySQL به عنوان نمونهاي ياد ميكنند كه توانسته است بهخوبي با نمونههاي بانكهاي اطلاعاتي اختصاصي همانندSQL server كه سرمايهگذاريهاي سنگيني براي توسعه آن انجام ميشود، رقابت كند (هر چند كه مايكروسافت بر اساس يك سياست كلي تنها رقيب خود را در زمينه بانكهاي اطلاعاتي، محصولات اوراكل ميداند و اصولاً توجهي به نرمافزارهاي منبع باز نميكند). اما واقعيت آن است كه در دنياي برنامهنويسي اين دو نرمافزار در رقابت تنگاتنگ قرار دارند.
آخرين نسخه MySQL همراه مجموعهاي از قابليتها و امكانات عرضه شده است كه آنرا بيش از پيش بهسمت كاربردهاي بزرگ مقياس سوق ميدهد. برخي از ناظران معتقدند هدف اوليه تغييرات و پيشرفتهاي ارائه شده در نسخه 5 اين نرمافزار، بيش از هر چيز ديگري معطوف برنامهنويسي پيشرفته در كاربردهاي گسترده و بزرگ است. يكي از منابع مورداستفاده در تهيه اين مقاله در اين زمينه چنين بيان ميكند آيا زمان آن فرا رسيده است كه اوراكل باز گردد و به پشتسر خود نگاه كند؟ جالب است كه نويسنده در نوشته خود اصلاً اسمي از مايكروسافت و SQL server نياورده است!
بانكاطلاعاتي سرور از نوع Embedded
اگرچه قابليت استفاده از اين بانك اطلاعاتي به صورت سرور Embedded موضوع جديدي محسوب نمی شود و از نسخه 4 MySQL به بعد همواره وجودداشته است، اما اين ويژگي از سوي كاربران همچنان نسبتاً ناشناخته باقيمانده است. استفاده از موتور نرمافزاري اين بانك اطلاعاتي به صورت Embedded با توجه به آنكه اين نرمافزار از نظر توابع API بهطور كامل با مدل Client/Server سازگاري دارد، بسيار ساده است. در واقع براي بهكارگيري اين نرمافزار به صورت Embedded تنها كافي است تا يك تغيير كوچك در سورس كد (نسبت به روش معمول) اعمال شود. نمونهاي از يك قطعه كد به زبان C كه در گوشه و كنار اينترنت به فراواني يافت ميشود اين مطلب را بهخوبي نمايش ميدهد. به قطعه كد شماره يك مراجعه نماييد .
Union ها
يونيونها موجوداتي هستند كه امكان تركيب دو يا چند Query را در يك DataSet فراهم ميكنند (البته با فرض اين كه اسامي ستون، نوع داده و ترتيب فيلد مطابقت داشته باشند). يونيونها مكانيسم بسيار قدرتمندي براي انواع گوناگون جستجوهاي پيشرفته محسوب ميشوند. بهطور معمول زماني يونيونها بهكار برنامهنويسان ميآيند كه در كاربردهاي مورد نظر آنها، دو جدول شامل اطلاعات نسبتاً مرتبط وجود داشته باشند. به عنوان مثال، در صورتيكه در ساختار يك بانك اطلاعاتي، يك جدول شامل اطلاعات فروشندگان باشد و جدول ديگري براي ثبت دادههاي شركتهاي فروشنده لوازم ساختماني بهكار رفته باشد، ميتوان از يونيون براي جستجوي همزمان در دو جدول و بهدست آوردن يك مجموعه پاسخ يا result set بهره گرفت.
SubQueryها
از SubQueryها و جداول مشتق شده براي قرار دادن عبارات انتخابي در يك SQL Statement ديگر استفاده ميشود. مثلاً اگر در بخش FROM عبارت جستجوي خود از يك عبارت SELECT ديگر استفاده كنيد، در اين صورت، عبارت SELECT خارجي از نتايج بهدست آمده از عبارت SELECT بهكار رفته در بخش FROM كلي جستجو، استفاده خواهد كرد. اين ويژگي هم يكي از ابزارهاي قدرتمندي است كه در كاربردهاي پيشرفته به كمك برنامهنويسان ميآيد.
عبارات از قبل آماده
برنامهنويسان آشنا با گرامر عبارات ODBC ازپيش آماده (ODBC Prepared statement) از اين پس ميتوانند اين ويژگي را در مجموعه API بانك اطلاعاتي MySQL كه به زبان C نوشته است، نيز بيابند. مثلاً:
?= region SELECT * FROM customer WHERE annual_sales > ? AND
اصطلاح عبارت جستجوي فوق آماده يا prepare شد، برنامهنويس ميتواند توسط توابع API نرمافزار MySQL مقادير گوناگوني را به علامتهاي سؤالهاي بهكار رفته در عبارت، متصل يا Bind كنند. مزيت عمده پشتيباني از چنين قابليتي در آن نهفته است كه ديگر براي هر عبارت جستجويي كه به ازاي هر يك از مقادير متغير علامت سؤال ايجاد ميشود، نيازي به توليد مجدد query نخواهد بود. اهميت اين موضوع زماني بيشتر آشكار ميگردد كه قرار باشد يك عبارت جستجوي از پيش آماده مكرراً اجرا شود. در اين وضعيت بهدليل آنكه queryها فقط يكبار ساخته و بهينهسازي ميشوند، سرعت اجراي نرمافزار به طرز محسوسي بالا خواهد بود در واقع سرعت اجراي نرمافزار در قياس با حالت معمول، دچار افت قابل توجهي نخواهد شد.
چندين DataSet در يك فراخواني
از زمان عرضه نسخه 4.1 نرمافزار MySQL، برنامهنويسان ميتوانستهاند توسط يك فراخواني، چندينquery را بر روي سرور به اجرا بگذارند. اين مطلب به معني آن است كه نرمافزار Client قادر به دريافت چندين resultSet خواهد بود. اين قابليت در مواقعي كه برنامهنويس از پيش ميداند كه چندين جستجو مستقل و ناوابسته به يكديگر بايد در كاربرد مشخصي به اجرا گذاشته شوند، عامل صرفهجويي بسيار مفيدي محسوب ميشود. علاوه بر مواردي كه در بالا مورد بررسي قرار داديم، اين قابليت زماني كه آنرا در كنار ويژگي جديد نسخه 5 اين نرمافزار يعني پشتيباني ازStored Procedureها مورد بررسي قرار دهيم، اهميت دوچندان خواهد يافت. زيرا ميدانيم كه هر Stored Procedure ممكن است منجر به توليد و بازگشت دادن چندين resultSet شود.
Viewها
Viewها براي نخستين بار در نسخه جديد MySQL مورد پشتيباني قرار گرفتهاند. Viewها اين امكان را براي كاربر فراهم ميآورند كه بتواند دادههاي مجموعهاي از جداول را همانند اطلاعات يك جدول ببيند. واقعيت آن است كه Viewها از ديد برنامهنويسان از اهميت چنداني برخوردار نيستند. اما براي مديران بانكهاي اطلاعاتي، view يك ابزار كارآمد محسوب ميشود. در آخرين نسخه بانكاطلاعاتي MySQL ،viewها داراي قابليت Update شدن هستند.
دیدگاهی برای نمایش وجود ندارد