ระบบฐานข้อมูล


ระบบฐานข้อมูล
ระบบฐานข้อมูล คือ ระบบจัดเก็บข้อมูลด้วยคอมพิวเตอร์โดยมีวัตถุประสงค์เพื่อบำรุงรักษาข้อสนเทศ (Maintain information) และสามารถนำข้อสนเทศเหล่านั้นมาใช้ได้ทุกเมื่อที่ต้องการ ระบบฐานข้อมูลประกอบส่วนประกอบหลัก4 ส่วนได้แก่
1. ข้อมูล (Data) ข้อมูลในฐานข้อมูลจะต้องมีคุณสมบัติ 2 ประการ คือ เบ็ดเสร็จ (Integrate) ฐานข้อมูลเป็นแหล่งรวบรวมข้อมูลจากแฟ้มต่าง ๆ ไว้ครบถ้วนสมบูรณ์ เพื่อลดข้อมูลซ้ำซ้อนระหว่างแฟ้ม ใช้ร่วมกันได้ (Share) ข้อมูลแต่ละชิ้นในฐานข้อมูลสามารถนำมาแบ่งใช้กันได้ระหว่างผู้ใช้ต่าง ๆ ในระบบ
2. ฮาร์ดแวร์ (Hardware) ประกอบด้วย อุปกรณ์บันทึกข้อมูลเช่น จานแม่เหล็ก , I/O device , Device controller , I/O channels , หน่วยประมวลผล และหน่วยความจำหลัก
3. ซอฟต์แวร์ (Sorftware) ตัวกลางเชื่อมระหว่างฐานข้อมูลและผู้ใช้คือ DBMS เป็นซอฟต์แวร์ที่สำคัญที่สุดของระบบฐานข้อมูล นอกจากนี้ยังมี Utility , Application Develoment tool , Desisn aids , Report writers , ect.
4. ผู้ใช้ (Users) มี 3 กลุ่มใหญ่ ๆ คือ Application Programmer เขียนโปรแกรมประยุกต์End Users ผู้ใช้ที่อยู่กับ Online terminal เข้าถึงข้อมูลโดยผ่านโปรแกรมประยุกต์ หรือผ่านภาษาเรียกค้น (Query Language)Data Addministrator & Database AdministratorDA ผู้บริหารอาวุโส เป็นผู้ตัดสินใจว่าจะเก็บข้อมูลใดในฐานข้อมูลก่อน และกำหนดนโยบายการรักษาความปลอดภัยของข้อมูลDBA ผู้เชี่ยวชาญระดับมืออาชีพ เป็นผู้สร้างฐานข้อมูลและนำมาใช้งานจริง โดยควบคุมทางด้านเทคนิคที่จำเป็นในการดำเนินนโยบายที่กำหนดโดย DA

ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)  
 ฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูลแบบนี้แสดง การจัดเก็บข้อมูลในรูปแบบของตาราง ที่มีลักษณะเป็นสองมิติ คือ แถว (Row) และคอลัมน์ (Column) ซึ่งในการเชื่อมโยงกันระหว่างข้อมูลในตาราง 2 ตาราง หรือมากกว่า จะเชื่อมโยงโดยใช้แอททริบิวต์ที่มีอยู่ในตารางที่ต้องการเชื่อมโยงข้อมูลกัน โดยที่แอททริบิวต์จะแสดงคุณสมบัติของรีเลชั่นต่าง ๆ ซึ่งรีเลชั่นต่าง ๆ ได้ผ่านกระบวนการทำรีเลชั่นให้เป็นบรรทัดฐาน (Normalized) ในระหว่าง การออกแบบเพื่อละความซ้ำซ้อน เพื่อให้การจัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ
ตัวอย่าง เป็นตารางรายชื่อนักศึกษาและตารางโปรแกรมวิชา ถ้าต้องการทราบว่านักศึกษารหัส 441031138 เป็นนักศึกษาของโปรแกรมวิชาใด ก็ต้องนำรหัสโปรแกรมวิชาในตารางนักศึกษาไปตรวจสอบกับตารางโปรแกรมวิชา ซึ่งมีรหัสของโปรแกรมวิชาซึ่งเรียกว่าเป็นดรรชนี และดึงข้อมูลออกมา
ฉะนั้นสามารถสรุปโครงสร้างข้อมูลหลักที่สำคัญๆ ของฐานข้อมูลเชิงสัมพันธ์ ในส่วนที่เกี่ยวข้องกับการจัดเก็บข้อมูลและการค้นหาในฐานข้อมูล ดังนี้
1. ตารางเรคคอร์ดและฟิลด์ ข้อมูลต่างๆ ในฐานข้อมูลจะถูกจัดเก็บและนำเสนอในรูปแบบของตาราง โดยในตารางหนึ่งๆ จะจัดเก็บรวบรวมข้อมูลประเภทเดียวกันเข้าไว้ด้วยกัน ในแต่ละแถวและคอลัมน์ ซึ่งในศัพท์ของฐานข้อมูลจะเรียกฟิลด์ ในแต่ละแถวของตารางก็ คือ ข้อมูลหนึ่งชุดหรือข้อมูล 1 เรคคอร์ดในแต่ละแถวหรือเรคคอร์ดจะประกอบด้วยฟิลด์หรือคอลัมน์ที่เป็นส่วนย่อยที่แสดงแอททริบิวต์ของข้อมูลในแต่ละเรคคอร์ด
2. ดรรชนี ถ้าตารางข้อมูลมีนักศึกษาเก็บอยู่จำนวนมากการที่จะค้นหาข้อมูลที่ต้องการของนักศึกษาคนใดคนหนึ่งจะต้องเสียเวลาอย่างมาก เพราะจะต้องทำการค้นทีละเรคคอร์ด ในตารางไปจนกว่าจะครบ ข้อมูลของนักศึกษาที่ต้องการ เพื่อช่วยให้การค้นหาข้อมูลที่ต้องการทำได้รวดเร็วขึ้นฐานข้อมูลทั่วไปจึงมีโครงสร้างอีกชนิดหนึ่ง เรียกว่า ดรรชนีเพื่อสนับสนุนการค้นหาให้รวดเร็วขึ้น โดยปกติแล้วในแต่ละตารางจะมีฟิลด์หรือหลายฟิลด์ประกอบกันที่จะสามารถบอกถึงความแตกต่างของข้อมูลในแต่ละแถวได้ ฟิลด์หรือคอลัมน์ดังกล่าวเรียกว่าเป็นดรรชนีหลัก ของตาราง
3. ความสัมพันธ์ของตารางฐาน ข้อมูลแบบตารางสัมพันธ์ส่วนใหญ่แล้ว จะประกอบไปด้วยตารางข้อมูลต่างๆ หลายตาราง แต่ละตารางจะมีความสัมพันธ์กันในลักษณะใดลักษณะหนึ่ง
กฎที่เกี่ยวข้องกับดรรชนีในฐานข้อมูลเชิงสัมพันธ์
 เนื่องจากรีเลชั่นต่างๆ ในฐานข้อมูลเชิงสัมพันธ์จะอ้างอิงความสัมพันธ์ของข้อมูล โดยใช้ดรรชนีกฎที่เกี่ยวข้องกับการใช้ดรรชนีในฐานข้อมูลเชิงสัมพันธ์ มีดังนี้

     1. กฎความบูรณภาพของเอนทิตี้ (The Entity Integrity Rule) แอททริบิวต์ใดที่จะเป็นดรรชนีหลักข้อมูลในแอททริบิวต์นั้นจะเป็นค่าง่าย (Null) ไม่ได้หมายความของการเป็นค่าว่างไม่ได้ (Not Null) ในที่นี้หมายถึง ข้อมูลแอททริบิวต์เป็นดรรชนีหลักจะไม่ทราบค่าแน่นอนหรือ ไม่มีค่าไม่ได้
      2. กฎความบูรณภาพของการอ้างอิง (The Referentail Integrity Rule) คือ ค่าของดรรชนีหลักนอกจากจะต้องสามารถอ้างอิงให้ตรงกับค่าของดรรชนีหลักได้ จึงจะเชื่อมโยงหรืออ้างอิงข้อมูลระหว่างสองรีเลชั่นได้
การกำหนดความสัมพันธ์
ในโปรแกรมการจัดการฐานข้อมูล เช่น โปรแกรมแอกเซส สามารถเชื่อมโยงข้อมูลต่างๆ จากตารางเพื่อที่จะสามารถแสดงข้อมูลที่ได้บนรายงานข้อคำถามหรือแบบฟอร์ม การเชื่อมโยงข้อมูลจากหลาย ตารางนี้เรียกว่าความสัมพันธ์ (Relation) การสร้างความสัมพันธ์ระหว่างตารางในฐานข้อมูลโดยการกำหนดให้ตารางมีความสัมพันธ์กันนั้น ต้องมีแอททริบิวต์หรือฟิลด์ที่เหมือนกัน และให้ค่าฟิลด์ที่เหมือนกันเป็นตัวเชื่อมความสัมพันธ์ ฟิลด์ที่เหมือนกันของตารางเรียกว่า ดรรชนีนอก (Foreing Key) เช่น ตารางของนักศึกษาและโปรแกรมวิชาจะมีรหัสของโปรแกรมวิชาที่เหมือนกัน ในเวลาที่นำโปรแกรมจัดการฐานข้อมูลมาใช้จะต้องมีการสร้างแบบฟอร์มหรือรายงานเรียบร้อยแล้ว จึงกำหนดความสัมพันธ์ระหว่างตาราง หรือกำหนดความสัมพันธ์ตั้งแต่สร้างความสัมพันธ์เสร็จ กล่าวคือจะมีความบูรณภาพความสัมพันธ์เป็นตารางที่เกี่ยวข้อง (Related Table)
ข้อดีของฐานข้อมูลเชิงสัมพันธ์
 ฐานข้อมูลเชิงสัมพันธ์เป็นฐานข้อมูลที่มีรูปแบบง่ายสำหรับผู้ใช้ทั่วไป โดยเฉพาะผู้ใช้ซึ่งไม่ใช่นักวิเคราะห์และออกแบบโปรแกรม โปรแกรมเมอร์หรือผู้จัดการฐานข้อมูล เป็นต้น ข้อดีที่ผู้ใช้ทั่วไปรู้สึกว่าฐานข้อมูลชนิดนี้เข้าใจง่าย มีดังนี้
     1. ฐานข้อมูลเชิงสัมพันธ์เป็นกลุ่มของรีเลชั่นหรือตารางที่ข้อมูลถูกจัดเก็บเป็นแถวและคอลัมน์ ซึ่งทำให้ผู้ใช้เห็นภาพของข้อมูลได้ง่าย
     2. ผู้ใช้ไม่จำเป็นต้องรู้ว่าข้อมูลถูกจัดเก็บอย่างไร รวมถึงวิธีการเข้าถึงข้อมูล (Access Approach)
     3. ภาษาที่ใช้ในการเรียกดูข้อมูล เป็นลักษณะคล้ายภาษาอังกฤษและไม่จำเป็นต้องเขียนเป็นลำดับขั้นตอน
    4. การเรียกใช้หรือเชื่อมโยงข้อมูลทำได้ง่ายโดยใช้โอเปอร์เรเตอร์ ทางคณิตศาสตร์ เช่น SELECT ไม่จำเป็นต้องมีตัวชี้ (Pionter) ซึ่งยุ่งยาก
ประเภทของ Key   มี 2  ประเภท  ดังนี้
 1. คีย์หลัก ( Primary Key )
 เป็นรีเลชั่นที่ถูกกำหนดขึ้นเพื่อเก็บข้อมูลเพื่อนำข้อมูลไปใช้ เมื่อมีการสร้างรีเลชั่นในภาษาสำหรับนิยามข้อมูล  (  DDL )  เช่น  SQL  คำสั่ง  CREATE  TABLE  เป็นการสร้างรีเลชั่นหลัก  หลังจากนั้นก็จะทำการเก็บข้อมูลเพื่อการเรียกใช้ข้อมูลในภายหลัง  รีเลชั่นหลักจะเป็นตารางที่มีการเก็บข้อมูลจริงไว้
2. คีย์นอก ( Foreign Key )
 เป็นรีเลชั่นที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคนเพราะผู้ใช้แต่ละคนในฐานข้อมูลอาจต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน  จึงทำการกำหนดวิวของตนเองขึ้นจากรีเลชั่นหลักขึ้นมาต่างหาก  เพื่อความสะดวกในการเรียกใช้ข้อมูล  และช่วยในการรักษาความปลอดภัยของฐานข้อมูลทำได้ง่ายขึ้น

