sa12 การออกแบบฐานข้อมูล (database design)

35
1 บทที 12 การออกแบบฐานข้อมูล (Database Design)

Upload: phichya-laemluang

Post on 27-Jul-2015

1.655 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: sa12 การออกแบบฐานข้อมูล (database design)

1

บทท 12 การออกแบบฐานขอมล

(Database Design)

Page 2: sa12 การออกแบบฐานข้อมูล (database design)

2

การออกแบบฐานขอมล

วตถประสงคการเรยนร

เพอใหทราบวธการเขยนแผนภาพ E-R Diagram

เพอใหทราบวธการน าความตองการของผใชมาเขยน E-R Diagram

เพอใหทราบวธการนอมลไลซขอมล

เพอใหทราบขนตอนการออกแบบฐานขอมล

เพอใหทราบวธการเขยน Relation Schema

เพอใหทราบวธการเขยน Table Layout

Page 3: sa12 การออกแบบฐานข้อมูล (database design)

3

การออกแบบฐานขอมล

ค าส าคญเกยวกบการออกแบบฐานขอมล

1. เอนตท (Entity) หมายถง ชอหรอค านามทใชอางถงขอมลใดขอมลหนง ซงอาจจะเปนขอมล

ของ บคคล สถานท หรอสงของตาง ๆ ยกตวอยาง เชน นกศกษา , อาจารย, ขบวนวชา, สนคา หรอลกคา เปนตน

2. แอตทบวต (Attribute) หมายถง คณลกษณะหรอคณสมบตของเอนตท เชน แอตทบวตของ

นกศกษา จะไดแก รหสนกศกษา, ชอ, นามสกล, ภาควชา, คณะ เปนตน สวนแอตทบวตของสนคา

ไดแก รหสสนคา, ชอสนคา และราคาเปนตน

3. ความสมพนธของขอมล (Relationship) เปนความสมพนธทเกดขนระหวางเอนตท 2 เอนตทขนไป เชน ความสมพนธระหวาง นกศกษากบขบวนวชา

3.1 ความสมพนธแบบหนงตอหนง (One-to-One Relationship)3.2 ความสมพนธแบบหนงตอหลาย (One-to-Many Relationship)3.3 ความสมพนธแบบหลายตอหลาย (Many-to-Many Relationship)

Page 4: sa12 การออกแบบฐานข้อมูล (database design)

4

การออกแบบฐานขอมล

ค าส าคญเกยวกบการออกแบบฐานขอมล (ตอ)

4. คยหลก (Primary Key) หมายถง แอตทรบวตทระบอยในเอนตท โดยทแอตทรบวตนน(แอตทรบวตหรอหลายแอตทรบวต)สามารถใชอางถงหรอจ าแนกรายการขอมลในแตละเอนตทออกจากกน

5. ฟงกชนการขนตอกน (Functional Dependency) เปนฟงกชนทแอตทรบวตตาง ๆ ในเอนตท ท

อางองโดยใชแอตทรบวตใดแอตทรบวตหนง เชน ชอนกศกษา และนามสกลของนกศกษา สามารถ

อางองโดยใชรหสของนกศกษา

รหสนกศกษา -> ชอนกศกษา,นามสกล6. รเลช น (relation) เปนตาราง 2 มตทใชบรรจขอมล โดยในแตละรเลช นจะประกอบดวยแถว

(Row) และคอลมน(Column) ซงในแตละคอลมนจะใชแทนแอตทรบวตตาง ๆ และในแตละแถว

ของตารางจะเปนรายการขอมลแตละรายการทเรยกวา ทพเพล (Tuple)

Page 5: sa12 การออกแบบฐานข้อมูล (database design)

5

การออกแบบฐานขอมล

ตาราง แสดงรเลชนของนกศกษา

รหสนกศกษา ชอ นามสกล รหสภาควชา ชอภาควชาวชา

4666024561 สมชาย บญมา D001 เทคโนโลยสารสนเทศ

4666024573 สมหญง บญม D002 การจดการอตสาหกรรม

4666024595 สมชาต บญนอย D003 บรหารงานกอสราง

4666024606 สมศร บญมาก D001 เทคโนโลยสารสนเทศ

Page 6: sa12 การออกแบบฐานข้อมูล (database design)

6

การออกแบบฐานขอมล

ค าส าคญเกยวกบการออกแบบฐานขอมล (ตอ)

7. โครงสรางรเลชน (relation Schema) เปนรปแบบทใชแสดงถงโครงสรางของรเลชนใน

ลกษณะของเอนตททประกอบดวยเซตของแอตทรบวต โดยมรปแบบการเขยนดงน

