ซอฟต์แวร์พัฒนาระบบฐานขอม ูล้ - .th ·...

Post on 24-Apr-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ซอฟตแ์วร์พัฒนาระบบฐานข้อมลูNormalization

ปริญญา น้อยดอนไพร

สาขาวิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี

มหาวิทยาลัยราชภัฏสุราษฎร์ธานี

V.2507201301

วัตถุประสงค์

นักศึกษามีความรู้ความเข้าใจ ดังนี้

• Normalization

• ขั้นตอนการทํา Normalization

• Functional Dependency (FDs)

• ประเภทของ Functional Dependency

• First Normal Form (1NF)

• Second Normal Form (2NF)

• Third Normal Form (3NF)

Normalization คือ วิธีการใช้ในการตรวจสอบและ

แก้ปัญหาทางด้านความซ้ําซ้อนของข้อมูล โดยการดําเนินการ

ให้ข้อมูลในแต่ละ Relation อยู่ในรูปที่เป็นหน่วยที่เล็กที่สุดที่

ไม่สามารถแตกย่อยเป็นหน่วยย่อย ๆ ได้อีก โดยยังคง

ความสัมพันธ์ระหว่างข้อมูลใน Relation ต่าง ๆไว้ตาม

หลักการที่กําหนดไว้ใน Relational Model

Normalization

ขั้นตอนในการทํา Normalization เป็นการดําเนินงานอย่าง

เป็นลําดับที่กําหนดไว้ด้วยกันเป็นขั้นตอน ตามปัญหาที่เกิดขึ้นใน

ขั้นตอนนั้น ๆ ซึ่งแต่ละขั้นตอนเป็นดังนี้

First Normalization Form (1NF)

Second Normalization Form (2NF)

Third Normalization Form (3NF)

Boyce-Codd Normalization Form (BCNF)

Fourth Normalization Form (4NF)

Fifth Normalization Form (5NF)

Normalization

Functional Dependency (FDs)

การพิจารณาโครงสร้างแต่ละ Relation ว่ามีโครงสร้างอยู่ใน

Normal Form ระดับใด จะพิจารณาจาก Functional

Dependency ซึ่งความสัมพันธ์ระหว่าง Attribute ต่าง ๆภายใน

Relation กับ Attribute หรือกลุ่ม Attribute ที่ทําหน้าที่เป็น

Key ของ Relation นั้น ซึ่งความสัมพันธ์นี้ จะถูกนิยามด้วยรูปแบบ

ทางคณิตศาสตร์ที่เรียกว่า “Functional Dependency” ดังนี้

FD :  Determinant‐attribute    Dependency‐attribute

Functional Dependency (FDs)

โดยที่ค่า Determinant-attribute หมายถึง

Attribute ที่ระบุค่าด้วยค่าใดค่าหนึ่งแล้ว สามารถแสดงค่า

ของ Dependency-attribute ซึ่งเป็น Attribute ที่มี

ความสัมพันธ์กับ Determinant-attribute นั้นออกมาเช่น

ตารางแสดงความสัมพันธ์ระหว่างหมายเลขบัตรประชาชน

และชื่อเจ้าของบัตรดังนี้

Person_ID Person_Name

1922224757784 สมเกียรติ

1733299743822 นํ้าผึ้ง

1439224567381 กาญจนา

3829112233289 พินรัฏ

3294779122333 ดวงแกว้

1995553434654 กาญจนา

Person_ID Person_Name

Functional Dependency (FDs)

Functional Dependency (FDs)

Person_NamePerson_ID

จากรูปแสดงการกาํหนดความสัมพันธ์ระหว่าง

Attribute ในรูปของ Functional Dependency

ประเภท Functional Dependency (FDs)

Functional Dependency แบ่งออกเป็น 4 ประเภทดังนี้

1. Functional Dependency ที่เกิดขึ้นจากความสัมพันธ์ระหว่าง

Determinant และ Dependency อย่างละ 1 ค่า เช่น

ความสัมพันธ์ระหว่างหมายเลขบัตรประจําตัวประชาชนและชื่อ

เจ้าของบัตร ดังตารางนี้Person_ID Person_Name

1922224757784 สมเกียรติ

1733299743822 นํ้าผึ้ง

Person_ID Person_Name

2. Functional Dependency ที่เกิดขึ้นจากความสัมพันธ์ระหว่าง

Determinant 1 ค่ากับ Dependency หลายค่า เช่น หมายเลข

บัตรประชาชน และข้อมูลที่ปรากฏอยู่บนบัตรประชาชน ดังตารางนี้

Person_ID Person_Name LName Address BirthDate

1922224757784 สมเกียรติ ชื่นยศ 123 บา้นโป่ง ราชบุรี 3/03/2511

1733299743822 นํ้าผึ้ง สู่สุข 39/6 คลองสาน กทม. 24/6/2539

1439224567381 กาญจนา หิรัญรัตน์ 24/6 ลาดพร้าว1 กทม. 24/6/2539

ประเภท Functional Dependency (FDs)

Person_ID Person_Name LName Address BirthDate

1922224757784 สมเกียรติ ชื่นยศ 123 บา้นโป่ง ราชบุรี 3/03/2511

1733299743822 นํ้าผึ้ง สู่สุข 39/6 คลองสาน กทม. 24/6/2539

1439224567381 กาญจนา หิรัญรัตน์ 24/6 ลาดพร้าว1 กทม. 24/6/2539

Person_ID Person_Name , LName , Address , BirthDate

ประเภท Functional Dependency (FDs)

3. Functional Dependency ที่มีความสัมพันธ์ 2 ทาง ซึ่งเป็น

Functional Dependency ทั้ง Determinant และ Dependency

ต่างสามารถทําหน้าที่ของอีกฝ่ายหนึ่งได้ เช่น ความสัมพันธ์ระหว่างชื่อ

ของผู้จัดการโครงการ (Attribute “Manager”) กับชื่อโครงการ

(Attribute “Project_No”) ซึ่งถ้าทราบชื่อผู้จัดการโครงการจะ

สามารถทราบถึงชื่อของโครงการที่ผู้จัดการนั้นเป็นเจ้าของได้ ใน

ขณะเดียวกัน เมื่อทราบชื่อโครงการก็จะสามารถทราบถึงชื่อของ

ผู้จัดการโครงการนั้นได้ เช่นเดียวกัน ดังตารางต่อไปนี้

ประเภท Functional Dependency (FDs)

Project_No Manager

PJ001 EM004

PJ002 EM045

PJ003 EM981

Project_No Manager

Manager Project_No

Manager Project_No

ประเภท Functional Dependency (FDs)

4. Functional Dependency ที่ต้องใช้ Determinant

มากกว่า 1 ค่า เพื่ออ้างถึง Dependency เช่น ความสัมพันธ์

ระหว่างจํานวนสินค้าที่ผลิตได้ของสินค้าแต่ละชนิดภายใต้

สายการผลิตต่างๆ ดังตารางต่อไปนี้

ประเภท Functional Dependency (FDs)

Product_Line Item_No Used_Qut

L001

I012

I019

I024

30

40

90

L004 I001 73

L005

I001

I012

I024

45

98

34

Product_Line , Item_No Used_Qut

ประเภท Functional Dependency (FDs)

First Normal Form (1NF)

ขั้นตอนนี้เป็นขั้นตอนสําหรับปรับโครงสร้างของ Relation

เพื่อให้ทุก Attribute ของ Relation มีคุณสมบัติ Atomicity กล่าวคือ

โครงสร้างข้อมูลของ Relation ในแบบ 1NF ต้องประกอบด้วย

Table ที่อยู่ในรูป 1NF

1. มี Attribute ที่ได้กําหนดให้เป็น Primary Key

2. ไม่มี Repeating Group

3. Attribute อื่นๆ ต้องขึ้นอยู่กับ Primary Key

ตัวอย่างที่ 1 แสดงการทํา First Normal Form โดย

กําหนดให้ Relation “Order” มีข้อมูลดังนี้

First Normal Form (1NF)

Cust_No Cust_Name City Zone_SaleOrder_Content

