سه شنبه, ۲ بهمن, ۱۴۰۳ / 21 January, 2025
مروری بر ویژگی های نسخه ۵ ۰ ۱ بانك اطلاعاتی MySQL
بانك اطلاعاتی معروف MySQL كه اپنسورس است، طرفداران زیادی در بین برنامهنویسان دارد. MySQL علاوه بر آنكه یكی از نمونههای بسیار موفق نرمافزارهای منبع باز محسوب میشود، مثالی از نرمافزاری است كه در اروپا (سوئد) پا به عرصه گذاشته است. نخستین نسخه این بانك اطلاعاتی توسط دو نفر از برنامهنویسان سوئدی نوشته شد و از آن پس بر اساس مدل نرمافزارهای منبع باز توسعه یافت. البته در میانه راه (یعنی در زمان عرضه نسخه سوم این نرمافزار) بر اساس توافقی میان شركت MySQL AB از یك سو و شركت معظم SAP (كه دارای خط تحقیق و توسعه بانك اطلاعاتی اختصاصی خود بود) از طرف دیگر، نسخه ویژهای موسوم به MaxDB از تلفیق تكنولوژیهای این دو شركت در فهرست محصولات MySQL قرار گرفت. اما شركت MySQL همچنان كار توسعه نسخه قبلی و منبع باز نرمافزار MySQL را تا این لحظه به موازات MaxDB ادامه داده است. طرفداران فلسفه نرمافزارهای منبع باز همواره از MySQL به عنوان نمونهای یاد میكنند كه توانسته است بهخوبی با نمونههای بانكهای اطلاعاتی اختصاصی همانندSQL server كه سرمایهگذاریهای سنگینی برای توسعه آن انجام میشود، رقابت كند (هر چند كه مایكروسافت بر اساس یك سیاست كلی تنها رقیب خود را در زمینه بانكهای اطلاعاتی، محصولات اوراكل میداند و اصولاً توجهی به نرمافزارهای منبع باز نمیكند). اما واقعیت آن است كه در دنیای برنامهنویسی این دو نرمافزار در رقابت تنگاتنگ قرار دارند. آخرین نسخه MySQL همراه مجموعهای از قابلیتها و امكانات عرضه شده است كه آنرا بیش از پیش بهسمت كاربردهای <بزرگ مقیاس> سوق میدهد. برخی از ناظران معتقدند هدف اولیه تغییرات و پیشرفتهای ارائه شده در نسخه ۵ این نرمافزار، بیش از هر چیز دیگری معطوف برنامهنویسی پیشرفته در كاربردهای گسترده و بزرگ است. یكی از منابع مورداستفاده در تهیه این مقاله در این زمینه چنین بیان میكند: <آیا زمان آن فرا رسیده است كه اوراكل باز گردد و به پشتسر خود نگاه كند؟> جالب است كه نویسنده در نوشته خود اصلاً اسمی از مایكروسافت و SQL server نیاورده است!
بانكاطلاعاتی سرور از نوع Embedded
اگرچه قابلیت استفاده از این بانك اطلاعاتی به صورت سرور Embedded موضوع جدیدی محسوب ن-م-یش-ود و از نسخه ۴ 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 نوشته است، نیز بیابند. مثلاً:
SELECT * FROM customer WHERE annual_sales > ? AND
?= region
اصطلاح عبارت جستجوی فوق آماده یا prepare شد، برنامهنویس میتواند توسط توابع API نرمافزار MySQL مقادیر گوناگونی را به علامتهای سؤالهای بهكار رفته در عبارت، متصل یا Bind كنند. مزیت عمده پشتیبانی از چنین قابلیتی در آن نهفته است كه دیگر برای هر عبارت جستجویی كه به ازای هر یك از مقادیر متغیر علامت سؤال ایجاد میشود، نیازی به تولید مجدد query نخواهد بود. اهمیت این موضوع زمانی بیشتر آشكار میگردد كه قرار باشد یك عبارت جستجوی از پیش آماده مكرراً اجرا شود. در این وضعیت بهدلیل آنكه queryها فقط یكبار ساخته و بهینهسازی میشوند، سرعت اجرای نرمافزار به طرز محسوسی بالا خواهد بود (در واقع سرعت اجرای نرمافزار در قیاس با حالت معمول، دچار افت قابل توجهی نخواهد شد).
چندین DataSet در یك فراخوانی
از زمان عرضه نسخه ۴.۱ نرمافزار MySQL، برنامهنویسان میتوانستهاند توسط یك فراخوانی، چندینquery را بر روی سرور به اجرا بگذارند. این مطلب به معنی آن است كه نرمافزار Client قادر به دریافت چندین resultSet خواهد بود. این قابلیت در مواقعی كه برنامهنویس از پیش میداند كه چندین جستجو مستقل و ناوابسته به یكدیگر باید در كاربرد مشخصی به اجرا گذاشته شوند، عامل صرفهجویی بسیار مفیدی محسوب میشود. علاوه بر مواردی كه در بالا مورد بررسی قرار دادیم، این قابلیت زمانی كه آنرا در كنار ویژگی جدید نسخه ۵ این نرمافزار یعنی پشتیبانی ازStored Procedureها مورد بررسی قرار دهیم، اهمیت دوچندان خواهد یافت. زیرا میدانیم كه هر Stored Procedure ممكن است منجر به تولید و بازگشت دادن چندین resultSet شود.
Viewها
Viewها برای نخستین بار در نسخه جدید MySQL مورد پشتیبانی قرار گرفتهاند. Viewها این امكان را برای كاربر فراهم میآورند كه بتواند دادههای مجموعهای از جداول را همانند اطلاعات یك جدول ببیند. واقعیت آن است كه Viewها از دید برنامهنویسان از اهمیت چندانی برخوردار نیستند. اما برای مدیران بانكهای اطلاعاتی، view یك ابزار كارآمد محسوب میشود. در آخرین نسخه بانكاطلاعاتی MySQL ،viewها دارای قابلیت Update شدن هستند.
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست