اصطلاحات رابطه ای و رابطه پایگاه داده نحوه اتصال داده ها در جداول را توصیف می کند. یک پایگاه داده رابطه ای شامل مجموعه ای از دو یا چند جدول است که توسط یک کلید خاص به هم مرتبط شده اند. یک پایگاه داده رابطه ای با پایگاه داده های بدون ساختار که در طرح های کلان داده رایج است، متفاوت است. پایگاه دادههای رابطهای به قوانین سختگیرانهای در مورد نحوه تعریف جداول و اینکه چه چیزی یک رابطه معتبر بین جداول را تشکیل میدهد، نیاز دارند.
انواع روابط پایگاه داده
روابط به شما امکان می دهد ارتباطات بین جداول پایگاه داده را به روش های قدرتمندی توصیف کنید. سپس میتوان از این روابط برای انجام پرسوجوهای قدرتمند جداول متقابل، به نام JOIN استفاده کرد.
سه نوع رابطه پایگاه داده وجود دارد که هر کدام با توجه به تعداد ردیف های جدول درگیر در رابطه نامگذاری شده اند. هر یک از این سه نوع رابطه بین دو جدول وجود دارد.
- روابط یک به یک زمانی رخ می دهد که هر ورودی در جدول اول فقط یک همتا در جدول دوم داشته باشد. روابط یک به یک به ندرت استفاده می شود زیرا اغلب کارآمدتر است که همه اطلاعات را در یک جدول قرار دهیم. برخی از طراحان پایگاه داده با ایجاد جداولی که حاوی زیرمجموعه ای از داده های جدول دیگری هستند از این رابطه بهره می برند.
- روابط یک به چند رایج ترین نوع رابطه پایگاه داده است. آنها زمانی رخ می دهند که هر رکورد در جدول A با یک یا چند رکورد در جدول B مطابقت داشته باشد، اما هر رکورد در جدول B تنها با یک رکورد در جدول A مطابقت دارد. به عنوان مثال، رابطه بین جدول معلمان و جدول دانش آموزان در یک مدرسه ابتدایی. پایگاه داده احتمالاً یک رابطه یک به چند خواهد بود زیرا هر دانش آموز فقط یک معلم دارد، اما هر معلم چندین دانش آموز دارد.این طراحی یک به چند به حذف دادههای تکراری کمک میکند.
- روابط چند به چند زمانی رخ می دهد که هر رکورد در جدول A با یک یا چند رکورد در جدول B و هر رکورد در جدول B با یک یا چند رکورد مطابقت داشته باشد. در جدول A. برای مثال، رابطه بین جدول معلمان و جدول دوره ها احتمالاً چند به چند است زیرا هر معلم ممکن است بیش از یک درس را آموزش دهد و هر دوره ممکن است بیش از یک مربی داشته باشد.
خط پایین
روابط خودارجاعی زمانی رخ می دهد که فقط یک جدول درگیر باشد. یک مثال رایج جدول کارکنان است که حاوی اطلاعاتی درباره سرپرست هر کارمند است. هر سرپرست نیز یک کارمند است و یک سرپرست دارد. در این مورد، یک رابطه خودارجاعی یک به چند وجود دارد، زیرا هر کارمند یک سرپرست دارد، اما هر سرپرست ممکن است بیش از یک کارمند داشته باشد.
ایجاد روابط با کلیدهای خارجی
شما با تعیین یک کلید خارجی روابط بین جداول ایجاد می کنید. این کلید به پایگاه داده رابطه ای می گوید که جداول چگونه به هم مرتبط هستند. در بسیاری از موارد، یک ستون در جدول A حاوی کلیدهای اصلی است که از جدول B به آنها ارجاع داده شده است.
مثال جدول معلمان و دانش آموزان را در نظر بگیرید. جدول معلمان شامل شناسه، نام و ستون دوره است:
InstructorID | نام_معلم | دوره |
001 | John Doe | انگلیسی |
002 | Jane Schmoe | ریاضی |
جدول Students شامل شناسه، نام و ستون کلید خارجی است:
StudentID | نام_دانشجو | Teacher_FK |
0200 | Lowell Smith | 001 |
0201 | برایان شورت | 001 |
0202 | کورکی مندز | 002 |
0203 | مونیکا جونز | 001 |
ستون Teacher_FK در جدول Students به مقدار کلید اصلی یک مربی در جدول Teachers اشاره دارد. اغلب، طراحان پایگاه داده از PK یا FK در نام ستون برای شناسایی کلید اصلی یا ستون کلید خارجی استفاده می کنند.
این دو جدول یک رابطه یک به چند بین معلمان و دانش آموزان را نشان می دهد.
روابط و یکپارچگی ارجاعی
پس از افزودن یک کلید خارجی به جدول، یک محدودیت پایگاه داده ایجاد کنید که یکپارچگی ارجاعی را بین دو جدول اعمال می کند. این مرحله تضمین می کند که روابط بین جداول ثابت می ماند. هنگامی که یک جدول دارای یک کلید خارجی به جدول دیگر است، یکپارچگی ارجاعی مستلزم آن است که هر مقدار کلید خارجی در جدول B باید به رکورد موجود در جدول A مراجعه کند.
پیاده سازی روابط
بسته به پایگاه داده خود، روابط بین جداول را به روش های مختلف پیاده سازی خواهید کرد. مایکروسافت اکسس جادوگری را ارائه می دهد که به شما امکان می دهد جداول را پیوند دهید و همچنین یکپارچگی ارجاعی را اعمال کنید.
اگر مستقیماً SQL می نویسید، ابتدا جدول Teachers را ایجاد کنید و یک ستون ID را به عنوان کلید اصلی اعلام کنید:
CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY،
Teacher_Name VARCHAR(100)،
دوره VARCHAR(100));
هنگامی که جدول Students را ایجاد می کنید، ستون Teacher_FK را به عنوان یک کلید خارجی اعلام می کنید که به ستون InstructorID در جدول معلمان ارجاع می دهد:
CREATE TABLE Students (StudentID INT AUTO_INCREMENT PRIMARY KEY،
Student_Name VARCHAR(100)، Teacher_FK INT،
FOREIGN RE_FKEYT))؛
استفاده از روابط برای پیوستن به جداول
پس از ایجاد یک یا چند رابطه در پایگاه داده خود، با استفاده از پرس و جوهای SQL JOIN برای ترکیب اطلاعات از چندین جدول، از قدرت آنها استفاده کنید. رایج ترین نوع اتصال SQL INNER JOIN است که یک اتصال ساده است. این نوع پیوستن، تمام رکوردهایی را که شرایط اتصال را از یک یا چند جدول برآورده میکنند، برمیگرداند.
برای مثال، این شرط JOIN، Student_Name، Teacher_Name و Course را برمی گرداند، که در آن کلید خارجی در جدول Students با کلید اصلی در جدول Teachers مطابقت دارد:
SELECT Students. Student_Name, Teachers. Teacher_Name, Teachers. Course
FROM Students
INNER JOIN TeachersON Students. Teacher_FK=TeachersID;
این عبارت جدولی شبیه به این تولید می کند:
نام دانشجو | نام_معلم | دوره |
Lowell Smith | John Doe | انگلیسی |
برایان شورت | John Doe | انگلیسی |
کورکی مندز | Jane Schmoe | ریاضی |
مونیکا جونز | John Doe | انگلیسی |