داده در جدولها زندگی میکند
این نسخهی پیشنمایش عمومیه. برای نمره گرفتن، ذخیرهی پیشرفت و باز کردن درسهای بعدی ثبتنام کن.
ثبتنام رایگانورودچرا اصلاً «پایگاه داده»؟
تصور کن یک فروشگاه اینترنتی کوچک داری. مشتریها، محصولها، سفارشها — همهی اینها داده هستند که باید جایی نگهداری شوند، آن هم به شکلی که بشود سریع و مطمئن جستوجویشان کرد. میتوانستی همه را در یک فایل متنی بزرگ بریزی، اما خیلی زود به هم میریخت: پیدا کردن «همهی مشتریهای تهران» یعنی خواندنِ کل فایل با چشم.
راهِ منظم، پایگاه دادهی رابطهای (relational database) است: داده در جدولها ذخیره میشود و یک زبان بهنام SQL برای پرسیدن سؤال از آنها داریم.
جدول، ردیف، ستون
هر جدول دقیقاً مثل یک صفحهی اکسلِ منظم است:
- ستونها (columns) میگویند هر تکه داده چه نوعی است و چه نامی دارد — مثلاً
name،city،price. هر ستون یک نوع ثابت دارد (عدد، متن، تاریخ). - ردیفها (rows) هرکدام یک نمونهی واقعی از آن چیز هستند — یک مشتریِ مشخص، یک محصولِ مشخص.
جدول customers در فروشگاهِ تمرینیِ ما این شکلی است:
id │ name │ city │ joined_at
────┼───────┼────────┼────────────
1 │ علی │ تهران │ 2023-01-15
2 │ سارا │ شیراز │ 2023-03-02
3 │ رضا │ تهران │ 2023-06-20
هر ردیف یک مشتری است. هر ستون یک ویژگی از آن مشتری. به این چیدمانِ منظم، یک رابطه (relation) میگویند — و واژهی «رابطهای» از همین میآید، نه از «ارتباطِ» بین جدولها (آن یک مفهوم دیگر است که جلوتر میبینی).
نظمی که قانون دارد
چیزی که یک جدول را از یک صفحهی اکسلِ معمولی جدا میکند، این است که نظمش اجباری است:
- همهی ردیفها دقیقاً همان ستونها را دارند — نه کم، نه زیاد.
- نوع هر ستون ثابت است؛ نمیتوانی در ستونِ
priceیکجا عدد بنویسی و جای دیگر متن. - ترتیب ردیفها بیاهمیت است. وقتی داده میخواهی، با شرط میگویی کدام ردیفها را میخواهی، نه «ردیفِ پنجم از بالا».
فروشگاهِ تمرینیِ این دوره شش جدول دارد که در همهی درسها همراهت است: categories (دستهها)، customers (مشتریها)، products (محصولها)، orders (سفارشها)، order_items (اقلامِ هر سفارش) و employees (کارمندان). در درسهای بعد یاد میگیری این جدولها چطور به هم وصل میشوند و چطور با یک جمله از آنها سؤال بپرسی.