کلید خارجی در پایگاه داده چیست؟ – به زبان ساده

۶۴ بازدید
آخرین به‌روزرسانی: ۱۷ تیر ۱۴۰۳
زمان مطالعه: ۱۳ دقیقه
کلید خارجی در پایگاه داده چیست؟ – به زبان ساده

در «سیستم مدیریت پایگاه داده» (DataBase Management System | DBMS) کلید خارجی به ویژگی می‌گویند که بین دو جدول جدا از هم ارتباط ایجاد کرده و آن را حفظ می‌کند. کلید خارجی در پایگاه داده به عنوان محدودیتی عمل می‌کند که داده‌ها و وجود ارتباط معنادار بین آن‌ها را در پایگاه‌های داده رابطه‌ای تضمین کند. استفاده از کلید‌های خارجی تضمین می‌کند که بین داده‌های ذخیره شده در جداول مختلف همخوانی و سازگاری وجود داشته باشد. این اتفاق باعث می‌شود که ارتباط بین دو جدول مختلف به صورت مستحکم باقی بماند و از هر تغییر ناخواسته و نامناسب جلوگیری شود. علاوه بر مطلب گفته شده، کلید‌های خارجی می‌توانند برای ایجاد اتصال بین چندین موجودیت مختلف نیز به‌کار برده شوند. ایجاد اتصال بین موجودیت‌ها باعث سازماندهی اطلاعات برای فراخوانی بهتر داده‌ها از پایگاه داده می‌شود.

997696

در این مطلب از مجله فرادرس، درباره ماهیت «کلید‌ خارجی» ( Foreign Key) در پایگاه داده و روش کار این ویژگی بحث می‌کنیم. انواع ارتباط‌هایی که کلید خارجی می‌تواند برقرار کند را بررسی کرده و سینتکس پایه برای ساخت کلید خارجی را نیز نمایش داده‌ایم. همچنین به بررسی اهمیت وجود آن‌ و تفاوت کلید خارجی با «کلید اصلی» (Primary Key) و کلید ترکیبی نیز پرداخته‌ایم. در نهایت هم برای کمک به درک بهتر مطلب، مثال ساده‌ای را کدنویسی کرده‌ و توضیح داده‌ایم.

کلید خارجی در پایگاه داده چیست؟

به عبارت ساده، کلید خارجی، ستونی در جدول است که به کلید اصلی در جدول دیگری اشاره می‌کند. همچنین می‌تواند به گروهی از ستون‌ها نیز اشاره کند که در کنار هم کلید اصلی جدول دوم را دربردارند. در زمان ساخت جدول در SQL می‌توانیم کلید خارجی را هم تعریف کنیم.

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

  • با استفاده از کلید خارجی در پایگاه داده مطمئن می‌شویم که درباره دقت داده‌ها از وقوع تغییرات غیرمُجاز جلوگیری شود.
  • کلید خارجی از طریق ایجاد اتصالات معنی‌دار بین چندین جدول مختلف، رابطه آن‌ها را با یکدیگر ایجاد کرده و حفظ می‌کند.
  • با کمک کلید خارجی می‌توانیم داده‌ها را از پایگاه داده به صورت سریع‌تر و کارآمدتری فراخوانی کنیم.
  • کلید خارجی باعث اعمال محدودیت بر روی داده‌های ورودی می‌شود. پس تضمین می‌کند که فقط داده‌های معتبر در پایگاه داده ذخیره شوند.
  • به توسعه‌دهندگان کمک می‌کند که برنامه نوشته شده خود را به صورت ماژولار ایجاد کنند. این کار باعث نگهداری ساده‌تر و مقیاس‌پذیری بیشتر برنامه می‌شود.

اهمیت استفاده از کلید خارجی در پایگاه داده چیست؟

