Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore บทที่ 5 การออกแบบฐานข้อมูล

บทที่ 5 การออกแบบฐานข้อมูล

Published by onsang.wi, 2020-05-14 01:12:56

Description: บทที่ 5 การออกแบบฐานข้อมูล

Search

Read the Text Version

การออกแบบฐานขอ้ มลู วไิ ลวรรณ ศรแี สงออ่ น

จดุ ประสงคข์ องการออกแบบฐานขอ้ มลู  การสรา้ งฐานขอ้ มูลทมี่ ปี ระสทิ ธภิ าพ ในการใชง้ านสาหรบั ผูใ้ ช้

ขนั้ ตอนการออกแบบฐานขอ้ มลู 1. สรา้ งเอนทติ จี ากความตอ้ งการ 2. ปรบั รเี ลชนั ตา่ ง ๆ ใหอ้ ยใู่ นรปู แบบบรรทดั ฐาน (Normalization) 3. ระบุคยี ท์ ต่ี อ้ งใชใ้ นแต่ละรเี ลชนั 4. ระบุกฎเกณฑ์ ขอ้ จากดั ทต่ี อ้ งคานงึ ถงึ 5. นาผลทไ่ี ดจ้ าก 4 ขนั้ ตอนแรกมารวบรวมเขา้ ดว้ ยกนั

การออกแบบฐานขอ้ มูลใหม้ ีประสิทธิภาพ หลกั การของการนอรม์ ลั ไลซ์ (Normalize) - เป็ นวิธกี ารท่ีทาใหข้ อ้ มูลนาไปใชง้ ายไดง้ า่ ย - ลดความซ้าซอ้ นกนั ของขอ้ มูล ซ่ึงทาใหเ้ กิดปัญหาในการ แกไ้ ข เพ่ิมและลบขอ้ มูลทาไดย้ าก 4

ฟังกช์ นั การข้ ึนตอ่ กนั (Functional Dependency) คือการแสดงใหเ้ ห็นว่าแอตทริบิวตต์ า่ งๆ มีความสมั พนั ธก์ นั อยา่ งไร โดยเม่ือทราบค่าแอตทริบิวต์ A แลว้ บอกคา่ แอตทริ บิวต์ B,C .. ได้ แสดงว่า B,C มีฟังกช์ นั การข้ ึนตอ่ กนั กบั แอตทริวบิวต์ A หรอื กล่าวงา่ ยๆว่า B,C ข้ ึนกบั A  A B,C 5

ฟังกช์ นั การข้ ึนตอ่ กนั (Functional Dependency) รหสั สินคา้ ชื่อสนิ คา้ ราคา 1111 ปากกา 15 2222 ดินสอ 10 ไดอะแกรมการข้ ึนตอ่ กนั (Dependency Diagram) รหสั สินคา้ ช่ือสนิ คา้ ราคา สญั ลกั ษณแ์ บบขอ้ ความ รหสั สินคา้ ชื่อสนิ คา้ ,ราคา 6

ชนิดของฟังกช์ นั การข้ ึนตอ่ กนั ในที่น้ ีกลา่ วถึง 3 ลกั ษณะ  การข้ ึนตอ่ กนั แบบท้งั หมด (Full dependency)  การข้ ึนตอ่ กนั แบบบางส่วน (Partial dependency)  การข้ ึนตอ่ กนั แบบทรานซิทฟี (Transitive dependency) 7

การข้ ึนตอ่ กนั แบบท้งั หมด (Full Dependency)  ทุกแอตทริบิวตท์ ่ีไมใ่ ชค่ ยี ข์ ้ นึ กบั คียห์ ลักท้หั หมด รหสั สินคา้ ช่ือสินคา้ รหสั สนิ คา้ ราคา รหสั สนิ คา้ ชื่อสินคา้ , ราคา รหสั สินคา้ ชื่อสนิ คา้ ราคา 8

การข้ ึนตอ่ กนั แบบบางสว่ น (Partial dependency)  แอตทริบิวตท์ ่ีไม่ใช่คียข์ ้ ึนอยกู่ บั บางสว่ นของคียห์ ลกั  มกั เกิดกบั การใชแ้ อตทริบิวตร์ ่วมกนั สองตวั เป็ นคียห์ ลกั FD1 : A,B  C, D FD2 : B  C AB C D 9

การข้ ึนตอ่ กนั แบบทรานซิทีฟ (Transitive Dependency)  แอตทรบิ ิวตท์ ี่ไม่ใช่คียห์ ลกั สามารถระบคุ า่ แอตทรบิ ิวตอ์ ่ืน FD1 : A  B,C,D FD2 : C  D AB C D 10

เทคนิคในการออกแบบตารางหรือรีเลชัน เทคนิค 1 : ช่ือและค่าของแอตทริบิวตใ์ นแต่ละตารางตอ้ งชดั เจน เทคนิค 2 : ควรออกแบบใหค้ า่ ของแอตทริบิวตเ์ ป็นคา่ Null นอ้ ยท่ีสุด หรือไม่มีเลย เทคนิค 3 : ไม่ออกแบบใหม้ ีค่าแอตทริบิวตซ์ ้าซอ้ นกนั เทคนิค 4 : ถา้ มีการแตกตารางเดิมออกใหเ้ ป็นหลายตาราง เมื่อทาการ Join กนั ค่า ของแอตทริบิวตท์ ุกตวั ตอ้ งถูกตอ้ งเหมือนเดิม จานวนรายการเท่าเดิม 11

แนวคดิ เกย่ี วกบั นอรม์ ัลไลเซชนั นอรม์ ลั ไลเซชัน (Normalization) เป็ นกระบวนการวิเคราะหค์ วามสมั พนั ธ์ ระหว่างแอตทรบิ วิ ตใ์ นตารางขอ้ มูล เพื่อตรวจสอบและแกไ้ ขปัญหา ดา้ นความซ้าซอ้ นของขอ้ มูล ดว้ ยการแตกตารางขอ้ มูลท่ีมีความซ้าซอ้ น ของขอ้ มูลออกเป็ นตารางยอ่ ย ๆ เพอื่ ขจดั ความซ้าซอ้ นของขอ้ มูลให้ เหลือนอ้ ยที่สุด หรือจนกระทงั ่ ไม่มีความซ้าซอ้ นเลย 12

วัตถุประสงคข์ องนอรม์ ัลไลเซชนั ลดความซ้าซอ้ นของขอ้ มูล หากมีขอ้ มลู ซ้าซอ้ นกนั เมื่อมกี ารแกไ้ ข เปลี่ยนแปลหขอ้ มลู จะตอ้ หทาการเปล่ียนแปลหแกไ้ ขใหค้ รบทุกแหห่ มิฉะน้ันอาจทาใหข้ อ้ มลู ไมถ่ ูกตอ้ หหรือไมส่ อดคลอ้ หกนั ได้ ประหยดั เน้ือท่ีในการจดั เก็บขอ้ มูล เมอ่ื ขอ้ มลู ที่จดั เก็บไมซ่ ้าซอ้ นกนั จึหใชเ้ น้ ือที่ในการจดั เก็บขอ้ มลู นอ้ ยลห 13

กระบวนการนอรม์ ลั ไลเซชนั เป็ นการดาเนินการนอรม์ ลั ไลเซชนั อยา่ งเป็ นระดบั ข้นั ตอน เพื่อจดั การให้ ตารางขอ้ มูลมีคณุ สมบตั อิ ยใู่ นนอรม์ ลั ฟอรม์ แบบตา่ ง ๆ ซึ่งประกอบดว้ ย 6 ระดบั คือ  นอรม์ ลั ฟอรม์ ท่ี 1 หรือ 1NF (First Normal Form)  นอรม์ ลั ฟอรม์ ท่ี 2 หรือ 2NF (Second Normal Form)  นอรม์ ลั ฟอรม์ ท่ี 3 หรือ 3NF (Third Normal Form)  นอรม์ ลั ฟอรม์ แบบบอยซค์ อดด์ หรือ BCNF (Boyce-Codd Normal Form)  นอรม์ ลั ฟอรม์ ท่ี 4 หรือ 4NF (Fourth Normal Form)  นอรม์ ลั ฟอรม์ ที่ 5 หรือ 5NF (Fifth Normal Form) (แตใ่ นท่ีนี่จะกลา่ วถึงเพียง 3 ระดบั แรกเทา่ น้นั ) 14

กระบวนการนอรม์ ลั ไลเซชนั ตารางทย่ี ังไม่ผา่ นการนอรม์ ัลไลเซชัน กาจดั กลุ่มขอ้ มลู ทเี่ ป็ นกลุม่ ซา้ ตารางทผ่ี า่ นนอรม์ ลั ฟอรม์ ท่ี 1 กาจัดการขนึ้ ตอ่ กนั แบบบางสว่ น ตารางทผ่ี า่ นนอรม์ ัลฟอรม์ ท่ี 2 กาจัดการขึน้ ตอ่ กนั แบบทรานซทิ ฟี ตารางทผี่ า่ นนอรม์ ลั ฟอรม์ ท่ี 3 15

คุณสมบตั ขิ องนอรม์ ัลฟอรม์ ท่ี 1 (First Normal Form) ตารางขอ้ มูลใดๆ มีคณุ สมบตั อิ ยูใ่ นนอรม์ ลั ฟอรม์ ที่ 1 ก็ตอ่ เม่ือ  ค่าของแอตทรบิ ิวตต์ า่ งๆ ในแตล่ ะตารางมีค่าของขอ้ มูลเป็ นค่าเดี่ยวๆ  ขอ้ มูลในตารางน้นั ตอ้ งไม่มีขอ้ มูลที่เป็ นกล่มุ ซ้า 16

ตารางขอ้ มลู ทยี่ งั ไมผ่ า่ นนอรม์ ัลฟอรม์ ที่ 1 17

