به دنیای SQL خوش اومدی!
اگر تا امروز کلمهی SQL رو فقط شنیده بودی ولی نمیدونستی دقیقاً چیه، جای درستی اومدی. قبل از اینکه حتی یک خط کد بنویسیم، توی این درس با یک زبان ساده و بدون پیچیدگی فنی میفهمیم داده و پایگاهداده چی هستن، SQL دقیقاً چهکاری انجام میده، و چرا یادگیریش اینقدر ارزشمنده. در پایان این درس، آمادهای تا قدمبهقدم وارد دنیای عملی SQL بشی.
داده (Data) دقیقاً چیست؟
داده در سادهترین حالت، هر واقعیتی است که جایی ثبت شده باشد: اسم یک دانشآموز، شمارهی تماس یک دوست در گوشی، قیمت یک محصول در فروشگاه، یا حتی تعداد لایکهای یک پست اینستاگرام. همهی اینها داده هستند. تا اینجا چیز پیچیدهای نیست — تقریباً هر چیزی که بتوان ثبت و ذخیره کرد، داده محسوب میشود.
پس پایگاهداده (Database) چیست؟
حالا فرض کن یک فروشگاه اینترنتی داری. باید اطلاعات صدها محصول، هزاران مشتری و دهها هزار سفارش را جایی نگهداری کنی. اگر بخواهی همهی اینها را در یک فایل اکسل یا حتی یک دفترچهی کاغذی بنویسی، بهزودی با این مشکلها روبهرو میشوی:
- پیدا کردن یک سفارش خاص در میان دهها هزار ردیف، کاری وقتگیر و پر از خطا میشود.
- وقتی چند نفر همزمان بخواهند اطلاعات را ویرایش کنند، دادهها بهراحتی با هم تداخل پیدا میکنند.
- اطلاعات تکراری (مثل آدرس یک مشتری که در چند جای مختلف نوشته شده) بهمرور ناهماهنگ و نادرست میشود.
پایگاهداده دقیقاً برای حل همین مشکلات ساخته شده است. پایگاهداده یعنی یک مجموعهی سازمانیافته از دادهها که بهگونهای ذخیره شده که بتوان بهسرعت و با اطمینان به آن دسترسی داشت، بهروزش کرد و از درستیاش مطمئن بود — حتی وقتی هزاران کاربر همزمان با آن کار میکنند.
سیستم مدیریت پایگاهداده (DBMS) چیست؟
پایگاهداده بهتنهایی فقط یک مجموعه داده است؛ چیزی که به آن اجازهی «کار کردن» میدهد، نرمافزاری به نام سیستم مدیریت پایگاهداده یا DBMS (مخفف Database Management System) است. DBMS مسئول کارهایی مثل اینهاست:
- ذخیره و سازماندهی دادهها روی دیسک
- اجرای دستورهایی مثل «این اطلاعات را نشانم بده» یا «این ردیف را تغییر بده»
- کنترل دسترسی، تا فقط افراد مجاز بتوانند دادهها را ببینند یا تغییر دهند
- جلوگیری از خراب شدن دادهها وقتی چند کاربر همزمان کار میکنند
معروفترین DBMSهای دنیا عبارتاند از Microsoft SQL Server، MySQL، PostgreSQL، Oracle و SQLite. این دوره روی زبان و مفاهیم SQL Server تمرکز دارد، اما نکتهی جالب اینجاست که Playground همین سایت از موتور SQLite استفاده میکند که کاملاً داخل مرورگر خودت اجرا میشود — یعنی هیچ دادهای روی هیچ سروری ذخیره نمیشود و تمام تمرینهایت فقط روی سیستم خودت باقی میماند.
SQL کجای این ماجراست؟
اینجاست که SQL وارد میشود. SQL مخفف Structured Query Language (زبان پرسمان ساختیافته) است؛ زبانی که با آن «صحبت میکنیم» تا از DBMS بخواهیم کاری برایمان انجام دهد. برای مثال:
- میخواهیم داده بخوانیم →
SELECT - میخواهیم دادهی جدید اضافه کنیم →
INSERT - میخواهیم دادهی موجود را تغییر دهیم →
UPDATE - میخواهیم دادهای را حذف کنیم →
DELETE - میخواهیم ساختار جدولها را بسازیم یا تغییر دهیم →
CREATE/ALTER
نکتهی جالب SQL این است که یک استاندارد جهانی است؛ یعنی چیزی که یاد میگیری (با اختلافهایی جزئی) در تقریباً همهی پایگاهدادههای رابطهای دنیا کاربرد دارد — از SQL Server و MySQL گرفته تا PostgreSQL و SQLite.
پایگاهداده «رابطهای» یعنی چه؟
در این دوره بیشتر با پایگاهدادههای رابطهای (Relational Database) کار میکنیم. در این مدل، دادهها در جدولهایی شبیه به یک صفحهی اکسل ذخیره میشوند: هر جدول از ردیفها (rows) و ستونها (columns) تشکیل شده، و جدولهای مختلف میتوانند از طریق یک ستون مشترک به هم «مرتبط» شوند. مثلاً جدول دانشآموزان میتواند به جدول نمرات مرتبط باشد، بدون اینکه اطلاعات هر دانشآموز در هر ردیف نمره دوباره تکرار شود. این ایدهی «ارتباط بین جدولها» همان چیزی است که در فصل ۴ بهطور کامل با آن آشنا میشویم.
SQL واقعاً کجاها استفاده میشود؟
شاید فکر کنی SQL فقط برای برنامهنویسهاست، اما واقعیت این است که تقریباً هر اپلیکیشن یا سروری که با آن کار میکنی، پشت صحنه از یک پایگاهداده و SQL استفاده میکند:
- وقتی در تلگرام یا اینستاگرام اسکرول میکنی، پستها از یک پایگاهداده خوانده میشوند.
- وقتی در یک فروشگاه اینترنتی سفارش ثبت میکنی، آن سفارش با یک دستور
INSERTذخیره میشود. - تحلیلگرهای داده (Data Analyst) هر روز با SQL گزارش میسازند و تصمیمهای کسبوکاری میگیرند.
- حتی اپلیکیشن بانکی گوشیات، موجودی حسابت را با یک پرسوجوی SQL از پایگاهداده میخواند.
به همین دلیل SQL یکی از پایدارترین و پرتقاضاترین مهارتهای حوزهی فناوری است — مهارتی که یادگیریاش تاریخ انقضا ندارد.
قبل از رفتن سراغ درس بعدی و یادگیری اینکه این دستورها را از صفر بنویسیم، بیا یکبار مزهی واقعیاش را بچشیم. لازم نیست نگران دستور زیر باشی — فقط دکمهی «اجرا» را بزن و ببین با یک خط کد، چطور میشود اطلاعات یک پایگاهدادهی واقعی را بیرون کشید.
جمعبندی این درس
- داده هر واقعیت قابلثبتی است؛ پایگاهداده مجموعهای سازمانیافته از این دادههاست.
- DBMS نرمافزاری است که پایگاهداده را مدیریت و در دسترس قرار میدهد.
- SQL زبانی است که برای «گفتوگو» با DBMS از آن استفاده میکنیم.
- پایگاهدادههای رابطهای دادهها را در جدولهای مرتبط به هم ذخیره میکنند.
در درس بعدی، با معماری SQL Server آشنا میشویم و میبینیم وقتی یک دستور SQL مینویسیم، پشت صحنه دقیقاً چه اتفاقی میافتد.