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 การออกแบบฐานข้อมูล

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

Published by wansopin1, 2017-07-04 23:18:41

Description: การทำ Normalization

Keywords: ออกแบบฐานข้อม,Normallize

Search

Read the Text Version

ชุดเดมิ หน่วยท่ี 2 การออกแบบฐานข้อมลูหัวขอ้ เรือ่ ง 1. ขนั้ ตอนการออกแบบฐานข้อมูล 2. จุดประสงค์และการทาํ ตารางให้อยู่ในรปู แบบปกติ (Normal Form)สาระสาํ คัญ การออกแบบฐานข้อมลู เรม่ิ ต้นด้วยการกาํ หนดวตั ถุประสงค์ รวบรวมข้อมูลที่มีอยู่จัดแยกเป็นหมวดหมู่กําหนดเป็นเอนทิตี้ แล้วแปลงเป็นตาราง ซึ่งอาจมีเพียงตารางเดียวหรือหลายตารางก็ได้ทั้งน้ีขึ้นอยู่กับว่าข้อมูลมีมากเพียงใด หลังจากที่จัดแบ่งข้อมูลเรียบร้อย จําเป็นต้องระบุคีย์หลักให้แต่ละตาราง พร้อมท้ังกําหนดความสัมพันธ์ของแต่ละตารางด้วย การออกแบบที่ดีจะทําให้ได้รับฐานข้อมลู ท่ตี รงตามความตอ้ งการและสามารถแก้ไขได้โดยงา่ ยจุดประสงค์เชงิ พฤติกรรม 1. บอกข้ันตอนการออกแบบฐานขอ้ มูลได้ 2. กําหนดคีย์หลัก คียน์ อก และคียผ์ สมของตารางได้ 3. ทาํ ตารางให้อยู่ในรปู แบบปกติ (Normal Form) ได้

17 แบบทดสอบกอ่ นเรียนหน่วยที่ 2จงเลอื กคําตอบทถี่ ูกตอ้ งทสี่ ดุ 1. ขนั้ ตอนแรกในการออกแบบฐานขอ้ มูลคอื ขอ้ ใด ก. กําหนดโครงสรา้ งของตาราง ข. รวบรวมข้อมลู ค. กาํ หนดคียห์ ลกั ให้ตาราง ง. สรา้ งความสมั พนั ธ์ 2. รายการใดไมค่ วรกําหนดไว้ในตารางข้อมลู ก. ความสามารถพเิ ศษ ข. ประสบการณ์การทํางาน ค. ยอดรวมเงิน ง. ราคาตน้ ทุนต่อหนว่ ย 3. ข้อใดไม่ใช่คุณสมบัติของคีย์หลัก ก. เปน็ คา่ ว่างได้ ข. ตอ้ งระบคุ ่าในตารางได้เพยี งค่าเดยี ว ค. ห้ามซํา้ ง. ประกอบดว้ ยเขตขอ้ มลู เดียวหรือหลายเขตข้อมูล จากตารางใช้ตอบคําถามขอ้ 4ระเบยี นที่ 1 ชอ่ื รายวชิ า ชน้ั เรียน กนกอร ภาษาไทย Section 1ระเบยี นท่ี 2 ระบบฐานข้อมลู Section 1ระเบยี นท่ี 3 ขวญั กมลระเบียนที่ 4 จงจิตร ภาษาไทย Section 2 ชิดชม ภาษาอังกฤษ Section 1 ระบบปฏิบตั ิการ Section 14. จากตารางระเบียนในข้อใดมีค่ามากกว่า 1 คา่ ก. ระเบยี นที่ 1 ข. ระเบียนที่ 2 ค. ระเบยี นท่ี 3 ง. ระเบียนที่ 4

185. คยี ผ์ สมจะเกิดข้ึนเม่ือใด ก. เมือ่ ไมม่ ีคีย์หลกั ข. เมือ่ ในตารางนัน้ ไมม่ คี ีย์นอก ค. เมอ่ื ไมม่ ีเขตข้อมูลเดย่ี วที่มคี ุณสมบตั ิเป็นคียห์ ลัก ง. เมือ่ คีย์หลักมคี า่ เปน็ ตัวเลขหลายหลัก6. การทํานอร์มอลไลเซช่นั เพื่อประโยชนใ์ นข้อใด ก. เพื่อสรา้ งตารางข้อมูล ข. เพือ่ ลดปญั หาการซ้ําซอ้ นของขอ้ มูล ค. เพ่อื สร้างความสัมพันธ์ ง. เพ่ือออกแบบฐานข้อมูล7. ทกุ เขตข้อมูลในหนงึ่ ระเบยี นต้องเกบ็ ค่าเพียงค่าเดยี ว เปน็ การทาํ นอรม์ อลไลเซช่นั ระดับใด ก. ระดับที่หน่ึง ข. ระดับท่ีสอง ค. ระดับท่ีสาม ง. ระดับ BCNF8. การขึ้นต่อบางสว่ นของคยี ์หลักจะเกดิ ขนึ้ ไดต้ ามขอ้ ใด ก. เม่อื มีคียน์ อกในตารางนน้ั ข. เมอ่ื มีคียห์ ลักเปน็ คียผ์ สม ค. เม่ือเขตข้อมลู ในระเบียนในตารางมีมากกว่า 1 คา่ ง. เม่อื มเี ขตข้อมลู ท่ีขน้ึ กบั คยี อ์ น่ื ท่ีมใิ ช่คยี ์หลกั9. ข้อใดผา่ นรปู แบบปกติระดับท่ีสาม ก. ต้องเป็น 2 NF ก่อนและไม่มีคีย์นอกในตารางนัน้ ข. ต้องเป็น 2 NF กอ่ นและไมม่ เี ขตข้อมลู ในระเบียนในตารางมมี ากกวา่ 1 คา่ ค. ต้องเป็น 2 NF ก่อนและไม่มีการขึ้นต่อบางส่วนของคยี ห์ ลกั ง. ต้องเป็น 2 NF ก่อนและไมม่ เี ขตข้อมลู ทข่ี ้นึ กับคีย์อ่นื ท่ีมใิ ช่คยี ห์ ลัก10. ความสัมพนั ธป์ ระเภทใดที่มมี ากท่สี ุดในระบบฐานข้อมลู ก. กลมุ่ ตอ่ กลุ่ม ข. หนึ่งตอ่ หน่งึ ค. หนง่ึ ตอ่ กลมุ่ ง. กล่มุ ตอ่ หลายกลุ่ม

