กลับไปหน้าบทความ

อ่าน 8 นาที

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

ฐาน ข้อมูลเชิงสัมพันธ์ ( RDB [ 1 ] ) คือ ฐานข้อมูล ที่อิงตาม แบบจำลองเชิงสัมพันธ์ ของข้อมูล ตามที่ EF Codd เสนอไว้ในปี พ.ศ. 2513 [ 2 ]

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

ฐานข้อมูลเชิงสัมพันธ์ ( RDB [ 1 ] ) คือฐานข้อมูล ที่อิงตามแบบจำลองเชิงสัมพันธ์ ของข้อมูล ตามที่ EF Coddเสนอไว้ในปี พ.ศ. 2513 [ 2 ]

ระบบจัดการฐานข้อมูลเชิงสัมพันธ์(RDBMS) คือระบบจัดการฐานข้อมูลประเภทหนึ่งที่จัดเก็บข้อมูลในรูปแบบ ที่มีโครงสร้าง โดย ใช้แถวและคอลัมน์

ระบบฐานข้อมูลเชิงสัมพันธ์จำนวนมากมีตัวเลือกในการใช้SQL (Structured Query Language) สำหรับการสอบถามและอัปเดตฐานข้อมูล[ 3 ]

ประวัติศาสตร์

แนวคิดของฐานข้อมูลเชิงสัมพันธ์ได้รับการกำหนดโดยEF Coddที่IBMในปี 1970 Codd ได้แนะนำคำว่าเชิงสัมพันธ์ในเอกสารวิจัยของเขาเรื่อง "A Relational Model of Data for Large Shared Data Banks" [ 2 ]ในเอกสารนี้และเอกสารต่อมา เขาได้กำหนดความหมายของคำว่าความสัมพันธ์หนึ่งในคำจำกัดความที่รู้จักกันดีเกี่ยวกับระบบฐานข้อมูลเชิงสัมพันธ์ประกอบด้วย กฎ 12 ข้อ ของ Codd

อย่างไรก็ตาม การนำแบบจำลองเชิงสัมพันธ์ไปใช้ในเชิงพาณิชย์ไม่เป็นไปตามกฎทั้งหมดของ Codd [ 4 ]ดังนั้นคำนี้จึงค่อยๆ กลายมาอธิบายถึงระบบฐานข้อมูลประเภทที่กว้างขึ้น ซึ่งอย่างน้อยที่สุดต้องมีคุณสมบัติดังนี้:

  1. นำเสนอข้อมูลแก่ผู้ใช้ใน รูปแบบ ความสัมพันธ์ (การนำเสนอในรูปแบบตาราง กล่าวคือ เป็นชุดของตารางโดยแต่ละตารางประกอบด้วยชุดของแถวและคอลัมน์ )
  2. จัดเตรียมตัวดำเนินการเชิงสัมพันธ์เพื่อจัดการข้อมูลในรูปแบบตาราง

ในปี พ.ศ. 2517 IBM เริ่มพัฒนาSystem Rซึ่งเป็นโครงการวิจัยเพื่อพัฒนาต้นแบบ RDBMS [ 5 ] [ 6 ] ระบบแรกที่วางจำหน่ายในฐานะ RDBMS คือMultics Relational Data Store (มิถุนายน พ.ศ. 2519) [ 7 ] [ 8 ] Oracleเปิดตัวในปี พ.ศ. 2522 โดย Relational Software ซึ่งปัจจุบันคือOracle Corporation [ 9 ] ตามมาด้วย IngresและIBM BS12ตัวอย่างอื่นๆ ของ RDBMS ได้แก่IBM Db2 , SAP Sybase ASEและInformixในปี พ.ศ. 2527 RDBMS ตัวแรกสำหรับMacintoshเริ่มได้รับการพัฒนา โดยใช้ชื่อรหัสว่า Silver Surfer และเปิดตัวในปี พ.ศ. 2530 ในชื่อ4th Dimensionและเป็นที่รู้จักในปัจจุบันว่า 4D [ 10 ]

ระบบแรกๆ ที่เป็นการนำแบบจำลองเชิงสัมพันธ์มาใช้ได้อย่างค่อนข้างแม่นยำนั้นมาจาก:

  • มหาวิทยาลัยมิชิแกน – ไมโคร DBMS (1969) [ 11 ]
  • สถาบันเทคโนโลยีแมสซาชูเซตส์ (1971) [ 12 ]
  • ศูนย์วิทยาศาสตร์ IBM สหราชอาณาจักรที่ปีเตอร์ลี – IS1 (พ.ศ. 2513–2515) [ 13 ]และรุ่นต่อมาคือPRTV (พ.ศ. 2516–2512) [ 14 ]

นิยามที่พบได้บ่อยที่สุดของ RDBMS คือ ผลิตภัณฑ์ที่แสดงมุมมองของข้อมูลในรูปแบบของแถวและคอลัมน์ แม้ว่าจะไม่ได้อิงตามทฤษฎีเชิงสัมพันธ์ อย่างเคร่งครัดก็ตาม ตามนิยามนี้ ผลิตภัณฑ์ RDBMS โดยทั่วไปจะนำกฎ 12 ข้อของ Codd มาใช้บางส่วน แต่ไม่ใช่ทั้งหมด

แนวคิดที่สองโต้แย้งว่า หากฐานข้อมูลไม่ปฏิบัติตามกฎทั้งหมดของ Codd (หรือความเข้าใจในปัจจุบันเกี่ยวกับแบบจำลองเชิงสัมพันธ์ ดังที่แสดงโดยChristopher J. Date , Hugh Darwenและคนอื่นๆ) ฐานข้อมูลนั้นจะไม่ถือว่าเป็นฐานข้อมูลเชิงสัมพันธ์ มุมมองนี้ซึ่งเป็นที่ยอมรับของนักทฤษฎีหลายคนและผู้ยึดมั่นในหลักการของ Codd อย่างเคร่งครัด จะทำให้ DBMS ส่วนใหญ่ไม่ถือว่าเป็นฐานข้อมูลเชิงสัมพันธ์ เพื่อความชัดเจน พวกเขามักจะเรียก RDBMS บางระบบว่าระบบจัดการฐานข้อมูลเชิงสัมพันธ์อย่างแท้จริง (TRDBMS) และเรียกระบบอื่นๆว่าระบบจัดการฐานข้อมูลเชิงสัมพันธ์เทียม (PRDBMS) [ 15 ]

ณ ปี 2009 ระบบจัดการฐานข้อมูลเชิงสัมพันธ์เชิงพาณิชย์ส่วนใหญ่ใช้SQLเป็นภาษาการสอบถาม [ 16 ]

มีการเสนอและนำภาษาการสอบถามทางเลือกอื่นๆ มาใช้ โดยเฉพาะอย่างยิ่งการใช้งานIngres QUELก่อน ปี 1996

แบบจำลองเชิงสัมพันธ์

แบบจำลองเชิงสัมพันธ์จะจัดระเบียบข้อมูลเป็น ตารางหนึ่งตารางขึ้นไป(หรือ "ความสัมพันธ์") ของคอลัมน์และแถวโดยมีคีย์เฉพาะที่ระบุแต่ละแถว แถวยังเรียกว่าเรคอร์ดหรือทูเปิล [ 17 ] คอลัมน์ยังเรียกว่าแอตทริบิวต์ โดยทั่วไป แต่ละตาราง/ความสัมพันธ์จะแสดงถึง "ประเภทเอนทิตี" หนึ่งประเภท (เช่น ลูกค้าหรือผลิตภัณฑ์) แถวแสดงถึงอินสแตนซ์ของเอนทิตี ประเภทนั้น (เช่น "ลี" หรือ "เก้าอี้") และคอลัมน์แสดงถึงค่าที่กำหนดให้กับอินสแตนซ์นั้น (เช่น ที่อยู่หรือราคา)

ตัวอย่างเช่น แต่ละแถวของตารางชั้นเรียนจะสอดคล้องกับชั้นเรียน และชั้นเรียนจะสอดคล้องกับนักเรียนหลายคน ดังนั้นความสัมพันธ์ระหว่างตารางชั้นเรียนและตารางนักเรียนจึงเป็นแบบ "หนึ่งต่อหลาย" [ 18 ]

กุญแจ

แต่ละแถวในตารางจะมีคีย์เฉพาะของตัวเอง แถวในตารางหนึ่งสามารถเชื่อมโยงกับแถวในตารางอื่นได้โดยการเพิ่มคอลัมน์สำหรับคีย์เฉพาะของแถวที่เชื่อมโยง (คอลัมน์ดังกล่าวเรียกว่าคีย์ต่างประเทศ ) Codd แสดงให้เห็นว่าความสัมพันธ์ของข้อมูลที่มีความซับซ้อนตามอำเภอใจสามารถแสดงได้ด้วยชุดแนวคิดที่เรียบง่าย[ 2 ]

ส่วนหนึ่งของกระบวนการนี้เกี่ยวข้องกับการเลือกหรือแก้ไขข้อมูลเพียงแถวเดียวในตารางอย่างสม่ำเสมอ ดังนั้น การใช้งานทางกายภาพส่วนใหญ่จึงมีคีย์หลัก (PK) ที่ไม่ซ้ำกันสำหรับแต่ละแถวในตาราง เมื่อมีการเขียนแถวใหม่ลงในตาราง ระบบจะสร้างค่าที่ไม่ซ้ำกันใหม่สำหรับคีย์หลัก ซึ่งเป็นคีย์ที่ระบบใช้เป็นหลักในการเข้าถึงตาราง ประสิทธิภาพของระบบได้รับการปรับให้เหมาะสมสำหรับ PK นอกจากนี้อาจมีการระบุและกำหนดคีย์อื่นๆ ที่เป็นธรรมชาติ มากกว่าเป็น คีย์สำรอง (AK) บ่อยครั้งที่ต้องใช้หลายคอลัมน์ในการสร้าง AK (นี่เป็นเหตุผลหนึ่งที่โดยปกติแล้วจะใช้คอลัมน์จำนวนเต็มเพียงคอลัมน์เดียวเป็น PK) ทั้ง PK และ AK มีความสามารถในการระบุแถวภายในตารางได้อย่างไม่ซ้ำกัน อาจมีการใช้เทคโนโลยีเพิ่มเติมเพื่อให้แน่ใจว่ามี ID ที่ไม่ซ้ำกันทั่วโลก หรือตัวระบุที่ไม่ซ้ำกันทั่วโลกเมื่อมีข้อกำหนดของระบบที่กว้างขึ้น

คีย์หลัก (Primary Key หรือ PK) ในฐานข้อมูลใช้เพื่อกำหนดความสัมพันธ์ระหว่างตารางต่างๆ เมื่อ PK ย้ายไปยังตารางอื่น มันจะกลายเป็นคีย์ต่างประเทศ (Foreign Key หรือ FK) ในตารางนั้น เมื่อแต่ละเซลล์สามารถมีได้เพียงค่าเดียว และ PK ย้ายไปยังตารางเอนทิตีทั่วไป รูปแบบการออกแบบนี้สามารถแสดงถึงความสัมพันธ์แบบหนึ่งต่อหนึ่งหรือหนึ่งต่อหลายได้การออกแบบฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่จะแก้ไข ความสัมพันธ์ แบบหลายต่อหลายโดยการสร้างตารางเพิ่มเติมที่มี PK จากทั้งสองตารางเอนทิตี – ความสัมพันธ์นั้นจะกลายเป็นเอนทิตี จากนั้นตารางที่ใช้แก้ไขจะถูกตั้งชื่ออย่างเหมาะสม และ FK สองตัวจะถูกรวมเข้าด้วยกันเพื่อสร้าง PK การย้าย PK ไปยังตารางอื่นเป็นเหตุผลสำคัญประการที่สองที่ทำให้โดยปกติแล้วจะใช้จำนวนเต็มที่ระบบกำหนดให้เป็น PK เนื่องจากโดยทั่วไปแล้วไม่มีประสิทธิภาพหรือความชัดเจนในการย้ายคอลัมน์ประเภทอื่นๆ จำนวนมาก

ความสัมพันธ์

ความสัมพันธ์คือการเชื่อมต่อเชิงตรรกะระหว่างตารางต่างๆ (เอนทิตี) ซึ่งสร้างขึ้นบนพื้นฐานของการโต้ตอบระหว่างตารางเหล่านั้น ความสัมพันธ์เหล่านี้สามารถจำลองได้ในรูปแบบของแบบจำลองความสัมพันธ์ระหว่างเอนทิตี

ธุรกรรม

เพื่อให้ระบบจัดการฐานข้อมูล (DBMS) ทำงานได้อย่างมีประสิทธิภาพและแม่นยำ ต้องใช้ธุรกรรม ACID [ 19 ] [ 20 ] [ 21 ]

ขั้นตอนการจัดเก็บ

ส่วนหนึ่งของการเขียนโปรแกรมภายในระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) นั้นทำได้โดยใช้โพรซีเดอร์ที่จัดเก็บไว้ (Stored Procedures หรือ SPs) บ่อยครั้งที่โพรซีเดอร์สามารถช่วยลดปริมาณข้อมูลที่ส่งผ่านภายในและภายนอกระบบได้อย่างมาก เพื่อเพิ่มความปลอดภัย การออกแบบระบบอาจอนุญาตให้เข้าถึงเฉพาะโพรซีเดอร์ที่จัดเก็บไว้เท่านั้น และไม่อนุญาตให้เข้าถึงตารางโดยตรง โพรซีเดอร์ที่จัดเก็บไว้พื้นฐานประกอบด้วยตรรกะที่จำเป็นในการแทรกข้อมูลใหม่และอัปเดตข้อมูลที่มีอยู่ โพรซีเดอร์ที่ซับซ้อนกว่าอาจถูกเขียนขึ้นเพื่อใช้กฎและตรรกะเพิ่มเติมที่เกี่ยวข้องกับการประมวลผลหรือการเลือกข้อมูล

ศัพท์เฉพาะ

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

ฐานข้อมูลเชิงสัมพันธ์ได้รับการกำหนดครั้งแรกในเดือนมิถุนายน พ.ศ. 2513 โดยEdgar Coddจากห้องปฏิบัติการวิจัย San Jose ของ IBM [ 2 ]มุมมองของ Codd เกี่ยวกับคุณสมบัติของ RDBMS สรุปได้ในกฎ 12 ข้อของ Coddฐานข้อมูลเชิงสัมพันธ์ได้กลายเป็นประเภทฐานข้อมูลที่โดดเด่น รูปแบบอื่นๆ นอกเหนือจากรูปแบบเชิงสัมพันธ์ได้แก่รูปแบบฐานข้อมูลแบบลำดับชั้นและรูปแบบเครือข่าย

ตารางด้านล่างนี้สรุปคำศัพท์สำคัญบางส่วนเกี่ยวกับฐานข้อมูลเชิงสัมพันธ์และ คำศัพท์ SQL ที่เกี่ยวข้อง :

คำศัพท์ SQL คำศัพท์ฐานข้อมูลเชิงสัมพันธ์ คำอธิบาย
แถวทูเพิลหรือเรคอร์ดชุดข้อมูลที่แสดงถึงรายการเดียว
คอลัมน์คุณลักษณะหรือฟิลด์องค์ประกอบที่มีป้ายกำกับของทูเปิล เช่น "ที่อยู่" หรือ "วันเกิด"
โต๊ะความสัมพันธ์หรือฐาน relvarชุดของทูเปิลที่มีคุณลักษณะเดียวกัน; ชุดของคอลัมน์และแถว
ชุดผลลัพธ์หรือมุมมองrelvar ที่ได้มาชุดของทูเปิลใดๆ; รายงานข้อมูลจากระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่ตอบสนองต่อการสอบถาม

ความสัมพันธ์หรือตาราง

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

แบบจำลองเชิงสัมพันธ์ระบุว่าทูเปิลของความสัมพันธ์ไม่มีลำดับที่เฉพาะเจาะจง และทูเปิลเหล่านั้นก็ไม่ได้กำหนดลำดับใดๆ ให้กับแอตทริบิวต์ แอปพลิเคชันเข้าถึงข้อมูลโดยการระบุแบบสอบถาม ซึ่งใช้การดำเนินการต่างๆ เช่นการเลือก (select)เพื่อระบุทูเปิล การฉายภาพ(project)เพื่อระบุแอตทริบิวต์ และ การเชื่อมต่อ ( join)เพื่อรวมความสัมพันธ์ ความสัมพันธ์สามารถแก้ไขได้โดยใช้ ตัวดำเนินการ แทรก (insert ) ลบ (delete ) และอัปเดต (update ) ทูเปิลใหม่สามารถระบุค่าที่ชัดเจนหรือได้มาจากแบบสอบถาม ในทำนองเดียวกัน แบบสอบถามจะระบุทูเปิลสำหรับการอัปเดตหรือการลบ

ตามนิยามแล้ว ทูเพิล (Tuple) นั้นมีเอกลักษณ์เฉพาะตัว หากทูเพิลนั้นมีคีย์หลักหรือคีย์รองอยู่ ก็ย่อมแสดงว่าทูเพิลนั้นมีเอกลักษณ์เฉพาะตัวเช่นกัน อย่างไรก็ตาม ไม่จำเป็นต้องกำหนดคีย์หลักสำหรับแถวหรือเรคอร์ดที่จะเป็นทูเพิลได้ นิยามของทูเพิลกำหนดให้มันมีเอกลักษณ์เฉพาะตัว แต่ไม่กำหนดให้ต้องกำหนดคีย์หลัก เนื่องจากทูเพิลมีเอกลักษณ์เฉพาะตัว คุณลักษณะของทูเพิลจึงถือเป็นซูเปอร์คีย์ (Superkey ) ตามนิยาม

ความสัมพันธ์พื้นฐานและความสัมพันธ์ที่ได้มา

ข้อมูลทั้งหมดถูกจัดเก็บและเข้าถึงผ่านความสัมพันธ์ความสัมพันธ์ที่จัดเก็บข้อมูลเรียกว่า "ความสัมพันธ์พื้นฐาน" และในการใช้งานจริงจะเรียกว่า "ตาราง" ความสัมพันธ์อื่นๆ ไม่ได้จัดเก็บข้อมูล แต่เป็นการคำนวณโดยการใช้การดำเนินการเชิงสัมพันธ์กับความสัมพันธ์อื่นๆ ความสัมพันธ์เหล่านี้บางครั้งเรียกว่า "ความสัมพันธ์ที่ได้มา" ในการใช้งานจริงจะเรียกว่า " มุมมอง " หรือ "แบบสอบถาม" ความสัมพันธ์ที่ได้มามีความสะดวกตรงที่มันทำหน้าที่เหมือนความสัมพันธ์เดียว แม้ว่าจะดึงข้อมูลจากหลายความสัมพันธ์ก็ตาม นอกจากนี้ ความสัมพันธ์ที่ได้มายังสามารถใช้เป็นชั้นนามธรรมได้อีก ด้วย

โดเมน

โดเมนอธิบายถึงเซตของค่าที่เป็นไปได้สำหรับแอตทริบิวต์ที่กำหนด และสามารถพิจารณาได้ว่าเป็นข้อจำกัดของค่าของแอตทริบิวต์ ในทางคณิตศาสตร์ การกำหนดโดเมนให้กับแอตทริบิวต์หมายความว่าค่าใดๆ สำหรับแอตทริบิวต์นั้นจะต้องเป็นสมาชิกของเซตที่ระบุ ตัวอย่างเช่น สตริงอักขระ"ABC"ไม่อยู่ในโดเมนจำนวนเต็ม แต่ค่าจำนวนเต็ม123อยู่ในโดเมน อีกตัวอย่างหนึ่งของโดเมนอธิบายค่าที่เป็นไปได้สำหรับฟิลด์ "CoinFace" ว่าเป็น ("Heads","Tails") ดังนั้น ฟิลด์ "CoinFace" จะไม่ยอมรับค่าอินพุตเช่น (0,1) หรือ (H,T)

ข้อจำกัด

ข้อจำกัดมักใช้เพื่อจำกัดขอบเขตของแอตทริบิวต์ให้แคบลง ตัวอย่างเช่น ข้อจำกัดสามารถจำกัดแอตทริบิวต์จำนวนเต็มที่กำหนดให้มีค่าระหว่าง 1 ถึง 10 ข้อจำกัดเป็นวิธีการหนึ่งในการนำกฎทางธุรกิจ ไปใช้ ในฐานข้อมูลและสนับสนุนการใช้ข้อมูลในภายหลังภายในเลเยอร์แอปพลิเคชัน SQL ใช้ฟังก์ชันข้อจำกัดในรูปแบบของข้อจำกัดแบบตรวจสอบข้อจำกัดจะจำกัดข้อมูลที่สามารถจัดเก็บในความสัมพันธ์ได้ โดยปกติจะกำหนดโดยใช้นิพจน์ที่ให้ ค่า บูลีน ซึ่ง บ่งชี้ว่าข้อมูลนั้นตรงตามข้อจำกัดหรือไม่ ข้อจำกัดสามารถใช้กับแอตทริบิวต์เดี่ยว กับทูเปิล (จำกัดการรวมกันของแอตทริบิวต์) หรือกับความสัมพันธ์ทั้งหมด เนื่องจากทุกแอตทริบิวต์มีโดเมนที่เกี่ยวข้อง จึงมีข้อจำกัด ( ข้อจำกัดโดเมน ) กฎหลักสองข้อสำหรับแบบจำลองเชิงสัมพันธ์เรียกว่าความสมบูรณ์ของเอนทิตีและ ความสมบูรณ์ของ การ อ้างอิง

คีย์หลัก

ทุกความสัมพันธ์ /ตารางจะมีคีย์หลัก ซึ่งเป็นผลมาจากการที่ความสัมพันธ์เป็นเซต[ 22 ] คีย์หลักจะระบุทูเปิลภายในตารางได้อย่างเฉพาะเจาะจง ในขณะที่แอตทริบิวต์ธรรมชาติ (แอตทริบิวต์ที่ใช้ในการอธิบายข้อมูลที่ป้อน) บางครั้งอาจเป็นคีย์หลักที่ดี แต่คีย์ทดแทนมักถูกใช้แทน คีย์ทดแทนเป็นแอตทริบิวต์เทียมที่กำหนดให้กับวัตถุซึ่งระบุวัตถุนั้นได้อย่างเฉพาะเจาะจง (ตัวอย่างเช่น ในตารางข้อมูลเกี่ยวกับนักเรียนในโรงเรียน อาจมีการกำหนดรหัสประจำตัวนักเรียนให้กับนักเรียนทุกคนเพื่อแยกแยะความแตกต่าง) คีย์ทดแทนไม่มีความหมายโดยเนื้อแท้ แต่มีประโยชน์ผ่านความสามารถในการระบุทูเปิลได้อย่างเฉพาะเจาะจง อีกสิ่งหนึ่งที่พบได้บ่อย โดยเฉพาะอย่างยิ่งในเรื่องความสัมพันธ์แบบ N:M คือคีย์ประกอบคีย์ประกอบคือคีย์ที่ประกอบด้วยแอตทริบิวต์สองรายการขึ้นไปภายในตารางที่ (รวมกัน) ระบุเรคอร์ดได้อย่างเฉพาะเจาะจง[ 23 ]

คีย์ต่างประเทศ

คีย์นอก (Foreign key) หมายถึงฟิลด์ในตารางเชิงสัมพันธ์ที่ตรงกับคอลัมน์คีย์หลักของอีกตารางหนึ่ง มันเชื่อมโยงคีย์ทั้งสองเข้าด้วยกัน คีย์นอกไม่จำเป็นต้องมีค่าที่ไม่ซ้ำกันในตารางที่อ้างอิง คีย์นอกสามารถใช้เพื่ออ้างอิงข้ามตารางได้ และโดยพื้นฐานแล้วมันจะใช้ค่าของแอตทริบิวต์ในตารางที่ถูกอ้างอิงเพื่อจำกัดขอบเขตของแอตทริบิวต์หนึ่งหรือมากกว่าในตารางที่อ้างอิง แนวคิดนี้ได้รับการอธิบายอย่างเป็นทางการว่า: "สำหรับทูเปิลทั้งหมดในตารางที่อ้างอิงซึ่งฉายภาพเหนือแอตทริบิวต์ที่อ้างอิง จะต้องมีทูเปิลในตารางที่ถูกอ้างอิงซึ่งฉายภาพเหนือแอตทริบิวต์เดียวกันเหล่านั้น โดยที่ค่าในแต่ละแอตทริบิวต์ที่อ้างอิงตรงกับค่าที่สอดคล้องกันในแอตทริบิวต์ที่ถูกอ้างอิง"

ขั้นตอนการจัดเก็บ

สตored procedure คือโค้ดที่สามารถเรียกใช้งานได้ ซึ่งเชื่อมโยงและโดยทั่วไปจะถูกจัดเก็บไว้ในฐานข้อมูล สตored procedure มักจะรวบรวมและปรับแต่งการทำงานทั่วไป เช่น การแทรกทูเพิล ลง ในความสัมพันธ์การรวบรวมข้อมูลทางสถิติเกี่ยวกับรูปแบบการใช้งาน หรือการห่อหุ้มตรรกะทางธุรกิจและการคำนวณที่ซับซ้อน บ่อยครั้งที่สตored procedure ถูกใช้เป็นอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) เพื่อความปลอดภัยหรือความเรียบง่าย การใช้งานสตored procedure บนระบบจัดการฐานข้อมูลเชิงสัมพันธ์ SQL มักอนุญาตให้นักพัฒนาใช้ประโยชน์จาก ส่วนขยาย เชิงกระบวนการ (มักเฉพาะผู้จำหน่าย) สำหรับ ไวยากรณ์ SQL แบบ ประกาศ มาตรฐาน สตored procedure ไม่ได้เป็นส่วนหนึ่งของแบบจำลองฐานข้อมูลเชิงสัมพันธ์ แต่การใช้งานเชิงพาณิชย์ทั้งหมดรวมถึงสตored procedure ไว้ด้วย

ดัชนี

ดัชนีเป็นวิธีหนึ่งในการเข้าถึงข้อมูลได้รวดเร็วยิ่งขึ้น สามารถสร้างดัชนีได้จากแอตทริบิวต์ใดๆ ก็ได้ในความสัมพันธ์การค้นหาข้อมูลโดยใช้แอตทริบิวต์เหล่านั้นสามารถค้นหาทูเปิลที่ตรงกันได้โดยตรงโดยใช้ดัชนี (คล้ายกับ การค้นหา ในตารางแฮช ) โดยไม่ต้องตรวจสอบแต่ละทูเปิลทีละรายการ นี่เปรียบเสมือนการใช้ดัชนีของหนังสือเพื่อไปยังหน้าที่มีข้อมูลที่ต้องการโดยตรง โดยไม่ต้องอ่านทั้งเล่ม ฐานข้อมูลเชิงสัมพันธ์มักมีเทคนิคการสร้างดัชนีหลายแบบ ซึ่งแต่ละแบบเหมาะสมที่สุดสำหรับลักษณะการกระจายข้อมูล ขนาดของความสัมพันธ์ และรูปแบบการเข้าถึงทั่วไป ดัชนีมักถูกนำไปใช้ผ่านB+ tree , R-treeและbitmapโดยทั่วไปแล้ว ดัชนีจะไม่ถือว่าเป็นส่วนหนึ่งของฐานข้อมูล แต่ถือเป็นรายละเอียดการใช้งาน อย่างไรก็ตาม ดัชนีมักได้รับการดูแลโดยกลุ่มเดียวกันกับที่ดูแลส่วนอื่นๆ ของฐานข้อมูล การใช้ดัชนีที่มีประสิทธิภาพทั้งบนคีย์หลักและคีย์รองสามารถปรับปรุงประสิทธิภาพการค้นหาได้อย่างมาก เนื่องจากดัชนีแบบ B-tree ส่งผลให้เวลาในการค้นหาข้อมูลเป็นสัดส่วนกับ log(n) โดยที่ n คือจำนวนแถวในตาราง ในขณะที่ดัชนีแบบแฮชส่งผลให้เวลาในการค้นหาข้อมูลคงที่ (ไม่ขึ้นอยู่กับขนาด ตราบใดที่ส่วนที่เกี่ยวข้องของดัชนีนั้นพอดีกับหน่วยความจำ)

การดำเนินการเชิงสัมพันธ์

การสอบถามข้อมูลที่กระทำกับฐานข้อมูลเชิงสัมพันธ์ และตัวแปรเชิงสัมพันธ์ ที่ได้มา ในฐานข้อมูล จะถูกแสดงออกมาในรูปของแคลคูลัสเชิงสัมพันธ์หรือพีชคณิตเชิงสัมพันธ์ ในพีชคณิตเชิงสัมพันธ์ดั้งเดิมของ Codd เขาได้แนะนำตัวดำเนินการเชิงสัมพันธ์แปดตัว โดยแบ่งออกเป็นสองกลุ่ม กลุ่มละสี่ตัวดำเนินการ ตัวดำเนินการสี่ตัวแรกนั้นอิงตาม การดำเนินการเซตทางคณิตศาสตร์แบบดั้งเดิม:

  • ตัว ดำเนินการ ยูเนียน (∪) จะรวมทูเปิลของสองความสัมพันธ์ เข้าด้วยกัน และลบทูเปิลที่ซ้ำกันทั้งหมดออกจากผลลัพธ์ ตัวดำเนินการยูเนียนเชิงสัมพันธ์นี้เทียบเท่ากับตัวดำเนินการUNION ใน SQL
  • ตัว ดำเนินการหา จุดตัด (∩) สร้างเซตของทูเปิลที่ความสัมพันธ์สองรายการมีร่วมกัน การหาจุดตัดนั้นถูกนำไปใช้ใน SQL ในรูปแบบของตัวดำเนินการINTERSECT
  • ตัวดำเนินการหา ผลต่างของเซต ( -) ทำงานกับความสัมพันธ์สองรายการ และสร้างเซตของทูเปิลจากความสัมพันธ์แรกที่ไม่ปรากฏในความสัมพันธ์ที่สอง การหาผลต่างใน SQL นั้นใช้ตัว ดำเนินการ EXCEPTหรือ MINUS
  • ผลคูณคาร์ทีเซียน (×) ของความสัมพันธ์สองรายการ คือ การเชื่อมต่อที่ไม่ถูกจำกัดด้วยเกณฑ์ใดๆ ส่งผลให้ทุกทูเปิลของความสัมพันธ์แรกถูกจับคู่กับทุกทูเปิลของความสัมพันธ์ที่สอง ผลคูณคาร์ทีเซียนถูกนำไปใช้ใน SQL ในรูปของตัวดำเนินการCross join

