بهطور کلی دیتابیس سیستمی برای ذخیرهسازی و بازگردانی مجموعهای از دادههاست. در دنیای نرمافزار، اپلیکیشنها در انجام بسیاری از کارهایشان به ذخیرهسازی یا بازگردانی دادهها نیاز دارند. به این سیستمهای ذخیرهسازی و بازگردانی، دیتابیس یا پایگاهداده گفته میشود. دیتابیسها انواع مختلفی دارند: دیتابیسهای مبتنیبر سند، دیتابیسهای رابطهای و دیتابیسهای شئیگرا.
MySQL چیست؟
MySQL دیتابیسی رابطهای و محبوبترین دیتابیس اوپنسورس است که کار توسعه، توزیع و پشتیبانیاش را شرکت اوراکل برعهده دارد.
در نگاه اول این تعریف پیچیده به نظر میرسد. بگذارید هر کدام از بخشهای این تعریف را جداگانه بررسی کنیم:
MySQL دیتابیس رابطهای (Relational) است
این ویژگی به نحوه مدیریت و نگهداری دادهها مربوط است. وقتی میگوییم دیتابیس MySQL دیتابیس رابطهای است، منظورمان این است که دادهها در این دیتابیس بهصورت جدولهایی جدا از هم نگهداری میشود.
MySQL سیستم مدیریت پایگاهداده (DBMS) است
دیتابیس جایی است که دادهها بهصورت ساختارمند درون آن نگهداری میشوند. از یک لیست خرید ساده تا حجم بزرگی از دادههای مربوط به نرمافزارهایی با کاربران میلیونی، میتواند درون دیتابیس نگهداری شود. برای دسترسی، افزودن یا بازگردانی این دادهها به سیستمهای مدیریت پایگاه داده نیاز داریم. MySQL Server یکی از این سیستمهای مدیریت پایگاه داده است.
نرمافزار MySQL متنباز است
وقتی نرمافزاری متنباز باشد، این امکان برای همه وجود دارد تا از آن بهرایگان استفاده کنند یا تغییراتی در آن اعمال کنند. هر کسی میتواند نرمافزار MySQL را دانلود کند و بدون پرداخت هزینه از آن استفاده کند. Mysql از لایسنس GPL که لایسنسی مرسوم در میان نرمافزارهای متن باز است استفاده میکند. البته MySQL نسخه تجاری هم دارد و مناسب کسبوکارهایی است که نرمافزار متنباز این دیتابیس نمیتواند تمامی نیازهایشان را پوشش دهد.
تاریخچه و علت نامگذاری
سال ۱۹۹۵، Michael Widenius ، برنامهنویس فنلاندی، با همکاری David Axmark اولین نسخه از دیتابیس MySQL را نوشتند و یک سال بعد (۱۹۹۶) اولین نسخه از این دیتابیس مشهور منتشر شد. همچنین، این دو برنامهنویس با همکاری هم کتاب مشهور دستنامه مرجع MySQL را نوشتند که سال ۲۰۰۲ انتشارت oreilly آن را چاپ کرد.
نام MySQL از دو بخش تشکیل شده است. “My” نام دختر ویدنیوس است و SQL هم به زبان کوئری مشهور اشاره دارد.
لوگوی MySQL دلفینی به اسم ساکیلا (Sakila) است. این نام در مسابقه «روی دلفین اسم بذار» انتخاب شد که توسط تیم توسعهدهنده MySQL برگزار شد.
توسعهدهنده کنونی | شرکت اوراکل |
توسعهدهنده اصلی | MySQL AB |
تاریخ اولین انتشار | ۲۳ می ۱۹۹۵ |
لایسنس | GPLv2 |
زبان برنامهنویسی عمده | C و ++C |
وبسایت | https://www.mysql.com/ |
آدرس مخزن متنباز | https://github.com/mysql/mysql-server |
ویژگیهای MySQL
کاربری آسان: توسعهدهندگان با صرف چند دقیقه میتوانند MySQL را نصب کنند. مدیریت این دیتابیس هم آسان است و با اندکی آشنایی با sql میتوان کار با آن را شروع کرد.
اطمینانپذیری (Relaibility): MySQL یکی از دیتابیسهای آزمونپسداده و پراستفاده در دنیای برنامهنویسی است. در طول ۲۵ سال اخیر از این دیتابیس در سناریوهای مختلف استفاده شده است و به همین خاطر هم شرکتهای بزرگ و مشهور زیادی از این دیتایبس استفاده میکنند.
مقیاسپذیری: MySQL بهخاطر پشتیانی از multi-threading فرایند مقیاسپذیری را بسیار راحتتر کرده است. برای آنکه درک بهتری از ظرفیتهای MySQL داشته باشید جالب است بدانید که این دیتابیس تا حجم دادهای با پنجاه میلیون سطر و بیشتر را مدیریت کند.
کارآیی (Performance): MySQL بهخاطر معماری خاصی که در ذخیرهسازی دادهها دارد، بسیار سریع، مطمئن و کمهزینه است.
امنیت بالا: از آنجایی که MySQL از سیستم پسورد انعطافپذیر استفاده میکند، رابط کاربری بسیار ایمنی دارد.
کاربردهای MySQL
نرمافزارهای ابری: MySQL در فضای ابری هم از دیتابیسهای محبوب است و بسیاری از نرمافزارهای ابری از این دیتابیس بهره میبرند.
فروشگاههای اینترنتی: فروشگاههای اینترنتی مشهوری مانند Shopify برای مدیریت کاتالوگ محصولات، اطلاعات کاربران، سفارشها و … از MySQL استفاده میکنند.
شبکههای اجتماعی: فیسبوک، لینکدین و ایکس از شبکههای اجتماعی هستند که از MySQL استفاده میکنند.
تحلیل و گزارشدهی: در سیستمها و نرمافزارهایی که بر تحلیل و گزارشدهی مبتنی است MySQL از دیتابیسهای محبوب و پرطرفدار است. در این نرمافزارها از MySQL برای ذخیرهسازی دادههایی استفاده میشود که ابزارها و اپلیکیشنهای مختلف تولید کردهاند.
تفاوت SQL Server و MySQL
ابتدا بیایید بحث را از تفاوت SQL و MySQL شروع کنیم. همانطور که در آغاز این متن گفتیم، ما از دیتابیسها برای ذخیرهسازی و بازگردانی دادهها استفاده میکنیم. اما این کار چطور انجام میشود؟ ما با چه زبانی با دیتابیس صحبت میکنیم؟ sql یکی از آن زبانهایی است که ما برای تعامل با دیتابیسهای رابطهای از آن استفاده میکنیم.
با این تعریفی که دادیم، تفاوت sql و MySQL برایمان روشن شد. در حالی که sql بیشتر شبیه به زبانهای برنامهنویسی است، MySQL یک سیستم مدیریت دیتابیس است. این یعنی برخلاف تشابه اسمی که دارند، شباهت چندانی بین این دو وجود ندارد.
حالا میتوانیم به تفاوت SQL Server و MySQL بپردازیم. هر دوی این ابزارها، سیستمهای مدیریت پایگاه داده رابطهای هستند و در یک طبقهبندی قرار میگیرند. اما تفاوتهایی هم باهم دارند. در جدول زیر بهصورت مفصل تفاوت این دو را باهم میبینید:
MySQL | SQL Server | |
چیستی | سیستم مدیریت پایگاهداده رابطهای که توسط اوراکل مدیریت میشود | سیستم مدیریت پایگاهداده رابطهای اختصاصی متعلق به مایکروسافت |
از چه پلتفرمهایی پشتیبانی میکند؟ | MySQL در مقایسه با SQL Server از پلتفرمهای بیشتری پشتیبانی میکند | پشتیبانی پلتفرمهای کمتر در مقایسه با sql server |
زبانهای برنامهنویسی موردپشتیبانی | MySQL در مقایسه با SQL Server از زبانهای برنامهنویسی بیشتری پشتیبانی میکند | پشتیبانی از زبانهای برنامهنویسی کمتر در مقایسه با sql server |
ویژگیها | MySQL | |
مقیاسپذیری | MySQL ویژگیهای دارد که امکان مقیاسپذیری را فراهم میکند، اما نه به اندازه SQL Server | مقیاسپذیری بیشتر نسبت به MySQL |
سینتکس و زبان کوئری | MySQL از SQL در کنار بکتیکها بهعنوان زبان کوئری استفاده میکند | sql server از SQL بهعنوان زبان کوئری استفاده میکند. همچنین از دابل کوتیشن نیز استفاده میشود. |
کانکتورها | MySQL کانکتورها و یکپارچهسازیهای بیشتری نسبت به sql server دارد | sql server با محصولات مایکروسافت یکپارچگی بیشتری دارد |
نحوه پشتیبانی از محصول و مستندات | متنباز است | نرمافزاری خصوصی و دارای هزینه است |
ویژگیهای امنیتی | هنگام استفاده از MySQL امکان ادیت دیتابیسهای در حال اجرا وجود دارد | در وضعیت run time امکان ادیت یا دسترسی به فایلها وجود ندارد. |
MySQL از چه زبانهای برنامهنویسی پشتیبانی میکند؟
MySQL تقریبا از همه زبانهای مشهور و محبوب پشتیبانی میکند. در جدول زیر میتوانید لیستی از این زبانها را ببینید:
Node.js | Java/JDBC | Python | PHP |
Rust | Go | Ruby | Perl |
ODBC | C#/.NET | ++C | C |
ساخت دیتابیس MySQL در کنسول همروش
در کنسول همروش شما میتوانید بهراحتی برای اپلیکیشنهایتان دیتابیس MySQL بسازید. برای آشنایی با نحوه ساخت این دیتابیس میتوانید به مستندات مربوط به این دیتابیس در مستندات همروش مراجعه کنید.
همچنین بهزودی قرار است دیتابیس MySQL به سرویس دیتابیس مدیریتشده همروش نیز اضافه شود. پس از اضافه شدن دیتابیس MySQL به این سرویس ، شما میتوانید همه فرایندهای مربوط به راهاندازی و نگهداری از دیتابیس را به همروش بسپارید و بر روی توسعه اپلیکیشن خود تمرکز کنید.