relationship در دیتابیس و مدل Cardinality و زیر شاخه ها

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

ما در این مقاله فرض کردیم شما:

  • با دیتابیس و دستورات دیتابیس آشنا هستد
  • تا حالا کار با دیتابیس رو انجام داده اید
  • از ماهیت جدول ها در دیتابیس اطلاع دارید

در غیر این صورت این مقاله برای شما ممکن است کمی مشکل ایجاد کند.

relationship چیست؟

وقتی صحبت از relation میشه همه یاد فیس بوک هاشون میوفتن به این فکر می کنن با چند نفر ریلیشن زدن خوب این که خیلی خوبه حداقلش اینه میدونین معنی ریلیشن چی هستش 😛

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

 

مدل Cardinality چیست؟

کاردینالیتی یعنی دارای اصل و اساس چرا که اینو دیتا مدل ( data model ) وابسته به اصل و اساس جدول ها هستش در واقع این روش با احترام به اصل داده ها و رکورد ها در دیتابیس ارتباط بین آنها رو مشخص می کنیم که خود دارای دسته های مختلفی می باشد میشود گفت که شیوه آن به این شکل است که جدول های مشخص شده را به یک یا چند جدول دیگر وابسته می سازد تا در کار با دیتابیس سرعت و قدرت بیشتری داشته باشیم و این وابسته کردن منظور این نیست که این کار اتوماتیک انجام میشود خیر این قانون وضع میشود و شما باید مجری آن باشید و اضول آن پیروی کنید و اما انواع متد های کاردینالیتی:

  • یک به چند
  • چند به چند

ساده ترین نوع ارتباط اساسی در واقع یک به چند است که در اصطلاح به آن one-to-many گفته میشود که معمولا از نوع دوم آن کمتر استفاده میشود و شیوه کار آن به این صورت است که شما یک رکورد دارید و نیاز دارید که چند رکورد را به آن وابسته کنید که در ادامه مثال خواهیم زد

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

مثال: ما فرض می کنیم ۳ مولفه در زیر داریم که هر کدام دارای رکورد چند رکورد هستند:

  • مالک یا صاحب به عنوان مثال رکورد ها ( صادق، مبین، حمید و …)
  • اتومبیل به عنوان ( بنز، فراری، فورد و …)
  • رنگ اتومبیل ( قرمز، نقره ای، سفید و…)

خب در اینجا ما مثال رو بررسی می کنیم در حالت های مختلف:

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

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

با تصویر زیر گویا این می باشد:

cardinality

 

‌A1Gard

اول از همه کوچک ترین عضو مجموعه 4xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق

More Posts

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *