سلام
این رو بخون :
يک جدول در فرم دوم نرمال (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)
منبع