ชอรเลชน(แอตทรบวตท 1, แอตทรบวตท 2, …, แอตทรบวตสดทาย)

ตวอยาง นกศกษา(รหสนกศกษา, ชอ, นามสกล, รหสภาควชา, ชอภาควชา)โดยมความหมายวา รเลชนนกศกษาประกอบไปดวยแอตทรบวตรหสนกศกษา, ชอ, นามสกล, รหส

ภาควชา, ชอภาควชา โดยมรหสนกศกษาเปนคยหลก(จะใชการขดเสนใตใหกบแอตทรบวตทเปนคยหลก)

Page 7: sa12 การออกแบบฐานข้อมูล (database design)

7

การออกแบบฐานขอมล

แผนภาพแสดงความสมพนธของขอมล (Entity-Relationship Diagram)

1. สญลกษณของเอนตท จะใชสญลกษณรปสเหลยมผนผาแทนสญลกษณของเอนตท

โดยจะแสดงชอของเอนตทไวในสเหลยมผนผา

2. สญลกษณของแอตทรบวต จะใชสญลกษณรปวงรแทนแอตทรบวตตาง ๆ และจะ

เขยนชอของแอตทรบวตไวในสญลกษณรปวงร

3. สญลกษณของความสมพนธ จะใชสญลกษณรปสเหลยมขนมเปยกปนแทน

ความสมพนธของเอนตทตางๆ และจะใชเสนตรงแทนเสนความสมพนธจากเอนต

ทหนงไปยงอกเอนตท

Page 8: sa12 การออกแบบฐานข้อมูล (database design)

8

การออกแบบฐานขอมล

1 ความสมพนธแบบหนงตอหนง (One-to-One Relationship)

Page 9: sa12 การออกแบบฐานข้อมูล (database design)

9

การออกแบบฐานขอมล

2. ความสมพนธแบบหนงตอหลาย (One-to-Many Relationship)

Page 10: sa12 การออกแบบฐานข้อมูล (database design)

10

การออกแบบฐานขอมล

3. ความสมพนธแบบหลายตอหลาย (Many-to-Many Relationship)

Page 11: sa12 การออกแบบฐานข้อมูล (database design)

11

ตวอยางของ E-R Diagram

Page 12: sa12 การออกแบบฐานข้อมูล (database design)

12

การออกแบบฐานขอมล

ข นตอนการออกแบบฐานขอมล

1. ออกแบบฐานขอมลในระดบแนวความคด (Conceptual Design)

2. ออกแบบฐานขอมลในระดบตรรกะ (Logical Design)

3. ออกแบบฐานขอมลในระดบกายภาพ (Physical Design)

Page 13: sa12 การออกแบบฐานข้อมูล (database design)

13

การออกแบบฐานขอมล

ออกแบบฐานขอมลในระดบแนวความคด (Conceptual Design)1. แปลงขอมลทอยในลกษณะของแหลงจดเกบขอมล (Data Store) ทปรากฏอยใน

แผนภาพแสดงการไหลของขอมล และพจนานกรมขอมลใหอยในลกษณะของเอนตท

และแอตทรบวต

2. สรางฟงกชนการขนตอกน (Functional Dependency) ใหกบแอตทรบวตตาง ๆ ใน

ทกเอนตททมอย

3. ก าหนดแอตทรบวตทจะเปนคยหลกของแตละเอนตท และเขยนอธบายในลกษณะ

โครงสรางของรเลชน (relation Schema)4. สรางความสมพนธของแตละเอนตทในลกษณะของแผนภาพ E-R Diagram

Page 14: sa12 การออกแบบฐานข้อมูล (database design)

14

การออกแบบฐานขอมล

ออกแบบฐานขอมลในระดบตรรกะ (Logical Design)หลงจากทออกแบบฐานขอมลในระดบแนวความคดแลว จะไดแผนภาพ E-R

Diagram ทยงมาสามารถน าไปสรางเปนฐานขอมลไดจรง เนองจากโครงสราง

ขอมลบางสวนยงมปญหาในเรองความซ าซอนของขอมล ดงนนเพอลดปญหา

ดงกลาวจงจ าเปนทจะตองท าการออกแบบฐานขอมลในระดบของตรรก เพอ

ปรบปรงใหเกดโครงสรางของการจดเกบทดขนดวยการท านอมลไรเซช น

(Normalization)

Page 15: sa12 การออกแบบฐานข้อมูล (database design)

15

การนอรมลไลเซช น (Normalization)

