1. ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
1.1. นิยามและคำศัพท์พื้นฐานเกี่ยวกับระบบฐานข้อมูล
1.1.1. ในที่นี้จะขอทบทวนถึงคำศัพท์พื้นฐาน และเพื่อให้รู้จักคำศัพท์ต่างๆ ที่เกี่ยวข้องกับระบบ ฐานข้อมูล เนื่องจากหลายท่านจะคุ้นเคยกับเรื่องของการประมวลผลในระบบแฟ้มข้อมูล ซึ่งมีการแบ่ง ระดับของหน่วยความจำ
1.1.1.1. บิต ( Bit) หมายถึง หน่วยของข้อมูลที่มีขนาดเล็กที่สุด
1.1.1.2. ไบต์ (Byte) ห มายถึง หน่วยของข้อมูลที่เกิดจากการนำ บิตมารวมกันเป็น ตัวอักขระ (Character)
1.1.1.3. เขตข้อมูล (Field) หมายถึง หน่วยของข้อมูลที่ประกอบขึ้นจากตัวอักขระตั้งแต่หนึ่งตัวขึ้นไป มารวมกันแล้วได้ความหมายของสิ่งใดสิ่งหนึ่ง เช่น ชื่อ ที่อยู่ เป็นต้น
1.1.1.4. ระเบียน (Record) หมายถึง หน่วยของข้อมูลที่เกิดจากการนำเอาเขตข้อมูลหลายๆ เขต ข้อมูลมารวมกัน เพื่อเกิดเป็นข้อมูลเรื่องใดเรื่องหนึ่ง เช่น ข้อมูลของนักศึกษา 1ระเบียน (1คน) จะประกอบด้วย รหัสประจำตัวนักศึกษา ชื่อนักศึกษา ที่อยู่ เป็นต้น
1.1.1.5. แฟ้มข้อมูล (File) หมายถึง หน่วยของข้อมูลที่เกิดจากการนำข้อมูลหลายๆ ระเบียนที่เป็น เรื่องเดียวกันมารวมกัน เช่น แฟ้มข้อมูลนักศึกษา แฟ้มข้อมูลลูกค้า แฟ้มข้อมูลพนักงาน เป็นต้น ส่วนในระบบฐานข้อมูล ก็จะมีคำศัพท์ต่างๆ ที่เกี่ยวข้องที่ควรรู้จัก ดังนี้
1.1.1.6. เอนติตี้ (Entity) หมายถึง ชื่อของสิ่งใดสิ่งหนึ่ง เปรียบเสมือนคำนาม อาจได้แก่ คน สถานที่ สิ่งของ การกระทำ ซึ่งต้องการจัดเก็บข้อมูลไว้ เช่น เอนติตี้ลูกค้า เอนติตี้พนักงาน เป็นต้น บางเอนติตี้ อาจจะไม่มีความหมายเลย หากขาดเอนติตี้อื่นในฐานข้อมูล เช่น เอนติตี้ประวัติ นักศึกษาจะไม่มีความหมาย หากปราศจากเอนติตี้นักศึกษา เพราะจะไม่ทราบว่า เป็นประวัติของ นักศึ กษา คน ใ ด เช่ น นี้ แ ล้ ว เ อน ติตี้ ปร ะ วั ติ นั กศึ กษา นั บเ ป็ น เ อน ติตี้ ช นิ ดอ่ อน แ อ (Weak Entity/Dependent Entity)
1.1.1.7. แอทตริบิวต์ (Attribute) หมายถึง รายละเอียดข้อมูลที่แสดงลักษณะและคุณสมบัติของเอน ติตี้หนึ่งๆ เช่น เอนติตี้นักศึกษา ประกอบด้วย แอทตริบิวต์รหัสนักศึกษา ชื่อนักศึกษา ที่อยู่นักศึกษา เป็นต้น
1.2. ระบบฐานข้อมูล (Database System)
1.2.1. ระบบฐานข้อมูล (Database System) หมายถึง โครงสร้างสารสนเทศ ที่ประกอบด้วย รายละเอียดของข้อมูลที่เกี่ยวข้องกัน ที่จะนำมาใช้ในระบบงานต่างๆ ร่วมกัน ระบบฐานข้อมูล จึงนับเป็นการจัดเก็บข้อมูลอย่างเป็นระบบ ซึ่งผู้ใช้จะสามารถจัดการกับ ข้อมูลได้ในลักษณะต่างๆ ทั้งการเพิ่มข้อมูล การแก้ไข การลบ ตลอดจนการเรียกดูข้อมูล ซึ่งส่วนใหญ่ จะเป็นการประยุกต์นำเอาระบบคอมพิวเตอร์เข้ามาช่วยในการจัดการฐานข้อมูล
2. ความสัมพันธ ์ (Relationships)
2.1. หมายถึง ความสัมพันธ์ระหว่างเอนติตี้ เช่น ความสัมพันธ์ ระหว่างเอนติตี้นักศึกษา และเอนติตี้คณะวิชา เป็นลักษณะว่า นักศึกษาแต่ละคนเรียนอยู่คณะวิชาใด คณะวิชาหนึ่ง เป็นต้น ในการแสดงความสัมพันธ์ระหว่างเอนติตี้ เราจะใช้หัวลูกศรเ พื่อแสดงความสัมพันธ
3. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-one Relationships)
3.1. เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนติตี้หนึ่งที่มีความสัมพันธ์กับข้อมูลในอีก เอนติตี้หนึ่ง ในลักษณะหนึ่งต่อหนึ่ง
4. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-many Relationships)
4.1. เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนติตี้หนึ่ง ที่มีความสัมพันธ์กับข้อมูลหลายๆ ข้อมูลในอีกเอนติตี้หนึ่ง
5. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-many Relationships)
5.1. เป็นการแสดงความสัมพันธ์ของข้อมูลสองเอนติตี้ในลักษณะกลุ่มต่อกลุ่มเอนติตี้ใบสั่งซื้อแต่ละใบจะสามารถสั่งสินค้าได้มากกว่าหนึ่งชนิด ความสัมพันธ์ของข้อมูลจากเอนติตี้ใบสั่งซื้อไปยังเอนติตี้สินค้า จึงเป็นแบบหนึ่งต่อกลุ่ม (1:m) ในขณะที่ สินค้าแต่ละชนิด อาจจะปรากฏว่าถูกสั่งอยู่ในใบสั่งซื้อหลายใบ ความสัมพันธ์ของข้อมูลจากเอนติตี้ สินค้าไปยังเอนติตี้ใบสั่งซื้อ จึงเป็นแบบหนึ่งต่อกลุ่ม (1:n) เช่นกัน ดังนั้นความสัมพันธ์ของเอนติต
6. ความสำคัญของการประมวลผลแบบระบบฐานข้อมูล จากการจัดเก็บข้อมูลรวมเป็นฐานข้อมูลจะก่อให้เกิดประโยชน์ด้วยกันหลายประการ พอสรุป ได้ดังนี้
6.1. สามารถลดความซ้ำซ้อนของข้อมูลได้ การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดานั้น อาจจำเป็นที่ผู้ใช้แต่ละคนจะต้องมีแฟ้ม ข้อมูลของตนไว้เป็นส่วนตัว จึงอาจเป็นเหตุให้มีการเก็บข้อมูลชนิดเดียวกันไว้หลายๆ ที่ ทำให้เกิด ความซ้ำซ้อน (Redundancy) การนำข้อมูลมารวมเก็บไว้ในฐานข้อมูล จะช่วยลดปัญหาการเกิดความ ซ้ำซ้อนของข้อมูลได้ โดยระบบจัดการฐานข้อมูล (Database Management System : DBMS) จะช่วย ควบคุมความซ้ำซ้อนได้ เนื่องจากระบบจัดการฐานข้อมูลจะทราบได้ตลอดเวลาว่ามีข้อมูลซ้ำซ้อนกัน อยู่ที่ใดบ้า
6.2. หลีกเลี่ยงความขัดแย้งของข้อมูลได้ สืบเนื่องจากที่กล่าวมาในข้อแรก หากมีการเก็บข้อมูลชนิดเดียวกันไว้หลายๆ ที่ และมี การปรับปรุงข้อมูลเดียวกันนี้ แต่ปรับปรุงไม่ครบทุกที่ที่มีข้อมูลเก็บอยู่ ก็จะทำให้เกิดปัญหาข้อมูล ชนิดเดียวกัน อาจมีค่าไม่เหมือนกันในแต่ละที่ที่เก็บข้อมูลอยู่ จึงก่อให้เกิดความขัดแย้งของข้อมูลขึ้น (Inconsistency)
6.3. สามารถใช้ข้อมูลร่วมกันได้ ดังที่ได้กล่าวมาในตอนต้นแล้วว่า ฐานข้อมูลจะเป็นการจัดเก็บข้อมูลรวมไว้ด้วยกัน ดังนั้น หากผู้ใช้ต้องการใช้ข้อมูลในฐานข้อมูลที่มาจากแฟ้มข้อมูลต่างๆ ก็จะทำได้โดยง่าย
6.4. สามารถรักษาความถูกต้องเชื่อถือได้ของข้อมูล บางครั้งอาจพบว่า การจัดเก็บข้อมูลในฐานข้อมูลอาจมีข้อผิดพลาดเกิดขึ้น เช่น จากการที่ ผู้ป้อนข้อมูลป้อนข้อมูลผิดพลาด จากตัวเลขหนึ่งเป็นอีกตัวเลขหนึ่ง ตัวอย่างการป้อนข้อมูลอายุ พนักงานจาก 21 ปี อาจป้อนผิดเป็น 12 ปี โดยเฉพาะอย่างยิ่งกรณีมีผู้ใช้หลายคนต้องใช้ ข้อมูลจาก ฐานข้อมูลร่วมกัน หากผู้ใช้คนใดคนหนึ่งสะเพร่าแก้ไขข้อมูลผิดพลาดไปก็จะทำให้ผู้อื่นได้รับ ผลกระทบตามไปด้วย ในระบบจัดการฐานข้อมูล (DBMS) จะสามารถใส่กฎเกณฑ์เพื่อ ควบคุม ความผิดพลาดที่อาจเกิดขึ้น
6.5. สามารถกำหนดความเป็นมาตรฐานเดียวกันของข้อมูลได้ การเก็บข้อมูลร่วมกันไว้ในฐานข้อมูล จะทำให้สามารถกำหนดมาตรฐานของข้อมูลได้ รวมทั้งมาตรฐานต่างๆ ในการจัดเก็บข้อมูลให้เป็นไปในลักษณะเดียวกันได้ เช่น การกำหนดรูปแบบ การเขียนวันที่ ในลักษณะวัน/เดือน/ปี หรือ ปี/เดือน/วัน ก็สามารถกำหนดได้ ทั้งนี้จะมีผู้ที่คอยบริหาร ฐานข้อมูลที่เราเรียกว่า ผู้บริหารฐานข้อมูล (Database Administrator : DBA) เป็นผู้กำหนดมาตรฐาน ต่างๆ เหล่านี้
6.6. สามารถกำหนดระบบความปลอดภัยของข้อมูลได้ ระบบความปลอดภัยของข้อมูลในที่นี้ เป็นการป้องกันไม่ให้ผู้ใช้ที่ไม่มีสิทธิมาใช้ หรือมา เห็นข้อมูลบางอย่างในระบบ ผู้บริหารฐานข้อมูลจะสามารถกำหนดระดับการเรียกใช้ข้อมูลของผู้ใช้ แต่ละคนได้ตามความเหมาะสม ทั้งนี้เนื่องจากผู้ใช้แต่ละคนจะสามารถมองข้อมูลในฐานข้อมูลด้วย ภาพ (View) ที่ต่างกัน
6.7. เกิดความเป็นอิสระของข้อมูล โดยปกติโปรแกรมที่เขียนขึ้นใช้งาน จะมีความสัมพันธ์กับรายละเอียดหรือโครงสร้าง ของแฟ้มข้อมูลที่ต้องการใช้ ดังนั้น หากมีการเปลี่ยนแปลงโครงสร้างข้อมูลในแฟ้มข้อมูลใดเกิดขึ้น ก็ ต้องแก้ไขโปรแกรมทุกโปรแกรมที่เกี่ยวข้องกับการเรียกข้อมูลจากแฟ้มข้อมูลดังกล่าวด้วย ถึงแม้ว่า โปรแกรมเหล่านั้น อาจจะเป็นเพียงเรียกใช้แฟ้มข้อมูลดังกล่าว เพื่อดูข้อมูลบางอย่างที่มิได้มีการปรับ โครงสร้างก็ตาม ในระบบฐานข้อมูลจะมีตัวจัดการฐานข้อมูลที่ทำหน้าที่เป็นตัวเชื่อมโยงกับฐานข้อมูล โปรแกรมต่างๆ อาจไม่จำเป็นต้องมีโครงสร้างข้อมูลทุกครั้ง ดังนั้นการแก้ไขข้อมูลบางครั้ง จึงอาจ กระทำเฉพาะกับโปรแกรมที่เรียกใช้ข้อมูลที่เปลี่ยนแปลงเท่านั้น ส่วนโปรแกรมที่ไม่ได้เรียกใช้ข้อมูล ดังกล่าว ก็จะเป็นอิสระจากการเปลี่ยนแปลงที่กล่าวมา
7. ความเป็นมาของการจัดการฐานข้อมูล
7.1. ระบบฐานข้อมูลกำเนิดขึ้นจากโครงการอพอลโลของสหรัฐอเมริกา ที่ส่งมนุษย์อวกาศไปลง ดวงจันทร์ ประมาณ 30 ปีที่ผ่านมา ซึ่งข้อมูลที่ใช้ในโครงการดังกล่าวจะต้องมีจำนวนมากมายการจัดการ ระบบข้อมูลในโครงการดังกล่าวจึงเกิดขึ้น โดยบริษัท IBM ได้รับจ้างในการพัฒนาระบบข้อมูลขึ้น เรียกว่า GUAM (Generalized Update Access Method) ต่อมาได้พัฒนาการจัดการข้อมูลขึ้นเพื่อใช้ใน งานธุรกิจ ได้แก่ ระบบ DL/I (Data Language I) และพัฒนาจนมาเป็นระบบ IMS (Information Management System) ที่ใช้กันจนถึงปัจจุบัน นอกจากนี้ยังมีบริษัท GE (General Electric) ที่ได้พัฒนาระบบฐานข้อมูล IDS (Integrated Data Store) โดย Charles Bachman และ IDS ถือเป็นต้นกำเนิดระบบ CODASYL หรือ Network Model ที่นิยมใช้จนถึงปัจจุบัน ต่อมา E.F. Codd ก็ได้เสนอโมเดลเชิงสัมพันธ์ ซึ่งบริษัท IBM ได้นำแนวคิดของ Codd มา สร้างเป็นระบบ R ซึ่งต่อมาได้พัฒนาเป็นระบบ DB2ขึ้นแทน ตั้งแต่ปี พ.ศ. 2525เป็นต้นมา ได้มีซอฟต์แวร์เกิดขึ้นเพื่อสนับสนุนการทำงานของระบบการ จัดการฐานข้อมูลมากมาย เช่น ซอฟต์แวร์ที่ช่วยในการออกแบบ ตลอดจนภาษาที่ใช้ในการเรียกใช้ข้อมูล รวมทั้งความเจริญทางด้านเทคโนโลยีคอมพิวเตอร์ ตลอดจนซอฟต์แวร์ที่ช่วยในการประมวลผลข้อมูลได้ เกิดขึ้นอยู่ตลอดเวลา ทั้งภาษารุ่นที่ 4 (4th Generation Language) หรือแม้แต่ CASE TOOL (Computer Aided Software Engineering) จน นับไ ด้ว่า เป็นยุ คที่ร ะบบฐานข้อมูลได้เข้ามามีบทบาทในงาน คอมพิวเตอร์อย่างเต็มตัว
8. รูปแบบของระบบฐานข้อมูล รูปแบบของระบบฐานข้อมูล มีอยู่ด้วยกัน 3 ประเภท คือ
8.1. ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นการ เก็บข้อมู ลในรูปแ บบที่เป็น ตาราง (Table) หรือเรียกว่า รีเลชัน (Relation) มี ลักษณะเป็น 2 มิติ คือ เป็นแถว (Row) และเป็นคอลัมน์ (Column) การเชื่อมโยงข้อมูลระหว่างตาราง จะ เชื่อมโยงโดยใช้แอทตริบิวต์ (Attribute) หรือคอลัมน์ที่เหมือนกันทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล
8.2. ฐานข้อมูลแบบลำดับชั้น (Hierarchical Database) ฐานข้อมูลแบบลำดับชั้น เป็นโครงสร้างที่จัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบพ่อ- ลูก (Parent-Child Relationship Type : PCR Type) หรือเป็นโครงสร้างรูปแบบต้นไม้ (Tree) ข้อมูลที่ จัดเก็บในที่นี้ คือ ระเบียน (Record) ซึ่งประกอบด้วยค่าของเขตข้อมูล (Field) ของเอนติตี้หนึ่งๆ นั่นเอง ฐานข้อมูลแบบลำดับชั้นนี้คล้ายคลึงกับฐานข้อมูลแบบเครือข่าย แต่ต่างกันที่ฐานข้อมูล แบบลำดับชั้น มีกฎเพิ่มขึ้นมาหนึ่งประการ คือ ในแต่ละกรอบจะมีลูกศรวิ่งเข้าหาได้ไม่เกิน 1 หัว ลูกศร ดังนั้น จากตัวอย่างรูปที่ 1.8จะพบว่า กรอบพนักงานจะมีลูกศรเข้ามา 2 ทาง ดังนั้นจึงไม่อาจ สร้างฐานข้อมูลสำหรับตัวอย่างรูปที่ 1.8 โดยใช้ฐานข้อมูลแบบลำดับชั้น ด้วยวิธีปกติได้
8.2.1. ระเบียน 3 ระเบียน คือ แผนก, พนักงาน และโครงงานที่รับผิดชอบ
8.2.2. ความสัมพันธ์แบบ PCR 2 ประเภท คือ ความสัมพันธ์ของข้อมูลแผนกกับพนักงานและ ความสัมพันธ์ของข้อมูลแผนกกับโครงงานที่รับผิดชอบ โดยมีแผนกเป็นระเบียนประเภทพ่อ-แม่ ส่วน พนักงานและโครงงานที่รับผิดชอบเป็นระเบียนประเภทลูก ความสัมพันธ์ของทั้งสองประเภท เป็น แบบหนึ่งต่อกลุ่ม (1:n)