logo normalization · นิยาม multi-valued dependency • a, b, c คือ attribute...

Post on 13-Oct-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

LOGO Normalization

อาจารย์ ดร.ณัฐพงศ์ วงศ์พร้อมมูล คณะวศิวกรรมศาสตร์และเทคโนโลยีอุตสาหกรรม

มหาวทิยาลัยศิลปากร

Normalization

Normalization คือกระบวนการปรับเปลี่ยนโครงสร้างของ Relation

Schema ให้อยู่ในรูปแบบ “Normal Form” ในอันดับต่างๆ

Normal Form (NF) คือรูปแบบโครงสร้างของ Relation ที่มีคุณสมบัติเฉพาะ NF มีหลายระดับ NF ระดับที่สูงกว่า จะมีการจัดโครงสร้างข้อมูลที่ดีกว่า และลดปัญหาที่อาจเกิดขึ้นใน NF ระดับที่ต่่ากว่าได้

ประโยชน์หลักๆของการท่า Normalization คือลดความซ้่าซ้อนของข้อมูล และก่าจัดปัญหาความผิดปกติของข้อมูลที่เกิดจากการ เพิ่ม/ลบหรื อแก้ไขข้อมูล (Insertion/Deletion/Update Anomalies)

2

Normalization

ในการท่า Normalization หากมีการเปลี่ยนแปลง Relation Schema

จะต้องค่านึงถึง การคงความถูกต้องของข้อมูล คือ ต้องรักษาคุณสมบัติเหล่านี้ไว้ คือ

Lossless/Non-additive Join Property คือ เมื่อมีการแบ่งแยก relation

ออกเป็น relation ย่อย แล้ว ถ้าน่ามา join ต้องได้ข้อมูลที่ครบถ้วน ถูกต้อง เหมือนเดิม และไม่มีข้อมูลเกิน

Dependency Preservation Property คือ คุณสมบัติการรักษา Dependency ที่มีอยู่เดิม ให้คงอยู่ต่อไป

ใน Normal Form อันดับที่ 1-3 มีการพิจารณา Key ของ Relation

และ Functional Dependencies ส่วน NF อันดับที่สูงขึ้นไปจะพิจารณา Dependency รูปแบบอื่นๆ เพิ่มเติม

3

• ตัวอย่าง Relation ที่เป็น Non-1NF

Non-First Normal Form

4

• Relation นี้ ไม่อยู่ใน 1NF เพราะ Attribute DLOCATIONS ไม่เป็น Atomic เนื่องจาก DLOCATIONS เก็บค่าชื่อเมืองที่ตั้งของ Department

มากกว่าหนึ่งค่า

คุณสมบัติของ 1NF

• ทุก Attribute ของ Relation เก็บค่าข้อมูลเพียงค่าเดียว นั่นคือแต่ละ Tuple ในทุก Attribute จะมีเพียงข้อมูลเดียว เรียกว่า Atomic หรือ Indivisible Value ดังนั้น Attribute ของ Relation ต้องเป็น Simple

และ Single-valued Attribute

First Normal Form (1NF)

5

มีด้วยกัน 3 วิธีการ คือ

1. Relation Decomposition

การแบ่งออกเป็น Relation ย่อย นั่นคือเอา Attribute ที่ไม่เป็น Atomic

ไปสร้าง Relation ใหม่พร้อมด้วย Primary Key ของ Relation เดิม

2. เพิ่ม Attribute ใหม ่

เป็นการก่าหนดค่า Maximum ของจ่านวนข้อมูลใน Attribute ที่ไม่เป็น Atomic แล้วเพิ่มเป็น Attribute ใหม่

3. เพิ่ม Tuple

เก็บข้อมูลของ Attribute ที่ไม่เป็น Atomic แยกกันเป็นแต่ละ Tuple ซึ่ง Key ของ Relation จะถูกเพิ่มด้วย Attribute ที่ไม่เป็น Atomic

เทคนิคการท่า Relation ให้เป็น 1NF

6

ตัวอย่าง

• Department แตกออกเป็น Department1 และ Department2 ซึ่งเป็น 1NF ทั้งสอง Relation ดังนี ้

Relation Decomposition

7

เพิ่ม Attribute ใหม ่

8

ตัวอย่าง • สมมติใน Relation Department แต่ละ Department มี Location

ไม่เกิน 3 แห่งแล้วจึงเปลี่ยน Attribute ให้เป็น DLOCATION_1

DLOCATION_2 และ DLOCATION_3

ข้อเสีย

• ท่าให้มีหลาย Tuple ที่มีค่าว่าง (NULL) เกิดขึ้น

• ในบางกรณี ไม่สามารถทราบค่า Maximum ของจ่านวน Attribute ได้

ตัวอย่าง

เก็บข้อมูลของ Attribute ที่ไม่เป็น Atomic แยกกันเป็นแต่ละ Tuple ซึ่ง Key ของ Relation จะถูกเพิ่มด้วย Attribute ที่ไม่เป็น Atomic

เพิ่ม Tuple

9

ข้อเสีย คือเกิดข้อมูลที่ซ้าซ้อนกันมาก (Data Redundancy) ซึ่งอาจก่อให้เกิดปัญหา Anomaly ตามมา ซึ่งมี 3 ลักษณะ คือ

1. Insertion Anomaly เช่น ถ้าต้องการเพิ่ม Location ใหม่ของ Department หมายเลข 4 จ่าเป็นต้องใส่ DNAME และ DMGRSSN ซึ่งเป็นข้อมูลที่มีอยู่แล้ว และต้องใส่ข้อมูลให้ถูกต้อง สอดคล้องกับที่มีอยู่เดิม ไม่เช่นนั้นก็จะเกิดความขัดแย้งกันของข้อมูลได้

2. Deletion Anomaly เช่น หากต้องการลบ Location ของ Department

หนึ่งซึ่งเหลือเป็น Tuple สุดท้าย ข้อมูลอื่นที่เกี่ยวข้องของ Department นั้นจะถูกลบไปทั้งหมด

3. Update Anomaly เช่น หากมีการเปลี่ยนแปลง Manager ของ Department ต้องตามไปแก้ไข ในทุก ๆ Tuple ที่เป็น Department เดียวกัน หากแก้ไขไม่ครบถ้วน ก็จะเกิดความขัดแย้งของข้อมูล

เทคนิคการท่า Relation ให้เป็น 1NF

10

ในการท่า 2NF มีการพิจารณาถึง Functional Dependency ระหว่าง Primary Key กับ Attribute อื่น ๆ ใน Relation นั้น

• Full Functional Dependency คือ FD ที่ ตัว Dependent ขึ้นอยู่กับทุก Attribute ของ Determinant ไม่ใช่เพียงบางส่วน นั่นคือ FD: X

Y เป็น Full FD ก็ต่อเมื่อ ไม่มี Z ซึ่งเป็น Subset แท้ของ X โดยมีสัญลักษณ ์Z X ซึ่งมีคุณสมบัติ Z Y

• FD ที่ไม่ใช่ Full FD เรียกว่า Partial Functional Dependency

ข้อสังเกต หาก X ประกอบด้วย Attribute เดียว X Y จะเป็น Full FD

เสมอ

Second Normal Form (2NF)

11

ตัวอย่าง AXYZ Full FD

BXZ Full FD

ACXYZ Partial FD (เพราะมี AXYZ)

XYEF Full FD (หากไม่มี XEF หรือ YEF)

• Prime Attribute คือ attribute ซึ่งเป็นส่วนหนึ่งของ Primary Key

• Nonprime Attribute คือ Attribute ซึ่งไม่เป็นส่วนหนึ่งของ Primary

Key

Second Normal Form (2NF)

12

Relation R อยู่ใน Second Normal Form

• ถ้า R เป็น 1NF และไม่มี Nonprime Attribute ใดใน R ที่มีความสัมพันธ์ แบบ Partial FD กับ Primary Key

• Primary key ต้องมีความสัมพันธ์แบบ Full FD กับทุก Nonprime

Attribute

• ไม่มี Nonprime Attribute ใดที่ขึ้นอยู่กับบางส่วนของ Primary Key

นิยาม Second Normal Form (2NF)

13

ตัวอย่าง

Second Normal Form (2NF)

14

Primary Key ของ ORDER1 คือ {CustID, ProductID}

FD ของ ORDER1 คือ

• FD1: {CustID, ProductID} OrderQTY

• FD2: CustID {CustName, City, ZoneSale}

ORDER1 เป็น 1NF แต่ไม่อยู่ใน 2NF เพราะ FD2 ท่าให้เกิด Partial FD

จาก Primary Key ไปยัง Nonprime Attribute

การท่า Relation ให้อยู่ใน 2NF ท่าได้โดยการแบ่งแยก R ออกเป็น Relation ย่อย ด้วยการน่า Nonprime Attribute ที่มีปัญหาออกไปสร้าง Relation ใหม่ พร้อมด้วยส่วนหนึ่งของ Primary Key ท่ีเป็นตัวก่าหนดค่า Attribute นั้น โดยใน Relation เดิม Attribute ส่วนหนึ่งของ Primary

Key นั้นเป็น Foreign Key ที่ชี้ไปยัง Relation ใหม่ ซึ่งมี Attribute เป็น Primary Key

เช่น ORDER1 จะถูกแบ่งเป็น CUST กับ CustOrder ซึ่งเป็น 2NF ทั้งคู่

2NF Normalization

15

ในการท่า 3NF มีการพิจารณาถึง Transitive Dependency ระหว่าง Primary Key กับ Attribute อื่นๆ ใน Relation นั้น Transitive Dependency

FD: XY เป็น Transitive Dependency ถ้า

• มี Z ซึ่ง XZ และ ZY

ตัวอย่าง AXYZ

YZE

AE เป็น Transitive Dependency

Third Normal Form (3NF)

16

Relation R อยู่ใน 3NF

• ถ้า R เป็น 2NF และ R ต้องไม่มี Transitive Dependency ระหว่าง Primary กับ Nonprime Attribute

• ไม่มี Nonprime Attribute ใดที่ขึ้นกับ Nonprime Attribute อื่น

• ไม่มี XY โดยที่มี XZ และ ZY ซึ่ง X เป็น Primary Key และ Y, Z เป็น Nonprime Attribute ทั้งคู่

นิยาม Third Normal Form (3NF)

17

การท่า Relation ให้อยู่ใน 3NF ท่าได้โดยการแยก R ออกเป็น Relation ย่อย ด้วยการน่า Nonprime attribute ที่ท่าให้เกิด Transitive

Dependency ออกไปสร้าง Relation ใหม่ (YและZ) ซึ่ง Relation ใหม่จะมี Determinant Attribute (Z) เป็น Primary Key และ ที่ Relation เดิมยังคง Z ไว้เพ่ือเป็น Foreign Key

3NF Normalization

18

3NF Normalization

19

หาก Relation CUST เกิดมีความสัมพันธ์ระหว่าง City กับ ZoneSale คือ FD3 : CityZoneSale นั่นคือ เมือง ๆ หนึ่งสัมพันธ์กับค่า ZoneSale เพียงค่าเดียว ท่าให้เกิดเป็น FD ระหว่าง Nonprime Attribute จึงท่าให้ Relation CUST ไม่อยู่ใน 3NF โดยสามารถแยกออกมาเป็น CUST2

และ CityZone ดังนี ้

สรุปการท่า Normalization ของ ORDER1

20

General Definition of 2NF and 3NF

21

ส่าหรับ Relation ที่มี Candidate Key มากกว่าหนึ่ง รูปทั่วไปของ 2NF

และ 3NF จะน่าทุก Candidate key มาร่วมพิจารณาด้วย นั่นคือจะได้

• Prime Attribute คือ Attribute ที่เป็นส่วนหนึ่งของ Candidate Key

(ตัวใดตัวหนึ่งรวมถึง Primary Key)

• Nonprime Attribute คือ Attribute ที่ไม่ได้เป็นส่วนหนึ่งของ Candidate

Key ตัวใด

ตัวอย่างการใช้งาน

Non-1NF

ค าน าหน้า ชื่อ นามสกุล รหัสบัตรประชาชน รหัสวชิา วชิา

นาย สมชาย ใจดี 5384032132356 111 222

ภาษาไทย ภาษาองักฤษ

นางสาว สมหญิง ใจมัน่ 5384032144444 222 333

ภาษาองักฤษ วิทยาศาสตร์

นาย สมปอง ใจงาม 5384032155555 333 111

วิทยาศาสตร์ ภาษาไทย

Database design for Applications

First Normalized Form (1NF)

ค าน าหน้า ชื่อ นามสกุล รหัสบัตรประชาชน รหัสวชิา วชิา

นาย สมชาย ใจดี 5384032132356 111 ภาษาไทย

นาย สมชาย ใจดี 5384032132356 222 ภาษาองักฤษ

นางสาว สมหญิง ใจมัน่ 5384032144444 222 ภาษาองักฤษ

นางสาว สมหญิง ใจมัน่ 5384032144444 333 วิทยาศาสตร์

นาย สมปอง ใจงาม 5384032155555 333 วิทยาศาสตร์

นาย สมปอง ใจงาม 5384032155555 111 ภาษาไทย

Partial Functional Dependency

Database design for Applications

Second Normalized Form (2NF)

ค าน าหน้า

ชื่อ นามสกุล รหัสบัตรประชาชน

นาย สมชาย ใจดี 5384032132356

นางสาว สมหญิง ใจมัน่ 5384032144444

นาย สมปอง ใจงาม 5384032155555

รหัสบัตรประชาชน

รหัสวชิา วชิา

5384032132356 111 ภาษาไทย

5384032132356 222 ภาษาองักฤษ

5384032144444 222 ภาษาองักฤษ

5384032144444 333 วิทยาศาสตร์

5384032155555 333 วิทยาศาสตร์

5384032155555 111 ภาษาไทย

Transition Functional Dependency

Database design for Applications

Third Normalized Form (3NF)

ค าน าหน้า ชื่อ นามสกุล รหัสบัตรประชาชน

นาย สมชาย ใจดี 5384032132356

นางสาว สมหญิง ใจมัน่ 5384032144444

นาย สมปอง ใจงาม 5384032155555

รหัสวชิา ชื่อวชิา

111 ภาษาไทย

222 ภาษาองักฤษ

333 วิทยาศาสตร์

รหัสบัตรประชาชน รหัสวชิา

5384032132356 111

5384032132356 222

5384032144444 222

5384032144444 333

5384032155555 333

5384032155555 111

PK PK

PK PK

ตัวอย่าง การท่า Normalization จาก 1NF ถึง 3NF

26

Boyce-Codd Normal Form (BCNF)

27

BCNF เป็นรูปแบบหนึ่งของ 3NF ที่มีเง่ือนไข หรือคุณสมบัติเพิ่มเติม

• Relation R อยู่ใน BCNF ถ้า หาก R มี FD: XA แล้ว X คือ Super

Key ของ R

(หรือ หาก FD: XA เป็น Minimal แล้ว X คือ Candidate Key)

• ใน BCNF ทุก FD ของ Relation R ตัว Determinant ต้องมีคุณสมบัติเป็น Key เท่านั้น

ส่วนใหญ่ Relation ที่เป็น 3NF มักเป็น BCNF ยกเว้น Relation ที่มี FD:

XA โดยที่ X ไม่ใช่ Super Key แต่ A เป็น Prime Attribute ซึ่งใน 3NF ยอมรับได้

รูปแบบ Relation ที่อยู่ใน 3NF แต่ไม่ใช่ BCNF

28

Key ของ R คือ AB แต่มี FD2 : CB ซึ่งมี ตัว Determinant คือ C ที่ไม่ใช่ key ของ R ท่าให้ R ไม่อยู่ใน BCNF

ตัวอย่าง การท่า BCNF Normalization

29

Fourth Normal Form (4NF)

30

ใน 4NF มีการพิจารณา Dependency ลักษณะอื่น นอกเหนือจาก Functional Dependency ได้แก่ Multi-valued Dependency (MVD)

