تالار گفتمان مانشت

نسخه‌ی کامل: پیاده سازی رابطه ی is-a
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
4نوع رابطه تخصیص داریم
کامل هم پوشا
کامل مجزا
ناقص هم پوشا
ناقص مجزا
اگه رابطه ی تعمیمون هرکدوم از این موردها باشه باید برای پیاده سازیش چه کنیم؟
منظورم اینه فرض کنید یه سوپر کلاس و دوتا زیرکلاس داریم
3مدل میشه اینها رو پیاده سازی کرد
1.هر 3تایی بشن 1رابطه
2.هر کدوم ی رابطه مجزا شن ک کلید اصلی از سوپر کلاس بگیرن
3.خصوصیات سوپرکلاس در زیرکلاس ها کپی شن و دوتا جدول داشته باشیم

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

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

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

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

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

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

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

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

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

التماس دعا
(18 بهمن 1392 03:39 ب.ظ)afshin.dam نوشته شده توسط: [ -> ]سلام

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

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

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

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

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

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

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

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

التماس دعا
ممنونم اما این حالات بر اساس نوع تخصیص شکل میگیرند
مثلا اگه نوع تخصیص کامل و مجزا باشه حالت اول شما رخ میده ک نمونه ی این سوال پارسال اومده بود
میدونم اگه هم پوشا باشه میشه حالت دومی اما ناقص یا کامل؟
ولی جزییات دیگه اش رو نمیدونم اگه کسی میدونه کمک کنه
اگه منبعی سراغ دارید معرفی کنید
(18 بهمن 1392 04:04 ب.ظ)atenaa نوشته شده توسط: [ -> ]
(18 بهمن 1392 03:39 ب.ظ)afshin.dam نوشته شده توسط: [ -> ]سلام

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

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

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

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

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

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

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

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

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

اگه منبع میخواین باید کتاب پایگاه داده المصری با عنوان و ویرایش Fundamentals of Database Systems,6thEdition گیر بیارین و از اونجا فکر کنم فصل 7 یا 8 بود ... دقیق یادم نیست ... این جور چیزا رو اونجا المصری گفته ...
اگه ارتباط ناقص باشه در هر دو حالت هم پوشا و مجزا باید کلید اصلی super class در subclass تکرار بشه
اما اگه ارتباط کامل باشه وهم پوشا همه رو توی یه جدول می نویسیم
و اگه ارتباط کامل باشه و مجزا super class را در نظر نمیگیریم
دوستان اگه در این مورد نظری دارند ذکر کنند؟Undecided

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