چگونه می توان کلید های خارجی را در Microsoft SQL Server ایجاد کرد

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

جداول پایگاه داده و روابط

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

برای مثال، یک پایگاه داده که توسط یک شرکت برای ردیابی اطلاعات منابع انسانی استفاده می شود را در نظر بگیرید. این پایگاه داده ممکن است یک جدول به نام کارمندان داشته باشد که شامل اطلاعات زیر برای هر عضو کارکنان شرکت می شود:

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

پایگاه داده همچنین ممکن است یک جدول با نام Positions با اطلاعات اضافی زیر در مورد هر موقعیتی داشته باشد:

فیلد Position ID در این جدول شبیه فیلد Employee ID در جدول Employees است - یک عدد صحیح منحصر به فرد ایجاد شده است که زمانی ایجاد می شود که یک موقعیت به پایگاه داده اضافه شود.

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

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

هنگامی که کلید خارجی را شناسایی کرده اید، می توانید پیش بروید و اطلاعات مورد نظر را از پایگاه داده با استفاده از پرس و جو زیر بکشید:

SELECT FirstName، LastName، Title FROM کارکنان INNER JOIN POSITION ON ON Employers.PositionID = Positions.PositionID

ایجاد کلید های خارجی در SQL سرور

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

در اینجا چگونگی ایجاد کلید خارجی در SQL Server را خواهید آموخت:

ALTER TABLE کارکنان KEY خارج از کشور (PositionID) مراجع موقعیت ها (PositionID)

شما همچنین می توانید در هنگام ایجاد یک جدول با اضافه کردن یک عبارت خارجی ایجاد کنید:

عناوین کلیدی خارجی (Positions)

به پایان تعریف ستون برای ستون کلید خارجی.