19 การจัดการฐานข้อมูล ต้องเริ่มด้วยการออกแบบฐานข้อมูล เพราะการออกแบบที่ดีและถูกต้องจะทาํ ให้สามารถบรรลวุ ตั ถปุ ระสงค์ในการทํางานกับฐานข้อมูล ช่วยลดปัญหาการซํ้าซ้อนและความผิดพลาดของข้อมูล ทําให้ได้ข้อมูลท่ีถูกต้อง อีกทั้งยังสามารถแก้ไขหรือปรับเปล่ียนให้สมบูรณ์ยิง่ ขน้ึ ได้โดยง่าย2.1 ขั้นตอนการออกแบบฐานข้อมลู การออกแบบฐานข้อมลู ควรมีขัน้ ตอนดังน้ี 1. รวบรวมขอ้ มลู เพ่ือกาํ หนดเอนทิตี้ 2. กําหนดโครงสรา้ งของตาราง 3. กําหนดคียห์ ลกั ให้ตาราง 4. ทดลองใส่ข้อมูลลงในตารางที่สรา้ งไว้ 5. ปรับตารางให้อยู่ในรูปแบบปกตทิ ่ีเรียกวา่ การทํา Normalizations 6. สรา้ งความสมั พันธ์ระหวา่ งตาราง 2.1.1 รวบรวมข้อมูลเพ่ือกําหนดเอนทิตี้ ในการจัดทําฐานข้อมูลข้ันตอนนี้ต้องทําการรวบรวมขอ้ มูลรายละเอียดต่าง ๆ ตามความต้องการของผู้ใชฐ้ านขอ้ มูล ดงั น้ี 1) รวบรวมเอกสารใบสัง่ ซ้ือ ใบเสรจ็ รบั เงนิ ข้อมูลลูกคา้ แล้วนาํ มาจัดตามความสัมพันธ์ของข้อมูลแยกเปน็ เอนทติ ี้ 2) ให้จําแนกว่าข้อมูลท่ีได้มาเป็นข้อมูลลักษณะใด เช่น ตัวเลข ตัวอักษร รูปภาพ เป็นต้น 3) พิจารณาว่าจะต้องจัดทํารายงานอะไรบ้าง เช่น รายงานยอดขายประจําเดือนรายงานสนิ ค้าคงเหลอื ท้ังนี้ ควรแตกข้อมูลเป็นส่วนเล็กที่สุดท่ีมีประโยชน์ เช่น ชื่อ-นามสกุล ควรแยกเป็นสองสว่ น เพอื่ สะดวกในการเรยี งลาํ ดบั หรอื คน้ หาขอ้ มลู รายการต่าง ๆ เหล่านี้คือรายการท่ีจะนําไปสร้างเป็นเขตข้อมูลในตาราง และรายการทไี่ ด้จากการคาํ นวณไม่ควรนํามาไว้ในตาราง 2.1.2 กําหนดโครงสรา้ งของตาราง จากรายการข้อมูลท่ีได้ ให้สํารวจดูว่าควรจะมีข้อมูลใดเพ่ิมเติมในแต่ละเอนทิต้ีหรือไม่ หลังจากน้ันให้แปลงเอนทิตี้เป็นตาราง แล้วกําหนดโครงสร้างเบื้องต้นให้ตารางโดยการแปลงแอททริบวิ ต์เปน็ เขตข้อมูล 2.1.3 กาํ หนดคีย์หลัก เม่ือได้ตารางแล้วข้ันต่อไปคือ กําหนดคีย์หลักให้แต่ละตาราง ซ่ึงคีย์หลกั มคี ุณสมบัตคิ อื เป็นคา่ วา่ งไม่ได้ มคี ่าเพยี งค่าเดียว ซํ้าไม่ได้ และใช้เป็นตัวเชื่อมความสัมพันธ์ของตารางข้อมลู โดยการกาํ หนดเปน็ คีย์นอกในตารางอืน่ ๆ ดังน้ันจึงต้องเลือกเขตข้อมูลที่สามารถระบุถึงข้อมูลท่ีอยู่ในแต่ละระเบียนได้โดยไม่ซํ้ากัน ซึ่งส่วนมากจะกําหนดเขตข้อมูลเพ่ิมข้ึนมาใหม่ เช่นรหัสสินคา้ รหัสลูกคา้ เปน็ ตน้ ในบางคร้ังคีย์หลกั อาจจาํ เปน็ ตอ้ งประกอบดว้ ยเขตข้อมูลมากกว่าหนึ่งเขตขอ้ มูลก็ได้ ท่เี รยี กว่า คยี ์ผสม (ศกึ ษาได้จากหน่วยท่ี 1) 2.1.4 ทดลองใส่ข้อมูลลงในตาราง การทดลองใส่ข้อมูลลงในตารางเพ่ือตรวจสอบดูว่ามีข้อมูลซ้ําซ้อนหรือไม่ หรืออาจมีข้อมูลบางเขตข้อมูลที่ไม่สอดคล้องกับตารางน้ัน โดยสมมติรายการที่คาดว่าจะเกิดขนึ้

