الخميس، 23 يناير 2014

النموذج العادي الثالث Third Normal Form 3NF

النموذج العادي الثالث Third Normal Form 3NF

جدول في النموذج العادي الثالث عندما يتم استيفاء الشروط التالية:

·         أن يكون في النموذج العادي الثاني.

·         جميع الحقول  non primary غير الاساسية تعتمد على المفتاح الأساسي.


CREATE TABLE CUSTOMERS(
       CUST_ID       INT              NOT NULL,
       CUST_NAME     VARCHAR (20)      NOT NULL,
       DOB           DATE,
       STREET        VARCHAR(200),
       CITY          VARCHAR(100),
       STATE         VARCHAR(100),
       ZIP           VARCHAR(12),
       EMAIL_ID      VARCHAR(256),
       PRIMARY KEY (CUST_ID)
);

 

تبعية حقول non primary الغير اساسية بين البيانات. على سبيل المثال في الجدول السابق يوجد به  اسم الشارع، والمدينة، والدولة أو الولاية  والرمز البريدي كلها بيانات عناوين يمكن فصلها عن جدول العملاء بجدول يخصها هي فقط وليكن مثلا جدول العناوين.

 

CREATE TABLE ADDRESS(
       ZIP           VARCHAR(12),
       STREET        VARCHAR(200),
       CITY          VARCHAR(100),
       STATE         VARCHAR(100),
       PRIMARY KEY (ZIP)
);

 

 

بعد ذلك نغيير جدول العملاء ليصبح كالتالي:
CREATE TABLE CUSTOMERS(
       CUST_ID       INT              NOT NULL,
       CUST_NAME     VARCHAR (20)      NOT NULL,
       DOB           DATE,
       ZIP           VARCHAR(12),
       EMAIL_ID      VARCHAR(256),
       PRIMARY KEY (CUST_ID)
);

مزايا متعددة في إزالة البيانات الغير اساسية بالجدول.
  •           أولا يتم تقليل كمية البيانات المكررة وبالتالي يصبح حجم قاعدة البيانات أصغر.
  •           والميزة الثانية هي سلامة البيانات اي عند تكرار التغيير بالبيانات هناك خطر في تحديث بعض البيانات وترك البعض وخاصةً إذا انتشرت البيانات في عدد من الأماكن المختلفة في قاعدة البيانات.

 على سبيل المثال، إذا تم تخزين العنوان والرمز البريدي والبيانات  الأخرى في ثلاثة أو أربعة جداول مختلفة، ثم نريد عمل تحديث او تغيير في مثلا الرموز البريدية هنا نحن في حاجة إلى التعديل علي كل سجل في هذه الجداول الثلاثة أو الأربعة. 

ليست هناك تعليقات:

إرسال تعليق

يسعدني إرسال تعليقاتكم وأسئلتكم واقتراحاتكم