บทท่ี 7 นอรม์ ัลไลซเ์ ซชนั่ | 125 ตารางที่ 7.2 แสดงรายการสั่งซ้อื สนิ คา้ ที่อยู่ใน 1NF เลขทใ่ี บส่ังซื้อ รหัสสินคา้ จานวนสนิ คา้ 1234 Product1 50 1234 Product2 65 1234 Product3 120 1235 Product2 60 1235 Product4 100 1236 Product2 50 1236 Product5 40 1237 Product4 90 1237 Product3 150 1238 Product1 80 จากตารางที่ 7.2 แสดงรายการสัง่ ซ้อื สนิ คา้ ที่อยู่ใน 1NF เนื่องจากขจัดกลุม่ ขอ้ มลู ซา้ แลว้ 7.4 ฟังกช์ นั นัลดเี พนเดนซี (Functional dependency) ฟังกช์ ันนัลดีเพนเดนซี หมายถงึ คา่ ของแอตทริบิวตห์ น่ึงหรือมากกว่าหนึ่ง แอตทริบวิ ตร์ วมกนั ที่สามารถระบุคา่ ของแอตทริบวิ ตอ์ นื่ ในทูเพลิ เดียวกันของรเี ลชันน้ัน ๆ ได้ โดยแอตทรบิ ิวตห์ รอื กล่มุ ของแอตทรบิ วิ ต์ท่ีเปน็ ตัวระบคุ ่าของแอตทริบิวต์อืน่ ๆ เรยี กว่า Determinant และแอตทริบิวตอ์ ืน่ ๆ ทถ่ี ูกระบคุ ่า เรียกวา่ Dependent กาหนด X , Y , Z เป็น แอตทรบิ วิ ต์ของรีเลชัน R ถา้ ทราบค่าข้อมูลในแอตทรบิ ิวต์ X แลว้ สามารถบอกค่าขอ้ มูลในแอตทรบิ วิ ต์ Y , Z ได้ แสดงว่าแอตทรบิ วิ ต์ Y , Z มฟี งั กช์ ันการขน้ึ ต่อกันกับ แอตทริบิวต์ X เขยี นแทนดว้ ยสัญลกั ษณ์ X Y,Z Determinant Dependent หรือเขยี นแบบแผนภาพ XYZ ภาพท่ี 7.3 ฟังก์ชันนลั ดีเพนเดนซี ทมี่ า : ผ้เู ขยี น การบริหารจัดการระบบฐานขอ้ มูลเพือ่ งานธุรกิจ
126 | บทท่ี 7 นอร์มลั ไลซเ์ ซชนั่ ตัวอย่าง 7.3 ถ้ารูร้ หสั สินคา้ ก็จะร้วู ่าชือ่ สินคา้ รหสั สนิ ค้า ช่อื สนิ คา้ หรอื รหสั สนิ ค้า ชือ่ สนิ คา้ ภาพที่ 7.4 ฟังก์ชันนลั ดเี พนเดนซี ท่ีมา : ผู้เขยี น 7.5 ฟงั ก์ชนั การขนึ้ ต่อกนั แบบท้งั หมด (Full Functional dependency) หมายถงึ ฟงั ก์ชนั การขน้ึ ต่อกนั ระหว่างแอตทริบวิ ต์ที่ไม่ไดเ้ ป็นคยี ์หลกั (Nonkey attribute) มี ฟงั ก์ชนั การข้นึ ต่อกนั กบั แอตทริบิวต์ทเ่ี ปน็ คยี ห์ ลัก (Primary key) แบบทัง้ หมด หรือไม่มีฟังกช์ ันการข้นึ กับบางส่วนของคยี ห์ ลัก Full Functional dependency ABCDE F ภาพท่ี 7.5 แผนภาพแสดงฟังกช์ ันการขึน้ ต่อกนั แบบท้งั หมด ทม่ี า : ผู้เขียน จากภาพท่ี 7.5 แอตทริบวิ ต์ A และ B เปน็ คีย์หลัก เมอ่ื ทราบค่าแอตทรบิ ิวต์ A และ B สามารถ ทราบค่าของแอตทริบิวต์ C, D, E, F ได้ 7.6 ฟังกช์ นั การข้ึนต่อกันแบบบางส่วน (Partial Dependency) พาร์เชียลดีเพนเดนซี (Partial Dependency) หมายถึง ฟังก์ชันการข้ึนต่อกันแบบบางส่วน จะ เกิดข้ึนได้ก็ต่อเมื่อรีเลชันน้ัน ๆ มีคีย์หลักท่ีประกอบด้วยแอตทริบิวต์มากกว่า 1 แอตทริบิวต์ (Composite Key) แล้วแอตทริบิวต์บางส่วนของคีย์หลักสามารถระบุค่าของแอตทริบิวต์อ่ืน ๆ ในทู เพลิ เดียวกนั ทไี่ ม่ใชค่ ยี ์หลัก (Nonkey attribute) ของรีเลชนั ได้ การบริหารจัดการระบบฐานข้อมูลเพื่องานธุ รกิจ
บทท่ี 7 นอร์มัลไลซเ์ ซชนั่ | 127 Full Functional dependency ABCDEF Partial Dependency ภาพท่ี 7.6 แผนภาพแสดงพารเ์ ชยี ลดเี พนเดนซี ทีม่ า : ผูเ้ ขียน จากภาพที่ 7.6 แอตทริบวิ ต์ A และ B เปน็ คียห์ ลัก มีฟังก์ชนั การข้นึ ตอ่ กันแบบบางสว่ น (Partial Dependency) ดงั น้ี 1. เมื่อทราบคา่ แอตทรบิ วิ ต์ B สามารถทราบคา่ ของแอตทรบิ ิวต์ D 2. เมื่อทราบคา่ แอตทรบิ ิวต์ A สามารถทราบค่าของแอตทรบิ ิวต์ E, F กรณศี กึ ษาการจดั เก็บข้อมูลการทางานโครงการต่าง ๆ ของพนกั งาน เปน็ การออกแบบการจัดเกบ็ ข้อมูลการทางานโครงการตา่ ง ๆ ของพนักงาน (Peter Rob and Carlos Coronel, 2009:160-162) ภาพท่ี 7.7 แผนภาพแสดงพารเ์ ชยี ลดีเพนเดนซี ท่ีมา : Database Systems: Design, Implementation, and Management. (2009:160) 7.7 รปู แบบที่เปน็ บรรทดั ฐานข้ันท่ี 2 (Second Normal Form : 2NF) รีเลชันใด ๆ จะอยใู่ นรปู แบบที่เปน็ บรรทัดฐานข้นั ท่ี 2 กต็ ่อเมือ่ 1. รีเลชันนั้น ๆ อยใู่ นรูปแบบทเ่ี ป็นบรรทดั ฐานขัน้ ที่ 1 แลว้ การบริหารจัดการระบบฐานข้อมูลเพื่องานธุ รกิจ
128 | บทที่ 7 นอร์มลั ไลซเ์ ซชนั่ 2. แอตทรบิ วิ ต์ทกุ ตัวทไ่ี ม่ได้เป็นคยี ์หลกั มีฟังก์ชนั การขนึ้ ตอ่ กันแบบท้ังหมดกบั แอตทริบวิ ต์ท่ี เป็นคีย์หลัก หรือขจัดพารเ์ ชยี ลดเี พนเดนซี ตัวอยา่ ง 7.4 การทาให้รเี ลชันอยูใ่ นรปู แบบที่เป็นบรรทัดฐานขัน้ ที่ 2 Full Functional dependency ABCDE F Partial Dependency Partial Dependency ภาพท่ี 7.8 แผนภาพแสดงพารเ์ ชยี ลดเี พนเดนซี ทม่ี า : ผู้เขยี น จากภาพท่ี 7.8 จะพบวา่ รเี ลชันไม่อยู่ในรปู แบบทเ่ี ป็นบรรทัดฐานขน้ั ที่ 2 เนอ่ื งจากมีพารเ์ ชยี ลดี เพนเดนซี หลักการแปลงเป็น 2NF 1. หากมีรเี ลชันใดที่มีพาร์เชยี ลดเี พนเดนซ่ีให้แยกแอตทริบิวต์ดงั กลา่ วออกไปสรา้ งเป็นรเี ลชัน ใหม่ และในรเี ลชันเดิมใหค้ งแอตทรบิ ิวต์ท่ีข้ึนกับทกุ สว่ นของคีย์หลกั ไว้ 2. สรา้ งรเี ลชน่ั ใหม่ โดยดงึ แอตทริบิวตท์ ี่ขึน้ กับบางส่วนของคีย์หลัก โดยกาหนดคีย์หลกั ของรีเล ชนั ใหม่ จากแอตทรบิ ิวตท์ เ่ี ป็นคียห์ ลักจากรเี ลชันเดมิ ข้นั ตอนที่ 1. พบว่ารเี ลชันมพี ารเ์ ชียลดีเพนเดนซ่ีจึงทาการแยกออกมาเป็นรเี ลชันใหม่ดงั น้ี ABCDE F Partial Dependency Partial Dependency ภาพท่ี 7.9 แผนภาพแสดงพาร์เชียลดีเพนเดนซี ท่ีมา : ผูเ้ ขียน การบรหิ ารจัดการระบบฐานขอ้ มูลเพอ่ื งานธุรกจิ
บทท่ี 7 นอร์มัลไลซเ์ ซชนั่ | 129 ทาการแยกออกมาเป็นรเี ลชันใหม่ F AE BD ภาพท่ี 7.10 แยกพาร์เชียลดเี พนเดนซีแยกออกมาเปน็ รีเลชันใหม่ ทมี่ า : ผู้เขียน ขัน้ ตอนที่ 2. สารวจแอตทริบิวต์ท่ขี ึน้ กบั ทุกส่วนของคยี ห์ ลัก ABC ภาพท่ี 7.11 รีเลชันท่แี ยกพารเ์ ชียลดเี พนเดนซีออก ทม่ี า : ผ้เู ขียน จากการทารูปแบบทีเ่ ป็นบรรทดั ฐานข้นั ที่ 2 พบว่ามีการแยกรีเลชันออกเป็นรเี ลชันใหม่ ทาให้ รีเลชันเป็น 3 รเี ลชัน ดงั น้ี AEF BD ABC ภาพท่ี 7.12 รีเลชันใหมท่ ี่อยูใ่ นบรรทดั ฐานขน้ั ที่ 2 ที่มา : ผ้เู ขียน การบริหารจัดการระบบฐานข้อมูลเพอื่ งานธุรกิจ
130 | บทท่ี 7 นอรม์ ลั ไลซเ์ ซชนั่ กรณศี ึกษาการจดั เกบ็ ขอ้ มูลการทางานโครงการตา่ ง ๆ ของพนักงาน กรณีศึกษาจานวนโครงการและพนักงานท่ีทาโครงการ พนักงานแตล่ ะคนทาได้หลาย โครงการ ซ่ึงแตล่ ะโครงการก็จะมจี านวนเวลาที่ทาโครงการของพนักงานคนนน้ั ๆ ทม่ี า : Database Systems: Design, Implementation, and Management. (2009:161) เม่ือเข้าสู่บรรทัดฐานขั้นท่ี 2จะแยกออกเป็น 3 ตารางดงั น้ี ภาพท่ี 7.13 แผนภาพแสดงการรมี ูพพาร์เชยี ลดเี พนเดนซี ทม่ี า : Database Systems: Design, Implementation, and Management. (2009:162) การบรหิ ารจัดการระบบฐานข้อมูลเพอื่ งานธุรกิจ
บทท่ี 7 นอร์มัลไลซเ์ ซชนั่ | 131 7.8 ทรานชทิ ฟี ดเี พนเดนซี (Transitive Dependency) ทรานชทิ ฟี ดเี พนเดนซี คือฟงั กช์ ันการขน้ึ ต่อกนั เองของแอตทรบิ ิวต์ทไ่ี ม่ไดเ้ ปน็ คยี ์หลกั Full Functional dependency MNOPQ Transitive Dependency Full Functional dependency ABCDEF Transitive Dependency ภาพที่ 7.14 แผนภาพแสดงทรานชิทีฟดเี พนเดนซี ทม่ี า : ผเู้ ขียน 7.9 รูปแบบทีเ่ ปน็ บรรทดั ฐานขัน้ ท่ี 3 (Third Normal Form : 3NF) รีเลชันใด ๆ จะมีคณุ สมบัติอยู่ในรูปแบบท่ีเป็นบรรทัดฐานข้ันท่ี 3 ก็ต่อเมื่อ 1. รีเลชนั นนั้ มีคุณสมบตั ิอยใู่ นรปู แบบท่ีเปน็ บรรทัดฐานขน้ั ที่ 2 แลว้ 2. รเี ลชนั นน้ั ต้องไม่มีฟังก์ชันการขึน้ ตอ่ กนั ระหว่างแอททริบิวตแ์ บบทรานชทิ ีฟดีเพนเดนซี หลกั การแปลงให้เป็น 3NF หากในรเี ลชน่ั มีฟังก์ชันการขนึ้ ต่อกนั แบบทรานซิทีฟ ให้แยกแอททริบวิ ตท์ ี่ขึน้ ต่อกันแบบทราน ซิทีฟออกไปสรา้ งรีเลชน่ั ใหม่โดยใหค้ ง Determinant เอาไว้ในรีเลช่นั เดมิ ดว้ ย ตวั อย่าง 7.5 การทาให้รีเลชันอยู่ในรปู แบบทเี่ ป็นบรรทัดฐานข้นั ที่ 3 Full Functional dependency ABCDEF Transitive Dependency ภาพท่ี 7.14 แผนภาพแสดงทรานชิทฟี ดเี พนเดนซี การบรหิ ารจัดการระบบฐานขอ้ มูลเพอ่ื งานธุรกิจ
132 | บทที่ 7 นอร์มลั ไลซเ์ ซชนั่ ทมี่ า : ผู้เขยี น ขั้นตอนท่ี 1. พบว่ารีเลชันมที รานชิทีฟดเี พนเดนซ่จี ึงทาการแยกออกมาเป็นรเี ลชันใหม่ ดังน้ี EF ภาพท่ี 7.15 แผนภาพแยกแสดงทรานชิทีฟดีเพนเดนซี ที่มา : ผู้เขยี น ขั้นตอนที่ 2. ในสว่ นรเี ลชันเดิมกใ็ ห้คง Determinant เอาไว้ ABCDE ภาพท่ี 7.16 รเี ลชันเดมิ กใ็ ห้คง Determinant เอาไว้ ทีม่ า : ผู้เขียน การทาใหร้ ีเลชันอยู่ในรูปแบบที่เป็นบรรทดั ฐานขน้ั ที่ 3 ทาใหไ้ ด้รีเลชัน 2 รเี ลชัน ดงั นี้ EF และ ABCDE ภาพที่ 7.17 รเี ลชันใหม่ที่อย่ใู นบรรทดั ฐานขนั้ ท่ี 3 ที่มา : ผูเ้ ขยี น 7.10 ฝึกปฏบิ ัตกิ ารนอรม์ ลั ไลซเ์ ซชันฐานขอ้ มลู ข้อท่ี 1. จากตัวอย่างรีเรชันสินคา้ โอทอป จงอธบิ ายขน้ั ตอนการทาให้รเี ลชันอยู่ในรปู แบบทีเ่ ป็น บรรทดั ฐานขัน้ ที่ 3 โดยใหอ้ ธิบายทลี ะขัน้ ตอน โดยแบง่ กลุม่ ระดมความคดิ เหน็ แลว้ นาเสนอหนา้ ห้องเรยี น รหสั ส่งั ซอ้ื วันท่สี ่ังซอ้ื จานวนซ้ือ รหัสสินค้า ชอ่ื สนิ คา้ ราคา รหัสประเภทสนิ ค้า ช่อื ประเภทสนิ คา้ การบรหิ ารจัดการระบบฐานขอ้ มูลเพ่อื งานธุรกิจ
บทท่ี 7 นอร์มลั ไลซเ์ ซชนั่ | 133 ขอ้ ที่ 2. จากตัวอย่างรเี รชัน Learn จงอธบิ ายขนั้ ตอนการทาให้รเี ลชันอยใู่ นรปู แบบท่ีเป็น บรรทดั ฐานข้นั ที่ 3 โดยใหอ้ ธิบายทีละข้ันตอน โดยแบง่ กล่มุ ระดมความคิดเหน็ แลว้ นาเสนอหนา้ หอ้ งเรียน รหสั นักศึกษา ชื่อนักศกึ ษา รหสั วชิ า ช่อื วชิ า หนว่ ยกติ เกรด สาขาวชิ า เบอร์โทรสาขา 7.11 บทสรปุ นอรม์ ลั ไลซเ์ ซชัน หมายถงึ กระบวนการปรบั เปล่ยี นโครงสร้างข้อมูลในฐานข้อมูล เพื่อลดความ ซ้าซ้อนของข้อมลู หลกี เล่ียงความผิดปกติของข้อมูล สาหรบั ฐานข้อมลู เชงิ สมั พนั ธ์ ซงึ่ คดิ ค้นโดย อัดกา้ เอฟ.คอดด์ หากออกแบบโครงสร้างของรเี ลชนั ไมด่ จี ะทาให้รเี ลชันเกดิ ข้อผดิ พลาด ความผดิ ปกติจากการเพิม่ ขอ้ มูล (Insert Anomaly) ความผดิ ปกติจากการเปลีย่ นแปลงข้อมูล (Update Anomaly) ความผิดปกตจิ ากการลบขอ้ มูล (Deletion Anomaly) กระบวนการทาให้เป็นรูปแบบที่เป็นบรรทัดฐาน เพื่อทาการวิเคราะห์ความสัมพันธ์ของแอตทริ บิวตข์ องแตล่ ะรีเลชนั เพื่อให้ความซ้าซ้อนของข้อมูลในแต่ละรเี ลชันลดลง โดยมีข้ันตอนนอรม์ ัลไลซเ์ ซ ชนั ดังน้ี 1. รปู แบบท่เี ป็นบรรทัดฐานขั้นท่ี 1 รีเลชันใด ๆ จะอยู่ในรูปแบบท่ีเป็นบรรทัดฐานข้ันที่ 1 ก็ต่อเมื่อทุกแอตทริบิวต์ในแต่ละ ทูเพิลมีค่าของข้อมูลเพียงค่าเดียว (single valued) หรือไม่มีกลุ่มข้อมูลซ้า (Repeating Group) ฟังก์ชันนัลดีเพนเดนซี หมายถึง ค่าของแอตทริบิวต์หนึ่งหรือมากกว่าหน่ึงแอตทริบิวต์ รวมกนั ทส่ี ามารถระบคุ า่ ของแอตทรบิ วิ ต์อื่น ๆ ในทูเพิลเดียวกนั ของรเี ลชันนั้นได้ ฟังก์ชันการขึ้นต่อกันแบบบางส่วน (Partial Dependency) อ่านว่า พาร์เชียลดีเพนเดนซี จะ เกิดขึ้นได้ก็ต่อเม่ือรีเลชันนั้น ๆ มีคีย์หลักที่ประกอบด้วยแอตทริบิวต์มากกว่า 1 แอตทริบิวต์ (Composite Key) แล้วแอตทริบิวต์บางส่วนของคีย์หลักสามารถระบุค่าของแอตทริบิวต์อ่ืน ๆ ใน ทเู พิลเดยี วกันท่ีไมใ่ ช่คียห์ ลัก (Nonkey attribute) ของรีเลชันได้ 2. รูปแบบทเี่ ป็นบรรทัดฐานขั้นท่ี 2 รเี ลชันใด ๆ จะอยู่ในรูปแบบทเี่ ป็นบรรทัดฐานขัน้ ที่ 2 กต็ ่อเมอ่ื 2.1 รเี ลชันนัน้ ๆ อยใู่ นรูปแบบทเ่ี ปน็ บรรทดั ฐานข้นั ที่ 1 แล้ว การบริหารจัดการระบบฐานข้อมูลเพอื่ งานธุรกิจ
134 | บทท่ี 7 นอร์มัลไลซเ์ ซชนั่ 2.2 แอตทริบวิ ต์ทุกตวั ที่ไมไ่ ด้เปน็ คีย์หลัก มฟี ังกช์ ันการข้นึ ต่อกนั แบบทัง้ หมดกบั แอตทริ บิวตท์ ่ีเป็นคียห์ ลัก หรือขจดั พารเ์ ชียลดเี พนเดนซี ทรานชทิ ฟี ดีเพนเดนซี (Transitive Dependency) คอื ฟงั ก์ชนั การขึน้ ต่อกนั เองของแอ ตทริบวิ ต์ทไ่ี ม่ได้เป็นคยี ์หลัก 3. รปู แบบทเี่ ป็นบรรทดั ฐานขัน้ ท่ี 3 (Third Normal Form : 3NF) รีเลชันใด ๆ จะมคี ุณสมบัตอิ ยู่ในรูปแบบท่เี ป็นบรรทัดฐานข้ันท่ี 3 กต็ ่อเม่ือ 3.1 รีเลชันนัน้ มคี ุณสมบตั ิอยู่ในรูปแบบที่เป็นบรรทดั ฐานขั้นท่ี 2 แล้ว 3.2 รีเลชันนั้นตอ้ งไม่มีฟงั ก์ชันการข้นึ ต่อกันระหว่างแอททริบวิ ตแ์ บบทรานชทิ ฟี ดีเพนเดนซี การบริหารจัดการระบบฐานขอ้ มูลเพอ่ื งานธุรกจิ
บทท่ี 7 นอร์มลั ไลซเ์ ซชนั่ | 135 คาถามท้ายบท 1. นอร์มัลไลซ์เซชันหมายถงึ อะไร 2. จงอธิบายความหมายของ Data Anomaly ทั้ง 3 รูปแบบ พร้อมยกตวั อยา่ งประกอบ 3. Function Dependency หมายถึงอะไร 4. Partial Dependency หมายถึงอะไร 5. Transitive Dependency หมายถงึ อะไร 6. จงอธบิ ายข้ันตอนการแปลงให้อย่ใู นบรรทดั ฐานขนั้ ท่ี 2 และบรรทัดฐานขน้ั ท่ี 3 7. จงอธิบายขน้ั ตอนการแปลงให้อย่ใู นบรรทดั ฐานขน้ั ที่ 2 และบรรทดั ฐานขนั้ ที่ 3 การบรหิ ารจัดการระบบฐานขอ้ มูลเพอ่ื งานธุรกจิ
136 | บทท่ี 7 นอรม์ ลั ไลซเ์ ซชนั่ เอกสารอา้ งองิ กิตติ ภกั ดวี ัฒนะกลุ . (2521). ระบบฐานข้อมูล (Database Systems). กรุงเทพฯ : เคทีพคี อม แอนดค์ อนซลั ท.์ วเิ ชียร เปีย่ มชัยสวสั ด.ิ์ (2547). ระบบฐานข้อมูล (พิมพค์ รั้งท่ี 2). กรงุ เทพฯ: สานกั พิมพ์ ส.ส.ท. โอภาส เอี่ยมสิริวงศ.์ (2551). ระบบฐานข้อมลู (Database Systems). กรุงเทพฯ : ซเี อด็ ยเู คชั่น. Gavin Powell. (2006). Beginning Database Design. Indiana: Wiley Publishing. Peter Rob and Carlos Coronel. (2009). Database Systems: Design, Implementation, and Management. Massachusetts: Course Technology. การบรหิ ารจัดการระบบฐานข้อมูลเพ่ืองานธุรกจิ
บทที่ 8 ภาษาในการประมวลผลข้อมูล | 137 แผนบรหิ ารการสอนประจาบทท่ี 8 ภาษาในการประมวลผลข้อมลู หวั ข้อเนือ้ หา 8.1 ภาษาเอสควิ แอล 8.2 ประเภทของคาสัง่ ของภาษา SQL 8.3 คาสง่ั เพิ่มข้อมลู (Insert) 8.4 คาสั่งคน้ หาข้อมูล (Select) 8.4.1 เลือกแสดงบางคอลัมน์ 8.4.2 เปลยี่ นหวั คอลมั น์เปน็ ข้อความอืน่ ด้วย SELECT... AS 8.4.3 แสดงข้อมลู ท่ไี ม่ซากนั ด้วย DISTINCT 8.4.4 จัดเรยี งขอ้ มลู ดว้ ย ORDER BY 8.5 เง่ือนไข (Where) 8.5.1 ตัวดาเนินการทางคณติ ศาสตร 8.5.2 ตัวดาเนินการทางตรรกศาสตร 8.5.3 ตวั ดาเนินการ Distinct, In, Like, Between AND 8.6 คาสั่งปรับปรุงข้อมลู (Update) 8.7 คาสัง่ ลบขอ้ มูล (Delete) 8.8 ฝึกปฏบิ ตั กิ าร 8.8.1 การเพ่ิมข้อมลู สินคา้ 8.8.2 การค้นหาข้อมลู สนิ ค้า 8.8.3 การปรบั ปรุงข้อมูลสนิ คา้ 8.8.4 การลบขอ้ มูลสินคา้ บทสรปุ คาถามท้ายบท เอกสารอา้ งอิง การบริหารจัดการระบบฐานขอ้ มูลเพื่องานธุรกจิ
138 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล วัตถุประสงคเ์ ชิงพฤตกิ รรม 1. อธบิ ายความหมายของภาษาเอสควิ แอลได้ 2. อธิบายประเภทของคาส่ังของภาษาเอสคิวแอลได้ 3. อธิบายคาสง่ั เพ่ิมข้อมูลในฐานขอ้ มูลได้ 4. อธบิ ายคาสง่ั ค้นหาข้อมลู ในฐานขอ้ มูลตามเงื่อนไขทตี่ ้องการได้ 5. อธิบายเง่ือนไขในการจัดการกับขอ้ มลู ในฐานขอ้ มลู ได้ 6. อธิบายคาสัง่ ลบข้อมูลในฐานขอ้ มลู ได้ 7. อธบิ ายคาส่ังปรับปรุงขอ้ มูลในฐานขอ้ มลู ได้ 8. สามารถปฏิบตั กิ ารเพิ่มข้อมูลสินคา้ , คน้ หาข้อมูลสินคา้ , ปรบั ปรงุ ขอ้ มูลสนิ คา้ , ลบขอ้ มลู สนิ คา้ ในฐานข้อมูลได้ วธิ สี อนและกจิ กรรมการเรยี นการสอน 1. วิธีสอน 1.1 นาเข้าส่บู ทเรียนโดยวีดทิ ศั น์ 1.2 ใชว้ ิธสี อนบรรยายแบบมสี ว่ นรว่ ม 1.3 ใชว้ ิธสี อนแบบกระบวนการกลุ่ม 1.4 ฝกึ ปฏบิ ัติการเพ่ิมข้อมูลสินคา้ , คน้ หาขอ้ มูลสนิ คา้ , ปรับปรงุ ขอ้ มูลสินคา้ , ลบ ข้อมูลสนิ ค้า ในฐานขอ้ มูล 2 กิจกรรมการเรียนการสอน 2.1 เปิดวิดที ศั นเ์ นอื หาภาษาในการประมวลผลข้อมลู พรอ้ มทังตงั โจทยป์ ระเดน็ คาถามก่อนเรยี น 2.2 การบรรยายโดยใช้โปรแกรม PowerPoint 2.3 แบง่ กลุม่ ระดมความคิดเห็นในการฝึกปฏบิ ัตกิ ารเพิ่มข้อมูลสนิ คา้ , คน้ หาขอ้ มูล สินค้า, ปรบั ปรงุ ขอ้ มลู สินค้า, ลบขอ้ มลู สนิ ค้า พรอ้ มส่มุ กลุ่มอธิบายหน้าชนั เรียน 2.4 นักศกึ ษาตอบคาถามท้ายบทเปน็ การบา้ น ส่ือการเรยี นการสอน 1. เอกสารประกอบการสอนรายวิชา การบรหิ ารจดั การระบบฐานขอ้ มลู เพอ่ื งานธรุ กิจ บทที่ 8. ภาษาในการประมวลผลข้อมลู 2. โปรแกรม PowerPoint การบรหิ ารจัดการระบบฐานขอ้ มูลเพื่องานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล | 139 3. โปรแกรม phpMyAdmin 4. โปรแกรม Xampp 5. ใบงาน การวดั และประเมินผล 1. สงั เกตพฤติกรรมของนกั ศึกษาการมสี ่วนร่วมในการถามตอบการบรรยาย 2. ตรวจผลการปฏบิ ัติเพ่ิมข้อมูลสินค้า 3. ตรวจผลการปฏบิ ัติค้นหาข้อมูลสนิ ค้า 4. ตรวจผลการปฏิบัติปรบั ปรงุ ขอ้ มูลสนิ คา้ 5. ตรวจผลการปฏิบัติลบขอ้ มลู สินค้า 6. ตรวจการตอบคาถามท้ายบท การบรหิ ารจัดการระบบฐานข้อมูลเพอื่ งานธุรกจิ
140 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล การบริหารจัดการระบบฐานขอ้ มูลเพื่องานธุรกจิ
บทที่ 8 ภาษาในการประมวลผลข้อมลู ในบทที่ 8 จะกล่าวถึงภาษาท่ีใช้ในการการประมวลผลข้อมูล เรียกว่า ภาษาเอสคิวแอล (SQL) ภาษาในการประมวลผลข้อมูลเป็นภาษาท่ีใช้เป็นคาสั่งดาเนินการกับข้อมูล เช่น คาสั่งเพ่ิม ข้อมูล (Insert), คาส่ังสืบค้นข้อมูล (Select), คาส่ังปรับปรุงข้อมูล (Update) และคาสั่งลบข้อมูล (Delete) โดยการประมวลผลจะต้องมีเงอ่ื นไขในการประมวลผลเพื่อให้การประมวลผลถูกตอ้ งตรงกับ ข้อมูลท่ีต้องการจริง ๆ นอกจากคาสั่งข้างต้นยังมีประเภทของคาสั่งของภาษาเอสคิวแอลอีกจานวน มาก อีกทั้งฝึกปฏิบตั ิการในการใช้ภาษาเอสคิวแอลในการดาเนินการกับข้อมูล เพื่อให้ผู้เรียนได้เรียนรู้ ภาษาในการประมวลผลขอ้ มลู และสามารถนาความรไู้ ปใช้ในการพฒั นาระบบสารสนเทศในอนาคตได้ 8.1 ภาษาในการประมวลผลข้อมูล โอภาส เอี่ยมสิริวงศ์. (2551:272) กล่าวว่าภาษาเอสคิวแอลจัดเป็นภาษามาตรฐาน ทางาน บ น ร ะ บ บ ฐ า น ข้ อ มู ล เชิ งสั ม พั น ธ์ ซึ่ งเป็ น ภ า ษ า ท่ี ส า ม า ร ถ น า ไป ใช้ งา น ได้ ไม่ ว่ า จ ะ เป็ น เม น เฟ ร ม คอมพิวเตอร์จนถึงไมโครคอมพิวเตอร์ดังนั้นจึงไม่แปลกใจเลยว่าปัจจุบันมีผลิตภัณฑ์ซอฟต์แวร์ระบบ จดั การฐานข้อมูลท่ีล้วนแต่สนบั สนนุ คาสงั่ เอสคิวแอลทงั้ ส้นิ ภาษาเอสคิวแอลถูกพัฒนาขึ้นจากแนวความคิด หลักการทางคณิตศาสตร์ คือ Relational algebra และ Relational calculus ซงึ่ เป็นแนวคิดที่ E.F. Codd เป็นผ้คู ิดค้นขึ้นเม่อื ในปี ค.ศ. 1970 และต่อมาทางบริษัทไอบีเอ็มได้เร่ิมพัฒนางานวิจัยเมื่อปี ค.ศ. 1974 โดยใช้ช่ือ Structured English Query Language (SEQUEL) Paul Wilton and John W. Colby. (2005:7). ภาษาเอสคิวแอลภาษาเอสคิวแอลถูกสร้าง ขึน้ ด้วยบรษิ ทั ไอบเี อ็มโดยการทางานสนับสนุนการทางานของฐานข้อมลู เชิงสัมพันธ์ซึง่ ไดร้ ับความนิยม อย่างกว้างขวาง ทาให้ในปี ค.ศ. 1987 องค์การระหว่างประเทศว่าด้วยการมาตรฐาน International Organization for Standardization หรือ ISO ได้กาหนดให้ภาษาเอสคิวแอลเป็นภาษามาตรฐาน ดา้ นฐานข้อมลู โดยในส่วนของภาษาเอสคิวแอลได้มีการปรับปรุงเปลี่ยนแปลงเพ่ือให้สามารถตอบสนอง ความต้องการการใช้งาน หรือสนับสนุนการทางานของฐานข้อมูลสมัยใหม่ที่มีความสลับซับซ้อน มากขนึ้ เช่น SQL-86, SQL-89, SQL-92, SQL-99, SQL-2003 เปน็ ต้น สรุปได้ว่าฐานข้อมูลเชิงสัมพันธ์มีโครงสร้างลักษณะตาราง 2 มิติ ประกอบด้วยแถวและ คอลัมน์ ในการดาเนินการกับฐานข้อมูลมีภาษาในการประมวลผลข้อมูลเรียกว่า ภาษาเอสคิวแอล (SQL) ย่อมาจาก Structured Query Language พัฒนาโดยบรษิ ัท IBM เปน็ ภาษาที่ได้รบั ความนิยม ในปจั จุบนั เนื่องจากการเรียกใชข้ ้อมูลทาได้ง่าย โดยใช้หลักการทางคณิตศาสตร์ เช่น Join, intersect , Union ซ่งึ การใชง้ านภาษาเอสควิ แอล ในปจั จุบนั มี 2 รูปแบบ การบรหิ ารจัดการระบบฐานขอ้ มูลเพ่ืองานธุรกิจ นิรันดร ผานจิ
142 | บทท่ี 8 ภาษาในการประมวลผลข้อมูล รูปแบบที่ 1. ใช้คาสั่งโดยตรงกับฐานข้อมูล (Interactive SQL) โดยผู้ใชง้ านต้องเข้าใจ ภาษาเอสคิวแอล ภาพที่ 8.1 คาส่ังภาษาเอสคิวแอลโดยตรงกบั ฐานข้อมลู ทีม่ า : ผู้เขียน รูปแบบท่ี 2. ภาษาเอสควิ แอลแทรกในภาษาตา่ ง ๆ (Embedded SQL) ตัวอย่าง ภาษาเอสควิ แอลแทรกในภาษา C# public class Example { static void Main() { string cs = @\"server=localhost;userid=abcd;password=1234;database=otop\"; MySqlConnection conn = null; try { conn = new MySqlConnection(cs); conn.Open(); การบรหิ ารจัดการระบบฐานขอ้ มูลเพอื่ งานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 143 MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; cmd.CommandText = \"INSERT INTO Authors(Name) VALUES(@Name)\"; cmd.Prepare(); cmd.Parameters.AddWithValue(\"@Name\", \"นิรันดร ผานจิ \"); cmd.ExecuteNonQuery(); }catch(MySqlException ex){ Console.WriteLine(\"Error: {0}\", ex.ToString()); } finally{ if (conn != null) { conn.Close(); } } } } โดยภาษาเอสคิวแอลได้รับมาตรฐาน American National Standards Institute (ANSI) ใน ปี 1986 และมาตรฐาน International Organization for Standardization (ISO) ในปี 1987 แต่ก็ มีคาส่ังบางส่วนที่แต่ละบริษัทพัฒนาเพ่ิมเติมจากมาตรฐาน ANSI เพื่อให้มีจุดเด่นในทางการค้า ของบริษัทนั้น ๆ วตั ถุประสงค์ของภาษาเอสคิวแอล 1. สร้างฐานข้อมลู และโครงสรา้ งของรเี ลชัน 2. สนับสนุนด้านการจัดการข้อมูลพน้ื ฐานประกอบดว้ ยการเพ่ิมการปรับปรงุ การลบ ขอ้ มลู ออกจากรีเลชัน 3. สนับสนุนงานคิวรข่ี อ้ มลู 8.2 ประเภทของคาสั่งของภาษาเอสควิ แอล ภาษาเอสคิวแอล มีชุดคาสั่งแบ่งออกได้เป็น 3 ประเภทใหญ่ ๆ ได้แก่ (Peter Rob and Carlos Coronel, 2009:225) 1. กลุ่มคาสั่งท่ีใช้ในการนิยาม กาหนดหรือสร้างโครงสร้างข้อมูล (Data Definition Language: DDL) เช่น กาหนดคุณสมบัติในตารางว่า ตารางมีคอลัมน์อะไรบ้าง แต่ ละคคอลัมน์เป็นข้อมูลชนิดใด ขนาดเท่าไหร่ ตัวอย่าง การสร้างตาราง, แก้ไขโครงสร้าง ตาราง, เชอ่ื มความสัมพนั ธร์ ะหวา่ งตาราง เปน็ ตน้ การบรหิ ารจัดการระบบฐานขอ้ มูลเพ่ืองานธุรกจิ
144 | บทท่ี 8 ภาษาในการประมวลผลข้อมูล 2. กลุ่มคาส่ังที่ใช้ในการจัดการกับข้อมูลในฐานข้อมูล (Data Manipulation Language: DML) เช่น การเพิ่มข้อมูล (INSERT), การปรับปรุง (UPDATE), การลบ (DELETE), การ สบื ค้นข้อมลู (SELECT) 3. กลุ่มคาส่ังท่ีใช้ในการกาหนดสิทธิ (Data Control Language: DCL) เช่น การอนุญาต (Grant) หรือการยกเลิกสิทธิ (Revoke) ในฐานข้อมูล รวมทั้งการจัดการทรานแซกชัน (Transaction Management) ทาให้ตารางหรือฐานข้อมูลผู้ใช้แต่ละคนสามารถมีสิทธิ ทตี่ ่างกนั ได้ 8.3 คาสง่ั เพมิ่ ข้อมูล (Insert) คาสง่ั INSERT เปน็ คาสง่ั เพ่ิมข้อมลู ในฐานข้อมลู ภาพท่ี 8.2 ตาราง Category ท่มี า : ผูเ้ ขยี น รูปแบบที่ 1 ไมร่ ะบุช่อื คอลัมน์ INSERT INTO table_name VALUES (value1, value2, value3, ...); ตัวอยา่ ง การเพ่ิมข้อมลู ในตาราง Category หมวดหมู่สนิ ค้า (CateName) = เคร่อื งมือทางการเกษตร รหัสหมวดหมู่ (CategoryID) = 6 INSERT INTO Category VALUES (6, 'เครื่องมือทางการเกษตร'); ผลการรนั คาสง่ั [SQL] INSERT INTO Category การบรหิ ารจัดการระบบฐานข้อมูลเพื่องานธุรกิจ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 145 VALUES (6, 'เครอ่ื งมือทางการเกษตร'); Affected rows: 1 Time: 0.073s ผลการเพม่ิ ข้อมูลในตาราง Category ภาพที่ 8.3 ผลการเพ่ิมข้อมลู ในตาราง Category แบบไมร่ ะบุคอลมั น์ ท่มี า : ผูเ้ ขยี น รูปแบบท่ี 2 ระบุชอื่ คอลมั น์ จะเป็นการจบั คู่ระหวา่ ง column และ value INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ตัวอย่าง การเพิ่มข้อมลู ในตาราง Category หมวดหมู่สินคา้ (CateName) = อาหารสัตว์ รหสั หมวดหมู่ (CategoryID) = 7 INSERT INTO Category (CategoryID, CateName) VALUES (7, 'อาหารสัตว์'); หรือ INSERT INTO Category (CateName, CategoryID) VALUES ('อาหารสตั ว์', 7); ผลการรนั คาสั่ง [SQL] INSERT INTO Category (CateName, CategoryID) VALUES ('อาหารสัตว'์ , 7); Affected rows: 1 การบริหารจัดการระบบฐานขอ้ มูลเพ่ืองานธุรกิจ
146 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล Time: 0.081s ผลการเพมิ่ ข้อมูลในตาราง Category ภาพท่ี 8.4 ผลการเพ่มิ ข้อมลู ในตาราง Category แบบระบุคอลัมน์ ท่ีมา : ผเู้ ขียน 8.4 คาสง่ั สบื คน้ ข้อมลู (Select) คาส่ัง select เปน็ คาสั่งสืบคน้ ข้อมูลในฐานข้อมลู 8.4.1 การสืบคน้ ทกุ คอลมั น์ การสืบค้นและเลือกมาเพียงบางคอลัมน์ ด้วยการระบุ * แทนการระบุช่ือคอลัมน์ที่ ตอ้ งการ โดยลาดบั ตา่ งๆจะเปน็ ลาดับท่เี หมอื นกบั ลาดบั ในตาราง รูปแบบ SELECT * FROM table_name ตัวอย่าง SELECT * FROM Product ผลการรันคาสัง่ การบรหิ ารจดั การระบบฐานข้อมูลเพอ่ื งานธุรกิจ
บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล | 147 ภาพท่ี 8.5 ผลการสืบคน้ ขอ้ มูลในตาราง Category ทม่ี า : ผ้เู ขยี น 8.4.2 การสบื คน้ บางคอลมั น์ การสืบค้นและเลือกมาเพียงบางคอลัมน์ ด้วยการระบุช่ือคอลัมน์ที่ต้องการ โดย สามารถสลบั คอลมั น์ ตามลาดับทีผ่ ู้ใชง้ านต้องการ รูปแบบ SELECT column3, column1, column2, ... FROM table_name ตวั อยา่ ง SELECT ProductID, Name, Price FROM product การบริหารจัดการระบบฐานขอ้ มูลเพอื่ งานธุรกิจ
148 | บทท่ี 8 ภาษาในการประมวลผลข้อมูล ผลการรนั คาสง่ั ภาพที่ 8.6 ผลการสบื ค้นขอ้ มูลในตาราง Category เลอื กเพยี งบางคอลัมน์ ท่มี า : ผ้เู ขยี น 8.4.3 เปล่ียนหัวคอลมั นด์ ้วย SELECT... AS ในการใชค้ าส่ัง select สามารถเปลย่ี นชอื่ ให้หวั คอลัมน์ได้ด้วยคาสง่ั AS รูปแบบ SELECT column1 AS title_name1, column2 AS title_name2, ... FROM table_name ตัวอย่าง SELECT ProductID AS รหสั สินค้า, Name AS ชื่อสนิ คา้ , Price AS ราคา FROM product การบรหิ ารจัดการระบบฐานขอ้ มูลเพอ่ื งานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 149 ผลการรนั คาสัง่ ภาพท่ี 8.7 ชอ่ื ให้หวั คอลมั น์ได้ด้วยคาส่ัง AS ที่มา : ผเู้ ขียน 8.4.4 การสบื ค้นโดยไม่แสดงข้อมลู ท่ีซากัน เป็นคาสัง่ SELECT ชนิดหนึ่งท่ใี ชใ้ นการตดั คา่ ทซี่ า้ กันออกให้แสดงเพียงแค่คา่ เดยี ว ด้วยคาสง่ั DISTINCT SELECT DISTINCT unit FROM product ผลการรนั คาสัง่ ภาพที่ 8.8 คาสัง่ DISTINCT สบื คน้ โดยไม่แสดงข้อมลู ที่ซ้า ท่มี า : ผูเ้ ขยี น การบริหารจดั การระบบฐานข้อมูลเพื่องานธุรกจิ
150 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล 8.4.5 การสืบคน้ พร้อมจัดเรียงข้อมูล เป็นการสืบค้นแล้วทาการจัดเรียงข้อมูลตามฟิวด์ต่าง ๆ ท่ีเราต้องการจัดเรียงด้วย คาส่ัง ORDER BY โดยมี การจดั เรียง 2 รูปแบบคือ 1. ASC เรยี งจากนอ้ ยไปหามาก 2. DESC เรยี งจากมากไปหานอ้ ย ถ้าไมร่ ะบบรปู แบบการเรยี งจะเปน็ การจัดเรียงแบบ ASC รูปแบบ SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC; ตวั อย่าง สืบคน้ ข้อมูลสนิ คา้ (Product) โดยเรยี งราคา (price) จากมากไปหา น้อย SELECT ProductID, Name, Price FROM product ORDER BY Price DESC ผลการรันคาสง่ั ภาพที่ 8.9 คาสั่ง ORDER การจดั เรียงข้อมลู ทม่ี า : ผ้เู ขียน การบริหารจดั การระบบฐานขอ้ มูลเพ่ืองานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล | 151 การจดั เรียงแบบหลายคอลัมน์โดยจะทาการจัดเรียงในคอลัมน์แรกก่อนถ้ามขี ้อมลู เหมอื นกันก็จะจดั เรยี งตามรปู แบบของคอลมั น์ที่ 2 ตวั อย่าง สบื คน้ ข้อมลู จากตาราง product โดยเรียงข้อมลู CategoryID จาก นอ้ ยไปหามาก (ASC) ถ้าขอ้ มูล CategoryID เท่ากัน ให้เรยี กข้อมูล SupplierID จากมากไปหาน้อย SELECT ProductID, CategoryID, SupplierID, Name, Price FROM product ORDER BY CategoryID ASC, SupplierID DESC ผลการรันคาส่งั ภาพท่ี 8.10 คาส่ัง ORDER การจัดเรียงข้อมูล ทีม่ า : ผ้เู ขยี น 8.5 การประมวลผลแบบเง่อื นไข (Where) เพื่อให้ได้ข้อมูลตรงกับที่ต้องการ ในการสืบค้นข้อมูลโดยปกติจะต้องระบุเงื่อนไขของข้อมูล เช่น ขอข้อมูลคนไทยทอ่ี ายุต้งั แต่ 60 ปี หรือขอขอ้ มลู รายการสินค้าท่ีมใี นคลังสินค้าน้อยกวา่ 100 ชิ้น เป็นต้น ในภาษาเอสคิวแอล สามารถระบุเงื่อนไขในการดาเนินการกับข้อมูลได้โดยระบุในส่วนของ WHERE ดงั นี้ การบรหิ ารจัดการระบบฐานขอ้ มูลเพือ่ งานธุรกจิ
152 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล รปู แบบ SELECT column1, column2, ... FROM table_name WHERE condition; ตวั อย่าง SELECT * FROM product WHERE price >= 200; ผลการรันคาสัง่ ภาพท่ี 8.11 การประมวลผลแบบเงอื่ นไข ราคามากกว่าเท่ากบั 200 บาท (price >= 200) ท่ีมา : ผูเ้ ขยี น 8.5.1 ตัวดาเนินการทางตรรกศาสตร์ ตารางที่ 8.1 ตัวดาเนินการทางตรรกศาสตร์ โอเปอเรเตอร์ ความหมาย = เทา่ กับ <> เทา่ กับ บางเวอร์ชันใช้ != > มากกวา่ < นอ้ ยกวา่ >= มากกวา่ หรือเทา่ กบั <= น้อยกวา่ หรอื เท่ากบั การบริหารจดั การระบบฐานขอ้ มูลเพ่อื งานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล | 153 8.5.2 ตัวดาเนินการ AND, OR, NOT ผู้ใช้งานสามารถใช้ AND, OR หรอื NOT ในการเชอ่ื มเง่ือนไขหลาย ๆ เงื่อนไขเข้า ดว้ ยกนั โดยการใช้ AND จะเป็นจริงถา้ เงื่อนไขท้ัง 2 เปน็ จรงิ อ่ืน ๆ เปน็ เท็จ OR จะเปน็ เท็จถ้าเงื่อนเทจ็ ท้งั 2 เป็นเทจ็ อ่ืน ๆ เปน็ จรงิ ตารางท่ี 8.2 ตัวดาเนินการ AND, OR AND OR เงือ่ นไข 1 เงือ่ นไข 2 T T TT F T TF F T FT F F FF NOT ค่าจะสลบั ตรงข้ามกบั ค่าความของเงื่อนไขปจั จุบัน ตารางท่ี 8.3 ตวั ดาเนนิ การ NOT เงอื่ นไข NOT TF FT รปู แบบ การใช้ AND SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3; ตวั อย่าง สืบค้นข้อมลู สนิ ค้าท่ีมรี าคา (price) น้อยกว่า 500 และดาว (star) นอ้ ยกวา่ 5 ดาว SELECT * FROM Customers WHERE price < 500 AND star < 5 ผลการรนั คาส่งั การบรหิ ารจัดการระบบฐานขอ้ มูลเพ่อื งานธุรกจิ
154 | บทท่ี 8 ภาษาในการประมวลผลข้อมูล นอ้ ยกวา่ 5 ดาว ภาพท่ี 8.12 ตวั ดาเนนิ การ AND, OR, NOT ที่มา : ผูเ้ ขยี น รูปแบบ การใช้ OR SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3; ตัวอย่าง สบื ค้นข้อมลู สินค้าที่มีราคา (price) น้อยกว่า 500 หรอื ดาว (star) SELECT * FROM product WHERE price < 500 OR star < 5 ผลการรันคาส่งั ภาพที่ 8.13 ตวั ดาเนนิ การ OR ราคานอ้ ยกว่า 500 หรือ ดาว น้อยวา่ 5 ทมี่ า : ผเู้ ขยี น การบรหิ ารจัดการระบบฐานข้อมูลเพอ่ื งานธุรกิจ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 155 รูปแบบ การใช้ NOT SELECT column1, column2, ... FROM table_name WHERE NOT condition; ตวั อยา่ ง สืบค้นข้อมลู สนิ ค้าท่ีมี ดาว (star) ไมใ่ ช่ 4 ดาว SELECT ProductID, Name, Price, total, unit, star FROM product WHERE NOT star = 4 ผลการรันคาสง่ั = ภาพท่ี 8.14 ตวั ดาเนินการ NOT ท่มี า : ผ้เู ขยี น 8.5.3 ตวั ดาเนนิ การ Between เป็นการกาหนดชว่ งข้อมูลท่ีต้องการ ชนิดของข้อมลู อาจเป็นได้ท้งั ตัวเลข ตัวอักษร หรอื วันเวลา โดยการกาหนดค่าเริ่มต้นและสิน้ สดุ ของช่วงข้อมลู รูปแบบ SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; ตวั อยา่ ง การสืบค้นข้อมลู สนิ คา้ ท่รี าคาระหวา่ ง 100 และ 500 SELECT ProductID, Name, Price FROM product การบรหิ ารจดั การระบบฐานขอ้ มูลเพ่อื งานธุรกิจ
156 | บทท่ี 8 ภาษาในการประมวลผลข้อมูล WHERE Price BETWEEN 100 AND 500 ผลการรนั คาส่งั ภาพที่ 8.15 ตัวดาเนินการ BETWEEN ทม่ี า : ผู้เขียน 8.5.4 ตวั ดาเนินการ IN การใช้ IN เพื่อเลือกข้อมูลท่ีอยู่ในกล่มุ ข้อมูลในชุดที่กาหนด เชน่ value1, value2 รูปแบบ SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...); หรือการสืบค้นในคาสงั่ เอสควิ แอลซ้อนคาส่ังเอสควิ แอล SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT STATEMENT); ตัวอยา่ ง SELECT ProductID, Name, Price, unit FROM product WHERE unit IN ('ขวด', 'กลอ่ ง'); การบรหิ ารจดั การระบบฐานข้อมูลเพือ่ งานธุรกิจ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 157 ผลการรนั คาสงั่ ภาพที่ 8.16 ตวั ดาเนนิ การ IN ท่มี า : ผเู้ ขียน 8.5.5 ตวั ดาเนนิ การ Like เป็นการเลอื กข้อมลู ที่ตามรูปแบบทกี่ าหนด โดยใช้สัญลกั ษณ์เครอื่ งหมาย % และ เครอื่ งหมาย _ โดย เครอ่ื งหมาย % แทนอักษรศูนยห์ รอื กต่ี วั ก็ได้ เครือ่ งหมาย _ แทนอักษรศูนย์หรอื หนึ่งตัวเทา่ นัน้ รูปแบบ SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern; ตัวอย่าง เง่ือนไขเลอื กรายการที่ Name มคี าว่า ผ้า อยดู่ า้ นหนา้ สดุ ดา้ นหลงั เป็นอะไรก็ได้ SELECT * FROM product WHERE Name LIKE 'ผ้า%' ผลการรันคาสั่ง ภาพท่ี 8.17 ตัวดาเนินการ LIKE ที่มา : ผ้เู ขยี น การบริหารจัดการระบบฐานข้อมูลเพอื่ งานธุรกจิ
158 | บทท่ี 8 ภาษาในการประมวลผลข้อมูล ตัวอย่าง เง่ือนไขเลอื กรายการที่ Name มีคาว่า ทอง อยู่ด้านหลงั สดุ ด้านหน้า เป็นอะไรก็ได้ SELECT * FROM product WHERE Name LIKE '%ทอง' ผลการรนั คาสง่ั ภาพที่ 8.18 ตวั ดาเนินการ LIKE ทมี่ า : ผเู้ ขียน ตวั อย่าง เงื่อนไขเลือกรายการท่ี Name มีตวั อกั ษร 1 ตวั แล้วตอ่ ดว้ ยคาวา่ ลา ตวั ตอ่ ไปเป็นอะไรก็ได้ก่ีตัวก็ได้ SELECT * FROM product WHERE Name LIKE '_ลา%' ผลการรันคาส่งั ภาพท่ี 8.19 ตัวดาเนินการ LIKE ท่มี า : ผู้เขียน ตวั อย่าง เงื่อนไขเลอื กรายการท่ี Name ข้ึนตน้ ด้วยคาว่าน้า ตวั ตอ่ ไปเป็นอะไร กไ็ ด้กตี่ ัวกไ็ ดแ้ ละให้ลงทา้ ยดว้ ย “ง” SELECT * FROM product WHERE Name LIKE 'นา้ %ง' ผลการรันคาสั่ง ภาพที่ 8.20 ตวั ดาเนินการ LIKE ท่ีมา : ผเู้ ขยี น การบรหิ ารจัดการระบบฐานขอ้ มูลเพื่องานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 159 8.5.6 ฟงั กช์ นั MIN(), MAX(), COUNT(), AVG(), SUM() 1. ฟงั ก์ชัน MIN() จะส่งกลับค่าท่เี ลก็ ท่ีสดุ ของคอลัมนท์ เ่ี ลือกท่ีตรงกบั เกณฑท์ รี่ ะบุ รูปแบบ SELECT MIN(column_name) FROM table_name [WHERE condition;] ตัวอยา่ ง หาจานวนสินคา้ (total) ที่มีนอ้ ยท่ีสุด SELECT MIN(total) AS min_total FROM product ผลการรันคาสัง่ ภาพที่ 8.21 ฟังก์ชัน MIN(total) ทมี่ า : ผ้เู ขยี น 2. ฟงั ก์ชัน MAX() จะสง่ กลับคา่ ท่ีมากทสี่ ดุ ของคอลัมน์ท่ีเลอื กทต่ี รงกบั เกณฑ์ทีร่ ะบุ รูปแบบ SELECT MAX(column_name) FROM table_name [WHERE condition;] ตัวอยา่ ง หาจานวนสนิ ค้า (total) ทมี่ นี อ้ ยทสี่ ุด SELECT MAX(total) AS max FROM product การบริหารจดั การระบบฐานขอ้ มูลเพื่องานธุรกจิ
160 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล ผลการรนั คาสงั่ ภาพที่ 8.22 ฟงั กช์ ัน MAX(total) ที่มา : ผเู้ ขียน 3. ฟังก์ชนั COUNT() จะแสดงจานวนแถวท่ตี รงกับเกณฑ์ที่ระบุ รปู แบบ SELECT COUNT(column_name) FROM table_name [WHERE condition;] ตัวอยา่ ง จานวนแถวสนิ ค้าทไ่ี ด้ 4 ดาว SELECT COUNT(*) AS max FROM product WHERE star = 4 ผลการรนั คาสง่ั ภาพที่ 8.23 ฟังก์ชัน COUNT(*) ทมี่ า : ผูเ้ ขียน 4. ฟังก์ชัน AVG() จะสง่ คนื ค่าเฉลย่ี ของคอลัมน์ตวั เลข รปู แบบ SELECT AVG(column_name) FROM table_name [WHERE condition;] การบรหิ ารจัดการระบบฐานขอ้ มูลเพือ่ งานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 161 5. ฟังก์ชัน SUM () จะสง่ กลับผลรวมของคอลัมนต์ ัวเลข รูปแบบ SELECT AVG(column_name) FROM table_name [WHERE condition;] 8.6 คาส่ังปรับปรงุ ข้อมลู (Update) คาส่งั UPDATE เปน็ คาส่งั ท่ีใชใ้ นการปรบั ปรุง/เปลีย่ นแปลงข้อมลู ในตาราง รูปแบบ UPDATE table_name SET column1 = value1, column2 = value2, ... [WHERE condition] หมายเหตุ : ในการปรบั ปรุงข้อมูลควรระบุเง่อื นไขใน WHERE เพราะถ้าไมก่ าหนดเงื่อนไข WHERE ในคาสั่ง UPDATE จะทาการปรบั ปรุงข้อมลู ทุกๆเรคคอรด์ ในตาราง ตัวอยา่ ง ปรับปรุงข้อมลู ในตาราง Product เปล่ยี นชอื่ ของสินคา้ เรคคอรด์ ท่ีมี ProductID เท่ากับ 1 เปลยี่ นช่อื (name) เป็น ครีมมะขามผสมนา้ ผ้ึง และเปลยี่ นราคา (price) เปน็ 90 บาท UPDATE Product SET name = 'ครมี มะขามผสมนา้ ผึ้ง', price = 90 WHERE ProductID=1; ผลการรันคาสง่ั ก่อนใช้คาส่ัง UPDATE การบรหิ ารจดั การระบบฐานขอ้ มูลเพ่อื งานธุรกิจ
162 | บทท่ี 8 ภาษาในการประมวลผลข้อมูล หลังใช้คาสงั่ UPDATE ภาพที่ 8.24 ตวั อย่าง ปรับปรุงข้อมลู ในตาราง Product ท่มี า : ผูเ้ ขยี น 8.7 คาสง่ั ลบขอ้ มูล (Delete) คาส่งั DELETE เป็นคาสง่ั ท่ีใช้ในการลบข้อมูลในตาราง รปู แบบที่ 1. DELETE FROM table_name; [WHERE condition] รปู แบบท่ี 2. DELETE * FROM table_name; [WHERE condition] หมายเหตุ : ในการลบขอ้ มูลควรระบุเง่อื นไขใน WHERE เพราะถ้าไม่กาหนดเงื่อนไข WHERE ในคาสง่ั DELETE จะทาการลบขอ้ มลู ทุกๆเรคคอรด์ ในตาราง ตัวอยา่ ง ลบข้อมลู ในตาราง Product เรคคอรด์ ท่ีมี SupplierID เท่ากับ 5 DELETE * FROM Product WHERE SupplierID = 5; 8.8 ฝกึ ปฏบิ ัติการในชนั เรยี น 1. ให้เขียนคาสงั่ ภาษาเอสคิวแอลในการเพิม่ ข้อมลู สนิ ค้าดังต่อไปน้ีลงในตาราง การบรหิ ารจดั การระบบฐานขอ้ มูลเพอื่ งานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลข้อมูล | 163 Product 3 รายการ โดยนักศึกษาสมมุตขิ ้อมลู ข้ึนมาเอง 2. ให้เขียนคาส่ังภาษาเอสคิวแอลสบื ค้นข้อมูลสินคา้ (Product) ท่มี ีราคา (Price) น้อยกว่า 200 บาท และเปน็ สินค้า 5 ดาว (Star) 3. ให้เขียนคาสั่งภาษาเอสคิวแอลสืบค้นข้อมูลสินค้า (Product) เลือกเฉพาะรูปแบบหน่วย (unit) เป็น ขวด และ กระปกุ เท่านั้น เฉพาะสินคา้ ท่ไี ม่เป็นน้า (ชื่อไม่มีคาว่านา้ ) โดยเรียงลาดับข้อมูล ตามดาว (star) ของสนิ ค้า 4. ใหเ้ ขยี นคาสัง่ ภาษาเอสควิ แอลหาค่าเฉล่ยี ราคาสนิ ค้า ของสนิ ค้าประเภทอาหาร 8.9 บทสรปุ ภาษาเอสคิวแอล (SQL) ย่อมาจาก Structured Query Language เป็นภาษาในการ ประมวลผลข้อมูล ใช้ในระบบบริหารจัดการฐานข้อมูล โดยใช้ร่วมกับภาษาคอมพิวเตอร์อื่น ๆ มี 3 กลุม่ ชุดคาส่ังหลกั ๆ ดังน้ี 1. กลุ่มคาสั่งท่ีใช้ในการนิยาม กาหนดหรือสร้างโครงสร้างข้อมูล (Data Definition Language) 2. กลมุ่ คาสงั่ ท่ใี ช้ในการจดั การกับขอ้ มูลในฐานข้อมูล (Data Manipulation Language) 3. กลุ่มคาสั่งที่ใช้ในการกาหนดสทิ ธิการใช้ฐานข้อมลู (Data Control Language) เอกสารประกอบการสอนนี้จะเน้นการใช้ชุดคาส่ังในกลุ่มคาสั่งท่ีใช้ในการจัดการกับข้อมูลใน ฐานขอ้ มลู โดยมีคาสงั่ หลักๆดงั น้ี 1. คาสงั่ INSERT เป็นคาส่งั เพ่มิ ขอ้ มูลในฐานข้อมลู 2. คาสง่ั SELECT เป็นคาส่งั สืบค้นข้อมูลในฐานข้อมูล 3. คาสง่ั UPDATE เปน็ คาสัง่ ทีใ่ ช้ในการปรับปรุง/เปลี่ยนแปลงข้อมลู ในตาราง 4. คาสั่ง DELETE เป็นคาส่ังทใี่ ชใ้ นการลบข้อมลู ในตาราง ทกุ ๆ คาสงั่ จะมีเงอื่ นไขในการเข้าถงึ หรือจัดการกับขอ้ มลู ในส่วนของ WHERE เพ่ือให้สามารถ จัดการกบั ฐานขอ้ มูลตรงวตั ถปุ ระสงค์ของผู้ใชง้ านมากท่ีสุด การบริหารจัดการระบบฐานข้อมูลเพ่ืองานธุ รกิจ
164 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล คาถามทา้ ยบท 1. ให้เขียนคาสั่งภาษาเอสคิวแอล เพิ่มหมวดหมู่สินค้า “พันธ์ุไม้/ไม้ดอก/ไม้ ประดบั ” ในตาราง category 2. จากตาราง Product ให้เขยี นคาสง่ั ภาษาเอสควิ แอล หาค่าเฉลีย่ ราคาสินค้า ของ กลมุ่ แปรรูปมะขามหวานน้ากอ้ 3. จากตาราง Product ใหท้ าการปรับปรงุ ขอ้ มลู ขน้ึ ราคาสนิ คา้ ท่ีเป็นสนิ ค้า 5 ดาว เพิม่ มลู ค่าข้ึนไปอีก 7% 4. จากตาราง Product ให้เขียนคาส่ังภาษาเอสคิวแอล ลดราคาสินค้าลงมา 10% ของราคาเดิม ของ SupplierID ท่มี ีคา่ 1 และ 2 และมีดาวสินคา้ ตา่ กว่า 5 5. เน่อื งจากผผู้ ลิตสินค้า กลุ่มเกษตรกรเลี้ยงผ้ึงบ้านเฝา้ ไร่ ไดย้ ุบกล่มุ ให้เขยี นคาสั่งเอสควิ แอล ลบขอ้ มลู สินคา้ กลุ่มเกษตรกรเล้ยี งผงึ้ บ้านเฝ้าไร่ ออกจากตาราง Product การบริหารจัดการระบบฐานขอ้ มูลเพ่ืองานธุรกจิ
บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล | 165 เอกสารอา้ งองิ มณีโชติ สมานไทย. (2546). คู่มือการออกแบบฐานขอ้ มลู และภาษา SQL. กรุงเทพฯ : อินโพเฟรสดิ วลี ็อปเปอร์บู๊ค. วรรณวภิ า ติตถะสริ ิ. (2545). คูม่ อื เรียน SQL ด้วยตนเอง. กรงุ เทพฯ : พิมพ์ด.ี โอภาส เอีย่ มสริ วิ งศ์. (2551). ระบบฐานข้อมลู (Database Systems). กรงุ เทพฯ : ซีเอด็ ยเู คชั่น. Paul Wilton and John W. Colby. (2005). Beginning SQL. Indianapolis: Wiley Publishing, Inc. Peter Rob and Carlos Coronel. (2009). Database Systems: Design, Implementation, and Management. Massachusetts: Course Technology. การบริหารจดั การระบบฐานขอ้ มูลเพือ่ งานธุรกจิ
166 | บทท่ี 8 ภาษาในการประมวลผลขอ้ มูล การบริหารจดั การระบบฐานข้อมูลเพื่องานธุรกจิ
บทท่ี 9 ความปลอดภัยของฐานข้อมูล | 167 แผนบรหิ ารการสอนประจาบทที่ 9 ความปลอดภยั ของฐานข้อมลู หัวขอ้ เน้อื หา 9.1 วัตถปุ ระสงค์ในการรักษาความปลอดภัย 9.2 การสร้างระบบรักษาความปลอดภัยของฐานข้อมูล 9.3 การสรา้ งบัญชผี ู้ใชข้ อง MySQL 9.4 การกาหนดสทิ ธใิ ห้แกบ่ ญั ชผี ใู้ ช้ 9.5 ประเภทและระดบั ของสิทธผิ ู้ใช้งาน 9.6 การถอนสทิ ธิและการลบบัญชผี ้ใู ช้งาน 9.7 การควบคมุ ความปลอดภยั ดว้ ยวิว 9.8 ข้อดีของวิว 9.9 ข้อจากัดของววิ 9.10 การสรา้ งววิ 9.11 การปรับปรงุ ววิ 9.12 การลบวิว 9.13 ฝึกปฏิบัตกิ ารการสรา้ งบัญชีผ้ใู ชข้ อง MySQL และกาหนดสิทธิใหแ้ ก่บัญชีผใู้ ช้ได้ 9.14 ฝึกปฏบิ ตั ิการสร้างวิวข้อมูลการสง่ั ซ้อื สินคา้ บทสรุป คาถามท้ายบท เอกสารอ้างองิ วตั ถปุ ระสงคเ์ ชงิ พฤติกรรม 1. อธบิ ายวตั ถุประสงคใ์ นการรักษาความปลอดภยั ของระบบฐานข้อมลู ได้ 2. สามารถสร้างบญั ชีผใู้ ชข้ อง MySQL ได้ 3. สามารถกาหนดสิทธิให้แกบ่ ญั ชผี ใู้ ช้ได้ 4. อธิบายประเภทและระดบั ของสทิ ธผิ ูใ้ ช้งานได้ 5. สามารถถอนสิทธิและการลบบญั ชผี ู้ใชง้ านได้ 6. อธิบายการควบคุมความปลอดภัยด้วยวิวได้ 7. สามารถสร้างววิ , ปรบั ปรงุ ววิ , ลบวิวในฐานข้อมูล MySQL ได้ การบรหิ ารจัดการระบบฐานข้อมูลเพ่อื งานธุรกิจ
168 | บทท่ี 9 ความปลอดภยั ของฐานขอ้ มูล 8. ฝกึ ปฏบิ ัตกิ ารการสร้างบัญชีผู้ใชข้ อง MySQL และกาหนดสิทธิใหแ้ กบ่ ญั ชีผใู้ ช้ได้ 9. ฝึกปฏิบัตกิ ารสรา้ งวิวข้อมูลการสั่งซ้อื สนิ ค้า วธิ ีสอนและกจิ กรรมการเรียนการสอน 1. วิธีสอน 1.1 นาเขา้ สู่บทเรยี นโดยวดี ทิ ศั น์ 1.2 ใช้วธิ ีสอนบรรยายแบบมสี ่วนร่วม 1.3 ใช้วิธีสอนแบบกระบวนการกลุ่ม 1.4 ฝึกปฏบิ ัตกิ ารการสรา้ งบัญชผี ใู้ ชข้ อง MySQL และกาหนดสิทธิใหแ้ กบ่ ญั ชผี ู้ใช้ 1.5 ฝกึ ปฏิบัตกิ ารสรา้ งววิ ขอ้ มลู การสั่งซือ้ สินค้า 2 กจิ กรรมการเรยี นการสอน 2.1 เปิดวดิ ที ศั นเ์ นื้อหาความปลอดภยั ของฐานข้อมูล พร้อมทง้ั ตั้งโจทย์ประเด็น คาถามกอ่ นเรยี น 2.2 การบรรยายโดยใช้ PowerPoint 2.3 แบง่ กลุ่มระดมความคดิ เห็นในการฝกึ ปฏบิ ัตกิ ารการสรา้ งบัญชีผู้ใช้ของ MySQL และกาหนดสทิ ธิให้แก่บญั ชีผูใ้ ช้ พรอ้ มส่มุ กลมุ่ อธิบายหนา้ ช้ันเรียน 2.4 แบง่ กลุ่มระดมความคิดเห็นในการฝกึ ปฏบิ ัติการสรา้ งววิ ข้อมูลการสงั่ ซ้อื สินค้า พร้อมสุ่มกลมุ่ อธิบายหนา้ ชน้ั เรียน 2.5 นกั ศกึ ษาตอบคาถามท้ายบท ส่ือการเรยี นการสอน 1. เอกสารประกอบการสอนรายวิชา การบริหารจัดการระบบฐานขอ้ มลู เพอ่ื งานธุรกิจ บทท่ี 9. ความปลอดภยั ของฐานข้อมลู 2. โปรแกรม PowerPoint 3. โปรแกรม phpMyAdmin 4. โปรแกรม Xampp 5. ใบงาน การบรหิ ารจัดการระบบฐานขอ้ มูลเพือ่ งานธุรกิจ
บทที่ 9 ความปลอดภยั ของฐานข้อมูล | 169 การวดั และประเมนิ ผล 1. สงั เกตพฤตกิ รรมของนักศกึ ษาการมีส่วนรว่ มในการบรรยาย 2. ตรวจผลการอภิปรายกลุ่ม เร่ือง จรยิ ธรรมในการใชเ้ ทคโนโลยีสารสนเทศ และ สงั เกตพฤตกิ รรมการนาเสนอผลการศึกษาหนา้ ชนั้ เรยี น 3. ตรวจการตอบคาถามท้ายบท 4. ตรวจใบงาน การบริหารจัดการระบบฐานข้อมูลเพอื่ งานธุรกิจ
170 | บทท่ี 9 ความปลอดภยั ของฐานข้อมูล การบริหารจัดการระบบฐานขอ้ มูลเพื่องานธุรกจิ
บทท่ี 9 ความปลอดภยั ของฐานข้อมูล (Database Security) ความสาคัญอย่างหนึ่งของของระบบฐานข้อมูลคือการรักษาความปลอดภัยของข้อมูล ทาให้ ข้อมูลมีความน่าเช่ือถือและปลอดภัย ป้องกันผู้ท่ีไม่มีสิทธิในการใช้ข้อมูลเข้าถึงข้อมูล โดยมีบัญชีผู้ใช้ ฐานข้อมูลในการพิจารณาสิทธิ ซ่ึงบัญชีผู้ใช้ฐานข้อมูลจะเห็นโครงสร้างข้อมูลที่อาจเหมือนกันหรือ แตกต่างกันแล้วแต่สิทธิโดยมีผู้ดูแลระบบกาหนดให้ อีกทั้งการสร้างวิวในการเลือกข้อมูลเฉพาะ บางส่วนนามาแสดง หรือข้อมูลที่เกิดจากการคานวณมาแสดงแทนข้อมูลจรงิ ซึง่ ในบทท่ี 9 จะอธิบาย ขั้นตอนรักษาความปลอดภัยให้กับข้อมูลโดยเลือกระบบฐานข้อมูลมายเอสคิวแอล ดังรายละเอียด แต่ละหวั ขอ้ 9.1 การรกั ษาความปลอดภยั ของฐานขอ้ มูล กิตติ ภักดีวัฒนะกุล. (2521:234-238) กล่าวว่า การรักษาความ ปลอดภัยให้กับข้อมูลภายในฐานข้อมูล ในเบื้องต้นใช้การกาหนดสิทธิ์ให้กับ ผู้ใช้แต่ละคนในการใช้งานข้อมูล ซ่ึงสิทธิ์การใช้งานจะถูกกาหนดโดย ผู้บริหารฐานข้อมูล เมื่อมีการกาหนดสิทธิแล้วโปรแกรมระบบการ จัดการฐานข้อมูล จะทาหน้าท่ีตรวจสอบสิทธ์ิการกระทา ต่าง ๆ ของ ผ้ใู ชง้ านว่าการกระทาใดมสี ทิ ธิ์และการกระทาได้มีสิทธิ์ ในการใชข้ ้อมลู น้นั การกาหนดสิทธ์ิให้กับผู้ใช้งานเป็นการรักษาความปลอดภัยของข้อมูลในระดับหน่ึง ซึ่งจะไม่ สามารถป้องกันการโจรกรรมข้อมูลได้ โดยวิธีนี้จึงมีอีกวิธีการหน่ึงที่นิยมในการป้องกันการโจรกรรม ข้อมูลได้แกก่ ระบวนการเข้ารหัสข้อมูล ซึ่งเป็นการแปลงข้อมูลให้อยู่ในรปู แบบท่ีไม่สามารถอ่านเข้าใจ ได้โดยตรงจะต้องมีกระบวนการถอดรหัส จึงจะสามารถเข้าใจข้อมลู นั้น ๆ ได้ คาสัง่ ทใี่ ชใ้ นการรักษาความปลอดภยั ของฐานขอ้ มลู ไดแ้ ก่ 1.คาสงั่ GRANT เป็นคาสง่ั กาหนดสิทธิให้กบั ผู้ใชข้ อ้ มูล 2.คาสง่ั REVOKE เป็นคาสั่งกาหนดยกเลิกสิทธิใหก้ บั ผู้ใชข้ อ้ มูล Peter Rob and Carlos Coronel. (2009:542) กล่าไว้ว่า การรักษาความปลอดภัย ของข้อมูลในฐานข้อมูลไม่ใช่เพียงการป้องกันเฉพาะข้อมูลที่จะถูกลักลอบหรือโจรกรรมเท่าน้ัน คาว่า การรักษาความปลอดภัยของฐานข้อมูล รวมถึงการดูแลองค์ประกอบท้ังหมดของฐานข้อมูลด้วย เช่น บารุงรักษา ฮาร์ดแวร์ ซอฟต์แวร์ บุคลากร และข้อมูล ในการออกแบบการรักษาความปลอดภัย การบรหิ ารจัดการระบบฐานข้อมูลเพือ่ งานธุรกจิ นริ นั ดร ผานิจ
172 | บทที่ 9 ความปลอดภัยของฐานขอ้ มูล ของข้อมูลต้องมีการควบคุมส่วนประกอบทั้งหมดให้เหมาะสมทั้งระบบ ซ่ึงมักถูกละเลยหรือมองข้าม ในอดตี ปัจจุบันองค์กรต่าง ๆ ได้มีการนาระบบคอมพิวเตอร์มาประยุกต์ใช้อานวยความสะดวก ในการทางาน ซ่ึงในปัจจุบันการจัดเก็บข้อมูลขององค์กรต่าง ๆ นิยมจัดเก็บไว้ในระบบคอมพิวเตอร์ แทนการจดั เก็บไว้ในกระดาษ ซ่ึงข้อมลู ดงั กลา่ วโดยส่วนมากจะถกู จัดเกบ็ โดยระบบฐานขอ้ มลู นั้นเอง สรุปได้ว่าการรักษาความปลอดภัยของฐานข้อมูล เพื่อลดปัจจัยเสี่ยงความเสียหายท่ีจะเกิด ข้ึนกับฐานข้อมูล ปกป้องไม่ให้ผู้ไม่มีสิทธิในการใช้ข้อมูลเข้าใช้ข้อมูล ทาให้ระบบฐานข้อมูลมีความ น่าเช่ือถือและปลอดภัย โดยผู้ที่มีสิทธิใช้งานจะต้องมี user และรหัสผ่านเท่านั้นถึงสามารถใช้งาน ฐานข้อมลู ได้ รวมถึงการดูแลบารงุ รักษาองค์ประกอบของระบบฐานข้อมูลดว้ ย ซ่งึ หลักๆ ไดแ้ ก่ 1. Software 2. Hardware 3. Data 4. Procedures 5. People ภาพท่ี 9.1 องค์ประกอบของระบบฐานข้อมลู ท่มี า : Database Systems: Design, Implementation, and Management (2009:19) ภาพท่ี 9.2 แสดงการเช่ือมต่อฐานขอ้ มลู ที่ต้องมี User และรหสั ผา่ น ท่มี า : ผูเ้ ขียน การบริหารจัดการระบบฐานขอ้ มูลเพื่องานธุรกิจ
บทที่ 9 ความปลอดภยั ของฐานข้อมูล | 173 9.2 การสรา้ งระบบรกั ษาความปลอดภยั ของฐานข้อมลู หน้าที่ของระบบจัดการฐานข้อมูล มีข้อหนึ่งคือการรักษาความปลอดภัยของข้อมูล ทาให้ความ มั่นใจได้ว่าผู้ใช้งานท่ีได้รับการอนุญาตเท่าน้ัน ถึงจะมีสิทธิในใช้งานหรือสามารถเข้าถึงฐานข้อมูลได้ โดยรูปแบบการรกั ษาความปลอดภัยของข้อมูลมดี ังนี้ 1. สรา้ งสรา้ งบัญชผี ูใ้ ช้และรหัสผา่ นใหก้ บั ผู้ใช้ 2. การเขา้ รหสั ข้อมูล 3. การกาหนดมุมมองของผใู้ ช้ 9.3 การเช่อื มต่อกับฐานข้อมลู MySQL Server ฐานข้อมูลมายเอสคิวแอล เป็นฐานข้อมูลฝั่งเซิร์ฟเวอร์ ในการพัฒนาโปรแกรมเพ่ือให้สามารถ เชือ่ มต่อกับฐานข้อมูลมายเอสคิวแอลได้นนั้ ในการเข้าระบบกอ่ นใช้งานฐานข้อมูลเพ่ือความปลอดภัย ของข้อมูลต้องระบุขอ้ มูล 1. ผู้ใช้งาน (user) 2. รหัสผ่าน (password) โดยเคร่ืองคอมพิวเตอร์ทงั้ ลูก ข่ายและแม่ข่ายสามารถติดต่อส่ือสารกันได้ผ่านระบบแลน (LAN) หรืออินเทอร์เน็ต (Internet) โดย เคร่ือง MySQL Database Server ปกติจะใช้พอร์ต 3306 ในเอกสารประกอบการสอนนี้จะอธิบาย ขน้ั ตอนการเชื่อมต่อกับฐานข้อมูล MySQL Server ที่ติดต้ังมากับโปรแกรม Xampp เพ่ือให้สามารถ ใช้งานฐานข้อมูลมายเอสคิวแอล ได้นั้นจะต้องทาการ Start MySQL Server ผ่าน Xampp Control Panel กอ่ นดังภาพ ภาพท่ี 9.3 การ Start MySQL ทีม่ า : ผเู้ ขียน ข้ันตอนท่ี 1. การเชอ่ื มตอ่ มายเอสคิวแอลเซิร์ฟเวอร์ ด้วยคาส่ัง mysql -u ชอื่ ผูใ้ ช้งาน –p รหัสผ่าน เชน่ mysql -u root –p การบริหารจัดการระบบฐานขอ้ มูลเพื่องานธุรกจิ
174 | บทที่ 9 ความปลอดภยั ของฐานขอ้ มูล ภาพที่ 9.4 การเชื่อมต่อมายเอสคิวแอลเซิรฟ์ เวอร์ ทีม่ า : ผเู้ ขยี น ขั้นตอนที่ 2. แสดงข้อมูลการเช่ือมต่อ เม่ือทาการเชื่อมต่อฐานข้อมูล MySQL จะปรากฏ ขอ้ ความตอ้ นรับการเชื่อมต่อสาเร็จ ภาพที่ 9.5 แสดงผลการเชื่อมต่อสาเรจ็ ท่ีมา : ผู้เขียน ถ้าหากเช่อื มตอ่ สาเรจ็ จะแสดงข้อความแนะนาการใชง้ านเบ้ืองตน้ Type 'help;' or '\\h' for help. Type '\\c' to clear the buffer. โดยสามารถพิมพ์ help; หรือ \\h สาหรบั ขอความช่วยเหลือในการใช้งาน พิมพ์ \\c สาหรับเคลียร์หนา้ จอ ภาพท่ี 9.6 คาสง่ั exit สาหรับออกจากฐานข้อมูล ที่มา : ผู้เขยี น การบริหารจัดการระบบฐานข้อมูลเพ่ืองานธุ รกิจ
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240