การนอรมลไลเซซ น เปนกระบวนการปรบปรงโครงสรางของฐานขอมล

เพอลดความซ าซอนของขอมล ใหอยในรปแบบทเปนปกต (NormalForm) ในระดบตาง ๆ กนดงน

• การนอรมลไลเซช นระดบท 1 (First Normal Form)• การนอรมลไลเซช นระดบท 2 (Second Normal Form)• การนอรมลไลเซช นระดบท 3 (Third Normal Form)• การนอรมลไลเซช นระดบ Boyce-Codd (Boyce-Codd Normal Form)• การนอรมลไลเซช นระดบท 4 (Fourth Normal Form)• การนอรมลไลเซช นระดบท 5 (Fifth Normal Form)

Page 16: sa12 การออกแบบฐานข้อมูล (database design)

16

การนอรมลไลเซช นระดบท 1 (1NF)

การนอรมลไลเซช นระดบท 1 (First Normal Form)เปนการปรบโครงสรางของเอนตทหรอรเลช นทอยในลกษณะไมนอรมลใหอยในลกษณะของ

Normal Form คอในแตละแอตทรบวตของเอนตทตาง ๆ จะตองมคาเดยว

ตวอยางฟงกชนการขนตอกนของนกศกษากอนการนอรมลไลเซช นระดบท 1

รหสนกศกษา -> ชอ, นามสกล, รหสวชา, ชอวชา, ภาคเรยน

โครงสรางของรเลชนนกศกษา

นกศกษา(รหสนกศกษา, ชอ, นามสกล, รหสวชา, ชอวชา,ภาคเรยน)

Page 17: sa12 การออกแบบฐานข้อมูล (database design)

17

ตารางรเลชนของนกศกษากอนการนอรมลไลซระดบท 1รหสนกศกษา ชอ นามสกล รหสวชา ชอวชา ภาคเรยน

4666024561 สมชาย บญมา 662103 โปรแกรมคอมพวเตอร 1/2547

4666024573 สมหญง บญม 662103 โปรแกรมคอมพวเตอร 1/2547

662221 เทคโนโลยเครอขาย 2/2547

4666024595 สมชาต บญนอย 662103 โปรแกรมคอมพวเตอร 1/2547

662221 เทคโนโลยเครอขาย 2/2547

การนอรมลไลเซช นระดบท 1 (1NF)

Page 18: sa12 การออกแบบฐานข้อมูล (database design)

18

ตวอยางฟงกชนการขนตอกนของนกศกษาหลงการนอรมลไลเซช นระดบท 1

รหสนกศกษา, รหสวชา -> ชอ, นามสกล, ชอวชา, ภาคเรยน

โครงสรางของรเลชนนกศกษา

นกศกษา(รหสนกศกษา, รหสวชา, ชอ, นามสกล, ชอวชา,ภาคเรยน)

การนอรมลไลเซช นระดบท 1 (1NF)

Page 19: sa12 การออกแบบฐานข้อมูล (database design)

19

ตารางรเลชนของนกศกษาทผานการนอรมลไลซระดบท 1 แลวรหสนกศกษา ชอ นามสกล รหสวชา ชอวชา ภาคเรยน

4666024561 สมชาย บญมา 662103 โปรแกรมคอมพวเตอร 1/2547

4666024573 สมหญง บญม 662103 โปรแกรมคอมพวเตอร 1/2547

4666024573 สมหญง บญม 662221 เทคโนโลยเครอขาย 2/2547

4666024595 สมชาต บญนอย 662103 โปรแกรมคอมพวเตอร 1/2547

4666024595 สมชาต บญนอย 662221 เทคโนโลยเครอขาย 2/2547

การนอรมลไลเซช นระดบท 1 (1NF)

Page 20: sa12 การออกแบบฐานข้อมูล (database design)

20

การนอรมลไลเซช นระดบท 2 (Second Normal Form)การท านอรมลไลซระดบท 2 หรอ 2NF นนท าไดโดยจะตองผานการท านอรมลไลซระดบท 1 เสยกอน และจะตองไมใหเกดกรณทแอตทรบวตอนทไมใชคย

หลก(Nonkey Attribute) ไปขนอยกบแอตทรบวตทเปนคยหลกแอตทรบวตใดแอตทรบวตหนงไมได

การนอรมลไลเซช นระดบท 2 (2NF)

Page 21: sa12 การออกแบบฐานข้อมูล (database design)

21

ตวอยางของขอมลนกศกษากอนการนอรมลไลเซช นระดบท 2

นกศกษา(รหสนกศกษา, รหสวชา, ชอ, นามสกล, ชอวชา, ภาคเรยน)

