25
บทท่ 5 การออกแบบฐานข้อมูล ในองคกรท่มการใชงานฐานขอมูลโดยทั่วไป การจะใชงานฐานขอมูลไดอยางมประสทธรูปและตรงกับ ความตองการของผู ใชนั อมจะตองมาจากการออกแบบฐานขอมูลท่มการวางแผนมาเป็นอยางด โดย จะตองมการพัฒนาระบบฐานขอมูลตามขั นตอนท่ถูกตอง ในการพัฒนาฐานขอมูลเพ่อสรางระบบสารสนเทศ โดยทั่วไปนั นจะมวงจรในการพัฒนา ่งเป็นขั นตอนท่มการทํางานเป็นลําดับตั งแตนจนกระทั่งสามารถสราง ระบบสารสนเทศออกมาได และเป็นขั นตอนท่ผู พัฒนาระบบประกอบดวย นักวเคราะหระบบ (System Analyst) และผู ออกแบบฐานขอมูล (DBA) จะตองรวมกันศกษาและทําความเขาใจในแตละขั นตอน 1. จุดประสงค์ของการออกแบบฐานข้อมูล การออกแบบฐานขอมูลนั นจะเห็นไดาเป็นการกําหนดโครงสรางของฐานขอมูลเพ่อเก็บบันทกขอมูล เป็นสวนกลาง โดยมจุดประสงคในการออกแบบฐานขอมูล ดังน 1.1 เพ่อลดความซําซอนของขอมูลท่อยู ในระบบงาน 1.2 สามารถเรยกใชโดยผู ใชหลายคน 1.3 ไมกอใหเกดความขัดแยงของขอมูลอันเป็นผลเน่องมาจากมอมูลชุดเดยวกันอยู หลายทเม่อม การปรับปรุงขอมูล 2. ขั้นตอนการพัฒนาระบบฐานข้อมูล วัฏจักรฐานขอมูล (The Database Life Cycle: DBLC) เป็นขั นตอนในการพัฒนาหรอจัดทําระบบ ฐานขอมูล ่งประกอบดวย 6 ขั นตอน ดังรูปท่ 5.1 รูปท่ 5.1 วัฏจักรฐานขอมูล (The Database Life Cycle: DBLC) ่มา (Rob and Coronel, 2002, p.326)

บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

บทท 5

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

ในองคกรทมการใชงานฐานขอมลโดยทวไป การจะใชงานฐานขอมลไดอยางมประสทธรปและตรงกบ

ความตองการของผใชนน ยอมจะตองมาจากการออกแบบฐานขอมลทมการวางแผนมาเปนอยางด โดย

จะตองมการพฒนาระบบฐานขอมลตามขนตอนทถกตอง ในการพฒนาฐานขอมลเพอสรางระบบสารสนเทศ

โดยทวไปนนจะมวงจรในการพฒนา ซงเปนขนตอนทมการทางานเปนลาดบตงแตตนจนกระทงสามารถสราง

ระบบสารสนเทศออกมาได และเปนขนตอนทผพฒนาระบบประกอบดวย นกวเคราะหระบบ (System

Analyst) และผออกแบบฐานขอมล (DBA) จะตองรวมกนศกษาและทาความเขาใจในแตละขนตอน

1. จดประสงคของการออกแบบฐานขอมล

การออกแบบฐานขอมลนนจะเหนไดวาเปนการกาหนดโครงสรางของฐานขอมลเพอเกบบนทกขอมล

เปนสวนกลาง โดยมจดประสงคในการออกแบบฐานขอมล ดงน

1.1 เพอลดความซาซอนของขอมลทอยในระบบงาน

1.2 สามารถเรยกใชโดยผใชหลายคน

1.3 ไมกอใหเกดความขดแยงของขอมลอนเปนผลเนองมาจากมขอมลชดเดยวกนอยหลายท เมอม

การปรบปรงขอมล

2. ขนตอนการพฒนาระบบฐานขอมล

วฏจกรฐานขอมล (The Database Life Cycle: DBLC) เปนขนตอนในการพฒนาหรอจดทาระบบ

ฐานขอมล ซงประกอบดวย 6 ขนตอน ดงรปท 5.1

รปท 5.1 วฏจกรฐานขอมล (The Database Life Cycle: DBLC)

ทมา (Rob and Coronel, 2002, p.326)

Page 2: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

2.1 การศกษาเบองตน

การศกษาเบองตนมวตถประสงคเพอวเคราะหสถานการณขององคกร กาหนดปญหาและขอจากด

กาหนดวตถประสงคและขอบเขตของระบบ ดงรายละเอยดตอไปน

2.1.1 การวเคราะหสถานการณขององคกร

เพอศกษาสภาพแวดลอมในการทางานขององคกร ความตองการในการปฏบตงาน โดยควร

รวาโครงสรางขององคกรเปนอยางไร ใครเปนผควบคมอะไร และใครทารายงานใหใคร เปนตน

2.1.2 กาหนดปญหาและขอจากด

โดยการศกษาวา ระบบทมอยมการทางานอยางไร ขอมลทปอนเขาสระบบ มอะไรบาง และ

ระบบสรางรายงานอะไร มการใชรายงานเหลานอยางไรและใครเปนผใช เพอใหทราบถงปญหาและขอจากดใน

การปอนขอมล หรอการคนหาขอมลเพอการทารายงาน

2.1.3 กาหนดวตถประสงคและขอบเขตของระบบ

ในการกาหนดวตถประสงคของระบบฐานขอมลควรสอดคลองกบความตองการของผใช

จากคาถามเหลาน

- วตถประสงคแรกเรมของระบบทนาเสนอคออะไร

- ระบบนตองเชอมตอกบระบบอนๆ ทมอยในองคกรหรอไม

- ระบบนจะมการใชขอมลรวมกนกบระบบหรอผใชอนหรอไม

เมอทราบวตถประสงคแลวกทาการกาหนดขอบเขตของระบบโดยการออกแบบ ตามความ

ตองการในการปฏบตงาน เพอใชในการออกแบบฐานขอมลตอไป

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

เมอผออกแบบฐานขอมลมความเขาใจลกษณะขององคกร ปญหาและขอจากด รวมทงวตถประสงค

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

2.2.1 การออกแบบเชงแนวคด

โดยการพฒนาแบบจาลองอ-อาร (E-R Model) ทใชอธบายถงความสมพนธระหวางสงทเรา

สนใจจะจดเกบ ทเรยกวา เอนทต (Entity) และรายละเอยดหรอแอททรบวต (attribute) ของสงทจะจดเกบ

แลวทาการแปลงแบบจาลองอ-อาร โมเดล (E-R model) เปนโครงสรางตารางฐานขอมล จากนนกทาการ

นอรมลไลเซชน (normalization) เพอใหไดโครงสรางของตารางทด สามารถควบคมความซาซอนของขอมล

หลกเลยงความผดปกตของขอมล

2.2.2 การเลอกโปรแกรมจดการฐานขอมล

ในการตดสนใจเลอกซอโปรแกรมจดการฐานขอมลขององคกรใด ควรพจารณาถงสงตอไปน

1) คาใชจายตางๆ เชน ราคาการซอมบารง การปฏบตงาน ลขสทธ การตดตง การฝกอบรม

และคาใชจายในการเปลยนไปใชระบบใหม

2) คณลกษณะและเครองมอของระบบจดการฐานขอมล โปรแกรมฐานขอมลบางตวจะรวม

เอาเครองมอตางๆ ทใหความสะดวกในงานการพฒนาโปรแกรมประยกต ตวอยางเชน การออกแบบหนาจอ

Page 3: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

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

ฐานขอมล ใชงาย มความสามารถในการรกษาความปลอดภย และการควบคมการใชงานพรอมกน เปนตน

3) ความสามารถในการใชขาม platforms ขามระบบและภาษา

