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

روابط پایگاه داده ستون فقرات تمام پایگاه داده های رابطه ای است

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

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

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

یک کلید خارجی کلید دیگری است (کلید اصلی نیست) که برای پیوند یک رکورد به داده در جدول دیگری استفاده می شود.

به عنوان مثال، این دو جدول را در نظر بگیرید که معلوم است کدام معلم درس می دهد.

در اینجا، کلید اصلی کلاس درس 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 جورج انگلیسی

این هنوز یک طراحی ضعیف است، معرفی تکراری غیر ضروری و آنالایزرهای ورود اطلاعات نامیده می شود که فقط به این معنی است که می تواند به داده های متناقض کمک کند.

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

شکستن این جدول به دو جدول، معلمان و دوره ها (همانطور که در بالا بیان شده است)، ارتباط مناسب بین داده ها ایجاد می کند و بنابراین اطمینان حاصل می کند که اطمینان از صحت و صحت داده ها.