• Multi-valued Dependency มักเกิดจาก Multi-valued Attributes ท่ีเป็นอิสระต่อกัน อยู่รวมกันใน Relation เดียว แล้วในการท่า 1NF ต้องกระจายค่าต่างๆออก จึงต้องมีการเก็บค่าข้อมูลซ้่าๆ เพื่อยังคง Independence ของ Attributes เดิมไว้

Fourth Normal Form (4NF)

31

นิยาม Multi-valued Dependency

• A, B, C คือ Attribute ใน Relation R

• Multi-valued Dependency จาก A ไป B เขียนแทนด้วย AB (A

Multi-determines B) ก็ต่อเมื่อ Set ของค่า B ที่จับคู่กับค่า (A,C)

ขึ้นอยู่กับค่า A เท่านั้น และเป็นอิสระต่อ C หมายความว่า ค่า A หนึ่งๆ match กับค่า B กลุ่มหนึ่ง ไม่ว่าค่า C จะเป็นอะไรก็แล้วแต่ ค่า B ที่ match

กับ (A,C) ขึ้นอยู่กับ A เท่านั้น

Fourth Normal Form (4NF)

32

ตัวอย่าง

ใน Relation EMP พบว่า ENAME PNAME และ ENAME

DNAME

จากตัวอย่างข้างต้น Relation EMP เป็น BCNF (ทุก Attribute

เป็น Primary Key จึงไม่มีข้อขัดแย้งใดๆ ต่อคุณสมบัติของ 1NF, 2NF, 3NF

และ BCNF) แต่พบว่ามี MVD คือ ENAMEPNAME|DNAME

ซึ่งขัดแย้งต่อคุณสมบัติของ 4NF Relation EMP จึงไม่อยู่ใน 4NF

Fourth Normal Form (4NF)

33

การท่าให้ Relation EMP เป็น 4NF ท่าได้โดยการแยกเป็น 2 Relation ย่อย EMP_PROJECTS กับ EMP_DEPENDENTS ดังนี ้

Fifth Normal Form (5NF)

34

• ใน 5NF หรือ Project-Join Normal Form มีการพิจารณาถึง Dependency ที่เรียกว่า Join Dependency ซึ่งเป็นการตรวจสอบว่า การแยก Relation ออกเป็น Relation ย่อย เมื่อน่ามารวมกัน ด้วยวิธีการ Join

นั้นได้ Relation กลับมาเหมือนเดิมทุกประการหรือไม่

• Join Operation หรือ Natural Join

o ถ้ามี R1(X,Y) และ R2(Y,Z)

o ค่า *(R1, R2) หรือ R1 JOIN R2 = R3(X, Y, Z)

โดยที่ t(x, y, z) อยู่ใน R3 ก็ต่อเมื่อ มี t1(x,y) อยู่ใน R1 และ t2(y,z) อยู่ใน R2

Fifth Normal Form (5NF)

35

Join Dependency (JD)

ในการแยก Relation ออกเป็นส่วนย่อย (Decomposition หรือ Projection

คือการเลือกบางส่วน) R1, R2, R3, …, Rn

R1, R2, R3, …, Rn มีคุณสมบัติ Join Dependency ก็ต่อเมื่อ R1 JOIN

R2 JOIN R3 … JOIN Rn = R นั่นคือเมื่อเอา Relation ย่อยมารวมกันต้องได้ Relation ดั้งเดิม ที่ใม่มีข้อมูลสูญหายและไม่มี Tuple ที่เกินมา ที่เรียกว่า Spurious Tuple

นิยาม Fifth Normal Form (5NF)

36

Relation R อยู่ใน 5NF ถ้า R อยู่ใน 4NF และ การแบ่งแยก Relation R มีคุณสมบัติ Join Dependency

ในทางปฏิบัติ Relation ที่ต้อง normalize จนถึง 4NF และ 5NF

มักไม่พบมากนัก เพราะมีรูปแบบที่ค่อนข้างเฉพาะเจาะจง โดยปกติ อย่างน้อย Relation ที่ดี ควรจะท่าการ Normalize BNCF

ตัวอย่าง การท่า 5NF Normalization

37

top related