4) ความตองการดานฮารดแวร หนวยความจา และเนอททใชในการจดเกบ

2.2.3 การออกแบบทางตรรกะ

จะเกยวของกบการตดสนใจใชรปแบบเฉพาะของฐานขอมล (แบบลาดบชน แบบเครอขาย

และแบบเชงสมพนธ เปนตน) การกาหนดรปแบบของฐานขอมล ซงการออกแบบ เชงตรรกะจะเปนการแปลง

การออกแบบระดบเชงแนวคด ใหเปนแบบจาลองของฐานขอมล ในระดบภายใน (internal model) ตามระบบ

การจดการฐานขอมล (DBMS) เชน MS-Access, MySQL และ Oracle โดยการสรางตาราง ฟอรม ควร และ

รายงาน เปนตน

2.2.4 การออกแบบทางกายภาพ

การออกแบบทางกายภาพ คอ กระบวนการในการเลอกหนวยจดเกบขอมล และลกษณะ

การเขาถงขอมลของฐานขอมล การสรางดรรชน (index) การจดทาคลสเตอร (clustering) ซงเปนการจดเกบ

ขอมลทมการใชงานบอยๆ ไวในหนวยเกบขอมลเดยวกน หรอการใชเทคนคแฮชชง (hashing technique) ในการ

จดตาแหนงทอยของขอมลภายในหนวยเกบขอมล เปนตน

2.3 การตดตงระบบ

ขนอยกบระบบจดการฐานขอมลทใช โดยเรมตนจากการสรางฐานขอมล กาหนดผจดการฐานขอมล

กาหนดพนทๆ ทตองการใช และการสรางตารางตางๆ ในระบบ

2.4 การทดสอบและประเมนผล

เพอการตรวจสอบดวาระบบทพฒนามาสามารถทางานไดตามทตองการหรอไม ซงควรมการเตรยม

ขอมลทดสอบไวลวงหนา

2.5 การดาเนนการ

เมอฐานขอมลผานขนตอนการทดสอบและประเมนผล ตอไปกเปนขนตอน การดาเนนการ หรอการ

ตดตงระบบ ซงตองเปนระบบทสมบรณพรอมใหผใชไดใชงานนนเอง ซงอาจรวมไปถงการฝกอบรมใหแกผใช ท

เปนพนกงานทตองใชงานจรงดวย

2.6 การบารงรกษาและการปรบปรง

หลงจากระบบไดเรมดาเนนการ ผจดการฐานขอมลจะตองเตรยมการบารงรกษาฐานขอมลโดยการ

สารองขอมลไว เพอสะดวกในการกคนขอมล เมอระบบมปญหา และหากมการใชงานไปนานๆอาจตองทาการ

ปรบปรงแกไขโปรแกรมใหเหมาะสมกบเหตการณ และ ความตองการของผใชทเปลยนแปลงไป

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

ขนตอนการออกแบบฐานขอมลเชงแนวคด ตงแตการพฒนาแบบจาลองอ-อาร โมเดล(E-R Model) และการ

จดรปแบบขอมลในรปแบบบรรทดฐาน (normalization) ดงรายละเอยดทจะกลาวตอไป

Page 4: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

3. แบบจาลองอ-อาร (E-R Model)

แบบจาลองอ-อาร (Entity-Relationship Model: E-R Model) เปนแบบจาลองขอมล ทประยกตมา

จากแนวคดเรอง Semantic Model และมการพฒนามาเปน E-R Model โดย Peter Pin Shan Chen จาก

Massachusetts Institute of Technology ในป ค.ศ. 1976 และไดรบความนยมมาจนถงปจจบน

3.1 ความหมายและความสาคญของแบบจาลองอ-อาร

แบบจาลองอ-อาร เปนเครองมอทใชในการออกแบบฐานขอมล ทแสดงความสมพนธระหวางเอนทต

หรอสงทเราตองการจะจดเกบไวในฐานขอมล โดยนาเสนอในรปแบบของแผนภาพทเรยกวา อ-อาร

ไดอะแกรม (E-R Diagram) ดวยการใชสญลกษณตางๆ

แบบจาลองอ-อาร มความสาคญในการเปนสอกลางเพอสอสารกบบคลากรตางๆ ทเกยวของกบ

ระบบฐานขอมล ไมวาจะเปนในระดบผบรหาร นกเขยนโปรแกรม และผใชในระดบปฏบตการ เปนตน ทาให

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

แผนภาพ ทาใหเขาใจงาย ดงนนระบบทออกแบบมาจงมความถกตองและเปนไปตามวตถประสงคขององคกร

3.2 องคประกอบของแบบจาลองอ-อาร

แบบจาลองอ-อาร ประกอบดวย เอนทต แอตทรบวต คย และความสมพนธ ดงรายละเอยดตอไปน

3.2.1 เอนทต (Entity)

เอนทต (entity) คอ สงตางๆ ทผใชงานฐานขอมลตองการจะจดเกบ ซงมลกษณะเปนคานาม

ทงรปธรรมและนามธรรม เชน บคคล สถานท วตถสงของ และเหตการณตางๆ เปนตน ตวอยางของเอนทตใน

“ระบบการลงทะเบยนเรยนของนกศกษา” ประกอบดวย รายวชา นกศกษา การลงทะเบยน ผลการเรยน

ประจาภาคเรยน สาขาวชา คณะ และหลกสตร เปนตน

เอนทตทรวบรวมไดจากระบบสามารถแยกแยะและจดเปนหมวดหมไดตามชนดของเอนทต

ไดดงตอไปน

- หมวดบคคล ไดแก เอนทต นกศกษา พนกงาน ประชาชน ผปวย และลกคา เปนตน

- หมวดสถานท ไดแก เอนทต รฐ ประเทศ จงหวด ภาค สาขา และวทยาเขต เปนตน

- หมวดวตถ ไดแก เอนทต อาคาร เครองจกร ผลผลต หนงสอ วตถดบ และรถยนต

เปนตน

- หมวดเหตการณ ไดแก เอนทต การขาย การลงทะเบยน การเดนทาง การสงซอของ

การออกใบเสรจรบเงน และการใหรางวล เปนตน

ในอ-อารไดอะแกรม ใชสญลกษณรปสเหลยมผนผา แทนหนงเอนทต โดยใชชอของเอนทตนนๆ

กากบอยภายใน เชน

แทน เอนทต “นกศกษา”

นกศกษา

Page 5: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

3.2.2 แอตทรบวต (Attribute)

แอตทรบวต (attribute) คอ คณสมบตตางๆ ของเอนทตทเราตองการจดเกบในฐานขอมล

ตวอยางเชน

- เอนทตบตรประชาชน ประกอบดวยแอตทรบวต หรอสงทบงบอกคณสมบตของประชาชน

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

หมดอาย สวนสง นาหนก และกรปเลอด เปนตน

- เอนทตพนกงาน ประกอบดวยแอตทรบวต ไดแก รหสพนกงาน ชอ นามสกล ทอย เบอร

โทรศพท สถานรปสมรส และเงนเดอน เปนตน

- เอนทตสนคา ประกอบดวยแอตทรบวต ไดแก รหสสนคา ชอสนคา ราคา และจานวน เปน

ตน

- เอนทตนกศกษา ประกอบดวยแอตทรบวต ไดแก รหสนกศกษา ชอ นามสกล เพศ วน

เดอนปเกด ทอย และเบอรโทรศพท เปนตน

- เอนทตวชา ประกอบดวยแอตทรบวต ไดแก รหสวชา ชอวชา และจานวนหนวยกต เปนตน

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

โดยแตละแถวหรอแตละทเพลจะประกอบดวยหลายแอตทรบวตหรอหลายคอลมนของขอมล จานวนแถวของ

ขอมลในตารางเรยกวา Cardinality และจานวน แอตทรบวตทงหมดในตารางเรยกวา Degree อยางเชน

