normal forms
Post on 03-Jan-2016
34 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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ด หร�ออาจไมี�มี�เลัย
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
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
น�ยามี 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)
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
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)
S#
P#
STATUS
CITY
QTY
FD diagram in relation FIRST
S# P# STATUS CITY QTY
น�ยามี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
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
น�ยามี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
น�ยามี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ดขาดไมี�เก��ยวข องก�น
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
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
ORDER-NO ORDER-DATE
ORDER-NO
PART-NO
QTY-ORDERED
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
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
PROJECT-ID MANAGER
PROJECT-ID
PERSON-ID
TIME-SPENT
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
NO-CYLINDER
MANUFACTOR
OWNER
REGISTRATION-NOMODEL
MANUFACTOR
OWNER
REGISTRATION-NOMODEL
MODEL
MANUFACTOR
NO-CYLINDERS
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
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.
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.
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
น�ยามี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)
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
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)
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
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
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)
น�ยามี ของ 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
น�ยามีของ 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
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
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)
น�ยามี 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
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
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 ด�งเด�มี
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
ตั�วอย่�างของการทำ า Normalize
Order-Entry System ป็ระกอบด วยข อมี!ลัเก��ยวก�บ Customers, Item แลัะ orders
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
ORD#
LINE#
CREDLIM
ITEM#
PLANT#
QTYOH
DANGER
QTYORD
QTYOUT
DESCN
CUST
BAL
DATE
DISCOUNT
ADDRESS
FD diagram
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)
Department
Employee Project Office
Job
Salary History
Phone
-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
PROJ# PBUDGET
DBUDGET
EMP#
DATE SALARY
OFF#
PHONE#
JOBTITLE
AREA
MGR#DEP#
FD diagram
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#)
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นต้�อไป็
- 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ได
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
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กอย�าง
top related