🎁 30% تخفیف ویژه تمامی دوره های آموزشی 🎁

روابط یک به یک، یک به چند و چند به چند در SQL Server

در یک پایگاه داده رابطه‌ای، هر جدول با استفاده از محدودیت‌های کلید اصلی –خارجی (Primary-Foreign Key constraints) به جدول دیگری متصل می‌شود.

روابط یک به یک، یک به چند و چند به چند در SQL Server

روابط جداول در SQL Server : یک به یک، یک به چند، چند به چند

درک و طراحی روابط بین جداول در یک پایگاه داده رابطه ای (relational database) مانند SQL Server بسیار مهم است. در یک پایگاه داده رابطه ای، هر جدول با استفاده از محدودیت های کلید اصلی –خارجی (Primary-Foreign Key constraints) به جدول دیگری متصل می شود.

روابط جداول در پایگاه داده SQL Server سه نوع است:

1 - یک به یک (One-to-One)

2 - یک به چند (One-to-Many)

3 - چند به چند (Many-to-Many)

رابطه یک به یک

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

روابط جداول در SQL Server : یک به یک، یک به چند، چند به چند

در بالا، ستون EmployeeID کلید اصلی و همچنین ستون کلید خارجی در جدول EmployeeDetails است که به EmployeeID جدول Employee لینک داده شده است. این رابطه صفر یا یک به یک را تشکیل می دهد.

کویری زیر داده های هر دو جدول را نمایش می دهد.

روابط جداول در SQL Server : یک به یک، یک به چند، چند به چند

آنچه که در زیر می بینید نتیجه کویری های بالا است که نشان می دهد چگونه هر کارمند هیچ یا فقط یک رکورد متناظر در جدول EmployeeDetails دارد.

روابط جداول در SQL Server : یک به یک، یک به چند، چند به چند

رابطه یک به چند

یک به چند یا One-to-Many متداول ترین رابطه بین جداول است. در این نوع رابطه یک رکورد از یک جدول را می توان به صفر یا چند ردیف در جدول دیگر پیوند داد.

بیایید مثالی از جدول Employee and Address در پایگاه داده HR بزنیم. جدول Employee سوابق و رکوردهای کارمندان را که در آن EmployeeID کلید اصلی است ذخیره می کند. جدول Address آدرس های کارمندان را در خود نگهداری می کند که در آن AddressID یک کلید اولیه و EmployeeID یک کلید خارجی است. هر کارمند یک رکورد در جدول Employee خواهد داشت ولی هر کارمند می تواند آدرس های زیادی مانند آدرس خانه، آدرس دفتر، آدرس دائمی و غیره داشته باشد.

جداول Employee و Address توسط ستون کلید EmployeeID به هم مرتبط می شوند. این یک کلید خارجی در جدول Address است که به کلید اصلی EmployeeID در جدول Employee لینک دارد. بنابراین، یک رکورد از جدول Employee می تواند به چندین رکورد در جدول Address اشاره کند. این یک رابطه یک به چند است.

رابطه یک به چند در SQL Server

کویری زیر داده های هر دو جدول را نمایش می دهد.

رابطه یک به چند در SQL Server

آنچه که در زیر می بینید نتیجه کویری های بالا برای نشان دادن چگونگی ارتباط داده ها در رابطه یک به چند است.

رابطه یک به چند در SQL Server

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

رابطه چند به چند

رابطه چند به چند یا Many-to-Many به شما این امکان را می دهد که هر ردیف در یک جدول را به بسیاری از ردیف های جدول دیگر و بالعکس مرتبط کنید. به عنوان مثال، یک کارمند در جدول Employee می تواند مهارت های زیادی از جدول EmployeeSkill داشته باشد و همچنین، یک مهارت می تواند به یک یا چند کارمند مرتبط باشد.

شکل زیر رابطه چند به چند بین جدول Employee و SkillDescription را با استفاده از جدول اتصال EmployeeSkill نشان می دهد.

رابطه چند به چند در SQL Server

هر کارمند در جدول Employee می تواند یک یا چند مهارت داشته باشد. به طور مشابه، یک مهارت در جدول SkillDescription را می توان به بسیاری از کارمندان مرتبط کرد. این باعث ایجاد یک رابطه چند به چند می شود.

در مثال بالا، EmployeeSkill جدول اتصالی است که شامل ستون های کلید خارجی EmployeeID و SkillID است تا رابطه چند به چند بین جدول Employee و SkillDescription ایجاد کند. به صورت جداگانه، Employee و EmployeeSkill یک رابطه یک به چند دارند و جداول SkillDescription و EmployeeSkill رابطه یک به چند دارند. اما، آنها با استفاده از جدول اتصالی EmployeeSkill رابطه چند به چند را تشکیل می دهند.

کویری زیر داده های همه جداول را نمایش می دهد.

رابطه چند به چند در SQL Server

انچه که در زیر می بینید نتیجه کویری های فوق است که نشان می دهد چگونه داده ها در رابطه چند به چند مرتبط هستند.

رابطه چند به چند در SQL Server
روابط در جداول SQL Server روابط یک به یک روابط یک به چند روابط چند به چند آموزش SQL Server