normalization
Download
Skip this Video
Download Presentation
Normalization

Loading in 2 Seconds...

play fullscreen
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)
slide7

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)

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

First Normal Form : 1NF

  • First Normal Form : 1NF
  • Relation หนึ่งๆ จะอยู่ในรูปแบบ 1NF ก็ต่อเมื่อ
  • “ค่าของ Attribute ต่างๆ ในแต่ละ Tuple จะมีค่าของข้อมูลเพียงค่าเดียว นั่นคือไม่มี Repeating Groupและ Multi-valued”
slide11
วิธีการทำให้อยู่ในรูปแบบ 1NF
  • 1. กำจัด repeating group (กลุ่มซ้ำ)
  • 2. เพิ่มคีย์หลัก
slide13

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

slide14

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)

slide17

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

slide22

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)
slide24

Boyce/Codd Normal Form : BCNF

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

S#

SNAME

P#

QTY

slide25

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 (เกิดขึ้นน้อยมากในทางปฏิบัติ)
slide29

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

    • การแตก relation ออกเป็น relation ย่อยมากเกินไปมีผลต่อประสิทธิภาพในการทำงานของฐานข้อมูล เช่น ในการค้นคืนข้อมูลจะต้องใช้เวลามากกว่าเดิม เป็นต้น
denormalization
การดีนอร์มอลไลเซชัน (Denormalization)
  • เป็นกระบวนการที่ตรงกันข้ามกับการ Normalization โดยยอมเก็บข้อมูลที่มีความซ้ำซ้อนกันบ้าง เพื่อแลกกับความเร็วในการเรียกดูข้อมูลที่มากขึ้น เช่น relation นั้นควรจะปรับให้อยู่ในรูปแบบ 3NF แต่หยุดอยู่เพียงรูปแบบ 2NF เป็นต้น

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

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

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

ad