نرمال سازی بانک اطلاعاتی - نسخهی قابل چاپ |
نرمال سازی بانک اطلاعاتی - taro.misaki - 16 خرداد ۱۳۹۵ ۱۱:۱۴ ق.ظ
سلام دوستان لطفا در مورد حل این سوال راهنمایی کنید.خیلی ضروریه. |
RE: نرمال سازی بانک اطلاعاتی - yayarety - 16 خرداد ۱۳۹۵ ۰۶:۵۶ ب.ظ
(۱۶ خرداد ۱۳۹۵ ۱۱:۱۴ ق.ظ)taro.misaki نوشته شده توسط: سلام دوستان لطفا در مورد حل این سوال راهنمایی کنید.خیلی ضروریه. سلام دوست عزیز پاسخ در فایل زیر پیوست شده است ضمنا در صورت امکان بفرمایید این سوال برای کدوم دانشگاه و کدوم استاد بود به نظرم سوال قشنگی بود [attachment=20014] |
RE: نرمال سازی بانک اطلاعاتی - taro.misaki - 16 خرداد ۱۳۹۵ ۰۸:۰۲ ب.ظ
سلام دوست عزیز پاسخ در فایل زیر پیوست شده است ضمنا در صورت امکان بفرمایید این سوال برای کدوم دانشگاه و کدوم استاد بود به نظرم سوال قشنگی بود خیلی خیلی ممنونم که وقت گذاشتید و جواب دادید. دانشگاه ایلام.دکتر بهادری |
RE: نرمال سازی بانک اطلاعاتی - Iranian Wizard - 16 خرداد ۱۳۹۵ ۰۸:۲۶ ب.ظ
(۱۶ خرداد ۱۳۹۵ ۰۶:۵۶ ب.ظ)yayarety نوشته شده توسط: سلام دوست عزیز سلام.بنظرم جواب شما چند تا ایراد داره. ۱-شما گفتید که کلید اصلی این جدول، KLM هستش.در حالیکه در اینجا دو کلید کاندید IM و KLM وجود داره.و مشخص نیست که کدومش کلید اصلی هستش! ۲-در توضیح وابستگی معکوس گفتید که :یعنی وابستگی کلید یا بخشی از کلید به غیر کلید. در حالیکه وابستگی معکوس یعنی:وابستگی یک مولفه ی کلیدی به یک مولفه ی دیگر(ممکنه مولفه ی کلیدی یا غیر کلیدی باشد) ۳-با توجه به جدول چهارم که M رو کلید اصلیش قرار دادید،پس وابستگی تابعی [tex]M\: \longrightarrow\: JNOI[/tex] وجود داره.که اشتباهه.چون با توجه به جدول اولیه، M به تنهایی نمیتونه صفات دیگه ای رو بده. |
RE: نرمال سازی بانک اطلاعاتی - taro.misaki - 16 خرداد ۱۳۹۵ ۰۹:۲۱ ب.ظ
(۱۶ خرداد ۱۳۹۵ ۰۸:۲۶ ب.ظ)IranianWizard نوشته شده توسط:مرسی.میشه جوابی که(16 خرداد ۱۳۹۵ ۰۶:۵۶ ب.ظ)yayarety نوشته شده توسط: سلام دوست عزیز فکر میکنیددرسته رو بنویسید. |
RE: نرمال سازی بانک اطلاعاتی - Iranian Wizard - 16 خرداد ۱۳۹۵ ۰۹:۲۸ ب.ظ
(۱۶ خرداد ۱۳۹۵ ۱۱:۱۴ ق.ظ)taro.misaki نوشته شده توسط: میشه جوابی که اول باید ببینیم که این وابستگی ها در چه سطحی از نرمالسازی قرار دارند.بعدش بر اساس اینکه در چه سطحی هستند،در صورت امکان جدول رو به چند جدول کوچکتر تجزیه می کنیم ، به طوریکه تجزیه ی ما مطلوب باشه. با توجه به صورت سوال،در رابطه ی [tex]R(\: I,\: J,\: K,\: L,\: M,\: N,\: O,\: P,\: Q)[/tex] وابستگی های تابعی زیر وجود داره: [tex]I\: \longrightarrow\: KL[/tex]
کلیدهای کاندید این رابطه [tex]IM[/tex] و [tex]KLM[/tex] هستش.زیرا که صفت M در سمت راست هیچ وابستگی تابعی نیستش.پس حتما عضوی از کلید(های) کاندید هستش.ولی M به تنهایی قادر به تولید دیگر صفت ها نیست. و صفاتی از سمت چپ وابستگی های تابعی به همراه M ،کلید(های) کاندید ما خواهد بود.[tex]KLM\: \longrightarrow\: IJNOPQ[/tex] [tex]NO\: \longrightarrow\: Q[/tex] [tex]O\: \longrightarrow\: P[/tex] در اینجا [tex]IM[/tex] و [tex]KLM[/tex] کلیدهای کاندید رابطه هستند.(هر دو قادر به تولید دیگر صفت ها هستند) -------------------------------------------------------------------------------------------------------------------------------------------- حال میریم سراغ اینکه ببینیم که این رابطه در چه سطحی از نرمالسازی قرار داره. ۱- ۱NF است(زیرا که دارای حداقل یک کلید کاندید هستش و همه ی خصیصه های آن غیرقابل تجزیه و تک مقداری هستند(چون صورت سوال اشارهای چند مقداری بودن یا قابل تجزیه بودن صفات نکرده)) ۲- ۲NF است(زیرا که ۱NF است و فاقد وابستگی بخشی هستش) *وابستگی بخشی:یعنی وابستگی یک مولفهی غیر کلیدی به بخشی از کلیدکاندید. ۳- ولی ۳NF نیست.(رابطه ای ۳NF است که ۲NF و فاقد وابستگی انتقالی باشد) *وابستگی انتقالی:یعنی وابستگی یک مولفه ی غیر کلیدی به یک مولفهی غیر کلیدی دیگر. که در این رابطه،وابستگیهای تابعی [tex]NO\: \longrightarrow\: Q[/tex] و [tex]O\: \longrightarrow\: P[/tex] دارای وابستگی انتقالی هستند و بنابراین شرط ۳NF بودن رو نقض میکنند. بنابراین این رابطه در فرم ۲NF قرار داره. -------------------------------------------------------------------------------------------------------------------------------------------- جهت تبدیل ۲NF به ۳NF میتونیم از روش زیر استفاده کنیم: ۱- صفتهایی را که وابستگی انتقالی ایجاد کردهاند،با وابستههای آنها کنار هم قرار میدهیم. ۲-کلید(های) کاندید را با صفت های باقیمانده کنار هم قرار میدهیم. ۳-صفتهای کلیدی را به عنوان کلید خارجی در ۲ تکرار میکنیم. پس رابطهی [tex]R(\: I,\: J,\: K\: ,L,\: M,\: N,\: O,\: P\: ,\: Q)[/tex] به سه رابطهی: ۱- [tex]R_1(\: I,\: J,\: K\: ,L,\: M,\: N\: ,O\: )[/tex] با وابستگیهای تابعی [tex]I\: \longrightarrow\: KL[/tex] و [tex]KLM\: \longrightarrow\: IJNO[/tex] و کلید کاندید [tex]IM[/tex] و [tex]KLM[/tex] ۲- [tex]R_2\: (\: N,\: O,\: Q)[/tex] با وابستگی تابعی [tex]NO\: \longrightarrow\: Q[/tex] و کلید کاندید [tex]NO[/tex] ۳- [tex]R_3(\: O,\: P\: )[/tex] با وابستگی تابعی [tex]O\: \longrightarrow\: P[/tex] و کلید کاندید [tex]O[/tex] تجزیه میشه.که رابطه [tex]R_1[/tex] در فرم ۳NF و رابطهی [tex]R_2[/tex] در فرم BCNF و رابطهی [tex]R_3[/tex] در فرم ۵NF قرار دارد. و رابطهی [tex]R_1[/tex] به نظرم دیگه نباید بیشتر از این تجزیه بشه،چون اونوقت تجزیهی ما نامطلوب خواهد شد. بنظرم در نهایت به طور مطلوب میتونیم این رابطه رو به ۳ جدول بالا تجزیه کنیم.که اینجور شرایط ریسانن هم برقرار هستش.(تمام وابستگیهای تابعی موجود در R قابل استنتاج از مجموعه وابستگیهای تابعی [tex]R_1[/tex] و [tex]R_2[/tex] و [tex]R_3[/tex] خواهد بود و خصیهی مشترک بین [tex]R_1[/tex] و [tex]R_2[/tex] حداقل در یکی کلید کاندید است و خصیصهی مشترک بین [tex]R_1[/tex] و [tex]R_3[/tex] هم حداقل در یکی کلید کاندید هستش.پس این ۳ رابطه به هم قابل اتصال هستند و میتونند وابستگیهای اولیه رو تولید کنند.) |