normal forms

54
Normal forms ทททททททททททททท Normalization ทททททททททท ทททททททททททททททททททททท relation ททททททททท ททท ทททททททททททท Normal form ทท ททท ทททททท ททททททททททททททททททททททททททททท ทททททททททททท ทททททททททททททททททททท Universe of Relations (normalized and unnormalized) 1 NF relations (normalized relations) 2 NF relations 3 NF relations BCNF relations 4NF relations PJ/NF (5 NF) relations

Upload: fritz-gaines

Post on 03-Jan-2016

34 views

Category:

Documents


2 download

DESCRIPTION

Normal forms. ทฤษฎีของการทำ Normalization เป็นเรื่องเกี่ยวกับการพิจารณาว่า relation ที่กำหนดให้ อยู่ในรูปแบบ Normal form ใด คือ มีความถูกต้องตรงกับกฎเกณฑ์ข้อบังคับ หรือเงื่อนไขบางอย่างที่กำหนดไว้. Universe of Relations (normalized and unnormalized). 1 NF relations (normalized relations). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Normal forms

Normal forms

ทฤษฎี�ของการท�า Normalization เป็�นเร��องเก��ยวก�บการพิ�จารณาว�า relation ท��ก�าหนดให อย!�ในร!ป็แบบ Normal form ใด คื�อ มี�คืวามีถู!กต้ องต้รงก�บกฎีเกณฑ์(ข อบ�งคื�บ หร�อเง��อนไขบางอย�างท��ก�าหนดไว

Universe of Relations (normalized and unnormalized)

1 NF relations (normalized relations)

2 NF relations

3 NF relations

BCNF relations

4NF relations

PJ/NF (5 NF) relations

Page 2: Normal forms
Page 3: Normal forms
Page 4: Normal forms

Further NormalizationFurther Normalization

การท�า Normalization เป็�นหลั�กสำ�าคื�ญของการท�า Database design ซึ่.�งเร�ยกว�า Logical database designสำ�วนของ Physical database design เก��ยวก�บ Internal level เช่�น จ�ดการเก��ยวก�บ File เพิ��อให access เร0วท��สำ1ด, I/O access น อยท��สำ1ด

Normalization คื�อ ว�ธี�การซึ่.�ง - บอกให ทราบว�า relation น�3น มี�ป็4ญหาเก�ดข.3นหร�อไมี� - ถู ามี�ป็4ญหาเก�ดข.3น จะขจ�ดป็4ญหาน�3นออกอย�างไร คื�อ เคืร��องมี�อ (Tool) ท��ช่�วยให design database ในลั�กษณะเป็�น Conceptual Schema design ได โดยท��มี�ป็4ญหาน อยท��สำ1ด หร�ออาจไมี�มี�เลัย

Page 5: Normal forms

Functional dependency (FD)

“Functional dependence” หร�อ “Functional dependency”

Relation R มี� attribute x, y attribute y เป็�น “Functional dependence” ก�บ attribute xเข�ยนเป็�นสำ�ญลั�กษณ( R.x --> R.y หร�อ x yเร�ยกว�า

หร�อx functional determines y (x เป็�นต้�วก�าหนด y)

ก0ต้�อเมี��อ แต้�ลัะคื�าของ x ใน R จะมี�คื�า y ของ R ท��สำอดคืลั องก�บ x เพิ�ยงคื�าเด�ยวเท�าน�3น(attribute x,y อาจเป็�น Composite attribute)

y functional dependent on x (y ข.3นก�บ x อย�าง function

Page 6: Normal forms

                                                                                                                                 

                       

                                                     

Page 7: Normal forms

DEP-NO MANAGER DATE-ESTABLISHED

PROJECT-NO DEP-NO BUDGET PART-NO COLOR WEIGHT

PART-NO PROJECT-NO QTY-USED JOB-NO PROJECT-NO COST

DEPARTMENT

PROJECTSPARTS

PART-USE JOBS

Page 8: Normal forms

น�ยามี A relation R is in first normal form (1 NF) if and only ifAll underlying domains contain atomic values only

Relation ใดๆ อย!�ใน 1 NF ก0ต้�อเมี��อ Simple domains ท�3งหมีดมี�แต้� AtomicValues (ไมี�มี� repeating group)

Page 9: Normal forms

S# STATUS CITY P# QTY

S1 20 London P1 300

      P2 200

      P3 400

      P4 200

      P5 100

      P6 100

S2 10 Paris P1 300

      P2 400

S3 10 Paris P2 200

S4 20 London P2 200

      P4 300

      P5 400

Unnormalized

Page 10: Normal forms

S# STATUS CITY P# QTY

S1 20 London P1 300

S1 20 London P2 200

S1 20 London P3 400

S1 20 London P4 200

S1 20 London P5 100

S1 20 London P6 100

S2 10 Paris P1 300

S2 10 Paris P2 400

S3 10 Paris P2 200

S4 20 London P2 200

S4 20 London P4 300

S4 20 London P5 400

Normalized (1 NF)

Page 11: Normal forms

S#

P#

STATUS

CITY

QTY

FD diagram in relation FIRST

S# P# STATUS CITY QTY

Page 12: Normal forms

น�ยามีRelation ใดๆ อย!�ใน 2 NF ก0ต้�อเมี��อ Relation น�3นอย!�ใน 1 NF แลัะท1กๆ Nonkey attribute น�3น Fully FD ก�บ Primary key

จาก FIRST SECOND (S#,STATUS,CITY) SP (S#,P#,QTY)

S#

STATUS

CITY

S#

P#QTY

FD in the relation SECOND and SP

Page 13: Normal forms

S# STATUS CITYS1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

S5 30 Athens

S# P# QTYS1 P1 300

S1 P2 200

S1 P3 400

S1 P4 200

S1 P5 100

S1 P6 100

S2 P1 300

S2 P2 400

S3 P2 200

S4 P2 200

S4 P4 300

S4 P5 400

SECOND SP

Page 14: Normal forms

น�ยามีRelation ใดๆ อย!�ใน 3 NF ก0ต้�อเมี��อ Relation น�3นอย!�ใน 2 NF แลัะท1กๆ Nonkey attribute น�3น ต้ องไมี�มี� transitive ก�บ Primary key

SECOND (S#,STATUS,CITY) SC (S#,CITY) CS (CITY,STATUS)

S# CITY CITY STATUS

FD in the relation SC and CS

S# CITY

S1 London

S2 Paris

S3 Paris

S4 London

S5 Athens

CITY STATUS

Athens 30

London 20

Paris 10

Rome 50

SC CS

Page 15: Normal forms

น�ยามีRelation ใดๆ อย!�ใน 3 NF ก0ต้�อเมี��อ Nonkey attribute มี�คื1ณสำมีบ�ต้� 2 ข อ ด�งน�3 1. Mutually independent 2. Fully dependent on the primary key

S#

STATUS

SNAME

S#

P#

QTYADDRESSP#

CITY

WEIGHT

COLOR

PNAME

Nonkey attribute คื�อ attribute ใดๆ ท��ไมี�ใช่�สำ�วนหน.�งสำ�วนใดของ primary key

ใน relation

Mutually independent คื�อ attribute ต้�3งแต้� 2 attributes ข.3นไป็ ไมี�มี� FD

ก�บ attribute อ��นใดเลัย คื�อ Nonkey ท�3งหมีดจะต้ องเป็�นอ�สำระต้�อก�นอย�างเด0ดขาดไมี�เก��ยวข องก�น

Page 16: Normal forms

ORDER-NO ORDER-DATE ORDER-LINE

Ord1  

Ord2

6 June 1996  

3 May 1996

PART-NO QTY-ORDERED P1 10 P6 30 PART-NO QTY-ORDERED P5 10 P6 50 P2 20

 

ORDER-NO ORDER-DATE PART-NO QTY-ORDERED

Ord1Ord1Ord2Ord2Ord2

6 June 19966 June 19963 May 19963 May 19963 May 1996

P1P6P5P6P2

1030105030

ORDERS

ORDERS

Page 17: Normal forms

ORDER-NO ORDER-DATE

Ord1Ord2

6 June 19963 May 1996

ORDER-NO PART-NO QTY-ORDERED

Ord1Ord1Ord2Ord2Ord2

P1P6P5P6P2

1030105030

ORDERS

ORDERS-CONTENTS

ORDER-NO

PART-NO

ORDER-DATE

QTY-ORDERS

Page 18: Normal forms

ORDER-NO ORDER-DATE

ORDER-NO

PART-NO

QTY-ORDERED

Page 19: Normal forms

  PROJECT-ID PERSON-ID MANAGER TIME-SPENT

Proj1

Proj2

Proj1

Proj2

Proj3

Proj1

J1

J1

J2

J2

J2

J3

Vichi

Joe

Vichi

Joe

Brown

Vichi 

30

12

11

79

17

3

PROJECTS

Page 20: Normal forms

 

PROJECT-ID MANAGER

Proj1

Proj2

Proj3

Vichi

Joe

Brown

 

PROJECT-ID PERSON-ID TIME-SPENT

Proj1Proj2Proj1Proj2Proj3Proj1

J1J1J2J2J2J3

30121179173

PROJECT-ID

PERSON-ID

MANAGER

TIME-SPENT

PROJECTS WORK

Page 21: Normal forms

PROJECT-ID MANAGER

PROJECT-ID

PERSON-ID

TIME-SPENT

Page 22: Normal forms

 

REGISTRATION OWNER MODEL MANUFACTOR NO-CYLINDER

YX-01

YJ-77

YW-30

YJ-37

YJ-83

George

Mary

George

Mary

Andrew

Laser

Falcon

Corolla

Laser

Corolla

Ford

Ford

Toyota

Ford

Toyota

4

6

4

4

4

VEHICLES

Page 23: Normal forms

NO-CYLINDER

MANUFACTOR

OWNER

REGISTRATION-NOMODEL

Page 24: Normal forms

MANUFACTOR

OWNER

REGISTRATION-NOMODEL

MODEL

MANUFACTOR

NO-CYLINDERS

Page 25: Normal forms

 

REGISTRATION-NO OWNER MODEL MANUFACTOR

YX-01YJ-77YW-30YJ-37YJ-83

GeorgeMary

GeorgeMary

Andrew

LaserFalconCorollaLaser

Corolla

FordFord

ToyotaFord

Toyota

 

MODEL MANUFACTOR NO-CYLINDER

LaserFalconCorolla

FordFord

Toyota

464

REGISTRATION

VEHICLES1

Page 26: Normal forms

1. LOAN APPLICATION

LOAN-APPLICTION-NO APPLICANT APPLICANT-ADDRESS LOAN-TYPE

1 Jill Canberra Home

2 Joe Sydney Mortgage

3 Jill Canberra Personal

4 Max Melbourne Home

1. Each Loan application has APPLICANT and is identified by unique value of LOAN-APPLICATION –NO2.      Each Loan application-no has one LOAN-TYPE.3.      Each Loan application-no has one APPLICANT-ADDRESS.4.      An applicant can make many applications.

Page 27: Normal forms

2. CUSTOMER –INVOICES

CUSTOMERNAME

INVOICE-NO 

CUSTOMERADDRESS

CUSTOMERSERVICE

SERVICE COST

SERVICEDATE

Joe 6 Sydney Repair 120 June,1992

Joe 6 Sydney Course 320 July,1992

Jill 3 Canberra Repair 80 August,1992

Joe 6 Sydney Repair 150 October1992

Rules for CUSTOMER –INVOICES:    1.  Each invoice is to one customer and is identified by a unique value of

INVOIC-NO  2. A number of CUSTOMER –INVOICES can be included on one invoice. 3.    There is a separate SERVICE-COST for each CUSTOMER – INVOICES on an

invoice.

Page 28: Normal forms

4. MACHINE-USE

OPERATOR MACHNE DATE QTY-PARTSPRODUCTS

TIME-SPENTON-MACHNE

Joe Mach 1 1 June 1992 15 10

Joe Mach 2 1 June 1992 20 12

Bill Mach 1 1 June 1992 12 6

Bill Mach 2 2 June 1992 20 14

Rules for MACHINE-USE: 1. A machine only bused one operator on a given date. 2. An operator can use any number of machines the one day.T3. TIME-SPEN-ON –MACHHINE is the time spent by an operator on the machine on

given DATE, QTY-PARTS-PRODUCES is quantity of parts produced on that machine by the operator on the given date

Page 29: Normal forms

น�ยามีRelation ใดๆ อย!�ใน BCNF ก0ต้�อเมี��อ ท1กๆ Determinant ท��มี�อย!� เป็�น Candidate key ด วย

S# STATUS

CITY

Relation S(S#,SNAME,STATUS,CITY)

SNAME

Candidate key มี� S#, SNAMEDeterminant มี� S#, SNAMESTATUS, CITY น�3น Mutually independent ก�นคื�อ FD S.CITY ----- S.STATUS

Boyce/Codd Normal form (BCNF)

Page 30: Normal forms

S# SNAME P# QTYS1

S1

S1

S1

Smith

Smith

Smith

Smith

P1

P2

P3

P4 

300

200

400

200

relation SSP (S#,SNAME,P#,QTY)

S#

QTY

SNAME

P#

Example 2

Page 31: Normal forms

Candidate key มี� (S#,P#), (SNAME,P#)Determinant มี� (S#,P#), (SNAME,P#), S#, SNAME

การแก ป็4ญหา คื�อ แยก SSP เป็�น 2 projection SS (S#, SNAME) ก�บ SP (S#, P#, QTY)หร�อ SS (S#, SNAME) ก�บ SP (SNAME,P#, QTY)

Page 32: Normal forms

S J T

SmithSmithJonesJones

MathPhysicsMath

Physics

Prof.WhiteProf.GreenProf.WhiteProf.Brown

Example 3

relation SJT (S,J,T)S = Student, J = Subject, T = Teacherว�ช่าใดๆ แต้�ลัะ Student จะถู!กสำอนโดย Teacher เพิ�ยงคืนเด�ยว (S,J) ---- T

แต้�ลัะ Teacher น�3นจะสำอนได เพิ�ยง Subject เด�ยว (แต้� Subject หน.�ง อาจสำอนโดยหลัายๆ Teacher ได ) T --- J

Page 33: Normal forms

S

J

T

Candidate key มี� (S,J), (S,T)Determinant มี� (S,J), (S,T), T

แก ป็4ญหาโดย ST(S,T) แลัะ TJ(T,J)

ST มี� Candidate key คื�อ (S,T) ไมี�มี� determinantTJ มี� Candidate key คื�อ T determinant คื�อ T

Page 34: Normal forms

Example 4

relation EXAM(S,J,P)S = Student, J = Subject, P = Positionคืวามีหมีายของ Exam tuple (S,J,P) คื�อStudent S สำอบ Subject J แลัะได Position P ใน classข อบ�งคื�บ - ไมี�มี�โอกาสำท�� 2 student จะได Position เด�ยวก�น ใน Subject เด�ยวก�น

S

J

P

J

P

S

Candidate key มี� (S,J), (J,P)Determinant มี� (S,J), (J,P)

Page 35: Normal forms

น�ยามี ของ MVD (Multi Value dependency)

Relation R ใดๆ ท��มี� Attribute A, B, C (อาจเป็�น Composite attribute) แลั วมี� MVD R.A -> R.B เก�ดข.3น ก0ต้�อเมี��อSet ของคื�า B จะข.3นก�บคื�า A เท�าน�3น แลัะเป็�นอ�สำระก�บคื�า C(R.A - R.B อ�านว�า R.B “Multi dependent” ก�บ R.A หร�อ R.A “Multi determine” ก�บ R.B

ท1กๆคืร�3งท�� relation R ใดๆ R(A,B,C) มี� MVD R.A --> R.Bสำร1ป็ได ว�า มี� MVD R.A ---> R.C ด วยเพิราะ B, C เป็�นอ�สำระต้�อก�น

เข�ยนแทนด วย R.A ---> R.B / R.CMVD เป็�น general case (กรณ�ท��วไป็ ) ของ FD FD เป็�น special case (กรณ�ท��วไป็ ) ของ MVD

Page 36: Normal forms

น�ยามีของ 4 NF

Relation R อย!�ใน 4 NF ก0ต้�อเมี��อเมี��อไรก0ต้ามีท��มี� MVD ใน R เช่�น A ---> B แลั วท1กๆ attribute ของ R มี� FD ก�บ A ด วย

น��นคื�อ ถู ามี� MVD A ---> B แลั ว MVD น�3นเป็�น FD A -- B ด วยหร�อ ถู า R อย!�ใน 4 NF แลั ว R น�3นอย!�ใน BCNF แลัะท1กๆ MVD ใน Rจร�งๆ เป็�น FD

Page 37: Normal forms

COURSE TEACHER TEXT

Physics

Maths

Prof.GranProf.BrownProf.Gran

Basic mechanicsPrinciples of

opticsBasic mechanicsVector analysisTrigonometry

Example

CTX มี� 2 MVD 1. CTX.COURSE ----- CTX.TEACHER 2. CTX.COURSE --- CTX.TEXT

Page 38: Normal forms

COURSE TEACHER TEXT

PhysicsPhysicsPhysicsPhysicsMathMathMath

Prof.GranProf.Gran

Prof.BrownProf.BrownProf.GranProf.GranProf.Gran

Basic mechanicsPrinciples of opticsBasic mechanics

Principles of opticsBasic mechanicsVector analysisTrigonometry

COURSE TEACHER

PhysicsPhysicsMath

Prof.GranProf.BrownProf.White

COURSE TEXT

PhysicsPhysicsMathMathMath

Basic mechanicsPrinciples of

opticsBasic mechanicsVector analysisTrigonometry

CTX

CTCX

แยกเป็�น 2 relation ย�อย (Projection)

CT(COURSE,TEACHER) แลัะ CX(COURSE,TEXT)

Page 39: Normal forms

น�ยามี 5 NF

Relation R อย!�ใน 5 NF หร�อ “Projection-join normal form” (PJ/NF)ก0ต้�อเมี��อ ท1กๆ JD ท��มี�อย!�ใน R เป็�นผลัสำ�บเน��องมีาจาก หร�อ เป็�นผลัสำร1ป็มีาจาก(consequence / imply) Candidate key ของ R

Relation R ใดๆ มี�คื1ณสำมีบ�ต้� “Join dependency” (JD) * (X,Y,….,Z)ก0ต้�อเมี��อ R = join ของ Projection X,Y,…,Zโดยท�� X,Y,…,Z คื�อ subset ใดๆของ set ของ attribute ของ R

Page 40: Normal forms

Example 1

Relation S (S#,SNAME,STATUS,CITY)Candidate key มี� 2 ต้�ว : S#, SNAME

Relation น�3มี� 2 JD1.* ((S#,SNAME,STATUS), (S#,STATUS)) S = Join ของ (S#,SNAME,STATUS) ก�บ (S#,CITY) ด วย S# JD เป็�น consequence จาก S# ซึ่.�งเป็�น Candidate key2. * ((S#,SNAME), (S#,STATUS), (SNAME,CITY))

(S#,SNAME) (S#,STATUS)

Join over S# (S#,SNAME,STATUS) (SNAME,CITY)

Join Over SNAME

มี� JD ท�3งหมีด 2 ต้�ว แลัะ JD ท�3งสำองเป็�น consequence ของ Candidate keyด�งน�3น S อย!�ใน 5 NF

Page 41: Normal forms

Example 2

Relation SPJ (S#,P#,J#)หมีายถู.ง Supplier คืนหน.�ง สำ�ง Part หน.�งไป็ใช่ ใน Project หน.�ง

S P J

S1S1S2S1

P1P2P1P1

J2J1J1J1

Relation SPJ เป็�น All key แลัะไมี�มี� FD หร�อ MVD --- 4 NFแยกได 3 projections SP, PJ, JS SP(S#,P#), PJ(P#,J#), JS(J#,S#)Join ของ SP ก�บ PJ ด วย P# ได SPJ เด�มี ก�บอ�ก 1 tuple เพิ��มีมีาแลัะเมี��อ join ก�บ JS ด วย (J#,S#) จะได SPJ ด�งเด�มี

Page 42: Normal forms

S# P#

S1S1S2

P1P2P1

P# J#

P1P2P1

J2J1J1

J# S#

J2J1J1

S1S1S2

S P J

S1S1S1S2S2

P1P1P2P1P1

J2J1J1J2J1

Join Over P#

Join Over(J#,S#)

Original SPJ

SP PJ

SPJ JS

Page 43: Normal forms

ตั�วอย่�างของการทำ า Normalize

Order-Entry System ป็ระกอบด วยข อมี!ลัเก��ยวก�บ Customers, Item แลัะ orders

Page 44: Normal forms

CUSTOMER – Customer number (unique) - Ship to address (several per customer) - Balance - Credit Limit - DiscountORDER - Order number (unique) - Customer number - Ship to address - Date of order - Detail lines (several per customer) - item number - quantity ordered - quantity outITEM - Item number (unique) - Manufacturing plants - Quantity on hand at each plant - Stock danger level for each plant - Item description

Page 45: Normal forms

ORD#

LINE#

CREDLIM

ITEM#

PLANT#

QTYOH

DANGER

QTYORD

QTYOUT

DESCN

CUST

BAL

DATE

DISCOUNT

ADDRESS

FD diagram

Page 46: Normal forms

CUST (CUST#, BAL,CREDIT,DISCOUNT)SHIPTO (ADDRESS, CUST#)ORDHEAD (ORD#, ADDRESS, DATE)ORDLINE (ORD#, LINE#, ITEM#, QTYORD, QTYOUT)ITEM (ITEM#, DESCN)IP (ITEM#, PLANT#, QTYOH, DANGER)

Page 47: Normal forms

Department

Employee Project Office

Job

Salary History

Phone

Page 48: Normal forms

-The Company ป็ระกอบด วยหลัายๆแผนก (department)- แต้�ลัะแผนก (department) ป็ระกอบด วยกลั1�มีพิน�กงาน (employee) กลั1�มีของ Project แลัะกลั1�มีของ office- แต้�ลัะ employee มี�ป็ระว�ต้�การท�างานท��ผ�านมีา (job history) แลัะแต้�ลัะ job มี�เง�นเด�อน(salary) ท��เคืยได ร�บมีา- แต้�ลัะ office ป็ระกอบด วยกลั1�มีของโทรศั�พิท( (phone)

Department ป็ระกอบด วย department number(unique), งบป็ระมีาณ (budget) แลัะ manager (unique)Employee ป็ระกอบด วย employee number (unique), current project number, office number, phone number, แต้�ลัะ job ในอด�ต้ท��เคืยท�า (plus date and salary)Project ป็ระกอบด วย project number (unique), budgetOffice ป็ระกอบด วย office number (unique), area in square feet แลัะ number (unique) of all phones in that office

Page 49: Normal forms

PROJ# PBUDGET

DBUDGET

EMP#

DATE SALARY

OFF#

PHONE#

JOBTITLE

AREA

MGR#DEP#

FD diagram

Page 50: Normal forms

DEPARTMENT (DEPT#, DBUDGET,MGR#)EMPLOYEE (EMP#,DEP# PROJ#,PHONE#)SALHIST (EMP#, DATE, JOBTITLE, SALARY)PROJECT (PROJ#, DEPT#, PBUDGET)OFFICE (OFF#, DEPT#, AREA)PHONE (PHONE#, OFF#)

Page 51: Normal forms

Process ในการทำ า Normalization

1.0 NF ------ 1 NF - Examine for reports ถู ามี� repeating group ให เข�ยนเป็�น flat file - Remove from relation remove repeating group ออกจาก relation - Create new relation แยก relation ออกเป็�นหลัายๆ Projection - Include key relation ใหมี� ต้ องมี� key จาก relation เด�มีรวมีอย!�ด วย

2. 1 NF ------ 2 NF ถู ามี� Concatinated key ให พิ�จารณา (ถู าเป็�น Simple key จะเป็�น 2 NF) - Check each attribute against the whole key ต้รวจสำอบแต้�ลัะ attribute ก�บ key ว�า attribute ใด ท��ข.3นก�บเพิ�ยงบางสำ�วนของKey ถู ามี�ให พิ�จารณาข�3นต้�อไป็

Page 52: Normal forms

- Remove attribute and copy partial key to new relation remove attribute ท��ข.3นก�บเพิ�ยงบางสำ�วนของ key ก�บ Partial key น�3นมีาสำร าง relation ใหมี� - Optimizing กรณ�ท��มี�หลัายๆ relation เมี��อท�าถู.งข�3นต้อนน�3แลั ว ป็รากฏว�ามี�บาง relation ท��มี� Primary key เหมี�อนก�น จะน�า relation ด�งกลั�าวรวมีเข าด วยก�น

3. 2 NF -------- 3 NF - Examine each attribute พิ�จารณาแต้�ลัะ attribute ว�ามี� transitive FD หร�อไมี� - พิ�จารณาว�า Nonkey ใด ข.3นก�บ Nonkey อ��นบ าง - remove Nonkey ท��ข.3นก�บ Nonkey ด วยก�น ออกมีาสำร าง relation ใหมี� - หา key ของ relation ใหมี� - optimizing น�า relation ท��มี� Primary key เหมี�อนก�นมีารวมีก�น เช่�น Primary keyเป็�น (x1,x2,x3) หร�อ (x3,x1,x2) ก0ได

Page 53: Normal forms

5. 4 NF - Relation R อย!�ใน 4 NF ก0ต้�อเมี��อ ท1กๆ MVD ใน R เป็�น consequenceของ Candidate ของ R

6. 5 NF - Relation R อย!�ใน 5 NF ก0ต้�อเมี��อ ท1กๆ JD ใน R เป็�น consequenceของ Candidate keys ของ R

4. BCNF

- Relation R อย!�ใน BCNF ก0ต้�อเมี��อท1กๆ FD ใน R เป็�น consequenceของ Candidate keys ของ R

Page 54: Normal forms

1. จ1ดป็ระสำงคื(ท�3งหมีดของ Normalization process - ขจ�ด Redundancy - หลั�กเลั��ยง Update anomaly - สำร างการ design ท�� represent real world ได ด� - บ�งคื�บให มี� Integrity constraint ได ง�าย2. Normalization guidelines เป็�นเพิ�ยงแนวทางเท�าน�3น บางคืร�3งมี�เหต้1ผลัท��จะไมี�ท�า normalizing เลัยเช่�น Name and Address relation NADDR (NAME,STREET,CITY,STATE,ZIP)มี� FD NAME ---- (STREET,CITY,STATE,ZIP) ZIP ---- (CITY,STATE) STREET,CITY,STATE ใช่ บ�อย แลัะ ZIP ไมี�มี�การเป็ลั��ยนแป็ลังบ�อย3. Dependency แลัะ Futhur Normalization เป็�น “Semantic” โดยธีรรมีช่าต้� น��นคื�อ เก��ยวก�บคืวามีหมีายของ Data4. Normalization เป็�นป็ระโยช่น(สำ�าหร�บ Database design แต้� Normalization ไมี�ได แก ไขป็4ญหาได ท1กสำ��งท1กอย�าง