ما می توانیم در بانک های اطلاعاتی، اطلاعاتی را که فراموش می کنیم ذخیره کنیم مثل آدرس و شماره تلفن و یا حساب های شخصی و یا اداره یک انبار و یا یادداشت های روزانه.
یکی از نرم افزارهای مخصوص این کار نرم افزار Access از سری خانواده Office می باشد که بنا به سادگی و نیازی که مردم به دیگر نرم افزار های این خانواده دارند به روی اکثر سیستم ها نصب می باشد که این خود یک امتیاز مفید است، یکی دیگر از نرم افزار های مخصوص این کار نرم افزار FoxPro از شرکت معروف Microsoft می باشد که البته این را باید بگویم که اولین ورژن های این نرم افزار برای شرکت دیگر بود و به دلیل شروع یک پرژه بزرگ و این تفکر که این نرم افزار نا موفق بوده و به درد نخور است تمامی امتیاز آن را به شرکت صاحب امتیاز کنونی فروخت و این شرکت با توسعه این نرم افزار از ورژن های داسی آن به بالا این نرم افزار را به صورت کاملاً پیشرفته در آوردند که در آخر آن را در سری خانواده Visual قرار دادند و حتی در این سال ۹۸ آن را با نرم افزار های مانند بیسیک و یا سی هم ردیف کردند ودر این اواخر حتی با پیشرفت برای خود نرم افزاری جداگانه شد و با ورژن های ۷ و ۸ به بازار ارائه شده، یکی از نکات منفی این نرم افزار این است که به دلیل سنگینی حجم و اجرای برنامه در هر سیستمی قابل پیاده کردن نیست و در صورتی که کاربر خود پیرینتر نداشته باشد دیگر وای …..
یکی دیگر از نرم افزار های این سیستم (بانک اطاعاتی) نرم افزار Oracel است که یکی از قوی ترین نرم افزار ها دی این رابطه است که بانک های شرکت های بزرگی مانند بانک های مختلف کشور و یا کارخانه ایران خودرو و یا به تازگی شرکت پارس الکتریک و شرکت ها و کارخانجات تجاری را با آن می نویسند (که البته بنده از این بخش از سیستم اطلاعات کافی ندارم )
نرم افزار های دیگری نیز وجود دارند که در واقع نرم افزار های اصلی نیستند و جزء نرم افزار های تابع شناخته می شوند و فقط بخشی از آن ها برای این کار طراحی شده اند (برای ارتباط و خلاصی از حمایت دو جانبه نرم افزار ها با این سیستم).
نمونه ای از این بانک ها نرم افزار و بانک SQL می باشد. شاید برای شما جالب باشد که بشنوید همین کارت های اینترنت شما با ویندوز های SQL سرور کنترل می شوند .
البته باید بگویم ساده ترین بانک ما فایلی با فرمت TXT می باشد، بله تعجب نکنید، چنین بانکی وجود دارد، ولی کار با این بانک ها کمی سخت است و کاربردی. یعنی در واقع خود این فایل ها بانک نیستند و با نرم افزار های تابع تبدیل به یک بانک می شوند البته فقط برای نمایش و حتماً اطلاعات ما در این فایل ها ذخیره می شوند.
هدف از ایجاد MySQL
نسخههای اولیه MySQL را به هیچ عنوان نمیتوان با نسخههای جدید آن مقایسه نمود. نسخههای قدیمی بهدلیل ماهیت عمومی سیستمعاملی که برای آن درنظر گرفته شده بودند (یعنی یونیکس و لینوکسهای اولیه) دارای واسط کاربر چندان جالبی نبودند و تمام فرامین مربوط به طراحی و مدیریت بانک اطلاعاتی در آنها از طریق دستورات خط فرمان انجام میگرفت. اما بهتدریج و با پیدایش محیطهای گرافیکی توانمند و زیبا برای لینوکس،MySQL نیز همانند سایر نرمافزارهای اپنسورس تحت لینوکس مراحل تکامل و بهینه شدن هسته و ابزارهای جانبی خود را پیمود تا به جایی رسید که اکنون به عنوان یکی از سریعترین، کاراترین و مقرون به صرفهترین برنامههای بانک اطلاعاتی جهان شناخته میشود.
غیر از توانمندیهای مربوط به واسط کاربر و امکانات جانبی، در نسخههای جدید MySQL سعی شدهاست نقاط ضعف همیشگی این موتور بانک اطلاعاتی، یعنی نبود سه عنصر مهمِ دید (View)، روالهای ذخیره شده و تریگرها، تا حدود زیادی رفع شود و اکنون دیگر MySQL به دلیل نداشتن این سه عنصر مهم، در رقابت با سایر بانکهای اطلاعاتی مورد سرزنش و بیمهری برنامهنویسان و مدیران بانکهای اطلاعاتی قرار نمیگیرد.
بهطورکلی وقتی به تاریخچه و مراحل تکامل MySQL مینگریم، سه ویژگی آن، یعنی قابلیت اطمینان، کارایی مناسب و آسانی استفاده را از نکات مورد توجه سازندگان آن در تولید این اثر مییابیم. قابلیت اطمینان، از این جهت که یک بانک اطلاعاتی اپنسورس و با حمایت یک شبکه توانمند و در همهجا حاضری به نام MySQL Network در هرلحظه آماده ارائه خدمت به استفاده کنندگان آن و پشتیبانی از آنها است و به راحتی میتواند دربسیاری از کاربردهای تجاری جایگزینی مناسب برای همتایان گرانقیمت خود باشد.
کارایی مناسب، از این لحاظ که با ارائه نسخههای متعدد تحت سیستم عاملهای مختلف و تحت معماریهای سخت افزاری گوناگون قادر است تا هم در کاربردهای مبتنی برتعداد فرایندهای فراوان (OLTP) و هم در کاربردهای دارای پردازشها و محاسبات سنگین (OLAP) مورد استفاده قرار گیرد. آسانیِ استفاده هم از اینجهت است که کلیه مراحل استفاده از آن، از دستیابی به فایلهای مخصوص نصب که بهطور رایگان قابل دریافت است و هم از این بابت که مراحل نصب و پیکربندی که حداکثر در ده دقیقه در سیستمعاملهای مختلف صورت میگیرد. همچنین در زمان بهرهبرداری به شیوهای بسیار آسان و گویا، ابزارهای خود را در اختیار توسعهدهندگان و مدیران سیستم قرار میدهد.
معماری MySQL
ویژگی اپنسورس بودن MySQL باعث شده است معماری داخلی آن، بهصورت گویا و واضح و در قالب ماجولهای اساسی یا جانبی آن برای کاربرانش شناخته شده باشد. ساختار این بانک اطلاعاتی شامل ماجولهای مختلفی برای انجامدادن وظایف مختلف و استاندارد یک موتور پایگاه دادهای همه منظوره است. برخی از قسمتهای اصلی و شیوه عملکرد آنها در MySQL عبارتند از:
مدیریت اتصال
کنترل و ایجاد محدودیت درتعداد اتصالات قابل انجام بین کلاینتها و سرور بانک اطلاعاتی یکی از ماجولها و وظایف اصلی MySQL است. درواقع موتور بانک اطلاعاتی با مدیریت خودکار و ایجاد اشتراک بین کلاینتها در استفاده بهینه از اتصالات موجود نقش مهمی را ایفا میکند. درواقع این ماجول سعی میکند با ایجاد فضای مشترک، از به وجود آمدن تعداد زیادی اتصالات بیکار و بلااستفاده به بانک اطلاعاتی جلوگیری کند و در استفاده کمتر از فضای حافظه و پردازش پردازنده موثر واقع شود.
دستورات و عناصر اصلی
وظایف ماجولهای مستقر در این قسمت، ایجاد امکان ساخت جداول بانک اطلاعاتی ایندکسها، دیدها، روالهای ذخیره شده، توابع، تریگرها، و پشتیبانی از دستورات SQL ویژه ساخت این عناصر یا خواندن، درج، حذف و تغییر دادهها در آنان است.
مدیریت حافظه
یکی از مهمترین کارهایی که یک موتور پایگاه دادهای باید انجام دهد، تخصیص و مدیریت حافظه مورد استفاده بانک اطلاعاتی و پردازشهای مربوط به آنها و همچنین فضای موردنیاز جهت عملیات بافرینگ ورودی و خروجی بهعلاوه عملیات caching برای افزایش سرعت خواندن اطلاعات است. این کار بهخوبی در MySQL انجام میگیرد. ضمن اینکه در زمان ایجاد و نگهداری یک بانکاطلاعاتی نیز پارامترهای مختلفی در این زمینه توسط مدیرسیستم و استفاده از ابزارهای مختص MySQL قابل تنظیم است.
موتور ذخیرهسازی اطلاعات
MySQL دارای ابزارهای متعددی برای ذخیرهسازی اطلاعات به شیوههای گوناگون است. برایناساس و درزمان ایجاد یک پایگاه داده، MySQL پرسشهای خاصی درمورد انتخاب نوع کاربرد بانک اطلاعاتی و انتخاب موتور ذخیرهسازی مطرح میگردد.
در پرسش اول که اختصاص به نوع کاربرد دارد، مدیرسیستم میتواند از بین دو نوع پیش فرض یعنی یک پایگاه داده با تعداد زیادی فرایندهای همزمان (OLTP) یا یک پایگاه داده با تعداد زیادی دستورات ویژه خواندن و آنالیز اطلاعات (OLAP) یکی را انتخاب کند یا اقدام به تنظیم دستی نماید.
با این کار و طبق انتخاب وی، سیستم، تعداد اتصالات همزمان پایگاه دادهای را تنظیم میکند. براین اساس اولویت به کاربرد OLPA داده میشود چون اصولاً کاربرد OLTP نیاز به استفاده زمانی کمتری از یک اتصال دارد و بدین سبب میتواند تعداد اتصال همزمان بیشتری را مدیریت نماید.
اما درمورد سؤال دوم همانطور که گفتیم، MySQL امکان انتخاب نوع ابزار و موتور ذخیرهسازی را به مدیرسیستم میدهد. به عنوان مثال موتور InnoDB بهطور پیشفرض برای کاربردهای OLTP و موتوری به نام MyISAM برای کاربردهای OLAP و نگهداری انبوه اطلاعات پرحجم مثل Data Warhousing یا وب سایتها مورد استفاده MySQL قرار میگیرد. در ضمن ، MySQL نیز همانند سایر بانکهای اطلاعاتی مشهور، علاوه بر دو موتور مختص به خودش که برشمردیم، راهحلهایی برای ذخیرهسازی اطلاعات بهصورت آرشیو (Archive)، تجمعی (Federated Servers)، توزیع شده یا خوشهای (Cluster) یا حتی بانکهای اطلاعاتی سریع حافظهای (In Memory) و چند نوع دیگر را دارد.
ویژگیهای برتر
در MySQL معمولاً اکثر روشهای ساخت و بهرهبرداری از یک بانکاطلاعاتی به دو کاربرد OLTP و OLAP ختم میشود که موتور بانک اطلاعاتی برای پشتیبانی و کارایی بهینه از هردو کاربرد مذکور، به خوبی ساخته و پرداخته شده است. به عنوان نمونه، در کاربردهای OLTP، وجود سازوکارها و استانداردهای یک بانک اطلاعاتی برای تضمین صحت اطلاعات مثل پشتیبانی کامل از انواع فرایندها (Transaction) و حتی فرایندهای توزیع شده، روابط اطلاع