Normalization
Download
1 / 32

Normalization - PowerPoint PPT Presentation


  • 760 Views
  • Uploaded on

Normalization. Normalization. Normalization เป็นวิธีที่ใช้ในการปรับโครงสร้างของตารางเพื่อให้ได้ตารางที่สามารถเก็บข้อมูลได้โดยไม่มีปัญหาใดๆ ตามมาภายหลัง โดยให้อยู่ในรูปแบบที่เรียกว่า Normal Form มีเป้าหมายหลักคือ การลดความซ้ำซ้อนของข้อมูล และรักษาความถูกต้องให้แก่ข้อมูล.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Normalization' - ian-valentine


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Normalization1
Normalization

  • Normalizationเป็นวิธีที่ใช้ในการปรับโครงสร้างของตารางเพื่อให้ได้ตารางที่สามารถเก็บข้อมูลได้โดยไม่มีปัญหาใดๆ ตามมาภายหลัง โดยให้อยู่ในรูปแบบที่เรียกว่า Normal Form

  • มีเป้าหมายหลักคือ การลดความซ้ำซ้อนของข้อมูล และรักษาความถูกต้องให้แก่ข้อมูล


Normalization2
วัตถุประสงค์ของ Normalization

  • ลดเนื้อที่ในการจัดเก็บข้อมูล

    • เนื่องจากกระบวนการ Normalization เป็นการออกแบบ เพื่อลดความซ้ำซ้อนในข้อมูล จึงทำให้เนื้อที่ในการจัดเก็บข้อมูลลดลงด้วย

  • ลดปัญหาข้อมูลที่ไม่ถูกต้อง

    • เมื่อข้อมูลไม่มีความซ้ำซ้อน จึงทำให้สามารถปรับปรุงข้อมูลได้จากแหล่งข้อมูลเพียงแหล่งเดียว จึงลดปัญหาการปรับปรุงข้อมูลไม่ถูกต้องได้ (รวมถึงการเพิ่ม ลบ และปรับปรุงข้อมูล)


Data redundancy and update anomalies
Data Redundancy and Update Anomalies

  • ตัวอย่างปัญหาของความซ้ำซ้อนในข้อมูลใน Staff relationและ Branch relationเมื่อเปรียบเทียบกับรีเลชันที่รวมข้อมูลพนักงานและสาขาไว้ด้วยกันใน StaffBranch relation



Data redundancy and update anomalies2
Data Redundancy and Update Anomalies

  • ตาราง StaffBranch จะมีความซ้ำซ้อนของข้อมูลโดยรายละเอียดของสาขา (branch) จะมีข้อมูลที่ซ้ำ ๆ กันในทุกสมาชิกของ staff

  • ปัญหาความซ้ำซ้อนในข้อมูลที่เกิดขึ้นจะเรียกว่า ข้อผิดพลาดจากการปรับปรุงข้อมูล ซึ่งประกอบด้วย

    • ข้อผิดพลาดจากการเพิ่มข้อมูล (Insertion)

    • ข้อผิดพลาดจากการลบข้อมูล (Deletion)

    • ข้อผิดพลาดจากการแก้ไขข้อมูล (Modification)


Normalization

การ Normalization นี้เป็นการดำเนินงานอย่างเป็นลำดับ ที่กำหนดไว้ด้วยกันเป็นขั้นตอน ตามปัญหาที่เกิดขึ้นในข้นตอนนั้นๆ ซึ่งแต่ละขั้นตอนจะมีชื่อตามโครงสร้างข้อมูลที่กำหนดไว้ดังนี้

1. ขั้นตอนการทำ First Normal Form(1NF)

2. ขั้นตอนการทำ Second Normal Form(2NF)

3. ขั้นตอนการทำ Third Normal Form(3NF)

4. ขั้นตอนการทำ Boyce-Codd Normal Form(BCNF)

5. ขั้นตอนการทำ Fourth Normal Form(4NF)

6. ขั้นตอนการทำ Fifth Normal Form(5NF)


ขอบเขต

  • ในทางปฏิบัติการทำ Normalization จนถึงระดับที่ 3 (3NF) ก็สามารถขจัดปัญหาความซ้ำซ้อนของข้อมูลลงได้จนเกือบหมดแล้ว แต่อาจจะมีความซ้ำซ้อนเกิดขึ้นได้อีกแม้จะพบได้ค่อนข้างน้อย

  • ดังนั้นเนื้อหาจึงขอกล่าวถึงการทำ Normalization จนถึง 3NF และกล่าวถึง BCNF กรณีที่ต้องการลดความซ้ำซ้อนให้น้อยลงไปอีก

  • จะไม่กล่าวถึง 4NF และ 5NF หากนักศึกษาต้องการศึกษาถึง 4NF และ 5NF สามารถอ่านได้จากหนังสืออ้างอิง


First Normal Form : 1NF

  • First Normal Form : 1NF

  • Relation หนึ่งๆ จะอยู่ในรูปแบบ 1NF ก็ต่อเมื่อ

  • “ค่าของ Attribute ต่างๆ ในแต่ละ Tuple จะมีค่าของข้อมูลเพียงค่าเดียว นั่นคือไม่มี Repeating Groupและ Multi-valued”



วิธีการทำให้อยู่ในรูปแบบ 1NF

  • 1. กำจัด repeating group (กลุ่มซ้ำ)

  • 2. เพิ่มคีย์หลัก



Emp_Name

Salary

Dept

Emp_ID

Course_No

Course_Name

Employee

D_Complete

First Normal Form : 1NF

Salary

Course_No

Dept

Emp_ID

Emp_Name

Course_Name

Employee

D_Complete

ผลลัพธ์ที่ได้จากการทำ 1NF


Second Normal Form (2NF)

  • 2. Second Normal Form : 2NF

  • Relation หนึ่งๆ จะอยู่ในรูปแบบ 2NF ก็ต่อเมื่อ

  • “1. Relation นั้นๆ ต้องอยู่ในรูปแบบ 1NF

  • 2. Attribute ทุกตัวที่ไม่ได้เป็นคีย์หลัก จะต้องมีความสัมพันธ์กับ Attribute ที่เป็นคีย์หลักทั้งหมด(Fully Functional Dependency) ไม่ใช่แค่ส่วนใดส่วนหนึ่งของคีย์หลัก หรือกล่าวง่ายๆ ว่า ไม่มี Partial Dependencyเกิดขึ้น”


Second normal form 2nf
Second Normal Form (2NF)

full functional dependency

Emp_ID

Course_No

D_Complete

Course_Name

Partial Dependency

เพราะฉะนั้นตาราง Employee ไม่ได้อยู่ในรูป 2NF เนื่องจากมี Partial Dependency ต้องทำการแตก Relation เพื่อลดความซ้ำซ้อนของข้อมูล ดังนี้

Employee(Emp_id , Course_No ,D_Complete)

Course(Course_No, Course_Name)


Second normal form 2nf1
Second Normal Form (2NF)

Employee

Course


Third Normal Form : 3NF

  • 3. Third Normal Form : 3NF

  • Relation หนึ่งๆ จะอยู่ในรูปแบบ 3NF ก็ต่อเมื่อ

  • “1. Relation นั้นๆ ต้องอยู่ในรูปแบบ 2NF

  • 2. Attribute ทุกตัวที่ไม่ได้เป็นคีย์หลัก ไม่มีคุณสมบัติในการกำหนดค่าของ Attribute อื่นที่ไม่ใช่คีย์หลัก หรือกล่าวง่ายๆ ว่า ไม่มี Transitive Dependencyเกิดขึ้น”


Third normal form 3nf
Third Normal Form : 3NF

Emp_ID

Name

Job_Class

Chg_Hour

Transitive Dependency

ตาราง Employee ไม่ได้อยู่ในรูป 3NF เนื่องจากมี Transitive Dependency ต้องทำการแตก Relation เพื่อลดความซ้ำซ้อนของข้อมูล ดังนี้

Employee(Emp_id ,Name, Job_Class)

Job(Job_Class, Chg_Hour)


Third normal form 3nf1
Third Normal Form : 3NF

Emp_Name

Job

Emp_ID

Salary

Employee

WORK_ON

TRAINED

D_Complete

Job

Course

Chg_Hour

Job_Class

Course_No

Course_Name



Normalization3
แสดงขั้นตอนของการทำ Normalization

Entity

ที่มีข้อมูลซ้ำซ้อน

กำจัดกลุ่มข้อมูลซ้ำซ้อน

กำจัด Partial

Dependency

1NF

2NF

กำจัด Transitive

Dependency

3NF


Boyce/ Codd Normal Form : BCNF

4. Boyce/Codd Normal Form : BCNF

Relation หนึ่งๆ จะอยู่ในรูปแบบ BCNF ก็ต่อเมื่อ

“1. Relation นั้นๆ ต้องอยู่ในรูปแบบ 3NF

2. ไม่มี Attribute อื่นใน Relation ที่สามารถระบุค่าของ Attribute ที่เป็นคีย์หลักหรือส่วนหนึ่งส่วนใดของคีย์หลักในกรณีที่คีย์หลักเป็นคีย์ผสม(Composite Key)”


