450 likes | 777 Views
การออกแบบฐานข้อมูล กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์. THINAPHAN NITHIYUWITH. Email : suchada@pcru.ac.th. 3. 4. Relation : ระบบผลงานครู-อาจารย์. Appserve / phpMyadmin. Contents. 1. Database is…. 2. ขั้นตอนการออกแบบฐานข้อมูล. 5. สรุป Q&A. Database is.
E N D
การออกแบบฐานข้อมูลกรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ THINAPHAN NITHIYUWITH Email : suchada@pcru.ac.th
3 4 Relation : ระบบผลงานครู-อาจารย์ Appserve / phpMyadmin Contents 1 Database is… 2 ขั้นตอนการออกแบบฐานข้อมูล 5 สรุป Q&A
Database is . . . • กลุ่มของข้อมูลที่มีความสัมพันธ์กัน นำมาเก็บรวบรวมเข้าไว้ด้วยกันอย่างมีระบบและข้อมูลที่ประกอบกันเป็นฐานข้อมูลนั้น ต้องตรงตามวัตถุประสงค์การใช้งานขององค์กรด้วยเช่นกัน • ข้อมูลนั้นอาจจะเกี่ยวกับบุคคล สิ่งของสถานที่ หรือเหตุการณ์ใด ๆ ก็ได้ที่เราสนใจศึกษา หรืออาจได้มาจากการสังเกต การนับหรือการวัดก็เป็นได้ รวมทั้งข้อมูลที่เป็นตัวเลข ข้อความ และรูปภาพต่าง ๆ ก็สามารถนำมาจัดเก็บเป็นฐานข้อมูลได้ และที่สำคัญข้อมูลทุกอย่างต้องมีความสัมพันธ์กัน เพราะเราต้องการนำมาใช้ประโยชน์ต่อไปในอนาคต
ขั้นตอนการออกแบบฐานข้อมูลขั้นตอนการออกแบบฐานข้อมูล • การรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูล • พิจารณาข้อมูล ขจัดข้อมูลที่มีความซ้ำซ้อน • กำหนดตารางเพื่อใช้เก็บข้อมูล Data Dictionary
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ นายเมอร์โค คาสปาล
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ นายเมอร์โค คาสปาล mirko@pcru.ac.th
การรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูลการรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูล • การรวบรวมข้อมูล ได้จากไหน ??? • จากรายงาน และความต้องการที่อยากให้ระบบมี • ความต้องการใช้ข้อมูล ได้จากไหน ??? • จากสิ่งที่เราต้องการให้ระบบมี เช่น • ต้องการให้มีระบบ loginเพื่อให้เจ้าหน้าที่เข้าไปจัดการข้อมูลประวัติส่วนตัว ข้อมูลผลงาน ของครูทุกคน โดยให้ระบุ username และ password
การรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูลการรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูล • เมื่อเราพิจารณาจากรายงานทั้งสอง สามารถแบ่งกลุ่มของข้อมูลได้ ดังนี้ • ข้อมูลประวัติของครู ซึ่งประกอบด้วย รหัสครู ชื่อ-สกุลครู กลุ่มสาระ อีเมล์ และรูปภาพ • ข้อมูลผลงานของครู ซึ่งประกอบด้วย รหัสผลงาน ชื่อผลงาน ปีที่ได้รับ หน่วยงานที่มอบ
พิจารณาข้อมูล ขจัดข้อมูลที่มีความซ้ำซ้อน • ทำไม? เราถึงต้องแบ่งข้อมูลประวัติครู กับ ข้อมูลของครู แยกออกจากกัน • ลองพิจารณาจากตัวอย่างข้อมูลต่อไปนี้
พิจารณาข้อมูล ขจัดข้อมูลที่มีความซ้ำซ้อน • จะเห็นว่ามีข้อมูลซ้ำเกิดขึ้น คือ ข้อมูลประวัติของครู เช่น รหัส 0001 นายมนัส ... จะมีข้อมูลประวัติซ้ำถึง 3 แถว โดยในแต่ละแถวข้อมูลที่ไม่ซ้ำคือ ข้อมูลผลงาน เท่านั้น
พิจารณาข้อมูล ขจัดข้อมูลที่มีความซ้ำซ้อน • การที่มีการเก็บข้อมูลซ้ำทำให้เกิดปัญหา ดังนี้ • เปลืองเนื้อที่ในการจัดเก็บข้อมูล • แก้ไขข้อมูล ก็ต้องตามแก้หลายที่ หากมีการแก้ไขไม่ครบทั้งหมด ก็ทำให้เกิดปัญหาความขัดแย้งของข้อมูลตามมา • ลบข้อมูล ก็ต้องตามลบหลายที่ หากมีการลบไม่ครบทั้งหมด ก็ทำให้เกิดปัญหาความขัดแย้งของข้อมูลตามมา อีกทั้งหากมีการลบข้อมูลผลงานของครูออก เช่น จะลบข้อมูลผลงานครูของ นางอัจฉรา แย้มเหมือน ออกทั้งสองผลงาน มีผลทำให้ต้องลบข้อมูลประวัติของ นางอัจฉรา ตามไปด้วย ทำให้ไม่มีข้อมูลประวัติของนางอัจฉรา ซึ่งจะเห็นว่าไม่ถูกต้อง • การเกิดค่าว่างขึ้น เช่น ข้อมูลของ นางสุรีพร ทับทิมพา ยังไม่มีการทำผลงาน จึงไม่มีข้อมูลผลงาน หากในโรงเรียนมี ครูที่ยังไม่ข้อมูลผลงานจำนวนมาก ก็ทำให้ข้อมูลตรงนี้เป็นค่าว่างเกิดขึ้น ซึ่งทำให้เปลืองหน่วยความจำ
พิจารณาข้อมูล ขจัดข้อมูลที่มีความซ้ำซ้อน • ด้วยเหตุนี้จึงต้องทำการแยกข้อมูลออกเป็น 2 กลุ่ม ดังนี้ • ข้อมูลประวัติของครู ซึ่งประกอบด้วย รหัสครู ชื่อ-สกุลครู กลุ่มสาระ อีเมล์ และรูปภาพ • ข้อมูลผลงานของครู ซึ่งประกอบด้วย รหัสผลงาน ชื่อผลงาน ปีที่ได้รับ หน่วยงานที่มอบ
พิจารณาข้อมูล ขจัดข้อมูลที่มีความซ้ำซ้อน ข้อมูลประวัติของครู ข้อมูลผลงานครู
พิจารณาข้อมูล ขจัดข้อมูลที่มีความซ้ำซ้อน • เมื่อเราแยกข้อมูลออกมาเป็น 2 ตาราง ก็มีปัญหาตามมา คือ ทำให้ไม่รู้ว่าผลงานนี้เป็นของครูคนไหน?แล้วจะทำยังไงให้รู้ • ก็โดยการสร้างความสัมพันธ์ของทั้งสองตาราง โดยเอารหัสครูมาใส่เพิ่มที่ตารางผลงานครู เพื่อเชื่อมความสัมพันธ์
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ ข้อมูลผลงานครู ข้อมูลประวัติของครู
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ • จะเห็นได้ว่าสามารถแก้ปัญหาที่ได้กล่าวมาข้างต้นได้ • ลดความซ้ำซ้อน • แก้ไขข้อมูลหลายที่ • ลบข้อมูลหลายที่ • ความขัดแย้งของข้อมูล • การเกิดค่าว่าง (null)
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ • ลองมาพิจารณาข้อมูลประวัติครู
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ • จะเห็นว่ามีการเกิดข้อมูลซ้ำที่กลุ่มสาระ เพราะถ้าเรามองภาพว่าในหน่วยงานของเราในแต่ละกลุ่มสาระ มีอาจารย์ได้หลายคน หากกลุ่มการงานฯ มีอาจารย์สังกัด 10 คน ก็ทำให้เกิดปัญหาตามมา เช่น ถ้ามีการเปลี่ยนชื่อกลุ่มสาระ ก็ต้องตามแก้หลายที่ • เมื่อเป็นเช่นนี้ ก็ควรแยกข้อมูลกลุ่มสาระ ออกมาเป็นอีกชุดหนึ่ง และเมื่อแยกมาแล้วจะเห็นว่ามันดูแล้วก็ยังซ้ำอยู่ดี
ข้อมูลกลุ่มสาระ ข้อมูลประวัติของครู
ฉะนั้น วิธีแก้ปัญหา คือควรจะสร้างข้อมูลที่เป็น รหัส ขึ้นมาเพื่อใช้อ้างอิงข้อมูล และนำรหัสนี้ไปเชื่อมกับข้อมูลในตารางประวัติครู ดังนี้ ข้อมูลกลุ่มสาระ ข้อมูลประวัติของครู
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ • สรุป เราจะได้ข้อมูลออกมา 3 กลุ่ม คือ • ข้อมูลประวัติครู ประกอบด้วย รหัสครู ชื่อ-สกุล อีเมล์ รูปถ่าย และรหัสกลุ่มสาระ • ข้อมูลกลุ่มสาระ ประกอบด้วย รหัสกลุ่มสาระ ชื่อกลุ่ม • ข้อมูลผลงานครู ประกอบด้วย รหัสผลงาน ชื่อผลงาน ปีที่ได้รับ หน่วยงานที่มอบ และรหัสครู • จากข้อมูลทั้ง 3 กลุ่ม เรามาพิจารณาหา คีย์หลัก • คีย์หลักคืออะไร
การออกแบบฐานข้อมูล : กรณีศึกษา ระบบฐานข้อมูลผลงานครู-อาจารย์ • คีย์หลัก คือ อะไร???? • คีย์หลัก Primary key เป็นข้อมูลที่สามารถบ่งบอกความเป็นเอกลักษณ์ หรือหนึ่งเดียวได้ เช่น หากมีการเก็บข้อมูลประชากร ในหมู่บ้านวังโค้ง ดังนี้ ชื่อ-สกุล ที่อยู่ เพศ หมายเลขบัตรประชาชน วันเดือนปีเกิด จะเห็นว่า คีย์หลัก ควรเป็น หลายเลขบัตรประชาชน เนื่องจากไม่มีใครซ้ำกันเลย สามารถดึงข้อมูลมาได้เพียงคนเดียว แบบนี้เรียกว่า เป็นเอกลักษณ์ • ทำไมต้องกำหนดคีย์หลัก? หากเรามีความต้องการค้นหาข้อมูลประวัติส่วนตัวของครูคนใดคนหนึ่ง เราต้องหาคีย์เวิร์ด ของข้อมูลประวัติส่วนตัวครูเพื่อที่จะดึงข้อมูลเพียงคนเดียวขึ้นมา คีย์เวิร์ดในที่นี้ก็คือ คีย์หลัก นั่นเอง • ฉะนั้นลองพิจารณาข้อมูลทั้ง 3 กลุ่มของเราว่าแต่ละกลุ่ม อะไรควรเป็นคีย์หลักดี
กลุ่มสาระ ประวัติของครู • ประวัติครู ควรใช้ รหัสครู เป็นคีย์หลัก • กลุ่มสาระ ควรใช้ รหัสกลุ่มสาระ เป็นคีย์หลัก
ผลงานครู ควรใช้ รหัสผลงาน เป็นคีย์หลัก ข้อมูลผลงานครู
กำหนดตารางเพื่อใช้เก็บข้อมูลกำหนดตารางเพื่อใช้เก็บข้อมูล • Data Dictionary คือ การกำหนดรายละเอียดของข้อมูลในตารางฐานข้อมูล ว่าเราต้องเก็บข้อมูลอะไรบ้าง เป็นชนิดอะไร มีขนาดเท่าไร เพื่อสัมพันธ์กับการสร้างฐานข้อมูล และการเขียนโปรแกรม • รูปแบบของ Data Dictionary ชื่อตาราง xxx
Data Dictionary • ระบบฐานข้อมูลผลงานครู-อาจารย์ประกอบด้วยตารางดังนี้ department (กลุ่มสาระการเรียนรู้)
Data Dictionary teacher (ครู)
Data Dictionary work (ผลงานครู)
การสร้างฐานข้อมูลบน MySQL และใช้งาน php • ทำความรู้จักกับ โปรแกรม Appserv • โปรแกรม AppServ คือโปรแกรมที่รวบรวมเอา Open Source Software หลายๆ อย่างมารวมกันโดยมี Package หลักดังนี้ - Apache- PHP - MySQL- phpMyAdmin • รายละเอียด AppServ ทุกเวอร์ชั่นhttp://www.appservnetwork.com/modules.php?name=Content&pa=showpage&pid=2
Appserv • โปรแกรม Apache Web Serverเป็นโปรแกรมที่ใช้ในการทำให้เครื่องคอมพิวเตอร์มีคุณสมบัติเป็น Web server คือเครื่องคอมพิวเตอร์นั้นสามารถให้บริการต่างๆ ทางด้านเว็บเพจได้ • PHPเป็นภาษาจำพวก scripting languageได้รับการพัฒนาและออกแบบมา เพื่อใช้งานในการสร้างเอกสารแบบ HTML โดยสามารถสอดแทรกหรือแก้ไขเนื้อหาได้โดยอัตโนมัติช่วยพัฒนา Web site และความสามารถที่โดดเด่นอีกประการหนึ่งของ PHP นั้น คือ database-enabled web page ทำให้เอกสารของ HTML สามารถที่จะเชื่อมต่อกับระบบฐานข้อมูล (database)ได้อย่างมีประสิทธิภาพและรวดเร็ว เป็นเครื่องมือที่สำคัญชนิดหนึ่งที่ช่วยให้เราสามารถสร้างเอกสารแบบ Dynamic HTML ได้อย่างมีประสิทธิภาพและมีลูกเล่นมากขึ้น
Appserv • MySQL คือ ตัวระบบจัดการฐานข้อมูล ซึ่งก็คือตัวที่ทำหน้าที่เป็นตัวกลางในระบบติดต่อระหว่าง ผู้ใช้กับฐานข้อมูลเป็นที่นิยมใช้กันมากสำหรับทำเป็นฐานข้อมูลเว็บไซต์ ยังสามารถใช้ร่วมกับภาษาโปรแกรม PHP, ASP และภาษาโปรแกรมอื่นๆ ที่สามารถใช้ได้MySQLเป็นระบบฐานข้อมูลแบบโอเพนซอร์ท (Open Source Database) สำหรับจัดการระบบดาต้าเบส (Database System) ผ่านภาษาเอสคิวแอล (SQL) • phpMyAdminเครื่องมือในการจัดการฐานข้อมูล MySQL โดยเป็นส่วนต่อประสานที่สร้างโดยภาษาพีเอชพี ซึ่งใช้จัดการฐานข้อมูล MySQL ผ่านเว็บเบราว์เซอร์ โดยสามารถที่จะทำการสร้างฐานข้อมูลใหม่ หรือทำการสร้าง TABLE ใหม่ๆ และยังมี function ที่ใช้สำหรับการทดสอบการ query
ข้อแตกต่างของ AppServ ในแต่ละเวอร์ชั่น • AppServ ได้แบ่งเวอร์ชั่นออกเป็น 2 ส่วนด้วยกัน คือ • 2.5.x คือเวอร์ชั่นที่นำ Package ใหม่ๆ นำมาใช้งานโดยเฉพาะ เหมาะสำหรับนักพัฒนาที่ต้องการระบบใหม่ๆ หรือต้องการทดสอบ ทดลองใช้งานฟังก์ชั่นใหม่ ซึ่งอาจจะไม่ได้ความเสถียรของระบบได้ 100% เนื่องจากว่า Package จากนักพัฒนานั้นยังอยู่ในช่วงของขั้นทดสอบ ทดลองเพื่อหาข้อผิดพลาดอยู่ • 2.4.x คือเวอร์ชั่นที่นำ Package ที่มีความเสถียรเป็นหลัก เหมาะสำหรับผู้ที่ต้องการความมั่นคงของระบบโดยไม่ได้มุ่งเน้นที่จะใช้ฟังก์ชั่นใหม่
Appserv 2.4.0 • Download ได้ที่http://sourceforge.net/projects/appserv/files/ • Appserv 2.4.0 (PHP,Apache,MySQL)ประกอบด้วย • Apache 1.3.29 • PHP 4.3.4 • MySQL 4.0.18 • phpMyAdmin 2.5.6 • Perl 5.8.0
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • เปิด IE แล้วพิมพ์ตรงช่อง address : 127.0.0.1 หรือ localhost ดังหมายเลข 1 • คลิกที่หมายเลข 2 เพื่อเข้าสู่หน้าจัดการ ฐานข้อมูล mySQL
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • สร้างฐานข้อมูล ชื่อ portfolio ดังหมายเลข 3 • กำหนดภาษาไทย เป็น tis-620 ดังหมายเลข 4 แล้วคลิกที่ปุ่ม สร้าง
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • สร้างตารางดังหมายเลข 5 คลิกปุ่ม ลงมือ ข้อมูลที่ใช้สร้างตามสไลด์ที่ 26 จะเห็นว่าชื่อตารางคือ department ประกอบด้วยข้อมูล 2 ฟิลด์ คือ รหัส กับ ชื่อกลุ่มสาระ
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • กรอกข้อมูลรายละเอียดของตาราง department ดังนี้ แล้วคลิกปุ่มบันทึก ตามหมายเลข 6
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • เมื่อคลิกปุ่มบันทึก จะปรากฏข้อมูลที่สร้าง เมื่อต้องการสร้างตารางต่อไปให้ไปที่ หมายเลข 7 หลังจากนั้น ก็กลับไปทำตามสไลด์ 36-37 ให้ครบอีก 2 ตาราง 7
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • ตาราง teacher
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • ตาราง work
จัดการข้อมูลด้วย phpMyAdmin 2.5.6 • ฐานข้อมูล portfolio ประกอบด้วยตาราง 3 ตาราง คือ department , teacher , work