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

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


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

7-1-2 طراحی جایگزین: الگوهاي كوچكتر 

   به طريقي، دوباره فرض كنيد كه با الگوي bor-loan شروع مي كنيم. چطور نياز به تكرار اطلاعات را تشخيص خواهيم داد و همچنين بايد به دو الگوي borrower  و loan  تقسيم شود ؟ وقتي هيچ الگوي borrower  و loan  نداريم، با كمبود كليد اصلي اطلاعات كه براي شرح مشكل bar-loan استفاده      مي كرديم مواجه مي شويم. با مشاهده محتويات رابطه حقيقي در الگوي bar-loan ، مي توانيم نتيجه تكرار اطلاعات موجود در ليست مقدار loan  براي هر borrower كه مرتبط با يك وام مي باشد را ثبت كنيم . به هر حال اين يك فرآیند نا مطمئن است. در جهان واقعي پايگاه داده مقدار زيادي الگو و حتي مقدار بيشتري جايگزين دارد. مقدار چندگانه مي تواند ميليون ها يا بيشتر از ميليون باشد. پي بردن به تكرار با ارزش است. حتي مشكل اساسي تري با اين رويكرد وجود دارد. اجازه نمي دهد تعيين كنيم آيا كمبود تكرار در يك مورد خاص فقط يك خوش شانسي است يا اينكه ابزاري براي يك قاعده كلي است. در مثال مان، چطور   مي دانيم كه بانك مان در هر وام (تشخيص توسط شماره وام) بايد تنها يك مقدار داشته باشد؟ آيا اين حقيقت دارد كه شماره وام 100 در سه زمان با مقدار يكسان فقط در يك انطباق ظاهر شود؟ نمي توانيم به اين سوالات بدون برگشت به خود عمل و فهم قوانين آن پاسخ دهيم. خصوصاً لازم است معلوم كنيم بانك براي هر وام (توسط شماره وام تعيين شده) بايد فقط يك مقدار را مقرر كند. 
    درمورد bor-loan پردازش ما يك طرحE-R   موفقيت آميز را ايجاد كند كه از ايجاد اين الگو اجتناب مي كند. به هر حال اين موقعيتي اتفاقي است كه هميشه اتفاق نمي افتد. بنا براين ما نياز به تصويب طراح پايگاه داده به منظور تعيين قوانينی مانند «هر مقدار مشخص برای loan-number مربوط است به حداقل یک amount» حتي در صورتيكه loan-number كليد اصلي براي الگو در سوال  نباشد. از طرف ديگر نياز به نوشتن قانوني داريم كه مي گويد « اگر يك الگوي (loan-number,amount) وجود دارد پس loan-number  مي تواند به عنوان كليد اصلي بكار  رود» اين قانون به عنوان وابستگي عملیاتی تعيين شده است0
Loan-number ->  amount
با ارائه چنين قانوني، اكنون اطلاعات كافي براي تشخيص مشكل الگوي bor-loan داريم.  بخاطر اينكه شماره وام نمي تواند كليد اصلي براي bor-loan باشد (زيرا يك وام ممكن است چندين چند گانه مورد نياز در رابطه با الگوي bor-loan داشته باشد)، مقدار loan  ممكن است تكرار شود.
چنين مشاهدات و قوانيني (به خصوص در وابستگي هاي عملیاتی) و نتایج آنها به طراح پايگاه داده این امکان را می دهد که تشخيص دهد در چه موقعیتی يك الگو باید به دو يا چندين الگو تقسيم يا تجزيه شود. دیدن تجزيه bor-loan به الگوهاي borrower  و loan در طرح اصلي  مشکل نیست.كشف درست تجزيه براي الگو هايي با شمار زيادي از جايگزين ها و چندين وابستگي عملیاتی سخت تر است. در اين باره بايد به روش نرمال سازی متكي باشيم كه بعداً در اين فصل آن را بسط مي دهيم. تمام تجزيه هاي الگو ها مفيد هستند. در نهايت  الگو هايي كه مركب از يك  جايگزين هستند را بررسي مي كنيم. مورد حد نهایی را در نظر بگیرید که هر نوع بتواند بیان شود. اكنون كمترين حد را كه از تجزيه الگوي كارمند انتخاب كرديم را مد نظر قرار دهید:
Employee1=(employee-id , employee-name)
Employee2= (employee-name , telephone-number , start- date )   

