تفاوت کلیدی بین کلید خارجی و کلید اصلی این است که کلید خارجی یک ستون یا مجموعه ای از ستون ها است که به یک کلید اصلی یا یک کلید نامزد جدول دیگر اشاره دارد در حالی که کلید اصلی یک ستون یا مجموعه ای از ستون ها است. که می تواند برای شناسایی منحصر به فرد یک ردیف در جدول استفاده شود.
به ستون یا مجموعهای از ستونها که میتوان برای شناسایی یا دسترسی به یک ردیف یا مجموعهای از سطرها در پایگاه داده استفاده کرد، کلید نامیده میشود. کلید اصلی در پایگاه داده رابطه ای ترکیبی از ستون ها در جدول است که به طور منحصر به فرد یک ردیف از جدول را مشخص می کند. کلید خارجی در یک پایگاه داده رابطه ای فیلدی در جدول است که با کلید اصلی جدول دیگر مطابقت دارد.کلید خارجی برای متقابل جداول مرجع استفاده می شود.
کلید خارجی چیست؟
کلید خارجی یک محدودیت ارجاعی بین دو جدول است. این یک ستون یا مجموعهای از ستونها را در یک جدول شناسایی میکند که به آن جدول مرجع میگویند که به مجموعهای از ستونها در جدول دیگری به نام جدول مرجع اشاره دارد. کلید خارجی یا ستون های جدول ارجاع باید کلید اصلی یا کلید کاندید (کلیدی که می تواند به عنوان کلید اصلی استفاده شود) در جدول ارجاع شده باشد. علاوه بر این، کلیدهای خارجی امکان پیوند داده ها را در چندین جدول فراهم می کنند.بنابراین، کلید خارجی نمیتواند حاوی مقادیری باشد که در جدولی که به آن ارجاع داده نمیشوند. سپس مرجع ارائه شده توسط کلید خارجی به پیوند دادن اطلاعات در چندین جدول کمک می کند و این امر با پایگاه داده های عادی ضروری می شود. سطرهای متعدد در جدول ارجاع ممکن است به یک ردیف در جدول ارجاع شده اشاره داشته باشد.
شکل 01: نقشه برداری کلید خارجی
در استاندارد ANSI SQL، محدودیت FOREIGN KEY کلیدهای خارجی را تعریف می کند. علاوه بر این، امکان تعریف کلیدهای خارجی هنگام ایجاد خود جدول وجود دارد. یک جدول میتواند چندین کلید خارجی داشته باشد و میتواند به جداول مختلف ارجاع دهد.
کلید اصلی چیست؟
کلید اصلی یک ستون یا ترکیبی از ستون ها است که به طور منحصر به فرد یک ردیف را در جدول یک پایگاه داده رابطه ای تعریف می کند. یک جدول حداکثر می تواند یک کلید اصلی داشته باشد. کلید اصلی محدودیت ضمنی NOT NULL را اعمال می کند. بنابراین، یک ستون با کلید اصلی نمی تواند مقادیر NULL را در خود داشته باشد. کلید اصلی می تواند یک ویژگی عادی در جدول باشد که تضمین شده است که منحصر به فرد باشد، مانند شماره امنیت اجتماعی، یا می تواند یک مقدار منحصر به فرد ایجاد شده توسط سیستم مدیریت پایگاه داده مانند شناسه منحصر به فرد جهانی (GUID) در مایکروسافت SQL Server باشد.
شکل 02: کلید اصلی
علاوه بر این، محدودیت PRIMARY KEY در ANSI SQL Standard کلیدهای اولیه را تعریف می کند. همچنین امکان تعریف کلید اولیه هنگام ایجاد جدول وجود دارد. علاوه بر آن، SQL اجازه می دهد تا کلید اصلی از یک یا چند ستون تشکیل شود و هر ستونی که در کلید اصلی گنجانده شده است به طور ضمنی NOT NULL تعریف می شود. اما برخی از سیستمهای مدیریت پایگاه داده نیاز دارند که ستونهای کلید اصلی را بهصراحت NOT NULL کنند.
تفاوت بین کلید خارجی و کلید اصلی چیست؟
کلید خارجی در مقابل کلید اصلی |
|
کلید خارجی یک ستون یا گروهی از ستونها در جدول پایگاه داده رابطهای است که ارتباط بین دادههای دو جدول را فراهم میکند. | کلید اصلی یک ستون جدول پایگاه داده رابطه ای خاص یا ترکیبی از چندین ستون است که امکان شناسایی منحصر به فرد همه رکوردهای جدول را فراهم می کند. |
NULL | |
کلید خارجی مقدار NULL را می پذیرد. | مقدار کلید اصلی نمی تواند NULL باشد. |
تعداد کلیدها | |
جدول می تواند چندین کلید خارجی داشته باشد. | جدول می تواند فقط یک کلید اصلی داشته باشد. |
تکرار | |
Tuples می توانند یک مقدار تکراری برای یک ویژگی کلید خارجی داشته باشند. | دو تاپل در یک رابطه نمی توانند مقادیر تکراری برای یک ویژگی کلید اصلی داشته باشند. |
خلاصه - کلید خارجی در مقابل کلید اصلی
تفاوت بین کلید خارجی و کلید اصلی این است که کلید خارجی یک ستون یا مجموعهای از ستونها است که به یک کلید اصلی یا یک کلید کاندید جدول دیگر اشاره دارد در حالی که کلید اصلی یک ستون یا مجموعهای از ستونها است که می توان برای شناسایی منحصر به فرد یک ردیف در یک جدول استفاده کرد.