استفاده از کلید خارجی به جز امتیازاتی که به برنامه می‌دهد، دارای ویژگی‌هایی هم هست که وجود آن را ضروری ساخته است.

  • وجود کلید خارجی برای حفظ ارتباط بین چندین جدول مختلف در پایگاه داده بسیار ضروری است. بدون کلید‌های خارجی، داده‌های ذخیره شده در جداول مختلف به صورت ایزوله و بدون داشتن ارتباط معنادار با یکدیگر باقی می‌مانند.
  • کلیدهای خارجی می‌توانند داده‌های بیش از دو جدول مختلف را با یکدیگر مرتبط کنند.
  • آن‌ها اساسا به عنوان مرجعی برای دستیابی به داده‌ها عمل می‌کنند. این امر به نگهداری از رابطه‌ بین موجودیت‌های مختلف کمک می‌کند. همچنین باعث می‌شود که اطلاعات به روش منظم‌تری از پایگاه داده فراخوانی شوند.
دختر سیاه پوست زیبا در حال کار با لپتاپ است.

کلید اصلی در پایگاه‌های داده نیز با کلید‌های خارجی مرتبط است. این کلید‌ها با کمک یکدیگر منحصرا برای شناسایی هر رکورد ذخیره شده در جدول‌ها کار می‌کنند. علاوه بر این کلید‌های خارجی برای اِعمال اجباری روابط در جدول‌ها به‌کار برده می‌شوند. این کار از ایجاد تغییرات غیرمُجاز در داده‌ها جلوگیری می‌کند.

انواع ارتباطات کلید خارجی در پایگاه داده

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

  • One-To-One: رابطه یک به یک زمانی ایجاد می‌شود که رکوردی به صورت مجزا از جدول فعلی دقیقا در ارتباط با یک رکورد در جدول دیگر باشد.
  • One-To-Many: رابطه یک به چند زمانی ایجاد می‌شود که رکوردی به صورت مجزا از جدول فعلی در ارتباط با چند رکورد مختلف در جدول دیگر باشد.
  • Many-To-One: رابطه چند به یک زمانی اتفاق می‌‌افتد که چندین رکورد از جدول فعلی دقیقا در ارتباط با یک رکورد خاص در جدول دیگر باشند.
  • Many-To-Many: رابطه چند به چند زمانی اتفاق می‌‌افتد که چندین رکورد از جدول فعلی در ارتباط با چند رکورد مختلف در جدول دیگر باشند.

یادگیری کار با SQL Server در فرادرس

SQL Server یکی از نرم‌افزارهای ذخیره‌سازی داده است که توسط شرکت بزرگ و قدرتمند مایکروسافت معرفی شده. همان‌طور که از نام SQL Server مشخص است، این پایگاه داده رابطه‌ای از زبان SQL استفاده می‌کند. در حال حاضر، هنوز هم در بسیاری از صنایع با وجود ظهور رقبای جدید، به عنوان یکی از گزینه‌های اصلی و محبوب شناخته شده و به‌کار برده می‌شود.

از آن‌جا که گروه آموزشی فرادرس در نظر دارد تمام آموزش‌های خود را به صورت کاربرد محور عرضه کند، روش نصب و استفاده از پایگاه داده SQL Server را از ابتدا تا پیشرفته‌ترین مراحل به صورت فیلم آموزشی تهیه کرده و در اختیار جویندگان علم قرار داده است.

مجموعه آموزش اس کیو ال سرور – مقدماتی تا پیشرفته
«با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی این مجموعه آموزشی انتقال پیدا کنید.»

به عنوان چند مورد از مطالب کمکی برای درک بهتر ساختار دیتابیس در SQL، می‌توانیم به فیلم‌های آموزشی تهیه شده زیر در فرادرس اشاره کنیم.

ایجاد کلید خارجی

مراحل ساخت کلید خارجی در سیستم مدیریت پایگاه داده یا DBMS به دو قدم اصلی نیاز دارند.

  1. در قدم اول باید نوع رابطه بین دو جدول مختلف را تعریف کنیم.
  2. در قدم دوم هم باید خود کلید خارجی را ایجاد کنیم. برای تعریف کردن رابطه بین دو جدول جداگانه باید مشخص کنید که در هر دو جدول کدام ستون‌ها با یکدیگر مرتبط شده‌اند.