20 2.1.5 ปรับตารางให้อยู่ในรูปแบบปกติ (Normal Form) หลังจากใส่ข้อมูลแล้วหากพบว่ามขี อ้ มลู ทีซ่ ้าํ ซ้อนและไมส่ อดคล้องกัน จําเปน็ ตอ้ งมีการปรับปรงุ ตารางเพอ่ื ให้ข้อมูลอยู่ในรูปแบบปกติ เพ่อื สะดวกต่อการนําไปใช้งานและมีปัญหาน้อยที่สุด เช่น หากข้อมูลมีการบันทึกซํ้าๆ ปัญหาท่ีตามมาคือ เปลืองเน้ือท่ีในการเก็บข้อมูล การแก้ไข ลบ หรือเพ่ิมข้อมูลทําได้ยากข้ึน เน่ืองจากข้อมูลเดียวกนั ต้องทาํ การแกไ้ ข ลบหรือเพ่ิมหลายแห่ง จากการปรับในขั้นตอนนี้อาจทําให้เกิดตารางเพ่ิมขึ้นใหม่และจําเปน็ ต้องกําหนดคยี ห์ ลักใหต้ ารางนั้น ๆ ดว้ ย 2.1.6 สร้างความสมั พนั ธร์ ะหว่างตาราง จากตารางท่ไี ด้ท้ังหมด ให้สร้างความสัมพันธ์โดยใช้คีย์ที่กําหนดไว้ในข้อ 2.1.3 และข้อ 2.1.5 เป็นตัวสร้างความสัมพันธ์ ซ่ึงอาจจะเป็นความสัมพันธ์แบบหนงึ่ ต่อหนึ่ง หนึง่ ตอ่ กลมุ่ หรอื กลมุ่ ต่อกลุ่มก็ได้ตามความเหมาะสม2.2 จดุ ประสงคแ์ ละการทําตารางให้อยู่ในรปู แบบปกติ (Normal Form) 2.1.1 จุดประสงค์ของการทําตารางให้อยูใ่ นรปู แบบปกติหรือท่เี รยี กว่า การทํานอร์มอลไลเซช่นั (Normalizations) คือ 1) ลดเนื้อท่ีในการจัดเก็บข้อมูล เน่ืองจากการทํานอร์มอลไลเซชั่นจะช่วยลดความซ้ําซอ้ นของข้อมลู จึงทําใหป้ ระหยัดเนอ้ื ทีใ่ นการจัดเก็บข้อมูล 2) ลดปัญหาข้อมูลไม่ถูกต้อง เน่ืองจากข้อมูลไม่มีความซ้ําซ้อนกัน เมื่อมีการแก้ไขเพิ่มหรือลบข้อมลู กจ็ ะกระทําเพียงแหง่ เดยี ว จงึ ชว่ ยลดปญั หาในการแก้ไขข้อมูลไมค่ รบหรือไมถ่ กู ต้องได้ 2.2.2 การทํานอร์มอลไลเซช่นั มี 3 ระดบั คือ 1) ระดับทห่ี นึ่ง (First Normal Form: 1NF) ในรูปแบบปกติระดับที่หน่ึงกําหนดว่า ทุกเขตข้อมูลของตารางในหน่ึงระเบียนต้องเก็บค่าเพียงค่าเดียว ดังน้ันต้องกําจัดความซํ้าซ้อนของตารางด้วยการแยกข้อมูลท่ีมีมากกว่าหน่ึงค่าออกเป็นระเบยี นใหม่ (ดตู วั อยา่ งการออกแบบฐานข้อมูล) 2) ระดับท่สี อง (Second Normal Form: 2NF) ในรปู แบบปกติระดับทส่ี องกําหนดวา่ ตารางใดจะมีรูปแบบ 2NF ได้ ตารางน้ันต้องเปน็ 1NF ก่อนและทุกเขตข้อมูลท่ีไม่ใช่คีย์ต้องข้ึนกับคีย์หลักทั้งหมด ไม่ใช่ข้ึนกับบางส่วนของคีย์หลัก(กรณีทค่ี ยี ์หลักเปน็ คยี ์ผสม) (ดูตัวอยา่ งการออกแบบฐานขอ้ มูล) 3) ระดบั ทสี่ าม (Third Normal Form: 3NF) ในรปู แบบปกติระดบั ที่สามกาํ หนดว่า ตารางใดจะมีรูปแบบ 3NF ได้ ตารางนั้นต้องเป็น 2NF และทุกเขตข้อมูลที่ไม่ใช่คีย์หลักจะต้องข้ึนกับคีย์หลักเท่านั้นและต้องไม่มีการข้ึนต่อกันกับคียอ์ ืน่ ทม่ี ใิ ช่คียห์ ลัก

