บทที่ 1 บทนำ 1.1 ความเป็นมาและความสำคัญของปัญหา วิทยานิพนธ์ (Thesis) และสารนิพนธ์ (Master Project) เป็นรายงานผลของการค้นคว้าวิจัย ซึ่ง เป็นส่วนหนึ่งของการศึกษาในระดับปริญญามหาบัณฑิต หรือปริญญาดุษฎีบัณฑิต โดยในการจัดทำนักศึกษาจะต้องเลือกหัวข้อเรื่องที่ต้องการทำด้วยตนเอง และจะต้องทำการศึกษาค้นคว้าหาข้อมูลที่ เกี่ยวข้องอย่างละเอียดลึกซึ้ง มีการกำหนดวัตถุประสงค์ของการศึกษาค้นคว้า การตั้งสมมติฐาน การ ค้นคว้าเอกสารหลักฐานเพื่อมาพิสูจน์หรือสนับสนุนสมมติฐาน มีการสรุปผลของการศึกษาค้นคว้า และการอภิปรายผล คณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ เป็นสถานศึกษา ที่เปิดสอนในระดับปริญญามหาบัณฑิต โดยสถาบันฯได้ผลิตบัณฑิตที่มีความรู้ความสามารถ ออกมาสู่สังคมเป็นจำนวนมาก ทั้งนี้ระหว่างที่ได้ทำการศึกษาอยู่ที่สถาบันฯ นั้น นักศึกษาแต่ละคน จะดำเนินการจัดทำวิทยานิพนธ์หรือสารนิพนธ์ของตนเองขึ้น เพื่อศึกษาหาความรู้และเป็นส่วนหนึ่ง ในการศึกษาจากทางสถาบันฯ โดยจะมีอาจารย์ที่ปรึกษาในการจัดทำวิทยานิพนธ์และสารนิพนธ์ เป็นผู้ให้คำปรึกษาระหว่างเริ่มจัดทำจนสำเร็จเป็นรูปเล่ม ในแต่ละปีจำนวนของวิทยานิพนธ์และสารนิพนธ์ที่นักศึกษาได้จัดทำส่งให้กับทางคณะฯ ได้ เพิ่มจำนวนขึ้นมาทุกปี การจัดการระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ของทางคณะฯ เป็น สิ่งที่จำเป็นเพื่อรองรับกับจำนวนวิทยานิพนธ์และสารนิพนธ์ที่มีอยู่และที่จะเพิ่มมาอีกในอนาคต ใน ปัจจุบันทางคณะฯ ยังขาดระบบที่มีประสิทธิภาพมาควบคุมการจัดการต่างๆ เกี่ยวกับวิทยานิพนธ์ และสารนิพนธ์ เช่น การตรวจสอบจำนวนเรื่องของวิทยานิพนธ์และสารนิพนธ์ จำนวนหัวเรื่องของ วิทยานิพนธ์และสารนิพนธ์ที่อาจารย์แต่ละท่านเป็นที่ปรึกษา ข้อมูลและรายงานต่างๆ เป็นต้น เพื่อ นำมารองรับและให้บริการกับทั้งทางอาจารย์ เจ้าหน้าที่ ตลอดจนนักศึกษาที่จะมาใช้บริการ ซึ่ง สามารถแบ่งกลุ่มผู้ใช้ออกเป็น 3 กลุ่มโดยมีปัญหาในการปฏิบัติงานที่เกิดขึ้นดังนี้ กลุ่มที่ 1 เจ้าหน้าที่ของคณะฯ 1. การจัดเก็บเรื่องวิทยานิพนธ์และสารนิพนธ์ไม่มีการลงรายละเอียดในส่วนของ ความก้าวหน้าของเรื่องที่มีอยู่ว่าถึงขั้นตอนใดแล้ว 2 2. การแบ่งแยกรูปแบบของวิทยานิพนธ์และสารนิพนธ์ไม่ละเอียด โดยการจัดเก็บข้อมูล เบื้องต้นที่สำคัญของวิทยานิพนธ์และสารนิพนธ์แต่ละเรื่องมีน้อยเกินไป กลุ่มที่ 2 อาจารย์ที่ปรึกษาหัวข้อวิทยานิพนธ์และสารนิพนธ์ 1. ไม่มีระบบจัดเก็บข้อมูลในส่วนของจำนวนเรื่องที่ได้รับเป็นที่ปรึกษา ทำให้ต้องจดจำด้วยตนเอง ซึ่งทำให้เกิดข้อผิดพลาดได้ง่าย 2. ไม่มีระบบติดตามความก้าวหน้าของวิทยานิพนธ์และสารนิพนธ์ที่ได้รับเป็นที่ปรึกษา กลุ่มที่ 3 นักศึกษา 1. การสืบค้นวิทยานิพนธ์และสารนิพนธ์ที่มีอยู่นั้นข้อมูลที่ได้ไม่ชัดเจน โดยได้รายละเอียด น้อยเกินไป รวมถึงอาจเกิดความผิดพลาดทำให้เรื่องของวิทยานิพนธ์และสารนิพนธ์มีเนื้อหาในการ จัดทำซ้ำกัน 2. ขาดข้อมูลหัวข้อที่นักศึกษาท่านอื่นส่งให้ทางคณะกรรมการกลั่นกรองแล้ว 3. ขาดข้อมูลว่าอาจารย์แต่ละท่านรับเป็นที่ปรึกษาแล้วจำนวนกี่เรื่อง จากปัญหาที่เกิดขึ้นดังกล่าว การพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ เพื่อให้ ตอบสนองกับการทำงานของผู้ใช้ โดยสามารถที่จะแก้ไขปัญหาที่เกิดขึ้นและช่วยในการทำวิทยานิพนธ์และสารนิพนธ์ของนักศึกษาในเบื้องต้นได้ 1.2 วัตถุประสงค์ของโครงงาน 1.2.1 เพื่อพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ คณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ 1.2.2 เพื่อประเมินประสิทธิภาพของระบบที่พัฒนาขึ้น 1.3 ขอบเขตของโครงงาน ระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์จะถูกพัฒนาขึ้นเป็น Web Application เพื่อ นำมาใช้ภายในคณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ และมี การสร้าง Web Application บนเครือข่ายอินเตอร์เน็ตเพื่อให้บริการกับนักศึกษาและอาจารย์ที่ ปรึกษาวิทยานิพนธ์และสารนิพนธ์ ประกอบด้วยรายละเอียดของระบบแยกเป็น 2 ส่วน ดังนี้ 3 1.3.1 ส่วนของเจ้าหน้าที่ของคณะฯ 1.3.1.1 สามารถเพิ่ม ปรับปรุงแก้ไขข้อมูลของวิทยานิพนธ์และสารนิพนธ์ได้ดังนี้ 1.3.1.1.1 ชื่อเรื่องของวิทยานิพนธ์และสารนิพนธ์ 1.3.1.1.2 รูปแบบของหัวข้อโครงการ 1.3.1.1.2.1 วิทยานิพนธ์ 1.3.1.1.2.2 สารนิพนธ์ 1.3.1.1.3 งานวิจัย 1.3.1.1.3.1 คุณลักษณะของวิทยานิพนธ์และสารนิพนธ์ 1.3.1.1.3.2 โปรแกรมพร้อมรายละเอียดเบื้องต้น 1.3.1.1.4 ระบบงานพร้อมรายละเอียดเบื้องต้น 1.3.1.1.5 ชื่อของนักศึกษาผู้จัดทำ 1.3.1.1.6 สาขาที่เรียน 1.3.1.1.7 อาจารย์ที่ปรึกษา 1.3.1.1.8 ปีที่จัดทำ 1.3.1.1.9 บทคัดย่อวิทยานิพนธ์และสารนิพนธ์ 1.3.1.2 สามารถบันทึกประวัติความก้าวหน้าของวิทยานิพนธ์และสารนิพนธ์ได้ 1.3.1.2.1 การยื่นเสนอโครงร่างวิทยานิพนธ์และสารนิพนธ์สำหรับ คณะกรรมการกลั่นกรอง 1.3.1.2.2 การเสนอโครงการวิทยานิพนธ์และสารนิพนธ์และขออนุมัติ แต่งตั้งคณะกรรมการที่ปรึกษา 1.3.1.2.3 การสอบก้าวหน้าวิทยานิพนธ์ 1.3.1.2.4 การสอบป้องกันสารนิพนธ์ 1.3.1.3 มีรายงานในการเรียกดูข้อมูลทั้งหมดได้ 1.3.2 ส่วนของนักศึกษาและอาจารย์ที่ปรึกษา 1.3.2.1 การใช้งานผ่านเว็บไซต์ 1.3.2.2 สามารถสืบค้นรายละเอียดข้อมูลวิทยานิพนธ์และสารนิพนธ์ที่มีอยู่ได้ 1.3.2.3 สามารถแสดงถึงความก้าวหน้าของวิทยานิพนธ์และสารนิพนธ์แต่ละเรื่อง 1.3.2.4 สามารถแสดงจำนวนเรื่องของวิทยานิพนธ์และสารนิพนธ์ที่อาจารย์แต่ละ ท่านรับเป็นที่ปรึกษาได้ 1.3.2.5 สามารถพิมพ์รายงานข้อมูลที่มีอยู่ได้ 4 1.4 คำจำกัดความและนิยามศัพท์เฉพาะในโครงงาน 1.4.1 สถาบันฯ หมายถึงสถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ 1.4.2 คณะฯ หมายถึงคณะเทคโนโลยีสารสนเทศ 1.4.3 นักศึกษา หมายถึงนักศึกษาคณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอม เกล้าพระนครเหนือ 1.5 เครื่องมือที่ใช้ในการดำเนินงาน 1.5.1 เครื่องคอมพิวเตอร์ส่วนบุคคลพร้อมอุปกรณ์ต่อพ่วงต่างๆ 1.5.1.1 CPU Pentium 233 MHz 1.5.1.2 RAM 64 MB 1.5.1.3 Hard Disk 6 GB 1.5.1.4 Monitor 14” 1.5.1.5 Network Interface Card 1.5.1.6 Laser Printer 1.5.2 เครื่องคอมพิวเตอร์เซอร์เวอร์พร้อมอุปกรณ์ต่อพ่วงต่างๆ 1.5.2.1 CPU Pentium 800 MHz 1.5.2.2 RAM 128 MB 1.5.2.3 Hard Disk 20 GB 1.5.2.4 Monitor 14” 1.5.2.5 Network Interface Card 1.5.2.6 สาย UTP ในการเชื่อมต่อ 1.5.3 เครื่องมือในการใช้พัฒนาโปรแกรม 1.5.3.1 โปรแกรมจัดการฐานข้อมูลใช้ Microsoft SQL Server 2000 1.5.3.2 โปรแกรมในการพัฒนาเว็บเพจใช้ Macromedia Dreamweaver MX 1.5.3.3 โปรแกรมระบบปฏิบัติการใช้ MS.Windows 2000 1.5.3.4 โปรแกรมในการจัดการ Web Server ใช้ IIS 5.0 1.5.3.5 โปรแกรมตกแต่งภาพใช้ Adobe Photo Shop 1.5.3.6 โปรแกรมที่ใช้ในการแสดงผลเว็บไซต์ใช้ Internet Explorer 5.5 หรือสูงกว่า 5 1.6 ประโยชน์ที่คาดว่าจะได้รับจากการจัดทำโครงงาน 1.6.1 เพิ่มความสะดวกต่อผู้ใช้งานซึ่งประกอบด้วยนักศึกษา อาจารย์และเจ้าหน้าที่ของ คณะฯ ในการจัดการรวมถึงสืบค้นฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ 1.6.2 มีรายงานข้อมูลของวิทยานิพนธ์ เพื่อให้ผู้ที่ต้องการใช้งานเรียกใช้ได้ บทที่ 2 ทฤษฎีและงานวิจัยที่เกี่ยวข้อง ทฤษฎีและงานวิจัยต่างๆ ที่นำมาใช้ในการศึกษาและพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และ สารนิพนธ์ คณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ แบ่ง ออกเป็น 3 เรื่องหลักๆ ดังต่อไปนี้ 1. ทฤษฎีการพัฒนาโปรแกรมคอมพิวเตอร์ 2. ทฤษฎีความรู้เกี่ยวกับวิทยานิพนธ์และสารนิพนธ์ 3. งานวิจัยที่เกี่ยวข้อง 2.1 ทฤษฎีการพัฒนาโปรแกรมคอมพิวเตอร์ ในการสร้างและพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ คณะเทคโนโลยี สารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ ซึ่งเป็นโปรแกรมที่เกี่ยวข้องกับการ จัดการฐานข้อมูลของวิทยานิพนธ์และสารนิพนธ์ ดังนั้นสิ่งที่จำเป็นจะต้องศึกษาเป็นอันดับแรกและ เป็นสิ่งสำคัญคือ การจัดการระบบฐานข้อมูล โดยที่มีส่วนประกอบอื่นๆ เข้ามาเสริมในการทำงาน อีก เช่น ภาษา ASP ภาษา SQL ฐานข้อมูล MS SQL Server เป็นต้น ทั้งนี้องค์ประกอบต่างๆ จำเป็น ที่จะต้องทำงานควบคู่กันได้อย่างมีประสิทธิภาพ ดังนั้นทฤษฎีในการนำมาประยุกต์ใช้งานที่สำคัญ สามารถแบ่งออกเป็นหัวข้อได้ดังนี้ 2.1.1 ระบบฐานข้อมูล (Database System) 2.1.2 ภาษาทางด้านฐานข้อมูล (Query Language) 2.1.3 ภาษา ASP (Active Server Pages) ทั้งนี้ในการศึกษาแต่ละหัวข้อก็จะมีลักษณะการทำงานในรูปแบบที่แตกต่างกันไป โดยจะ เป็นการผสมผสานกัน เพื่อนำมาประยุกต์ใช้ร่วมกันโดยรายละเอียดของแต่ละหัวข้อมีดังนี้ 2.1.1 ระบบฐานข้อมูล (Database System) “ฐานข้อมูล” หมายถึงแหล่งที่เก็บข้อมูลจำนวนมากๆไว้รวมกัน ในรูปแบบที่จัดไว้เป็นระบบ ระเบียบ เช่น สมุดรายชื่อผู้ใช้โทรศัพท์ หรือทะเบียนรายชื่อนักศึกษา เป็นต้น ที่มีการจัดแบ่งเรียง ตามลำดับของตัวอักษร เพื่อช่วยให้การเปิดหาโดยใช้ชื่อผู้ใช้ หรือชื่อนักศึกษาทำได้สะดวกขึ้น แต่ 7 การเก็บข้อมูลบนกระดาษนั้น ถ้าจะหาข้อมูลบางลักษณะ เช่น หาโดยใช้เบอร์โทรศัพท์หรือใช้ นามสกุลก็ไม่อาจทำได้ เนื่องจากสมุดรายชื่อไม่ได้ถูกจัดเรียงตามเบอร์โทรศัพท์หรือนามสกุลไว้ ก่อน ดังนั้นจึงต้องนำข้อมูลเหล่านั้นมาเก็บไว้ในเครื่องคอมพิวเตอร์ และใช้โปรแกรมการจัดการ ฐานข้อมูล (Database Management System) เป็นเครื่องมือในการจัดเก็บข้อมูล เพื่อให้ค้นหาข้อมูล โดยใช้วิธีการแบบต่างๆ ที่พลิกแพลงได้ตามต้องการ นอกจากนี้การดูแลรักษาข้อมูล เช่น การแก้ไข เพิ่ม ลบข้อมูล ตลอดจนการออกรายงาน ก็จะทำได้ง่ายขึ้นด้วย สำหรับข้อมูลที่เก็บในฐานข้อมูล หนึ่งๆ นั้นก็มักจะเป็นเรื่องเดียวกันหรือเรื่องที่เกี่ยวข้องกัน เช่น รายชื่อลูกค้า รายชื่อสินค้า ใบสั่งซื่อ เหล่านี้ก็อาจเก็บรวมกันในฐานข้อมูลของบริษัทหนึ่ง ในขณะที่รายชื่อครู รายชื่อนักเรียน ตารางสอน ผลการสอบ ก็จะเก็บเป็นอีกฐานข้อมูลหนึ่ง เช่น ของโรงเรียน เป็นต้น (วศิน, 2542: 15) สิ่งที่ต้องพึงระลึกไว้เสมอคือ ฐานข้อมูลมีการเปลี่ยนแปลงตลอดเวลา ทั้งนี้ไม่ได้หมายความ ถึงการเปลี่ยนแปลงตัวข้อมูลที่เก็บภายใน เพราะนั่นเป็นเรื่องปกติ แต่สิ่งอื่นๆ เช่น ลักษณะการ เรียกดูหรือดึงข้อมูลออกมาใช้งาน เงื่อนไขหรือกฎเกณฑ์ที่ระบุความสัมพันธ์ต่างๆ ตลอดจน รูปแบบหรือโครงสร้างของข้อมูลเองก็อาจเปลี่ยนแปลงได้ตลอดเวลา ดังนั้นฐานข้อมูลที่ดีจึงต้อง สามารถดูแลและปรับปรุงแก้ไขได้ง่าย และสอดคล้องกับความต้องการใช้งาน ลักษณะของ ฐานข้อมูลที่ดีคือ 1. สามารถรักษาความถูกต้องข้องข้อมูล (Data Integrity) ไว้ได้โดยตลอด ไม่ยอมให้ข้อมูล ขัดแย้งหรือไม่ตรงกันเข้าไปเก็บในฐานข้อมูลได้ เพราะจะทำให้เกิดปัญหาตามมาอีกมากใน ภายหลัง ซึ่งข้อนี้จะเป็นไปได้ก็ต่อเมื่อการออกแบบนั้นทำอย่างถูกต้อง เพื่อให้ข้อมูลไม่ซ้ำซ้อนกัน โดยอาศัยกระบวนการที่เรียกว่า Normalization 2. มีประสิทธิภาพในการทำงาน สามารถรองรับการเรียกดูและแก้ไขข้อมูลโดยผู้ใช้หลายๆ คนพร้อมกันได้โดยไม่ช้าเกินไป และยังคงความถูกต้องไว้ด้วย 3. มีความยืดหยุ่นสูง สามารถปรับเปลี่ยนให้เหมาะกับลักษณะการใช้งานหรือลักษณะ ข้อมูลที่เปลี่ยนไปได้โดยง่าย 4. ข้อมูลที่เก็บจะต้องเป็นอิสระจากโปรแกรมหรือแอพพลิเคชั่นที่ใช้ ไม่ว่าจะเรียกจาก โปรแกรมใด ถ้าเป็นข้อมูลตัวเดียวกันก็จะต้องถูกต้องตรงกัน และสามารถแก้ไขโครงสร้างข้อมูลได้ โดยมีผลกระทบกับโปรแกรมน้อยที่สุด T a b l e Table คือโครงสร้างที่ใช้เก็บข้อมูลจริงใน Database โดยเก็บในรูปแบบของตารางย่อยๆ ที่มี ความสัมพันธ์กันแต่ละแถวหรือ row ใน Table ซึ่งเรียกว่า “เรคอร์ด” (record) ส่วนแต่ละคอลัมน์ใน 8 แถวจะเรียกว่า “ฟิลด์” (field) โดยแต่ละเรคอร์ดคือข้อมูล 1 ชุดที่มีโครงสร้างซ้ำกัน และแต่ละฟิลด์ก็ คือข้อมูลตัวเดียวกันของแต่ละเรคอร์ดนั่นเอง (วศิน, 2542: 40) ดังตัวอย่างในภาพที่ 2-1 ภาพที่ 2-1 การแสดงข้อมูลใน Table ในมุมมอง Datasheet ดังนั้นจะเห็นได้ว่าใน Table หนึ่งนั้นจะมีโครงสร้างเรคอร์ดซึ่งเก็บข้อมูลเพียงอย่างเดียวหรือ Subject เดียว ซึ่งก็จะเทียบได้กับเอนทิตี้ และแต่ละฟิลด์ของเรคอร์ดก็จะบรรยายคุณสมบัติอย่างใด อย่างหนึ่งของเรคอร์ดเท่านั้น หรือเทียบได้กับแอตทริบิวต์ของเอนทิตี้นั่นเอง ดังนั้นหากกำหนด เอนทิตี้และแอตทริบิวต์ได้ถูกต้องตั้งแต่แรกก็จะสามารถแปลงไปสร้างเป็น Table ได้ทันทีโดยตรง เอนทิตี้ (Entity) และแอตทริบิวต์ (Attribute) “เอนทิตี้” (Entity) อาจหมายถึงสิ่งของใดๆ ก็ได้ที่เราจะอ้างอิงถึงในข้อมูล ส่วน “แอตทริ บิวต์” (Attribute) คือคุณลักษณะหรือรายละเอียดของแต่ละเอนทิตี้นั้นอีกทีหนึ่ง โดยแต่ละเอนทิตี้ จะมีได้กลายแอตทริบิวต์ ตัวอย่างเช่น “บัตรประชาชน” เป็นเอนทิตี้โดยมี ชื่อ ที่อยู่ วันหมดอายุ เป็น แอตทริบิวต์ของบัตร ทั้งนี้เอนทิตี้จะเป็นตัวบ่งบอกถึงเนื้อหา (Subject) ของเรื่องที่เราจะทำ Subject อาจหมายถึงบุคคล สิ่งของ เหตุการณ์หรืออะไรก็ได้ที่เราต้องการเก็บข้อมูล ในทางปฏิบัติจะทำการแปลงเอนทิตี้ที่ได้จากการออกแบบฐานข้อมูลไปเป็นเรคอร์ดใน Table และแปลงแอตทริบิวต์ไปเป็นฟิลด์ สำหรับรูปภาพที่ใช้แทนเอนทิตี้ประเภทนี้ ได้แก่ รูปภาพ สี่เหลี่ยมผืนผ้าโดยมีชื่อของเอนทิตี้นั้นอยู่ภายใน ดังภาพที่ 2-2 ภาพที่ 2-2 รูปแบบสัญลักษณ์ของเอนทิตี้ Customers Table ชื่อ Customers Field Record Customers 9 ความสัมพันธ์ (Relation) ความสัมพันธ์นี้เป็นหัวใจหลักของฐานข้อมูลแบบ Relational กล่าวคือเป็นสิ่งที่เชื่อมโยง ระหว่างข้อมูลใน Table ต่างๆ เข้าด้วยกัน โดยอาศัยฟิลด์ที่มีค่าตรงกันในระหว่าง Table เหล่านั้น เป็นตัวเชื่อม หรือที่เรียกว่า “คีย์” (Key) นั่นเอง ความสัมพันธ์ระหว่างเรคอร์ดในแต่ละ Table อาจ แบ่งได้เป็น 3 ลักษณะคือ One-To-Many เป็นความสัมพันธ์แบบที่ฟิลด์ในเรคอร์ดใดๆ ของ Table หนึ่งมีค่าตรงกับ ฟิลด์ของหลายๆ เรคอร์ดใน Table อื่นๆ เช่นใน Table Customer มีรหัสลูกค้าซึ่งตรงกับใน Table Order หลายๆ ใบ (เพราะลูกค้าคนหนึ่งสั่งของได้หลายครั้ง) แต่ในทางกลับกันในแต่ละ Order จะ เป็นของลูกค้าเพียงรายเดียวเท่านั้น กล่าวคือรหัสลูกค้าในแต่ละ Order จะตรงกับเรคอร์ดเดียว เท่านั้นใน Customer (เพราะ Order 1 ใบย่อมเป็นของลูกค้าเพียงรายเดียว) ความสัมพันธ์แบบนี้เป็น แบบที่ปกติธรรมดาและพบได้มากที่สุดในการใช้งานฐานข้อมูล ภาพที่ 2-3 แสดงความสัมพันธ์แบบ One-To-Many One-To-One เป็นความสัมพันธ์แบบที่ฟิลด์ในเรคอร์ดใดๆ ของ Table หนึ่งมีค่าตรงกับฟิลด์ ของเรคอร์ดเพียงเรคอร์ดเดียวเท่านั้นใน Table อื่นๆ เช่น ใน Table Employee มีรหัสพนักงานซึ่ง ตรงกับใน Table Personal_Info ซึ่งความจริงแล้วอาจรวมเป็น Table เดียวกันไปเลยก็ได้ แต่ใน บางครั้งก็อาจต้องแยกเป็นคนละ Table กันก็ด้วยเหตุผลอื่น เช่น ใน Personal_Info อาจมีข้อมูล ขนาดใหญ่ เช่น รูปถ่ายและแผนที่บ้านของพนักงานแต่ละคน ซึ่งบางคนก็ยังให้มาไม่ครบหรือไม่ อยากให้ ข้อมูลเหล่านี้หากเก็บไว้ใน Table Employee ด้วยก็จะกลายเป็น Table ขนาดใหญ่มาก แต่ หากแยกเป็นคนละ Table กันก็อาจเรียกใช้ข้อมูลได้เร็วกว่า หรือบางกรณีอาจเป็นเพราะเพื่อการ รักษาความลับ เช่น ใน Personal_Info มีข้อมูลส่วนตัว เช่น เงินเดือน จึงต้องแยกเป็นคนละส่วน และควบคุมให้มีเฉพาะบางคนเท่านั้นที่จะเข้าใช้ข้อมูลใน Table นี้ได้ ในขณะที่ทุกคนสามารถ เข้าถึงข้อมูลทั่วๆ ไปใน Employee เช่น ชื่อ ตำแหน่ง หมายเลขโทรศัพท์ภายในได้ Customers 1 Make M Order NAME ADDRESS ORDER NO AMOUNT 10 ภาพที่ 2-4 แสดงความสัมพันธ์แบบ One-To-One Many-To-Many เป็นความสัมพันธ์แบบที่ฟิลด์ในเรคอร์ดใดๆ ของ Table หนึ่งมีค่าตรงกับ ฟิลด์ของหลายๆ เรคอร์ดใน Table อื่นๆ และในทางกลับกันก็เป็นจริงด้วย ความสัมพันธ์แบบนี้พบ ได้ไม่มากนัก ตัวอย่างเช่นในการเก็บข้อมูลรายชื่อพนักงานขายกับลูกค้า พนักงานขายคนหนึ่งอาจ ดูแลลูกค้าหลายราย และในทางกลับกัน ลูกค้าคนหนึ่งหากสั่งซื้อสินค้าจากหลายแผนกในบริษัท ก็ อาจมีการติดต่อกับพนักงานขายหลายคนได้ ซึ่งความสัมพันธ์ในลักษณะนี้จะสามารถแปลงให้เป็น แบบ One-To-Many ที่เชื่อมกันสองทอดได้ในขั้นตอนของการทำ Normalization ภาพที่ 2-5 แสดงความสัมพันธ์แบบ Many-To-Many คีย์ (Key) ตามปกติในแต่ละเรคอร์ดใน Table จะต้องมี “คีย์” (Key) หรือข้อมูลที่จะเป็นกุญแจสำหรับ เข้าถึงหรือบ่งชี้ว่าเรคอร์ดใดเป็นเรคอร์ดใด หรือต่างจากเรคอร์ดอื่นๆ อย่างไร เหมือนกับที่คนทุก คนต้องมีชื่อและนามสกุลที่แตกต่างกัน เวลาอ้างอิงจะได้รู้ว่าเป็นใคร เพราะคีย์นี้เองที่จะนำไปใช้ใน การอ้างอิงและกำหนดความสัมพันธ์กับ Table อื่นๆในภายหลัง ถ้าไม่กำหนดไว้ Table นี้ก็อาจไม่ สามารถนำไปเชื่อมโยงกับ Table อื่นๆ ได้เลย ซึ่งคีย์ที่ว่านี้มีชื่อเต็มๆ ว่า Primary key หรือคีย์หลัก ส่วนในกรณีที่ไม่มีฟิลด์ใดของข้อมูลสามารถนำมาใช้เป็นคีย์ได้เลย ก็จะต้องสร้างขึ้นหรือ กำหนดให้ใหม่ทั้งนี้ Primary key จะต้องเป็นเอกลักษณ์ของแต่ละเรคอร์ดโดยไม่ซ้ำกันเลยด้วย (unique) Employee 1 1 Personal_Info EMP_ID EMP_NAME PER_ID SALARY Customers M ORDER M SALE NAME ADDRESS SALE_ID PRODUCT BELONG_TO 11 Primary key เป็นคีย์หลักที่ใช้ในการจัดเรียงและแยกแยะข้อมูลแต่ละเรคอร์ดใน Table นั้น ออกจากกัน Primary key นี้จะต้องมีค่าในทุกเรคอร์ด จะปล่อยว่างให้ไม่มีค่า (หรือเรียกว่า Null) ไม่ได้ และจะต้องไม่ซ้ำกันเลย (unique) ด้วย ซึ่งอาจเลือกฟิลด์หนึ่งหรือกำหนดขึ้นมาใหม่ก็ได้ Candidate key ในกรณีที่มีหลายฟิลด์ซึ่งมีคุณสมบัติครบถ้วนจนสามารถนำมาใช้เป็น Primary key ได้ จะเรียกฟิลด์เหล่านั้นแต่ละตัวว่าเป็น Candidate key คือเป็นคู่แข่งที่สามารถเลือกมา เป็น Primary key ได้เหมือนกัน Composite key (หรือเรียกอีกอย่างหนึ่งว่า Compound key) เป็นการนำเอาหลายๆฟิลด์มา รวมกันเป็นคีย์เพื่อให้มีคุณสมบัติครบถ้วน คือไม่ซ้ำกันและไม่เป็น Null ใช้ในกรณีที่หากเลือกเพียง ฟิลด์ใดฟิลด์หนึ่งมาเป็นคีย์แล้วยังมีโอกาสซ้ำกันหรือเป็น Null ได้ Foreign key เป็นฟิลด์ที่มีเก็บอยู่ในหลาย Table จึงสามารถใช้เป็นคีย์ในการเชื่อมโยงข้อมูล ระหว่างหลาย Table เข้าด้วยกันได้ Secondary key หรือดัชนี (Index) เป็นคีย์ที่ใช้แยกแยะข้อมูลเช่นกัน แต่เนื่องจากมี Primary key ที่ไม่ซ้ำกันอยู่แล้ว Secondary key นี้จึงอาจซ้ำกันได้ ทั้งนี้ในการเรียกใช้ข้อมูลโดยทั่วไปมักจะ ต้องมีการจัดเรียงตามลำดับเพื่อความสะดวก แต่หากมี Index มากๆก็อาจทำให้การแก้ไขแต่ละเร คอร์ดช้าลงมาก ดังนั้นในทางปฏิบัติจึงควรจำกัดจำนวนฟิลด์ที่เป็น Index ไว้เท่าที่จำเป็นต้องเรียกดู บ่อยจริงๆ เช่น 2-3 ฟิลด์เท่านั้น ขั้นตอนการออกแบบฐานข้อมูล ขั้นที่ 1 เก็บรวบรวมรายละเอียด ขั้นตอนนี้เป็นการรวบรวมรายละเอียดของงานที่จะเก็บและเรียกใช้ข้อมูล เช่น 1. เป็นข้อมูลเกี่ยวกับ subject อะไรบ้าง 2. มีลักษณะของข้อมูลแต่ละตัวเป็นอย่างไร เป็นเลขกี่หลัก กี่ตัวอักษร มีค่าช่วงใด 3. วิธีการหรือความต้องการใช้งานข้อมูลเป็นแบบใด ใครใช้บ้างและบ่อยเพียงใด 4. มีความสัมพันธ์กันระหว่าง subject หรือ entity ต่างๆแค่ไหน อะไรเป็นตัวเชื่อม 5. อื่นๆ จากนั้นให้บันทึกรายละเอียดเหล่านั้นเป็นลายลักษณ์อักษร (หรือถ้ามีแผนภูมิการ ทำงานประกอบด้วยก็ยิ่งดี) ไว้เพื่อใช้ในขั้นตอนต่อๆไป ขั้นที่ 2 กำหนดโครงสร้าง Table ขั้นตอนนี้เป็นการทดลองสร้าง Table ขึ้นมาเป็นต้นแบบ เพื่อจะนำไปใช้ในขั้นต่อๆไป ผลที่ได้จากขั้นนี้จะเป็นชุดของเอนทิตี้และแอตทริบิวต์ทั้งหมดที่มีในฐานข้อมูล (หรือโครงสร้าง 12 ของเรคอร์ดและฟิลด์ใน Table ต่างๆที่น่าจะใช้ได้) เช่นในระบบงานขายก็จะมีเอกสาร เช่น ใบสั่ง ซื้อ ใบส่งสินค้า ใบแจ้งหนี้ เหล่านี้ล้วนสามารถกำหนดให้เป็น Table ใหม่ได้ ขั้นที่ 3 กำหนดคีย์ ขั้นตอนนี้เป็นการกำหนดคีย์แบบต่างๆ เช่น Primary key, Composite key, Secondary key และอื่นๆให้กับแต่ละ Table ที่ได้จากขั้นที่ 2 ตามความเหมาะสม เพื่อนำไปใช้สร้าง ความสัมพันธ์กับ Table อื่นๆต่อไปเช่นใน Table Products อาจกำหนดรหัสสินค้าขึ้นมาใหม่เพื่อใช้ เป็น Primary key ในขณะที่ฟิลด์อื่น เช่น barcode อาจใช้เป็น Candidate key ได้เช่นกัน ขั้นที่ 4 กำหนดความสัมพันธ์ ขั้นตอนนี้เป็นการกำหนดความสัมพันธ์ระหว่าง Table ในแบบต่างๆ เช่น One-To- Many, One-To-One หรือ Many-To-Many โดยอาศัยคีย์ที่ตั้งไว้เป็นตัวเชื่อม ขั้นที่ 5 ปรับรูปแบบข้อมูล (Normalization) เป็นการนำเอาเอนทิตี้และแอตทริบิวต์ที่ได้ (หรือโครงร่างของเรคอร์ดและฟิลด์ที่ ออกแบบไว้) มาปรับรูปแบบและลดความซ้ำซ้อนเพื่อให้ถูกต้องตามหลักการ จะได้นำฐานข้อมูลไป ใช้อย่างมีประสิทธิภาพทั้งนี้โดยอาศัยกระบวนการ Normalization เพื่อลดความซ้ำซ้อนกันของ ข้อมูล ซึ่งหากปล่อยโครงสร้างข้อมูลออกไปตามที่ออกแบบในขั้นต้นมาเลย ก็อาจเกิดปัญหา เนื่องจากความซ้ำซ้อนหลายประการเช่น 1. เปลืองเนื้อที่เก็บข้อมูลโดยไม่จำเป็น 2. ข้อมูลในฟิลด์ที่เก็บซ้ำกันนั้นมีโอกาสผิดพลาดหรือไม่ตรงกัน 3. การกำหนดความสัมพันธ์กับ Table อื่นทำได้ยาก 2.1.2 ภาษาทางด้านฐานข้อมูล (Query Language) ผลิตภัณฑ์ทางด้านฐานข้อมูลที่มีโครงสร้างแบบ Relational จำเป็นจะต้องมีภาษาทาง ฐานข้อมูลหรือที่เรียกว่า Query Language โดยแต่ละภาษาถูกพัฒนาขึ้นจากแนวคิดที่แตกต่างกัน Structured Query Language เป็นภาษาที่ใช้จัดการทางด้านฐานข้อมูลที่ นิยมใช้กันมากที่สุดโดยมัก ถูกเรียกย่อๆ ว่า “SQL” สำหรับคำสั่งต่างๆของภาษา SQL สามารถแบ่งตามลักษณะการใช้งาน ออกเป็น 3 กลุ่มดังนี้ (กิตติและจำลอง, 2544: 245) 2.1.2.1 กลุ่มคำสั่ง Data Definition Language (DDL) เป็นกลุ่มคำสั่งที่ใช้สำหรับ สร้างฐานข้อมูล หรือใช้กำหนดโครงสร้างให้กับ Relation ภายในฐานข้อมูล เช่น การเพิ่ม เปลี่ยนแปลง ลบ แอตทริบิวต์ของ Relation 13 2.1.2.2 กลุ่มคำสั่ง Data Manipulation Language (DML) เป็นกลุ่มคำสั่งที่ใช้สำหรับ เพิ่ม ลบ หรือเปลี่ยนแปลงข้อมูลในฐานข้อมูล 2.1.2.3 กลุ่มคำสั่ง Data Query Language เป็นกลุ่มคำสั่ง DML ประเภทหนึ่งที่ใช้ใน การเลือกข้อมูลจาก Relation ขึ้นมาแสดงตามรูปแบบที่ต้องการ สรุปได้ว่า Structured Query Language (SQL) คือเซตของชุดคำสั่งที่ใช้ในการทำงานกับ ระบบฐานข้อมูลซึ่งช่วยให้ผู้พัฒนาหรือผู้ใช้สามารถทำในสิ่งต่อไปนี้ได้ (กิตติและไชยรัตน์, 2543: 49) 1. อ่านข้อมูลจากตารางหนึ่ง (Table) หรือหลายตารางจากฐานข้อมูลตัวหนึ่งหรือมากกว่า นั้น 2. จัดการกับข้อมูลในตารางโดยการเพิ่ม ลบ หรืออัปเดตเรคอร์ด 3. ทราบข้อมูลเชิงสรุปเกี่ยวกับข้อมูลในตาราง เช่น จำนวนเรคอร์ดทั้งหมด ค่าต่ำสุด ค่าสูงสุด และค่าเฉลี่ยของข้อมูล 4. สร้าง เปลี่ยนแปลง ลบตารางในฐานข้อมูล 5. สร้าง หรือลบอินเด็กซ์ (Index) ของตาราง ด้วยการใช้ SQL เพียงไม่กี่บรรทัดช่วยให้ผู้พัฒนาสามารถทำงานกับฐานข้อมูลได้โดยสะดวก แทนที่จะต้องใช้การเขียนโปรแกรมหลายสิบบรรทัด เพื่อการทำงานกับฐานข้อมูล SQL จะใช้ใน การสร้างคิวรี่ (Query) ซึ่งเป็นคำสั่งที่ใช้ค้นหาข้อมูลในตารางใดๆ หรือหลายตาราง ตามเงื่อนไขที่ กำหนดได้ รวมทั้งการระบุฟิลด์ที่ต้องการอ่านจากตารางที่เก็บฟิลด์นั้นไว้ ขอบเขตหรือช่วงของเร คอร์ดที่ต้องการใช้งานและรูปแบบของการเรียงลำดับ ในการแสดงผลของข้อมูลได้อีกด้วย ส่วนประกอบของ SQL ชุดคำสั่ง SQL ประกอบด้วยสองส่วนหลักๆ ดังนี้ 1. Manipulative statement ใช้ในการระบุการทำงานของคิวรีเอ็นจินของฐานข้อมูล เช่น SELECT, INSERT, UPDATE หรือ DELETE ตารางที่ 2-1 ลักษณะการใช้งานของ Manipulative statement Statement Function DELETE FROM ลบเรคอร์ดออกจากตาราง INSERT INTO เพิ่มกลุ่มของเรคอร์ดเข้าสู่ตาราง SELECT อ่านกลุ่มของข้อมูลจากตาราง UPDATE เปลี่ยนแปลงค่าของฟิลด์ในตาราง 14 2. Options declarations ใช้เกี่ยวกับการสร้างเงื่อนไข การจัดกลุ่มข้อมูล หรือการเรียงลำดับ ของข้อมูลที่จะใช้ในการทำงาน เช่น WHERE, GROUP BY และ ORDER BY ลักษณะการใช้งานจะเรียงลำดับดังนี้คือ Manipulative statement [options secta rations] ในขณะที่ใช้งาน Manipulative statement จะเป็นการระบุสิ่งที่ต้องทำกับเอ็นจินของ ฐานข้อมูล ในส่วนของ Options จะทำหน้าที่ในการระบุฟิลด์และเรคอร์ดที่จะใช้ทำงาน ซึ่งจากการ ใช้งานสองส่วนนี้ของ SQL สามารถสร้างคิวรีในการทำงานกับฐานข้อมูลได้อย่างหลากหลาย 2.1.3 ภาษา ASP (Active Server Pages) ความรู้พื้นฐานที่ควรทราบก่อน เป็นเรื่องเกี่ยวกับ HTML (Hypertext Markup Language) ที่ ทำหน้าที่เป็น Script ที่ใช้สร้าง Home Page บน Web เป็น Script ที่มีความสามารถในการเชื่อมโยง ข้อมูลใน Computer ระหว่าง Computer ในเครือข่าย และระหว่างเครือข่ายใน Internet โดยอ้างอิง จาก URL (Uniform Resource Locators) ด้วยโปรโตคอล Hypertext Transfer Protocol (HTTP) HTML เป็น Script ที่เรียงลำดับ Tag (คำสั่ง) ไว้เป็นไฟล์ๆหนึ่ง เพื่อเป็นตัวบอก Browser ว่า จะต้องแสดงอะไร ลักษณะอย่างไร Tag จะประกอบด้วยเครื่องหมาย “<” ตามด้วยชื่อ Tag และเครื่องหมาย “>” ซึ่งโดยทั่วไป Tag จะมีเป็นคู่ เพื่อเปิดและปิดคำสั่งโดย Tag เปิดจะมีลักษณะดังข้างต้น แต่ Tag ปิดจะเพิ่ม Slash (/) หน้า Tag เท่านั้น ตัวอย่างเช่น คำสั่ง Heading
ศึกษาและโหลดฟรีเป็นตัวอย่างเกี่ยวกับงานวิจัย all free download research
วันอาทิตย์ที่ 19 เมษายน พ.ศ. 2552
ระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ คณะเทคโนโลยีสารสนเทศ สจพ.
บทที่ 1 บทนำ 1.1 ความเป็นมาและความสำคัญของปัญหา วิทยานิพนธ์ (Thesis) และสารนิพนธ์ (Master Project) เป็นรายงานผลของการค้นคว้าวิจัย ซึ่ง เป็นส่วนหนึ่งของการศึกษาในระดับปริญญามหาบัณฑิต หรือปริญญาดุษฎีบัณฑิต โดยในการจัดทำนักศึกษาจะต้องเลือกหัวข้อเรื่องที่ต้องการทำด้วยตนเอง และจะต้องทำการศึกษาค้นคว้าหาข้อมูลที่ เกี่ยวข้องอย่างละเอียดลึกซึ้ง มีการกำหนดวัตถุประสงค์ของการศึกษาค้นคว้า การตั้งสมมติฐาน การ ค้นคว้าเอกสารหลักฐานเพื่อมาพิสูจน์หรือสนับสนุนสมมติฐาน มีการสรุปผลของการศึกษาค้นคว้า และการอภิปรายผล คณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ เป็นสถานศึกษา ที่เปิดสอนในระดับปริญญามหาบัณฑิต โดยสถาบันฯได้ผลิตบัณฑิตที่มีความรู้ความสามารถ ออกมาสู่สังคมเป็นจำนวนมาก ทั้งนี้ระหว่างที่ได้ทำการศึกษาอยู่ที่สถาบันฯ นั้น นักศึกษาแต่ละคน จะดำเนินการจัดทำวิทยานิพนธ์หรือสารนิพนธ์ของตนเองขึ้น เพื่อศึกษาหาความรู้และเป็นส่วนหนึ่ง ในการศึกษาจากทางสถาบันฯ โดยจะมีอาจารย์ที่ปรึกษาในการจัดทำวิทยานิพนธ์และสารนิพนธ์ เป็นผู้ให้คำปรึกษาระหว่างเริ่มจัดทำจนสำเร็จเป็นรูปเล่ม ในแต่ละปีจำนวนของวิทยานิพนธ์และสารนิพนธ์ที่นักศึกษาได้จัดทำส่งให้กับทางคณะฯ ได้ เพิ่มจำนวนขึ้นมาทุกปี การจัดการระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ของทางคณะฯ เป็น สิ่งที่จำเป็นเพื่อรองรับกับจำนวนวิทยานิพนธ์และสารนิพนธ์ที่มีอยู่และที่จะเพิ่มมาอีกในอนาคต ใน ปัจจุบันทางคณะฯ ยังขาดระบบที่มีประสิทธิภาพมาควบคุมการจัดการต่างๆ เกี่ยวกับวิทยานิพนธ์ และสารนิพนธ์ เช่น การตรวจสอบจำนวนเรื่องของวิทยานิพนธ์และสารนิพนธ์ จำนวนหัวเรื่องของ วิทยานิพนธ์และสารนิพนธ์ที่อาจารย์แต่ละท่านเป็นที่ปรึกษา ข้อมูลและรายงานต่างๆ เป็นต้น เพื่อ นำมารองรับและให้บริการกับทั้งทางอาจารย์ เจ้าหน้าที่ ตลอดจนนักศึกษาที่จะมาใช้บริการ ซึ่ง สามารถแบ่งกลุ่มผู้ใช้ออกเป็น 3 กลุ่มโดยมีปัญหาในการปฏิบัติงานที่เกิดขึ้นดังนี้ กลุ่มที่ 1 เจ้าหน้าที่ของคณะฯ 1. การจัดเก็บเรื่องวิทยานิพนธ์และสารนิพนธ์ไม่มีการลงรายละเอียดในส่วนของ ความก้าวหน้าของเรื่องที่มีอยู่ว่าถึงขั้นตอนใดแล้ว 2 2. การแบ่งแยกรูปแบบของวิทยานิพนธ์และสารนิพนธ์ไม่ละเอียด โดยการจัดเก็บข้อมูล เบื้องต้นที่สำคัญของวิทยานิพนธ์และสารนิพนธ์แต่ละเรื่องมีน้อยเกินไป กลุ่มที่ 2 อาจารย์ที่ปรึกษาหัวข้อวิทยานิพนธ์และสารนิพนธ์ 1. ไม่มีระบบจัดเก็บข้อมูลในส่วนของจำนวนเรื่องที่ได้รับเป็นที่ปรึกษา ทำให้ต้องจดจำด้วยตนเอง ซึ่งทำให้เกิดข้อผิดพลาดได้ง่าย 2. ไม่มีระบบติดตามความก้าวหน้าของวิทยานิพนธ์และสารนิพนธ์ที่ได้รับเป็นที่ปรึกษา กลุ่มที่ 3 นักศึกษา 1. การสืบค้นวิทยานิพนธ์และสารนิพนธ์ที่มีอยู่นั้นข้อมูลที่ได้ไม่ชัดเจน โดยได้รายละเอียด น้อยเกินไป รวมถึงอาจเกิดความผิดพลาดทำให้เรื่องของวิทยานิพนธ์และสารนิพนธ์มีเนื้อหาในการ จัดทำซ้ำกัน 2. ขาดข้อมูลหัวข้อที่นักศึกษาท่านอื่นส่งให้ทางคณะกรรมการกลั่นกรองแล้ว 3. ขาดข้อมูลว่าอาจารย์แต่ละท่านรับเป็นที่ปรึกษาแล้วจำนวนกี่เรื่อง จากปัญหาที่เกิดขึ้นดังกล่าว การพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ เพื่อให้ ตอบสนองกับการทำงานของผู้ใช้ โดยสามารถที่จะแก้ไขปัญหาที่เกิดขึ้นและช่วยในการทำวิทยานิพนธ์และสารนิพนธ์ของนักศึกษาในเบื้องต้นได้ 1.2 วัตถุประสงค์ของโครงงาน 1.2.1 เพื่อพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ คณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ 1.2.2 เพื่อประเมินประสิทธิภาพของระบบที่พัฒนาขึ้น 1.3 ขอบเขตของโครงงาน ระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์จะถูกพัฒนาขึ้นเป็น Web Application เพื่อ นำมาใช้ภายในคณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ และมี การสร้าง Web Application บนเครือข่ายอินเตอร์เน็ตเพื่อให้บริการกับนักศึกษาและอาจารย์ที่ ปรึกษาวิทยานิพนธ์และสารนิพนธ์ ประกอบด้วยรายละเอียดของระบบแยกเป็น 2 ส่วน ดังนี้ 3 1.3.1 ส่วนของเจ้าหน้าที่ของคณะฯ 1.3.1.1 สามารถเพิ่ม ปรับปรุงแก้ไขข้อมูลของวิทยานิพนธ์และสารนิพนธ์ได้ดังนี้ 1.3.1.1.1 ชื่อเรื่องของวิทยานิพนธ์และสารนิพนธ์ 1.3.1.1.2 รูปแบบของหัวข้อโครงการ 1.3.1.1.2.1 วิทยานิพนธ์ 1.3.1.1.2.2 สารนิพนธ์ 1.3.1.1.3 งานวิจัย 1.3.1.1.3.1 คุณลักษณะของวิทยานิพนธ์และสารนิพนธ์ 1.3.1.1.3.2 โปรแกรมพร้อมรายละเอียดเบื้องต้น 1.3.1.1.4 ระบบงานพร้อมรายละเอียดเบื้องต้น 1.3.1.1.5 ชื่อของนักศึกษาผู้จัดทำ 1.3.1.1.6 สาขาที่เรียน 1.3.1.1.7 อาจารย์ที่ปรึกษา 1.3.1.1.8 ปีที่จัดทำ 1.3.1.1.9 บทคัดย่อวิทยานิพนธ์และสารนิพนธ์ 1.3.1.2 สามารถบันทึกประวัติความก้าวหน้าของวิทยานิพนธ์และสารนิพนธ์ได้ 1.3.1.2.1 การยื่นเสนอโครงร่างวิทยานิพนธ์และสารนิพนธ์สำหรับ คณะกรรมการกลั่นกรอง 1.3.1.2.2 การเสนอโครงการวิทยานิพนธ์และสารนิพนธ์และขออนุมัติ แต่งตั้งคณะกรรมการที่ปรึกษา 1.3.1.2.3 การสอบก้าวหน้าวิทยานิพนธ์ 1.3.1.2.4 การสอบป้องกันสารนิพนธ์ 1.3.1.3 มีรายงานในการเรียกดูข้อมูลทั้งหมดได้ 1.3.2 ส่วนของนักศึกษาและอาจารย์ที่ปรึกษา 1.3.2.1 การใช้งานผ่านเว็บไซต์ 1.3.2.2 สามารถสืบค้นรายละเอียดข้อมูลวิทยานิพนธ์และสารนิพนธ์ที่มีอยู่ได้ 1.3.2.3 สามารถแสดงถึงความก้าวหน้าของวิทยานิพนธ์และสารนิพนธ์แต่ละเรื่อง 1.3.2.4 สามารถแสดงจำนวนเรื่องของวิทยานิพนธ์และสารนิพนธ์ที่อาจารย์แต่ละ ท่านรับเป็นที่ปรึกษาได้ 1.3.2.5 สามารถพิมพ์รายงานข้อมูลที่มีอยู่ได้ 4 1.4 คำจำกัดความและนิยามศัพท์เฉพาะในโครงงาน 1.4.1 สถาบันฯ หมายถึงสถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ 1.4.2 คณะฯ หมายถึงคณะเทคโนโลยีสารสนเทศ 1.4.3 นักศึกษา หมายถึงนักศึกษาคณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอม เกล้าพระนครเหนือ 1.5 เครื่องมือที่ใช้ในการดำเนินงาน 1.5.1 เครื่องคอมพิวเตอร์ส่วนบุคคลพร้อมอุปกรณ์ต่อพ่วงต่างๆ 1.5.1.1 CPU Pentium 233 MHz 1.5.1.2 RAM 64 MB 1.5.1.3 Hard Disk 6 GB 1.5.1.4 Monitor 14” 1.5.1.5 Network Interface Card 1.5.1.6 Laser Printer 1.5.2 เครื่องคอมพิวเตอร์เซอร์เวอร์พร้อมอุปกรณ์ต่อพ่วงต่างๆ 1.5.2.1 CPU Pentium 800 MHz 1.5.2.2 RAM 128 MB 1.5.2.3 Hard Disk 20 GB 1.5.2.4 Monitor 14” 1.5.2.5 Network Interface Card 1.5.2.6 สาย UTP ในการเชื่อมต่อ 1.5.3 เครื่องมือในการใช้พัฒนาโปรแกรม 1.5.3.1 โปรแกรมจัดการฐานข้อมูลใช้ Microsoft SQL Server 2000 1.5.3.2 โปรแกรมในการพัฒนาเว็บเพจใช้ Macromedia Dreamweaver MX 1.5.3.3 โปรแกรมระบบปฏิบัติการใช้ MS.Windows 2000 1.5.3.4 โปรแกรมในการจัดการ Web Server ใช้ IIS 5.0 1.5.3.5 โปรแกรมตกแต่งภาพใช้ Adobe Photo Shop 1.5.3.6 โปรแกรมที่ใช้ในการแสดงผลเว็บไซต์ใช้ Internet Explorer 5.5 หรือสูงกว่า 5 1.6 ประโยชน์ที่คาดว่าจะได้รับจากการจัดทำโครงงาน 1.6.1 เพิ่มความสะดวกต่อผู้ใช้งานซึ่งประกอบด้วยนักศึกษา อาจารย์และเจ้าหน้าที่ของ คณะฯ ในการจัดการรวมถึงสืบค้นฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ 1.6.2 มีรายงานข้อมูลของวิทยานิพนธ์ เพื่อให้ผู้ที่ต้องการใช้งานเรียกใช้ได้ บทที่ 2 ทฤษฎีและงานวิจัยที่เกี่ยวข้อง ทฤษฎีและงานวิจัยต่างๆ ที่นำมาใช้ในการศึกษาและพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และ สารนิพนธ์ คณะเทคโนโลยีสารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ แบ่ง ออกเป็น 3 เรื่องหลักๆ ดังต่อไปนี้ 1. ทฤษฎีการพัฒนาโปรแกรมคอมพิวเตอร์ 2. ทฤษฎีความรู้เกี่ยวกับวิทยานิพนธ์และสารนิพนธ์ 3. งานวิจัยที่เกี่ยวข้อง 2.1 ทฤษฎีการพัฒนาโปรแกรมคอมพิวเตอร์ ในการสร้างและพัฒนาระบบฐานข้อมูลวิทยานิพนธ์และสารนิพนธ์ คณะเทคโนโลยี สารสนเทศ สถาบันเทคโนโลยีพระจอมเกล้าพระนครเหนือ ซึ่งเป็นโปรแกรมที่เกี่ยวข้องกับการ จัดการฐานข้อมูลของวิทยานิพนธ์และสารนิพนธ์ ดังนั้นสิ่งที่จำเป็นจะต้องศึกษาเป็นอันดับแรกและ เป็นสิ่งสำคัญคือ การจัดการระบบฐานข้อมูล โดยที่มีส่วนประกอบอื่นๆ เข้ามาเสริมในการทำงาน อีก เช่น ภาษา ASP ภาษา SQL ฐานข้อมูล MS SQL Server เป็นต้น ทั้งนี้องค์ประกอบต่างๆ จำเป็น ที่จะต้องทำงานควบคู่กันได้อย่างมีประสิทธิภาพ ดังนั้นทฤษฎีในการนำมาประยุกต์ใช้งานที่สำคัญ สามารถแบ่งออกเป็นหัวข้อได้ดังนี้ 2.1.1 ระบบฐานข้อมูล (Database System) 2.1.2 ภาษาทางด้านฐานข้อมูล (Query Language) 2.1.3 ภาษา ASP (Active Server Pages) ทั้งนี้ในการศึกษาแต่ละหัวข้อก็จะมีลักษณะการทำงานในรูปแบบที่แตกต่างกันไป โดยจะ เป็นการผสมผสานกัน เพื่อนำมาประยุกต์ใช้ร่วมกันโดยรายละเอียดของแต่ละหัวข้อมีดังนี้ 2.1.1 ระบบฐานข้อมูล (Database System) “ฐานข้อมูล” หมายถึงแหล่งที่เก็บข้อมูลจำนวนมากๆไว้รวมกัน ในรูปแบบที่จัดไว้เป็นระบบ ระเบียบ เช่น สมุดรายชื่อผู้ใช้โทรศัพท์ หรือทะเบียนรายชื่อนักศึกษา เป็นต้น ที่มีการจัดแบ่งเรียง ตามลำดับของตัวอักษร เพื่อช่วยให้การเปิดหาโดยใช้ชื่อผู้ใช้ หรือชื่อนักศึกษาทำได้สะดวกขึ้น แต่ 7 การเก็บข้อมูลบนกระดาษนั้น ถ้าจะหาข้อมูลบางลักษณะ เช่น หาโดยใช้เบอร์โทรศัพท์หรือใช้ นามสกุลก็ไม่อาจทำได้ เนื่องจากสมุดรายชื่อไม่ได้ถูกจัดเรียงตามเบอร์โทรศัพท์หรือนามสกุลไว้ ก่อน ดังนั้นจึงต้องนำข้อมูลเหล่านั้นมาเก็บไว้ในเครื่องคอมพิวเตอร์ และใช้โปรแกรมการจัดการ ฐานข้อมูล (Database Management System) เป็นเครื่องมือในการจัดเก็บข้อมูล เพื่อให้ค้นหาข้อมูล โดยใช้วิธีการแบบต่างๆ ที่พลิกแพลงได้ตามต้องการ นอกจากนี้การดูแลรักษาข้อมูล เช่น การแก้ไข เพิ่ม ลบข้อมูล ตลอดจนการออกรายงาน ก็จะทำได้ง่ายขึ้นด้วย สำหรับข้อมูลที่เก็บในฐานข้อมูล หนึ่งๆ นั้นก็มักจะเป็นเรื่องเดียวกันหรือเรื่องที่เกี่ยวข้องกัน เช่น รายชื่อลูกค้า รายชื่อสินค้า ใบสั่งซื่อ เหล่านี้ก็อาจเก็บรวมกันในฐานข้อมูลของบริษัทหนึ่ง ในขณะที่รายชื่อครู รายชื่อนักเรียน ตารางสอน ผลการสอบ ก็จะเก็บเป็นอีกฐานข้อมูลหนึ่ง เช่น ของโรงเรียน เป็นต้น (วศิน, 2542: 15) สิ่งที่ต้องพึงระลึกไว้เสมอคือ ฐานข้อมูลมีการเปลี่ยนแปลงตลอดเวลา ทั้งนี้ไม่ได้หมายความ ถึงการเปลี่ยนแปลงตัวข้อมูลที่เก็บภายใน เพราะนั่นเป็นเรื่องปกติ แต่สิ่งอื่นๆ เช่น ลักษณะการ เรียกดูหรือดึงข้อมูลออกมาใช้งาน เงื่อนไขหรือกฎเกณฑ์ที่ระบุความสัมพันธ์ต่างๆ ตลอดจน รูปแบบหรือโครงสร้างของข้อมูลเองก็อาจเปลี่ยนแปลงได้ตลอดเวลา ดังนั้นฐานข้อมูลที่ดีจึงต้อง สามารถดูแลและปรับปรุงแก้ไขได้ง่าย และสอดคล้องกับความต้องการใช้งาน ลักษณะของ ฐานข้อมูลที่ดีคือ 1. สามารถรักษาความถูกต้องข้องข้อมูล (Data Integrity) ไว้ได้โดยตลอด ไม่ยอมให้ข้อมูล ขัดแย้งหรือไม่ตรงกันเข้าไปเก็บในฐานข้อมูลได้ เพราะจะทำให้เกิดปัญหาตามมาอีกมากใน ภายหลัง ซึ่งข้อนี้จะเป็นไปได้ก็ต่อเมื่อการออกแบบนั้นทำอย่างถูกต้อง เพื่อให้ข้อมูลไม่ซ้ำซ้อนกัน โดยอาศัยกระบวนการที่เรียกว่า Normalization 2. มีประสิทธิภาพในการทำงาน สามารถรองรับการเรียกดูและแก้ไขข้อมูลโดยผู้ใช้หลายๆ คนพร้อมกันได้โดยไม่ช้าเกินไป และยังคงความถูกต้องไว้ด้วย 3. มีความยืดหยุ่นสูง สามารถปรับเปลี่ยนให้เหมาะกับลักษณะการใช้งานหรือลักษณะ ข้อมูลที่เปลี่ยนไปได้โดยง่าย 4. ข้อมูลที่เก็บจะต้องเป็นอิสระจากโปรแกรมหรือแอพพลิเคชั่นที่ใช้ ไม่ว่าจะเรียกจาก โปรแกรมใด ถ้าเป็นข้อมูลตัวเดียวกันก็จะต้องถูกต้องตรงกัน และสามารถแก้ไขโครงสร้างข้อมูลได้ โดยมีผลกระทบกับโปรแกรมน้อยที่สุด T a b l e Table คือโครงสร้างที่ใช้เก็บข้อมูลจริงใน Database โดยเก็บในรูปแบบของตารางย่อยๆ ที่มี ความสัมพันธ์กันแต่ละแถวหรือ row ใน Table ซึ่งเรียกว่า “เรคอร์ด” (record) ส่วนแต่ละคอลัมน์ใน 8 แถวจะเรียกว่า “ฟิลด์” (field) โดยแต่ละเรคอร์ดคือข้อมูล 1 ชุดที่มีโครงสร้างซ้ำกัน และแต่ละฟิลด์ก็ คือข้อมูลตัวเดียวกันของแต่ละเรคอร์ดนั่นเอง (วศิน, 2542: 40) ดังตัวอย่างในภาพที่ 2-1 ภาพที่ 2-1 การแสดงข้อมูลใน Table ในมุมมอง Datasheet ดังนั้นจะเห็นได้ว่าใน Table หนึ่งนั้นจะมีโครงสร้างเรคอร์ดซึ่งเก็บข้อมูลเพียงอย่างเดียวหรือ Subject เดียว ซึ่งก็จะเทียบได้กับเอนทิตี้ และแต่ละฟิลด์ของเรคอร์ดก็จะบรรยายคุณสมบัติอย่างใด อย่างหนึ่งของเรคอร์ดเท่านั้น หรือเทียบได้กับแอตทริบิวต์ของเอนทิตี้นั่นเอง ดังนั้นหากกำหนด เอนทิตี้และแอตทริบิวต์ได้ถูกต้องตั้งแต่แรกก็จะสามารถแปลงไปสร้างเป็น Table ได้ทันทีโดยตรง เอนทิตี้ (Entity) และแอตทริบิวต์ (Attribute) “เอนทิตี้” (Entity) อาจหมายถึงสิ่งของใดๆ ก็ได้ที่เราจะอ้างอิงถึงในข้อมูล ส่วน “แอตทริ บิวต์” (Attribute) คือคุณลักษณะหรือรายละเอียดของแต่ละเอนทิตี้นั้นอีกทีหนึ่ง โดยแต่ละเอนทิตี้ จะมีได้กลายแอตทริบิวต์ ตัวอย่างเช่น “บัตรประชาชน” เป็นเอนทิตี้โดยมี ชื่อ ที่อยู่ วันหมดอายุ เป็น แอตทริบิวต์ของบัตร ทั้งนี้เอนทิตี้จะเป็นตัวบ่งบอกถึงเนื้อหา (Subject) ของเรื่องที่เราจะทำ Subject อาจหมายถึงบุคคล สิ่งของ เหตุการณ์หรืออะไรก็ได้ที่เราต้องการเก็บข้อมูล ในทางปฏิบัติจะทำการแปลงเอนทิตี้ที่ได้จากการออกแบบฐานข้อมูลไปเป็นเรคอร์ดใน Table และแปลงแอตทริบิวต์ไปเป็นฟิลด์ สำหรับรูปภาพที่ใช้แทนเอนทิตี้ประเภทนี้ ได้แก่ รูปภาพ สี่เหลี่ยมผืนผ้าโดยมีชื่อของเอนทิตี้นั้นอยู่ภายใน ดังภาพที่ 2-2 ภาพที่ 2-2 รูปแบบสัญลักษณ์ของเอนทิตี้ Customers Table ชื่อ Customers Field Record Customers 9 ความสัมพันธ์ (Relation) ความสัมพันธ์นี้เป็นหัวใจหลักของฐานข้อมูลแบบ Relational กล่าวคือเป็นสิ่งที่เชื่อมโยง ระหว่างข้อมูลใน Table ต่างๆ เข้าด้วยกัน โดยอาศัยฟิลด์ที่มีค่าตรงกันในระหว่าง Table เหล่านั้น เป็นตัวเชื่อม หรือที่เรียกว่า “คีย์” (Key) นั่นเอง ความสัมพันธ์ระหว่างเรคอร์ดในแต่ละ Table อาจ แบ่งได้เป็น 3 ลักษณะคือ One-To-Many เป็นความสัมพันธ์แบบที่ฟิลด์ในเรคอร์ดใดๆ ของ Table หนึ่งมีค่าตรงกับ ฟิลด์ของหลายๆ เรคอร์ดใน Table อื่นๆ เช่นใน Table Customer มีรหัสลูกค้าซึ่งตรงกับใน Table Order หลายๆ ใบ (เพราะลูกค้าคนหนึ่งสั่งของได้หลายครั้ง) แต่ในทางกลับกันในแต่ละ Order จะ เป็นของลูกค้าเพียงรายเดียวเท่านั้น กล่าวคือรหัสลูกค้าในแต่ละ Order จะตรงกับเรคอร์ดเดียว เท่านั้นใน Customer (เพราะ Order 1 ใบย่อมเป็นของลูกค้าเพียงรายเดียว) ความสัมพันธ์แบบนี้เป็น แบบที่ปกติธรรมดาและพบได้มากที่สุดในการใช้งานฐานข้อมูล ภาพที่ 2-3 แสดงความสัมพันธ์แบบ One-To-Many One-To-One เป็นความสัมพันธ์แบบที่ฟิลด์ในเรคอร์ดใดๆ ของ Table หนึ่งมีค่าตรงกับฟิลด์ ของเรคอร์ดเพียงเรคอร์ดเดียวเท่านั้นใน Table อื่นๆ เช่น ใน Table Employee มีรหัสพนักงานซึ่ง ตรงกับใน Table Personal_Info ซึ่งความจริงแล้วอาจรวมเป็น Table เดียวกันไปเลยก็ได้ แต่ใน บางครั้งก็อาจต้องแยกเป็นคนละ Table กันก็ด้วยเหตุผลอื่น เช่น ใน Personal_Info อาจมีข้อมูล ขนาดใหญ่ เช่น รูปถ่ายและแผนที่บ้านของพนักงานแต่ละคน ซึ่งบางคนก็ยังให้มาไม่ครบหรือไม่ อยากให้ ข้อมูลเหล่านี้หากเก็บไว้ใน Table Employee ด้วยก็จะกลายเป็น Table ขนาดใหญ่มาก แต่ หากแยกเป็นคนละ Table กันก็อาจเรียกใช้ข้อมูลได้เร็วกว่า หรือบางกรณีอาจเป็นเพราะเพื่อการ รักษาความลับ เช่น ใน Personal_Info มีข้อมูลส่วนตัว เช่น เงินเดือน จึงต้องแยกเป็นคนละส่วน และควบคุมให้มีเฉพาะบางคนเท่านั้นที่จะเข้าใช้ข้อมูลใน Table นี้ได้ ในขณะที่ทุกคนสามารถ เข้าถึงข้อมูลทั่วๆ ไปใน Employee เช่น ชื่อ ตำแหน่ง หมายเลขโทรศัพท์ภายในได้ Customers 1 Make M Order NAME ADDRESS ORDER NO AMOUNT 10 ภาพที่ 2-4 แสดงความสัมพันธ์แบบ One-To-One Many-To-Many เป็นความสัมพันธ์แบบที่ฟิลด์ในเรคอร์ดใดๆ ของ Table หนึ่งมีค่าตรงกับ ฟิลด์ของหลายๆ เรคอร์ดใน Table อื่นๆ และในทางกลับกันก็เป็นจริงด้วย ความสัมพันธ์แบบนี้พบ ได้ไม่มากนัก ตัวอย่างเช่นในการเก็บข้อมูลรายชื่อพนักงานขายกับลูกค้า พนักงานขายคนหนึ่งอาจ ดูแลลูกค้าหลายราย และในทางกลับกัน ลูกค้าคนหนึ่งหากสั่งซื้อสินค้าจากหลายแผนกในบริษัท ก็ อาจมีการติดต่อกับพนักงานขายหลายคนได้ ซึ่งความสัมพันธ์ในลักษณะนี้จะสามารถแปลงให้เป็น แบบ One-To-Many ที่เชื่อมกันสองทอดได้ในขั้นตอนของการทำ Normalization ภาพที่ 2-5 แสดงความสัมพันธ์แบบ Many-To-Many คีย์ (Key) ตามปกติในแต่ละเรคอร์ดใน Table จะต้องมี “คีย์” (Key) หรือข้อมูลที่จะเป็นกุญแจสำหรับ เข้าถึงหรือบ่งชี้ว่าเรคอร์ดใดเป็นเรคอร์ดใด หรือต่างจากเรคอร์ดอื่นๆ อย่างไร เหมือนกับที่คนทุก คนต้องมีชื่อและนามสกุลที่แตกต่างกัน เวลาอ้างอิงจะได้รู้ว่าเป็นใคร เพราะคีย์นี้เองที่จะนำไปใช้ใน การอ้างอิงและกำหนดความสัมพันธ์กับ Table อื่นๆในภายหลัง ถ้าไม่กำหนดไว้ Table นี้ก็อาจไม่ สามารถนำไปเชื่อมโยงกับ Table อื่นๆ ได้เลย ซึ่งคีย์ที่ว่านี้มีชื่อเต็มๆ ว่า Primary key หรือคีย์หลัก ส่วนในกรณีที่ไม่มีฟิลด์ใดของข้อมูลสามารถนำมาใช้เป็นคีย์ได้เลย ก็จะต้องสร้างขึ้นหรือ กำหนดให้ใหม่ทั้งนี้ Primary key จะต้องเป็นเอกลักษณ์ของแต่ละเรคอร์ดโดยไม่ซ้ำกันเลยด้วย (unique) Employee 1 1 Personal_Info EMP_ID EMP_NAME PER_ID SALARY Customers M ORDER M SALE NAME ADDRESS SALE_ID PRODUCT BELONG_TO 11 Primary key เป็นคีย์หลักที่ใช้ในการจัดเรียงและแยกแยะข้อมูลแต่ละเรคอร์ดใน Table นั้น ออกจากกัน Primary key นี้จะต้องมีค่าในทุกเรคอร์ด จะปล่อยว่างให้ไม่มีค่า (หรือเรียกว่า Null) ไม่ได้ และจะต้องไม่ซ้ำกันเลย (unique) ด้วย ซึ่งอาจเลือกฟิลด์หนึ่งหรือกำหนดขึ้นมาใหม่ก็ได้ Candidate key ในกรณีที่มีหลายฟิลด์ซึ่งมีคุณสมบัติครบถ้วนจนสามารถนำมาใช้เป็น Primary key ได้ จะเรียกฟิลด์เหล่านั้นแต่ละตัวว่าเป็น Candidate key คือเป็นคู่แข่งที่สามารถเลือกมา เป็น Primary key ได้เหมือนกัน Composite key (หรือเรียกอีกอย่างหนึ่งว่า Compound key) เป็นการนำเอาหลายๆฟิลด์มา รวมกันเป็นคีย์เพื่อให้มีคุณสมบัติครบถ้วน คือไม่ซ้ำกันและไม่เป็น Null ใช้ในกรณีที่หากเลือกเพียง ฟิลด์ใดฟิลด์หนึ่งมาเป็นคีย์แล้วยังมีโอกาสซ้ำกันหรือเป็น Null ได้ Foreign key เป็นฟิลด์ที่มีเก็บอยู่ในหลาย Table จึงสามารถใช้เป็นคีย์ในการเชื่อมโยงข้อมูล ระหว่างหลาย Table เข้าด้วยกันได้ Secondary key หรือดัชนี (Index) เป็นคีย์ที่ใช้แยกแยะข้อมูลเช่นกัน แต่เนื่องจากมี Primary key ที่ไม่ซ้ำกันอยู่แล้ว Secondary key นี้จึงอาจซ้ำกันได้ ทั้งนี้ในการเรียกใช้ข้อมูลโดยทั่วไปมักจะ ต้องมีการจัดเรียงตามลำดับเพื่อความสะดวก แต่หากมี Index มากๆก็อาจทำให้การแก้ไขแต่ละเร คอร์ดช้าลงมาก ดังนั้นในทางปฏิบัติจึงควรจำกัดจำนวนฟิลด์ที่เป็น Index ไว้เท่าที่จำเป็นต้องเรียกดู บ่อยจริงๆ เช่น 2-3 ฟิลด์เท่านั้น ขั้นตอนการออกแบบฐานข้อมูล ขั้นที่ 1 เก็บรวบรวมรายละเอียด ขั้นตอนนี้เป็นการรวบรวมรายละเอียดของงานที่จะเก็บและเรียกใช้ข้อมูล เช่น 1. เป็นข้อมูลเกี่ยวกับ subject อะไรบ้าง 2. มีลักษณะของข้อมูลแต่ละตัวเป็นอย่างไร เป็นเลขกี่หลัก กี่ตัวอักษร มีค่าช่วงใด 3. วิธีการหรือความต้องการใช้งานข้อมูลเป็นแบบใด ใครใช้บ้างและบ่อยเพียงใด 4. มีความสัมพันธ์กันระหว่าง subject หรือ entity ต่างๆแค่ไหน อะไรเป็นตัวเชื่อม 5. อื่นๆ จากนั้นให้บันทึกรายละเอียดเหล่านั้นเป็นลายลักษณ์อักษร (หรือถ้ามีแผนภูมิการ ทำงานประกอบด้วยก็ยิ่งดี) ไว้เพื่อใช้ในขั้นตอนต่อๆไป ขั้นที่ 2 กำหนดโครงสร้าง Table ขั้นตอนนี้เป็นการทดลองสร้าง Table ขึ้นมาเป็นต้นแบบ เพื่อจะนำไปใช้ในขั้นต่อๆไป ผลที่ได้จากขั้นนี้จะเป็นชุดของเอนทิตี้และแอตทริบิวต์ทั้งหมดที่มีในฐานข้อมูล (หรือโครงสร้าง 12 ของเรคอร์ดและฟิลด์ใน Table ต่างๆที่น่าจะใช้ได้) เช่นในระบบงานขายก็จะมีเอกสาร เช่น ใบสั่ง ซื้อ ใบส่งสินค้า ใบแจ้งหนี้ เหล่านี้ล้วนสามารถกำหนดให้เป็น Table ใหม่ได้ ขั้นที่ 3 กำหนดคีย์ ขั้นตอนนี้เป็นการกำหนดคีย์แบบต่างๆ เช่น Primary key, Composite key, Secondary key และอื่นๆให้กับแต่ละ Table ที่ได้จากขั้นที่ 2 ตามความเหมาะสม เพื่อนำไปใช้สร้าง ความสัมพันธ์กับ Table อื่นๆต่อไปเช่นใน Table Products อาจกำหนดรหัสสินค้าขึ้นมาใหม่เพื่อใช้ เป็น Primary key ในขณะที่ฟิลด์อื่น เช่น barcode อาจใช้เป็น Candidate key ได้เช่นกัน ขั้นที่ 4 กำหนดความสัมพันธ์ ขั้นตอนนี้เป็นการกำหนดความสัมพันธ์ระหว่าง Table ในแบบต่างๆ เช่น One-To- Many, One-To-One หรือ Many-To-Many โดยอาศัยคีย์ที่ตั้งไว้เป็นตัวเชื่อม ขั้นที่ 5 ปรับรูปแบบข้อมูล (Normalization) เป็นการนำเอาเอนทิตี้และแอตทริบิวต์ที่ได้ (หรือโครงร่างของเรคอร์ดและฟิลด์ที่ ออกแบบไว้) มาปรับรูปแบบและลดความซ้ำซ้อนเพื่อให้ถูกต้องตามหลักการ จะได้นำฐานข้อมูลไป ใช้อย่างมีประสิทธิภาพทั้งนี้โดยอาศัยกระบวนการ Normalization เพื่อลดความซ้ำซ้อนกันของ ข้อมูล ซึ่งหากปล่อยโครงสร้างข้อมูลออกไปตามที่ออกแบบในขั้นต้นมาเลย ก็อาจเกิดปัญหา เนื่องจากความซ้ำซ้อนหลายประการเช่น 1. เปลืองเนื้อที่เก็บข้อมูลโดยไม่จำเป็น 2. ข้อมูลในฟิลด์ที่เก็บซ้ำกันนั้นมีโอกาสผิดพลาดหรือไม่ตรงกัน 3. การกำหนดความสัมพันธ์กับ Table อื่นทำได้ยาก 2.1.2 ภาษาทางด้านฐานข้อมูล (Query Language) ผลิตภัณฑ์ทางด้านฐานข้อมูลที่มีโครงสร้างแบบ Relational จำเป็นจะต้องมีภาษาทาง ฐานข้อมูลหรือที่เรียกว่า Query Language โดยแต่ละภาษาถูกพัฒนาขึ้นจากแนวคิดที่แตกต่างกัน Structured Query Language เป็นภาษาที่ใช้จัดการทางด้านฐานข้อมูลที่ นิยมใช้กันมากที่สุดโดยมัก ถูกเรียกย่อๆ ว่า “SQL” สำหรับคำสั่งต่างๆของภาษา SQL สามารถแบ่งตามลักษณะการใช้งาน ออกเป็น 3 กลุ่มดังนี้ (กิตติและจำลอง, 2544: 245) 2.1.2.1 กลุ่มคำสั่ง Data Definition Language (DDL) เป็นกลุ่มคำสั่งที่ใช้สำหรับ สร้างฐานข้อมูล หรือใช้กำหนดโครงสร้างให้กับ Relation ภายในฐานข้อมูล เช่น การเพิ่ม เปลี่ยนแปลง ลบ แอตทริบิวต์ของ Relation 13 2.1.2.2 กลุ่มคำสั่ง Data Manipulation Language (DML) เป็นกลุ่มคำสั่งที่ใช้สำหรับ เพิ่ม ลบ หรือเปลี่ยนแปลงข้อมูลในฐานข้อมูล 2.1.2.3 กลุ่มคำสั่ง Data Query Language เป็นกลุ่มคำสั่ง DML ประเภทหนึ่งที่ใช้ใน การเลือกข้อมูลจาก Relation ขึ้นมาแสดงตามรูปแบบที่ต้องการ สรุปได้ว่า Structured Query Language (SQL) คือเซตของชุดคำสั่งที่ใช้ในการทำงานกับ ระบบฐานข้อมูลซึ่งช่วยให้ผู้พัฒนาหรือผู้ใช้สามารถทำในสิ่งต่อไปนี้ได้ (กิตติและไชยรัตน์, 2543: 49) 1. อ่านข้อมูลจากตารางหนึ่ง (Table) หรือหลายตารางจากฐานข้อมูลตัวหนึ่งหรือมากกว่า นั้น 2. จัดการกับข้อมูลในตารางโดยการเพิ่ม ลบ หรืออัปเดตเรคอร์ด 3. ทราบข้อมูลเชิงสรุปเกี่ยวกับข้อมูลในตาราง เช่น จำนวนเรคอร์ดทั้งหมด ค่าต่ำสุด ค่าสูงสุด และค่าเฉลี่ยของข้อมูล 4. สร้าง เปลี่ยนแปลง ลบตารางในฐานข้อมูล 5. สร้าง หรือลบอินเด็กซ์ (Index) ของตาราง ด้วยการใช้ SQL เพียงไม่กี่บรรทัดช่วยให้ผู้พัฒนาสามารถทำงานกับฐานข้อมูลได้โดยสะดวก แทนที่จะต้องใช้การเขียนโปรแกรมหลายสิบบรรทัด เพื่อการทำงานกับฐานข้อมูล SQL จะใช้ใน การสร้างคิวรี่ (Query) ซึ่งเป็นคำสั่งที่ใช้ค้นหาข้อมูลในตารางใดๆ หรือหลายตาราง ตามเงื่อนไขที่ กำหนดได้ รวมทั้งการระบุฟิลด์ที่ต้องการอ่านจากตารางที่เก็บฟิลด์นั้นไว้ ขอบเขตหรือช่วงของเร คอร์ดที่ต้องการใช้งานและรูปแบบของการเรียงลำดับ ในการแสดงผลของข้อมูลได้อีกด้วย ส่วนประกอบของ SQL ชุดคำสั่ง SQL ประกอบด้วยสองส่วนหลักๆ ดังนี้ 1. Manipulative statement ใช้ในการระบุการทำงานของคิวรีเอ็นจินของฐานข้อมูล เช่น SELECT, INSERT, UPDATE หรือ DELETE ตารางที่ 2-1 ลักษณะการใช้งานของ Manipulative statement Statement Function DELETE FROM ลบเรคอร์ดออกจากตาราง INSERT INTO เพิ่มกลุ่มของเรคอร์ดเข้าสู่ตาราง SELECT อ่านกลุ่มของข้อมูลจากตาราง UPDATE เปลี่ยนแปลงค่าของฟิลด์ในตาราง 14 2. Options declarations ใช้เกี่ยวกับการสร้างเงื่อนไข การจัดกลุ่มข้อมูล หรือการเรียงลำดับ ของข้อมูลที่จะใช้ในการทำงาน เช่น WHERE, GROUP BY และ ORDER BY ลักษณะการใช้งานจะเรียงลำดับดังนี้คือ Manipulative statement [options secta rations] ในขณะที่ใช้งาน Manipulative statement จะเป็นการระบุสิ่งที่ต้องทำกับเอ็นจินของ ฐานข้อมูล ในส่วนของ Options จะทำหน้าที่ในการระบุฟิลด์และเรคอร์ดที่จะใช้ทำงาน ซึ่งจากการ ใช้งานสองส่วนนี้ของ SQL สามารถสร้างคิวรีในการทำงานกับฐานข้อมูลได้อย่างหลากหลาย 2.1.3 ภาษา ASP (Active Server Pages) ความรู้พื้นฐานที่ควรทราบก่อน เป็นเรื่องเกี่ยวกับ HTML (Hypertext Markup Language) ที่ ทำหน้าที่เป็น Script ที่ใช้สร้าง Home Page บน Web เป็น Script ที่มีความสามารถในการเชื่อมโยง ข้อมูลใน Computer ระหว่าง Computer ในเครือข่าย และระหว่างเครือข่ายใน Internet โดยอ้างอิง จาก URL (Uniform Resource Locators) ด้วยโปรโตคอล Hypertext Transfer Protocol (HTTP) HTML เป็น Script ที่เรียงลำดับ Tag (คำสั่ง) ไว้เป็นไฟล์ๆหนึ่ง เพื่อเป็นตัวบอก Browser ว่า จะต้องแสดงอะไร ลักษณะอย่างไร Tag จะประกอบด้วยเครื่องหมาย “<” ตามด้วยชื่อ Tag และเครื่องหมาย “>” ซึ่งโดยทั่วไป Tag จะมีเป็นคู่ เพื่อเปิดและปิดคำสั่งโดย Tag เปิดจะมีลักษณะดังข้างต้น แต่ Tag ปิดจะเพิ่ม Slash (/) หน้า Tag เท่านั้น ตัวอย่างเช่น คำสั่ง Heading
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น