انواع روابط بین جدول ها در پایگاه داده، کدام مدل رابطه ای در دیتابیس پرکاربرد تر است؟

انواع روابط بین جدول ها در پایگاه داده، کدام مدل رابطه ای در دیتابیس پرکاربرد تر است؟
آکادمی آی تی
آکادمی آی تی
dots

انواع روابط بین جدول ها در پایگاه داده، کدام مدل رابطه ای در دیتابیس پرکاربرد تر است؟

زمان مورد نیاز برای مطالعه 5 دقیقه

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

دپارتمان ‌ها: آموزش برنامه نویسی
1399/02/25
26,803 بازدید

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

 

مفهوم پایگاه داده رابطه ای relational database

این مفهوم برای اولین بار توسط کاد در سال 1970 مطرح شده است، که به عنوان یک پترن برای دسترسی به داده ها و همچنین ذخیره سازی آنها ارائه گردید. برای این که بتوانید این مفهوم را درک کنید در ابتدا باید پایگاه داده را به خوبی بشناسید. در یک تعریف ساده میتوان گفت پایگاه داده مجموعه ای از داده های به هم مرتبط است که با نظم خاصی در ارتباط هستند. گاهی به جای کلمه پایگاه داده از "بانک داده ها" یا "Data base" نیز استفاده میشود.

پایگاه داده رابطه ای

 

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

مدل رابطه ای داده ها

 در مدل رابطه ای، رابطه تعریف شده در پایگاه داده به وسیله مجموعه ای از جدول ها - رابطه های مستقل - شکل میگیرد.

 

مدل شبکه ای داده ها

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

برای توضیح این رابطه ها نیاز است که ابتدا با برخی مفاهیم بیشتر آشنا شویم.

 

 

تعریف فیلد و رکورد

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

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

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

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

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

 

آموزش sql serverآموزش مرتبط: آموزش sql server 2019

 

انواع رابطه در جدول داده ها

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

رابطه یک به یک

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

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

رابطه یک به یک

 

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

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

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

به طور مثال یک استاد دروس مربوط به رشته کامپیوتر را تدریس میکند، ولی هر درس در این رشته میتواند توسط اساتید دیگری نیز ارائه شود، مثلا یک استاد میتواند علوم کامپیوتر تدریس کند، این درحالی است که این درس میتواند توسط اساتید دیگری و در ساعات دیگری نیز تدریس شود.

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

 

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

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

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

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

مثلا تصور کنید استاد رضایی مدرس پایگاه داده است، مسلما اساتید دیگری نیز این درس را ارائه خواهند کرد، از طرفی استاد رضایی ممکن است دروس دیگری نیز ارائه کند، پس ما سه ستون مختلف داریم، ستون اول دروسی که ارائه میشود، ستون دوم اساتیدی که دروس را ارائه میدهند و ستون سوم نام هر استاد و دروسی که ارائه می دهد.

با کمی تصویر سازی ذهنی تصور کنید ستونی که نام اساتید و دروسی که ارائه میدهند به عنوان جدول واسطه قرار میدهیم. در این ستون تعدادی نام استاد به همراه دروس ارائه شده موجود است. هر کدام از این دروس را میتوان به ستون عناوین درسی و نام استاد را به ستون اساتید رابطه داد.

رابطه چند به چند در دیتابیس

 

نمودار یا دیاگرام EER و ارتباط آن با رابطه داده ها

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

ER مخفف کلمه Entity Relationship است و در حالت کلی مدلی برای بیان الگوی جدول های موجود در پایگاه داده ها و رابطه میان آنها است. این مفهوم در سال 1976 ارائه شد و مدل EER بعدها از توسعه این الگو به وجود آمد. این مدل سه مفهوم کلیدی یعنی موجودیت، رابطه و خصوصیات را به شکل الگوی گرافیکی نمایش میدهد. به این ترتیب باید گفت از این دیاگرام میتوان برای ایجاد و پیاده سازی جداول و نوع رابطه در آنها در پایگاه داده های مختلف استفاده کرد.

دیاگرام EER