21ขอ้ มลู เริ่มต้น กําจดั ความซ้ําซ้อนของข้อมูลด้วยการแยกเป็นระเบยี นใหม่รูปแบบปกติระดับที่หนง่ึ แยกเขตข้อมลู ท่ีข้ึนต่อบางส่วนของคยี ์หลกั ออกเปน็ ตารางใหม่รปู แบบปกติระดบั ทส่ี อง แยกเขตขอ้ มูลที่ขึน้ กับคีย์อ่นื ทมี่ ใิ ชค่ ียห์ ลกั ออกเปน็ ตารางใหม่รูปแบบปกติระดบั ที่สาม จะไดต้ ารางในรูปแบบปกติระดับที่ 3 รูปที่ 2.1 แสดงขนั้ ตอนการทาํ นอรม์ อลไลเซชัน่ ทมี่ า : คูม่ อื Access 2007 ฉบบั สมบรู ณ์ตัวอยา่ งท่ี 2.1 การออกแบบฐานข้อมลู การขายสินคา้ มขี ้ันตอนดงั นี้ ข้ันตอนท่ี 1 รวบรวมเอกสารท่ีมีอยู่ เช่น ใบสั่งซื้อสินค้า บัญชีลูกค้า และรายงานยอดขายสินค้าประจําเดือน จดรายการต่าง ๆ จากเอกสารคือ เลขที่ใบส่ังซ้ือ วันที่ซ้ือ ชื่อลูกค้า ท่ีอยู่ลูกค้าภาค เบอร์โทร ชื่อสินค้า จํานวน ราคาต่อหน่วย จํานวนเงิน จากรายการท่ีจดได้เมื่อแยกตามความสอดคล้องของข้อมูลสามารถกําหนดเป็นเอนทิต้ีได้ 3 เอนทิต้ี คือ เอนทิต้ีสินค้า เอนทิตี้ลูกค้าและเอนทติ ใี้ บสัง่ ซอื้ ดังน้ี ชอื่ สินค้า จํานวนคงคลงั ราคาตอ่ หนว่ ย เอนทติ ้ีสินค้า รปู ที่ 2.2 แสดงเอนทติ ้สี นิ คา้ และแอททรบิ ิวต์ ทอ่ี ยู่ จงั หวัด ภาคชอ่ื ลูกค้า เบอรโ์ ทร เอนทติ ี้ลกู ค้า รูปท่ี 2.3 แสดงเอนทิตี้ลูกคา้ และแอททรบิ วิ ต์

22 วนั ทซี่ อื้ ช่อื ลูกคา้ ชอ่ื สนิ ค้าเลขที่ใบสง่ั ซื้อ จาํ นวนทีซ่ ้ือ เอนทิตใ้ี บสงั่ ซ้อื รปู ที่ 2.4 แสดงเอนทิต้ีใบส่ังซอ้ื และแอททรบิ ิวต์ ข้นั ตอนที่ 2 กําหนดโครงสรา้ งของตารางโดยการแปลงจากเอนทติ แี้ ละแอททรบิ ิวตเ์ ป็นตารางและเขตข้อมูล คือ ตารางสนิ ค้า ตารางลูกคา้ ตารางใบสง่ั ซ้ือชื่อสินคา้ ชอ่ื ลูกค้า เลขท่ใี บส่ังซื้อจํานวนคงคลัง ท่อี ยู่ วันทีซ่ ้อืราคาต่อหนว่ ย จังหวัด ชื่อลูกค้า ภาค ชอ่ื สินค้า เบอรโ์ ทร จาํ นวนทซ่ี ้ือ รูปที่ 2.5 แสดงตารางสินคา้ ตารางลูกค้าและตารางใบสงั่ ซือ้ข้ันตอนท่ี 3 กําหนดคยี ห์ ลักใหแ้ ตล่ ะตาราง ตารางสนิ ค้า ตารางลกู คา้ ตารางใบสั่งซื้อรหสั สินค้า (PK) รหัสลูกคา้ (PK) เลขท่ใี บส่ังซื้อ (PK)ช่อื สนิ ค้า ช่ือลกู ค้า วนั ท่ีซ้อืจาํ นวนคงคลัง ทีอ่ ยู่ รหัสลูกคา้ราคาตอ่ หน่วย จงั หวัด รหสั สินคา้ รหัสภาค จาํ นวนทซ่ี ื้อ ภาค เบอร์โทร รปู ที่ 2.6 แสดงตารางและคียห์ ลกั ของตาราง

23 ขัน้ ตอนท่ี 4 ใส่ขอ้ มลู ในตาราง ตารางสนิ คา้ รหสั สนิ ค้า (PK) ชื่อสินคา้ จํานวนคงคลัง ราคาต่อหน่วย TS101 เส้อื ยดื คอกลม 365 185 TS102 เส้ือโปโล 124 215 SP101 ลกู ฟุตบอล 243 300 SP106 ลูกรักบ้ี 120 578 รูปท่ี 2.7 แสดงข้อมลู ตารางสนิ ค้า ตารางลกู ค้ารหัส รหสั ภาคลูกค้า ช่ือลกู ค้า ท่ีอยู่ จังหวัด ภาค เบอร์โทร(PK) 034-242012 053-472354CU001 ร้านเอสเคสปอร์ต 81 ถ.หนา้ พระ อ.เมือง นครปฐม C กลาง 034-411248CU008 ร้านสบายสปอรต์ อ.เมอื ง เชียงใหม่ N เหนือCU015 ร้านเครื่องกฬี า 123 ถ.เศรษฐกิจ สมทุ รสาคร C กลาง รปู ท่ี 2.8 แสดงขอ้ มูลตารางลูกคา้ ตารางใบสั่งซ้ือ เลขทใ่ี บส่ังซ้ือ วันท่ซี ื้อ รหสั ลกู คา้ รหสั จํานวนท่ี (PK) สนิ ค้า ซ้อื B54010001 05/01/54 CU001 TS101 35 SP101 42 B54010002 05/01/54 CU015 TS101 56 TS102 32 B54010003 15/01/54 CU001 TS102 30 B54010004 17/01/54 CU008 TS101 35 รูปที่ 2.9 แสดงข้อมูลตารางใบสง่ั ซือ้