จากรปท 5.2 ม 4 Cardinality 5 Degree

รปท 5.2 ตวอยางแอตทรบวต ทเพล และเอนทตนกศกษา

ในอ-อารไดอะแกรม ใชสญลกษณรปวงร แทนหนงแอตทรบวต โดยใชชอของ แอตทรบวตนนๆ

กากบอยภายใน เชน

แทน แอตทรบวตของ “ชอ”

ชอ

Page 6: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

3.2.3 คย (Key)

คย (key) คอ แอตทรบวตทสามารถใชบงบอกความแตกตางของแตละทเพลได อาจเปนแอตทรบวต

เดยวๆ หรอ กลมของแอตทรบวตกได

ประเภทของคยประกอบดวย

1) ซปเปอรคย (super key) คอ แอตทรบวตหรอกลมของแอตทรบวต ทสามารถบงบอก

ความแตกตางของแตละทเพลได

ตารางท 5.1 ขอมลในเอนทตนกศกษา

รหสนกศกษา ชอ นามสกล เลขทบตรประชาชน

5620249001 สามารถ ประเสรฐกล 31201000475991

5620249002 วชา ปญญาเลศ 31201000475992

5620249003 นาทพย วเศษศร 31201000475993

จากตารางท 5.1 ประกอบไปดวยซปเปอรคยดงตอไปน

- รหสนกศกษา

- รหสนกศกษา, ชอ

- รหสนกศกษา, ชอ, นามสกล

- เลขทบตรประชาชน

2) คยคแขง (candidate key) คอ ซปเปอรคยทนอยทสด ทสามารถบงบอกความแตกตาง

ของแตละทเพลได

จากตารางท 5.1 ประกอบไปดวยคยคแขงดงตอไปน

– รหสนกศกษา

– เลขทบตรประชาชน

3) คยหลก (primary key) คอ คยคแขงทถกเลอก เพอใชบงบอกความแตกตางของ แตละ

ทเพล จากตารางท 5.1 คยหลก คอ รหสนกศกษา หรอเลขทบตรประชาชน อยางใดอยางหนง คยหลกอาจ

เปนแคหนงแอตทรบวตหรอกลมของแอตทรบวตกได อยางเชน ในตารางท 5.1 มแอตทรบวตเดยวทเปนคย

หลก ซงอาจจะเปน “รหสนกศกษา” หรอ “เลขทบตรประชาชน” กได แตขอมลบางตารางอาจตองอาศย

แอตทรบวตตงแต 2 ตวขนไปมาประกอบกนเปนคยหลก เพอใหเกดความแตกตางระหวางทเพล ดงเชนใน

ตารางท 5.2

ตารางท 5.2 ขอมลในเอนทตการลงทะเบยนเรยนของนกศกษา ปการศกษา 1/56

รหสนกศกษา ชอ รหสวชา ชอวชา ปการศกษา

5820248001 ปรชา 1111 คอมพวเตอร 1/56

5820248001 ปรชา 2222 ภาษาไทย 1/56

5820248002 เกยงไกร 1111 คอมพวเตอร 1/56

5820248003 ฉตรชย 3333 ภาษาองกฤษ 1/56

Page 7: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

จากตารางท 5.2 ไมสามารถใหแอตทรบวตรหสนกศกษา เปนคยหลกเพยงแอตทรบวตเดยวได

เพราะจะเหนวา รหสนกศกษา 5620248001 ของทเพลหรอแถวท 1 จะไปซากบแถวท 2 แตถาใหแอตทรบวต

“รหสนกศกษา” และ “รหสวชา” เปนคยหลก แลวพจารณาขอมลของ 2 แอตทรบวตน จะเหนวาขอมลไมซา

กนแลว ดงนนตารางท 5.2 จงมคยหลกซงประกอบดวยแอตทรบวต 2 ตวประกอบกน คอ “รหสนกศกษา”

และ “รหสวชา”

- คยหลกจะเปนคาวาง (null) ไมได เพราะฉะนนในการกรอกขอมลตางๆ ลงในตาราง

แอตทรบวตใดทเรากาหนดใหเปนคยหลกตองกรอกขอมลใหครบ คอ จะไมมคาไมได แตแอตทรบวตอน

อาจจะปลอยเวนวางไวกไดถาไมทราบคา

4) คยนอก (foreign key) คอ แอตทรบวตทใชในการเชอมตอกบเอนทต อนๆ เพอแสดง

ความสมพนธ

คณสมบตของคยนอก คอ

- คยนอกสามารถมคาซากนได

- คยนอกสามารถเปนคาวางได

- คยนอกทไมเปนคาวางจะเปนคาทชไปยงคยหลกของเอนทตทสมพนธกน

รปท 5.3 แอตทรบวตทเปนคยรองทใชในการเชอมตอกบเอนทตอน

5) คยรอง (secondary key) คอ แอตทรบวตทไมเปนคยหลก แตสามารถใชในการคนหาขอมลนนๆ ได โดยคยรองจะมคาซากนได ตวอยางเชน ในตารางท 5.3 มรหสนกศกษาเปนคยหลก แตหากตองการคนหาขอมลจากชอนกศกษา แอตทรบวต “ชอ” กจะเปน คยรอง หรอถาตองการคนหาขอมลจากนามสกลนกศกษา แอตทรบวต “นามสกล” กจะเปน คยรอง เปนตน

Page 8: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ตารางท 5.3 คยรองทใชในการคนหาขอมล รหสนกศกษา ชอ นามสกล เบอรโทรศพท

58111 สามารถ ประเสรฐกล 08-111-1111 58112 วชา ปญญาเลศ 08-222-2222 58113 นาทพย วเศษศร 08-333-3333 58114 สมจตร สมสกลวงค 08-444-4444 58115 วชา รกศกดศร 08-555-5555

3.2.4 ความสมพนธ

ความสมพนธ (relationship) เปนการอธบายความสมพนธระหวางเอนทตทมความสมพนธกน วามความสมพนธกนอยางไร โดยในอ-อารไดอะแกรมใชสญลกษณรป”สเหลยมขาวหลามตด” ทมชอของความสมพนธนนกากบอยภายใน และเชอมตอกบเอนทตทเกยวของกบความสมพนธดวยเสนตรง ดงตวอยางดานลาง

รปท 5.4 ตวอยางความสมพนธระหวางเอนทต

ความสมพนธระหวางเอนทตแบงเปน 3 ประเภท คอ ความสมพนธแบบหนงตอหนง

ความสมพนธแบบหนงตอกลม และความสมพนธแบบกลมตอกลม ดงรายละเอยดตอไปน

1) ความสมพนธแบบหนงตอหนง (one to one relationship หรอ 1:1) หมายถง ขอมล

ในเอนทตหนง มความสมพนธกบขอมลในอกหนงเอนทตเพยงขอมลเดยว ตวอยางเชน นกศกษาแตละคนจะม

สตบตรไดเพยงใบเดยวเทานน และสตบตรหนงใบกเปนของนกศกษาไดเพยงคนเดยวเทานนเชนกน

รปท 5.5 ความสมพนธของขอมลแบบหนงตอหนง

ในการพจารณาความสมพนธระหวางเอนทตแบบหนงตอหนง ตองมองสองทศ คอ มองจากซายไป

ขวา และกตองมองจากขวาไปซาย แลวจงนาความสมพนธทงสองทศ มาพจารณารวมกน ดงรปท 5.6

Page 9: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

รปท 5.6 วธการพจารณาความสมพนธแบบหนงตอหนง

2) ความสมพนธแบบหนงตอกลม (one to many relationship หรอ 1:M) หมายถง

ขอมลในเอนทตหนง มความสมพนธกบขอมลในอกหนงเอนทตมากกวาหนงขอมล ตวอยางเชน ลกคาหนงคน

มใบเสรจไดหลายใบ เนองจากลกคาหนงคนอาจมาซอสนคาหลายครง แตใบเสรจหนงใบตองเปนของลกคา

เพยงคนเดยวเทานน

รปท 5.7 ความสมพนธของขอมลแบบหนงตอกลม

ในการพจารณาความสมพนธระหวางเอนทตแบบหนงตอกลม ตองมองสองทศ คอ มองจากซายไป

ขวา และกตองมองจากขวาไปซาย แลวจงนาความสมพนธทงสองทศ มาพจารณารวมกน ดงรปท 5.8

รปท 5.8 วธการพจารณาความสมพนธแบบหนงตอกลม

3) ความสมพนธแบบกลมตอกลม (many to many relationship หรอ M:M) หมายถง

ขอมลมากกวาหนงขอมลในเอนทตหนง มความสมพนธกบขอมลในอกหนงเอนทตมากกวาหนงขอมล

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

เรยนไดหลายคน

รปท 5.9 ความสมพนธของขอมลแบบกลมตอกลม

Page 10: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ในการพจารณาความสมพนธระหวางเอนทตแบบกลมตอกลม ตองมองสองทศ คอ มองจากซายไป

ขวา และกตองมองจากขวาไปซาย แลวจงนาความสมพนธทงสองทศ มาพจารณารวมกน ดงรปท 5.10

รปท 5.10 วธการพจารณาความสมพนธแบบกลมตอกลม

สญลกษณในแบบจาลองอ-อาร

ตารางท 5.4 สญลกษณทสาคญๆ ในแบบจาลองอ-อาร

ตวอยาง

นกศกษา และ วชา เปนเอนทตทเราสนใจจะจดเกบ ซงเอนทตนกศกษาจะประกอบดวยแอตทรบวต

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

เอนทตวชาจะประกอบดวยแอตทรบวต ไดแก รหสวชา ชอวชา และจานวนหนวยกต เปนตน โดยมรหสวชา

เปนคยหลก ซงความสมพนธระหวางเอนทตนกศกษาและเอนทตวชา เปนแบบกลมตอกลม คอ นกศกษาหนง

คนสามารถลงทะเบยนเรยนไดหลายวชา และวชาแตละวชามนกศกษาลงทะเบยนเรยนไดหลายคน ดงนนเรา

สามารถนาเสนอในรปของของแผนรป ทเรยกวา อ-อารไดอะแกรม (E-R Diagram) ดวยการใชสญลกษณ

ตางๆ ดงน

Page 11: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

รปท 5.11 ตวอยางของ อ-อารไดอะแกรม (E-R Diagram)

3.3 การแปลงแบบจาลองอ-อารเปนโครงสรางตารางฐานขอมล

ขนตอนในการแปลงแบบจาลองอ-อารเปนโครงสรางของตารางในฐานขอมล มขนตอนดงตอไปน

3.3.1 แปลงเอนทตปกตในแบบจาลองอ-อารเปน 1 ตาราง ซงประกอบดวยแอตทรบวต

ของเอนทตนนๆ โดยชอของตารางกคอชอของเอนทต และแอตทรบวตของเอนทต กคอ แอตทรบวตของ

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

อ-อาร ซงจากรปท 5.11 นามาแปลงเปนตารางได 2 ตาราง คอ

รปท 5.12 โครงสรางของตารางในฐานขอมลจากการแปลงเอนทตปกตในแบบจาลองอ-อาร

3.3.2 แปลงความสมพนธเปนตาราง

1) แปลงความสมพนธแบบ 1 : M นนไมตองสรางตารางใหม แตใหนา แอตทรบวต ท

เปนคยหลกของเอนทตทอยดานความสมพนธทเปน 1 ไปเพมเปนแอตทรบวตของตารางดานทมความสมพนธ

เปน M

2) แปลงความสมพนธแบบ M : M จะไดตารางใหม 1 ตาราง ซงประกอบดวย

แอตทรบวตของความสมพนธนนรวมกบแอตทรบวตทเปนคยหลกของ 2 เอนทตทมความสมพนธ แบบ M : M

Page 12: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

จากแบบจาลองอ-อารในรปท 5.11 สามารถสรางตารางตามขนตอนนไดอก 1 ตาราง คอ ตารางการ

ลงทะเบยน ซงประกอบดวยแอตทรบวต รหสนกศกษา (คยหลกของ เอนทต นกศกษา) และ รหสวชา (คย

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

เปนคยหลก ดงน

รปท 5.13 โครงสรางของตารางทไดจากการแปลงความสมพนธแบบ M:M

จากการแปลงแบบจาลองอ-อารตามขนตอนขางตน สรปตารางทไดทงหมด 3 ตาราง ดงตอไปน

รปท 5.14 โครงสรางฐานขอมลการลงทะเบยนเรยนของนกศกษา

ทงนโครงสรางฐานขอมลทไดจากการแปลงแบบจาลองอ-อารนนจะอยใน 1NF ดงนนจงจาเปนตอง

นามาทานอรมลไลเซชนตอ เพอใหไดฐานขอมลทปราศจากความซาซอนหรอซาซอนนอยทสด แตถาไดทาการ

ออกแบบฐานขอมลโดยการใชแบบจาลองอ-อาร มาอยางถกตองแลว เมอแปลงเปนโครงสรางฐานขอมลแบบ

สมพนธ จะไดโครงสรางความสมพนธทจดกลมของแอตทรบวตมาเปนอยางด และบางทโครงสรางของ

ความสมพนธทไดนนอาจอยในนอรมลฟอรมทสงกวานอรมลฟอรมท 1 แลว อยางไรกตามขนตอนถดมา

จาเปนตองวเคราะหความสมพนธระหวางแอตทรบวต ซงกคอ วธนอรมลไลเซชนทจะกลาวตอไป

Page 13: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

3.4 การจดระบบขอมลในรปแบบบรรทดฐาน (Normalization)

การเกบรวบรวมขอมลทไดจากการศกษาของระบบงานเดมจะอยในรปแบบของเอกสารหรอรายงาน

ตางๆซงจะมรปแบบทซบซอนเนองจากมการเกบรายละเอยดของขอมลทกอยางไวดวยกนหมด ทฤษฏหนงท

ผออกแบบฐานขอมลจะตองนามาใชในการแปลงขอมลทอยในรปแบบทซบซอนใหอยในรปแบบทงายตอการ

นาไปใชและกอใหเกดปญหานอยทสด ไดแก ทฤษฏเกยวกบเรอง “กระบวนการนอรมลไลเซชน” หรอ

กระบวนการจดระบบขอมลในรปแบบบรรทดฐาน ซงเปนเครองมอทชวยในการออกแบบฐานขอมลแบบเชง

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

กนในรเลชนออกไป และสรางรเลชนรปแบบใหมซงจะเปนการแตกรเลชนออกเปนรเลชนยอยหลายรเลชน เพอ

แกไขปญหาฐานขอมล จดการกบขอมลไดงาย สามารถเพม ลบ และเปลยนแปลงขอมลไดโดยไมกอใหเกด

ปญหา ฐานขอมลทดตองสามารถจดการขอมลไดอยางมประสทธภาพ

3.4.1 แนวคดเกยวกบนอรมลไลเซชน

กตต ภกดวฒนะกล และจาลอง ครอตสาหะ (2544 หนา 133) ใหความหมายวา นอร

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

ขอมล ในแตละรเลชน (relation) อยในรปทเปนหนวยทเลกทสดทไมสามารถแตกออกเปนหนวยยอยๆ ไดอก

โดยยงคงความสมพนธระหวางขอมลในรเลชนตางๆ ไวตามหลกการทกาหนดไวใน relational model การทา

นอรมลไลเซชนน เปนการดาเนนการอยาง เปนลาดบ ทกาหนดไวดวยกนเปนขนตอน ตามปญหาทเกดขนใน

ขนตอนนนๆ ซงแตละขนตอน จะมชอตามโครงสรางขอมลทกาหนดไวดงน

1. First Normal Form (1NF)

2. Second Normal Form (2NF)

3. Third Normal Form (3NF)

4. Boyce-Codd Normal Form (BCNF)

5. Fourth Normal Form (4NF)

6. Fifth Normal Form (5NF)

ในการออกแบบฐานขอมลเพอลดความซาซอนในการจดเกบขอมลอยางนอยตองม

คณสมบตเปน 3NF เพราะจรงๆ แลว ในการทางานทวๆ ไป แค 3 NF กสามารถใชงานไดแลว แตสาหรบ

BCNF ไปจนถง 5NF เปนฐานขอมลชนดพเศษจรงๆ ทแทบจะไมมในชวตประจาวน โอกาสพบประมาณ 0.01 %

ดงนนในทนจะศกษาเพยงแค 1NF 2NF และ 3NF เทานน เพอใชเปนแนวทางในการศกษาระดบอนตอไป

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

นอรมลฟอรม (Normal Form) ซงโครงสรางนสามารถแกไขปญหาทเกดขนในโครงสรางขอมลของขนตอนกอน

หนานนได นนคอ การทานอรมอไลเซชนแตละขนตอนตองอาศยผลทไดจากการจดระบบขอมลในนอรมอไลเซ

ชนกอนหนา มาปรบปรงเพอใหมโครงสรางเปนไปตามโครงสรางทกาหนดไวในขนตอนนนๆ

หากการออกแบบขอมลมปญหาในการจดดาเนนการขอมล การทาใหขอมลอยในการทานอร

มอฟอรม (Normal Form) จะทาการแยกรเลชนเดมเปนรเลชนยอย โดยการแยกรเลชนจะตองคงไวซง

คณสมบต 2 ประการคอ

Page 14: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ประการท 1 ตองไมมขอมลทไมเหมอนเดมเกดขน หรอมขอมลใหมเกดขนจากการเชอมโยงขอมล

ประการท 2 หากมการแยกรเลชนยอย ยงคงรกษาไวซงขอกาหนดเดมไวใหไดมากทสดและเปน

ประโยชนตอการใชงาน

3.4.2 รปแบบรปแบบบรรทดฐาน (Normal Form: NF)

1) รปแบบบรรทดฐานระดบท 1 (First Normal Form: 1NF)

รปแบบบรรทดฐานระดบท 1 หรอ First Normal Form เปนการปรบบรรทดฐานระดบแรกสด

จะเปนกระบวนการในการปรบตารางขอมลของผใชงานใหอยในรปแบบบรรทดฐานระดบท 1 ซงรเลชน ใดๆ

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

เพยงคาเดยว และตองมคณสมบตดงน

หลกการแปลงเปน 1NF

(1) หากพบวามกลมขอมลซา ใหแยกขอมลออกใหเปนเอกเทศเปนแตละคอลมน หมายความ

วาขอมลทเกบในแตละคอลมนจะตองมลกษณะเปนคาเดยว (single valued) ไมสามารถแบงยอยไดอก

(2) กาหนดคยหลก (Primary key) ใหกบรเลชน (Relation)

ในการทานอรมลไลเซชนจะตองดขอมลในตารางเปนหลก ตวอยางเชน ขอมลในตารางท 5.5 แสดง

การเกบขอมลเกยวกบการสงสนคา ซงแตละรหสการสงสามารถสงสนคาไดมากกวา 1 อยาง

ตารางท 5.5 แสดงรเลชนทอยในรปแบบไมเปนบรรทดฐาน (Un-Normal Form: UNF)

รหสการสง วนทสง รหสสนคา ชอสนคา จานวนทสง ราคาสนคา

OR58001 02/02/58 5811101 กระดาษ 8 2800

OR58002 02/02/58 5811102

5811103

ดนสอ

ปากกา

12

24

250

500

OR58003 04/03/58 5811104 แฟม 6 300

OR58004 04/03/58 5811105 หมกพมพ 1 3200

OR58005 05/03/58 5811101

5811102

กระดาษ

ดนสอ

4

12

1400

250

OR58006 05/03/58 5811103 ปากกา 12 250

OR58007 05/03/58 5811104 แฟม 12 600

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

มากกวา 1 คา แสดงวาไมเปน atomic หรออยในรปของ repeating group ดงนนตารางท 5.5 จงไมเปน 1NF

โดยเราจะเรยกตารางทยงไมผานแมแต 1NF วา Un-normalized Form (UNF)

ตารางทเปน 1NF นนทกๆคาของแตละคอลมนจะตองเปน Atomic นนคอจะตองไมมคอลมนใดทมขอมล

มากกวา1 คา (จะตองไมม Repeation Groups)

Page 15: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

จากตารางท 5.5 ทไมมคณสมบตเปน 1NF สามารถทาใหมคณสมบตเปน 1NF ไดดงตารางท 5.6 ซง

มรหสการสง และรหสสนคา เปนคยหลก

ตารางท 5.6 ขอมลนกศกษาทผานการทารปแบบบรรทดฐานระดบท 1 ( First Normal Form: 1NF)

รหสการสง วนทสง รหสสนคา ชอสนคา จานวนทสง ราคาสนคา

OR58001 02/02/58 5811101 กระดาษ 8 400

OR58002 02/02/58 5811102 ดนสอ 12 25

OR58002 02/02/58 5811103 ปากกา 24 25

OR58003 04/03/58 5811104 แฟม 6 30

OR58004 04/03/58 5811105 หมกพมพ 1 3200

OR58005 05/03/58 5811101 กระดาษ 4 400

OR58005 05/03/58 5811102 ดนสอ 12 25

OR58006 05/03/58 5811103 ปากกา 12 25

OR58007 05/03/58 5811104 แฟม 12 30

ถงแมวาตารางท 5.6 จะไดรบการออกแบบใหอยในรป 1NF แลว แตลกษณะของขอมลภายในอาจ

กอใหเกดปญหาขนไดอก เชน ขอมลทเกยวกบขอมลสงชอ รหส OR58002 ถกจดเกบไวในแถวท 2 และ 3

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

และกอใหเกดปญหาในการเปลยนแปลงขอมลดวย เชน ถารหสสนคา 5811101 มการเปลยนชอ หรอราคา ก

ตองทาการแกไขขอมลหลายแถว ซงถามการแกไขขอมลไมครบ กอาจทาใหขอมลภายในตารางเกดความ

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

2) รปแบบบรรทดฐานระดบท 2 (Second Normal Form: 2NF)

รเลชนใดๆ จะอยในรปแบบบรรทดฐานระดบท 2 กตอเมอ รเลชนนนๆ อยในรปแบบบรรทด

ฐานระดบท 1 และแอททรบวตทกตวทไมไดเปนคยหลก จะตองมความสมพนธระหวางคาของแอททรบวตแบบ

ฟงกชนกบคยหลก (Fully Functional Dependency) ตวอยางรเลชน นกศกษา (รหสนกศกษา, ชอ, สกล, เบอร

โทรศพท) จะเหนวาเมอทราบคาแอททรบวตรหสนกศกษาจะสามารถทราบคาของแอททรบวตตวอนๆ ได

อยางสมบรณตองมคณสมบตดงน

หลกกการแปลงเปน 2NF

(1) หากมรเลชนใดทมแอททรบวตมการขนตอกนกบบางสวนของคยหลก ใหตดแอททรบวตดงกลาว

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

1) ตองมคณสมบตของรปแบบบรรทดฐานระดบท 1 หรอ 1NF

2) ทกๆคอลมนทไมใชคย (non-key column) จะตองขนกบ Primary key โดยสมบรณ

แมวา Primary key จะเปน Composite key กตาม (จะตองไมเกด Partial Dependency)

Page 16: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

(2) สรางรเลชนใหม โดยดงแอททรบวตทขนกบบางสวนของคยหลก และกาหนดคยหลกของรเลชน

