پشتیبانی: 09131253620
ارتباط با ما
تلگرام: 09131253620

برجسته ترین ها
گروه های مقاله ها
HyperLink


پایگاه داده رابطه ای بخش سی و یکم تاریخ درج: ١٣٩۴/٠٩/٢۵

7-5-2 تجزيه 3NF 

شكل 7-13 الگوريتمي براي يافتن يك حافظ وابستگي، تجزيه بي نقص در 3NF  نشان مي دهد. مجموعه وابستگی های Fc که در الگوریتم مورد استفاده قرار گرفته است، یک پوشش استاندارد برای F است. توجه كنيد كه الگوريتم مجموعه الگوهاي Rj که j=1, 2, … i  است با شروع i=0 است و در اين مورد مجموعه خالي است بررسي می کند.
بیایید اين الگوريتم را برای مثال مان در بخش 7-3-3  بکار بگیریم که نشان داديم رابطه
Cust-banker_branch = (customer-id, employee-id, branch-name, type)

در 3NF است هرچند که در BCNF نیست. الگوريتم از وابستگي عملیاتی در F و همچنين در این مورد در Fc استفاده کرده است.
(customer_id, employee-id -> branch-name, type)
employee-id -> branch-name
و دو الگو در حلقه for  بررسي ميشود. از اولين وابستگي عملیاتی، الگوريتم R1 را تولید می کند الگوي (customer_id, employee-id , branch-name, type) . از دومين وابستگي عملیاتی، الگوريتم الگوي (employee-id , branch-name) را ایجاد می کند. اما سپس R2 ايجاد نمي شود. زیرا این R1 را پوشش می دهد و شرط if نادرست است.
الگوريتم اطمينان مي دهد كه تجزيه ، تجزيه اي بي نقص است توسط حداقل يك الگو كه شامل يك كليد كانديدا براي الگوي تجزيه شده است. تمرين 7-12  بعضي از تجزيه هاي بي نقص را ارایه مي كند.
اين الگوريتم، الگوريتم تلفيق 3NF نیز ناميده مي شود، چون این الگوریتم یک مجموعه از     وابستگی های عملیاتی را گرفته و هر بار یک الگو به جای تجزیه الگوی اولیه به آن می افزاید. حاصل منحصر بفرد نيست، وقتي مجموعه وابستگي هاي عملیاتی بتواند بيشتر از يك پوشش متداول داشته باشد و در بعضي موارد نتيجه الگوريتم به وابستگي هاي Fc بستگي دارد.
 
جالب است كه الگوريتمي كه براي تجزيه 3NF شرح داديم مي تواند در يك زمان به چند اسم نشان داده شود.

7-5-3 مقايسه BCNF و 3NF  
  دو شكل نرمال كه براي طرح الگوهاي پايگاه داده استفاده مي شود 3NF وBCNF مي باشد.   مزيت هايي براي 3NF وجود دارد كه مي دانيم هميشه امكان بدست آوردن طرح 3NF بدون از دست دادن حفاظت وابستگي مي باشد. با اين وجود مزيت هايي براي 3NF وجود دارد: ممكن است از مقادیر null براي ارائه روابط بين اطلاعات استفاده کنيم.
هدف ما از طراحي پايگاه داده با وابستگي هاي عملیاتی اين سه مورد مي باشد: 
1-BCNF 
2- بدون عيب losslessness
3- حفظ وابستگي Dependency preservation
هميشه امكان برقراربودن اين مورد وجود ندارد، ممكن است بينBCNF  و حفظ وابستگي با 3NF يكي را انتخاب كنيم.
هيچ ارزشي كه SQL براي وابستگي عملیاتی آماده كند وجود ندارد، به جز موارد خاصي كه سوپركليدها با محدوديت هاي كليد اصلی يا كليد یکتا اعلام مي شود(تمرین مهارت 7-9 را ببینید). متاسفانه امتحان كردن سيستم هاي پايگاه داده هزينه بر است. بنابراين حتي اگر تجزيه حافظ وابستگي داشتيم        مي توانستيم تنها وابستگي هاي عملیاتی كه در سمت چپ كليد بود را مورد تست قرار دهيم.
بنابراین، دراين مورد قادر نيستيم كه تجزيه BCNF رادر حفظ وابستگي انجام دهيم. این کار عموماً برای انتخاب BCNF و استفاده از تکنیک ها از قبیل دیدگاه خارجی برای کاهش هزینه تست کردن وابستگی عملیاتی استفاده می شود.

تگها: BCNF   پایگاه داده   پایگاه داده رابطه ای   تجزيه 3NF   تجزيه BCNF   جبر رابطه ای   حساب رابطه ای   نرمال سازی   
 

HyperLink

ارسال نظر در مورد این مطلب
نام :  
آدرس ایمیل :  
متن پیام :  
کد امنیتی :  
   
   
نظری برای نمایش وجود ندارد
 
این مطلب را به اشتراک بگذارید: