ฐานข้อมูลเชิงสัมพันธ์

ฐานข้อมูลเชิงสัมพันธ์ (Relational database; ตัวย่อ RDB) คือการจัดเก็บข้อมูลในลักษณะที่เป็นกลุ่มของข้อมูลที่มีความสัมพันธ์กัน ในฐานข้อมูลหนึ่ง ๆ สามารถที่จะมีตารางตั้งแต่ 1 ตารางเป็นต้นไป และในแต่ละตารางนั้นก็สามารถมีได้หลายคอลัมน์ (Column) หลายแถว (Row)  ตัวอย่างเช่น เราต้องการเก็บข้อมูลพนักงาน ในตารางของข้อมูลพนักงานก็จะประกอบด้วยคอลัมน์ ที่อธิบายชื่อ นามสกุล ที่อยู่ เงินเดือน แผนกที่สังกัด เป็นต้น และในตารางนั้น ก็สามารถที่จะมีข้อมูลพนักงานได้มากกว่า 1 คน (Row) และตารางข้อมูลพนักงานนั้นอาจจะมีความสัมพันธ์กับตารางอื่น เช่น ตารางที่เก็บชื่อและจำนวนบุตรของพนักงาน
ฐานข้อมูลเชิงสัมพันธ์ถูกออกแบบมาเพื่อลดความซ้ำซ้อนของการเก็บข้อมูล  และสามารถเรียกใช้ข้อมูลได้อย่างมีประสิทธิภาพ
โดยมีหลักดังนี้

# ตารางจะต้องมีชื่อไม่ซ้ำกัน
# แต่ละฟิลด์จะบรรจุประเภทข้อมูลเพียงชนิดเดียวเท่านั้นแน่นอน
# ข้อมูลในแต่ละเรคอร์ดจะต้องไม่ซ้ำกัน
นอกจากนี้แต่ละตารางยังสามารถเริยกได้อีกอย่างว่ารีเลชัน (Relation) แถวแต่ละแถวภายในตารางเรียกว่าทูเปิล (Tuple) และคอลัมน์เรียกว่าแอททริบิวต์ (Attribute)

**จุดเด่นของข้อมูลเชิงสัมพันธ์**
# ง่ายต่อการเรียนรู้ และการนำไปใช้งาน ทำให้เห็นภาพข้อมูลชัดเจน
# ภาษาที่ใช้จัดการข้อมูลเป็นแบบซีเควล ซึ่งมีประสิทธิภาพสูงเข้าใจง่าย
# การออกแบบระบบมีทฤษฎีรองรับ สามารถลดความซ้ำซ้อนของข้อมูลได้

**กฎที่เกี่ยวข้องกับคีย์ในฐานข้อมูลเชิงสัมพันธ์**
# กฎความบูรณภาพของเอนทิตี้ (The Entity Intergrity Rule): กฎนี้ระบุไว้ว่าแอททริบิวต์ใดที่เป็นคีย์หลัก ข้อมูลในแอททริบิวต์นั้นจะเป็นค่าว่าง(Null) ไม่ได้ ความหมายของการเป็นค่าว่างไม่ได้(Not Null) หมายความถึง ข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักจะไม่ทราบค่าที่แน่นอนหรือไม่มีค่าไม่ได้
# กฎความบูรณภาพของการอ้างอิง (The Referential IntegrityRule): การอ้างอิงข้อมูลระหว่างรีเลชั่นในฐานข้อมูลเชิงสัมพันธ์จะใช้คีย์นอกของรีเลชั่นหนึ่งไปตรวจสอบกับค่าของแอททริบิวต์ที่เป็นคีย์หลักของอีกรีเลชั่นหนึ่งเพื่อเรียกดูข้อมูลอื่นๆที่เกี่ยวข้องหรือค่าของคีย์นอกจะต้องอ้างอิงให้ตรงกับค่าของคีย์หลักได้จึงจะสามารถเชื่อมโยงข้อมูลระหว่างสองรีเลชั่นได้สำหรับคีย์นอกจะมีค่าว่างได้หรือไม่ขึ้นอยู่กับกฎเกณฑ์การออกแบบฐานข้อมูล เช่น ในกรณีที่รีเลชั่นพนักงานมี Depno เป็นคีย์นอกอาจจะถูกระบุว่าต้องทราบค่าแต่ในกรณีพนักงานทดลองงานอาจยังไม่มีค่า Depno เพราะยังไม่ได้ถูกบรรจุในกรณีที่มีการลบหรือแก้ใขข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักซึ่งมีคีย์นอกจากอีกรีเลชั่นหนึ่งอ้างอิงถึง จะทำการลบหรือแก้ใขข้อมูลได้หรือไม่ ขึ้นอยู่กับการออกแบบฐานข้อมูล ว่าได้ระบุให้แอททริบิวต์มีคุณสมบัติอย่างไร ซึ่งมีโอกาสเป็นไปได้ 4 ทางเลือก
# การลบหรือแก้ไขข้อมูลแบบมีข้อจำกัด (Restrict): การลบหรือแก้ไขข้อมูลจะกระทำได้ เมื่อข้อมูลของคีย์หลักในรีเลชั่นหนึ่งไม่มีข้อมูลที่ถูกอ้างอิง โดยคีย์นอกของอีกรีเลชั่นหนึ่งเช่น รหัสแผนก Depno ในรีเลชั่นDepจะถูกแก้ใขหรือลบทิ้งต่อเมื่อไม่มีพนักงานคนใดสังกัดอยู่ในแผนกนั้น
# การลบหรือแก้ไขข้อมูลแบบต่อเรียง (Cascade): การลบหรือการแก้ใขข้อมูล จะทำแบบเป็นลูกโซ่ คือ หากมีการแก้ไขหรือลบข้อมูลของคีย์หลักในรีเลชั่นหนึ่งระบบจะทำการลบหรือแก้ใขข้อมูลของคีย์นอกในอีกรีเลชั่นหนึ่งที่อ้างอิงถึงข้อมูลของคีย์หลักที่ถูกลบให้ด้วย เช่น ในกรณีที่ยกเลิกแผนก 9 ในEntityแผนก ข้อมูลของพนักงานที่อยู่แผนก 10 ในEntityพนักงานจะถูกลบออกไปด้วย
# การลบหรือแก้ไขข้อมูลโดยเปลี่ยนเป็นค่าว่าง (Nullify): การลบหรือแก้ใขข้อมูลจะทำได้เมื่อมีการเปลี่ยนค่าของคีย์นอกในข้อมูลที่ถูกอ้างอิงให้เป็นค่าว่างเสียก่อน เช่น พนักงานที่อยู่ในแผนกที่ 9 จะถูกเปลี่ยนค่าเป็นค่าว่างก่อนหลังจากนั้น การลบข้อมูลของแผนกที่มีรหัส 9 จะถูกลบทิ้งหรือแก้ไขทันที ภายใน Entity แผนก
# การลบหรือแก้ไขข้อมูลแบบใช้ค่าโดยปริยาย (Default): การลบหรือแก้ไขข้อมูลของคีย์หลัก สามารถทำได้โดยถ้าหากมีคีย์นอกที่อ้างอิงถึงคีย์หลักที่ถูกลบหรือแก้ไข ก็จะทำการปรับค่าของคีย์นอกนั้นโดยปริยาย (Default Value) ที่ถูกกำหนดขึ้นเช่น ในกรณีที่ยกเลิกแผนก 9 ใน Entity แผนก ข้อมูลของพนักงานที่อยู่แผนก 9 ใน Entity พนักงานจะถูกเปลี่ยนค่าเป็น 00 ซึ่งเป็นค่าโดยปริยาย ที่หมายความว่า ไม่ได้สังกัดแผนกใด

**RDBMS**
The general structure of a relational database
คอนโนลี และ เบคค์ ให้นิยาม การจัดการฐานข้อมูล (DBMS) ไว้ว่า "
Connolly and Begg define database management system (DBMS) as a "ระบบซอฟต์แวร์ที่ช่วยให้ผู้ใช้สามารถกำหนด สร้าง รักษา และควบคุมการเข้าถึงฐานข้อมูลได้" RDBMS เป็นตัวช่วยของการเริ่มใช้ฐานข้อมูลเบื้องต้น (Underlying Database) เมื่อมันมีความเชื่อมโยงกัน
คำนิยามอื่น ๆ สำหรับ ระบบจัดการฐานข้อมูลเชิงสัมพันธ์  คือระบบจัดการฐานข้อมูล (DBMS) ที่อิงตาม แบบจำลองเชิงสัมพันธ์. ฐานข้อมูลส่วนใหญ่ที่ใช้อย่างแพร่หลายในปัจจุบันใช้โมเดลนี้
RDBMS เป็นตัวเลือกทั่วไปสำหรับการจัดเก็บข้อมูลในฐานข้อมูลที่ใช้สำหรับบันทึกทางการเงิน ข้อมูลการผลิตและลอจิสติกส์ ข้อมูลบุคลากร และการใช้งานอื่นๆ นับตั้งแต่ทศวรรษ 1980 ฐานข้อมูลเชิงสัมพันธ์มักจะเข้ามาแทนที่ฐานข้อมูลแบบลำดับชั้นและฐานข้อมูลเครือข่ายแบบเดิม เนื่องจาก RDBMS ง่ายต่อการนำไปใช้และบริหารจัดการ อย่างไรก็ตาม ข้อมูลที่จัดเก็บเชิงสัมพันธ์ได้รับความท้าทายอย่างต่อเนื่องและไม่ประสบผลสำเร็จจากระบบการจัดการฐานข้อมูลเชิงวัตถุในทศวรรษปี 1980 และ 1990 (ซึ่งถูกนำมาใช้ในความพยายามที่จะจัดการกับสิ่งที่เรียกว่าความต้านทานเชิงวัตถุที่ไม่ตรงกันระหว่างฐานข้อมูลเชิงสัมพันธ์และโปรแกรมแอปพลิเคชันเชิงวัตถุ) เช่นเดียวกับระบบการจัดการฐานข้อมูล XML ในช่วงปี 1990 อย่างไรก็ตาม เนื่องจากเทคโนโลยีที่กว้างขวาง เช่น การขยายคลัสเตอร์คอมพิวเตอร์ในแนวนอน ฐานข้อมูล NoSQL จึงได้รับความนิยมเมื่อเร็ว ๆ นี้เป็นทางเลือกแทนฐานข้อมูล RDBMS

**อ้างอิง**
หมวดหมู่:ฐานข้อมูล