จากแอททรบวตทเปนสวนประกอบของรเลชนทแอททรบวตเหลาน มฟงกชนการขนตอกน

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

แอตทรบวตทมากกวา 1 ตวกจะตองขนอยกบแอตทรบวตทงหมดทเปนคยหลก ไมใชขนอยกบบางตวการทจะ

รวาแอตทรบวตใดขนอยกบแอตทรบวตใดนน ตองใชความรในเรองฟงกชนการขนตอกน หรอ functional

dependency ซงเปนสงทใชแสดงความสมพนธระหวาง แอตทรบวต ในรปแบบฟงกชน เพอชวยในการตดสนใจ

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

ใหม

สมมตวา X และ Y เปนแอตทรบวตในตารางหนง ถา Y ขนอยกบ X จะสามารถเขยนฟงกชนการขน

ตอกนไดดงน

การท Y ขนอยกบ X หมายความวา ทกๆคาของ X ทเราเลอกขนมา จะสามารถหาคาของ Y มา 1

คาทสอดคลองกบคาของ X ไดเสมอ เชน จากตารางท 5.7 เปนตารางทเกบขอมลเกยวกบนกศกษา ถาถามวา

นกศกษาคนใดทมรหสนกศกษาเปน 56111 กสามารถตอบไดทนทวาคอ นกศกษาทชอวา สามารถ ประเสรฐ

กล ดงนนชอนกศกษาจงขนอยกบรหสนกศกษา ซงเขยนเปนฟงกชนการขนตอกนไดวา รหสนกศกษา ชอ

นนเอง

ตารางท 5.7 ตารางนกศกษา

รหสนกศกษา (คยหลก) ชอ นามสกล เบอรโทรศพท

56111 สามารถ ประเสรฐกล 08-1111-1111

56112 วชา ปญญาเลศ 08-2222-222

56113 นาทพย ปญญาเลศ 08-3333-3333

56114 สมจตร สมสกลวงศ 08-4444-4444

56115 วชา รกศกดศร 08-5555-5555

จากตารางท 5.6 พบวาไดเกดความซาซอน เมอมการสงซอสนคาชนดเดยวกนขน เชน มการสงซอ

สนคา 5811102 ซากนในแถวท 2 และ 7 เกดความซาซอนทาใหเปลองเนอท และยงทาใหเกดปญหา ซง

สามารถแบงลกษณะของปญหาออกเปน 4 ประเภท ไดแก

1) การแกไขขอมล หากมการเปลยนแปลงชอสนคาจากดนสอเปนสมด เราตองแกไขในทกๆ

เรคอรดทมรายการดนสอ ซงการแกไขอาจไมครอบคลมทกเรคอรด

2) ความขดแยงของขอมล เชน ถามการแกไขรหสสนคา และชอสนคา กตองแกไขราคา

สนคาดวย เพอใหราคาสนคาชนดเดยวกนเทากน เชน แถวท 2 ราคาสนคา 500 บาท ในขณะทแถวท 7 ม

ราคาสนคา 25 บาท

XY

Page 17: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

3) การเพมเตมขอมล หากบรษทเกดตดสนใจนาสนคาชนดใหมเขามาขาย เชน คอมพวเตอร

จะตองรอใหมการสงซอจากลกคาเสยกอน จงจะมรายการของสนคาใหมเกดขน ซงผดหลกการคา

4) การลบขอมล หากมลกคายกเลกการสงรหสการสง OR58001 ซงมผลใหตองลบขอมลใน

แถวท 1 ออกไปจากตาราง ทาใหระบบสญเสยขอมลของสนคากระดาษไปดวย

ทาใหเราตองทาการจดขอมลในรปแบบบรรทดฐานระดบท 2 โดยการสรางตาราง (รเลชน) ขนมาใหม

เพอแกปญหาทเกดขนกบ 1NF

การสงสนคา (รหสการสง, วนทสงสนคา)

สนคา (รหสสนคา, ชอสนคา, ราคา)

บญชการสง (รหสการสง, รหสสนคา, จานวนทสง)

ซงเราอาจจะตงชอตาราง (รเลชน) ทง 3 นวา การสงสนคา สนคา และบญชการสง แสดงดง

ตารางท 5.8 ตารางท 5.9 และตารางท 5.10

ตารางท 5.8 แสดงตารางการสงสนคาทอยในรปแบบบรรทดฐานระดบท 2 (Second Normal Form: 2NF)

รหสการสง วนทสง

OR58001 02/02/58

OR58002 02/02/58

OR58003 04/03/58

OR58004 04/03/58

OR58005 05/03/58

OR58006 05/03/58

OR58007 05/03/58

ตารางท 5.9 แสดงตารางสนคาทอยในรปแบบบรรทดฐานระดบท 2 (Second Normal Form: 2NF)

รหสสนคา ชอสนคา ราคาสนคา

5811101 กระดาษ 400

5811102 ดนสอ 25

5811103 ปากกา 25

5811104 แฟม 30

5811105 หมกพมพ 3200

5811106 ยางลบ 80

5811107 กระดาษกาว 125

5811108 ไมบรรทด 50

5811109 คลปหนบ 130

Page 18: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ตารางท 5.10 แสดงตารางบญชการสงอยในรปแบบบรรทดฐานระดบท 2 (Second Normal Form: 2NF)

รหสการสง ชอสนคา จานวนทสง

OR58001 กระดาษ 8

OR58002 ดนสอ 12

OR58002 ปากกา 24

OR58003 แฟม 6

OR58004 หมกพมพ 1

OR58005 กระดาษ 4

OR58005 ดนสอ 12

OR58006 ปากกา 12

OR58007 แฟม 12

จากตารางท 5.9 พบวาการแกไขขอมลทเคยเปนปญหาอยจะไมเกดขนแลว เชน การเปลยนชอของ

5811102 จากดนสอเปนสมดกจะทาในตารางสนคาเพยงแถวเดยว ซงไมทาใหเกดความขดแยงขน สวนกรณ

ของการสงกระดาษ ซงมรหสการสง OR58001 ในตาราง 5.10 เรากเพยงแตลบขอมลแถวแรกออกจากตาราง

บญชการสง ซงจะไมกระทบกระเทอนขอมลเกยวกบ 5811101 เพราะยงเกบอยในตารางสนคาในรปเดม ไมม

การเปลยนแปลง

3) รปแบบบรรทดฐานระดบท 3 (Third Normal Form: 3NF)

รเลชนใดๆ จะอยในรปแบบบรรทดฐานระดบท 3 กตอเมอ รเลชนนนๆ อยในรปแบบบรรทด

ฐานระดบท 2 และแอททรบวตทไมไดเปนคยหลกไมมคณสมบตในการกาหนดคาของแอททรบวตอนทไมใชคย

หลก (Transitive Dependency) แสดงดงตารางท 5.11 ตองมคณสมบตดงน

หลกการแปลงใหเปน 3NF

(1) หากในรเลชนมการขนตอกนแบบทรานซทฟ ใหตดเอาแอททรบวตทขนตอกนแบบทรานซทฟ

ออกไปสรางรเลชนใหม

(2) สรางรเลชนใหม โดยนาเอาแอททรบวตทขนตอกนแบบทรานซทฟจากรเลชนเดมมาและกาหนด

คยหลกโดยเลอกเอาแอททรบวตทสามารถกาหนดคาของแอททรบวตอนๆ ได

(3) ในรเลชนเดมใหคงแอททรบวตทสามารถเลอกคาแอททรบวตทไมใชคยหลกไวเปนคยนอก

(Foreign key) เพอใชในการเชอมโยงกบรเลชนใหม

ตารางทเปน 3NF นนจะตองเปน 2NF

และจะตองไมมคอลมนใดชนตอคอลนมอนทไมใชคยหลก (Primary key)

Page 19: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ตารางท 5.11 แสดงรเลชนลกคาทมรปแบบบรรทดฐานระดบท 2 (2NF)

รหสลกคา ชอลกคา ทอย รหสพนกงาน ชอพนกงาน

C58124 เฉลยว 18 สขสวสด S553 วนย

C58256 สวด 22 สขมวท 9 S556 พรพรรณ

C58311 ยงยทธ 25/1 รามอนทรา 21 S557 ประสทธ

C58315 พชย 105 ลาดพราว 32 S556 พรพรรณ

C58405 นนทวน 172 สาธประดษฐ S557 ประสทธ

C58255 ประมวล 21 เจรญกรง S553 วนย

C58522 มณรตน 56 ลาดพราว 120 S557 ประสทธ

C58587 วชระ 41 วทย S556 พรพรรณ

C58622 มณรตน 258 พหลโยธน S553 วนย

จากตารางท 5.11 มคยประกอบดวยแอททรบวตเพยงตวเดยวคอ รหสลกคา กยงมปญหาเกดขนกบ

ขอมลถาเราเพมเตมขอมลของพนกงานขายเขาไป การซาซอนในสวนของพนกงานขายเกดขนปญหาในการ

แกไขขอมลกจะเกดขนตามมาเหมอนเดม เชน

1) การแกไขขอมล ถามการแกไขขอมลเกยวกบพนกงานขาย เชน พนกงานขายหมายเลข S557 ทา

การเปลยนชอจาก ประสทธ เปนประจกษ จะยงผลใหตองทาการแกไขหลายแหง

2) ความขดแยงของขอมล ผลสบเนองมาจากการแกไขขอมลทปรากฏหลายแหง อาจจะทาการแกไข

ไมครบทกแหงซงเปนตนเหตใหขอมลแตละแหงมคาไมตรงกน

3) การเพมเตมขอมล ถาบรษทรบพนกงานขายเขามาใหมยกตวอยาง ชอสมศร ซงไดรบรหส

หมายเลข S555 เราไมสามารถเพมขอมลของสมศรเขาไปในระบบได เนองจากสมศรยงไมมลกคา

4) การลบขอมล ถาเราเกดลบขอมลเกยวกบลกคาของพนกงานขายหมายเลข S557 ออกจากระบบ

กจะยงผลใหขอมลของพนกงานขายคนนจะหายไปดวยทงๆ ทเขายงคงทางานอยในบรษท

จากตารางท 5.11 การกาจดขอมลทเกดขนจากทรานซทฟดเพนเดนซ โดยการแยกขอมลชอพนกงาน

ขายจากรเลขนลกคาทเปนทรานซทฟดเพนเดนซออกมาสรางเปนรเลชนใหม ใหคงแอททรบวตรหสพนกงาน

ขายทจะทาหนาทเปนคยนอก (Foreign Key) ไวในรเลชนเดม โดยตงชอรเลชนใหมนวา พนกงานขาย

กาหนดใหรหสพนกงานขายเปนคยหลก ซงจะทาใหไดผลลพธดงน

ลกคา (รหสลกคา, ชอลกคา, ทอย, รหสพนกงานขาย)

พนกงานขาย (รหสพนกงานขาย, ชอพนกงานขาย)

การจดเกบขอมล ดงแสดงในตารางท 5.11 จะเหนไดวาขอมลเกยวกบพนกงานขาย ถกแยกออกมาอย

คนละรเลชนจงไมเกดความซาซอนแตอยางใดทาใหการเพมเตมขอมลของพนกงานขายคนใหมสามารถกระทา

ไดโดยไมตองมลกคาเนองจากขอมลถกจดเกบแยกรเลชนกน นอกจากนนปญหาในการลบขอมลของลกคาก

จะไมเกดขนอกตอไป เพราะกระทาเฉพาะรเลชนลกคาเทานน แสดงดงตารางท 5.12 และตารางท 5.13

Page 20: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ตารางท 5.12 แสดงรเลชนลกคาและรเลชนพนกงานขายทมรปแบบบรรทดฐานระดบท 3 (3NF)

รเลชน “ลกคา”

รหสลกคา ชอลกคา ทอย รหสพนกงาน

C58124 เฉลยว 18 สขสวสด S553

C58256 สวด 22 สขมวท 9 S556

C58311 ยงยทธ 25/1 รามอนทรา 21 S557

C58315 พชย 105 ลาดพราว 32 S556

C58405 นนทวน 172 สาธประดษฐ S557

C58255 ประมวล 21 เจรญกรง S553

C58522 มณรตน 56 ลาดพราว 120 S557

C58587 วชระ 41 วทย S556

C58622 มณรตน 258 พหลโยธน S553

รเลชน “พนกงานขาย”

รหสพนกงาน ชอพนกงาน

S553 วนย

S556 พรพรรณ

S557 ประสทธ

4) รปแบบบรรทดฐานของบอยสและคอดด (Boyce/Codd Normal Form : BCNF)

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

รปแบบบรรทดฐานระดบท 3 และไมมแอททรบวตอนในรเลชนทสามารถระบคาของแอททรบวตทเปนคยหลก

หรอสวนหนงสวนใดของคยหลกในกรณทคยหลกเปนคยผสม แสดงดงตารางท 5.13

ตารางท 5.13 แสดงตวอยางการจดระบบขอมลในรปแบบบรรทดฐานของบอยสและคอดด

รเลชน “ลกคา”

รหสลกคา รหสประจาตวประชาชน ชอลกคา ทอย

C58124 2900021854468 เฉลยว 18 สขสวสด

C58256 4351385359001 สวด 22 สขมวท 9

C58311 3650008087302 ยงยทธ 25/1 รามอนทรา 21

C58315 5400346134331 พชย 105 ลาดพราว 32

C58405 3546421600164 นนทวน 172 สาธประดษฐ

C58255 5156135430043 ประมวล 21 เจรญกรง

Page 21: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

สามารถเขยนความสมพนธไดดงน

รหสประจาตวประชาชน ชอลกคา ทอย

2900021854468 เฉลยว 18 สขสวสด

4351385359001 สวด 22 สขมวท 9

3650008087302 ยงยทธ 25/1 รามอนทรา 21

5400346134331 พชย 105 ลาดพราว 32

3546421600164 นนทวน 172 สาธประดษฐ

5156135430043 ประมวล 21 เจรญกรง

รหสลกคา ชอลกคา ทอย

C58124 เฉลยว 18 สขสวสด

C58256 สวด 22 สขมวท 9

C58311 ยงยทธ 25/1 รามอนทรา 21

C58315 พชย 105 ลาดพราว 32

C58405 นนทวน 172 สาธประดษฐ

C58255 ประมวล 21 เจรญกรง

รหสลกคา รหสประจาตวประชาชน

C58124 2900021854468

C58256 4351385359001

C58311 3650008087302

C58315 5400346134331

C58405 3546421600164

C58255 5156135430043

5) รปแบบบรรทดฐานระดบท 4 (Fourth Normal Form : 4NF)

รเลชนหนงๆ จะอยในรปแบบบรรทดฐานระดบท 4 กตอเมอ รเลชนนนๆ อยในรปแบบBCNF

และเปนรเลชนทไมมความสมพนธในการระบคาของแอททรบวตแบบหลายคาโดยทแอททรบวตทถกระบคา

หลายคาเหลานไมมความสมพนธกนรเลชนทอยในรปแบบ BCNF จะอยในรปแบบบรรทดฐานระดบท 3 แต

รเลชนทอยในรปแบบบรรทดฐานระดบท 3 ไมจาเปนจะตองอยในรปแบบ BCNF ดงนนรเลชนทควรตองผาน

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

ผสมและมความซาซอนกน

Page 22: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ตวอยาง สนคาชนดหนง มผผลตหลายบรษท ผผลตแตละบรษทมโครงการผลตหลายโครงการ และ

มโรงงานตงอยหลายจงหวด แสดงดงตารางท 5.14

