sa12 การออกแบบฐานข้อมูล (database design)
TRANSCRIPT
1
บทท 12 การออกแบบฐานขอมล
(Database Design)
2
การออกแบบฐานขอมล
วตถประสงคการเรยนร
เพอใหทราบวธการเขยนแผนภาพ E-R Diagram
เพอใหทราบวธการน าความตองการของผใชมาเขยน E-R Diagram
เพอใหทราบวธการนอมลไลซขอมล
เพอใหทราบขนตอนการออกแบบฐานขอมล
เพอใหทราบวธการเขยน Relation Schema
เพอใหทราบวธการเขยน Table Layout
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)
4
การออกแบบฐานขอมล
ค าส าคญเกยวกบการออกแบบฐานขอมล (ตอ)
4. คยหลก (Primary Key) หมายถง แอตทรบวตทระบอยในเอนตท โดยทแอตทรบวตนน(แอตทรบวตหรอหลายแอตทรบวต)สามารถใชอางถงหรอจ าแนกรายการขอมลในแตละเอนตทออกจากกน
5. ฟงกชนการขนตอกน (Functional Dependency) เปนฟงกชนทแอตทรบวตตาง ๆ ในเอนตท ท
อางองโดยใชแอตทรบวตใดแอตทรบวตหนง เชน ชอนกศกษา และนามสกลของนกศกษา สามารถ
อางองโดยใชรหสของนกศกษา
รหสนกศกษา -> ชอนกศกษา,นามสกล6. รเลช น (relation) เปนตาราง 2 มตทใชบรรจขอมล โดยในแตละรเลช นจะประกอบดวยแถว
(Row) และคอลมน(Column) ซงในแตละคอลมนจะใชแทนแอตทรบวตตาง ๆ และในแตละแถว
ของตารางจะเปนรายการขอมลแตละรายการทเรยกวา ทพเพล (Tuple)
5
การออกแบบฐานขอมล
ตาราง แสดงรเลชนของนกศกษา
รหสนกศกษา ชอ นามสกล รหสภาควชา ชอภาควชาวชา
4666024561 สมชาย บญมา D001 เทคโนโลยสารสนเทศ
4666024573 สมหญง บญม D002 การจดการอตสาหกรรม
4666024595 สมชาต บญนอย D003 บรหารงานกอสราง
4666024606 สมศร บญมาก D001 เทคโนโลยสารสนเทศ
6
การออกแบบฐานขอมล
ค าส าคญเกยวกบการออกแบบฐานขอมล (ตอ)
7. โครงสรางรเลชน (relation Schema) เปนรปแบบทใชแสดงถงโครงสรางของรเลชนใน
ลกษณะของเอนตททประกอบดวยเซตของแอตทรบวต โดยมรปแบบการเขยนดงน
ชอรเลชน(แอตทรบวตท 1, แอตทรบวตท 2, …, แอตทรบวตสดทาย)
ตวอยาง นกศกษา(รหสนกศกษา, ชอ, นามสกล, รหสภาควชา, ชอภาควชา)โดยมความหมายวา รเลชนนกศกษาประกอบไปดวยแอตทรบวตรหสนกศกษา, ชอ, นามสกล, รหส
ภาควชา, ชอภาควชา โดยมรหสนกศกษาเปนคยหลก(จะใชการขดเสนใตใหกบแอตทรบวตทเปนคยหลก)
7
การออกแบบฐานขอมล
แผนภาพแสดงความสมพนธของขอมล (Entity-Relationship Diagram)
1. สญลกษณของเอนตท จะใชสญลกษณรปสเหลยมผนผาแทนสญลกษณของเอนตท
โดยจะแสดงชอของเอนตทไวในสเหลยมผนผา
2. สญลกษณของแอตทรบวต จะใชสญลกษณรปวงรแทนแอตทรบวตตาง ๆ และจะ
เขยนชอของแอตทรบวตไวในสญลกษณรปวงร
3. สญลกษณของความสมพนธ จะใชสญลกษณรปสเหลยมขนมเปยกปนแทน
ความสมพนธของเอนตทตางๆ และจะใชเสนตรงแทนเสนความสมพนธจากเอนต
ทหนงไปยงอกเอนตท
8
การออกแบบฐานขอมล
1 ความสมพนธแบบหนงตอหนง (One-to-One Relationship)
9
การออกแบบฐานขอมล
2. ความสมพนธแบบหนงตอหลาย (One-to-Many Relationship)
10
การออกแบบฐานขอมล
3. ความสมพนธแบบหลายตอหลาย (Many-to-Many Relationship)
11
ตวอยางของ E-R Diagram
12
การออกแบบฐานขอมล
ข นตอนการออกแบบฐานขอมล
1. ออกแบบฐานขอมลในระดบแนวความคด (Conceptual Design)
2. ออกแบบฐานขอมลในระดบตรรกะ (Logical Design)
3. ออกแบบฐานขอมลในระดบกายภาพ (Physical Design)
13
การออกแบบฐานขอมล
ออกแบบฐานขอมลในระดบแนวความคด (Conceptual Design)1. แปลงขอมลทอยในลกษณะของแหลงจดเกบขอมล (Data Store) ทปรากฏอยใน
แผนภาพแสดงการไหลของขอมล และพจนานกรมขอมลใหอยในลกษณะของเอนตท
และแอตทรบวต
2. สรางฟงกชนการขนตอกน (Functional Dependency) ใหกบแอตทรบวตตาง ๆ ใน
ทกเอนตททมอย
3. ก าหนดแอตทรบวตทจะเปนคยหลกของแตละเอนตท และเขยนอธบายในลกษณะ
โครงสรางของรเลชน (relation Schema)4. สรางความสมพนธของแตละเอนตทในลกษณะของแผนภาพ E-R Diagram
14
การออกแบบฐานขอมล
ออกแบบฐานขอมลในระดบตรรกะ (Logical Design)หลงจากทออกแบบฐานขอมลในระดบแนวความคดแลว จะไดแผนภาพ E-R
Diagram ทยงมาสามารถน าไปสรางเปนฐานขอมลไดจรง เนองจากโครงสราง
ขอมลบางสวนยงมปญหาในเรองความซ าซอนของขอมล ดงนนเพอลดปญหา
ดงกลาวจงจ าเปนทจะตองท าการออกแบบฐานขอมลในระดบของตรรก เพอ
ปรบปรงใหเกดโครงสรางของการจดเกบทดขนดวยการท านอมลไรเซช น
(Normalization)
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)
16
การนอรมลไลเซช นระดบท 1 (1NF)
การนอรมลไลเซช นระดบท 1 (First Normal Form)เปนการปรบโครงสรางของเอนตทหรอรเลช นทอยในลกษณะไมนอรมลใหอยในลกษณะของ
Normal Form คอในแตละแอตทรบวตของเอนตทตาง ๆ จะตองมคาเดยว
ตวอยางฟงกชนการขนตอกนของนกศกษากอนการนอรมลไลเซช นระดบท 1
รหสนกศกษา -> ชอ, นามสกล, รหสวชา, ชอวชา, ภาคเรยน
โครงสรางของรเลชนนกศกษา
นกศกษา(รหสนกศกษา, ชอ, นามสกล, รหสวชา, ชอวชา,ภาคเรยน)
17
ตารางรเลชนของนกศกษากอนการนอรมลไลซระดบท 1รหสนกศกษา ชอ นามสกล รหสวชา ชอวชา ภาคเรยน
4666024561 สมชาย บญมา 662103 โปรแกรมคอมพวเตอร 1/2547
4666024573 สมหญง บญม 662103 โปรแกรมคอมพวเตอร 1/2547
662221 เทคโนโลยเครอขาย 2/2547
4666024595 สมชาต บญนอย 662103 โปรแกรมคอมพวเตอร 1/2547
662221 เทคโนโลยเครอขาย 2/2547
การนอรมลไลเซช นระดบท 1 (1NF)
18
ตวอยางฟงกชนการขนตอกนของนกศกษาหลงการนอรมลไลเซช นระดบท 1
รหสนกศกษา, รหสวชา -> ชอ, นามสกล, ชอวชา, ภาคเรยน
โครงสรางของรเลชนนกศกษา
นกศกษา(รหสนกศกษา, รหสวชา, ชอ, นามสกล, ชอวชา,ภาคเรยน)
การนอรมลไลเซช นระดบท 1 (1NF)
19
ตารางรเลชนของนกศกษาทผานการนอรมลไลซระดบท 1 แลวรหสนกศกษา ชอ นามสกล รหสวชา ชอวชา ภาคเรยน
4666024561 สมชาย บญมา 662103 โปรแกรมคอมพวเตอร 1/2547
4666024573 สมหญง บญม 662103 โปรแกรมคอมพวเตอร 1/2547
4666024573 สมหญง บญม 662221 เทคโนโลยเครอขาย 2/2547
4666024595 สมชาต บญนอย 662103 โปรแกรมคอมพวเตอร 1/2547
4666024595 สมชาต บญนอย 662221 เทคโนโลยเครอขาย 2/2547
การนอรมลไลเซช นระดบท 1 (1NF)
20
การนอรมลไลเซช นระดบท 2 (Second Normal Form)การท านอรมลไลซระดบท 2 หรอ 2NF นนท าไดโดยจะตองผานการท านอรมลไลซระดบท 1 เสยกอน และจะตองไมใหเกดกรณทแอตทรบวตอนทไมใชคย
หลก(Nonkey Attribute) ไปขนอยกบแอตทรบวตทเปนคยหลกแอตทรบวตใดแอตทรบวตหนงไมได
การนอรมลไลเซช นระดบท 2 (2NF)
21
ตวอยางของขอมลนกศกษากอนการนอรมลไลเซช นระดบท 2
นกศกษา(รหสนกศกษา, รหสวชา, ชอ, นามสกล, ชอวชา, ภาคเรยน)
ฟงกชนการขนตอกนของนกศกษา เปนดงน
รหสนกศกษา -> ชอ, นามสกลรหสวชา -> ชอวชารหสนกศกษา,รหสวชา -> ภาคเรยน
การนอรมลไลเซช นระดบท 2 (2NF)
22
ตวอยางของขอมลนกศกษาหลงการนอรมลไลเซช นระดบท 2 นกศกษา (รหสนกศกษา, ชอ, นามสกล) ขบวนวชา (รหสวชา, ชอวชา) การลงทะเบยน (รหสนกศกษา, รหสวชา, ภาคเรยน)
การนอรมลไลเซช นระดบท 2 (2NF)
23
ตารางรเลชนของนกศกษาทผานการนอรมลไลซระดบท 2 แลวรหสนกศกษา ชอ นามสกล
4666024561 สมชาย บญมา
4666024573 สมหญง บญม
4666024573 สมหญง บญม
4666024595 สมชาต บญนอย
4666024595 สมชาต บญนอย
การนอรมลไลเซช นระดบท 2 (2NF)
24
ตารางรเลชนของขบวนวชาทผานการนอรมลไลซระดบท 2 แลว
รหสวชา ชอวชา
662103 โปรแกรมคอมพวเตอร
662221 เทคโนโลยเครอขาย
662103 โปรแกรมคอมพวเตอร
การนอรมลไลเซช นระดบท 2 (2NF)
25
ตารางรเลชนของการลงทะเบยนทผานการนอรมลไลซระดบท 2 แลวรหสนกศกษา รหสวชา ภาคเรยน
4666024561 662103 1/2547
4666024573 662103 1/2547
4666024573 662221 2/2547
4666024595 662103 1/2547
4666024595 662221 2/2547
การนอรมลไลเซช นระดบท 2 (2NF)
26
การนอรมลไลเซช นระดบท 3 (Third Normal Form)การท านอรมลไลซระดบท 3 หรอ 3NF นนท าไดโดยจะตองผานการท านอรมลไลซระดบท 2 เสยกอน และจะตองไมใหเกดกรณทแอตทรบวตอนทไมใชคย
หลก(Nonkey Attribute) ไปขนอยกบแอตทรบวตอนทไมใชคยหลกเชนเดยวกน
การนอรมลไลเซช นระดบท 3 (3NF)
27
ตวอยางของขอมลนกศกษากอนการนอรมลไลเซช นระดบท 3
นกศกษา (รหสนกศกษา, ชอ, นามสกล, รหสภาควชา, ชอภาควชา)ขบวนวชา (รหสวชา, ชอวชา)การลงทะเบยน (รหสนกศกษา, รหสวชา, ภาคเรยน)
ฟงกชนการขนตอกนของนกศกษา เปนดงน
รหสนกศกษา -> ชอ, นามสกล, รหสภาควชารหสวชา -> ชอวชารหสนกศกษา,รหสวชา -> ภาคเรยน
รหสภาควชา -> ชอภาควชา
การนอรมลไลเซช นระดบท 3 (3NF)
28
ตวอยางของขอมลนกศกษาหลงการนอรมลไลเซช นระดบท 3
นกศกษา (รหสนกศกษา, ชอ, นามสกล, รหสภาควชา)ขบวนวชา (รหสวชา, ชอวชา)การลงทะเบยน (รหสนกศกษา, รหสวชา, ภาคเรยน)ภาควชา (รหสภาควชา, ชอภาควชา)
การนอรมลไลเซช นระดบท 3 (3NF)
29
ตวอยาง E-R Diagram ของขอมลนกศกษาหลงการนอรมลไลเซช นระดบท 3
การนอรมลไลเซช นระดบท 3 (3NF)
30
การนอรมลไลเซช นระดบท 3 (3NF)
ตารางแสดงรเลชนของนกศกษาทผานการนอรมลไลซระดบท 3 แลว
รหสนกศกษา ชอ นามสกล รหสภาควชา
4666024561 สมชาย บญมา D001
4666024573 สมหญง บญม D002
4666024573 สมหญง บญม D002
4666024595 สมชาต บญนอย D003
4666024595 สมชาต บญนอย D003
31
การนอรมลไลเซช นระดบท 3 (3NF)
ตารางแสดงรเลชนของภาควชาทผานการนอรมลไลซระดบท 3 แลว
รหสภาควชา ชอภาควชา
D001 เทคโนโลยสารสนเทศ
D002 การจดการอตสาหกรรม
D003 บรหารงานกอสราง
32
การออกแบบฐานขอมล
ออกแบบฐานขอมลในระดบกายภาพ (Physical Design)หลงจากทผานการออกแบบฐานขอมลในระดบตรรกแลว จะไดโครงสรางของรเลชน และ
ความสมพนธตาง ๆ ของรเลชน ทแสดงอยในลกษณะของแผนภาพ E-R Diagramโดยทรเลชนและความสมพนธเหลานไดผานขนตอนของการปรบปรงโครงสราง หรอ
การท านอรมลไลซใหอยในโครงสรางระดบทยอมรบได(โดยอาจจะผานการนอลมลไลซใหอยในระดบ 3NF, BCNF, 4NF หรอ5NF ตามความเหมาะสม) ขนตอนตอไป คอ
การพยายามออกแบบใหไดโครงสรางของฐานขอมลในลกษณะทางกายภาพ คอมการ
ออกแบบในสวนรายละเอยดของแอตทรบวตตาง ๆ วาเปนขอมลชนด และมขนาด
เทาไร โดยการเขยนอธบายในลกษณะ ตารางโครงสรางขอมล (TableLayout)
33
การเขยนตารางโครงสรางขอมล
1. ชอแอตทรบวต(Attribute Name) เปนคอลมนทใชแสดงชอของแอตทร
บวต โดยชอเหลานจะตองสอดคลองกบชอของแอตทรบวตทปรากฏอยใน
โครงสรางของรเลชนและในแผนภาพ E-R Diagram2. ค าอธบาย (Description) เปนคอลมนทแสดงค าอธบายเพมเตมเกยวกบชอ
แอตทรบวต ในกรณทผออกแบบตงชอแอตทรบวตส นเกนไปจนไมได
ความหมาย
3. ประเภทขอมล(Data Type) เปนคอลมนทแสดงประเภทของขอมลท
ประกอบเปนแอต ทรบวต เชน ขอมลทเปนตวอกษร(Character), ตวเลข
(Numeric), วนทและเวลา(Date-Time) หรอคาทางตรรก(Logical) เปนตน
ตารางโครงสรางขอมล (Table Layout)
34
การเขยนตารางโครงสรางขอมล (ตอ)
4. ขนาดขอมล(Data Size) เปนคอลมนทแสดงขนาดของขอมล โดยจะตอง
สมพนธกบชนดของขอมลทก าหนด ซงโดยมากจะระบถงขนาดของขอมลใน
กรณทเปนขอมลชนดตวอกษรเทานน
5. ขนดของคย(Key Type) เปนคอลมนทแสดงชนดของคยทแอตทรบวตนน
เปนอย เชน คยหลก(Primary Key : PK), คยนอก(Foreign Key : FK) เปนตน
6. หมายเหต (Comment) เปนคอลมนทไวส าหรบแสดงคณสมบตของแอตทรบวตเพมเตม เชน การระบวาเปนคาวางได(Null)หรอเปนคาวางไมได(NotNull) เปนตน
ตารางโครงสรางขอมล (Table Layout)
35
ตารางโครงสรางขอมล (Table Layout)
ตารางโครงสรางขอมลของรเลชนนกศกษา
ชอแอตทรบวต ค าอธบาย ประเภทขอมล ขนาดขอมล ชนดของคย หมายเหต
รหสนกศกษา รหสนกศกษา Character 10 PK Not Null
ชอ ชอนกศกษา Character 15 - -
นามสกล นามสกลนกศกษา Character 15 - -
รหสภาควชา รหสภาควชาท
สงกด
Character 6 FK -