ฟงกชนการขนตอกนของนกศกษา เปนดงน

รหสนกศกษา -> ชอ, นามสกลรหสวชา -> ชอวชารหสนกศกษา,รหสวชา -> ภาคเรยน

การนอรมลไลเซช นระดบท 2 (2NF)

Page 22: sa12 การออกแบบฐานข้อมูล (database design)

22

ตวอยางของขอมลนกศกษาหลงการนอรมลไลเซช นระดบท 2 นกศกษา (รหสนกศกษา, ชอ, นามสกล) ขบวนวชา (รหสวชา, ชอวชา) การลงทะเบยน (รหสนกศกษา, รหสวชา, ภาคเรยน)

การนอรมลไลเซช นระดบท 2 (2NF)

Page 23: sa12 การออกแบบฐานข้อมูล (database design)

23

ตารางรเลชนของนกศกษาทผานการนอรมลไลซระดบท 2 แลวรหสนกศกษา ชอ นามสกล

4666024561 สมชาย บญมา

4666024573 สมหญง บญม

4666024573 สมหญง บญม

4666024595 สมชาต บญนอย

4666024595 สมชาต บญนอย

การนอรมลไลเซช นระดบท 2 (2NF)

Page 24: sa12 การออกแบบฐานข้อมูล (database design)

24

ตารางรเลชนของขบวนวชาทผานการนอรมลไลซระดบท 2 แลว

รหสวชา ชอวชา

662103 โปรแกรมคอมพวเตอร

662221 เทคโนโลยเครอขาย

662103 โปรแกรมคอมพวเตอร

การนอรมลไลเซช นระดบท 2 (2NF)

Page 25: sa12 การออกแบบฐานข้อมูล (database design)

25

ตารางรเลชนของการลงทะเบยนทผานการนอรมลไลซระดบท 2 แลวรหสนกศกษา รหสวชา ภาคเรยน

4666024561 662103 1/2547

4666024573 662103 1/2547

4666024573 662221 2/2547

4666024595 662103 1/2547

4666024595 662221 2/2547

การนอรมลไลเซช นระดบท 2 (2NF)

Page 26: sa12 การออกแบบฐานข้อมูล (database design)

26

การนอรมลไลเซช นระดบท 3 (Third Normal Form)การท านอรมลไลซระดบท 3 หรอ 3NF นนท าไดโดยจะตองผานการท านอรมลไลซระดบท 2 เสยกอน และจะตองไมใหเกดกรณทแอตทรบวตอนทไมใชคย

หลก(Nonkey Attribute) ไปขนอยกบแอตทรบวตอนทไมใชคยหลกเชนเดยวกน

การนอรมลไลเซช นระดบท 3 (3NF)

Page 27: sa12 การออกแบบฐานข้อมูล (database design)

27

ตวอยางของขอมลนกศกษากอนการนอรมลไลเซช นระดบท 3

นกศกษา (รหสนกศกษา, ชอ, นามสกล, รหสภาควชา, ชอภาควชา)ขบวนวชา (รหสวชา, ชอวชา)การลงทะเบยน (รหสนกศกษา, รหสวชา, ภาคเรยน)

ฟงกชนการขนตอกนของนกศกษา เปนดงน

รหสนกศกษา -> ชอ, นามสกล, รหสภาควชารหสวชา -> ชอวชารหสนกศกษา,รหสวชา -> ภาคเรยน

รหสภาควชา -> ชอภาควชา

การนอรมลไลเซช นระดบท 3 (3NF)

Page 28: sa12 การออกแบบฐานข้อมูล (database design)

28

ตวอยางของขอมลนกศกษาหลงการนอรมลไลเซช นระดบท 3

นกศกษา (รหสนกศกษา, ชอ, นามสกล, รหสภาควชา)ขบวนวชา (รหสวชา, ชอวชา)การลงทะเบยน (รหสนกศกษา, รหสวชา, ภาคเรยน)ภาควชา (รหสภาควชา, ชอภาควชา)

การนอรมลไลเซช นระดบท 3 (3NF)

Page 29: sa12 การออกแบบฐานข้อมูล (database design)

29

ตวอยาง E-R Diagram ของขอมลนกศกษาหลงการนอรมลไลเซช นระดบท 3

การนอรมลไลเซช นระดบท 3 (3NF)

Page 30: sa12 การออกแบบฐานข้อมูล (database design)

30

การนอรมลไลเซช นระดบท 3 (3NF)

ตารางแสดงรเลชนของนกศกษาทผานการนอรมลไลซระดบท 3 แลว