سینتکس و محدودیت های کلید خارجی

سینتکس ابتدایی برای ساخت کلید خارجی در سیستم مدیریت پایگاه داده به صورت زیر است.

1FOREIGN KEY (column_name) REFERENCES other_table(column_name)

در عبارت بالا، برای متصل کردن ستون مشخص شده در جدول اول با ستون متناظر آن در جدول دوم other_table ، از کلید خارجی استفاده می‌کنیم. کلید خارجی در این عبارت همان ستون مشخص شده در جدول اول است. عبارت بالا دو جدول فعلی و جدول دوم other_table را به یکدیگر مرتبط کرده و تضمین می‌کند که داده‌های آن‌ها با هم متصل باقی بمانند. برای درک بهتر این سینتکس در ادامه باز هم مثال‌های دیگری نمایش داده‌ایم.

با کمک این سینتکس می‌توانیم محدودیت‌های بیشتری را نیز به این رابطه اضافه کنیم. به عنوان مثال می‌توان تعیین کرد که آیا وجود مقادیر NULL مجاز است یا نه. یا اینکه برای کار کردن رابطه بین جداول، سازگار بودن رکورد‌های درون هر دو جدول با هم الزامی است یا نه.

برای مثال، می‌توانیم با استفاده از بند ON DELETE CASCADE مشخص کنیم که هر دو ستون، قبل از اضافه شدن هر رکورد جدیدی به جدول‌ها باید دارای داده باشند. در واقع ستون‌ها مجاز به خالی بودن نیستند.

مثال‌ روش پیاده سازی کلید خارجی در پایگاه داده

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

1Table A: Customers
2Fields: customer_id (primary key) and name
3Table B: Orders
4Fields: order_id (primary key), customer_id (foreign key) and product_name

در مثال بالا، ستون مربوط به شماره شناسایی مشتری customer_id از جدول Table B به کلید اصلی متناظر در جدول Table A متصل شده است. اتصال مورد اشاره با ایجاد محدودیت کلید خارجی بین هر دو جدول ایجاد شده. وجود این اتصال تضمین می‌کند که هر سفارش ثبت شده‌ای، دارای مشتری معتبر و مرتبط با آن است. علاوه بر این، از وارد شدن هر داده نامعتبری به هر کدام از جدول‌ها جلوگیری می‌کند.

وجود کلید خارجی در «DBMS» برای هر پایگاه داده‌ای ضروری است. هم چنین برای حفظ یکپارچگی بین داده‌ها نیز حیاطی شمرده می‌شود. کلیدهای خارجی به توسعه دهندگان کمک می‌کنند که رکوردهای موجود در چندین جدول جداگانه را با یکدیگر متصل کرده و ارتباطات بین موجودیت‌های درون پایگاه داده را با هم حفظ کنند.

پسری بر روی مبلمان لوکس و راحتی نشسته و در حال کار با لپتاپ است.

بررسی فعالیت های آبشاری همراه با کلید خارجی

«فعالیت‌های آبشاری» (Cascading Actions) به اقداماتی می‌گویند بر اثر اجرای آن‌ها اقدامات دیگری خود به خود روی می‌دهند. به عنوان مثال، از این نوع اقدامات می‌توان به Update و Delete و غیره اشاره کرد. در فهرست زیر چند مورد از کدهای مربوط به فعالیت‌های آبشاری را در برخورد با کلید‌های خارجی بررسی کرده‌ایم.

  • On Delete Cascade: وقتی از جدولی که دارای کلید خارجی است، رکوردی حذف شود، فعالیت On Delete Cascade، باعث حذف همه رکوردهای مرتبط در سایر جدول‌ها نیز می‌شود.
  • On Update Cascade: وقتی از جدولی که دارای کلید خارجی است، رکوردی به‌روزرسانی شود، فعالیت On Update Cascade، باعث به‌روزرسانی همه رکوردهای مرتبط در سایر جدول‌ها نیز می‌شود.
  • On Restrict: از اعمال هر نوع تغییری در رکودرهایی که رکورد متناظری در سایر جدول‌ها دارند، با استفاده از این فعالیت جلوگیری می‌شود.
  • On Nullify: وقتی از جدولی که دارای کلید خارجی است، رکوردی حذف شود، این فعالیت، مقدار همه رکوردهای مرتبط با آن را در سایر جدول‌ها برابر با NULL می‌کند.

