ฐานข้อมูลเชิงสัมพันธ์ความหมายของฐานข้อมูลเชิงสัมพันธ์ ระบบฐานข้อมูลเชิงสัมพันธ์(Relational Database)เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์ (Relational Database Model) ซึ่งผู้คิดค้นโมเดลเชิงสัมพันธ์นี้คือ Dr. E.F. Codd
โดยใช้หลักพื้นฐานทางคณิตศาสตร์ เนื่องด้วยแนวคิดของแบบจำลองแบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการเก็บเป็นตาราง ทำให้ง่ายต่อการเข้าใจและการประยุกต์ใช้งาน ด้วยเหตุนี้ ระบบฐานข้อมูลแบบนี้จึงที่ได้รับความนิยมมากที่สุด ในแง่ของ entity แบบจำลองแบบนี้คือ แฟ้มข้อมูลในรูปตาราง และ attribute ก็เปรียบเหมือนเขตข้อมูล ส่วนความสัมพันธ์คือความสัมพันธ์ระหว่าง entity
คุณสมบัติของความสัมพันธ์ (รีเลชัน) Relation โดยทั่ว ๆ ไปความสัมพันธ์หนึ่ง ๆ จะมีคุณสมบัติต่าง ๆ ดังนี้
ชนิดของความสัมพันธ์ (รีเลชัน) Relationในระบบจัดการฐานข้อมูลอาจจำแนกได้เป็น 2 ประเภท 1) ความสัมพันธ์หลัก (รีเลชันหลัก) (Base Relation) เป็นความสัมพันธ์ที่ถูกกำหนดขึ้นเพื่อเก็บข้อมูลและเพื่อนำข้อมูลไปใช้เมื่อมีการสร้างความสัมพันธ์โดยใช้ Data Definition Language เช่น ใน SQL คำสั่ง CREATE TABLE เป็นการสร้างความสัมพันธ์หลัก 2) มุมมอง หรือ วิว (View) หรืออาจเรียกอีกอย่างหนึ่งว่าความสัมพันธ์สมมุติ (Virtual Relation) เป็นความสัมพันธ์ที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน เนื่องจากผู้ใช้แต่ละคนต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน จึงทำการกำหนดวิวของตัวเองขึ้นมาเพื่อความสะดวกในการใช้ข้อมูล และช่วยให้การรักษาความปลอดภัยของฐานข้อมูล
กุญแจ หรือ คีย์ (Key) กุญแจ หรือ คีย์ (Key) คือ ฟิลด์ที่มีลักษณะเฉพาะตัวเป็นแอททริบิวท์ที่สามารถแยกความแตกต่างของข้อมูลในแต่ละทูเพิลได้ ดังนั้น กุญแจ หรือ คีย์ (Key) จึงหมายถึงสิ่งที่ใช้กำหนดความเป็นเอกลักษณ์ในความสัมพันธ์ ความสัมพันธ์ (รีเลชัน) Relation ความสัมพันธ์ (รีเลชัน) Relation จะอยู่ในลักษณะของตาราง 2 มิติ [มีความสัมพันธ์] ประกอบด้วยทางด้านแถว และคอลัมน์ ซึ่งแต่ละรีเลชันจะมีชื่อรีเลชันเพื่อใช้อ้างอิง ข้อดีของฐานข้อมูลเชิงสัมพันธ์ 1. ฐานข้อมูลเชิงสัมพันธ์เป็นกลุ่มข้อมูลของรีเลชั่นหรือตารางที่ข้อมูลถูกจัดเก็บเป็นแถวหรือคอลัมน์ซึ่งทำให้ผู้ใช้เห็นภาพของข้อมูลได้ง่าย 2. ผู้ใช้ไม่ต้องรู้ว่าข้อมูลถูกจัดเก็บอย่างไรรวมถึงวิธีการเรียกใช้ข้อมูล 3. ภาษาที่ใช้เป็นการเรียกใช้ข้อมูล เป็นลักษณะคล้ายภาษาอังกฤษและไม่จำเป็นต้องเขียนเป็นลำดับ 4. การเรียกใช้หรือเชื่อมโยงข้อมูลทำได้ง่าย โดยใช้โอเปอร์เรเตอร์ทางคณิตศาสตร์ กฎของความคงสภาพ (Integrity Rule) กฎของความคงสภาพเป็นข้อกำหนดเพื่อใช้ควบคุมความถูกต้องของฐานข้อมูลซึ่งจะป้องกันไม่ให้ข้อมูลผิดจากความเป็นจริงจะควบคุมข้อมูลที่เป็นคีย์หลักของรีเลชันให้มีข้อมูลที่ไม่ซ้ำกันและมีค่าที่ไม่เป็นค่าว่าง ข้อมูลที่เกิดการสูญเสียความคงสภาพของข้อมูลเกิดมาจากหลายสาเหตุ เช่น การเพิ่มการลบ หรือการแก้ไขข้อมูลในรีเลชั่นหนึ่งที่มีความสัมพันธ์กับรีเลชั่นอื่น ซึ่งทำให้เกิดความไม่สอดคล้องกันของข้อมูลระหว่างรีเลชั่นที่เกี่ยวข้องกัน คีย์ในฐานข้อมูล ในระบบฐานข้อมูลเชิงสัมพันธ์นั้น เราจะต้องกำหนดชนิดของคีย์ต่างๆเพื่อเป็น Attribute พิเศษเพื่อทำหน้าที่บางอย่าง เช่น เป็นตัวแทนของตารางใช้กำหนดขึ้นมาเพื่อความสะดวกในการอ้างถึงทฤษฎีเกี่ยวกับ Normalization ซึ่งมีดังต่อไปนี้ Primary Key (คีย์หลัก) จะเป็น Field ที่มีค่าไม่ซ้ำกันเลยในแต่ละ Record ในตารางนั้น เราสามารถใช้ Field ที่เป็น Primary Key นี้ เป็นตัวแทนของตารางนั้นได้ทันที Candidate Key (คีย์คู่แข่ง) เป็น Field หนึ่ง หรือหลาย Field ที่มีคุณสมบัติที่เป็น Primary Key ได้แต่ไม่ได้เป็นคีย์หลัก เช่น ชื่อ และนามสกุล สามารถรวมกันเป็นคีย์คู่แข่งได้ เป็นต้น Composite Key (คีย์ผสม) เป็น Field ที่ใช้รวมกับ Field อื่นๆ ที่เป็น Composite Key เหมือนกัน มาใช้เป็น Primary Key ของตาราง Foreign Key (คีย์นอก) เป็น Field ในตารางหนึ่งในฝั่ง Many ที่มีความสัมพันธ์กับ Field ที่เป็น Primary Key ใน ตารางหนึ่งใน ฝั่ง One โดยที่ตารางทั้งสองมีความสัมพันธ์แบบ One-to-Many ต่อกัน การควบคุมความถูกต้องให้กับข้อมูล 1.กฎที่เกี่ยวข้องกับการรักษาความถูกต้อง กฎที่ใช้สำหรับรักษาความถูกต้องของข้อมูล แบ่งออกเป็น 2 กฎคือ กฎที่เกี่ยวข้องกับเอนทิตี้ และกฎที่เกี่ยวข้องกับการเชื่อมโยงความสัมพันธ์ของเอนทิตี้
ขั้นตอนการออกแบบฐานข้อมูล ขั้นที่ 1 เก็บรวบรวมข้อมูลรายละเอียดทั้งหมดการเก็บรวบรวมข้อมูลและรายละเอียดต่างๆของงาน รวมทั้งความต้องการของผู้ใช้เช่น · มีข้อมูลใดบ้างที่เป็นเรื่องเดียวกัน ให้จัดกลุ่มข้อมูลนั้นเป็นเเอนทิตี้ · มีข้อมูลอะไรบ้างที่จะต้องนำมาค้นหาหรือประมวลผล ผลที่ได้ต้องส่งออกระบบภายนอกหรือไม่ · มีใครบ้างที่เป็นผู้ใช้ฐานข้อมูลนี้ ใช้บ่อยแค่ไหน มีความสำคัญอย่างไร · ลักษณะของรายงาน ประกอบด้วยรายงานอะไรบ้าง ระยะเวลาในการออกรายงาน · ข้อมูลอื่นๆที่สามารถรวบรวมได้ โดยพยายามเก็บรายละเอียดให้มากที่สุด ขั้นที่ 2 กำหนดโครงสร้างของ Table จากกลุ่มข้อมูลหรือแอนทิตี้ที่รวบรวมได้จากเอกสารต่างๆในขั้นที่ 1เราจะนำมากำหนดแอตทริบิวต์ของข้อมูลเพื่อจะได้ทราบว่าในเอนทิตี้นั้นจะนำข้อมูลอะไรมาใช้บ้าง หลังจากนั้นให้นำแอตทริบิวต์มากำหนดโครงสร้างเบื้องต้นของ Table โดยแปลงแอตทริบิวต์เป็นฟิลด์ พร้อมกำหนดชนิดและขนาดข้อมูลในแต่ละขนาดข้อมูลในแต่ละฟีลด์ รวมทั้งเงื่อนไขหรือกฏเกณฑ์ที่ใช้กำหนดลักษณะของข้อมูล ขั้นที่ 3 กำหนดคีย์ ขั้นตอนนี้จะพิจารณาว่าฟีดล์ใดบ้างใน Table นั้นที่มีคุณสมบัติเหมาะสมจะใช้เป็นคีย์ ถ้าไม่มีฟีลด์ใดเลยที่เหมาะสม ก็จะต้องกำหนดฟีลด์ใหม่เพื่อใช้เเป้นคีย์โดยเฉพาะ ขั้นที่ 4 การทำ Normalization ถ้า Table ที่ได้จากขั้นที่ 2 ยังมีความซ้ำซ้อนกันของข้อมูล หรือข้อมูลบางฟีลด์ไม่เกี่ยวข้องโดยตรงกับเนื้อหาใน Table นั้นจะต้องนำมาปรับปรุงแก้ให้มีโครงสร้างหรือรูปแบบที่เหมาะสมก่อนนำไปประมวลผล ถ้านำโครงสร้างไปใช้เลยโดยไม่ทำ Normalization ก่อนอาจเกิดปัญหาได้ เช่นปัญหาสิ้นเปลืองเนื้อที่จัดเก็บข้อมูลที่ซ้ำซ้อนกัน ปัญหาความผิดปกติ (Anomaly) ของข้อมูลเมือมีการแก้ไขเพิ่ม หรือลบคอร์ด รวมทั้งปัญหาในการกำหนดความสัมพันธ์ในขั้นที่ 5 จะทำได้ยาก ขั้นที่ 5 กำหนดความสัมพันธ์ นำ Table ทั้งหมดที่ได้หลังจากทำ Normalization มาสร้างความสัมพันธ์โดยใช้คีย์กำหนดในชั้นที่ 3 หรือคีย์ที่เกิดขึ้นใหม่จากการทำ Normalization เป็นตัวเชื่อม ซึ่งอาจเป็นแบบ One - to - One , One -to - Many หรือ Many - to - Many ขึ้นกับลักษณะของข้อมูลการกำหนดความสัมพันธ์ระหว่าง Table นี้มีความสำคัญมาก ผู้ออกแบบจะต้องมีการวิเคราะห์ให้ได้ว่าข้อมูลใน Table ต่างๆนั้นมีความสัมพันธ์กันในลักษณะใด นอร์มัลไลเซชัน (Normalization) ความซ้ำซ้อนของข้อมูลทำให้ข้อมูลมีขนาดใหญ่เกินความจำเป็น ส่วนที่ซ้ำซ้อนเป็นปัญหาของตารางข้อมูล (รีเลชั่น) แต่สามารถขจัดได้ด้วยขบวนการนอร์มัลไลเซชัน โดยการนอร์มัลไลเซชันถูกคิดค้นโดย E.F.Codd ซึ่งเป็นกระบวนการที่นำเค้าร่างของ relation มาทำให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน (Normal Form) เพื่อให้แน่ใจว่าการออกแบบเค้าร่างของ relation เป็นการออกแบบที่เหมาะสม ประโยชน์นอร์มัลไลเซชัน คือ 1. ลดที่ว่างที่ต้องใช้ในการเก็บข้อมูล 2. ลดความผิดพลาดและความไม่ตรงกันของข้อมูลในฐานข้อมูล 3. ลดการสูญเสียเวลาการเข้าถึงข้อมูลที่เกิดซ้ำซ้อนในข้อมูลของการลบและแก้ไขข้อมูล 4.เพิ่มความคงทนแก่โครงสร้างฐานข้อมูล ระดับนอร์มัลไลเซชัน เป็นกระบวนการเพื่อพัฒนาการ เชื่อมต่อของข้อมูลเพื่อแก้ปัญหาของตารางข้อ (รีเลชั่น) ที่ว่าการออกแบบฐานข้อมูลทั้งทางตรรกะและทางกายภาพที่ได้ออกมาใช้ได้หรือยังการ นอร์มัลไลเซชันแบ่งออกได้เป็นหลายระดับ ได้แก่ 1) การแปลงให้อยู่ในรูปนอร์มัลฟอร์มที่ 1 คุณสมบัติของรีเลชันของแบบจำลองข้อมูลเชิงสัมพันธ์ ก็คือ ข้อมูลในแต่ละทัปเพิลจะต้องไม่ซ้ำกันและค่าในแต่ละแอตทริบิวต์จะต้องไม่สามารถถูกแบ่งแยกย่อยลงไปได้อีกหรือมีความเป็นอะตอมมิค(Atomic) รวมถึงจะต้องมีค่าเพียงค่าเดียวที่อยู่ในแต่ละแอตทริบิวต์หรือมีความเป็นซิงเกิลแวลู (Single Value) ซึ่งในการทำนอร์มัลไลเซชันให้อยู่ในนอร์มัลฟอร์ที่ 1 ก็อาศัยคุณสมบัติดังที่กล่าวไว้ข้างต้น 1) รีพีทติ้งกรุ๊ป การที่ข้อมูลใน 1 ทัปเพิล สามารถมีค่าในแต่ละแอตทริบิวต์ได้มากกว่าหนึ่งค่า (Multivalued) จะทำให้เกิดรีพีทติ้งกรุ๊ป ดังตารางที่แสดงในภาพข้างล่าง ซึ่งเลขที่โครงการหนึ่งหมายเลขประกอบด้วยกลุ่มข้อมูลหลายกลุ่ม ซึ่งทำให้รีเลชันดังกล่าว ขาดคุณสมบัติซิงเกิลแวล 1.1) นิยามของนอร์มัลฟอร์มที่ 1 รีเลชันจะอยู่ในรูปของนอร์มัลฟอร์มที่ 1 ก็ต่อเมื่อมีคุณสมบัติตามเงื่อนไขดังต่อไปนี้ 2) การแปลงให้อยู่ในรูปนอร์มัลฟอร์มที่ 2 ในหนึ่งรีเลชันจะประกอบด้วยแอตทริบิวต์ต่าง ๆ ที่มีความสัมพันธ์ที่ขึ้นต่อกันซึ่งความสัมพันธ์ดังกล่าวจะเป็นตัวกำหนดว่าแอตทริบิวต์ใดเป็นตัวกำหนดข้อมูล หรือ คีย์แอตทริบิวต์ (Key Attribute)
และและแอตทริบิวต์ใดเป็นข้อมูลที่ถูกกำหนดหรือนอนคีย์แอตทริบิวต์ (Nonkey Attribute) 2.3)
นิยามของนอร์มัลฟอร์มที่ 2 รีเลชันจะอยู่ในรูปของนอร์มัลฟอร์มที่ 2 ก็ต่อเมื่อมีคุณสมบัติตามเงื่อนไขดังต่อไปนี้ |