ตัวดำเนินการที่เหลือที่ Codd เสนอมานั้นเกี่ยวข้องกับการดำเนินการพิเศษเฉพาะสำหรับฐานข้อมูลเชิงสัมพันธ์:

  • การดำเนินการเลือกหรือจำกัด (σ) จะดึงทูเปิลจากความสัมพันธ์ โดยจำกัดผลลัพธ์ให้เหลือเฉพาะทูเปิลที่ตรงตามเกณฑ์ที่กำหนด เช่นเซตย่อยในแง่ของทฤษฎีเซต เทียบเท่ากับการเลือกใน SQL คือ คำสั่ง SELECTที่มีเงื่อนไข WHERE
  • การดำเนินการฉายภาพ (π) จะดึงเฉพาะคุณลักษณะที่ระบุจากทูเปิลหรือเซตของทูเปิลเท่านั้น
  • การดำเนินการเชื่อมต่อ (Join) ที่กำหนดไว้สำหรับฐานข้อมูลเชิงสัมพันธ์ มักเรียกว่า การเชื่อมต่อแบบธรรมชาติ (Natural Join) (⋈) ในการเชื่อมต่อประเภทนี้ ความสัมพันธ์สองรายการจะเชื่อมต่อกันด้วยคุณลักษณะที่เหมือนกัน การเชื่อมต่อแบบภายใน (Inner Join) เป็นการดำเนินการที่คล้ายกับการเชื่อมต่อแบบธรรมชาติใน MySQL ใน SQL การเชื่อมต่อแบบภายในจะป้องกันไม่ให้เกิดผลคูณคาร์ทีเซียน (Cartesian Product) เมื่อมีสองตารางในคำสั่ง SQL สำหรับแต่ละตารางที่เพิ่มเข้าไปในคำสั่ง SQL จะมีการเพิ่มการเชื่อมต่อแบบภายในอีกหนึ่งครั้งเพื่อป้องกันผลคูณคาร์ทีเซียน ดังนั้น สำหรับตาราง N ตารางในคำสั่ง SQL จะต้องมีการเชื่อมต่อแบบภายใน N−1 ครั้งเพื่อป้องกันผลคูณคาร์ทีเซียน
  • การ ดำเนินการ หารเชิงสัมพันธ์ (÷) เป็นการดำเนินการที่ซับซ้อนกว่าเล็กน้อย และโดยพื้นฐานแล้วเกี่ยวข้องกับการใช้ทูเปิลของความสัมพันธ์หนึ่ง (ตัวตั้งหาร) เพื่อแบ่งความสัมพันธ์ที่สอง (ตัวหาร) ตัวดำเนินการหารเชิงสัมพันธ์นั้นตรงกันข้ามกับตัวดำเนินการผลคูณคาร์ทีเซียน (จึงเป็นที่มาของชื่อ)

นับตั้งแต่ Codd ได้นำเสนอตัวดำเนินการแปดตัวแรก ก็มีการแนะนำหรือเสนอตัวดำเนินการอื่นๆ เพิ่มเติม รวมถึงตัวดำเนินการเปรียบเทียบเชิงสัมพันธ์ และส่วนขยายที่รองรับการซ้อนและการจัดลำดับชั้นของข้อมูล เป็นต้น

การทำให้เป็นมาตรฐาน

การทำให้เป็นมาตรฐาน (Normalization) ถูกเสนอครั้งแรกโดย Codd ในฐานะส่วนสำคัญของแบบจำลองเชิงสัมพันธ์ โดยประกอบด้วยชุดขั้นตอนที่ออกแบบมาเพื่อกำจัดโดเมนที่ไม่เรียบง่าย (ค่าที่ไม่ใช่อะตอมิก) และความซ้ำซ้อน (การทำซ้ำ) ของข้อมูล ซึ่งจะช่วยป้องกันความผิดปกติในการจัดการข้อมูลและการสูญเสียความสมบูรณ์ของข้อมูล รูปแบบการทำให้เป็นมาตรฐานที่ใช้กันทั่วไปในฐานข้อมูลเรียกว่ารูปแบบมาตรฐาน (Normal Forms )

ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS)

โครงสร้างทั่วไปของฐานข้อมูลเชิงสัมพันธ์

Connolly และ Begg นิยามระบบจัดการฐานข้อมูล (DBMS) ว่าเป็น "ระบบซอฟต์แวร์ที่ช่วยให้ผู้ใช้สามารถกำหนด สร้าง บำรุงรักษา และควบคุมการเข้าถึงฐานข้อมูลได้" [ 24 ] RDBMS เป็นส่วนขยายของคำย่อดังกล่าวซึ่งบางครั้งใช้เมื่อฐานข้อมูลพื้นฐานเป็นแบบเชิงสัมพันธ์

คำจำกัดความทางเลือกสำหรับระบบจัดการฐานข้อมูลเชิงสัมพันธ์คือ ระบบจัดการฐานข้อมูล (DBMS) ที่อิงตามแบบจำลองเชิงสัมพันธ์ฐานข้อมูลส่วนใหญ่ที่ใช้กันอย่างแพร่หลายในปัจจุบันนั้นอิงตามแบบจำลองนี้[ 25 ]

RDBMS เป็นตัวเลือกที่นิยมใช้ในการจัดเก็บข้อมูลในฐานข้อมูลที่ใช้สำหรับบันทึกทางการเงิน ข้อมูลการผลิตและโลจิสติกส์ ข้อมูลบุคลากร และแอปพลิเคชันอื่นๆ มาตั้งแต่ทศวรรษ 1980 ฐานข้อมูลเชิงสัมพันธ์มักเข้ามาแทนที่ฐานข้อมูลแบบลำดับชั้นและฐานข้อมูลเครือข่าย แบบดั้งเดิม เนื่องจาก RDBMS นั้นง่ายต่อการใช้งานและการบริหารจัดการ อย่างไรก็ตาม ข้อมูลที่จัดเก็บในเชิงสัมพันธ์ยังคงเผชิญกับความท้าทายที่ไม่ประสบความสำเร็จอย่างต่อเนื่องจาก ระบบจัดการ ฐานข้อมูลเชิงวัตถุในช่วงทศวรรษ 1980 และ 1990 (ซึ่งถูกนำมาใช้เพื่อพยายามแก้ไขปัญหาที่เรียกว่าความไม่สอดคล้องกันระหว่างฐานข้อมูลเชิงสัมพันธ์และโปรแกรมแอปพลิเคชันเชิงวัตถุ) เช่นเดียวกับ ระบบจัดการ ฐานข้อมูล XMLในช่วงทศวรรษ 1990 [ 26 ]อย่างไรก็ตาม เนื่องจากการขยายตัวของเทคโนโลยี เช่นการขยายขนาดในแนวนอนของคลัสเตอร์คอมพิวเตอร์ฐาน ข้อมูล NoSQLจึงได้รับความนิยมมากขึ้นในปัจจุบันในฐานะทางเลือกแทนฐานข้อมูล RDBMS [ 27 ]

ฐานข้อมูลเชิงสัมพันธ์แบบกระจาย

สถาปัตยกรรมฐานข้อมูลเชิงสัมพันธ์แบบกระจาย (DRDA) ได้รับการออกแบบโดยกลุ่มงานภายใน IBM ในช่วงปี 1988 ถึง 1994 DRDA ช่วยให้ฐานข้อมูลเชิงสัมพันธ์ที่เชื่อมต่อเครือข่ายสามารถทำงานร่วมกันเพื่อตอบสนองคำขอ SQL ได้[ 28 ] [ 29 ] ข้อความ โปรโตคอล และส่วนประกอบโครงสร้างของ DRDA ได้รับการกำหนดโดยสถาปัตยกรรมการจัดการข้อมูลแบบกระจาย

รายชื่อเครื่องมือฐานข้อมูล

ตามข้อมูลจากDB-Enginesในเดือนธันวาคม 2024 ระบบที่ได้รับความนิยมมากที่สุดบนเว็บไซต์ db-engines.com ได้แก่: [ 30 ]

  1. ฐานข้อมูล Oracle
  2. MySQL
  3. ไมโครซอฟต์ SQL Server
  4. โพสต์เกรสซีอาร์
  5. เกล็ดหิมะ
  6. IBM Db2
  7. ฐานข้อมูล SQLite
  8. ไมโครซอฟต์แอ็ค
  9. ดาต้าบริคส์
  10. มาเรียดีบี

จากข้อมูลของบริษัทวิจัยGartner ในปี 2011 ผู้จำหน่ายซอฟต์แวร์ฐาน ข้อมูลเชิงสัมพันธ์ที่เป็นกรรมสิทธิ์ชั้นนำ 5 อันดับแรกตามรายได้ ได้แก่Oracle (48.8%), IBM (20.2%), Microsoft (17.0%), SAPรวมถึงSybase (4.6%) และTeradata (3.7%) [ 31 ]

ดูเพิ่มเติม

แหล่งที่มา

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Relational_database&oldid=1359794648#Constraints "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ฐานข้อมูลเชิงสัมพันธ์

ฐาน ข้อมูลเชิงสัมพันธ์ ( RDB [ 1 ] ) คือ ฐานข้อมูล ที่อิงตาม แบบจำลองเชิงสัมพันธ์ ของข้อมูล ตามที่ EF Codd เสนอไว้ในปี พ.ศ. 2513 [ 2 ]

ประวัติศาสตร์

แนวคิดของฐานข้อมูลเชิงสัมพันธ์ได้รับการกำหนดโดย EF Codd ที่ IBM ในปี 1970 Codd ได้แนะนำคำว่า เชิงสัมพันธ์ ในเอกสารวิจัยของเขาเรื่อง "A Relational Model of Data for Large Shared Data Banks" [ 2 ] ในเอกสารนี้และเอกสารต่อมา เขาได้กำหนดความหมายของคำว่าความ...

แบบจำลองเชิงสัมพันธ์

แบบจำลองเชิงสัมพันธ์จะจัดระเบียบข้อมูลเป็น ตาราง หนึ่งตารางขึ้นไป(หรือ "ความสัมพันธ์") ของ คอลัมน์ และ แถว โดยมี คีย์เฉพาะ ที่ระบุแต่ละแถว แถวยังเรียกว่า เรคอร์ด หรือ ทูเปิล [ 17 ] คอลัมน์ ยังเรียกว่าแอตทริบิวต์ โดยทั่วไป แต่ละตาราง/ความสัมพันธ์จะแสดงถึง...

กุญแจ

แต่ละแถวในตารางจะมีคีย์เฉพาะของตัวเอง แถวในตารางหนึ่งสามารถเชื่อมโยงกับแถวในตารางอื่นได้โดยการเพิ่มคอลัมน์สำหรับคีย์เฉพาะของแถวที่เชื่อมโยง (คอลัมน์ดังกล่าวเรียกว่า คีย์ต่างประเทศ ) Codd...