مقدمه‌ای بر MySQL

آموزش پایگاه داده

مقدمه‌ای بر MySQL

آشنایی با یکی از پرکاربردترین سیستم‌های مدیریت پایگاه داده، شناخت مفاهیم پایه و یادگیری نقش آن در ذخیره‌سازی و مدیریت اطلاعات.

۱. مقدمه؛ چرا به پایگاه داده نیاز داریم؟

امروزه تقریباً تمام نرم‌افزارها و وب‌سایت‌ها با حجم زیادی از اطلاعات سروکار دارند. برای مثال، یک فروشگاه اینترنتی باید اطلاعات مشتریان، محصولات، سفارش‌ها، پرداخت‌ها و موجودی کالاها را ذخیره و مدیریت کند.

اگر قرار باشد تمام این اطلاعات در فایل‌های پراکنده و بدون ساختار ذخیره شوند، پیدا کردن اطلاعات، ویرایش آن‌ها و جلوگیری از تکرار یا اشتباه بسیار دشوار خواهد بود. به همین دلیل از پایگاه داده استفاده می‌کنیم.

پایگاه داده محلی سازمان‌یافته برای ذخیره‌سازی اطلاعات است که امکان ثبت، جست‌وجو، ویرایش، حذف و مدیریت داده‌ها را فراهم می‌کند.

ذخیره‌سازی اطلاعات نگهداری منظم داده‌ها در ساختاری مشخص.
جست‌وجوی سریع پیدا کردن اطلاعات موردنیاز بدون بررسی دستی فایل‌ها.
ویرایش داده‌ها تغییر اطلاعات ثبت‌شده در صورت نیاز.
مدیریت اطلاعات کنترل دسترسی، امنیت و ارتباط میان داده‌ها.
مثال ساده: تصور کنید یک مدرسه اطلاعات دانش‌آموزان خود را نگهداری می‌کند. این اطلاعات شامل نام، نام خانوادگی، شماره دانش‌آموزی، پایه تحصیلی و نمرات است. پایگاه داده کمک می‌کند این اطلاعات به‌صورت منظم ذخیره و در زمان نیاز بازیابی شوند.

۲. پایگاه داده چیست؟

Database یا پایگاه داده، مجموعه‌ای سازمان‌یافته از اطلاعات مرتبط است که به شکلی ساختاریافته ذخیره می‌شوند تا دسترسی و مدیریت آن‌ها ساده‌تر باشد.

در پایگاه داده‌های رابطه‌ای، اطلاعات معمولاً در قالب جدول‌ها نگهداری می‌شوند. هر جدول از سطرها و ستون‌هایی تشکیل شده است.

اجزای اصلی یک جدول

  • جدول (Table): محلی برای نگهداری مجموعه‌ای از اطلاعات مرتبط.
  • سطر (Row): یک رکورد یا یک نمونه از اطلاعات ثبت‌شده.
  • ستون (Column): ویژگی یا مشخصه‌ای که برای هر رکورد ذخیره می‌شود.
  • فیلد (Field): محل نگهداری یک مقدار مشخص در یک رکورد.
  • رکورد (Record): مجموعه مقادیر مربوط به یک سطر از جدول.

مثال: جدول دانش‌آموزان

جدول زیر اطلاعات فرضی چند دانش‌آموز را نشان می‌دهد:

شماره دانش‌آموزی نام نام خانوادگی پایه سن
1001 علی احمدی دهم 16
1002 سارا محمدی یازدهم 17
1003 رضا کریمی دهم 16
تحلیل جدول:
  • این مجموعه اطلاعات یک جدول به نام دانش‌آموزان است.
  • ستون نام، یکی از ویژگی‌های دانش‌آموزان را مشخص می‌کند.
  • هر سطر اطلاعات یک دانش‌آموز را تشکیل می‌دهد.
  • عدد 1001 یک مقدار در ستون شماره دانش‌آموزی است.

۳. سیستم مدیریت پایگاه داده چیست؟

برای ایجاد و مدیریت پایگاه داده به نرم‌افزاری نیاز داریم که بتواند اطلاعات را ذخیره کند، تغییر دهد، بازیابی کند و دسترسی کاربران را کنترل کند. به چنین نرم‌افزاری سیستم مدیریت پایگاه داده یا DBMS (Database Management System) گفته می‌شود.

