ورود

View Full Version : سوال: فایده استفاده از سطح دوم نرمال سازی



khz-web1
دوشنبه 12 اسفند 1387, 02:33 صبح
سلام
می خواستم بدونم فایده نرمال کردن سطح دوم و سوم در چیست؟
سطح اول رو متوجه شدم ول سطح دوم رو نه

اگر میشه 1 مثال ساده بزنید

با تشکر

EffatBandehlou
دوشنبه 12 اسفند 1387, 11:32 صبح
دوست عزيز يك بانك اطلاعاتي زماني كامله كه تمام جداول اون حداقل تا 3 مرتبه نرمال شده باشند.
هركدام از مراحل نرمال سازي جهت بهينه شدن جداول پيش خواهد رفت و كار كردن با آن ساده تر و شفافيت آنرا افزايش مي دهد.
در ضمن جدولي كه نرمال يك است ممكن است با ساختار جدولي كه تا 3 مرحله نرمال مي شود فرق داشته باشد.
ساختار متفاوت ، پياده سازي متفاوت و غير اصولي تري را در پي خواهد داشت

khz-web1
سه شنبه 13 اسفند 1387, 00:55 صبح
سلام...
از راهنمایی های شما ممونم ... ولی من خودم اینهارو میدونستم ... می خواستم یکی از دوستان یک مثال ساده از سطح دوم بزنه ....
با تشکر

khz-web1
یک شنبه 18 اسفند 1387, 03:41 صبح
کی نیست کمکی به ما بکنه ...

amin_alexi
یک شنبه 18 اسفند 1387, 21:21 عصر
سلام
این رو بخون :
يک جدول در فرم دوم نرمال (2NF) است اگر اولا 1NF باشد و ثانيا کليه ستون های غيرکليد با کليد اصلی وابستگی تابعی کامل داشته باشند.
ستون Y با ستون X در يک رابطه وابستگی تایعی (functional dependency) دارد اگروفقط اگر به ازای هر مقدار در X دقيقا يک مقدار در Y متناظر با آن وجود داشته باشد. که به صورت X→Y نشان داده می شود.
مثال. در جدول ALL_SALES مثال قبل، Customer_Address با CustomerNo وابستگی تابعی دارد، زيرا يک مشتری خاص تنها با يک آدرس مربوط است. توجه کنيد که عکس آن برقرار نيست و چند مشتری ممکن است در يک آدرس زندگی کنند. بنابراين يک آدرس ممکن است با بيش از يک شماره مشتری در ارتباط باشد. اگر مشتری بيش از يک آدرس داشته باشد ديگری وابستگی تابعی با شماره مشتری ندارد.
ستون Y روی مجموعه صفات خاصه X وابستگی تابعی کامل (Full functional dependency) دارد اگر روی X وابستگی تابعی داشته باشد و با هيچ زيرمجموعه ای از X وابستگی تابعی نداشته باشد.
مثال. در جدول ALL_SALES مثال قبل آدرس مشتری وابستگی کامل با SaleNo، ProductNo و CustomerNo دارد ولی وابستگی تابعی کامل ندارد چون با CustomerNo وابستگی تابعی دارد.
توجه کنيد اگر کليدهای کانديد در جدول ترکيبی نباشند يعنی تنها شامل يک ستون باشند بلافاصله می گوئيم جدول 2NF است.

مثال. جدول ALL_SALES را درنظر بگيريد:


ALL_SALES(SaleNo, ProductNo, CustomerNo, SaleDate, QtyInStock, Description
, Price, Customer_Name, CreditLimit, Amount, Salesrep)

مشاهده می شود بعضی از ستون ها بهم مرتبط هستند و توسط بخشی از کليد مشخص می شوند. به عبارت ديگر بعضی ستون ها با زيرمجموعه ای از کليد وابستگی تابعی دارند:


ProductNo → {Description, ReorderLevel, Price, QtyInStock}
CustomerNo → {Customer_Name, CreditLimit}
SaleNo → {Date, CustomerNo, ProductNo, Qty, Amount, Salesrep}
با جدا کردن اين ستون ها به جداول جداگانه به فرم دوم نرمال می رسيم.

PRODUCT(ProductNo, Description, Price, QtyInStock)
CUSTOMER(CustomerNo, Customer_Name, CreditLimit)
SALE(SaleNo, Date, CustomerNo, ProductNo, Qty, Amount, Salesrep)
منبع (http://www.hpkclasses.ir/Courses/DataBase/db0900.html#a3)