راهنماها

پایگاه داده چیست؟ راهنمایی برای سازندگان برنامه

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

چرا وقتی با هوش مصنوعی می‌سازید اهمیت دارد

غافلگیری رایج برای کسانی که با هوش مصنوعی می‌سازند، برنامه‌ای است که تمام به نظر می‌رسد اما همه چیز را فراموش می‌کند. مشتری اضافه می‌کنید، صفحه را تازه‌سازی می‌کنید و او دیگر نیست. این معمولاً یعنی برنامه داده را در حافظه مرورگر نگه می‌داشته، نه در یک پایگاه داده.

پایگاه داده جایی است که بسیاری از مهم‌ترین تصمیم‌های شما زندگی می‌کنند، چه متوجه باشید چه نه:

  • چه چیزی ثبت می‌کنید. اگر وضعیت یک رزرو را ذخیره نکنید، نمی‌توانید نشان دهید کدام رزروها لغو شده‌اند.
  • چگونه چیزها به هم وصل می‌شوند. اینکه یک مشتری بتواند چند رزرو داشته باشد، یا یک رزرو چند خدمت داشته باشد، کل برنامه را شکل می‌دهد.
  • چه کسی چه چیزی را ببیند. بیشتر اشتباهات حریم خصوصی درباره این است که یک کاربر کدام رکوردها را می‌تواند بخواند.

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

یک تشبیه روزمره

یک کابینت بایگانی‌شده‌ی مرتب در یک دفتر کوچک را تصور کنید.

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

این یک پایگاه داده رابطه‌ای است. کشوها جدول هستند، پوشه‌ها ردیف، فیلدها ستون، شماره‌های مرجع کلید اصلی (primary key) و یادداشت‌هایی که به پوشه‌ی دیگری اشاره می‌کنند کلید خارجی (foreign key). یک مدیر دفتر خوب هم قوانینی اعمال می‌کند — بدون قرار ملاقات بدون تاریخ، بدون دو مشتری با یک شماره — همان‌طور که یک پایگاه داده هم می‌کند.

یک مثال کامل: اپلیکیشن رزرو یک آرایشگاه

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

services

idnameduration_minutesprice
1کوتاهی مو4540.00
2رنگ مو9095.00

staff

idnameemail
1ساراsara@example.com
2عمرomar@example.com

customers

idnameemailphone
101لنا پارکlena@example.com555-0100

bookings

idcustomer_idservice_idstaff_idstarts_atstatus
5001101122026-10-03 14:00confirmed

جدول bookings را نگاه کنید. نام و شماره تلفن لنا را در هر رزرو کپی نمی‌کند؛ فقط customer_id = 101 را ذخیره می‌کند. اگر لنا شماره تلفنش را عوض کند، در یک جا تغییر می‌کند و هر رزرو شماره جدید را نشان می‌دهد. این ایده اصلی یک پایگاه داده رابطه‌ای است: هر واقعیت را یک بار ذخیره کنید و به آن لینک بدهید.

همین ساختار به سؤال‌های مفید پاسخ می‌دهد:

  • «کدام نوبت‌ها برای عمر در جمعه خالی است؟» — رزروهای عمر آن روز را نگاه کنید.
  • «خدمات رنگ مو در این ماه چقدر درآمد داشته‌اند؟» — bookings را به services وصل کنید و قیمت‌ها را جمع بزنید.
  • «کدام مشتری‌ها ۹۰ روز است که رزرو نکرده‌اند؟» — مشتری‌ها را با آخرین رزروشان مقایسه کنید.

اصطلاحات رایج توضیح داده شده

اصطلاحمعنی
جدول (Table)مجموعه‌ای از یک نوع رکورد، مثل مشتری‌ها یا رزروها.
ردیف (Row / record)یک آیتم در جدول — یک مشتری، یک رزرو.
ستون (Column / field)یک قطعه اطلاعات که هر ردیف دارد، مثل ایمیل یا قیمت.
کلید اصلی (Primary key)شناسه یکتا برای هر ردیف، معمولاً یک عدد یا رشته تصادفی.
کلید خارجی (Foreign key)ستونی که به یک ردیف در جدول دیگر اشاره می‌کند، مثل customer_id در bookings.
Schemaطراحی کلی: کدام جدول‌ها وجود دارند، ستون‌هایشان و نحوه اتصالشان.
Queryدرخواستی برای خواندن یا تغییر داده، مثلاً «همه رزروهای فردا».
SQLStructured Query Language، زبان استاندارد برای پرس‌وجو از پایگاه‌های داده رابطه‌ای.
Migrationتغییر ذخیره‌شده و قابل تکرار در schema، مثل افزودن یک ستون.
Indexساختار جست‌وجو که جستجو روی یک ستون را سریع‌تر می‌کند، مثل فهرست راهنمای یک کتاب.
CRUDCreate، Read، Update، Delete — چهار کار پایه‌ای که برنامه‌ها با داده انجام می‌دهند.
پشتیبان (Backup)نسخه‌ای از داده که اگر مشکلی پیش آمد می‌توانید بازیابی‌اش کنید.

انواع پایگاه داده

نوعنحوه ذخیره دادهنمونه‌هامناسب برای
رابطه‌ای (SQL)جدول‌هایی با ستون‌های ثابت و ارتباط بین آن‌هاPostgres، MySQL، SQLiteبیشتر برنامه‌های کسب‌وکاری: رزرو، فروشگاه، CRM، SaaS
سندی (NoSQL)اسناد انعطاف‌پذیر شبیه JSONMongoDB، Firestoreداده‌هایی که شکلشان از رکوردی به رکورد دیگر زیاد فرق دارد
کلید-مقدار (Key-value)یک مقدار زیر یک کلیدRedisکش، داده‌های کوتاه‌مدت مثل نشست‌ها

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

جای پایگاه داده در برنامه شما

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

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

اشتباهات رایج و باورهای غلط

  • نگه داشتن داده فقط در مرورگر. ذخیره‌سازی مرورگر (مثل localStorage) روی یک دستگاه و یک مرورگر می‌ماند. برای یک فیلتر به یاد سپرده‌شده خوب است، نه برای سفارش‌ها.
  • ریختن همه چیز در یک جدول. یک جدول «رزروها» که نام، تلفن و قیمت خدمت مشتری در هر ردیف کپی شده باشد، خیلی زود ناهماهنگ می‌شود.
  • ذخیره رمز عبور به‌صورت متن ساده. رمزهای عبور باید هش شوند، نه اینکه خوانا ذخیره شوند. احراز هویت چیست را ببینید.
  • نداشتن قانون برای داده. بدون فیلدهای الزامی و قوانین یکتایی، رزروهای بدون تاریخ و مشتری‌های تکراری خواهید داشت.
  • فراموش کردن حذف. تصمیم بگیرید حذف یک مشتری، رزروهایش را هم حذف کند، نگه دارد یا مسدود شود.
  • استفاده از داده واقعی برای آزمایش. تغییرات پرریسک را اول در جایی امن آزمایش کنید و پشتیبان داشته باشید.
  • نگاه کردن به صفحه‌گسترده به‌عنوان پایگاه داده برای همیشه. صفحه‌گسترده برای شروع عالی است، اما وقتی کاربران همزمان زیاد یا دسترسی‌های متفاوت دارید، دچار مشکل می‌شود. چطور یک صفحه‌گسترده را به برنامه تبدیل کنید را ببینید.

از سازنده هوش مصنوعی‌تان چه بخواهید

  • «این را در یک پایگاه داده ذخیره کن، نه در مرورگر. بگو چه جدول‌هایی می‌سازی.»
  • «schema را به‌صورت یک جدول ساده نشانم بده: هر جدول، ستون‌هایش و نحوه اتصالشان.»
  • «یک مشتری می‌تواند چند رزرو داشته باشد؛ هر رزرو دقیقاً یک خدمت و یک کارمند دارد.»
  • «ایمیل مشتری‌ها الزامی و یکتا باشد.»
  • «جلوی هم‌پوشانی دو رزرو برای یک کارمند را بگیر.»
  • «فقط مالک واردشده می‌تواند همه رزروها را بخواند؛ مشتری‌ها فقط رزروهای خودشان را ببینند. این را روی سرور اعمال کن.»
  • «وقتی یک خدمت را حذف می‌کنم، رزروهای گذشته را پاک نکن — به‌جای آن خدمت را غیرفعال علامت بزن.»

پایگاه داده‌ها در Mythex

وقتی برنامه‌تان نیاز دارد داده ذخیره کند، Mythex یک پایگاه داده Postgres اختصاصی به پروژه اضافه می‌کند — می‌توانید در چت بخواهید («لیست انتظار ثبت‌نام‌ها را در پایگاه داده ذخیره کن») یا از دستور /database استفاده کنید. اطلاعات اتصال به‌طور خودکار به برنامه داده می‌شود و عامل جدول‌ها را می‌سازد. پایگاه داده بعد از پنج دقیقه بی‌کاری به خواب می‌رود و با درخواست بعدی بیدار می‌شود، و برای استفاده در حالت منتشرشده، زمانی که بیدار بوده از همان موجودی اعتبار ساخت محاسبه می‌شود. در طرح‌های Free و Pro در دسترس است. مستندات پایگاه داده جزئیات را پوشش می‌دهد و قالب‌های برنامه نقطه‌شروع‌های مبتنی بر داده را شامل می‌شوند.

پرسش‌ها

پایگاه داده به زبان ساده چیست؟

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

آیا یک صفحه‌گسترده (اسپریدشیت) پایگاه داده است؟

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

تفاوت پایگاه‌های داده SQL و NoSQL چیست؟

پایگاه‌های داده SQL (رابطه‌ای) مثل Postgres و MySQL داده‌ها را در جدول‌هایی با ستون‌های تعریف‌شده و ارتباط‌های بین آن‌ها نگه می‌دارند. پایگاه‌های داده NoSQL مثل MongoDB اسناد انعطاف‌پذیرتری ذخیره می‌کنند. بیشتر برنامه‌های کسب‌وکاری — رزرو، CRM، فروشگاه — با مدل رابطه‌ای خوب جور می‌شوند.

آیا برنامه من به پایگاه داده نیاز دارد؟

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

Mythex · Pricing · با هوش مصنوعی هر چیزی بسازید · قالب‌های وب‌سایت و اپلیکیشن · مقایسه‌ی Mythex · واژه‌نامه‌ی ساخت اپلیکیشن با هوش مصنوعی · ابزارهای رایگان ساخت اپلیکیشن با هوش مصنوعی · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)