شنبه, ۹ تیر, ۱۴۰۳ / 29 June, 2024
مجله ویستا

مروری بر MYSQL


مروری بر MYSQL
● هدف از ایجاد MYSQL
نسخه های اولیه MYSQL را به هیچ عنوان نمی توان با نسخه های جدید آن مقایسه نمود. نسخه های قدیمی به دلیل ماهیت عمومی سیستم عاملی كه برای آن درنظر گرفته شده بودند (یعنی یونیكس و لینوكس های اولیه) دارای واسط كاربر چندان جالبی نبودند و تمام فرامین مربوط به طراحی و مدیریت بانك اطلاعاتی در آن ها از طریق دستورات خط فرمان انجام می گرفت.
اما به تدریج و با پیدایش محیط های گرافیكی توانمند و زیبا برای لینوكس، MYSQL نیز همانند سایر نرم افزارهای اپن سورس تحت لینوكس مراحل تكامل و بهینه شدن هسته و ابزارهای جانبی خود را پیمود تا به جایی رسید كه اكنون به عنوان یكی از سریع ترین، كاراترین و مقرون به صرفه ترین برنامه های بانك اطلاعاتی جهان شناخته می شود.
غیر از توانمندی های مربوط به واسط كاربر و امكانات جانبی در نسخه های جدید MYSQL سعی شده است نقاط ضعف همیشگی این موتور بانك اطلاعاتی یعنی نبود سه عنصر مهم دید، روال های ذخیره شده و تریگرها تا حدود زیادی رفع شود و اكنون دیگر MYSQL به دلیل نداشتن این سه عنصر مهم در رقابت با سایر بانك های اطلاعاتی مورد سرزنش و بی مهری برنامه نویسان و مدیران بانك های اطلاعاتی قرار نمی گیرد.
به طوركلی وقتی به تاریخچه و مراحل تكامل MYSQL می نگریم سه ویژگی آن یعنی قابلیت اطمینان، كارایی مناسب و آسانی استفاده را از نكات مورد توجه سازندگان آن در تولید این اثر می یابیم. قابلیت اطمینان از این جهت كه یك بانك اطلاعاتی اپن سورس و با حمایت یك شبكه توانمند و در همه جا حاضری به نام Network MYSQL در هرلحظه آماده ارایه خدمت به استفاده كنندگان آن و پشتیبانی از آن ها است و به راحتی می تواند دربسیاری از كاربردهای تجاری جایگزینی مناسب برای همتایان گرانقیمت خود باشد.
كارایی مناسب از این لحاظ كه با ارایه نسخه های متعدد تحت سیستم عامل های مختلف و تحت معماری های سخت افزاری گوناگون قادر است تا هم در كاربردهای مبتنی برتعداد فرایندهای فراوان (OLTP) و هم در كاربردهای دارای پردازش ها و محاسبات سنگین (OLAP) مورد استفاده قرار گیرد. آسانی استفاده هم از این جهت است كه كلیه مراحل استفاده از آن از دستیابی به فایل های مخصوص نصب كه به طور رایگان قابل دریافت است و هم از این بابت كه مراحل نصب و پیكربندی كه حداكثر در ده دقیقه در سیستم عامل های مختلف صورت می گیرد. همچنین در زمان بهره برداری به شیوه ای بسیار آسان و گویا ابزارهای خود را در اختیار توسعه دهندگان و مدیران سیستم قرار می دهد.
● معماری MYSQL
ویژگی اپن سورس بودن MYSQL باعث شده است معماری داخلی آن به صورت گویا و واضح و در قالب ماجول های اساسی یا جانبی آن برای كاربرانش شناخته شده باشد.
ساختار این بانك اطلاعاتی شامل ماجول های مختلفی برای انجام دادن وظایف مختلف و استاندارد یك موتور پایگاه داده ای همه منظوره است. برخی از قسمت های اصلی و شیوه عملكرد آن ها در MYSQL عبارتند از:
▪ مدیریت اتصال
كنترل و ایجاد محدودیت درتعداد اتصالات قابل انجام بین كلاینت ها و سرور بانك اطلاعاتی یكی از ماجول ها و وظایف اصلی MYSQL است.
در واقع موتور بانك اطلاعاتی با مدیریت خودكار و ایجاد اشتراك بین كلاینت ها در استفاده بهینه از اتصالات موجود نقش مهمی را ایفا می كند. در واقع این ماجول سعی می كند با ایجاد فضای مشترك از به وجود آمدن تعداد زیادی اتصالات بی كار و بلااستفاده به بانك اطلاعاتی جلوگیری كند و در استفاده كمتر از فضای حافظه و پردازش پردازنده موثر واقع شود.
▪ دستورات و عناصر اصلی
وظایف ماجول های مستقر در این قسمت، ایجاد امكان ساخت جداول بانك اطلاعاتی ایندكس ها، دیدها، روال های ذخیره شده، توابع، تریگرها و پشتیبانی از دستورات SQL ویژه ساخت این عناصر یا خواندن، درج، حذف و تغییر داده ها در آنان است.
▪ مدیریت حافظه
یكی از مهم ترین كارهایی كه یك موتور پایگاه داده ای باید انجام دهد تخصیص و مدیریت حافظه مورد استفاده بانك اطلاعاتی و پردازش های مربوط به آن ها و همچنین فضای موردنیاز جهت عملیات بافرینگ ورودی و خروجی به علاوه عملیات Caching برای افزایش سرعت خواندن اطلاعات است. این كار به خوبی در MYSQL انجام می گیرد. ضمن این كه در زمان ایجاد و نگهداری یك بانك اطلاعاتی نیز پارامترهای مختلفی در این زمینه توسط مدیرسیستم و استفاده از ابزارهای مختص MYSQL قابل تنظیم است.
▪ موتور ذخیره سازی اطلاعات
MYSQL دارای ابزارهای متعددی برای ذخیره سازی اطلاعات به شیوه های گوناگون است. براین اساس و درزمان ایجاد یك پایگاه داده MYSQL پرسش های خاصی درمورد انتخاب نوع كاربرد بانك اطلاعاتی و انتخاب موتور ذخیره سازی مطرح می گردد.
در پرسش اول كه اختصاص به نوع كاربرد دارد مدیرسیستم می تواند از بین دو نوع پیش فرض یعنی یك پایگاه داده با تعداد زیادی فرایندهای همزمان (OLTP) یا یك پایگاه داده با تعداد زیادی دستورات ویژه خواندن و آنالیز اطلاعات (OLTP) یكی را انتخاب كند یا اقدام به تنظیم دستی نماید.
با این كار و طبق انتخاب وی، سیستم، تعداد اتصالات همزمان پایگاه داده ای را كه در بحث مدیریت اتصال به آن اشاره كردیم تنظیم می كند. براین اساس اولویت به كاربرد OLPA داده می شود چون اصولا كاربرد OLTP نیاز به استفاده زمانی كمتری از یك اتصال دارد و بدین سبب می تواند تعداد اتصال همزمان بیشتری را مدیریت نماید.
اما درمورد سوال دوم همانطور كه گفتیم MYSQL امكان انتخاب نوع ابزار و موتور ذخیره سازی را به مدیرسیستم می دهد. به عنوان مثال موتور InnoDB به طور پیش فرض برای كاربردهای OLTP و موتوری به نام MyiSAM برای كاربردهای OLAP و نگهداری انبوه اطلاعات پرحجم مثل Data warhousingیا وب سایت ها مورد استفاده MYSQL قرار می گیرد.
در ضمن MYSQL نیز همانند سایر بانك های اطلاعاتی مشهور علاوه بر دو موتور مختص به خودش كه برشمردیم راه حل هایی برای ذخیره سازی اطلاعات به صورت آرشیو (Archive) تجمعی، توزیع شده یا خوشه ای یا حتی بانك های اطلاعاتی سریع حافظه ای و چند نوع دیگر را دارد.
● ویژگی های برتر
در MYSQL معمولا اكثر روش های ساخت و بهره برداری از یك بانك اطلاعاتی به دو كاربرد O وOLTP و OLTP ختم می شود كه موتور بانك اطلاعاتی برای پشتیبانی و كارایی بهینه از هردو كاربرد مذكور به خوبی ساخته و پرداخته شده است.
به عنوان نمونه در كاربردهای OLTP وجود سازوكارها و استانداردهای یك بانك اطلاعاتی برای تضمین صحت اطلاعات مثل پشتیبانی كامل از انواع فرایندها و حتی فرایندهای توزیع شده روابط اطلاعاتی (كلید اولیه كلیدهای خارجی) و وجود ایندكس های منحصر به فرد (INDEX UNIQE) را می توان گواهی براین مساله دانست.
ضمن این كه موتور ذخیره سازی INNODB نیز به نوبه خود با مدیریت فضا و صفحات حاوی اطلاعات درحال ایجاد نظم و ترتیب در اطلاعات و حذف فضاهای خالی برای افزایش سرعت جستجو است.
این موتور ذخیره سازی همچنین قادر است با یك تصویر حایل از اطلاعات چندین جدول یك بانك اطلاعاتی از تداخل عملیات خواندن با فرایندها (تغییر درج حذف) و بروز مشكلات مربوط به قفل شدن ركوردها (Biocking) جلوگیری نماید.
اما درمورد كاربردهای OLAP موتور MyiSAM با فراهم نمودن یك فضای اطلاعاتی ترابایتی محیط بسیار وسیعی را برای انباشت اطلاعات و دسترسی سریع به آن ها در مواقع موردنظر را پدید آورده است.
تجربه نشان داده است كه بسیاری از شركت های معتبر و سایت های اینترنتی مشهور كه با مشكل ذخیره سازی و آنالیز انبوه اطلاعات مواجه بوده اند و سعی داشتند با استفاده از روش های توسعه طولی (Scale UP) مثل استفاده از سرورهایی با حافظه و هارددیسك های پرظرفیت تر و سریع تر یا پردازنده های قدرتمندتر ظرفیت سیستم خود را بالا ببرند موفق شدند با روی آوردن به MYSQL و استفاده از موتور ذخیره سازی MyISAM به نوعی دست به توسعه عرضی (Scaie Qut) بسیار مقرون به صرفه ای بزنند و تا ۸۰ درصد هزینه های مربوط به توسعه طولی یا همان ارتقای سخت افزاری را كاهش دهند.
ابزارهای مدیریتی اپن سورس بودن MYSQL باعث شده است بسیاری از شركت ها بتوانند برای هرچه آسان تر كردن و پیشرفته تر نمودن ابزارها و محیط های گرافیكی مبتنی بر MYSQL وارد كار شوند و به سرعت كمبود واسط كاربرهای ویژه مدیریت در MYSQL را جبران نمایند. یكی از معتبرترین واسط های كاربرهای گرافیكی در زمینه مدیریت برنامه است كه شركت MYSQL آن را ساخته و رسمی ترین برنامه مدیریت در MYSQL است.
این برنامه نیز به صورت رایگان از سایت MySQL Com قابل دانلود و نصب است. با استفاده از این برنامه قادر خواهید بود جداول دیدها، توابع و هر چه كه در یك بانك اطلاعاتی با دستورات SQL باید ساخته شود را طراحی و پیاده سازی نمایید.
در همین رده از برنامه ها می توان به ابزارهای دیگری چون ویزارد پیكربندی و یا ویزارد مخصوص ارتقا یا مهاجرت به MYSQL یعنی Migration Wizard و بسیاری برنامه های دیگر برای برپایی سرورهای MYSQL عملیات بكآپ گیری كلاسترینگ و امثال آن نیز اشاره نمود.
شایان ذكر است كه برخی از سایر توزیع كنندگان MYSQL نیز ابزارهای مدیریتی خاص خود را تهیه و ارایه نموده اند كه مشهورترین آن ها محصول شركت اروپایی SAP موسوم به MAXDB است كه نسخه ای براساس MYSQL می باشد و ابزارهای مدیریتی متنوعی مثل DBManager یا SQL Studio را به همراه خود دارد. در شماره های آینده سعی می كنیم به محیط MYSQL و ابزارهای كار با آن بیشتر بپردازیم.
فریما سادات میری
منبع : روزنامه جوان