توجه: در صورت مشاهده‌ی تخلف برای کسب امتیاز بیشتر (مانند ساخت چندین حساب کاربری برای رای دادن، استفاده از دیدگاه‌های بی‌اهمیت مانند تشکر و سلام و ... برای افزایش امتیاز و مواردی از این دست) کاربر مورد نظر در آن ماه از سیستم پاداش حذف می‌شود.
این وب‌سایت زیرمجموعه‌ای از وب‌سایت‌های پرسش و پاسخ فارسی است. در این وب‌سایت پرسش‌های مربوط به اصول طراحی پایگاه داده‌ها و نرم‌افزارهای پایگاه داده مانند MySQL و MS SQL Server پاسخ داده می‌شود.
با شرکت در این مجموعه توسط پاسخ به پرسش‌های دیگران یا طرح پرسش‌های خود، یا تصحیح مطالب دیگران توسط دیدگاه‌ها، به گسترش فرهنگ همکاری‌های آن‌لاین کمک نمایید.
همچنین با شرکت در بحث‌ها و کسب امتیاز از امکانات و جوایزی که به مرور به کاربران برتر اهدا می‌شود، برخوردار گردید.
پرسش و پاسخ فارسی

تبدیل ER به RDM برای دو موجودیت (رابطه ضروری، غیرضروری و ۱ به ۱)

0 امتیاز
189 نمایش

یک رابطه‌ی ۱ به ۱ با دو موجودیت که یک طرفش ضروری و یک طرف دیگه‌ش غیرضروری هست رو از ER چطور می‌شه به RDM تبدیل کرد؟

پرسیده شده یکشنبه ۲۵ خرداد ۱۳۹۳ توسط programmer (106 امتیاز)
ویرایش شده دوشنبه ۲۶ خرداد ۱۳۹۳ توسط programmer

1 پاسخ

0 امتیاز

نمودار بالا را در نظر می‌گیریم

سه حالت در نظر می‌گیریم

حالت اول) حالتی است که چه یک طرف ضروری باشد چه دو طرف غیرضروری باشند قابل اجراست. در این حالت سه رابطه داریم

Motor ( motor# , capacity )

Car ( car# , model )

CarMotor ( car# , motor# )

مشکل این حالت این است که ضروری بودن موجودیت Car را باید خودمان بررسی کنیم. یعنی باید کنترل کنیم که همه‌ی نمونه‌های Car در یک رابطه‌ی مالکیت با یک نمونه‌ی Motor باشند.

حالت دوم) در این حالت از دو رابطه استفاده می‌کنیم.

Motor ( motor# , capacity )

Car ( car# , model , motor# )

در این حالت اگر سیستم اجازه‌ی Null بودن کلید خارجی را ندهد، می‌توانیم مطمئن باشیم که هر Car در یک رابطه‌ی مالکیت بودن با Motor شرکت می‌کند. چون car# کلید اصلی و یکتاست بنابراین دقیقاً هر Car یک Motor خواهد داشد.

در صورتی که سیستم اجازه‌ی Null بودن کلید خارجی را بدهد، باید یکی بودن شرکت Car را بررسی کنیم

حالت سوم) در این حالت تنها از یک رابطه استفاده می‌کنیم.

Motor ( motor# , capacity , car# , model )

البته این تنها در صورتی است که سیستم اجازه‌ی Null بودن کلید خارجی را بدهد. تا بتوانیم Motor بدون Car داشته باشیم. در این حالت باید car# را هم در رابطه به صورت یکتا تعریف کنیم.

پاسخ داده شده پنجشنبه ۲۹ خرداد ۱۳۹۳ توسط prodo (114 امتیاز)
...