سیستم مدیریت پایگاه داده نقش واسطه‌ای میان کاربر یا برنامه کاربردی و اطلاعات ذخیره‌شده را بر عهده دارد.

کاربر یا برنامه
↓
سیستم مدیریت پایگاه داده
↓
پایگاه داده

وظایف مهم سیستم مدیریت پایگاه داده

  • ایجاد پایگاه داده و جدول‌ها.
  • ذخیره و بازیابی اطلاعات.
  • افزودن، ویرایش و حذف داده‌ها.
  • مدیریت کاربران و سطح دسترسی آن‌ها.
  • کمک به حفظ صحت و یکپارچگی اطلاعات.
  • مدیریت هم‌زمان درخواست‌های کاربران.
  • امکان پشتیبان‌گیری و بازیابی اطلاعات با توجه به امکانات سیستم.
نکته مهم: پایگاه داده و سیستم مدیریت پایگاه داده یک مفهوم نیستند. پایگاه داده محل سازمان‌دهی و نگهداری اطلاعات است؛ اما DBMS نرم‌افزاری است که مدیریت این اطلاعات را انجام می‌دهد.

۴. MySQL چیست؟

MySQL یک سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS) است که برای ذخیره‌سازی، سازمان‌دهی، بازیابی و مدیریت اطلاعات استفاده می‌شود.

در MySQL اطلاعات معمولاً در جدول‌هایی با ساختار مشخص ذخیره می‌شوند. این جدول‌ها می‌توانند از طریق ستون‌های مرتبط به یکدیگر ارتباط داشته باشند.

برای کار با MySQL معمولاً از زبان SQL (Structured Query Language) استفاده می‌کنیم. این زبان به ما اجازه می‌دهد دستورهایی برای ایجاد جدول، ثبت اطلاعات، جست‌وجو و ویرایش داده‌ها بنویسیم.

نوع سیستم سیستم مدیریت پایگاه داده رابطه‌ای.
زبان کار با داده‌ها SQL
ساختار ذخیره‌سازی جدول‌های دارای سطر و ستون.
کاربرد مدیریت اطلاعات در برنامه‌ها و سامانه‌های مختلف.

نمونه کاربردهای MySQL

  • ذخیره اطلاعات کاربران و اعضای یک وب‌سایت.
  • مدیریت محصولات و سفارش‌های فروشگاه اینترنتی.
  • نگهداری اطلاعات دانش‌آموزان و نمرات آن‌ها.
  • مدیریت اطلاعات مشتریان و فاکتورهای یک شرکت.
  • ذخیره اطلاعات مقالات، اخبار و مطالب یک سامانه.

۵. ویژگی‌ها و مزایای MySQL

MySQL به دلیل ویژگی‌های مختلف خود در بسیاری از پروژه‌های نرم‌افزاری و وب‌سایت‌ها مورد استفاده قرار می‌گیرد.

۱. متن‌باز بودن

MySQL Community Edition نسخه‌ای متن‌باز است که امکان استفاده و بررسی کد منبع آن مطابق مجوز مربوطه فراهم شده است. همچنین نسخه‌ها و محصولات تجاری مرتبط نیز وجود دارند.

۲. سرعت و کارایی

MySQL برای پردازش درخواست‌های پایگاه داده طراحی شده و با طراحی صحیح جدول‌ها، استفاده مناسب از شاخص‌ها و تنظیمات درست می‌تواند عملکرد مناسبی در بسیاری از برنامه‌ها داشته باشد.

۳. پشتیبانی از چندکاربر

چندین کاربر یا برنامه می‌توانند به‌طور هم‌زمان به پایگاه داده متصل شوند. نحوه مدیریت درخواست‌های هم‌زمان به تنظیمات و موتور ذخیره‌سازی مورد استفاده نیز بستگی دارد.

۴. امنیت و کنترل دسترسی

امکان تعریف کاربران، تعیین رمز عبور و اختصاص مجوزهای مختلف برای دسترسی به پایگاه داده و جدول‌ها وجود دارد.

۵. پشتیبانی از ارتباط میان جدول‌ها

در پایگاه داده رابطه‌ای می‌توان جدول‌های مرتبط را با استفاده از کلیدهای اصلی و خارجی به یکدیگر متصل کرد.