استفاده از «فعالیت‌های آبشاری» (Cascading Actions) بر روی رکورد‌های پایگاه داده دارای کلید خارجی می‌تواند به نگهداری و یکپارچگی داده‌ها کمک کند. همچنین این اقدام به‌روز بودن داده‌ها را در جداول مختلف تضمین می‌کند. اگرچه ضروری است که قبل از پیاده‌سازی این قبیل کدها و فعالیت‌ها بر روی پایگاه داده، اثر اجرای آن‌ها را بر روی برنامه و داده‌های خود در نظر بگیریم. یادگیری ساختمان‌های داده می‌تواند به درک بهتر کلید‌های خارجی کمک کند. زیرا ساختمان‌های داده بخش مهمی از سازماندهی داده‌ها را تشکیل می‌دهند.

اهمیت ایندکس گذاری بر روی کلید های خارجی

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

  • ایندکس‌ها روش ساده‌ای را برای محافظت از ارتباط بین موجودیت‌های درون پایگاه داده فراهم می‌کنند. همچنین با کمک ایندکس‌ها می‌توان محدودیت‌های امنیتی بر پایگاه داده اعمال کرد و باعث ارتقای کارایی اپلیکیشن شد.
  • از ایندکس‌ها در کنار فعالیت‌های Cascading نیز می‌توان استفاده کرد. این عمل باعث حفاظت از یکپارچگی داده‌ها بر روی چندین جدول مختلف می‌شود.
  • به دلیل همزمانی فرایند‌های خواندن و نوشتن، بعضی وقت‌ها در زمان کار با پایگاه داده، بن‌بست‌های عملیاتی رخ می‌دهند. ایندکس‌گذاری کلیدهای خارجی از این اتفاق جلوگیری می‌کند.
  • در نهایت، ایندکس‌گذاری کلیدهای خارجی می‌تواند به افزایش سرعت اجرای کوئری‌ها هم کمک کند.

بهترین رویکردها برای کار کردن با کلید خارجی

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

برنامه نویس در حال کار با کامپیوتر در منزل شخصی خود است. سگش در مقابل او به روی میز نشسته است

این رویکردهای موثر برای کار کردن با کلید خارجی، در عملکرد پایگاه داده را در ادامه فهرست کرده‌ایم.

  1. مطمئن شوید ستون‌های تعریف شده به عنوان محدودیت کلید خارجی، بین دو جدول مختلف دقیقا با هم سازگار باشند.
  2. در زمان ایجاد کلید خارجی، برای مطمئن شدن از یکپارچگی داده‌ها باید محدودیت‌های بیشتری مانند ON DELETE CASCADE یا ON UPDATE CASCADE را مشخص کنیم.
  3. ایندکس‌گذاری هر دو ستون شامل شده در محدودیت کلید خارجی، می‌تواند در افزایش سرعت اجرای کوئری‌ها موثر شود. همچنین، این‌کار از بن‌بست‌های عملیاتی جلوگیری جلوگیری می‌کند که به دلیل همزمانی فرایند‌های خواندن و نوشتن رخ می‌دهند.
  4. در هنگام کار با پایگاه‌های داده بزرگی که تعداد جداول بسیار زیادی دارند، به‌جای کوئری‌های مورِدی از ویوها و «رویه‌های ذخیره شده» (Stored Procedures) استفاده کنید. این کار باعث می‌شود، پایگاه داده‌ای که طراحی کرده‌ایم، قابل درک‌تر شده و فرایند مدیریت راحت‌تری نیز داشته باشد.

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