ผลของตารางขอ้ มลู ทผี่ า่ นนอรม์ ลั ฟอรม์ ที่ 1 แล้ว 18

คุณสมบตั ขิ องนอรม์ ลั ฟอรม์ ท่ี 2 (Second Normal Form) ตารางขอ้ มูลใดๆ มีคณุ สมบตั อิ ยใู่ นนอรม์ ลั ฟอรม์ ท่ี 2 ก็ตอ่ เมื่อ  ตารางขอ้ มูลน้นั มีคณุ สมบตั อิ ยใู่ นนอรม์ ลั ฟอรม์ ท่ี 1 แลว้  แอตทริบิวตท์ ไ่ี ม่ใช่คียห์ ลกั ตอ้ งข้ ึนกบั คียห์ ลกั อยา่ งแทจ้ ริง หรือกลา่ วได้ ว่าแอตทริบิวตท์ ไี่ ม่ใช่คียห์ ลกั จะตอ้ งไม่ข้ ึนกบั สว่ นใดสว่ นหน่ึงของคียห์ ลกั 19

ตารางขอ้ มลู ทยี่ ังไม่ผา่ นนอรม์ ัลฟอรม์ ท่ี 2  FD1 SUPPLIER_ID PRODUCT_ID PRODUCT_NAME PRODUCT_COLOR QUANTITY  FD2 PRODUCT_NAME,PRODUCT_COLOR,QUANTITY  FD1 : SUPPLIER_ID,PRODUCT_ID  FD2 : PRODUCT_ID PRODUCT_COLOR  คียห์ ลกั ประกอบดว้ ย 2 แอตทรบิ วิ ต์ คือ SUPPLIER_ID และ PRODUCT_ID จะเหน็ ว่า   QUANTITY เป็ นแอตทรบิ ิวตท์ ข่ี ้ นึ กบั SUPPLIER_ID และ PRODUCT_ID  แต่ PRODUCT_NAME และ PRODUCT_COLOR เป็ นแอตทรบิ วิ ตท์ ี่ข้ ึนกบั PRODUCT_ID เท่าน้นั ไม่ไดข้ ้ นึ กบั SUPPLIER_ID เลย 20

 ตารางขอ้ มูลทผี่ า่ นนอรม์ ัลฟอรม์ ที่ 2 แล้ว SUPPLIER_ID PRODUCT_ID QUANTITY  FD1 : SUPPLIER_ID,PRODUCT_ID QUANTITY PRODUCT_ID PRODUCT_NAME PRODUCT_COLOR  FD2 : PRODUCT_ID PRODUCT_NAME,PRODUCT_COLOR 21

คุณสมบัตขิ องนอรม์ ัลฟอรม์ ท่ี 3 (Third Normal Form) ตาราหขอ้ มลู ใดๆ มคี ุณสมบตั ิอยใู่ นนอรม์ ลั ฟอรม์ ที่ 3 กต็ ่อเมื่อ  ตาราหขอ้ มลู น้ันมีคุณสมบตั ิอยใู่ นนอรม์ ลั ฟอรม์ ที่ 2  แอตทริบิวตท์ ี่ไมใ่ ชค่ ีย์ จะตอ้ หไมส่ ามารถระบุคา่ ขอหแอตทริบิวต์ อ่ืนท่ีไมใ่ ชค่ ียห์ ลกั ในตาราหขอ้ มลู น้ัน 22

ตารางขอ้ มลู ทย่ี งั ไม่ผา่ นนอรม์ ลั ฟอรม์ ท่ี 3  FD1 SUPPLIER_ID SUPPLIER_NAME CITY REGION  FD2  FD1 : SUPPLIER_ID SUPPLIER_NAME,CITY,REGION  FD2 : CITY REGION ตรวจสอบตารางว่ามีการข้ ึนตอ่ กนั แบบทรานซิทีฟหรอื ไม่ จะเห็นว่า  ตารางน้ ีมีคุณสมบตั อิ ยูใ่ นนอรม์ ลั ฟอรม์ ท่ี 2  แตเ่ ม่ือทราบค่าของ CITY จะทาใหท้ ราบค่า REGION จงึ ยงั ไม่มีคณุ สมบตั ิ อยใู่ นนอรม์ ลั ฟอรม์ ท่ี 3 23

 ตารางขอ้ มูลทผี่ ่านนอรม์ ัลฟอรม์ ที่ 3 แล้ว SUPPLIER_ID SUPPLIER_NAME CITY  FD1 : SUPPLIER_ID SUPPLIER_NAME,CITY CITY REGION  FD2 : CITY REGION 24

ภาษาทใ่ี ชใ้ นการออกแบบฐานขอ้ มลู 1. ใส่ * ถา้ แอททรบิ วิ ตใ์ ดสามารถเกบ็ คา่ ว่างได้ 2. ใส่ CK หมายถงึ คยี ค์ แู่ ขง่ (Candidate Key) 3. ใส่ SK หมายถงึ คยี ร์ อง (Secondary Key) 4. ใส่ FK หมายถงึ คยี น์ อก (Foreign Key) 25


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook