ارتباطات بین جداول در SQL:
در پایگاه دادههای رابطهای، جداول به طور جداگانه اطلاعات را ذخیره میکنند. اما برای نمایش اطلاعات کامل، نیاز به برقراری ارتباط بین جداول داریم. SQL از طریق کلیدها، ارتباطات بین جداول را برقرار میکند.
انواع ارتباطات:
- یک به یک (One-to-One): هر رکورد در یک جدول فقط با یک رکورد در جدول دیگر مرتبط است.
- یک به چند (One-to-Many): هر رکورد در یک جدول میتواند با چند رکورد در جدول دیگر مرتبط باشد.
- چند به چند (Many-to-Many): هر رکورد در یک جدول میتواند با چند رکورد در جدول دیگر و بالعکس مرتبط باشد.
برقراری ارتباط:
- کلید اصلی (Primary Key): ستونی که هر رکورد را به طور منحصر به فرد مشخص میکند.
- کلید خارجی (Foreign Key): ستونی که به کلید اصلی در جدول دیگر اشاره میکند.
مثال:
فرض کنید دو جدول داریم:
- کارمندان (Employees): شامل اطلاعات کارمندان مانند نام، کد کارمندی و …
- سفارشات (Orders): شامل اطلاعات سفارشات مانند کد سفارش، کد کارمندی، تاریخ سفارش و …
ارتباط:
- هر کارمند میتواند چند سفارش ثبت کند (یک به چند).
- هر سفارش متعلق به یک کارمند است (یک به چند).
برقراری ارتباط:
- در جدول سفارشات، ستون کد کارمندی به عنوان کلید خارجی عمل میکند و به ستون کد کارمندی در جدول کارمندان (کلید اصلی) اشاره میکند.
مزایای برقراری ارتباط:
- سازگاری دادهها: از ذخیره اطلاعات تکراری جلوگیری میشود.
- دسترسی آسان به اطلاعات: با استفاده از کلیدها میتوان به اطلاعات مرتبط در جداول دیگر دسترسی پیدا کرد.
- به روز رسانی آسان: به روز رسانی اطلاعات در یک جدول به طور خودکار در جداول مرتبط نیز اعمال میشود.
نکات:
- برای هر رابطه بین دو جدول، باید یک کلید خارجی در یک جدول و یک کلید اصلی در جدول دیگر وجود داشته باشد.
- میتوان از قیدهای مختلف برای محدود کردن ارتباطات بین جداول استفاده کرد.
- برای حذف رکورد در یک جدول، باید ابتدا رکوردهای مرتبط در جداول دیگر حذف شوند.