۶. سازگاری با زبان‌های برنامه‌نویسی

برنامه‌های نوشته‌شده با زبان‌هایی مانند PHP، Python، Java و Node.js می‌توانند با استفاده از درایورها و کتابخانه‌های مناسب به MySQL متصل شوند.

۶. آشنایی با زبان SQL

SQL مخفف عبارت Structured Query Language و به معنای زبان پرس‌وجوی ساختاریافته است.

این زبان برای ارتباط با پایگاه داده‌های رابطه‌ای استفاده می‌شود. با کمک SQL می‌توانیم اطلاعات را ایجاد، ثبت، جست‌وجو، ویرایش و حذف کنیم.

دسته‌بندی مهم دستورهای SQL

دسته نام کامل کاربرد دستورهای نمونه
DDL Data Definition Language تعریف و تغییر ساختار پایگاه داده CREATE, ALTER, DROP
DML Data Manipulation Language افزودن، ویرایش و حذف اطلاعات INSERT, UPDATE, DELETE
DQL Data Query Language بازیابی و جست‌وجوی اطلاعات SELECT
DCL Data Control Language مدیریت مجوزهای دسترسی GRANT, REVOKE
TCL Transaction Control Language مدیریت تراکنش‌ها COMMIT, ROLLBACK
نکته آموزشی: این دسته‌بندی به شناخت نقش دستورهای SQL کمک می‌کند. در درس‌های بعدی هر گروه را با مثال‌های عملی بررسی خواهیم کرد.

۷. MySQL چگونه کار می‌کند؟

MySQL معمولاً به شکل یک سیستم Client-Server فعالیت می‌کند. در این ساختار، یک برنامه یا کاربر به سرور پایگاه داده درخواست ارسال می‌کند. سرور درخواست را بررسی و پردازش می‌کند و نتیجه را برمی‌گرداند.

Client
کاربر یا برنامه
⇄
MySQL Server
پردازش درخواست‌ها
⇄
Database
اطلاعات ذخیره‌شده

مراحل ساده اجرای یک درخواست

۱
اتصال به سرور: کاربر یا برنامه با استفاده از اطلاعات اتصال به سرور MySQL متصل می‌شود.
۲
ارسال دستور: درخواست یا دستور SQL برای سرور ارسال می‌شود.
۳
بررسی و پردازش: سرور دستور را از نظر ساختار، مجوزها و امکان اجرا بررسی می‌کند.
۴
دسترسی به داده‌ها: در صورت نیاز، سرور اطلاعات موردنظر را از پایگاه داده دریافت یا در آن ثبت می‌کند.
۵
ارسال نتیجه: نتیجه اجرای دستور یا پیام خطا به کاربر یا برنامه بازگردانده می‌شود.

۸. موتور ذخیره‌سازی در MySQL

در MySQL موتور ذخیره‌سازی (Storage Engine) بخشی است که نحوه ذخیره‌سازی، بازیابی و مدیریت اطلاعات جدول‌ها را تعیین می‌کند.

MySQL از موتورهای ذخیره‌سازی مختلفی پشتیبانی می‌کند. دو نمونه شناخته‌شده عبارت‌اند از:

موتور InnoDB

  • پشتیبانی از تراکنش‌ها.
  • پشتیبانی از کلیدهای خارجی.
  • قابلیت بازیابی پس از خرابی با سازوکارهای مربوطه.
  • قفل‌گذاری در سطح رکورد در بسیاری از عملیات.

موتور MyISAM

  • یکی از موتورهای قدیمی MySQL.
  • از تراکنش‌ها و کلیدهای خارجی پشتیبانی نمی‌کند.
  • از قفل‌گذاری در سطح جدول استفاده می‌کند.
نکته مهم: InnoDB موتور ذخیره‌سازی پیش‌فرض در نسخه‌های جدید MySQL است و برای بسیاری از کاربردهای معمول انتخاب مناسبی محسوب می‌شود.

۹. اولین آشنایی عملی با دستورهای MySQL

برای درک بهتر ساختار دستورهای SQL، چند دستور ساده را بررسی می‌کنیم. این دستورها نمونه‌های آموزشی هستند و باید در محیطی که MySQL Server روی آن نصب و فعال است اجرا شوند.

