خانه/ وبلاگ/ راهنمای کامل پروژه‌ی درس پایگاه‌داده: موضوع، مراحل و ساختار گزارش
دانشجویان و مصاحبه

راهنمای کامل پروژه‌ی درس پایگاه‌داده: موضوع، مراحل و ساختار گزارش

دانشجویان و مصاحبه ۵ آبان ۱۴۰۵ 11 دقیقه مطالعه

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

۱۲ ایده برای موضوع پروژه

موضوعی انتخاب کن که هم به آن علاقه داری و هم می‌توانی قواعد کسب‌وکارش را توضیح بدهی:

موضوعموجودیت‌های اصلینکته‌ی طراحی جالب
مدیریت کتابخانهعضو، کتاب، امانت، جریمهچندبه‌چند عضو–کتاب و محاسبه‌ی دیرکرد
فروشگاه اینترنتیمشتری، محصول، سفارش، قلم سفارشقیمت در زمان خرید و موجودی انبار
سیستم دانشگاهدانشجو، استاد، درس، ترم، ثبت‌نامپیش‌نیاز درس‌ها (رابطه‌ی بازگشتی)
بیمارستان / کلینیکبیمار، پزشک، نوبت، نسخهارث‌بری (پرسنل: پزشک/پرستار)
رزرو هتلمهمان، اتاق، رزرو، پرداختتداخل بازه‌های زمانی
باشگاه ورزشیعضو، مربی، کلاس، اشتراکاشتراک‌های دوره‌ای
رستوران و سفارش غذامشتری، غذا، سفارش، پیکمنو و دسته‌بندی چندسطحی
سینما و بلیتفیلم، سالن، سانس، بلیتصندلی‌های رزرو شده
منابع انسانیکارمند، بخش، حقوق، مرخصیسلسله‌مراتب مدیر (CTE بازگشتی)
آموزشگاه زبانزبان‌آموز، کلاس، سطح، آزمونتاریخچه‌ی سطح‌ها
حمل‌ونقل و بلیت اتوبوسمسیر، اتوبوس، سفر، مسافرچند ایستگاه در مسیر
مدیریت پروژهپروژه، وظیفه، عضو تیم، زمان‌بندیوابستگی بین وظیفه‌ها

۸ مرحله‌ی اجرای پروژه

  1. تحلیل نیازمندی‌ها: یک صفحه بنویس که سیستم چه می‌کند و چه کسانی از آن استفاده می‌کنند، به‌همراه قواعد کسب‌وکار (مثلاً «هر عضو حداکثر ۳ کتاب هم‌زمان»).
  2. مدل مفهومی: موجودیت‌ها و ارتباط‌ها را در یک نمودار ER بکش.
  3. مدل منطقی: نمودار را طبق قواعد نگاشت به جدول تبدیل کن.
  4. نرمال‌سازی: جدول‌ها را تا 3NF بررسی و اصلاح کن.
  5. مدل فیزیکی و ساخت پایگاه‌داده: نوع داده‌ها، قیدها و ایندکس‌ها را مشخص کن و اسکریپت CREATE TABLE بنویس.
  6. درج داده‌ی نمونه: حداقل ۱۰ تا ۲۰ ردیف معنادار برای هر جدول اصلی بساز.
  7. پرس‌وجوها و اشیای برنامه‌نویسی: حداقل ۱۰ پرس‌وجو (JOIN، GROUP BY، زیرپرس‌وجو)، چند View، Stored Procedure و در صورت نیاز Trigger.
  8. تست، مستندسازی و تحویل: همه‌چیز را از ابتدا روی یک دیتابیس خالی اجرا کن تا مطمئن شوی اسکریپت‌ها بدون خطا کار می‌کنند.

ساختار پیشنهادی گزارش

