Files

100 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# مشخصات درس‌نامه: داده و دیتابیس چیست (Database Fundamentals)
- **شناسه در سیلابس:** `L7.2`
- **فصل:** فصل ۷: داده و بک‌اند (Ch 7)
- **نوع محتوا:** 📘 درس‌نامه متنی
- **زمان تقریبی مطالعه:** ۱۲ دقیقه
- **پیش‌نیازهای مستقیم:** `L7.1` (اهداف فصل هفتم)
---
## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:
- [ ] **درک کند (Understand):** پایگاه داده (Database) چیست و استعاره «اکسل ابرقدرت و بدون کرش» چگونه ماهیت جداول، سطرها و ستون‌ها را تبیین می‌کند.
- [ ] **درک کند (Understand):** مفاهیم ساختاری جدول: **ستون (Column)، سطر یا رکورد (Row/Record)، کلید اصلی (Primary Key)، و انواع داده (Data Types: متن، عدد، تاریخ، بولین)** را توضیح دهد.
- [ ] **تحلیل/ارزیابی کند (Evaluate):** تفاوت پایگاه‌های داده رابطه‌ای (SQL نظیر PostgreSQL) را با پایگاه‌های داده سندرومحور (NoSQL) مقایسه کرده و چرایی برتری PostgreSQL را درک کند.
- [ ] **به‌کار ببندد (Apply):** ساختار دو جدول اصلی پروژه محوری (جدول `projects` و جدول `site_settings`) را روی کاغذ یا بوم معماری داده رسم و فیلدهای آن‌ها را مشخص کند.
---
## ۲. محدوده و مرزهای محتوا (Scope & Boundaries)
### آنچه باید پوشش داده شود (In-Scope):
1. **استعاره فایل اکسل ابرقدرت (Superpowered Excel):**
* پایگاه داده در ساده‌ترین تعریف، مانند یک دفترچه اکسل بسیار سریع، امن و آنلاین است که میلیون‌ها کاربر می‌توانند هم‌زمان و بدون کرش کردن، اطلاعات را در آن بخوانند یا ذخیره کنند.
2. **کالبدشکافی ارکان پایگاه داده:**
* **جدول (Table):** یک برگه اختصاصی برای یک موجودیت مشخص (مثل جدول پروژه‌ها یا جدول کاربران).
* **ستون یا فیلد (Column / Field):** یک ویژگی مشخص از موجودیت (مثل ستون عنوان، ستون عکس، ستون تاریخ ایجاد).
* **سطر یا رکورد (Row / Record):** یک نمونه واقعی ثبت‌شده در جدول (مثلاً سطر مربوط به پروژه «دستیار عادات هوشمند»).
* **کلید اصلی (Primary Key):** کد ملی یا شناسه یکتای هر سطر که هیچ دو سطری نمی‌توانند شناسه مشابه داشته باشند (معرفی شناسه جهانی UUID).
3. **انواع داده‌های پرکاربرد در دیتابیس:**
* `text` / `varchar`: برای رشته‌های متنی (عنوان، توضیحات).
* `boolean`: برای فیلدهای دوحالته درست/غلط (مثل فیلد `featured` برای پروژه‌های ویژه).
* `timestamp`: برای تاریخ و ساعت ایجاد (`created_at`).
* `text[]` (آرایه متنی): برای ذخیره تگ‌های تکنولوژی (`['React', 'Next.js']`).
4. **تفاوت SQL در برابر NoSQL:**
* دیتابیس‌های رابطه‌ای (SQL): ساختار منظم، جدول‌بندی مهندسی، داده‌های یکدست و امن (چرا PostgreSQL پادشاه دیتابیس‌های جهان است؟).
* دیتابیس‌های NoSQL: ذخیره آزاد اسناد به شکل JSON.
5. **نقشه داده‌های پروژه محوری (پورتفولیوی پویا):**
* **جدول ۱ (`projects`):** فیلدهای `id` (UUID), `title`, `description`, `image_url`, `tags`, `live_url`, `github_url`, `created_at`.
* **جدول ۲ (`site_settings`):** فیلدهای `id`, `site_title`, `meta_description`, `og_image_url`, `author_name`, `bio`.
6. **کال‌اوت‌های Quera:**
* `<details class="violet">`: چرا شناسه‌های تصادفی و طولانی (UUID) در وب مدرن بر شناسه‌های عددی ساده (`1, 2, 3`) ارجحیت دارند؟
* `<details class="red">`: تله انتخاب نوع داده اشتباه؛ ذخیره کردن تاریخ یا اعداد در قالب متن خام (`text`) و مصیبت‌های بعدی در جستجو و مرتب‌سازی.
### آنچه نباید وارد آن شویم (Out-of-Scope):
- نوشتن کوئری‌های پیچیده SQL با دستورات `JOIN`های چندگانه تو در تو.
- ثبت‌نام و ساخت عملی پروژه در داشبورد Supabase (درس‌های ۷.۴ و ۷.۵).
---
## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده |
| :--- | :--- | :--- |
| Relational Database (RDBMS) | پایگاه داده رابطه‌ای | سیستمی برای ذخیره و سازماندهی داده‌ها در قالب جداول دارای سطر و ستون منظم |
| Primary Key (PK) | کلید اصلی | فیلد منحصربه‌فردی که هویت یکتا و تمایز قطعی هر سطر در جدول را تضمین می‌کند |
| UUID (Universally Unique ID) | شناسه جهانی یکتا | رشته متنی تصادفی و ۳۶ کاراکتری که احتمال تکرار آن در کل جهان نزدیک به صفر است |
| Data Types | انواع داده | فرمت‌های معین برای مقادیر مجاز هر ستون (نظیر متن، عدد، تاریخ و منطقی) |
| PostgreSQL | پستگرس‌کیو‌ال | پیشرفته‌ترین، پایدارترین و محبوب‌ترین موتور پایگاه داده متن‌باز رابطه‌ای در جهان |
---
## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)
> **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` قرار گرفته و در قالب جدول تک‌خانه‌ای وسط‌چین با کپشن تفصیلی درج شوند:
1. **تصویر کاور درس:** `images/cover.png`
* **موضوع:** کاور مدرن با تم تیره و یک استوانه بلورین دیتابیس با طبقه‌های نوری منظم سطرها و ستون‌های داده که در فضا شناور است.
2. **استعاره اکسل در برابر پایگاه داده:** `images/excel-vs-database-analogy.png`
* **موضوع:** تصویر مقایسه‌ای: شیت ساده اکسل در برابر پایگاه داده رابطه‌ای با هزاران رکورد سریع و ایمن.
3. **آناتومی یک جدول پایگاه داده:** `images/database-table-anatomy.png`
* **موضوع:** اینفوگرافیک برچسب‌گذاری‌شده جدول: ستون‌ها، ردیف‌ها، کلید اصلی UUID و نوع داده هر ستون.
4. **مقایسه ساختار SQL و NoSQL:** `images/sql-vs-nosql-comparison.png`
* **موضوع:** دیاگرام مقایسه جداول ساخت‌یافته رابطه‌ای PostgreSQL در برابر اسناد انعطاف‌پذیر JSON.
5. **نقشه جداول پورتفولیوی پویا:** `images/portfolio-tables-schema.png`
* **موضوع:** تصویر شماتیک دو جدول `projects` و `site_settings` با نام ستون‌ها و انواع داده مجاز.
---
## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`)
1. **تیتر اصلی:** `# داده و دیتابیس چیست: راز ماندگاری اطلاعات در دنیای دیجیتال`
2. **مقدمه:** چرا بدون پایگاه داده، بهترین وب‌سایت‌ها با بستن تب مرورگر همه چیز را فراموش می‌کنند؟
3. **جدول کاور درس**
4. **استعاره فایل اکسل ابرقدرت:** کالبدشکافی مفهوم پایگاه داده به زبان ساده.
5. **چهار رکن اساسی هر دیتابیس:**
* جدول (Table)، ستون (Column)، سطر (Row) و کلید اصلی (Primary Key).
6. **باکس نکته Quera (`<details class="violet">`):** چرا در پروژه‌های نوین از شناسه UUID استفاده می‌کنیم؟
7. **انواع داده‌های پرکاربرد: متن، عدد، تاریخ و بولین:** جلوگیری از خطاهای رایج.
8. **پایگاه‌های داده رابطه‌ای (SQL) در برابر NoSQL:** چرا PostgreSQL انتخاب استاندارد است؟
9. **طراحی نقشه داده‌های پورتفولیوی پویا:** کالبدشکافی جداول پروژه‌ها و تنظیمات سئو.
10. **باکس هشدار Quera (`<details class="red">`):** عواقب انتخاب اشتباه نوع داده ستون‌ها.
11. **جمع‌بندی درس‌نامه:** تسلط بر مفاهیم بنیادین داده و ورود به شاهراه ارتباطی فرانت‌اند با بک‌اند (APIها).
---
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- [ ] مفاهیم جدول، سطر، ستون و کلید اصلی با زبان ملموس و روان شرح داده شده باشند.
- [ ] انواع داده‌های اصلی به همراه دلیل نیاز به نوع‌های معین تدریس شوند.
- [ ] ساختار جداول پروژه پورتفولیو (`projects` و `site_settings`) در متن مشخص گردند.
- [ ] تفاوت SQL و NoSQL با تاکید بر جایگاه PostgreSQL تبیین شده باشد.