24 ข้นั ตอนท่ี 5 ปรับให้อยู่ในรปู แบบปกติด้วยวธิ กี ารทเี่ รยี กว่า นอรม์ อลไลเซช่ัน รปู แบบปกติระดับท่ีหนึ่ง (First Normal Form: 1NF) รูปแบบปกติระดับท่ีหน่ึงกําหนดว่า ทุกเขตข้อมูลของตารางในหนึ่งระเบียนต้องเก็บค่าเพียงค่าเดียว ดังนั้นต้องกําจัดความซํ้าซ้อนของตารางด้วยการแยกข้อมูลท่ีมีมากกว่าหน่ึงค่าออกเป็นระเบียนใหม่ จากตัวอย่างตารางท่ีไม่เป็นไปตามรูปแบบปกติท่ีหนึ่งและส่วนที่ต้องดําเนินการคือ ตารางใบส่งั ซอ้ื เพราะใบส่ังซอ้ื เลขท่ี B54010001 และ B54010002 มรี ายการสินค้า 2 รายการ ผลลัพธ์จะไดด้ งั นี้ ตารางใบสงั่ ซ้ือเลขทใ่ี บสงั่ ซ้ือ (PK) วันทีซ่ อื้ รหัสลูกค้า รหสั สนิ ค้า จํานวนที่ซือ้ B54010001 05/01/54 CU001 TS101 35 B54010001 05/01/54 CU001 SP101 42 B54010002 05/01/54 CU015 TS101 56 B54010002 05/01/54 CU015 TS102 32 B54010003 15/01/54 CU001 TS102 30 B54010004 17/01/54 CU008 TS101 35รปู ท่ี 2.10 แสดงขอ้ มลู ตารางใบส่ังซอื้ หลงั ผา่ นรูปแบบปกตริ ะดบั ที่หนงึ่ จากรปู ท่ี 2.10 เมอ่ื ดําเนนิ การปรับให้อยู่ในรูปแบบปกติระดับท่ีหนึ่งแล้ว จะเห็นว่าเขตข้อมูลเลขท่ีใบส่ังซ้ือท่ีเป็นคีย์หลักไม่มีคุณสมบัติของคีย์หลักแล้วเพราะมีค่าซ้ํากัน และเม่ือตรวจสอบดูปรากฏว่าไม่มีคีย์เด่ียวใด ๆ สามารถเป็นคีย์หลักได้ จําเป็นต้องกําหนดคีย์หลักเป็นคีย์ผสมและได้คีย์หลักใหม่เป็นเขตข้อมูลเลขที่ใบสั่งซ้ือและเขตข้อมูลรหัสสินค้ารวมกันจึงจะทําให้ได้ค่าที่ไม่ซํ้ากันตามรูปที่ 2.11 ตารางใบส่งั ซื้อเลขทีใ่ บสงั่ ซ้ือ รหัสสนิ คา้ (PK) วันทซ่ี ื้อ รหสั ลกู ค้า จํานวนทซี่ อ้ื (PK) TS101 05/01/54 CU001 35B54010001 SP101 05/01/54 CU001 42B54010001 TS101 05/01/54 CU015 56B54010002 TS102 05/01/54 CU015 32B54010002 TS102 15/01/54 CU001 30B54010003 TS101 17/01/54 CU008 35B54010004 รปู ท่ี 2.11 แสดงขอ้ มูลตารางใบส่งั ซ้อื ทก่ี าํ หนดคยี ์หลักใหม่

25 รูปแบบปกติระดับที่สอง (Second Normal Form: 2NF) รูปแบบปกติระดบั ท่สี องกําหนดวา่ ตารางใดจะมรี ูปแบบ 2NF ได้ ตารางนั้นต้องเป็น1NF ก่อนและทุกเขตข้อมูลที่ไม่ใช่คีย์ต้องข้ึนกับคีย์หลักทั้งหมด ไม่ใช่ขึ้นกับบางส่วนของคีย์หลัก(กรณที ค่ี ยี ์หลักเปน็ คยี ผ์ สม) จากตัวอย่างหลังจากผ่านการตรวจสอบรูปแบบปกติระดับที่หน่ึงมาแล้ว ปรากฏว่า ตารางสนิ คา้ และตารางลกู ค้า ผ่านรูปแบบปกติระดับทส่ี อง ส่วนตารางใบสง่ั ซอ้ื ไม่ผ่านเพราะมีบางเขตข้อมูลข้ึนกับเขตข้อมูลเลขท่ีใบส่ังซ้ือเท่าน้ันคือ รหัสลูกค้า และวันท่ีซื้อ ส่วนเขตข้อมูลจํานวนท่ีซื้อ ขึ้นกับคยี ์หลกั (เลขท่ใี บสัง่ ซื้อและรหัสสินค้า) ดังนน้ั จึงแยกได้ 2 ตารางคอื 1) ตารางใบสง่ั ซื้อ ประกอบด้วย เขตข้อมูลเลขที่ใบส่ังซ้ือ วันที่ซื้อและรหัสลูกค้า โดยมีเขตข้อมลู เลขทใ่ี บส่งั ซอื้ เป็นคีย์หลกั 2) ตารางรายละเอียดการสั่งซื้อ ประกอบด้วย เขตข้อมูลเลขท่ีใบส่ังซื้อ รหัสสินค้าจํานวนทซ่ี ้ือ โดยมีเขตข้อมูลเลขท่ใี บส่งั ซ้ือและเขตข้อมลู รหสั สนิ คา้ เป็นคีย์หลกั ผลลพั ธ์ทีไ่ ดเ้ ป็นดงั น้ี ตารางใบสัง่ ซื้อเลขท่ีใบสั่งซื้อ วนั ท่ซี ื้อ รหสั ลูกคา้ (PK) 05/01/54 CU001B54010001 05/01/54 CU015B54010002 15/01/54 CU001B54010003 17/01/54 CU008B54010004ตารางรายละเอยี ดใบสัง่ ซ้ือเลขทีใ่ บสง่ั ซ้ือ รหัสสินค้า จํานวน (PK) (PK) ที่ซ้ือ TS101 35B54010001 SP101 42B54010001 TS101 56B54010002 TS102 32B54010002 TS102 30B54010003 TS101 35B54010004รูปที่ 2.12 แสดงขอ้ มลู ตารางใบสง่ั ซือ้ และตารางรายละเอียดใบสงั่ ซ้ือหลงั ผา่ นรูปแบบปกติระดบั ทีส่ อง

