دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۳
  • شهریور

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

  • دسته‌بندی‌ها :
جلسه ۰۵ : ارتباط بین جداول درSQL Server 2017
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

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

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

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

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

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

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

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

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

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

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

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

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

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

      ارتباط جداول در نمای GUI

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

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

      مثال : 

      دو خط اول کد فوق رابطه بین دو جدول 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 را بررسی می کنیم:

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

      مثال : 

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

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

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

      نتایج ایجاد ارتباط در GUI

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

      مثال : 

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

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

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

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

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

      مثال : 

      کلام آخر

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

      QR:  جلسه ۰۵ : ارتباط بین جداول درSQL Server 2017
      به اشتراک بگذارید