تفاوت بین کلید اصلی و کلید خارجی

به صورت معمول «کلید‌های اصلی» (Primary Keys) و خارجی برای متصل کردن جدول‌ها در پایگاه داده رابطه‌ای با یکدیگر کار می‌کنند. هر کدام از آن‌ها برای توصیف کردن ویژگی خاصی از جدول و اتصال جدول‌ها به همدیگر کارهای متفاوتی را انجام می‌دهند.

کلید اصلی

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

به صورت کلی کلیدهای اصلی باید «فقط خواندنی» (Read-Only) باشند. زیرا با کمک این کلیدها است که هویت منحصربه‌فرد جدول حفظ می‌شود. برای درک بهتر مسئله، در فهرست زیر چند مورد از نوع داده‌های کلید اصلی مربوط به دنیای واقعی را مثال زده‌ایم.

  • شماره شناسایی گواهینامه
  • شماره‌های تلفن
  • شماره‌های شناسایی مشتریان
  • شماره‌های تامین اجتماعی
  • شماره پلاک ماشین
  • و غیره

کلید خارجی

«کلید خارجی» (Foreign Key) دو جدول مختلف را به یکدیگر متصل می‌کند. هر جدول می‌تواند بیش از یک کلید خارجی داشته باشد. همچنین کلیدهای خارجی می‌توانند مقادیر تهی یا Null را نیز بپذیرند. کلیدهای خارجی نیازی به یکتا بودن ندارند و حتی موارد تکراری را نیز می‌توان در ستون مربوط به کلیدهای خارجی ذخیره کرد.

توجه کنید: کلیدهای خارجی همیشه باید به ستون‌هایی با مقادیر منحصر به فرد لینک شوند، که بیشتر اوقات این ستون‌ها کلیدهای اصلی هستند.

تفاوت بین کلید ترکیبی و کلید خارجی

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

«کلید ترکیبی» (Composite Key) در پایگاه‌های داده رابطه‌ای برای ترکیب کردن دو یا چند ستون در داخل جدول مشخصی است. با ترکیب کردن این ستون‌ها می‌توانیم شناسه منحصربه‌فردی از رکوردهای درون جدول ایجاد کنیم.

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

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

ربات بزرگ در حال کار با کامپیوتر است و نمونه ماکت کوچکی از ربات بزرک بر روی میز قرار گرفته است.

کاربردها و چالش های استفاده از کلید خارجی در پایگاه داده

کلیدهای خارجی دارای مزایای بسیار مهمی هستند که وجود این نوع از کلیدها را الزامی می‌کنند. البته در مسیر استفاده از این کلیدها چالش‌هایی هم وجود دارد که در این بخش از مطلب به هر دو مورد پرداخته‌ایم.

کاربردهای کلیدهای خارجی

به طور کلی کاربردهای اصلی کلید خارجی را می‌توان در سه مورد مهم دسته‌بندی کرد. سعی کردیم که به واضح‌ترین شکل ممکن این سه مورد را در فهرست زیر توضیح دهیم.

  • کلید خارجی یکپارچگی داده‌ها را تضمین می‌کند: استفاده اصلی از کلید خارجی در پایگاه داده، برای اعمال رابطه بین دو جدول مجزا از هم است. این کار باعث می‌شود که مطمئن شویم داده‌های مختلف در هر دو جدول، دقیق و منسجم باقی می‌مانند. وجود اتصال بین جداول از وارد شدن هر داده غیر معتبری به هر کدام از این جدول‌ها جلوگیری می‌کند.
  • کلید خارجی باعث ایجاد اتصال بین چندین جدول مختلف می‌شود: با متصل کردن رکوردهای مرتبط بهم در طول جدول‌های متوالی، می‌توانیم به سادگی با استفاده از کلیدهای خارجی، کوئری‌های بسیار پیچیده‌ای را بسازیم. با این کار می‌توان با کمترین تلاش، مقادیر کل یا میانگین اندازه داده‌ها را محاسبه کرد.
  • اعمال محدودیت‌های امنیتی: کلید‌های خارجی را می‌توان برای محدود کردن دسترسی به رکورد‌ها یا ستون‌های خاصی نیز استفاده کرد. به همین ترتیب می‌توان با کمک کلید خارجی از دیده شدن اطلاعات حساس درون پایگاه داده توسط کاربران غیرمُجاز جلوگیری کرد.