مثال اول: مشاهده نسخه MySQL

برای مشاهده نسخه سرور پایگاه داده می‌توانیم از دستور زیر استفاده کنیم:

SELECT VERSION();
خروجی نمونه
+-----------+
| VERSION() |
+-----------+
| 8.0.36    |
+-----------+

نسخه نمایش‌داده‌شده صرفاً نمونه است و مقدار واقعی به نسخه نصب‌شده روی سیستم بستگی دارد.

مثال دوم: ایجاد یک پایگاه داده

برای ایجاد پایگاه داده‌ای با نام فروشگاه از دستور CREATE DATABASE استفاده می‌کنیم:

CREATE DATABASE shop_db;
نتیجه مورد انتظار

در صورت اجرای موفق دستور، پایگاه داده‌ای با نام shop_db ایجاد می‌شود.

Query OK, 1 row affected
متن پیام ممکن است با توجه به محیط اجرا متفاوت باشد.

مثال سوم: انتخاب پایگاه داده

پس از ایجاد پایگاه داده، برای مشخص کردن پایگاه داده فعال از دستور USE استفاده می‌کنیم:

USE shop_db;
نتیجه مورد انتظار

پس از اجرای موفق دستور، دستورات بعدی در همین نشست به‌صورت پیش‌فرض روی پایگاه داده shop_db اجرا خواهند شد.

Database changed

مثال چهارم: ایجاد جدول محصولات

اکنون در پایگاه داده انتخاب‌شده، جدولی برای نگهداری محصولات ایجاد می‌کنیم:

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10,2),
    quantity INT
);
نتیجه مورد انتظار

جدولی با نام products و چهار ستون ایجاد می‌شود:

  • id: شناسه یکتای هر محصول.
  • name: نام محصول.
  • price: قیمت محصول.
  • quantity: تعداد موجودی محصول.
Query OK, 0 rows affected
پیام بالا نمونه‌ای از پاسخ احتمالی سرور پس از اجرای موفق دستور است.

مثال پنجم: ثبت یک محصول

برای افزودن اطلاعات به جدول از دستور INSERT INTO استفاده می‌کنیم:

INSERT INTO products (name, price, quantity)
VALUES ('Keyboard', 850000, 12);
نتیجه مورد انتظار

یک رکورد جدید در جدول ثبت می‌شود. مقدار ستون id به‌صورت خودکار تولید خواهد شد.

Query OK, 1 row affected

مثال ششم: مشاهده اطلاعات محصولات

برای مشاهده اطلاعات جدول از دستور SELECT استفاده می‌کنیم:

SELECT * FROM products;
خروجی نمونه
+----+----------+-----------+----------+
| id | name     | price     | quantity |
+----+----------+-----------+----------+
|  1 | Keyboard | 850000.00 |       12 |
+----+----------+-----------+----------+
این خروجی با فرض اجرای موفق مثال‌های قبلی و خالی بودن اولیه جدول نمایش داده شده است.
توجه: دستورهای بالا را به‌ترتیب اجرا کنید. اگر پایگاه داده یا جدول از قبل وجود داشته باشد، ممکن است هنگام ایجاد مجدد آن‌ها خطا دریافت کنید.

۱۰. تفاوت MySQL با چند ابزار و فناوری مرتبط

گاهی نام MySQL در کنار ابزارهایی مانند phpMyAdmin یا XAMPP شنیده می‌شود. شناخت تفاوت آن‌ها به درک بهتر محیط کار کمک می‌کند.

نام نوع وظیفه
MySQL سیستم مدیریت پایگاه داده ذخیره و مدیریت اطلاعات
SQL زبان پرس‌وجو ارسال دستور به پایگاه داده
phpMyAdmin ابزار تحت وب مدیریت پایگاه داده از طریق رابط گرافیکی
XAMPP بسته نرم‌افزاری فراهم‌کردن محیط محلی توسعه وب و ابزارهای مرتبط
MySQL Workbench ابزار گرافیکی مدیریت، طراحی و اجرای پرس‌وجوهای پایگاه داده
نکته: phpMyAdmin و MySQL Workbench ابزارهایی برای کار با پایگاه داده هستند؛ خود آن‌ها جایگزین سرور MySQL نیستند.

۱۱. مفهوم رابطه میان جدول‌ها