فصلمحتوا
۱. مقدمهمعرفی سیستم، هدف و دامنه‌ی پروژه
۲. نیازمندی‌هاقواعد کسب‌وکار، کاربران و عملیات اصلی
۳. طراحی مفهومینمودار ER یا CDM و توضیح هر موجودیت و ارتباط
۴. طراحی منطقیجدول‌ها، کلیدها و فرایند نرمال‌سازی (قبل و بعد)
۵. طراحی فیزیکینوع داده‌ها، قیدها، ایندکس‌ها و اسکریپت ساخت
۶. پیاده‌سازیداده‌ی نمونه، پرس‌وجوها (هر کدام با توضیح و خروجی)، View و Procedure
۷. نتیجه‌گیریمحدودیت‌ها و پیشنهاد توسعه
پیوستاسکریپت کامل SQL و نمودارها
برای هر پرس‌وجو یک جمله بنویس که چه سؤالی از داده می‌پرسد، سپس کد و عکس خروجی. گزارشی که فقط کد دارد نمره‌ی کمتری می‌گیرد.

نمونه پرس‌وجوهایی که استادها دوست دارند

sql
-- ۱) پرتکرارترین کتاب‌ها (JOIN + GROUP BY + ORDER BY)
SELECT TOP (5) b.Title, COUNT(*) AS LoanCount
FROM Loan l
JOIN Book b ON b.BookId = l.BookId
GROUP BY b.Title
ORDER BY LoanCount DESC;

-- ۲) اعضایی که هیچ‌وقت امانت نگرفته‌اند (LEFT JOIN + IS NULL)
SELECT m.FullName
FROM Member m
LEFT JOIN Loan l ON l.MemberId = m.MemberId
WHERE l.LoanId IS NULL;

-- ۳) امانت‌های دیرکرددار (شرط روی تاریخ)
SELECT MemberId, BookId, DueDate
FROM Loan
WHERE ReturnDate IS NULL AND DueDate < CAST(GETDATE() AS DATE);

نمونه‌ی کامل با داده‌ی آماده را در پروژه‌ی کتابخانه ببین.

اشتباه‌هایی که نمره کم می‌کنند

  • جدول‌های بدون کلید اصلی یا بدون کلید خارجی؛ ارتباط‌ها فقط در نمودار هست و در SQL نیست.
  • نرمال‌نبودن جدول‌ها و تکرار داده (مثلاً نام مشتری در جدول سفارش).
  • داده‌ی نمونه‌ی خیلی کم یا بی‌معنی که پرس‌وجوها خروجی جالبی ندارند.
  • اسکریپتی که فقط در سیستم خودت اجرا می‌شود (وابسته به مسیر فایل یا پایگاه‌داده‌ی قبلی).
  • نبودن قیدهای اعتبارسنجی مثل CHECK، UNIQUE و NOT NULL برای قواعد کسب‌وکار.
  • تحویل نکردن نسخه‌ی اسکریپت به‌ترتیب اجرا (ساخت، درج، پرس‌وجو).

چک‌لیست تحویل

  • نمودار ER / CDM و نمودار منطقی با کاردینالیتی
  • جدول‌های نرمال‌شده تا 3NF با توضیح فرایند
  • اسکریپت ساخت، داده‌ی نمونه و پرس‌وجوها به‌ترتیب اجرا
  • حداقل یک View و یک Stored Procedure (طبق خواسته‌ی استاد)
  • گزارش PDF با خروجی هر پرس‌وجو
  • تست اجرا روی یک دیتابیس کاملاً خالی

اگر هنوز با JOIN و GROUP BY راحت نیستی، قبل از شروع پرس‌وجوها درس‌های INNER JOIN و GROUP BY را مرور کن.

سوالات متداول درباره‌ی این موضوع

حداقل چند جدول برای پروژه‌ی درس پایگاه‌داده لازم است؟

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

پروژه را روی کدام DBMS پیاده کنم؟

هرچه در درس تدریس شده؛ در بیشتر دانشگاه‌های ایران SQL Server است. اگر آزاد بودی، SQL Server نسخه‌ی Express یا Developer رایگان است و ابزار SSMS هم دارد.

آیا باید برنامه‌ی کاربری هم بنویسم؟

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

مصطفی موسویسازنده و نویسنده‌ی SQLFarsi. اگر اشتباهی در مقاله دیدی یا پیشنهادی داری، از طریق mousavi.dev خبر بده.

می‌خوای با پروژه‌ی آماده تمرین کنی؟

چهار پروژه‌ی کامل با داده‌ی نمونه و چالش پرس‌وجو در دوره‌ی SQLFarsi آماده است.

شروع پروژه‌ی مدرسه