چالش های استفاده از کلید خارجی

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

  • تعریف نادرست کلید خارجی: در زمان تعریف کردن کلید خارجی در پایگاه داده، بسیار مهم است که از تطابق کامل ستون‌های تعیین شده در دو جدول مختلف مطمئن شویم.
  • پیچیدگی‌های غیر ضروری: اضافه کردن اقدامات آبشاری بسیار زیاد یا ایندکس‌های غیر ضروری می‌تواند برنامه را بسیار پیچیده کند. این سطح از پیچیدگی باعث می‌شود که نگهداری برنامه در طول زمان به فرایندی چالشی تبدیل شود. به همین‌ ترتیب عامل بروز مشکلاتی در کارایی برنامه و بروز خطرات امنیتی نیز می‌شود.
  • فراموش کردن ایندکس‌گذاری کلیدهای خارجی: کلید‌های خارجی در پایگاه داده نیز مانند سایر ستون‌های پایگاه داده قابل ایندکس‌گذاری هستند. اما توسعه‌دهندگان اغلب این مرحله را فراموش می‌کنند. این اتفاق باعث کارایی ضعیف کوئری‌ها یا بروز بن‌بست‌های پردازشی شود که به دلیل همزمانی بین عملیات خواندن و نوشتن رخ می‌دهند.

مثالی از کاربرد کلید خارجی در پایگاه داده

برای اینکه روال کاری کلید خارجی را بهتر درک کنیم در این بخش مثال کوچکی را همراه با کدنویسی پیاده‌سازی کرده‌ایم.

دو جدول «دانشجو» (Student) و «گروه آموزشی» (Department) را در نظر بگیرید. ویژگی‌های هر دو جدول به ترتیبی است که در ادامه نمایش داده‌ایم.

نمونه جدول پایگاه داده

همان‌طور که مشاهده می‌کنید، جدول دانشجو در بالا شامل ستون‌های Stud_Id و Name و Course می‌شود. جدول گروه آموزشی نیز در پایین، دارای دو ستون Dept_name و Stud_Id است. هر دو جدول بر روی ستون Stud_Id اشتراک دارند.

نمونه جدول پایگاه داده

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

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

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

فیلم آموزشی دوره های تکمیلی دیتابیس

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

فیلم‌های آموزشی معرفی شده بالا، چند مورد از دوره‌هایی هستند که برای آشنایی با پایگاه‌های داده مختلف معرفی شده‌اند. مخصوصا پیشنهاد می‌کنیم دوره‌های مربوط به MySQL و PostgreSQL را به طور خاص ببینید. اما در صورت تمایل به آشنایی با موارد بیشتر هم می‌توانید بر روی تصویر زیر کلیک کرده و وارد صفحه اصلی این مجموعه آموزش شوید.

مجموعه آموزش پایگاه داده – مقدماتی تا پیشرفته
«با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی این مجموعه آموزشی انتقال پیدا کنید.»

جمع بندی

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

در این مطلب از مجله فرادرس در ابتدا درباره کلید خارجی صحبت کردیم. سپس به بیان اهمیت و ویژگی‌ها کلید خارجی پرداختیم. تفاوت آن را با کلید اصلی و ترکیبی بیان کرده و انواع رویکردهای لازم به توجه در زمان استفاده را توضیح دادیم. در مرحله بعد هم کاربردها و چالش‌های رایج در زمان کار با کلید خارجی را بررسی کردیم و در نهایت، مثال کوچکی از روش استفاده از کلید خارجی را نمایش دادیم.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
HeroviredTechTargetJavatpointeducative
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *