شروع کار با دیتابیس‌های رابطه‌ای و SQL

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

مدیریت جدولدیتابیس رابطه‌ایاصول SQL,

~4 min read · Updated Sep 7, 2026

یک دیتابیس رابطه‌ای واقعاً چیست

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

مثال جدول: customers
| customer_id | name        | email               |
|-------------|-------------|---------------------|
| 1           | Alice Smith | [email protected]   |
| 2           | Bob Jones   | [email protected]      |

یک Relational Database Management System (RDBMS) نرم‌افزاری است که این جداول را ذخیره می‌کند و اجازه می‌دهد کاربران با آن‌ها تعامل داشته باشند — مثال‌های رایج شامل PostgreSQL، MySQL، و SQLite هستند. کاربران تقریباً کاملاً از طریق SQL (Structured Query Language)، یک زبان تخصصی برای بازیابی و دستکاری داده ساختاریافته، با یک RDBMS تعامل می‌کنند.

نوشتن اولین کوئری SQL

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

SELECT name, email
FROM customers
WHERE customer_id = 1;

این کوئری به‌طور طبیعی خوانده می‌شود: ستون‌های name و email را انتخاب کن، از جدول customers، جایی که customer_id برابر ۱ باشد. هدف طراحی SQL اعلانی‌بودن است — کوئری آنچه داده مورد نیاز است را توصیف می‌کند، نه رویه گام‌به‌گام برای یافتن آن، و اجازه می‌دهد موتور دیتابیس کارآمدترین روش برای واقعاً بازیابی آن را تعیین کند.

بلوک‌های سازنده اصلی یک کوئری SQL

فراتر از یک `SELECT` ساده، تعداد کمی بند اکثریت قریب‌به‌اتفاق نیازهای روزمره بازیابی داده را مدیریت می‌کنند.

  • WHERE ردیف‌ها را بر اساس یک شرط فیلتر می‌کند، و فقط ردیف‌هایی که آن را برآورده می‌کنند برمی‌گرداند.
  • ORDER BY ردیف‌های بازگردانده‌شده را بر اساس یک یا چند ستون، صعودی یا نزولی، مرتب می‌کند.
  • LIMIT تعداد ردیف‌های بازگردانده‌شده را محدود می‌کند، که برای پیش‌نمایش نتایج بزرگ مفید است.
  • GROUP BY ردیف‌های اشتراک‌گذارنده یک مقدار مشترک را گروه‌بندی می‌کند، که معمولاً با یک تابع تجمیعی ترکیب می‌شود.
SELECT city, COUNT(*) AS customer_count
FROM customers
GROUP BY city
ORDER BY customer_count DESC
LIMIT 5;

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

مدیریت جداول: ساخت ساختار

پیش از اینکه هر داده‌ای بتواند ذخیره شود، ساختار یک جدول باید با استفاده از CREATE TABLE تعریف شود، که نام و Data Type (نوع داده) هر ستون را مشخص می‌کند — نوع مقداری که آن ستون نگه خواهد داشت، مانند متن، اعداد صحیح، یا تاریخ‌ها.

CREATE TABLE customers (
    customer_id INTEGER PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100)
);

تعیین PRIMARY KEY مشخص می‌کند customer_id ستونی است که هر ردیف را به‌طور یکتا شناسایی می‌کند — هیچ دو ردیفی نمی‌توانند همان مقدار را داشته باشند، و این ستون نمی‌تواند خالی بماند. NOT NULL به‌طور مشابه نیاز دارد یک ستون همیشه یک مقدار داشته باشد، و از رکوردهای ناقص جلوگیری می‌کند.

مدیریت داده: درج، به‌روزرسانی، و حذف

وقتی یک جدول وجود دارد، سه عبارت تغییر محتوایش را مدیریت می‌کنند.

-- افزودن یک ردیف جدید
INSERT INTO customers (customer_id, name, email)
VALUES (3, 'Carol White', '[email protected]');

-- تغییر یک ردیف موجود
UPDATE customers
SET email = '[email protected]'
WHERE customer_id = 1;

-- حذف یک ردیف
DELETE FROM customers
WHERE customer_id = 2;

هرکدام از این عبارات معمولاً یک بند WHERE برای هدف‌گذاری ردیف‌های خاص شامل می‌شوند؛ حذف آن از یک UPDATE یا DELETE تغییر را روی هر ردیف در جدول اعمال می‌کرد، یک اشتباه رایج و پرهزینه که ارزش دقت خاص را دارد.

چرا این اصول اهمیت دارند

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

Written & researched by Dr. Shahin Siami

Related Articles

طراحی دیتابیس در عصر هوش مصنوعی مولد

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

Continue

امنیت و بهینه‌سازی دیتابیس: کنترل دسترسی و ایندکس‌گذاری

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

Continue

نرمال‌سازی دیتابیس: از 1NF تا BCNF، با مثال توضیح داده شده

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

Continue

مدل‌سازی روابط: یک‌به‌چند، چندبه‌چند، و نمودارهای موجودیت-رابطه

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

Continue

شناسایی موجودیت‌ها و ویژگی‌ها: بلوک‌های سازنده طراحی دیتابیس

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

Continue

مروری بر طراحی دیتابیس: اهداف، فرآیند، و مراحل کلیدی

Continue