عيب اين تجزيه در اين است كه این احتمال وجود دارد که اين عمل دو كارمند با اسم يكسان داشته باشد. این موضوع در عمل بعيد نیست، در بسياري از فرهنگ ها بسیاری از اسامی عامه پسند وجود دارد، و همچنين ممكن است نام والدين بروي فرزندان گذاشته شده باشد. البته هر فرد شماره شناسايي منحصر به فردي دارد، بطوریكه اين شماره شناسايي كارمند مي تواند كليد اصلي مناسبي باشد. به عنوان مثال دوكارمند را در نظر  مي گيريم كه هر دو نامشان كيم   است، چندگانه هايي را كه در رابطه با الگوي كارمند در يك طرح اصلي وجود دارد عبارتند از: 
(123-45-6789 , Kim , 882-0000 , 1984-03-29)
(987-65-4321 , Kim , 869-9999 , 1981-01-16)

    شكل 7-4 اين چندگانه ها را نشان ميدهد، چندگانه های حاصل با استفاده از الگوهايي است كه از تجزيه نتيجه شده اند، و نتيجه اينكه اگر تلاش كنيم چند گانه هاي اصلي را ایجاد کنیم از الحاق طبیعی استفاده می کنیم. همانطور که در اين شكل مي بينم، دو چند گانه اصلي در نتيجه با دو چند گانه جديد ظاهر مي شوند 
شكل 7-4 ازبین رفتن اطلاعات در یک تجزیه نامناسب
شكل 7-4 ازبین رفتن اطلاعات در یک تجزیه نامناسب

كه به طور نادرست مقادیر داده تركيبي متعلق به دو كارمند به نام Kim است. اگر چه ما چند گانه هاي بيشتري داريم، اما در واقع اطلاعات ناقصی را در اين موارد داریم. مي توانيم شماره تلفن و تاریخ شروع مربوط به هر کس که نامش Kim است را  نشان دهيم، اما قادر به تشخيص هر یک از آنها نيستيم. بنابراين تجزيه ما قادر نيست حقايق مهم را در مورد کار بانك نشان دهد. بديهي است كه ما از چنين تجزيه هايي اجتناب مي كنيم. بايد به چنين تجزيه هايي به عنوان تجزيه هاي تلف کننده  اشاره كنيم و بر عكس آنهايي كه تجزيه هاي بدون اتلاف هستند.

7-2 محدوده های غیر قابل تجزیه و اولين شكل نرمال
    مدلE-R   این امکان را بوجود می آورد که گروه های موجودیت و گروه های رابطه، صفاتی با چند درجه زير ساخت داشته باشند. خصوصاً صفات چند مقداری مانند dependent-name در شكل 6-25 و صفات تركيبي (مانند صفت address با صفات تشكيل دهنده آن كه street و city است) را مجاز در نظر می گرفت. زمانيكه جدول هايي از طرح هاي E-R  را كه شامل اين نوع صفات است ايجاد مي كنيم، اين زير ساخت ها را حذف مي نماییم. براي صفات تركيبي، اجازه مي دهيم هرعنصر تشكيل دهنده به عنوان یک صفت در جای مربوط به خودش قرار گيرد. براي صفات چند مقداری براي هر مورد درمجموعه چند مقداری يك چندگانه ایجاد مي كنيم.