Boyce codd normal form bcnf
Boyce-Codd normal form (BCNF)

  • ลักษณะ 3NF ที่ไม่ใช่ BCNF

    • สังเกตว่ายังมี Attribute หนึ่งยังสามารถระบุค่า Attribute ที่เป็นส่วนหนึ่งของ Primary key (C  B)


Boyce/ Codd Normal Form : BCNF

เช่น หากเลือก S# และ P# เป็นคีย์หลักแล้วจะเกิดปัญหาใน Relation นี้คือ SNAME จะมีคุณสมบัติในการระบุค่าของ Attribute S# ได้

S#

SNAME

P#

QTY


Boyce/ Codd Normal Form : BCNF

S#

SNAME

P#

QTY

ดังนั้น Relation SUPPLIER3 ต้องทำการแตกรีเลชันออก โดยแยก attribute ที่สามารถระบุค่าของ PK แยกเป็นอีกรีเลชันหนึ่ง คือ

ORDER2(SNAME, P#, QTY)

SUPPLIER4(SNAME , S#)



Normal form
ประเด็นที่ควรคำนึงถึงประเด็นที่ควรคำนึงถึงในการทำให้เป็นรูปแบบบรรทัดฐาน (Normal Form)

  • การแตก relation มากเกินไป (Overnormalization)

  • การดีนอร์มอลไลเซชัน (Denormalization)


Relation overnormalization
การแตกประเด็นที่ควรคำนึงถึง relation มากเกินไป (Overnormalization)

  • วัตถุประสงค์ของการทำให้เป็นรูปแบบบรรทัดฐาน คือ

    • เพื่อลดปัญหาในด้านความซ้ำซ้อนของข้อมูล

    • เพื่อลดปัญหาในเรื่องการเพิ่ม การลบ หรือการปรับปรุงข้อมูล

  • โดยทั่วไปการออกแบบในระดับแนวคิด ผู้ออกแบบจะพยายามวิเคราะห์ relation ให้อยู่ในรูปแบบ 3NF

  • กรณีที่เกิดปัญหาต่างๆ ที่จำเป็นต้องทำต่อไปถึงรูปแบบ BCNF, 4NF และ 5NF (เกิดขึ้นน้อยมากในทางปฏิบัติ)


  • ด้วยเหตุผลดังกล่าว ผู้ออกแบบไม่ควรพยายามที่จะแตก relation มากเกินความจำเป็น (Overnormalization)เพราะ

    • การแตก relation ออกเป็น relation ย่อยมากเกินไปมีผลต่อประสิทธิภาพในการทำงานของฐานข้อมูล เช่น ในการค้นคืนข้อมูลจะต้องใช้เวลามากกว่าเดิม เป็นต้น


Denormalization
การดีนอร์มอลไลเซชัน ( ผู้ออกแบบไม่ควรพยายามที่จะแตก Denormalization)

  • เป็นกระบวนการที่ตรงกันข้ามกับการ Normalization โดยยอมเก็บข้อมูลที่มีความซ้ำซ้อนกันบ้าง เพื่อแลกกับความเร็วในการเรียกดูข้อมูลที่มากขึ้น เช่น relation นั้นควรจะปรับให้อยู่ในรูปแบบ 3NF แต่หยุดอยู่เพียงรูปแบบ 2NF เป็นต้น

    อาจเป็นเพราะเหตุผลในเรื่องของประสิทธิภาพในการเรียกดู หรือ การค้นคืนข้อมูล และยอมให้เกิดความซ้ำซ้อนของข้อมูลได้


Denormalization1
การดีนอร์มอลไลเซชัน ( ผู้ออกแบบไม่ควรพยายามที่จะแตก Denormalization)

  • การดีนอร์มอลไลเซชันอาจก่อให้เกิดปัญหาความซ้ำซ้อนของข้อมูล เกิดขึ้นได้

    • ควรมีการระบุสาเหตุ และวิธีการในการปรับปรุงข้อมูลในโปรแกรมประยุกต์ใช้งาน เพื่อป้องกันไม่ให้เกิดปัญหาข้อมูลไม่ถูกต้อง

    • ถ้าข้อมูลใน relation นั้นๆ ส่วนใหญ่จะเป็นการเรียกดูข้อมูล (Select)มากกว่าการเพิ่ม ลบ หรือปรับปรุงข้อมูล เพื่อเพิ่มประสิทธิภาพในการทำงานของฐานข้อมูล และไม่มีปัญหาด้านความไม่ถูกต้องของข้อมูลที่ซ้ำซ้อนกันได้


จงวิเคราะห์และจัดทำ ผู้ออกแบบไม่ควรพยายามที่จะแตก Normalization ระบบการลงทะเบียนของนักศึกษา ให้มีความซ้ำซ้อนน้อยที่สุด


ad