วัตถุประสงค์ของการทำให้เป็นบรรทัดฐาน มีดังนี้ 
1.เพื่อลดเนื้อที่ในการเก็บข้อมูลการทำให้เป็นบรรทัดฐานเป็นการลดความซ้ำซ้อนของข้อมูลในรีเลชั่น
2.เพื่อลดปัญหาที่ข้อมูลไม่ถูกต้อง(Inconsistency)เนื่องจากข้อมูลในรีเลชั่นหนึ่งจะมีข้อมูลไม่ซ้ำกัน เมื่อมีการปรับปรุงข้อมูลก็จะปรับปรุงทูเพิลนั้นๆครั้งเดียวไม่ต้องปรับปรุงหลายแห่ง
3.เป็นการลดปัญหาที่เกิดจากการเพิ่ม ปรับปรุงและลบข้อมูล
รูปแบบบรรทัดฐานของ Boyce / Cod Normal form (BCNF)
รูปแบบบรรทัดฐานขั้นที่ 1 (First Normal Form : 1NF)
รีเลชั่นหนึ่งๆจะอยู่ในรูปแบบบรรทัดฐานขั้นที่ 1 ก็ต่อเมื่อ "ค่าของแอททริบิวต์หนึ่งในแต่ละทูเพิลจะมีค่าของข้อมูลเพียงค่าเดียวหากรีเลชั่นใดไม่มีคุณสมบัติดังกล่าวข้างต้นจะต้องทำการปรับปรุงให้อยู่ในรูปแบบบรรทัดฐานขั้นที่หนึ่งโดยการแยกกลุ่มข้อมูลที่ซ้ำกันเป็นรีเลชั่นใหม่และกำหนดให้เป็นแอททริบิวต์ที่เป็นตัวกำหนดค่าของกลุ่มข้อมูลที่ซ้ำกันนี้( Multivalued Attribute) เป็นคีย์หลักของรีเลชั่นใหม่"
รูปแบบบรรทัดฐานขั้นที่ 2 (Second Normal Form : 2NF )
รีเลชั่นหนึ่งๆ จะอยู่ในรูปแบบบรรทัดฐานขั้นที่ 2 ก็ต่อเมื่อ "รีเลชั่นนั้นๆอยู่ในรูปแบบบรรทัดฐานขั้นที่ 1 และมีคุณสมบัติอีกประการหนึ่งคือแอทริบิวต์ทุกแอททริบิวต์ที่ไม่ได้เป็นคีย์หลักจะต้องมีความสัมพันธ์ระหว่างค่าของแอทริบิวต์แบบฟังก์ชั่นกับคีย์หลัก(Fully Functional Dependency) กล่าวอีกนัยหนึ่งคือค่าของแอททริบิวต์ที่ไม่ได้เป็นคีย์หลักจะสามารถระบุค่า โดยแอททริบิวต์ที่เป็นคีย์หลัก แอททริบิวต์ทั้งหมดที่ประกอบกันเป็นคีย์หลัก" ในกรณีที่คีย์หลักเป็นคีย์ผสม จากรีเลชั่น Supplier และ Order รีเลชั่นทั้งสองอยู่ในรูปแบบบรรทัดฐานขั้นที่ 2 แล้ว ในรีเลชั่น Supplier มีรหัสผู้ผลิตเป็นคีย์หลัก เช่น เมื่อทราบค่า รหัสผู้ผลิต S1 ก็จะสามารถทราบค่าของชื่อและจังหวัดของผู้ผลิตคือ Seri อยู่ที่จังหวัด Bangkok หรือในรีเลชั่น Order  จำนวนการส่งสินค้า (QTY) จะถูกระบุโดยรหัสผู้ผลิตและรหัสสินค้า ดังนั้น ค่าของแอททริบิวต์อื่นๆที่ไม่ได้เป็นคีย์หลักของรีเลชั่น Supplier และ Order สามารถระบุโดยค่าของแอททริบิวต์ที่เป็นคีย์หลัก
รูปแบบบรรทัดฐานขั้นที่ 3 (Third Normal Form : 3NF)
รูปแบบบรรทัดฐานของบอยส์และคอดด์ (Boyce/Codd Normal Form :
BCNF)
รีเลชั่นหนึ่งๆ จะอยู่ในรูปแบบบรรทัดฐานของบอยส์และคอดด์ก็ต่อเมื่อ "รีเลชั่นนั้นๆ อยู่ในรูปแบบบรรทัดฐานขั้นที่ 3 และไม่มีแอททริบิวต์อื่นในรีเลชั่นที่สามารถระบุค่าของแอททริบิวต์ที่เป็นคีย์หลัก หรือ ส่วนหนึ่งส่วนใดของคีย์หลักในกรณีที่คีย์หลักเป็นคีย์ผสม" โดยทั่วไปรูปแบบบรรทัดฐานของบอยส์และคอดด์จะอยู่ในรูปแบบ บรรทัดฐานขั้นที่ 3 แต่ไม่จำเป็นเสมอไปว่ารูปแบบบรรทัดฐานขั้นที่3 จะอยู่ในรูปแบบของ BCNF ทั้งนี้เนื่องจากรูปแบบนี้เป็นรูปแบบที่ขยายขอบเขตของรูปแบบบรรทัดฐานขั้นที่ 3 ให้เหมาะสมยิ่งขึ้น โดยรูปแบบของรีเลชั่นที่มีโอกาสที่จะต้องผ่านการทำให้เป็นบรรทัดฐาน BCNF   มักจะมีคุณสมบัติดังนี้ คือ เป็นรีเลชั่นที่มีคีย์คู่แข่งหลายคีย์ (Multiple Candidate Key) คีย์คู่แข่งเป็นคีย์ผสม (Composite Key) และคีย์คู่แข่งนั้นมีความซ้ำซ้อนกัน (Overlapped) ” เพื่อให้ง่ายต่อการอธิบาย จะใช้รีเลชั่น Supplier 3 เป็นตัวอย่าง ในการอธิบายโดยสมมุติว่าชื่อของผู้ผลิต ( SNAME) เป็นค่าไม่ซ้ำกัน และมีคุณสมบัติเป็นคีย์หลักได้เช่นกัน
รูปแบบบรรทัดฐานขั้นที่ 4 (Fourth Normal Form : 4NF)
รีเลชั่นนี้จะอยู่ในรูปแบบบรรทัดฐานขั้นที่ 4 ก็ต่อเมื่อ "รีเลชั่นนั้นๆ อยู่ในรูปแบบ BCNF และเป็นรีเลชั่นที่ไม่มีความสัมพันธ์ในการระบุค่าของแอททริบิวต์แบบหลายค่า"  โดยที่ แอททริบิวต์ที่ถูกระบุค่าหลายค่าเหล่านี้ไม่มีความสัมพันธ์กัน (Independently Multivalued Dependency) รีเลชั่นที่ต้องผ่านการทำให้อยู่ในรูปแบบบรรทัดฐานขั้นที่4นี้จะต้องมีแอททริบิวต์อย่างน้อยสามแอททริบิวต์ จากรูป เป็นรีเลชั่นที่ประกอบด้วยแอททริบิวต์รหัสผู้ผลิต (Sno) รหัสโครงการที่สั่งผลิต (Pjno) และชื่อจัหวัดที่โรงงานของผู้ผลิต ตั้งอยู่  (City) โดยกำหนดให้ผู้ผลิตหนึ่งผลิตให้หลายโครงการ และผู้ผลิตหนึ่งๆ มีโรงงานตั้งอยู่ที่หลายจังหวัด (City)
รูปแบบบรรทัดฐานขั้นที่ 5 (Fifth Normal Form : 5 NF)
รีเลชั่นหนึ่ง ๆ จะอยู่ในรูปแบบบรรทัดฐานขึ้นที่ 5 หรือเรียกว่า Project-JoinNormal Form (PJ/NF) ก็ต่อเมื่อ "รีเลชั่นนั้นอยู่ในรูปแบบบรรทัดฐานขึ้นที่ 4 และเป็นรีเลชั่นที่มีคีย์หลักเป็นคีย์ผสมที่ประกอบด้วยแอททริบิวต์ตั้งแต่ 3 แอททริบิวต์เป็นต้นไป  หากมีการแตกรีเลชั่นออกเป็นรีเลชั่นย่อย 3 รีเลชั่น (หรือมากกว่า) (Projection) ซึ่งเกิดจากการจับคู่แอททริบิวต์แต่ละคู่ของรีเลชั่น  เดิมเป็นคีย์ผสมและเมื่อทำการเชื่อมโยงรีเลชั่นย่อยทั้งหมด (Join) จะไม่ก่อให้เกิดข้อมูลใหม่ที่ไม่เหมือนรีเลชั่นเดิม" จากรูป รีเลชั่น SPP ประกอบด้วยแอททริบิวต์ชื่อผู้ผลิต (SNAME)  ชื่อสินค้า (PNAME) และชื่อโครงการ (PJNAME)โดยมีแอททริบิวต์ทั้ง 3 เป็นคีย์หลัก 
http://i184.photobucket.com/albums/x274/bonori/neko11.gif

บทความที่ได้รับความนิยม