موضوعات وبسایت : برنامه نویسی
سوالات امتحان آیین نامه رانندگی

ارتباط بین جدول ها در sql

ارتباط بین جدول ها در sql

نویسنده : رضا قربانی | زمان انتشار : 16 دی 1400 ساعت 11:08

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



مقدمه

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

سوالات امتحان آیین نامه رانندگی

ارتباط بین جداول درSQL Server 2017

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

این کار کاربران را قادر می سازد تا پرس و جوهایی که شامل چند جدول مرتبط می شود، را اجرا کنند.

در ادامه ی آموزش به چگونگی ایجاد ارتباط زیر در پایگاه داده پرداخته ایم:

21.gif

شکل فوق در واقع رابطه ی بین جداول Albums و Artists  و رابطه ی بین جداول Albumsو Genres را توصیف می کند.

رابطه ی بین Albums و Artists نشان می دهد که یک Artists(هنرمند) می تواند Albums(آلبوم) های مختلفی داشته باشد.

رابطه بین Albums و Genres نشان می دهد که یک ژانر نیز آلبوم های متعددی را شامل می شود.

کد SQL ایجاد جداول فوق و ارتباط بین آنها بصورت زیر خواهد بود:

22-2.jpg

در تصویر فوق، بخشی که در کادر مشخص کرده ایم ارتباط بین جداول Artists و Albums را نشان می دهد.

اگر از یک رابط گرافیکی مانند SSMS یا SQLOPs در SQL استفاده می کنید، می توانید ارتباط بین جداول را در فولدر Keys مشاهده کنید:

23.gif

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

کد ارتباط جداول در شکل فوق:

مثال : 

CONSTRAINT FK_Albums_Artists FOREIGN KEY(ArtistId)    

    REFERENCES dbo.Artists(ArtistId)    

    ON DELETE NO ACTION    

    ON UPDATE NO ACTION

دو خط اول کد فوق رابطه بین دو جدول Artists و Albums را تعریف می کنند.

کد FK_Albums_Artists فیلد ArtistId را در جدول Albums به عنوان کلید خارجی تعریف می کند.

REFERENCES dbo.Artists (ArtistId کلید خارجی فوق را به کلید اصلی جدول Artists ارتباط می دهد.

کدهای ON DELETE NO ACTION و ON UPDATE NO ACTION مشخص می کند، هر گونه حذف و ویرایش سطرهای در یک جدول روی جدول دیگر تاثیر نگذاشته و فقط پیغام خطایی به کاربر صادر می شود.

برای اینکه تغییرات در یک جدول در جدول دیگر نیز اعمال شود به جای NO ACTION از CASCADE استفاده کنید.

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

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

برای مثال ارتباط بین دو جدول Genres و Albums را بررسی می کنیم:

کد آن بصورت زیر خواهد بود:

مثال : 

USEMusic;  

ALTER TABLE Albums

ADD CONSTRAINT FK_Albums_Genres FOREIGN KEY(GenreId)    

REFERENCES dbo.Genres(GenreId)    

ON DELETE NO ACTION    

ON UPDATE NO ACTION

;

کد فوق یک کلید خارجی در جدول Albums که “Albums.GenreId” می باشد را ایجاد می کند.

سپس Albums.GenreId را به کلید اصلی Genres.GenreId در جدول Genres ارجاع می دهد.

نتایج ایجاد ارتباط فوق در رابط گرافیکی در گروه Keys قابل مشاهده است:

24.gif

کلید های تک ستونی خارجی نیز می تواند در سطح ستون مشخص شود. بنابراین راه دیگری برای ایجاد جدول Albums و کلید خارجی آن این است:

مثال : 

CREATE TABLE Albums(

  AlbumId intIDENTITY(1,1)NOTNULLPRIMARY KEY,

  AlbumName nvarchar(255)NOTNULL,

  ReleaseDate date NOTNULL,

  ArtistId intNOTNULL

REFERENCES Artists(ArtistId),

  GenreId intNOTNULL  

);

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

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

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

برای استفاده از چند ستون در تعریف کلید خارجی باید نام ستون ها را با کاما (,) از هم جدا کنید.

بنابراین تعریف کلید خارجی چند ستونی برای جدول Albums به این صورت خواهد بود:

مثال : 

CONSTRAINT FK_Albums_Artists FOREIGN KEY(ArtistId,ArtistName)    

    REFERENCES dbo.Artists(ArtistId,ArtistName)

کلام آخر

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

جلسه ۰۵ : ارتباط بین جداول درSQL Server 2017

1 (20%) 1 رای

loading.gif

آیا این مطلب برای شما مفید بود؟


منبع: pvlearn.com



ارسال نظر

نام


ایمیل


نظر