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