خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


16. آموزش SQL Server به زبان ساده. ارتباط بین جداول در SQL Server

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

سیستم یکپارچۀ سازمانی راهکار



چرا جداول اس کیو ال سرور باید با هم مرتبط باشند؟


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

  1. از ورود اطلاعات تکراری جلوگیری می شود.
  2. اطلاعات به صورت منظم تر و ساختیافته تر، سازماندهی می شوند.
  3. اگر نیاز به ویرایش به یک نوع از این شکل باشد کار ساده تر صورت می پذیرد. (در این باره در ادامه بیشتر خواهیم دانست)
  4. و مزایای بسیار دیگری که به مرور با آنها آشنا خواهید شد...

در موارد اینچنینی که اطلاعات مرتبط با یک موضوع مشترک را به دلایلی که در بالا گفتیم در جداول جداگانه نگهداری می کنند، لازم است تا بین این جداول ارتباطات مناسب برقرار شود. خود این ارتباطات چندین نوع دارند که رایج ترین نوع آن ارتباط "یک به چند" (One To Many) می باشد. در ادامه این آموزش یک جدول برای نگهداری انواع جنسیت های انسان ها ایجاد می کنیم و آن را با جدول PhoneBook که اطلاعات تماس های اشخاص می باشند مرتبط خواهیم کرد.

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


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

آموزش SQL Server به زبان ساده. ایجاد جدول (Table)

با استفاده از لینک آموزشی مربوط به ایجاد جدول در اس کیو ال سرور، یک جدول با نام MaleOrFemale بسازید و فیلدهای آن را به شکل زیر معرفی کنید :

  • RowID : نوع داده این فیلد را tinyint انتخاب کنید، ویژگی Allow Nulls آن را بدون تیک کنید. و همینطور آنرا بعنوان کلید اولیه جدول معرفی کنید.
  • MaleOrFemale : نوع داده این فیلد را nvarchar و با اندازه 50 بگذارید، ویژگی Allow Nulls آن تیک داشته باشد.

تصویر زیر این جدول را بعد از معرفی شدن به شما نشان می دهد :

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

افزودن دو رکورد برای نگهداری جنسیت اشخاص


جدول مربوط به جنسیت (MaleOrFemale) را در حالت ویرایش رکوردهایش باز کنید و رکوردهای زیر را به آن اضافه کنید.

  1. مرد
  2. زن

تصویر زیر این موضوع را به شما نشان می دهد.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

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


برای ایجاد ارتباط بین دو جدول (در واقع ایجاد یک رابطه پایگاه داده بین دو جدول) به روش زیر این کار را انجام دهید :

ابتدا در جدول تماسها (PhoneBook) یک فیلد جدید با نام MaleOrFemale_ID اضافه کنید و نوع داده آن را tinyint بگذارید، نحوه نامگذاری این فیلد انتخابی است، ما برای استاندارد کردن نامگذاری از این نام استفاده کردیم. سپس جدول PhoneBook را ذخیره کنید.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

حالا در یک قسمت خالی از محیط طراحی جدول PhoneBook با ماوس راست کلیک کنید و از منوی ظاهر شده گزینه Relationships (روابط) را انتخاب کنید.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

کادر محاوره ای Foreign Key Relationships نمایان می شود. بر روی دکمه Add کلیک کنید.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

یک گزینه به لیست سمت چپ این صفحه اضافه می شود، ابتدا آن را انتخاب کنید و سپس در سمت راست بر روی دکمه با علامت [...] که در مقابل گزینه Tables And Columns Specification قرار دارد کلیک کنید.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

کادر محاوره ای Tables and Columns نمایان می شود. در سمت چپ، یعنی در قسمت Primary key table از لیست باز شدنی جداول، جدول MaleOrFemale را انتخاب کنید و سپس در اولین ردیف پایین آن فیلد RowID را انتخاب نمایید. سپس در سمت راست، یعنی در قسمت foreign key table که در آنجا بصورت پیش فرض جدول PhoneBook انتخاب شده است، فیلد MaleOrFemale_ID را انتخاب نمایید. در پایان بر روی دکمه OK کلیک کنید.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

حالا در کادر محاوره ای Foreign Key Relationships اگر قسمت Tables And Columns Specification را بسط دهید در زیر آن گزینه هایی را مشابه تصویر زیر خواهید دید. بر روی دکمه Close کلیک کنید.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server

در پایان جدول PhoneBook را ذخیره کنید تا تغییرات شما در ساختار جدول اعمال گردد.

بعد از معرفی رابطه بین دو جدول وقتی در جدول PhoneBook در قسمت Object Explorer پوشه ها را بسط دهید و به قسمت Columns برسید، خواهید دید که در کنار فیلد MaleOrFemale_ID یک علامت کلید خاکستری رنگ، مشابه تصویر زیر ایجاد شده است. اصطلاحا به این فیلد، کلید خارجی (Foreign Key) گفته می شود.

16. آموزش SQL Server به زبان ساده. معنای ارتباط بین جداول در SQL Server


آموزش قبلی : 15. آموزش SQL Server به زبان ساده. مرتب سازی نتایج جستجو با دستور ORDER BY

آموزش بعدی : 17. آموزش SQL Server به زبان ساده. کار با جداول مرتبط شده با یکدیگر



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.