26 รปู แบบปกติระดับทีส่ าม (Third Normal Form : 3NF) รูปแบบปกติระดับที่สามกําหนดว่า ตารางใดจะมีรูปแบบ 3NF ได้ ตารางน้ันต้องเป็น 2NFและทกุ เขตขอ้ มลู ท่ีไม่ใชค่ ยี ์หลักจะตอ้ งข้ึนกับคีย์หลักเท่าน้ันและต้องไม่มีการขึ้นต่อกันกับคีย์อื่นท่ีมิใช่คยี ์หลกั จากตัวอย่างตารางท่ีไม่ตรงตามรูปแบบปกติท่ีสามคือ ตารางลูกค้า เพราะเขตข้อมูลภาคข้ึนกับเขตข้อมูลรหัสภาค ดังน้ันจึงต้องแยกตารางออกมาอีก 1 ตารางและกําหนดให้เขตข้อมูลรหัสภาคเปน็ คียห์ ลกั ได้ผลลพั ธด์ ังน้ี ตารางลูกคา้รหสั ลกู ค้า ชอ่ื ลูกคา้ ที่อยู่ จังหวดั เบอรโ์ ทร (PK) 81 ถ.หนา้ พระ อ.เมือง นครปฐม 034-242012CU001 ร้านเอสเคสปอร์ต 4 ถ.ช้างคลาน อ.เมอื ง เชยี งใหม่ 034-472354 123 ถ.เศรษฐกจิ สมุทรสาคร 034-411248CU008 ร้านสบายสปอรต์CU015 ร้านเคร่อื งกีฬา ตารางภาค รหัสภาค ภาค (PK) C กลาง N เหนือ รูปที่ 2.13 แสดงข้อมูลในตารางลกู คา้ และตารางภาคหลงั ผา่ นรปู แบบปกติระดบั ที่สาม จากการทําให้อยู่ในรปู แบบปกติท่ผี ่านมาทําให้ตารางท้ังหมดไม่มีข้อมูลซ้ําซ้อนแล้วดังน้ันจึงให้ทาํ ข้ันตอนตอ่ ไป

27 ขน้ั ตอนที่ 6 สร้างความสัมพันธ์ระหว่างตาราง จากการทาํ ตารางให้อยู่ในรูปแบบปกติ ทําให้ได้ตารางท้ังหมด 5 ตาราง คือ ตารางสินค้า ตารางภาค ตารางใบสั่งซื้อ ตารางรายละเอียดใบสั่งซ้ือและตารางลกู ค้า ซงึ่ มีรายละเอยี ดดังน้ี ตารางสินคา้ ตารางภาครหสั สนิ ค้า ชอ่ื สนิ คา้ จํานวนคง ราคาต่อ รหสั ภาค(PK) ภาค (PK) คลัง หน่วย TS101 เสือ้ ยืดคอกลม 365 185 C กลาง เสื้อโปโล N เหนือ TS102 ลกู ฟุตบอล 124 215 SP101 ลูกรกั บี้ 243 300 SP106 120 578ตารางใบส่ังซื้อ ตารางรายละเอียดใบสัง่ ซ้ือเลขทใี่ บสั่งซื้อ วนั ทซ่ี ้อื รหสั ลกู ค้า เลขท่ใี บสัง่ ซ้ือ รหสั สินคา้ จาํ นวน (PK) (PK) (PK) ทีซ่ อื้ TS101 35B54010001 05/01/54 CU001 B54010001 SP101 42 B54010001B54010002 05/01/54 CU015 TS101 56 B54010002 TS102 32B54010003 15/01/54 CU001 B54010002 TS102 30 B54010003B54010004 17/01/54 CU008 TS101 35 B54010004 ตารางลกู ค้ารหสั ลูกค้า(PK) ช่ือลกู ค้า ท่ีอยู่ จังหวัด เบอร์โทร CU001 ร้านเอสเคสปอร์ต 81 ถ.หน้าพระ อ.เมือง นครปฐม 034-242012 CU008 ร้านสบายสปอรต์ 4 ถ.ช้างคลาน อ.เมือง เชยี งใหม่ 034-472354 CU015 ร้านเคร่ืองกีฬา 123 ถ.เศรษฐกจิ สมทุ รสาคร 034-411248 รูปท่ี 2.14 ตารางทัง้ หมดทไี่ ดจ้ ากการทํานอร์มอลไลเซชั่น

28 ต่อไปเป็นการสร้างความสัมพันธ์ระหว่างตารางท้ังหมด จากตารางที่ได้ให้ตรวจสอบความสัมพันธ์ระหว่างตาราง ถ้าตารางคู่ใดมีความสัมพันธ์แบบหนึ่งต่อกลุ่มต้องนําคีย์หลักของตารางฝง่ั หนึ่งไปไวเ้ ป็นคีย์นอกของตารางฝั่งกลุ่มด้วย และลากเส้นความสัมพันธ์ระหว่างตารางท้ังหมด เช่นตารางภาคกับตารางลูกค้ามีความสัมพันธ์แบบหนึ่งต่อกลุ่ม เพราะในหนึ่งภาคสามารถมีลูกค้าได้มากกว่าหนงึ่ คน ต้องนาํ รหัสภาคใส่ไปไว้ในตารางลูกค้า แล้วสร้างความสัมพันธ์ระหว่างคีย์หลักกับคีย์นอก จะไดต้ ามรปู ที่ 2.15ตาราง ตารางลูกค้า ตาราง 1 ตารางลกู ค้า ภาค รหสั ลูกคา้ (PK) ภาค รหัสลูกค้า (PK)รหัสภาค 1:M รหัสภาค (PK) ช่อื ลูกค้า (PK) ชื่อลกู ค้า ที่อยู่ ทอ่ี ยู่ ภาค จังหวัด ภาค จงั หวดั1.นาํ รหัสภาค เบอรโ์ ทร 2. ลากเสน้ ความ M เบอรโ์ ทรจากตารางภาค สัมพันธ์ รหัสภาค (FK)มาเปน็ คีย์นอกในตารางลูกคา้ รปู ท่ี 2.15 แสดงการสรา้ งความสมั พนั ธ์ระหว่างตารางภาคและตารางลูกคา้ตาราง 1 ตารางลูกค้า 1 ตารางใบสง่ั ซ้ือ 1 ภาค รหสั ลกู ค้า เลขท่ีใบสง่ั ซ้ือ Mรหัสภาค (PK) (PK) (PK) M วันท่ซี อ้ื ภาค ชอื่ ลกู ค้า รหสั ลูกคา้ ทีอ่ ยู่ (FK) M จังหวดั ตารางรายละเอยี ด เบอร์โทร รหัสภาค (FK) ใบสั่งซ้ือ ตารางสินคา้ เลขท่ใี บสั่งซ้ือรหสั สนิ ค้า (PK) 1 M (PK) ชอ่ื สินค้าจาํ นวนคงคลัง รหสั สินค้าราคาตอ่ หน่วย (PK) จํานวนทซี่ ื้อ รูปท่ี 2.16 แสดงความสัมพนั ธร์ ะหวา่ งตารางทั้งหมด

29สรุปประเดน็ สาํ คัญ การออกแบบฐานข้อมูล มีข้ันตอนดังน้ี 1. รวบรวมข้อมลู เพื่อกําหนดเอนทติ ้ี 2. กาํ หนดโครงสรา้ งของตาราง 3. กาํ หนดคยี ห์ ลักให้ตาราง 4. ทดลองใส่ข้อมลู ลงในตารางที่สรา้ งไว้ 5. ปรบั ตารางให้อยู่ในรปู แบบปกติที่เรียกวา่ การทาํ Normalization 6. สร้างความสมั พนั ธ์ระหวา่ งตาราง

30 ใบงานที่ 2.1 เรอื่ ง การออกแบบฐานขอ้ มูลตอนที่ 1 จงตอบคําถามตอ่ ไปนี้ 1. จงอธิบายขั้นตอนการออกแบบฐานขอ้ มลู (4 คะแนน) 2. การทาํ ตารางให้อยู่ในรูปแบบปกติระดบั ท่ี 1 ทาํ อย่างไร (2 คะแนน) 3. การทาํ ตารางให้อยู่ในรปู แบบปกติระดับที่ 2 ทาํ อย่างไร (2 คะแนน) 4. การทาํ ตารางให้อยู่ในรปู แบบปกตริ ะดับท่ี 3 ทําอยา่ งไร (2 คะแนน)ตอนที่ 2 จากข้อมลู ใบเสร็จรับเงินร้านสะดวกซ้ือ ให้ออกแบบฐานขอ้ มูลโดยสามารถเพ่ิมข้อมลู จําเปน็อ่นื ๆ ได้ พร้อมทั้งกําหนดความสัมพันธ์ (10 คะแนน) รหัส ชื่อ-สกุล รหสั ช่อื สนิ ค้า ราคาต่อ จาํ นวน ผู้ขายสมาชิก สินค้า หน่วย ท่ีซอ้ื F203 แซนด์วิช3105 น.ส.แสน สดุ สวย U115 สบู่ 35 1 301 D004 น้าํ ดมื่ สิงห์ 1 ลิตร 18 1 F203 แซนดว์ ิช3241 นายกลม เกลี้ยง ชาเขียวโออิชิ 15 1 3023328 นายสมัย สขุ สม D005 35 2 18 2 301ตอนท่ี 3 คาํ สงั่ (10 คะแนน) 1. ให้นักเรยี นแบ่งกลมุ่ ๆ ละ 3 คน 2. ให้แตล่ ะคนนําใบเสร็จรบั เงินของร้านท่ีตนเองใช้บรกิ ารมาคนละ 1 ฉบับ (ร้านเดยี วกันหรือคนละรา้ นก็ได้ แนะนําวา่ ใบเสร็จแต่ละใบควรมีรายการมากนอ้ ยแตกตา่ งกัน) 3. ออกแบบฐานข้อมลู จากใบเสร็จท่นี าํ มาตามกระบวนการทีเ่ รียน และตง้ั ชอื่ รา้ นใหม่ 4. นาํ เสนองานท่ีทําเสร็จแล้ว