در مدل رابطه اي، اين طرح كه صفات هيچ زيرساختي ندارند را مشخص مي كنيم. یک محدوده اتمي است اگر عنصر هاي محدوده به عنوان واحدهاي مجزا محسوب شوند. الگوي رابطه  R  اولين شكل نرمال   (1 NF) است چنانچه دامنه های همه صفات  R اتمي باشند.
یک مجموعه از نام ها، مثالي از یک مقدار غير اتمي است. مثلا اگر الگوي رابطه employee شامل صفتی به نام children باشد بطوریكه عناصر قلمروشان  مجموعه اي از نام هاست، اين الگو در قالب اولين شكل نرمال قرار ندارد.
صفات تركيبي، مانند address یا صفات تشكيل دهنده آن كه street  و city هستند جز قلمرو هاي غير اتمي محسوب مي شوند.
اعداد صحيح را اتمي درنظرمي گيريم، اين مجموعه اعداد صحيح يك قلمرو اتمي است، مجموعه همه مجموعه هاي اعداد صحيح غير اتمي است. تفاوت در اين است كه ما به طور نرمال اعداد صحيح  را جزء بخش هاي فرعي بررسي مي كنيم ، اما مجمو عه هاي اعداد صحيح را داراي بخشهاي فرعي به حساب        مي آوريم به عبارت ديگر اعداد صحيح اين مجموعه را  تكميل  مي كنند. اما اينكه خود قلمرو چه چيزي است مهم نيست بلكه اينكه چطور از عناصر قلمرو در پايگاه داده مان استفاده مي كنيم مهم است. اگر ما هر عدد را در فهرستي از ارقام مرتب كنيم، قلمرو همه اعداد صحيح غير اتمي هستند. 
   به عنوان نمونه عملي در مورد نكته بالا ، سازماني را كه براي كارمندانش شماره شناسايي تعيين كرده بررسي مي كنيم: دو حرف اول بخش سازمان را مشخص مي كنند و چهار رقم باقيمانده شماره منحصر به فردي در آن بخش براي آن كارمند است. مثالی از اين شماره هاCs0012  و  EE1121خواهد بود. چنين شماره هاي شناسايي مي تواند به واحد هاي كو چكتري تقسيم شود كه غير اتمي هستند. اگر الگوي رابطه صفتی داشته باشد که قلمروي آن شامل شماره هاي شناسايي باشد که بصورت فوق رمزگذاري مي شود، اين الگو اولين شكل نرمال نخواهد بود.
زماني كه چنين شماره هاي شناسايي استفاده مي شود، بخش يك كارمند مي تواند با نوشتن كدي كه ساختار يك شماره شناسايي را تفکیک می کند، يافت شود. انجام این کار نیاز به برنامه نویسی زیاد دارد و اطلاعات در برنامه های کاربردی و پایگاه داده رمزگذاری شده اند. مشكل زماني بيشتر مي شود كه اين شماره شناسايي به عنوان كليدهاي اصلي استفاده شوند. وقتي بخش يك كارمند تغيير مي كند، بايد شماره شناسايي كارمند هم تغيير كند، كه اين مي تواند كار سختي باشد يا كدي كه داده شده ممكن است نتيجه غلطي را تفسير كند.
استفاده از گروه های صفات معتبر می تواند به طرح هايي با ذخيره سازي اطلاعات زاید منتهي شود  كه برگشت آن مي تواند نتيجه متضاد دهد. براي  نمونه،  به جاي رابطه بين حسابداران و مشتري ها رابطه مجزاي سپرده گذار  را نشان مي دهيم،طراح پايگاه داده ممكن است موجودي رابطه صاحب هر حساب و رابطه حسابداران با هرمشتري را ايجاد كند. هر وقت حسابي ايجاد مي شود يا حساب صاحبان به روز مي شود به روز شدن در دو مكان اجرا مي شود، شكست در هر دو اجرا مي تواند پايگاه داده را دچار مشكل كند. حفظ اين مجموعه ها از تكرار كردن اطلاعات خودداري مي كند اما اين مسئله بعضي پرس و جوها را پيچيده مي كند. بعضي از انواع مقادیر غير اتمي، مي توانند مفيد باشند اگر چه بايد با دقت استفاده شوند. مثلا صفات معتبر تركيبي اغلب مفيد هستند كه توسط E-R حمايت مي شوند. در بسياري از قلمروها كه موجوديت ها ساختار پيچيده اي دارند ، مجبوريم اولين شكل نرمال را در يك فشار غير ضروري بر روي يك برنامه ريز كاربردي نشان دهيم،كسي كه كد را براي تغيير اطلاعات به شكل اتمي مي نويسد. حمايت از مقادیر       غير اتمي در چنين قلمرو هايي مي تواند خيلي مفيد باشد. در حقيقت سيستم هاي جديد پايگاه داده از بسياري از ارزشهاي غير اتمي حمايت ميكند، در فصل 9 اين موضوع را خواهيم ديد. به هر حال در اين فصل خودمان را به رابطه هاي اولين شكل نرمال محدود كرديم كه آنها همه قلمروهاي اتمي هستند.
 

تگها: پایگاه داده   پایگاه داده رابطه ای   جبر رابطه ای   حساب رابطه ای   
 

HyperLink

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