รหสนกศกษา ชอ นามสกล รหสภาควชา

4666024561 สมชาย บญมา D001

4666024573 สมหญง บญม D002

4666024573 สมหญง บญม D002

4666024595 สมชาต บญนอย D003

4666024595 สมชาต บญนอย D003

Page 31: sa12 การออกแบบฐานข้อมูล (database design)

31

การนอรมลไลเซช นระดบท 3 (3NF)

ตารางแสดงรเลชนของภาควชาทผานการนอรมลไลซระดบท 3 แลว

รหสภาควชา ชอภาควชา

D001 เทคโนโลยสารสนเทศ

D002 การจดการอตสาหกรรม

D003 บรหารงานกอสราง

Page 32: sa12 การออกแบบฐานข้อมูล (database design)

32

การออกแบบฐานขอมล

ออกแบบฐานขอมลในระดบกายภาพ (Physical Design)หลงจากทผานการออกแบบฐานขอมลในระดบตรรกแลว จะไดโครงสรางของรเลชน และ

ความสมพนธตาง ๆ ของรเลชน ทแสดงอยในลกษณะของแผนภาพ E-R Diagramโดยทรเลชนและความสมพนธเหลานไดผานขนตอนของการปรบปรงโครงสราง หรอ

การท านอรมลไลซใหอยในโครงสรางระดบทยอมรบได(โดยอาจจะผานการนอลมลไลซใหอยในระดบ 3NF, BCNF, 4NF หรอ5NF ตามความเหมาะสม) ขนตอนตอไป คอ

การพยายามออกแบบใหไดโครงสรางของฐานขอมลในลกษณะทางกายภาพ คอมการ

ออกแบบในสวนรายละเอยดของแอตทรบวตตาง ๆ วาเปนขอมลชนด และมขนาด

เทาไร โดยการเขยนอธบายในลกษณะ ตารางโครงสรางขอมล (TableLayout)

Page 33: sa12 การออกแบบฐานข้อมูล (database design)

33

การเขยนตารางโครงสรางขอมล

1. ชอแอตทรบวต(Attribute Name) เปนคอลมนทใชแสดงชอของแอตทร

บวต โดยชอเหลานจะตองสอดคลองกบชอของแอตทรบวตทปรากฏอยใน

โครงสรางของรเลชนและในแผนภาพ E-R Diagram2. ค าอธบาย (Description) เปนคอลมนทแสดงค าอธบายเพมเตมเกยวกบชอ

แอตทรบวต ในกรณทผออกแบบตงชอแอตทรบวตส นเกนไปจนไมได

ความหมาย

3. ประเภทขอมล(Data Type) เปนคอลมนทแสดงประเภทของขอมลท

ประกอบเปนแอต ทรบวต เชน ขอมลทเปนตวอกษร(Character), ตวเลข

(Numeric), วนทและเวลา(Date-Time) หรอคาทางตรรก(Logical) เปนตน

ตารางโครงสรางขอมล (Table Layout)

Page 34: sa12 การออกแบบฐานข้อมูล (database design)

34

การเขยนตารางโครงสรางขอมล (ตอ)

4. ขนาดขอมล(Data Size) เปนคอลมนทแสดงขนาดของขอมล โดยจะตอง

สมพนธกบชนดของขอมลทก าหนด ซงโดยมากจะระบถงขนาดของขอมลใน

กรณทเปนขอมลชนดตวอกษรเทานน

5. ขนดของคย(Key Type) เปนคอลมนทแสดงชนดของคยทแอตทรบวตนน

เปนอย เชน คยหลก(Primary Key : PK), คยนอก(Foreign Key : FK) เปนตน

6. หมายเหต (Comment) เปนคอลมนทไวส าหรบแสดงคณสมบตของแอตทรบวตเพมเตม เชน การระบวาเปนคาวางได(Null)หรอเปนคาวางไมได(NotNull) เปนตน

ตารางโครงสรางขอมล (Table Layout)

Page 35: sa12 การออกแบบฐานข้อมูล (database design)

35

ตารางโครงสรางขอมล (Table Layout)

ตารางโครงสรางขอมลของรเลชนนกศกษา

ชอแอตทรบวต ค าอธบาย ประเภทขอมล ขนาดขอมล ชนดของคย หมายเหต

รหสนกศกษา รหสนกศกษา Character 10 PK Not Null

ชอ ชอนกศกษา Character 15 - -

นามสกล นามสกลนกศกษา Character 15 - -

รหสภาควชา รหสภาควชาท

สงกด

Character 6 FK -