### مستندات پروژه پایگاه داده سیستم مدیریت موزه
#### ۱. معرفی پروژه
**عنوان پروژه:** سیستم مدیریت موزه
**توضیح:** این پروژه برای مدیریت عملیاتهای مختلف یک موزه طراحی شده است. سیستم شامل مدیریت آثار هنری، هنرمندان، نمایشگاهها، بازدیدکنندگان و نوبتها است. هدف اصلی این سیستم، بهبود کارایی در سازماندهی و نمایش آثار هنری، پیگیری نمایشگاهها و مدیریت اطلاعات بازدیدکنندگان و هنرمندان است.
#### ۲. شرح جداول پایگاه داده
##### جدول آثار هنری (`Artworks`)
- **توضیح:** این جدول شامل اطلاعات مربوط به آثار هنری موجود در موزه است.
- **فیلدها:**
- **ArtworkID:** شناسه منحصر به فرد برای هر اثر هنری (کلید اصلی).
- **Title:** عنوان اثر هنری.
- **ArtistID:** شناسه هنرمند که اثر را خلق کرده است (کلید خارجی که به جدول `Artists` متصل است).
- **CreationDate:** تاریخ خلق اثر.
- **Medium:** نوع اثر هنری (مثلاً نقاشی، مجسمه).
- **Dimensions:** ابعاد اثر هنری.
- **Value:** ارزش اثر هنری.
- **Status:** وضعیت اثر (مثلاً در معرض نمایش، در انبار).
##### جدول هنرمندان (`Artists`)
- **توضیح:** این جدول شامل اطلاعات مربوط به هنرمندانی است که آثارشان در موزه نمایش داده میشود.
- **فیلدها:**
- **ArtistID:** شناسه منحصر به فرد برای هر هنرمند (کلید اصلی).
- **FirstName:** نام هنرمند.
- **LastName:** نام خانوادگی هنرمند.
- **BirthDate:** تاریخ تولد هنرمند.
- **Nationality:** ملیت هنرمند.
- **Biography:** بیوگرافی کوتاه هنرمند.
##### جدول نمایشگاهها (`Exhibitions`)
- **توضیح:** این جدول شامل اطلاعات مربوط به نمایشگاههای برگزار شده در موزه است.
- **فیلدها:**
- **ExhibitionID:** شناسه منحصر به فرد برای هر نمایشگاه (کلید اصلی).
- **Title:** عنوان نمایشگاه.
- **StartDate:** تاریخ شروع نمایشگاه.
- **EndDate:** تاریخ پایان نمایشگاه.
- **Location:** محل برگزاری نمایشگاه.
##### جدول آثار نمایشگاهها (`ExhibitionArtworks`)
- **توضیح:** این جدول رابطه بین آثار هنری و نمایشگاههایی که در آنها به نمایش گذاشته میشوند را نشان میدهد.
- **فیلدها:**
- **ExhibitionArtworkID:** شناسه منحصر به فرد برای هر رابطه (کلید اصلی).
- **ExhibitionID:** شناسه نمایشگاهی که اثر در آن به نمایش گذاشته شده است (کلید خارجی که به جدول `Exhibitions` متصل است).
- **ArtworkID:** شناسه اثری که در نمایشگاه به نمایش گذاشته شده است (کلید خارجی که به جدول `Artworks` متصل است).
##### جدول بازدیدکنندگان (`Visitors`)
- **توضیح:** این جدول شامل اطلاعات بازدیدکنندگانی است که به موزه مراجعه کردهاند.
- **فیلدها:**
- **VisitorID:** شناسه منحصر به فرد برای هر بازدیدکننده (کلید اصلی).
- **FirstName:** نام بازدیدکننده.
- **LastName:** نام خانوادگی بازدیدکننده.
- **PhoneNumber:** شماره تماس بازدیدکننده.
- **Email:** آدرس ایمیل بازدیدکننده.
- **Address:** آدرس محل سکونت بازدیدکننده.
##### جدول نوبتها (`Appointments`)
- **توضیح:** این جدول شامل اطلاعات مربوط به نوبتهای بازدید از موزه است.
- **فیلدها:**
- **AppointmentID:** شناسه منحصر به فرد برای هر نوبت (کلید اصلی).
- **VisitorID:** شناسه بازدیدکننده که نوبت را ثبت کرده است (کلید خارجی که به جدول `Visitors` متصل است).
- **ExhibitionID:** شناسه نمایشگاه که بازدیدکننده قصد دارد از آن بازدید کند (کلید خارجی که به جدول `Exhibitions` متصل است).
- **AppointmentDate:** تاریخ و زمان نوبت.
- **Status:** وضعیت نوبت (مثلاً برنامهریزی شده، انجامشده، لغو شده).
#### ۳. شرح روابط جداول
- **ارتباط بین جدول آثار هنری و جدول هنرمندان:** هر اثر هنری توسط یک هنرمند خلق شده است، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
- **ارتباط بین جدول نمایشگاهها و جدول آثار نمایشگاهها:** هر نمایشگاه میتواند شامل چندین اثر هنری باشد و هر اثر هنری میتواند در چندین نمایشگاه به نمایش گذاشته شود، بنابراین بین این دو جدول یک ارتباط چند به چند (Many-to-Many) برقرار است که توسط جدول `ExhibitionArtworks` مدیریت میشود.
- **ارتباط بین جدول بازدیدکنندگان و جدول نوبتها:** هر بازدیدکننده میتواند چندین نوبت برای بازدید از نمایشگاههای مختلف داشته باشد، بنابراین بین این دو جدول یک ارتباط یک به چند (One-to-Many) برقرار است.
- **ارتباط بین جدول نمایشگاهها و جدول نوبتها:** هر نمایشگاه میتواند شامل چندین نوبت باشد، بنابراین بین این دو جدول یک ارتباط یک به چند (One-to-Many) برقرار است.
#### ۴. توضیحات اضافی
- **کلیدهای اصلی:** هر جدول دارای یک کلید اصلی است که بهصورت منحصر به فرد هر رکورد را شناسایی میکند.
- **کلیدهای خارجی:** کلیدهای خارجی برای برقراری ارتباط بین جداول استفاده میشوند. به عنوان مثال، `ArtistID` در جدول `Artworks` به جدول `Artists` و `ExhibitionID` در جدول `Appointments` به جدول `Exhibitions` متصل است.
#### ۵. مثالهای استفاده
- **دریافت لیست تمام آثار هنری در یک نمایشگاه خاص:**
- با استفاده از `ExhibitionID` میتوان لیست تمام آثار هنری به نمایش گذاشته شده در آن نمایشگاه را از جدول `ExhibitionArtworks` استخراج کرد.
- **پیگیری نوبتهای بازدیدکنندگان:**
- با استفاده از `VisitorID` در جدول `Appointments` میتوان تمام نوبتهای ثبتشده برای یک بازدیدکننده خاص را مشاهده کرد.
- **مشاهده تمامی نمایشگاهها شامل یک اثر هنری خاص:**
- با استفاده از `ArtworkID` در جدول `ExhibitionArtworks` میتوان نمایشگاههایی که آن اثر هنری در آنها به نمایش گذاشته شده است را شناسایی کرد.
---
این مستندات ساختار و توضیحات ضروری برای درک و استفاده از پایگاه داده سیستم مدیریت موزه را ارائه میدهد و میتواند بهعنوان راهنمایی برای توسعه و بهبود این سیستم مفید باشد.