Download - Functional dependency
1
204204 DBASE DES & DEV 1
NormalizationNormalization
ออ.. พรอนันตพรอนันต เอ่ียมขจรชัยเอ่ียมขจรชัยสาขาวิชาเทคโนโลยีสารสนเทศสาขาวิชาเทคโนโลยีสารสนเทศ
2204204 DBASE DES & DEV
คําศัพทที่เก่ียวของคําศัพทที่เก่ียวของ
FD (Functionally Dependent FD (Functionally Dependent or Functional Dependency)or Functional Dependency)
Full FD (Full Functional Dependency)Full FD (Full Functional Dependency)Partial DependencyPartial DependencyTransitive DependencyTransitive DependencyMultivaluedMultivalued DependencyDependency
3204204 DBASE DES & DEV
ความสัมพันธระหวางคางของความสัมพันธระหวางคางของ AttributeAttribute แบบฟงกชันแบบฟงกชัน AttributeAttribute หนึ่งหรือมากกวาหนึ่งหนึ่งหรือมากกวาหนึ่ง AttributeAttribute ประกอบกันสามารถระบุประกอบกันสามารถระบุ คาของคาของ Attribute Attribute อ่ืนๆอ่ืนๆ ในทูในทูเพิลเพิล ((TupleTuple) ) หนึ่งไดชัดเจนหนึ่งไดชัดเจนแบงไดเปนแบงไดเปน 22 รูปแบบรูปแบบ คือคือ
แบบแบบ 1 : 11 : 1 คาของคาของ Attribute Attribute ทางดานซายทางดานซาย 11 คาคา บงบอกคาของบงบอกคาของAttributeAttribute ทางขวาทางขวา 11 คาคา
แบบแบบ m : 1m : 1 คาของคาของ Attribute Attribute ทางดานซายตั้งแตทางดานซายตั้งแต 11 คาขึ้นไปคาขึ้นไป บงบอกบงบอกคาของคาของ AttributeAttribute ทางขวาทางขวา 11 คาคา
FD (Functional Dependency)FD (Functional Dependency)
204204 DBASE DES & DEV 4
ตัวอยางตัวอยาง Functional DependencyFunctional Dependencyแบบแบบ 11 :: 11
แบบแบบ mm : 1 : 1
Stu_ID Course_No D_Complete
Stu_ID Stu_Name
5204204 DBASE DES & DEV
ความสัมพันธท่ีเกิดขึ้นมักถูกนิยามดวยรูปแบบทางคณิตศาสตรความสัมพันธท่ีเกิดขึ้นมักถูกนิยามดวยรูปแบบทางคณิตศาสตร
DeterminantDeterminant--attributeattributeคือคือ Attribute Attribute ที่ระบุคาแลวสามารถแสดงคาของที่ระบุคาแลวสามารถแสดงคาของ DependencyDependency--attributeattribute ไดได
เชนเชน ความสัมพันธระหวางความสัมพันธระหวาง รหัสพนักงานและชื่อพนักงานรหัสพนักงานและชื่อพนักงานเมื่อระบุคาของรหัสพนักงานเมื่อระบุคาของรหัสพนักงาน ( (Emp_IDEmp_ID) ) จะสามารถทราบชื่อพนักงานจะสามารถทราบชื่อพนักงาน ((Emp_NameEmp_Name) ) ท่ีมีรหัสตามที่ระบุไดท่ีมีรหัสตามที่ระบุได
Determinant-attributes Dependency-attributes
Determinant-attribute Dependency-attribute
Stu_ID Stu_Name
6204204 DBASE DES & DEV
Functional Dependency Functional Dependency :: นิยามนิยามกําหนดใหกําหนดให x x และและ y y เปนเปน Attribute Attribute ของของ relation R relation R
y y มีฟงกชันขึ้นกับมีฟงกชันขึ้นกับ xx (y (y เปนเปน FDFD กับกับ x) x) ก็ตอเมื่อถาก็ตอเมื่อถา 22 ทูทูเพิลเพิลในใน RR มีคาของมีคาของ xx ตรงกันแลวตรงกันแลว ท้ังสองท้ังสอง
ทูทูเพิลเพิลจะตองมีคาของจะตองมีคาของ yy ตรงกันตรงกันเชนเชน relation R relation R มีมี attribute attribute x, yx, y จะไดวาจะไดวา
R.x.R.x. R.y.R.y.ความหมายความหมาย :: x x เปนตัวกําหนดคาเปนตัวกําหนดคา ( (determinedetermine)) ของของ y y
หรือคาของหรือคาของ yy ขึ้นอยูกับคาของขึ้นอยูกับคาของ xx ((y depends on x y depends on x หรือหรือ y y เปนเปน FD FD กับกับ xx))
2
7204204 DBASE DES & DEV
Functional DependencyFunctional Dependency : : รูปแบบการเขียนรูปแบบการเขียน
FDs : determinant-attribute dependency-attribute
FDs : Student_ID Student_Name
Student_ID Student_Name
8204204 DBASE DES & DEV
Functional DependencyFunctional Dependency : : ประเภทประเภทFunctional Dependency Functional Dependency ท่ีเกิดขึ้นจากความสัมพันธระหวางท่ีเกิดขึ้นจากความสัมพันธระหวาง Determinant Determinant และและ DependencyDependencyอยางละอยางละ 11 คาคา
Functional Dependency Functional Dependency ท่ีเกิดขึ้นจากความสัมพันธระหวางท่ีเกิดขึ้นจากความสัมพันธระหวาง Determinant Determinant 11 คาคา กับกับ DependencyDependency หลายคาหลายคา
Stu_ID Stu_Name
Stu_ID Stu_Name School Advisor
9204204 DBASE DES & DEV
Functional Dependency Functional Dependency ท่ีมีความสัมพันธท่ีมีความสัมพันธ 22 ทางทาง โดยที่โดยที่ Determinant Determinant และและ DependencyDependency สามารถระบุคาของอีกฝายหนึ่งไดสามารถระบุคาของอีกฝายหนึ่งได
Functional Dependency Functional Dependency ท่ีใชท่ีใช DeterminantDeterminant มากกวามากกวา 11 คาคา เพ่ืออางถึงเพ่ืออางถึง DependencyDependency
Stu_ID Course_No D_Complete
Project_Name Manager
Stu_ID, Course_No D_Complete
10204204 DBASE DES & DEV
Full Functional DependencyFull Functional Dependency :: นิยามนิยาม
AttributeAttribute yy ของของ relation Rrelation R จะเปนจะเปน Full FDFull FD บนบน AttributeAttribute x x ของของ relation Rrelation R
ถาถา y y เปนเปน FDFD กับกับ xx และไมเปนและไมเปน FDFD กับกับ SubsetSubset ใดๆใดๆ ของของ xx
หรือหรือ เปนเปน FDFD ท่ีมีท่ีมี DeterminantDeterminant ท่ีมีขนาดเล็กที่สุดท่ีมีขนาดเล็กที่สุด และและสามารถระบุถึงสามารถระบุถึง DependencyDependency ไดได
11204204 DBASE DES & DEV
D1 : Perdon_ID AddressD2 : Perdon_ID, Person_name Address
Full Functional DependencyFull Functional Dependency : : ตัวอยางตัวอยาง
สรุป D1 และ D3 เปน Full Functional Dependency
D3 : Product_line, Item_no Use_qtyD4 : Product_line, Item_no, Manager Use_qty
12204204 DBASE DES & DEV
Partial DependencyPartial Dependency
เนื่องจากเนื่องจาก relation relation หนึ่งที่มีหนึ่งที่มี Determinant Determinant มากกวามากกวา 11 ตัวตัว ((มีมี Primary keyPrimary keyมากกวามากกวา 11 AttributesAttributes)) เปนคียผสมเปนคียผสม ( (Composite keyComposite key))ความสัมพันธระหวางคาของความสัมพันธระหวางคาของ AttributeAttribute แบบบางสวนแบบบางสวน เกิดขึ้นเมื่อเกิดขึ้นเมื่อ Attribute Attribute ท่ีเปนท่ีเปน Determinant Determinant บางตัวของบางตัวของ PK PK สามารถระบุคาของสามารถระบุคาของ Attributes Attributes อ่ืนๆอ่ืนๆ ท่ีไมใชท่ีไมใช PK PK ของของ relationrelation ไดได ( (NonNon--key attributekey attribute))ความสัมพันธแบบนี้จะทําใหความสัมพันธแบบนี้จะทําให เกิดปญหาเกิดปญหา ในเรื่องความซ้ําซอนในเรื่องความซ้ําซอน และและการปรับปรุงขอมูลการปรับปรุงขอมูล
3
204204 DBASE DES & DEV 13
ตัวอยางตัวอยาง
Stu_ID Course_No D_Complete Course_Name
Stu_ID, Course_No D_Complete
Course_No Course_Name
14204204 DBASE DES & DEV
Transitive DependencyTransitive Dependency
เปนความสัมพันธระหวางเปนความสัมพันธระหวาง Attributes Attributes เมื่อเมื่อ Attributes Attributes อ่ืนๆอ่ืนๆ ท่ีไมใชท่ีไมใช Primary keyPrimary key ((NonNon--key Attributekey Attribute) ) สามารถสามารถระบุคาของระบุคาของ AttributeAttribute อ่ืนๆอ่ืนๆ ในทูในทูเพิลเพิล ( (TupleTuple)) ไดไดความสัมพันธในลักษณะดังกลาวความสัมพันธในลักษณะดังกลาว เรียกวาเรียกวา
““ความสัมพันธระหวางคาของความสัมพันธระหวางคาของ Attribute Attribute แบบแบบ Transitive Transitive””
204204 DBASE DES & DEV 15
ตัวอยางตัวอยาง
Stu_ID Stu_Name School_ID School_Name
Transitive Dependency
Stu_ID Stu_Name, School_ID, School_Name
School_ID School_Name
16204204 DBASE DES & DEV
MultivaluedMultivalued DependencyDependency
ความสัมพันธนี้จะเกิดขึ้นกับความสัมพันธนี้จะเกิดขึ้นกับ relationrelation ท่ีประกอบดวยท่ีประกอบดวย AttributeAttribute อยางนอยอยางนอย 33 AttributeAttribute และเปนและเปน relationrelation ท่ีท่ี AttributeAttribute หนึ่งสามารถระบุคาของหนึ่งสามารถระบุคาของ AttributeAttribute อ่ืนๆอ่ืนๆ ในใน relation relation ไดมากกวาหนึ่งคาไดมากกวาหนึ่งคาความสัมพันธในลักษณะดังกลาวความสัมพันธในลักษณะดังกลาว เรียกวาเรียกวา
““ความสัมพันธในการระบุคาของความสัมพันธในการระบุคาของ AttributeAttribute แบบหลายคาแบบหลายคา””
17204204 DBASE DES & DEV
หลักการของหลักการของ MultivaluedMultivalued DependencyDependency
สัญลักษณท่ีใชคือสัญลักษณท่ีใชคือAttributeAttribute AA คาหนึ่งจะเปนตัวกําหนดกลุมของคาคาหนึ่งจะเปนตัวกําหนดกลุมของคา AttributeAttribute B B
เมื่อทูเมื่อทูเพิลเพิล 22 ทูทูเพิลเพิลในความสัมพันธในความสัมพันธ RR มีคามีคา A A เดียวกันเดียวกัน ไมจําเปนไมจําเปน ตองมีคาตองมีคา B B เหมือนกันเหมือนกัน แตแตคาของคาของ B B จะตองอยูในกลุมของคาจะตองอยูในกลุมของคา BB ท่ีถูกกําหนดโดยท่ีถูกกําหนดโดย AA
การเปลี่ยนแปลงคาในการเปลี่ยนแปลงคาใน Attribute Attribute CC จะไมมีผลกระทบตอคาจะไมมีผลกระทบตอคา BB
A B
18204204 DBASE DES & DEV
ทูทูเพิลเพิล 22 ทูทูเพิลเพิลในความสัมพันธในความสัมพันธ RR ท่ีมีคาท่ีมีคา BB เหมือนกันไมจําเปนตองเหมือนกันไมจําเปนตองมีคามีคา A A เดียวกันเดียวกันคาของคาของ Attribute C Attribute C สองคาที่มีความสัมพันธกับคาสองคาที่มีความสัมพันธกับคา AA เดียวกันเดียวกันจะตองสัมพันธกับคาของจะตองสัมพันธกับคาของ BB ในกลุมเดียวกันในกลุมเดียวกัน และเปนกลุมที่ถูกและเปนกลุมที่ถูกกําหนดโดยคากําหนดโดยคา A A นั้นๆนั้นๆ
คาของ Determinant 1 คาสามารถระบุคาของ Attribute ท่ีทําหนาที่เปน Dependency ไดตั้งแต 2 Attribute ขึ้นไป ซึ่งอยูในรูปของชุดขอมูล
Employee# Department#, Project#
4
19204204 DBASE DES & DEV
ตัวอยางความสัมพันธ R ประกอบดวย Attribute ดังนี้
Attribute S_No หมายถึง รหัสผูผลิตAttribute PJ_No หมายถึง รหัสโครงการที่ส่ังผลิตAttribute City หมายถึง ช่ือจังหวัดที่ผูผลิตตั้งอยู
ขอสมมติฐานของความสัมพันธของขอมูล คือผูผลิตแตละรายสามารถรับงานไดมากกวา 1 โครงการผูผลิตแตละรายมีโรงงานตั้งอยูในจังหวัดตางๆ ไดมากกวา 1 จังหวัด
20204204 DBASE DES & DEV
ChonburiPJ04S2RayongPJ04S2ChonburiPJ03S2RayongPJ03S2SamuthprakarnPJ02S1BangkokPJ02S1SamuthprakarnPJ01S1BangkokPJ01S1
CityPJ_NoS_Noความสัมพันธความสัมพันธ RR
21204204 DBASE DES & DEV
ความสัมพันธความสัมพันธ R R เปนเปนรีเลช่ันรีเลช่ันท่ีมีความสัมพันธของท่ีมีความสัมพันธของ AttributeAttribute ในการระบุคาไดมากกวาในการระบุคาไดมากกวา 11 คาคา คือคือ
S_No ระบุคา PJ_No ไดหลายคา
S_No PJ_No
S_No ระบุคา City ไดหลายคา
S_No City
22204204 DBASE DES & DEV
relation R เกิดความสัมพันธในลักษณะการระบุคาของ Attributeแบบหลายคาระหวาง Attribute S_No กับ PJ_No และ S_No กับ CityAttribute PJ_No และ City ไมมีความสัมพันธตอกัน แตปรากฏอยูใน relation เดียวกัน ทําใหคาของ City ปรากฏซ้ําซอนอยูในหลายทูเพิล เพ่ือใหขอมูลของ relation ครบถวน กอใหเกิดปญหาในการเพิ่ม ลบ หรือปรับปรุงขอมูลได
23204204 DBASE DES & DEV
Trivial FDTrivial FD’’ssFunctional Dependency Functional Dependency เปนเปน TrivialTrivial FDFD’’s s ก็ตอเมื่อก็ตอเมื่อ AttributeAttribute ทางดานขวาอยูในทางดานขวาอยูใน AttributeAttribute ทางดานซายทางดานซายตัวอยาง :
SUPPLIER (S_NAME, ADDRESS, ITEM, PRICE)S_NAME ADDRESSS_NAME, ITEM PRICE
Trivial FD’sS_NAME ADDRESSS_NAME,ITEM PRICE
24204204 DBASE DES & DEV
NormalizationNormalization
E.F. E.F. CoddCodd เปนผูคิดแนวคิดการทําเปนผูคิดแนวคิดการทํา relationrelation ใหอยูในรูปแบบบรรทัดฐานใหอยูในรูปแบบบรรทัดฐาน ((Normalization ProcessNormalization Process))เปนกระบวนการที่นําเคารางของเปนกระบวนการที่นําเคารางของ relationrelation มาทําใหอยูในรูปแบบที่เปนมาทําใหอยูในรูปแบบที่เปนบรรทัดฐานบรรทัดฐาน ( (Normal FormNormal Form))เปนกระบวนการเพื่อพัฒนาการเชื่อมตอของขอมูลเปนกระบวนการเพื่อพัฒนาการเชื่อมตอของขอมูล เพ่ือแกปญหาเพ่ือแกปญหา ของของ relationrelationเพ่ือใหแนใจวาการออกแบบเคารางของเพ่ือใหแนใจวาการออกแบบเคารางของ relationrelation เปนการออกแบบเปนการออกแบบ ท่ีเหมาะสมท่ีเหมาะสม
5
204204 DBASE DES & DEV 25
ขอมูลท่ีใชในการทําขอมูลท่ีใชในการทํา NormalizationNormalization นั้นจะเอามาจากนั้นจะเอามาจาก EE--R ModelR Model ซึ่งไดมาซึ่งไดมา จากการวิเคราะหระบบจากการวิเคราะหระบบ ((การออกแบบในระดับแนวคิดการออกแบบในระดับแนวคิด)) โดยแสดงใหเห็นโดยแสดงใหเห็น
ขอมูลขอมูล ( (EntityEntity) ) ที่เกิดขึ้นในระบบที่เกิดขึ้นในระบบ Attributes Attributes ของขอมูลของขอมูล Relation Relation ระหวางขอมูลระหวางขอมูล
26204204 DBASE DES & DEV
Normalization : Normalization : วัตถุประสงควัตถุประสงคลดเนื้อท่ีในการจัดเก็บขอมูลลดเนื้อท่ีในการจัดเก็บขอมูล
การทําการทํา relationrelation ใหเปนบรรทัดฐานใหเปนบรรทัดฐาน เปนการลดความซ้ําซอนของขอมูลเปนการลดความซ้ําซอนของขอมูล ในใน relationrelationทําใหลดเนื้อที่ในการจัดเก็บขอมลูทําใหลดเนื้อที่ในการจัดเก็บขอมลู // ลดที่วางที่ใชในการเก็บขอมูลลดที่วางที่ใชในการเก็บขอมูล
ลดปญหาเรื่องขอมูลไมถูกตองลดปญหาเรื่องขอมูลไมถูกตองเนื่องจากขอมูลในเนื่องจากขอมูลใน relationrelation หนึ่งจะมีขอมูลไมซํ้ากันหนึ่งจะมีขอมูลไมซํ้ากัน เมื่อมีการปรับปรุงขอมูลก็จะปรับปรุงทูเมื่อมีการปรับปรุงขอมูลก็จะปรับปรุงทูเพิลเพิลนั้นๆนั้นๆ ครั้งเดยีวครั้งเดยีว ไมตองปรับปรุงไมตองปรับปรุงหลายแหงหลายแหงลดโอกาสที่จะเกิดความผิดพลาดในการปรับปรุงขอมูลไมครบถวนลดโอกาสที่จะเกิดความผิดพลาดในการปรับปรุงขอมูลไมครบถวน
27204204 DBASE DES & DEV
ลดปญหาการลดปญหาการเกิดอะนอรมัลไลเกิดอะนอรมัลไล ( (AnomaliesAnomalies) ) ในการเพิ่มในการเพิ่ม ปรับปรุงปรับปรุง และลบขอมูลและลบขอมูล
ชวยแกปญหาที่อาจจะเกิดขึน้จากการปรับปรุงขอมูลไมครบชวยแกปญหาที่อาจจะเกิดขึน้จากการปรับปรุงขอมูลไมครบชวยแกปญหาที่อาจจะเกิดขึน้จากการเพิ่มขอมูลชวยแกปญหาที่อาจจะเกิดขึน้จากการเพิ่มขอมูลชวยแกปญหาที่อาจจะเกิดขึน้จากการลบขอมูลชวยแกปญหาที่อาจจะเกิดขึน้จากการลบขอมูลชวยแกปญหาในเรื่องขอมูลสูญหายจากฐานขอมูลชวยแกปญหาในเรื่องขอมูลสูญหายจากฐานขอมูล
เพ่ิมความคงทนแกโครงสรางฐานขอมูลเพ่ิมความคงทนแกโครงสรางฐานขอมูล
28204204 DBASE DES & DEV
Normalization :Normalization : รูปแบบรูปแบบ
โดยทั่วไปการทําโดยทั่วไปการทํา NormalizationNormalization มีดวยกันทั้งส้ินมีดวยกันทั้งส้ิน 66 รูปแบบรูปแบบ คือคือFirst Normal Form (1NF)First Normal Form (1NF)Second Normal Form (2NF)Second Normal Form (2NF)Third Normal Form (3NF)Third Normal Form (3NF)BoyceBoyce--CoddCodd Normal Form (BCNF)Normal Form (BCNF)Forth Normal Form (4NF)Forth Normal Form (4NF)Fifth Normal Form (5NF)Fifth Normal Form (5NF)
29204204 DBASE DES & DEV
5NF“ขจัด Join Dependency”
2NF“ขจัด Partial Dependency”
3NF“ขจัด Transitive Dependency”
BCNF“ขจัดปญหา Overlap Multiple Candidate Key ”
4NF“ขจัด Nontrivial Multivalued Dependency”
1NF“ขจัด Repeating Group” ขั้นตอนการทํา
Normalization
30204204 DBASE DES & DEV
First Normal Form : 1NFFirst Normal Form : 1NF
Relation Relation ท่ีจะอยูในรูปแบบท่ีจะอยูในรูปแบบ 1NF 1NF ก็ตอเมื่อก็ตอเมื่อ relationrelation นั้นๆนั้นๆ ไมมีไมมี Attribute Attribute ของทูของทูเพิลเพิลท่ีมีคาของขอมูลหลายคาท่ีมีคาของขอมูลหลายคา ( (No Repeating GroupNo Repeating Group))คาของคาของ AttributeAttribute ตางๆตางๆ ในแตละทูในแตละทูเพิลเพิล มีคาของขอมูลเพียงคาเดียวมีคาของขอมูลเพียงคาเดียว ((Atomic ValueAtomic Value))
6
31204204 DBASE DES & DEV
ตารางที่มีลักษณะขอมูลตารางที่มีลักษณะขอมูลหลายคาในฟลดใดฟลดหนึ่งหลายคาในฟลดใดฟลดหนึ่ง ( (Repeating GroupRepeating Group) )
200P4
300P4200P2กรุงเทพฯแดงS4200P2ปทุมธานีนอยS3400P2300P1ปทุมธานีตอยS2
400P3200P2300P1กรุงเทพฯติ๋มS1QtyP_NoCityS_NameS_No
32204204 DBASE DES & DEV
ปรับเปลี่ยนขอมูลในตารางใปรับเปลี่ยนขอมูลในตารางใ หอยูในรูปหอยูในรูป 1NF1NF
200P4กรุงเทพฯติ๋มS1
300P4กรุงเทพฯแดงS4200P2กรุงเทพฯแดงS4200P2ปทุมธานีนอยS3400P2ปทุมธานีตอยS2300P1ปทุมธานีตอยS2
400P3กรุงเทพฯติ๋มS1200P2กรุงเทพฯติ๋มS1300P1กรุงเทพฯติ๋มS1QtyP_NoCityS_NameS_No
33204204 DBASE DES & DEV
Second Normal Form : 2NFSecond Normal Form : 2NF
RelationRelation ท่ีจะอยูในรูปของท่ีจะอยูในรูปของ 2 2NF NF ก็ตอเมื่อก็ตอเมื่อRelationRelation นั้นๆนั้นๆ อยูในรูปแบบบรรทัดฐานขั้นที่อยูในรูปแบบบรรทัดฐานขั้นที่ 11 ((1NF1NF))AttributeAttribute จะตองไมมีความสัมพันธแบบจะตองไมมีความสัมพันธแบบ Partial Dependency Partial Dependency กลาวคือกลาวคือ
AttributeAttribute ทุกทุก AttributeAttribute ที่ไมไดเปนคียหลักที่ไมไดเปนคียหลัก ( (PKPK)) จะตองมีความสัมพันธจะตองมีความสัมพันธระหวางคาของระหวางคาของ AttributeAttribute แบบฟงกชันกับคียหลักแบบฟงกชันกับคียหลัก ( (Full FDFull FD)) หรือหรือคาของคาของ AttributeAttribute ที่ไมไดเปนคียหลักจะสามารถระบุคาโดยที่ไมไดเปนคียหลักจะสามารถระบุคาโดย AttributeAttributeที่เปนคียหลักที่เปนคียหลัก หรือหรือ AttributeAttribute ทั้งหมดที่ประกอบกันเปนคียหลักในกรณีที่ทั้งหมดที่ประกอบกันเปนคียหลักในกรณีที่คียหลักเปนคียผสมคียหลักเปนคียผสม
34204204 DBASE DES & DEV
การทําการทํา Normalization Normalization ในระดับในระดับ 1NF1NFเปนการขจัดเปนการขจัด Attribute Attribute หรือกลุมหรือกลุม Attribute Attribute ที่ซํ้ากันที่ซํ้ากัน
ความผิดพลาดที่เกิดขึ้นกับขอมูลในระดับความผิดพลาดที่เกิดขึ้นกับขอมูลในระดับ 1 1NFNFจากการเพิ่มขอมูลจากการเพิ่มขอมูล ( (Insert AnomalyInsert Anomaly)) อาจทําใหไมสามารถเพิ่มขอมลูบางอยางอาจทําใหไมสามารถเพิ่มขอมลูบางอยางไมไดไมได หรือเพิม่ขอมลูแลวเกดิความขัดแยงกับขอมูลเดิมหรือเพิม่ขอมลูแลวเกดิความขัดแยงกับขอมูลเดิมจากการลบขอมูลจากการลบขอมูล ( (DeleteDelete AnomalyAnomaly) ) ถาตองลบขอมูลบางสวนถาตองลบขอมูลบางสวน จะสงผลใหจะสงผลให ลบขอมูลอื่นๆลบขอมูลอื่นๆ ออกไปดวยโดยไมไดตั้งใจออกไปดวยโดยไมไดตั้งใจจากการแกไขขอมูลจากการแกไขขอมูล ( (Update AnomalyUpdate Anomaly) ) จะตองแกไขทกุทูจะตองแกไขทกุทูเพิลเพิล ผูใชงานผูใชงาน ฐานขอมลูจะตองฐานขอมลูจะตอง แกไขขอมูลมากกวาแกไขขอมูลมากกวา 11 แหงแหง
35204204 DBASE DES & DEV
Relation Order1Relation Order1 ประกอบดวยประกอบดวย AttributeAttribute ดังนี้ดังนี้
100พลอยP4S3
400ไพลินP3S2
300เพชรP1S2
300ไพลินP3S1
200ทับทิมP2S1
100เพชรP1S1
QtyP_NameP_NoS_No
36204204 DBASE DES & DEV
Attribute Attribute รหัสผูผลิตรหัสผูผลิต ( (S_NoS_No)) และรหัสสินคาและรหัสสินคา ( (P_NoP_No) ) ประกอบประกอบกันเปนคียหลักกันเปนคียหลัก ( (PKPK)) ท่ีสามารถระบุคาของชื่อสินคาท่ีสามารถระบุคาของชื่อสินคา ( (P_NameP_Name)) และจํานวนสินคาที่ถูกจัดสงและจํานวนสินคาที่ถูกจัดสง ( (QtyQty)) ไดไดAttribute Attribute รหัสสินคารหัสสินคา ( (P_NameP_Name)) สามารถระบุคาของชื่อสินคาสามารถระบุคาของชื่อสินคา ((P_NameP_Name)) ไดอีกดวยไดอีกดวย
S_No P_No P_Name Qty
7
37204204 DBASE DES & DEV
เพราะฉะนั้นเพราะฉะนั้น relationrelation OrderOrder 11 จึงไมไดอยูในรูปแบบจึงไมไดอยูในรูปแบบ 2NF2NF ดังนั้นดังนั้น ตองทําการแตกตองทําการแตก relationrelation เพื่อลดปญหาความซ้ําซอนของขอมูลเพื่อลดปญหาความซ้ําซอนของขอมูล
Order1 (S_No, P_No, Qty)Order1 (S_No, P_No, Qty) มีมี S S_No_No และและ P P_No _No เปนเปน PK PKProduct (P_No, P_Name) Product (P_No, P_Name) มีมี P P_No _No เปนเปน PK PK
QtyP_NoS_No
P_NameP_No
Order1
Product
38204204 DBASE DES & DEV
Third Normal Form : 3NFThird Normal Form : 3NF
RelationRelation ท่ีจะอยูในรูปของท่ีจะอยูในรูปของ 3 3NF NF ก็ตอเมื่อก็ตอเมื่อRelationRelation นั้นๆนั้นๆ อยูในรูปแบบบรรทัดฐานขั้นที่อยูในรูปแบบบรรทัดฐานขั้นที่ 22 ((2NF2NF))Attribute Attribute ท่ีไมไดเปนคียหลักท่ีไมไดเปนคียหลัก ( (PKPK)) ไมมีคุณสมบัติในการกําหนดคาไมมีคุณสมบัติในการกําหนดคาของของ AttributeAttribute อ่ืนที่ไมใชคียหลักอ่ืนที่ไมใชคียหลักAttributeAttribute จะตองไมมีความสัมพันธแบบจะตองไมมีความสัมพันธแบบ Transitive Dependency Transitive Dependency
39204204 DBASE DES & DEV
Relation Supplier1Relation Supplier1 ประกอบดวยประกอบดวย AttributeAttribute ดังนี้ดังนี้
1สมุทรปราการจุมS5
2กรุงเทพฯแดงS4
3ปทุมธานีนอยS3
3ปทุมธานีตอยS2
2กรุงเทพฯติ๋มS1
RatingCityS_NameS_No
40204204 DBASE DES & DEV
นอกจากนี้ยังพบวาความสัมพันธระหวางนอกจากนี้ยังพบวาความสัมพันธระหวาง Attribute Attribute ท่ีไมไดเปนท่ีไมไดเปน PKPK คือคือAttributeAttribute CityCity และและ Rating Rating
โดยโดย AttributeAttribute CityCity สามารถระบุคาการจัดอันดับของผูผลิตสามารถระบุคาการจัดอันดับของผูผลิต ซ่ึงเปนความสัมพนัธซ่ึงเปนความสัมพนัธระหวางคาของระหวางคาของ AttributeAttribute แบบแบบ Transitive Dependency Transitive Dependency หากหาก relationrelation ใดมคีุณสมบัตดิังกลาวจะกอใหเกิดความผิดพลาดในการเพิ่มใดมคีุณสมบัตดิังกลาวจะกอใหเกิดความผิดพลาดในการเพิ่ม ลบลบ หรือปรับปรุงขอมูลไดหรือปรับปรุงขอมูลได เชนเชน
ความผิดพลาดที่เกิดจากการปรับปรุงขอมูลความผิดพลาดที่เกิดจากการปรับปรุงขอมูล ( (Update AnomalyUpdate Anomaly) ) ความผิดพลาดที่เกิดจากการลบขอมูลความผิดพลาดที่เกิดจากการลบขอมูล ( (Delete AnomalyDelete Anomaly))
41204204 DBASE DES & DEV
RelationRelation Supplier1 Supplier1 อยูในรูปแบบอยูในรูปแบบ 2NF2NFไมมคีาของขอมลูซํ้ากันไมมคีาของขอมลูซํ้ากันคาของคาของ AttributeAttribute ที่ไมไดเปนคียหลักอื่นๆที่ไมไดเปนคียหลักอื่นๆ สามารถระบคุาไดโดยคาของสามารถระบคุาไดโดยคาของ AttributeAttribute ที่เปนคียหลักที่เปนคียหลักตัวอยางตัวอยาง :: กรณีที่ทราบรหัสผูผลิตกรณีที่ทราบรหัสผูผลิต คือคือ S1 S1 จะสาจะสามาถมาถทราบวาผูผลิตช่ืออะไรทราบวาผูผลิตช่ืออะไร
อยูที่จังหวัดใดอยูที่จังหวัดใด และอยูในจังหวัดที่ถูกจัดอันดับไวเปนอันดับที่เทาไรและอยูในจังหวัดที่ถูกจัดอันดับไวเปนอันดับที่เทาไรRelation Relation นี้ไมมีคียคูแขงนี้ไมมีคียคูแขง เพราะวาไมมีคียใดทีม่ีคุณสมบตัิเปนคียหลักเชนเดียวกับเพราะวาไมมีคียใดทีม่ีคุณสมบตัิเปนคียหลักเชนเดียวกับรหัสผูผลิตรหัสผูผลิต ถึงแมวาช่ือจังหวัดสามารถที่จะระบุการจัดอันดับของผูผลิตถึงแมวาช่ือจังหวัดสามารถที่จะระบุการจัดอันดับของผูผลิต แตไมแตไมสามารถระบุช่ือของผูผลิตไดชัดเจนสามารถระบุช่ือของผูผลิตไดชัดเจนตัวอยางตัวอยาง :: กรณีที่ทราบช่ือจังหวัดกรณีที่ทราบช่ือจังหวัด คือคือ กรุงเทพฯกรุงเทพฯ ช่ือของผูผลิตอาจเปนช่ือของผูผลิตอาจเปน ติ๋มติ๋ม หรือหรือ
แดงแดง ก็ไดก็ได ซ่ึงไมสามารถกําหนดชัดเจนไดวาผูผลิตช่ืออะไรซ่ึงไมสามารถกําหนดชัดเจนไดวาผูผลิตช่ืออะไร
42204204 DBASE DES & DEV
การแกไขปญหาการแกไขปญหา AttributeAttribute CityCity ท่ีสามารถระบุคาท่ีสามารถระบุคา Attribute Rating Attribute Rating ไดนั้นไดนั้น จะตองทําการแตกจะตองทําการแตก relation Supplier1relation Supplier1 เปนเปน 22 relation (Decomposition)relation (Decomposition)
โดยการแยกโดยการแยก AttributeAttribute ที่ถูกกําหนดคากับที่ถูกกําหนดคากับ AttributeAttribute ที่เปนตัวกําหนดคาที่เปนตัวกําหนดคา ((DeterminantDeterminant)) ออกเปนออกเปน relationrelation ใหมใหม และและกําหนดใหกําหนดให AttributeAttribute ที่เปนตวักําหนดคาเปนที่เปนตวักําหนดคาเปน PKPK ของของ relationrelation ใหมใหม relationrelation ใหมประกอบดวยใหมประกอบดวย
Supplier (S_No, S_Name, City)Supplier (S_No, S_Name, City) มีมี S S_No_No เปนเปน PK PK และมีและมี CityCity เปนเปน FKFKCity (City, Rating) City (City, Rating) มีมี City City เปนเปน PK PK
8
43204204 DBASE DES & DEV
วิธีการแตกวิธีการแตก relation relation ((DecompositionDecomposition)) มีขั้นตอนดังนี้มีขั้นตอนดังนี้นํานํา Attribute Attribute ที่ถูกกําหนดคาที่ถูกกําหนดคา กับกับ AttributeAttribute ที่เปนตัวกําหนดคาที่เปนตัวกําหนดคา แยกออกเปนแยกออกเปน relationrelation ใหมใหมกําหนดใหกําหนดให AttributeAttribute ที่เปนตวักําหนดคาเปนที่เปนตวักําหนดคาเปน PK PK ของของ relation relation ใหมใหม
ขอควรระวัง :ในบางกรณีผูออกแบบเคารางของฐานขอมลูพยายามแตก relation ที่มีจํานวน
Attribute มากๆ ออกเปน relation ตางๆ มากมายนั้น อาจกอใหเกิดปญหาการแตกฐานRelation ที่ไมเหมาะสมได (Bad Decomposition) ได
44204204 DBASE DES & DEV
ตัวอยางตัวอยาง Bad Decompositionกรณีท่ีแตก relation Supplier1 ออกเปน
Supplier (S_No, S_Name, City)Supplier (S_No, S_Name, City) มีมี S S_No_No เปนเปน PK PKSupplier2 (S_No, Rating) Supplier2 (S_No, Rating) มีมี S S_No _No เปนเปน PK PK
สมุทรปราการจุมS5กรุงเทพฯแดงS4ปทุมธานีนอยS3ปทุมธานีตอยS2กรุงเทพฯติ๋มS1
CityS_NameS_No
1S52S43S33S22S1
RatingS_No
SupplierSupplier
Supplier2Supplier2
45204204 DBASE DES & DEV
จากตัวอยางจะพบวาจากตัวอยางจะพบวา การแตกการแตก relationrelation ดังกลาวอาจกอใหเกิดความดังกลาวอาจกอใหเกิดความผิดพลาดในการเพิ่มผิดพลาดในการเพิ่ม ลบลบ หรือแกไขขอมูลไดหรือแกไขขอมูลได เนื่องจากเนื่องจาก
การเพิ่มช่ือการเพิ่มช่ือจังหวัดจังหวัดและและการจัดอันดับการจัดอันดับจะทําไมไดจะทําไมได จนกวาจะมีผูผลิตรายใดรายหนึ่งจนกวาจะมีผูผลิตรายใดรายหนึ่งอยูที่จังหวัดที่จะเพิ่มช่ือและการจัดอันดับนั้นอยูที่จังหวัดที่จะเพิ่มช่ือและการจัดอันดับนั้นRelationRelation Supplier Supplier และและ Supplier2 Supplier2 เปนเปน relationrelation ที่ไมมีความเปนอิสระตอกันที่ไมมีความเปนอิสระตอกัน เพราะวาเพราะวา Attribute CityAttribute City เปนตัวกําหนดเปนตัวกําหนด Attribute RatingAttribute Rating นั่นเองนั่นเอง
S_No City
Rating
S_No City
Rating
46204204 DBASE DES & DEV
Boyce / Boyce / CoddCodd Normal Form : BCNFNormal Form : BCNFRelationRelation ท่ีจะอยูในรูปของท่ีจะอยูในรูปของ BCNF BCNF ก็ตอเมื่อก็ตอเมื่อ
RelationRelation นั้นๆนั้นๆ อยูในรูปแบบบรรทัดฐานขั้นที่อยูในรูปแบบบรรทัดฐานขั้นที่ 33 ((3NF3NF))ไมมีไมมี Attribute Attribute ใดๆใดๆ ในใน relation relation ท่ีสามารถระบุคาของท่ีสามารถระบุคาของ AttributeAttribute ท่ีเปนท่ีเปนคียหลักคียหลัก ( (PKPK)) หรือสวนหนึ่งสวนใดของคียหลักหรือสวนหนึ่งสวนใดของคียหลัก ((ในกรณีท่ีคียหลักเปนในกรณีท่ีคียหลักเปนคียผสมคียผสม)) ไดได
47204204 DBASE DES & DEV
โดยทั่วไปรูปของโดยทั่วไปรูปของ BCNFBCNF จะอยูในรูปของจะอยูในรูปของ 3NF3NF แตไมจําเปนเสมอไปแตไมจําเปนเสมอไป ท่ีรูปของท่ีรูปของ 3 3NFNF จะอยูในรูปของจะอยูในรูปของ BCNF BCNF เนื่องจากเนื่องจาก
รูปแบบรูปแบบ BCNFBCNF เปนรูปแบบที่ขยายขอบเขตของรูปแบบเปนรูปแบบที่ขยายขอบเขตของรูปแบบ 33NFNF ใหมีความเหมาะสมยิ่งขึ้นใหมีความเหมาะสมยิ่งขึ้นรูปแบบของรูปแบบของ RelationRelation ที่จะตองผานการทําใหเปนที่จะตองผานการทําใหเปน BCNF BCNF จะตองมคีุณสมบัติจะตองมคีุณสมบัติ ดังนี้ดังนี้
เปนเปน relation relation ที่มีคียคูแขงหลายคียที่มีคียคูแขงหลายคีย ( (Multiple Candidate KeyMultiple Candidate Key) ) โดยที่โดยที่-- คียคูแขงเปนคียผสมคียคูแขงเปนคียผสม ( (Composite KeyComposite Key)) และและ-- คียคูแขงนั้นมีบางสวนซ้ําซอนกันคียคูแขงนั้นมีบางสวนซ้ําซอนกัน ( (OverlappedOverlapped)) ((มีมี attribute attribute บางตัวรวมกันบางตัวรวมกัน))
48204204 DBASE DES & DEV
Relation SupplierRelation Supplier33 ประกอบดวยประกอบดวย AttributeAttribute ดังนี้ดังนี้
200P4ติ๋มS1300P1ตอยS2400P2ตอยS2200P2นอยS3200P2แดงS4
400P5แดงS4300P4แดงS4
400P3ติ๋มS1200P2ติ๋มS1300P1ติ๋มS1QtyP_NoS_NameS_No
สมมติสมมติ ::ช่ือของผูผลิตช่ือของผูผลิต ( (S_NameS_Name))
เปนคาไมซํ้ากันเปนคาไมซํ้ากัน และและมีคุณสมบัติเปนมีคุณสมบัติเปน PKPKไดเชนกันไดเชนกัน
9
49204204 DBASE DES & DEV
Relation Supplier3 Relation Supplier3 เปนเปน relationrelation ท่ีมีปญหาท่ีมีปญหา เพราะเพราะมีคียคูแขงเปนคียผสมมีคียคูแขงเปนคียผสม และมคีวามซ้ําซอนกันและมคีวามซ้ําซอนกันคียคูแขงทีม่ีคุณสมบัติเปนคียคูแขงทีม่ีคุณสมบัติเปน PK PK ของของ relationrelation อาจจะเปนอาจจะเปน AttributeAttribute S_No S_No และและ P P_No _No หรือหรือ AttributeAttribute S_Name S_Name และและ P P_No _No ก็ไดก็ได
ในกรณีท่ีช่ือผูผลิตไมซ้ํากันในกรณีท่ีช่ือผูผลิตไมซ้ํากัน relationrelation นี้ไมไดอยูในรูปแบบนี้ไมไดอยูในรูปแบบ BCNF BCNF เพราะเพราะ เมื่อเลือกคียคูแขงใดเปนเมื่อเลือกคียคูแขงใดเปน PK PK แลวแลว คียคูแขงที่ไมไดถูกเลือกจะยังปรากฏซ้ําซอนอยูคียคูแขงที่ไมไดถูกเลือกจะยังปรากฏซ้ําซอนอยูในใน relationrelation นี้นี้ และมีคุณสมบัติในการระบุคาของและมีคุณสมบัติในการระบุคาของ AttributeAttribute ที่เปนที่เปน PK PK
50204204 DBASE DES & DEV
กรณีท่ีเกลือกรณีท่ีเกลือ AttributeAttribute S_No S_No และและ P_NoP_No เปนเปน PK PK จะเกิดปญหาจะเกิดปญหาAttributeAttribute S_Name S_Name จะมีคุณสมบัติในการระบุคาของจะมีคุณสมบัติในการระบุคาของ AttributeAttribute S_NoS_No
RelationRelation นี้ยังเปนนี้ยังเปน relationrelation ท่ีประกอบดวยขอมูลท่ีซ้ําซอนกันท่ีประกอบดวยขอมูลท่ีซ้ําซอนกัน ซึ่งจะซึ่งจะกอใหเกิดความผิดพลาดจากการเพิ่มกอใหเกิดความผิดพลาดจากการเพิ่ม แกไขหรือปรับปรุงขอมูลแกไขหรือปรับปรุงขอมูลเชนเชน การเปลี่ยนช่ือของผูผลิตการเปลี่ยนช่ือของผูผลิต S1S1 จะตองแกไขขอมูลในทูจะตองแกไขขอมูลในทูเพิลเพิลตางๆตางๆ
ซึ่งอาจเกิดความผิดพลาดไดซึ่งอาจเกิดความผิดพลาดได ((แกไขขอมูลไมครบถวนแกไขขอมูลไมครบถวน))
S_No S_Name P_No Qty
51204204 DBASE DES & DEV
แนวทางแกไขแนวทางแกไข การแตกการแตก relationrelation Supplier3 Supplier3 ออกเปนออกเปน relation relation ใหมใหม โดยการแยกโดยการแยก Attribute Attribute ท่ีสามารถระบุคาของคียคูแขงแยกเปนอีกท่ีสามารถระบุคาของคียคูแขงแยกเปนอีก relationrelation หนึ่งหนึ่ง ซึ่งอาจทําไดซึ่งอาจทําได 22 กรณีกรณี คือคือ
กรณีที่หนึ่งกรณีที่หนึ่ง SupplierSupplier44 ((S_No, S_NameS_No, S_Name)) มีมี S S_No, S_Name_No, S_Name เปนเปน PK PKOrder2Order2 ((S_No, P_No, QtyS_No, P_No, Qty)) มีมี S S_No, P_No_No, P_No เปนเปน PK PK
กรณีที่สองกรณีที่สอง SupplierSupplier44 ((S_No, S_NameS_No, S_Name)) มีมี S S_No, S_Name_No, S_Name เปนเปน PK PKOrder2Order2 ((S_Name, P_No, QtyS_Name, P_No, Qty)) มีมี S S_Name, P_No_Name, P_No เปนเปน PK PK
52204204 DBASE DES & DEV
สรุปสรุป ::รูปแบบรูปแบบ BCNFBCNF เปนรูปแบบที่ขยายขอบเขตของรูปแบบเปนรูปแบบที่ขยายขอบเขตของรูปแบบ 3NF3NF โดยมีโดยมี การตรวจสอบการตรวจสอบ relationrelation วามีวามี AttributeAttribute อ่ืนที่ไมใชอ่ืนที่ไมใช PKPK แตสามารถระบุคาแตสามารถระบุคาของของ PKPK ไดได ดังนี้ดังนี้
A
B
C
D
E
Attribute ที่เปน PK Attribute อื่นๆ
53204204 DBASE DES & DEV
Forth Normal Form : 4NFForth Normal Form : 4NFRelationRelation ท่ีจะอยูในรูปของท่ีจะอยูในรูปของ 44NF NF ก็ตอเมื่อก็ตอเมื่อ
RelationRelation นั้นๆนั้นๆ อยูในรูปแบบอยูในรูปแบบ BCNFBCNFเปนเปน relation relation ท่ีไมมีความสัมพันธในการระบุคาของท่ีไมมีความสัมพันธในการระบุคาของ AttributeAttributeแบบหลายคาแบบหลายคา โดยที่โดยที่ AttributeAttribute ท่ีถูกระบุคาหลายคาเหลานี้ไมมีท่ีถูกระบุคาหลายคาเหลานี้ไมมี ความสัมพันธกันความสัมพันธกัน AttributeAttribute จะตองไมมีความสัมพันธแบบจะตองไมมีความสัมพันธแบบ Independently Independently MultivaluedMultivaluedDependencyDependency
Relation ที่อยูในรูปแบบ 4NF จะตองมี Attribute อยางนอย 3 Attribute
54204204 DBASE DES & DEV
Relation SPJCRelation SPJC ประกอบดวยประกอบดวย AttributeAttribute ดังนี้ดังนี้
สมุทรปราการPJ03S2อยุธยาPJ03สมุทรปราการPJ04อยุธยาPJ04สมุทรปราการPJ05อยุธยาPJ05
ปทุมธานีPJ02กรุงเทพฯPJ02ปทุมธานีPJ01กรุงเทพฯPJ01S1
CityPJ_NoS_NoRelation SPJC ประกอบดวยAttribute รหัสผูผลิต (S_No)Attribute รหัสโครงการ (PJ_No)Attribute ช่ือจังหวัดที่โรงงานของผูผลิตตั้งอยู (City)
ขอกําหนด :ผูผลิตแตละรายสามารถผลิตใหกับ
โครงการตางๆ ไดมากกวา 1 โครงการและ ผูผลิตแตละรายมีโรงงานตั้งอยูใน
จังหวัดตางๆ ไดมากกวา 1 จงัหวัด
10
55204204 DBASE DES & DEV
สมุทรปราการPJ03S2อยุธยาPJ03สมุทรปราการPJ04อยุธยาPJ04สมุทรปราการPJ05อยุธยาPJ05
ปทุมธานีPJ02กรุงเทพฯPJ02ปทุมธานีPJ01กรุงเทพฯPJ01S1
CityPJ_NoS_No
S2S2S2S2S2S2S1S1S1S1
S_No
สมุทรปราการPJ03อยุธยาPJ03สมุทรปราการPJ04อยุธยาPJ04สมุทรปราการPJ05อยุธยาPJ05
ปทุมธานีPJ02กรุงเทพฯPJ02ปทุมธานีPJ01กรุงเทพฯPJ01
CityPJ_No
ทําให relation SPJC อยูในรูปแบบ BCNFโดยใหทุก Attribute ประกอบกันเปน PK
56204204 DBASE DES & DEV
Relation SPJC Relation SPJC อาจเกิดปญหาความผิดพลาดจากการเพิ่มอาจเกิดปญหาความผิดพลาดจากการเพิ่ม ลบลบ หรือปรับปรุงหรือปรับปรุงขอมูลไดขอมูลได เชนเชน
ผูผลิตรหัสผูผลิตรหัส S2 S2 ยายโรงงานจากยายโรงงานจาก สมุทรปราการสมุทรปราการ ไปอยูจังหวัดอื่นไปอยูจังหวัดอื่น ก็ตองทําก็ตองทํา การแกไขขอมูลในทูการแกไขขอมูลในทูเพิลเพิลตางๆตางๆ หรือหรือกรณีที่การเก็บขอมูลช่ือจังหวัดที่ตั้งของผูผลิตคนใหมที่ยงัไมเกรณีที่การเก็บขอมูลช่ือจังหวัดที่ตั้งของผูผลิตคนใหมที่ยงัไมเคยรับงานโครงการคยรับงานโครงการใดเลยจะทําไมไดใดเลยจะทําไมได
แนวทางการแกไขปญหาแนวทางการแกไขปญหาการแตกการแตก relation relation SPJCSPJC ออกเปนออกเปน 22 relationrelation
SPJ (S_No, PJ_No) SPJ (S_No, PJ_No) มีมี S S_No, PJ_No_No, PJ_No เปนเปน PK PKSC (S_No, City) SC (S_No, City) มีมี S S_No, City_No, City เปนเปน PK PK
57204204 DBASE DES & DEV
RelationRelation SPJCSPJC ประกอบดวยประกอบดวย S_No S_No ซ่ึงมีความสัมพันธในการระบุคาซ่ึงมีความสัมพันธในการระบุคา PJ_No PJ_No และและ City City ไดหลายคาไดหลายคา
RelationRelation SPJCSPJC อยูในรูปแบบอยูในรูปแบบ BCNFBCNFเมื่อมีเมื่อมี AttributeAttribute ทุกทุก Attribute Attribute ประกอบกันเปนประกอบกันเปน PKPKS_No S_No มคีวามสัมพันธในการระบุคามคีวามสัมพันธในการระบุคา PJ_No PJ_No แบบหลายคาแบบหลายคา ( (S_No S_No >>>> PJ_NoPJ_No))S_NoS_No มคีวามสัมพันธในการระบุคามคีวามสัมพันธในการระบุคา City City แบบหลายคาแบบหลายคา ( (S_No S_No >>>> CityCity))
ดวยเหตุท่ีดวยเหตุท่ี AttributeAttribute ท้ังสองไมมีความสัมพันธกันแตมาอยูในท้ังสองไมมีความสัมพันธกันแตมาอยูใน relationrelation เดียวกันจะกอใหเกิดความซ้ําซอนของขอมูลขึ้นไดเดียวกันจะกอใหเกิดความซ้ําซอนของขอมูลขึ้นได เพราะวาเพราะวา คาของชื่อคาของชื่อจังหวัดจะปรากฏในจังหวัดจะปรากฏใน relation relation ซ้ํากันซ้ํากัน เพ่ือใหขอมูลในแตละทูเพ่ือใหขอมูลในแตละทูเพิลเพิลมีความมีความสมบูรณสมบูรณ
แมวา relation SPJC จะอยูในรูปแบบ BCNF โดยที่ทุก Attribute ประกอบกันเปน PK แต relation ก็ยังมีปญหาแฝงอยูเชนกัน
58204204 DBASE DES & DEV
S2S2S2S2S2S2S1S1S1S1
S_No
สมุทรปราการPJ03อยุธยาPJ03สมุทรปราการPJ04อยุธยาPJ04สมุทรปราการPJ05อยุธยาPJ05
ปทุมธานีPJ02กรุงเทพฯPJ02ปทุมธานีPJ01กรุงเทพฯPJ01
CityPJ_No
S2S2S1S1
S_No
สมุทรปราการอยุธยา
ปทุมธานีกรุงเทพฯ
City
S2S2S2S1S1
S_No
PJ03PJ04PJ05
PJ02PJ01
PJ_NoSPJC
SC
SPJ
59204204 DBASE DES & DEV
Fifth Normal Form : 5NFFifth Normal Form : 5NF
ช่ืออ่ืนของรูปแบบบรรทัดฐานขั้นที่ช่ืออ่ืนของรูปแบบบรรทัดฐานขั้นที่ 55 ((5NF5NF)) คือคือ ProjectProject--Join Normal Form (PJ/NF)Join Normal Form (PJ/NF)
RelationRelation ท่ีจะอยูในรูปของท่ีจะอยูในรูปของ 5 5NF NF ก็ตอเมื่อก็ตอเมื่อRelationRelation นั้นๆนั้นๆ อยูในรูปแบบบรรทัดฐานขั้นที่อยูในรูปแบบบรรทัดฐานขั้นที่ 44 ((4NF4NF))ไมมีไมมี Symmetric Constraint Symmetric Constraint
หากมีการแตกหากมีการแตก relationrelation ออกเปนออกเปน relation relation ยอยยอย ( (ProjectionProjection) ) เมื่อทําการเช่ือมโยงเมื่อทําการเช่ือมโยง relationrelation ยอยทั้งหมดยอยทั้งหมด ( (JoinJoin)) จะไมกอใหเกิดขอมูลใหมจะไมกอใหเกิดขอมูลใหมที่ไมเหมือนที่ไมเหมือน relationrelation เดิมเดิม ( (Spurious Spurious TupleTuple))
60204204 DBASE DES & DEV
ตัวอยางที่ตัวอยางที่ 11 relation SPP ประกอบดวย Attribute ตางๆ ดังนี้Attribute ช่ือผูผลิต (S_Name)Attribute ช่ือสินคา (P_Name)Attribute ช่ือโครงการ (PJ_Name)โดยที่ Attribute ท้ังสามเปน PK
Proj1Proj1Proj1Proj2
PJ_Name
SERIWICHAISERISERIS_Name
PENPEN
TABLEPENP_Name
SPP
11
61204204 DBASE DES & DEV
Proj1Proj1Proj1Proj2
PJ_Name
SERIWICHAISERISERIS_Name
PENPEN
TABLEPENP_NameSPP
WICHAISERISERI
S_Name
PENTABLEPEN
P_Name
Proj1Proj1Proj2
PJ_Name
PENTABLEPEN
P_Name
WICHAISERISERI
S_Name
Proj1Proj1Proj2
PJ_Name
Relation SP
Relation PPJ
Relation PJS
62204204 DBASE DES & DEV
Relation SPPRelation SPP อยูในรูปแบบอยูในรูปแบบ 4NF4NF ประกอบดวยประกอบดวย Attribute Attribute ท้ังสามประกอบท้ังสามประกอบกันเปนกันเปน PK PK แตประสบปญหาในการปรับปรุงแกไขขอมูลแตประสบปญหาในการปรับปรุงแกไขขอมูล เชนเชน
การลบขอมลูของการลบขอมลูของทูกเพิลทูกเพิลที่ที่ 33 ((WICHAI, PEN, Proj1WICHAI, PEN, Proj1)) สงผลใหขอมูลของสงผลใหขอมูลของ ช่ือผูผลิตที่ช่ือช่ือผูผลิตที่ช่ือ ““WICHAIWICHAI”” หายไปจากฐานขอมูลหายไปจากฐานขอมูล หรือหรือการเปลี่ยนช่ือสินคาใดสินคาหนึ่งการเปลี่ยนช่ือสินคาใดสินคาหนึ่ง จะตองทําการปรับปรุงขอมูลหลายทูจะตองทําการปรับปรุงขอมูลหลายทูเพิลเพิล
แนวทางแกไขปญหาคือแนวทางแกไขปญหาคือการแตกการแตก relation relation SPPSPP ออกเปนออกเปน 33 relation relation ยอยยอย ( (ProjectionProjection))แตละแตละ relation relation ยอยประกอบดวยยอยประกอบดวย AttributeAttribute แตละคูเปนแตละคูเปน PKPK
63204204 DBASE DES & DEV
เมื่อแตกเมื่อแตก relationrelation SPPSPP ออกเปนออกเปน relation SP, PPJ relation SP, PPJ และและ PJSPJS แลวแลว หากนําหากนํา relationrelation ท้ังสามมาเชื่อมโยงกันท้ังสามมาเชื่อมโยงกัน ( (JoinJoin)) จะมีขอมูลเหมือนในจะมีขอมูลเหมือนใน relation relation เดิมเดิม ((Symmetric ConstraintSymmetric Constraint)) คือคือ ไมมีลักษณะของทูไมมีลักษณะของทูเพิลเพิลท่ีเกินมาท่ีเกินมา เรียกวาเรียกวา Spurious Spurious TupleTuple
เมื่อแตกเมื่อแตก relationrelation ออกมาแลวทําการเชื่อมโยงออกมาแลวทําการเชื่อมโยง relation relation ยอยอีกครั้งยอยอีกครั้ง หากไมมีหากไมมีขอมลูทีแ่ตกตางไปจากขอมลูทีแ่ตกตางไปจาก relationrelation เดิมเดิม ก็สามารถจะแตกก็สามารถจะแตก relationrelation นั้นไดนั้นได เมื่อแตกเมื่อแตก relation relation ออกมาแลวทําการเชื่อมโยงออกมาแลวทําการเชื่อมโยง relation relation ยอยอีกครั้งยอยอีกครั้ง แลวขอมูลแลวขอมูลแตกตางไปจากแตกตางไปจาก relationrelation เดิมเดิม หรือเกิดขอมูลไมเหมือนกับหรือเกิดขอมูลไมเหมือนกับ relation relation เดิมเดิม ก็ไมก็ไมควรแตกควรแตก relationrelation นั้นนั้น ใหถือวาใหถือวา relationrelation เดิมอยูในรูปแบบเดิมอยูในรูปแบบ 5NF5NF
64204204 DBASE DES & DEV
ตัวอยางที่ตัวอยางที่ 22 relation SCPJ ประกอบดวย Attribute ตางๆ ดังนี้Attribute รหัสผูผลิต (S_No)Attribute ช่ือจังหวัดของผูผลิต (City)Attribute รหัสโครงการ (PJ_No)โดยที่ Attribute ท้ังสามเปน PK
PJ01PJ02PJ01
PJ_No
S3S1S1
S_No
RayongRayongBangkok
City
SCPJ
65204204 DBASE DES & DEV
Spurious Tuple
S3S1S1
S_No
RayongRayongBangkok
City
PJ01PJ02PJ01PJ_N0
RayongRayongBangkok
City
PJ01PJ02PJ01
PJ_No
S3S1S1
S_No
Relation SC
Relation CPJ
Relation PJS
PJ01RayongS1PJ01
PJ02PJ01
PJ_No
S3
S1S1
S_No
Rayong
RayongBangkok
City
66204204 DBASE DES & DEV
Relation SCPJRelation SCPJ อยูในรูปแบบอยูในรูปแบบ 4NF4NF ประกอบดวยประกอบดวย Attribute Attribute ท้ังสามประกอบท้ังสามประกอบกันเปนกันเปน PK PK แตมีปญหาที่อาจเกิดความผิดในการเพิ่มแตมีปญหาที่อาจเกิดความผิดในการเพิ่ม ลบลบ หรือปรับปรุงหรือปรับปรุง ขอมูลขอมูลแนวทางแกไขปญหาคือแนวทางแกไขปญหาคือ
การแตกการแตก relation relation SPPSPP ออกเปนออกเปน 33 relation relation ยอยยอย ( (ProjectionProjection)) ประกอบดวยประกอบดวย Relation SC,Relation SC, CPJ CPJ และและ PJCPJCแตปญหาที่เกิดขึ้นแตปญหาที่เกิดขึ้น คือคือ เมื่อนําเมื่อนํา relationrelation ทั้งสามมาเชื่อมโยงกันทั้งสามมาเชื่อมโยงกัน จะมีขอมูลเกินมาจะมีขอมูลเกินมา (Spurious Tuple) คือคือ S1 Rayong PJ01 ซ่ึงไมมีในซ่ึงไมมีใน relationrelation เดิมเดิม กรณีที่เกิดปญหาในลักษณะนี้ก็ไมควรจะแตกกรณีที่เกิดปญหาในลักษณะนี้ก็ไมควรจะแตก relationrelation นัน้นัน้
12
67204204 DBASE DES & DEV
ประเด็นที่ควรคํานึงถึงประเด็นที่ควรคํานึงถึงในการทําใหเปนรูปแบบบรรทัดฐานในการทําใหเปนรูปแบบบรรทัดฐาน ( (Normal FormNormal Form))
การแตกการแตก relation relation มากเกินไปมากเกินไป ( (OvernormalizationOvernormalization))การดีการดีนอรมอลไลนอรมอลไลเซชันเซชัน ( (DenormalizationDenormalization))
68204204 DBASE DES & DEV
การแตกการแตก relation relation มากเกินไปมากเกินไป ((OvernormalizationOvernormalization))
วัตถุประสงคของการทําใหเปนรูปแบบบรรทัดฐานวัตถุประสงคของการทําใหเปนรูปแบบบรรทัดฐาน คือคือเพื่อลดปญหาในดานความซ้ําซอนของขอมลูเพื่อลดปญหาในดานความซ้ําซอนของขอมลูเพื่อลดปญหาในเรื่องการเพิ่มเพื่อลดปญหาในเรื่องการเพิ่ม การลบการลบ หรือการปรับปรงุขอมูลหรือการปรับปรงุขอมูล
โดยทั่วไปการออกแบบในระดับแนวคิดโดยทั่วไปการออกแบบในระดับแนวคิด ผูออกแบบจะพยายามวิเคราะหผูออกแบบจะพยายามวิเคราะห relationrelation ใหอยูในรูปแบบใหอยูในรูปแบบ 3 3NFNFกรณีท่ีเกิดปญหาตางๆกรณีท่ีเกิดปญหาตางๆ ท่ีจําเปนตองทําตอไปถึงรูปแบบท่ีจําเปนตองทําตอไปถึงรูปแบบ BCNF BCNF, 4NF , 4NF และและ 5NF5NF ((เกิดขึ้นนอยมากในทางปฏิบัติเกิดขึ้นนอยมากในทางปฏิบัติ))
69204204 DBASE DES & DEV
ดวยเหตุผลดังกลาวดวยเหตุผลดังกลาว ผูออกแบบไมควรพยายามที่จะแตกผูออกแบบไมควรพยายามที่จะแตก relationrelationมากเกินความจําเปนมากเกินความจําเปน ( (OvernormalizationOvernormalization)) เพราะเพราะ
การแตกการแตก relationrelation ออกเปนออกเปน relationrelation ยอยมากเกินไปมีผลตอประสิทธิภาพในยอยมากเกินไปมีผลตอประสิทธิภาพในการทํางานของฐานขอมูลการทํางานของฐานขอมูล เชนเชน ในการคนคืนขอมูลจะตองใชเวลามากกวาเดิมในการคนคืนขอมูลจะตองใชเวลามากกวาเดิม เปนตนเปนตน
70204204 DBASE DES & DEV
การดีการดีนอรมอลไลนอรมอลไลเซชันเซชัน ((DenormalizationDenormalization))
กรณีท่ีบางกรณีท่ีบาง relation relation ถูกออกแบบโดยการไมทําใหอยูในรูปแบบบรรทัดฐานถูกออกแบบโดยการไมทําใหอยูในรูปแบบบรรทัดฐานท่ีเปนไปตามท่ีเปนไปตามกฏเกณฑกฏเกณฑท่ีกําหนดไวท่ีกําหนดไว เชนเชน relationrelation นั้นควรจะปรับใหอยูในรูปแบบนั้นควรจะปรับใหอยูในรูปแบบ 3 3NFNF แตหยุดอยูเพียงแตหยุดอยูเพียง
รูปแบบรูปแบบ 2 2NF NF เปนตนเปนตนอาจเปนเพราะเหตุผลในเรื่องของประสิทธิภาพในการเรียกดูอาจเปนเพราะเหตุผลในเรื่องของประสิทธิภาพในการเรียกดู หรือหรือ
การคนคืนขอมูลการคนคืนขอมูล และยอมใหเกิดความซ้ําซอนของขอมูลไดและยอมใหเกิดความซ้ําซอนของขอมูลได
71204204 DBASE DES & DEV
การดีการดีนอรมอลไลนอรมอลไลเซชันอาจกอใหเกิดปญหาความซ้ําซอนของขอมูลเซชันอาจกอใหเกิดปญหาความซ้ําซอนของขอมูล เกิดขึ้นไดเกิดขึ้นได
ควรมีการระบุสาเหตุควรมีการระบุสาเหตุ และวิธีการในการปรับปรุงขอมูลในโปรแกรมและวิธีการในการปรับปรุงขอมูลในโปรแกรมประยุกตใชงานประยุกตใชงาน เพื่อปองกันไมใหเกิดปญหาขอมลูไมถูกตองเพื่อปองกันไมใหเกิดปญหาขอมลูไมถูกตอง ถาขอมลูในถาขอมลูใน relationrelation นั้นๆนั้นๆ สวนใหญจะเปนการเรียกดูขอมูลสวนใหญจะเปนการเรียกดูขอมูล ( (SelectSelect)) มากกวามากกวาการเพิ่มการเพิ่ม ลบลบ หรือปรับปรุงขอมูลหรือปรับปรุงขอมูล เพื่อเพิม่ประสิทธิภาพในการทํางานของเพื่อเพิม่ประสิทธิภาพในการทํางานของฐานขอมลูฐานขอมลู และไมมปีญหาดานความไมถูกตองของขอมูลที่ซํ้าซอนกันไดและไมมปีญหาดานความไมถูกตองของขอมูลที่ซํ้าซอนกันได
72204204 DBASE DES & DEV