یکی از ویژگی‌های مهم پایگاه داده‌های رابطه‌ای، امکان ارتباط دادن جدول‌ها به یکدیگر است. به‌جای ذخیره تمام اطلاعات در یک جدول بزرگ، می‌توان اطلاعات را در جدول‌های جداگانه سازمان‌دهی کرد و با استفاده از کلیدها میان آن‌ها ارتباط برقرار کرد.

مثال: ارتباط مشتری و سفارش

فرض کنید یک فروشگاه اینترنتی دو جدول به نام‌های customers و orders دارد.

جدول مشتریان (customers)
customer_id name
1 علی
2 سارا
جدول سفارش‌ها (orders)
order_id customer_id amount
101 1 500000
102 2 750000
103 1 300000

در این مثال، ستون customer_id در جدول مشتریان می‌تواند کلید اصلی و همین ستون در جدول سفارش‌ها می‌تواند کلید خارجی باشد. به کمک این ارتباط می‌توان مشخص کرد هر سفارش متعلق به کدام مشتری است.

مشتریان
customer_id
←
سفارش‌ها
customer_id

هر سفارش به یک مشتری مشخص ارتباط داده می‌شود.

۱۲. اشتباهات رایج افراد مبتدی

۱. اشتباه گرفتن MySQL با SQL

SQL زبان کار با پایگاه داده است؛ اما MySQL نرم‌افزاری برای مدیریت پایگاه داده است.

۲. تصور اینکه جدول و پایگاه داده یکسان هستند

پایگاه داده می‌تواند شامل چندین جدول مرتبط باشد. جدول فقط یکی از اجزای پایگاه داده است.

۳. فراموش کردن انتخاب پایگاه داده

پیش از ایجاد جدول یا اجرای برخی دستورات، باید پایگاه داده موردنظر را با دستور USE انتخاب کرد.

۴. تصور اینکه نصب ابزار گرافیکی به‌تنهایی کافی است

ابزارهایی مانند phpMyAdmin برای مدیریت پایگاه داده به یک سرور پایگاه داده فعال نیاز دارند.

۵. بی‌توجهی به پشتیبان‌گیری

اطلاعات مهم باید به‌صورت منظم پشتیبان‌گیری شوند تا در صورت خرابی، حذف اشتباهی یا بروز مشکل بتوان آن‌ها را بازیابی کرد.

۱۴. تمرین و خودآزمایی

برای بررسی میزان یادگیری خود، به پرسش‌های زیر پاسخ دهید:

پرسش‌های تشریحی

  1. پایگاه داده چیست و چه کاربردی دارد؟
  2. تفاوت پایگاه داده و سیستم مدیریت پایگاه داده چیست؟
  3. MySQL چه نوع سیستمی است؟
  4. زبان SQL چه نقشی در کار با MySQL دارد؟
  5. تفاوت سطر و ستون در یک جدول چیست؟
  6. منظور از کلید اصلی و کلید خارجی چیست؟
  7. وظیفه ابزار phpMyAdmin چیست؟

تمرین عملی

با استفاده از دستورهای آموزش‌داده‌شده، یک پایگاه داده با نام school_db ایجاد کنید و سپس جدول students را با ستون‌های زیر بسازید:

  • id: شناسه دانش‌آموز از نوع عدد صحیح و کلید اصلی خودافزا.
  • first_name: نام از نوع متن با حداکثر 50 نویسه.
  • last_name: نام خانوادگی از نوع متن با حداکثر 80 نویسه.
  • age: سن از نوع عدد صحیح.

سپس سه دانش‌آموز فرضی در جدول ثبت کنید و با دستور SELECT اطلاعات آن‌ها را مشاهده کنید.

هدف تمرین: آشنایی عملی با ایجاد پایگاه داده، ساخت جدول، تعریف ستون‌ها، ثبت اطلاعات و بازیابی داده‌ها.
💬

دیدگاه کاربران

نظر یا تجربه خود را درباره این مطلب با دیگران به اشتراک بگذارید.

💭 هنوز دیدگاهی ثبت نشده است. اولین نفری باشید که نظر خود را می‌نویسد.
✍️ ارسال دیدگاه

🔒 دیدگاه شما پس از بررسی و تأیید مدیر سایت نمایش داده خواهد شد.

ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *