بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
نرمال سازی چیست؟
هنگام طراحی یک بانک اطلاعاتی رابطه ای،این سوال مهم مطرح می شود که:«با توجه به داده های عملیاتی و ارتباط بین موجودیت ها،چند جدول می بایست طراحی کرد؟در هر جدول چه فیلدهایی باید قرار گیرد؟رابطه جدولها باید چگونه باشد؟»در این فصل به این سوالات پاسخ می گوئیم.
مثال1:به سه جدول معروف SوPو ) SPفصل (SQLنگاه کنید.فرض کنید جدول SP را به صورت (Status،Qty،P#،S#)SP’تعریف و جدول Sرا به صورت (City،Sname،s#)s’تعریف می کردیم،یعنی فیلد Statusرا از جدول s به جدول SP می بردیم. در اینصورت جدول
اسلاید 2 :
همان طورکه مشاهده می گردد فیلد Statusبرای s1همواره ثابت و مشخص است (عدد 20) و بی جهت در جدول sp’تکرار شده و بدین جهت افزونگی اطلاعات داریم.
اسلاید 3 :
حال سوال دیگری را مطرح می کنیم :«آیا می توان تمام اطلاعات جداول S،P،SP را دریک جدول ریخت؟»جواب این سوال «بله» است .دراین صورت اطلاعاتی فقط یک جدول بوده و از دید کاربران و برنامه نویسان مساله بسیار ساده می شود،چرا که دیگرنیازی به پیوند طبیعی یا ضرب دکارتی نداریم.
اسلاید 4 :
ولی این عمل 3 اشکال اساسی دارد :
1-افزونگی داده ها (Data redundancy) قبلا بیان شد که افزونگی یعنی تکرار بی رویه داده ها.در بانک اطلاعات رابطه ای،تکرار داده ها تنها راه برقراری ارتباط بین جداول است و از آن به عنوان کلیدخارجی یاد می شود.تکرار بیش از این ،بی رویه است وافزونگی نام دارد.بدیهی است که جدول بالا تکرار بی رویه دارد.وقتی جداول را ادغام می کنیم همواره افزونگی به میزان بزرگترین جدول رخ می دهد.این پدیده دو ایراد بزرگ دارد یکی به هدر دادن فضای حافظه و دیگری پائین اوردن سرعت .
2-بی نظمی(anomaly) وجود افزونگی در جدول مثال فوق باعث آنومالی در تغییر داده ها می شود.مثلا اگر شهر s1تغییر کند باید تمام رکوردها به دنبال
اسلاید 5 :
S1گشته و شهر آن را تغییر دهیم که عملی مشکل زا می باشد.
3-مقادیر تهی(NULL Value) با ادغام جداول گاهی اوقات مجبور خواهیم بود برای نشان دادن بعضی از اقلام اطلاعاتی از NULL استفاده کنیم .مثلا فرض کنید تهیه کننده S قطعه ای را تهیه نکرده است آنگاه سطر مربوط به آن به صورت زیر ذخیره می شود:
S# Sname Status City P# Pname Color Weiqht City Qty
.
.
.
S5 Sn5 30 c1 NUL NULL NULL NULL NULL NULL
مقادیرتهی علاوه بر اینکه جای زیادی را اشغال می کنند مشکلاتی را نیز باعث می گردند که قبلا بیان شده است در هنگام طراحی بانک با روش های کلاسیک نرمال سازی،جداول را طوری طراحی می کنیم که این مشکلات حداقل گردد.مجموعه روشهائی که در طراحی بانک اطلاعات موجب کاهش
اسلاید 6 :
افزونگی اطلاعات و آنومالی ها گردد و براساس آن روابط بین اقلام داده ها اداره شوند نرمال سازی گفته می شود.
سطوح نرمال
کاد(واضع مدل رابطه ای )در ابتدا سه سطح نرمال 1NF،2NF،3NF را تعریف کرد ولی بعدا دانشمندان دیگر،صورتهای دیگری را نیز معرفی کردند .
سطوح نرمال عبارتند از:
1NF (First Normal From)
2NF (Second Normal From)
3NF (Third Normal From)
BCNF (Boyce/Codd Normal From)
4NF ((Fourth Normal From
5NF (Fifth Normal From)
DKNF (Domain _key Normal From)
اسلاید 7 :
به طور کلی در مجموعه رابطه ها بعضی نرمال و بعضی غیر نرمال (UNF=Unormalized From) هستند.رابطه های نرمال همان 1NFاست.درواقع صور نرمال فوق ،هریک از قبلی خود نرمالتر هستند. یعنی مثلا رابطه ای که 3NF است حتما 2NFو 1NF می باشد.به عبارتی دیگر در رابطه های 1NFبرخی 2NF بوده ودر رابطه های 2NF برخی 3NF می باشندو....
در عمل حالتی که یک رابطه BCNF باشد اما 4NF نباشد به ندرت رخ می دهد لذا در عمل اگر رابطه را تا سطح BCNF(و حتی گاه تا 3NF) نرمال کنیم کفایت می کند.شکل زیر ارتباط صورتهای نرمال را نشان می دهد.
اسلاید 8 :
تذکر:در حال حاضر به درستی نمی دانیم که ایا ممکن است صورتهای دیگر مثل
6NF یا7NF نیز وجود دارند یا خیر.از اینرو به نظر می رسد که باید همان
5NF را آخرین نرمال دانست هر چند که DKNF نیز مطرح شده است .ما در
این کتاب تا 5NF را شرح می دهیم .
همواره این سوال برای طراحان بانک اطلاعاتی مطرح است که «آیا آنچه که ما
ارئه کرده ایم بهترین است؟»یا به عبارتی دیگر بانک را به چه جداولی تقسیم
کنیم ،در هر جدولی چه فیلد هایی وجود داشته باشد و رابطه بین جدولها چگونه باشد تا بانک بهترین حالت را داشته باشد.
در مدل رابطه ای روشی کلاسیک و ریاضی گونه برای پاسخگوئی به سوالات
فوق وجود دارد که به روش «نرمال سازی»(normalization)موسوم است.
اسلاید 9 :
نرم سازی در عمل یعنی پیروی ازیک سری فرم های نرمال که منجر به تجزیه
جداول می شوند.
فرم INF
رابطه R به فرم INF(First Normal Form) است اگر و فقط اگر تمام
صفات خاصه آن روی میدان های اتومیک تعریف شده باشند به عبارتی دیگر
صفتهای آن ازدامنه تودرتو(nested domain)نباشند.یعنی صفت ترکیبی
نداشته باشیم.مثلا:اگر جدولی شامل فیلد تاریخ باشد که خود فیلد تاریخ از سه فیلد
کوچکتر (سال – ماه - روز)تشکیل شده باشد آنگاه جدول 1NFنیست .درواقع هر
رابطه نرمالی NF1 است.
اسلاید 10 :
تذکر:ازآنجا که در Foxpro وAccess فیلد تجزیه پذیر وجود ندارد پس تمامی جداول در آنها 1NF می باشد.
مثال 2:فرض کنید به جای دو جدول مجزای Sو SP یک جدول به نام First
به صورت زیر تعریف می کردیم:
First (s#,status,city,p#,Qty)
همچنین فرض کنید در این بانک این قاعده وجود دارد که وضعیت یک تهیه کننده از روی شهر او تعیین می شود(یعنی City status) بدین ترتیب نمودار وابستگی جدول First و نیز محتویات آن به صورت زیر خواهد بود.