ตารางท 5.14 แสดงการปรบใหเปน 1NF โดยใหทกแอททรบวตประกอบกนเปนคยหลก

รเลชน “ผผลต” รเลชน “ผผลต”

รหสผผลต รหส

โครงงาน

จงหวดทตง

โรงงาน

รหสผผลต

รหส

โครงงาน

จงหวดทตง

โรงงาน

P1 PJ001 กรงเทพฯ P1 PJ001 กรงเทพฯ

PJ001 อยธยา P1 PJ001 อยธยา

PJ002 กรงเทพฯ P1 PJ002 กรงเทพฯ

PJ002 สมทรปราการ P1 PJ002 สมทรปราการ

P2 PJ003 ระยอง P2 PJ003 ระยอง

PJ003 ชลบร P2 PJ003 ชลบร

PJ004 ระยอง P2 PJ004 ระยอง

PJ004 ชลบร P2 PJ004 ชลบร

PJ005 ระยอง P2 PJ005 ระยอง

PJ005 ชลบร P2 PJ005 ชลบร

จากตารางท 5.14 รเลชนผผลตประกอบดวยรหสผผลต ซงมความสมพนธแบบหนงตอกลมกบแอ-

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

ททรบวตประกอบกนเปนคยหลก แตแอททรบวตรหสโครงการทสงผลตไมมความสมพนธกบจงหวดทตง

โรงงานแตมาอยในรเลชนเดยวกนจงกอใหเกดความซาซอนของขอมลเกดขน เพราะจงหวดทตงโรงงานอยใน

รเลชนทซากน ดงนนรเลชนนจงมปญหาแฝงอยแมวารเลชนผผลตจะอยในรปแบบของ BCNF โดยมแอททร

บวตทกแอททรบวตประกอบกนเปนคยหลกกตาม

ปญหาความผดพลาดทเกดขนจากการเพม ลบ หรอปรบปรงขอมลในรเลชนผผลต มโอกาสเกดขน

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

เรคอรด หรอความผดพลาดทเกดจากการเพมขอมลอาจจะทาไมได เชน การเกบขอมลชอจงหวดทตงโรงงาน

ของผผลตรายใหมทยงไมเคยไดรบงานโครงการใดเลยจะทาไมได เปนตนการแกไขปญหาทาไดโดยการแตก

รเลชน ผผลต ออกเปนสองรเลชน แสดงดงตารางท 5.15

โครงการผลต (รหสผผลต, รหสโครงการทสงผลต)

โรงงานผลต (รหสผผลต, จงหวดทตงโรงงาน)

Page 23: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

ตารางท 5.15 แสดงตวอยางการจดระบบขอมลในรปแบบบรรทดฐานระดบท 4

รเลชน “โครงการผลต”

รหสผผลต รหสโครงการ

P1 PJ001

P1 PJ002

P2 PJ003

P2 PJ004

P2 PJ005

รเลชน “โรงงานผลต”

รหสผผลต จงหวดทตงโรงงาน

P1 กรงเทพฯ

P1 อยธยา

P1 สมทรปราการ

P2 ระยอง

P2 ชลบร

6) รปแบบบรรทดฐานระดบท 5 (Fifth Normal Form : 5NF)

รเลชนหนงๆ จะอยในรปแบบบรรทดฐานระดบท 5 หรอทเรยกวา Project-Join Normal Form

(PJ/NF) กตอเมอรเลชนนนอยในรปแบบบรรทดฐานระดบท 4 และไมม Symmetric Constraint กลาวคอหากม

การแตกรเลชนออกเปนรเลชนยอย (Projection) และเมอทาการเชอมโยงรเลชนยอยทงหมด (Join) จะไม

กอใหเกดขอมลใหมทไมเหมอนรเลชนเดม (Squrious Tuple)

ตวอยาง รเลชนผผลต ประกอบดวยแอททรบวต ชอผผลต ชอสนคา และชอโครงการ

โดยมแอททรบวตทงสามเปนคยหลก แสดงดงตารางท 5.16

ตารางท 5.16 แสดงรเลชนผผลต ทอยในรปแบบบรรทดฐานท 4

รเลชน “ผผลต”

ชอผผลต ชอสนคา ชอโครงการ

เสร ปากกา PJ2

เสร โตะ PJ1

พนดา ปากกา PJ1

เสร ปากกา PJ1

Page 24: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

จากตารางท 5.16 รเลชนผผลตทอยในรปแบบบรรทดฐานระดบท 4 ดวยการใหแอททรบวตทงสาม

ประกอบกนเปนคยหลก แตยงมปญหาในการปรบปรงแกไขขอมล เชน หากตองการลบขอมลของทเพลท 3

(พนดา, ปากกา, PJ1) ขอมลของชอผผลต คอ พนดาจะหายไปจากฐานขอมลหรอหากมการเปลยนชอสนคาก

ตองทาการปรบปรงขอมลหลายทเพล เปนตน เพอหลกเลยงปญหาดงกลาว จงทาการแยกรเลชน ผผลต เปน

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

ตารางท 5.17 แสดงตวอยางการจดระบบขอมลในรปแบบบรรทดฐานระดบท 5

จากตารางท 6.13 เมอแตกรเลชน ผผลต ออกเปนรเลชน การผลต สนคาทผลต และโครงการผลต

หากนารเลชนทงสามมาเชอมโยงกน (JOIN) จะมขอมลเหมอนในรเลชนเดม (Symmetric Constraint) คอ ไมม

ลกษณะของทเพลทเกนมาซงเรยกวา Spurious Tuple

ประเดนทควรคานงถงในการทาใหเปนรปแบบบรรทดฐาน คอ การแตกรเลชนมากเกนไป (Over

normalization)

วตถประสงคหนงของการทาใหเปนรปแบบบรรทดฐาน คอ เพอลดปญหาในดานความซาซอนของ

ขอมล และลดปญหาในเรองการเพม การปรบปรง หรอลบขอมล โดยทวไปแลวการออกแบบในระดบแนวคด

ผออกแบบจะพยายามวเคราะหรเลชนใหอยในรปแบบระดบท3 แตถามกรณของปญหาทจาเปนตองทาตอไป

ถงรปแบบบรรทดฐานของบอยสและคอดด หรอระดบท 4 หรอระดบท 5 (ซงเกดขนนอยมากในทางปฏบต)

แตอยาพยายามแตกรเลชนใหมากเกนความจาเปน (Over normalization) เพราะการแตกรเลชนออกเปนรเลชน

ยอยมากเกนไป มผลตอประสทธภาพในการทางานของฐานขอมลนนๆ เชน ในการคนหาขอมลจะใชเวลามาก

เกนไป เปนตน

Page 25: บทที่ 5 การออกแบบฐานข้อมูลelearning.psru.ac.th/courses/256/บทที่ 5.pdfบทที่ 5 การออกแบบฐานข้อมูล

สรป

การออกแบบฐานขอมลเปนขนตอนหนงในการพฒนาระบบฐานขอมล เครองมอทนยมนามาใชในการ

ออกแบบฐานขอมล คอ แบบจาลองอ-อาร ซงประกอบดวย เอนทต แอตทรบวต คย และความสมพนธ โดย

เอนทต คอ สงตางๆ ทผใชงานฐานขอมลตองการจะจดเกบ สวนแอตทรบวต คอ คณสมบตตางๆ ของเอนทต

สาหรบคย คอ แอตทรบวตทสามารถใชบงบอกความแตกตางของขอมลแตละทเพลหรอแถวได และ

ความสมพนธนนคอความสมพนธระหวางเอนทต เมอนาองคประกอบทงหมดมาประกอบกนเปนแบบจาลอง

อ-อาร กตองทาการแปลงแบบจาลองอ-อารเปนโครงสรางตารางฐานขอมล แลวจงนามาทาการนอรมลไลเซ

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

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