تالار گفتمان مانشت
پیاده سازی رابطه ی is-a - نسخه‌ی قابل چاپ

پیاده سازی رابطه ی is-a - atenaa - 18 بهمن ۱۳۹۲ ۰۳:۰۵ ب.ظ

سلام
۴نوع رابطه تخصیص داریم
کامل هم پوشا
کامل مجزا
ناقص هم پوشا
ناقص مجزا
اگه رابطه ی تعمیمون هرکدوم از این موردها باشه باید برای پیاده سازیش چه کنیم؟
منظورم اینه فرض کنید یه سوپر کلاس و دوتا زیرکلاس داریم
۳مدل میشه اینها رو پیاده سازی کرد
۱/هر ۳تایی بشن ۱رابطه
۲/هر کدوم ی رابطه مجزا شن ک کلید اصلی از سوپر کلاس بگیرن
۳/خصوصیات سوپرکلاس در زیرکلاس ها کپی شن و دوتا جدول داشته باشیم

حالا برمبنای چه شرایطی هرکدوم از این ۳تا گزینه ها رو انتخاب میکنیم ربطی به اینکه توع رابطه ی تخصیصمون چی باشه داره؟
یکی کمک کنه ناجور گیر کردمHuh

RE: پیاده سازی رابطه ی is-a - javad94 - 18 بهمن ۱۳۹۲ ۰۳:۳۹ ب.ظ

سلام

سعی می کنم به طور کلی و خلاصه بگم تا بهتر متوجه بشین.

ما به سه روش می تونیم رابطه ی is-a رو پیاده سازی کنیم :

رابطه ی is-a به همین راحتی در پایگاه داده رابطه ای پیاده سازی نمی شود و باید یه حالتی و شرایطی رو برقرار کنیم تا بتونیم این رابطه رو در مدل رابطه ای پیاده سازی کنیم.

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

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

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

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

امیدوارم که به دردتون بخوره .

التماس دعا

RE: پیاده سازی رابطه ی is-a - atenaa - 18 بهمن ۱۳۹۲ ۰۴:۰۴ ب.ظ

(۱۸ بهمن ۱۳۹۲ ۰۳:۳۹ ب.ظ)afshin.dam نوشته شده توسط:  سلام

سعی می کنم به طور کلی و خلاصه بگم تا بهتر متوجه بشین.

ما به سه روش می تونیم رابطه ی is-a رو پیاده سازی کنیم :

رابطه ی is-a به همین راحتی در پایگاه داده رابطه ای پیاده سازی نمی شود و باید یه حالتی و شرایطی رو برقرار کنیم تا بتونیم این رابطه رو در مدل رابطه ای پیاده سازی کنیم.

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

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

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

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

امیدوارم که به دردتون بخوره .

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

RE: پیاده سازی رابطه ی is-a - javad94 - 18 بهمن ۱۳۹۲ ۰۶:۵۹ ب.ظ

(۱۸ بهمن ۱۳۹۲ ۰۴:۰۴ ب.ظ)atenaa نوشته شده توسط:  
(18 بهمن ۱۳۹۲ ۰۳:۳۹ ب.ظ)afshin.dam نوشته شده توسط:  سلام

سعی می کنم به طور کلی و خلاصه بگم تا بهتر متوجه بشین.

ما به سه روش می تونیم رابطه ی is-a رو پیاده سازی کنیم :

رابطه ی is-a به همین راحتی در پایگاه داده رابطه ای پیاده سازی نمی شود و باید یه حالتی و شرایطی رو برقرار کنیم تا بتونیم این رابطه رو در مدل رابطه ای پیاده سازی کنیم.

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

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

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

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

امیدوارم که به دردتون بخوره .

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

اگه منبع میخواین باید کتاب پایگاه داده المصری با عنوان و ویرایش Fundamentals of Database Systems,6thEdition گیر بیارین و از اونجا فکر کنم فصل ۷ یا ۸ بود ... دقیق یادم نیست ... این جور چیزا رو اونجا المصری گفته ...

RE: پیاده سازی رابطه ی is-a - sonia11 - 20 بهمن ۱۳۹۲ ۱۰:۵۵ ق.ظ

اگه ارتباط ناقص باشه در هر دو حالت هم پوشا و مجزا باید کلید اصلی super class در subclass تکرار بشه
اما اگه ارتباط کامل باشه وهم پوشا همه رو توی یه جدول می نویسیم
و اگه ارتباط کامل باشه و مجزا super class را در نظر نمیگیریم
دوستان اگه در این مورد نظری دارند ذکر کنند؟Undecided

RE: پیاده سازی رابطه ی is-a - calm boy - 20 بهمن ۱۳۹۲ ۱۲:۳۷ ب.ظ


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.