روابط پایگاه داده ستون فقرات تمام پایگاه داده های رابطه ای است
رابطه بین دو جدول پایگاه داده زمانی ایجاد می شود که یک جدول یک کلید خارجی دارد که کلید اولیه جدول دیگری را نشان می دهد. این مفهوم اساسی در پایگاه داده اصطلاحی است.
چطور یک کلید خارجی برای برقراری ارتباط استفاده می کند
بیایید بررسی اصول اولیه کلید های خارجی و خارجی را بررسی کنیم. یک کلید اولیه منحصر به فرد هر رکورد در جدول را مشخص می کند. این یک نوع کلید نامزد است که معمولا اولین ستون در یک جدول است و می تواند بطور خودکار توسط پایگاه داده تولید شود تا اطمینان حاصل شود که آن منحصر به فرد است.
یک کلید خارجی کلید دیگری است (کلید اصلی نیست) که برای پیوند یک رکورد به داده در جدول دیگری استفاده می شود.
به عنوان مثال، این دو جدول را در نظر بگیرید که معلوم است کدام معلم درس می دهد.
در اینجا، کلید اصلی کلاس درس Course_ID است. کلید خارجی آن Teacher_ID است:
| Course_ID | نام دوره | معلم_ID |
|---|---|---|
| Course_001 | زیست شناسی | Teacher_001 |
| Course_002 | ریاضی | Teacher_001 |
| Course_003 | انگلیسی | Teacher_003 |
شما می توانید ببینید که کلید خارجی در دوره ها یک کلید اصلی در معلمان است.
| معلم_ID | نام معلم |
|---|---|
| Teacher_001 | کارمن |
| Teacher_002 | ورونیکا |
| Teacher_003 | جورج |
ما می توانیم بگوییم که کلید خارجی Teacher_ID کمک کرده است تا ارتباط بین دوره های آموزشی و جداول معلمان ایجاد کند.
انواع ارتباطات پایگاه داده
با استفاده از کلید های خارجی یا سایر کلید های نامزد می توانید سه نوع روابط بین جداول را اجرا کنید:
یک به یک : این نوع رابطه فقط یک رکورد را در هر طرف از رابطه می دهد.
کلید اصلی مربوط به تنها یک رکورد یا نه - در جدول دیگری است. به عنوان مثال، در ازدواج، هر همسر تنها یک همسر دیگر دارد. این نوع رابطه را می توان در یک جدول تکمیل کرد و بنابراین از یک کلید خارجی استفاده نمی کند.
یک به چند : ارتباط یک به یک اجازه می دهد یک رکورد تنها در یک جدول به پرونده های چندگانه در جدول دیگری مرتبط باشد.
یک کسب و کار را با یک پایگاه داده که دارای جداول مشتریان و سفارشات است را در نظر بگیرید.
یک مشتری تنها می تواند چندین سفارش را خریداری کند، اما یک سفارش واحد را نمی توان به چندین مشتری متصل کرد. بنابراین جدول سفارشات حاوی یک کلید خارجی است که با کلید اولیه جدول مشتری مطابقت دارد، در صورتی که جدول مشتری ها هیچ کلید خارجی را به جدول سفارشات نشان نمی دهد.
بسیاری از افراد : این یک رابطه پیچیده است که در آن بسیاری از رکوردها در جدول می توانند به بسیاری از رکوردها در جدول دیگری پیوند دهند. به عنوان مثال، کسب و کار ما احتمالا نیازی به جداول مشتریان و دستورات نیست بلکه احتمالا به یک جدول محصولات نیاز دارد.
باز هم، رابطه بین مشتریان و جدول سفارشها، یک به تعداد است، اما رابطه بین جدول سفارشات و محصولات را در نظر بگیرید. سفارش می تواند شامل چندین محصول باشد و یک محصول را می توان به سفارش های متعدد پیوند داد: چندین مشتری ممکن است یک سفارش را ارائه دهند که شامل برخی از محصولات مشابه باشد. این نوع ارتباط نیاز به حداقل سه جدول دارد.
ارتباطات پایگاه داده مهم است؟
ایجاد رابطه مناسب بین جداول پایگاه داده کمک می کند تا اطمینان از اطمینان از داده ها، کمک به نرمال سازی پایگاه داده. به عنوان مثال، اگر جداول را از طریق یک کلید خارجی پیوند ندهیم، به جای اینکه فقط داده ها را در جداول دوره ها و معلمان ترکیب کنیم، مانند:
| معلم_ID | نام معلم | دوره |
|---|---|---|
| Teacher_001 | کارمن | زیست شناسی، ریاضی |
| Teacher_002 | ورونیکا | ریاضی |
| Teacher_003 | جورج | انگلیسی |
این طراحی انعطاف پذیر است و نخستین اصل عادی سازی پایگاه داده، فرم اول Normal (1NF) را نقض می کند که بیان می کند که هر سلول جدول باید یک قطعه داده جداگانه داشته باشد.
یا شاید ما تصمیم به سادگی اضافه کردن یک رکورد دوم برای کارمن، به منظور اجرای 1NF:
| معلم_ID | نام معلم | دوره |
|---|---|---|
| Teacher_001 | کارمن | زیست شناسی |
| Teacher_001 | کارمن | ریاضی |
| Teacher_002 | ورونیکا | ریاضی |
| Teacher_003 | جورج | انگلیسی |
این هنوز یک طراحی ضعیف است، معرفی تکراری غیر ضروری و آنالایزرهای ورود اطلاعات نامیده می شود که فقط به این معنی است که می تواند به داده های متناقض کمک کند.
به عنوان مثال، اگر یک معلم سوابق چندگانه داشته باشد، اگر داده های خاصی را ویرایش کند، اما فردی که در حال ویرایش داده ها نیست، متوجه نمی شود که پرونده های چندگانه وجود دارد؟ جدول سپس داده های مختلفی را برای یک فرد در اختیار شما می گذارد، بدون هیچ روش مشخصی برای شناسایی آن یا جلوگیری از آن.
شکستن این جدول به دو جدول، معلمان و دوره ها (همانطور که در بالا بیان شده است)، ارتباط مناسب بین داده ها ایجاد می کند و بنابراین اطمینان حاصل می کند که اطمینان از صحت و صحت داده ها.