31แบบประเมนิ ผลการปฏบิ ตั งิ าน ใบงานที่ 2.1รายการประเมิน ตอน ่ีท 1 ตอน ่ีท 2 ชือ่ -นามสกุล ตอน ่ีท 3 รวมคะแนน1 นาย............................. ผลการประเ ิมน2 นาย............................. 10 10 10 303 นางสาว.......................4 นาย.............................5 นาย.............................เกณฑ์การประเมิน 1 – 15 คะแนน ควรปรับปรุง = 115 – 20 คะแนน พอใช้ = 221 – 25 คะแนน ดี =326 – 30 คะแนน ดีมาก = 4 ลงชื่อ………………………………………………………………..ผสู้ อน

32 แบบทดสอบหลงั เรยี นหนว่ ยท่ี 2จงเลอื กคําตอบที่ถูกต้องท่ีสดุ 1. รายการใดไม่ควรกําหนดไว้ในตารางข้อมูล ก. ประสบการณ์การทาํ งาน ข. ความสามารถพเิ ศษ ค. ราคาต้นทุนต่อหนว่ ย ง. ยอดรวมเงนิ 2. ข้ันตอนแรกในการออกแบบฐานข้อมูลคอื ข้อใด ก. รวบรวมขอ้ มูล ข. กําหนดโครงสรา้ งของตาราง ค. กาํ หนดคีย์หลกั ใหต้ าราง ง. สรา้ งความสัมพันธ์ 3. คียผ์ สมจะเกิดขึน้ เม่ือใด ก. เมื่อไมม่ ีคยี ห์ ลกั ข. เม่ือในตารางนั้นไม่มคี ยี น์ อก ค. เมือ่ คยี ์หลักมีค่าเปน็ ตัวเลขหลายหลกั ง. เมือ่ ไมม่ เี ขตข้อมูลเด่ียวท่ีมคี ุณสมบตั ิเป็นคยี ์หลัก 4. ข้อใดไม่ใช่คุณสมบัติของคยี ห์ ลกั ก. ห้ามซํา้ ข. เป็นค่าวา่ งได้ ค. ต้องระบคุ า่ ในตารางได้เพียงค่าเดียว ง. ประกอบดว้ ยเขตขอ้ มูลเดยี วหรือหลายเขตข้อมูล 5. การทาํ นอรม์ อลไลเซชัน่ เพื่อประโยชนใ์ นข้อใด ก. เพอ่ื ออกแบบฐานขอ้ มลู ข. เพือ่ สรา้ งตารางข้อมูล ค. เพื่อลดปญั หาการซํ้าซอ้ นของข้อมลู ง. เพือ่ สร้างความสัมพันธ์ 6. ทกุ เขตข้อมูลในหนงึ่ ระเบยี นต้องเกบ็ คา่ เพยี งค่าเดียว เปน็ การทํานอรม์ อลไลเซชัน่ ระดบั ใด ก. ระดบั BCNF ข. ระดับที่หน่ึง ค. ระดับทีส่ อง ง. ระดบั ท่ีสาม

33จากตารางใช้ตอบคาํ ถามขอ้ 7ระเบยี นที่ 1 ช่ือ รายวิชา ชั้นเรียน ภาษาไทย1 Section 1ระเบยี นที่ 2 กนกอร ระบบฐานข้อมูล Section 1ระเบยี นที่ 3ระเบยี นที่ 4 ขวญั กมล ภาษาไทย2 Section 2 จงจิตร ภาษาองั กฤษ Section 1 ชดิ ชม ระบบปฏิบตั กิ าร Section 17. จากตารางระเบียนในข้อใดมีค่ามากกวา่ 1 คา่ ก. ระเบยี นที่ 4 ข. ระเบยี นที่ 3 ค. ระเบียนท่ี 2 ง. ระเบียนท่ี 18. ข้อใดผ่านรูปแบบปกติระดบั ที่สาม ก. ตอ้ งเปน็ 2 NF ก่อนและไมม่ เี ขตข้อมูลที่ข้ึนกบั คีย์อื่นท่ีมิใช่คีย์หลกั ข. ต้องเปน็ 2 NF ก่อนและไม่มีเขตข้อมูลในระเบยี นในตารางมมี ากกวา่ 1 คา่ ค. ต้องเปน็ 2 NF ก่อนและไม่มีคียน์ อกในตารางนั้น ง. ตอ้ งเปน็ 2 NF ก่อนและไม่มีการขน้ึ ตอ่ บางสว่ นของคียห์ ลัก9. ความสมั พันธ์ประเภทใดที่มมี ากทสี่ ดุ ในระบบฐานข้อมูล ก. หนง่ึ ตอ่ หน่ึง ข. หนงึ่ ต่อกลุ่ม ค. กลมุ่ ตอ่ กลุ่ม ง. กลมุ่ ตอ่ หลายกลุ่ม10. การข้ึนต่อบางส่วนของคียห์ ลักจะเกิดข้ึนไดต้ ามขอ้ ใด ก. เมือ่ มีคยี ์นอกในตารางนัน้ ข. เม่อื เขตข้อมูลในระเบียนในตารางมีมากกวา่ 1 ค่า ค. เมื่อมีคีย์หลกั เป็นคยี ์ผสม ง. เมอ่ื มเี ขตข้อมูลที่ข้ึนกบั คยี อ์ ืน่ ทีม่ ิใชค่ ยี ห์ ลกั


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