Product_ID Order_Qut

C001 นารี เกิดสวา่ง อยธุยา 001

P001

P003

P004

24

30

50

C002 สลกัจิตร สวา่งภาพ ศรีสะเกษ 002

P001

P002

P004

29

40

30

C003 สุทิศา เจ๊กสกลุ เชียงใหม่ 004 P005 60

C004 ตน้สาย ตนัเจริญ เชียงใหม่ 004 P003 40

Cust_No Cust_Name City Zone_Sale Product_ID Order_Qut

C001 นารี เกิดสวา่ง อยธุยา 001 P001 24

C001 นารี เกิดสวา่ง อยธุยา 001 P003 30

C001 นารี เกิดสวา่ง อยธุยา 001 P004 50

C002 สลกัจิตร สวา่งภาพ ศรีสะเกษ 002 P001 29

C002 สลกัจิตร สวา่งภาพ ศรีสะเกษ 002 P002 40

C002 สลกัจิตร สวา่งภาพ ศรีสะเกษ 002 P004 30

C003 สุทิศา เจ๊กสกลุ เชียงใหม่ 004 P005 60

C004 ตน้สาย ตนัเจริญ เชียงใหม่ 004 P003 40

Cust_No,Product_ID Cust_Name,City,Zone_Sale, Order_Qut

ผลลัพธ์ที่ได้จากการทํา 1NF ในรูปของ Function Dependency

ดังนี้

เขียนให้อยู่ในรูปแบบของ Table ได้ดังนี้

Order(Cust_No,Product_ID,Cust_Name,City,Zone_Sale,Order_Qut)

First Normal Form (1NF)

Second Normal Form (2NF)

Table ที่อยู่ในรูปแบบ 2NF จะต้อง

1. อยู่ในรูปแบบของ 1NF และ

2. ไม่มี Partial dependency

Partial dependency เกิดขึ้นในกรณีที่มีข้อมูลในบาง Attribute

ขึ้นอยู่กับ Dependency บางส่วนของ Primary Key จาก table ที่

ได้จาก 1NF เราหาได้ว่า Cust_No และ Product_ID รวมกัน ทํา

หน้าที่เป็น Primary Key ขั้นตอนต่อไปคือ หาว่า มี Attribute

ใดบ้างที่มีความเป็น Partial dependency นั้นคือ ขึ้นอยู่กับ

Cust_No เพียงอย่างเดียวหรือขึ้นอยู่กับ

Product_ID เพียงอย่างเดียว และ Attribute ใด ที่ขึ้นอยู่กับ

Cust_No และ Product_ID อย่างแท้จริง

Cust_No Cust_Name,City,Zone_Sale

ผลลัพธ์ที่ได้จากการทํา 2NF ในรูปของ Function Dependency

ดังนี้

Cust_No ,Product_ID Order_Qut

Second Normal Form (2NF)

Customer(Cust_No, Cust_Name,City,Zone_Sale)

Order (Cust_No ,Product_ID,Order_Qut)

เขียนให้อยู่ในรูปแบบของ Table ได้ดังนี้

Second Normal Form (2NF)

Third Normal Form (3NF)

Table ที่อยู่ในรูปแบบ 3NF จะต้อง

1. อยู่ในรูปแบบของ 2NF และ

2. ไม่มี Transitive dependency

Transitive dependency เกิดขึ้นในกรณีที่มี Attribute บางตัว

ขึ้นอยู่กับ Dependency Attribute ที่ไม่ใช่ Key (non-key

attribute) จาก ตารางที่ได้จาก 2NF

Cust_No Cust_Name,Zone_Sale

ผลลัพธ์ที่ได้จากการทํา 3NF ในรูปของ Function Dependency

ดังนี้

Zone_Sale City

Cust_No ,Product_ID Order_Qut

Third Normal Form (3NF)

Customer(Cust_No, Cust_Name,Zone_Sale)

CustZone (Zone_Sale ,City)

เขียนให้อยู่ในรูปแบบของ Table ได้ดังนี้

Order (Cust_No ,Product_ID,Order_Qut)

Third Normal Form (3NF)

top related