คำนิยามคำศัพท์พื้นฐานของระบบฐานข้อมูล tuple

ฐานข้อมูลเชิงสัมพันธ์เป็นดิจิตอลฐานข้อมูลขึ้นอยู่กับรูปแบบความสัมพันธ์ของข้อมูลที่เสนอโดยEF Coddในปี 1970 [1]ระบบซอฟแวร์ที่ใช้ในการรักษาฐานข้อมูลเชิงสัมพันธ์เป็นระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ระบบฐานข้อมูลเชิงสัมพันธ์จำนวนมากมีตัวเลือกในการใช้SQL (Structured Query Language) สำหรับการสืบค้นและบำรุงรักษาฐานข้อมูล [2]

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

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

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

ในปี 1974 IBM เริ่มพัฒนาSystem Rซึ่งเป็นโครงการวิจัยเพื่อพัฒนา RDBMS ต้นแบบ [5] [6]ระบบแรกที่ขายเป็น RDBMS คือMultics Relational Data Store (มิถุนายน 2519) [ ต้องการอ้างอิง ] ออราเคิลได้รับการปล่อยตัวในปี 1979 โดยซอฟท์แวสัมพันธ์ตอนนี้ออราเคิลคอร์ปอเรชั่น [7] IngresและIBM BS12ตามมา ตัวอย่างอื่น ๆ ของ RDBMS ได้แก่DB2 , SAP Sybase ASEและInformixในปี 1984 RDBMS ตัวแรกสำหรับ Macintosh เริ่มมีการพัฒนา โดยมีชื่อรหัสว่า Silver Surfer ต่อมาได้เปิดตัวในปี 1987 ในชื่อ4th Dimensionและปัจจุบันรู้จักกันในชื่อ 4D [8]

ระบบแรกที่มีการใช้งานแบบจำลองเชิงสัมพันธ์ที่ค่อนข้างน่าเชื่อถือนั้นมาจาก:

  • มหาวิทยาลัยมิชิแกน – Micro DBMS (1969) [ ต้องการการอ้างอิง ]
  • สถาบันเทคโนโลยีแมสซาชูเซตส์ (1971) [9]
  • IBM UK Scientific Center ที่ Peterlee – IS1 (1970–72) และผู้สืบทอดPRTV (1973–79)

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

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

ขณะที่ 2009 มากที่สุดในเชิงพาณิชย์สัมพันธ์จ้าง DBMSs SQLเป็นของภาษาแบบสอบถาม [10]

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

โมเดลเชิงสัมพันธ์

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

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

กุญแจ

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

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

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

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

ความสัมพันธ์คือการเชื่อมต่อเชิงตรรกะระหว่างตารางต่างๆ ซึ่งสร้างขึ้นบนพื้นฐานของปฏิสัมพันธ์ระหว่างตารางเหล่านี้

ธุรกรรม

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

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

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

คำศัพท์

คำนิยามคำศัพท์พื้นฐานของระบบฐานข้อมูล tuple

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

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

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

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

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

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

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

Tuples ตามคำจำกัดความมีความเป็นเอกลักษณ์ หาก tuple ประกอบด้วยผู้สมัครหรือคีย์หลักแล้วเห็นได้ชัดว่ามันจะไม่ซ้ำกัน; อย่างไรก็ตาม ไม่จำเป็นต้องกำหนดคีย์หลักสำหรับแถวหรือเร็กคอร์ดที่จะเป็นทูเพิล คำจำกัดความของทูเปิลต้องการให้ไม่ซ้ำกัน แต่ไม่ต้องการคีย์หลักเพื่อกำหนด เพราะ tuple เป็นเอกลักษณ์คุณลักษณะของมันโดยความหมายเป็นการsuperkey

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

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

โดเมน

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

ข้อจำกัด

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

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

คีย์หลัก

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

กุญแจต่างประเทศ

คีย์นอกคือฟิลด์ในตารางเชิงสัมพันธ์ที่ตรงกับคอลัมน์คีย์หลักของตารางอื่น มันเกี่ยวข้องกับสองคีย์ คีย์ต่างประเทศไม่จำเป็นต้องมีค่าเฉพาะในความสัมพันธ์อ้างอิง สามารถใช้คีย์นอกในตารางตัวอ้างอิงโยงและใช้ค่าของแอตทริบิวต์ในความสัมพันธ์ที่อ้างอิงได้อย่างมีประสิทธิภาพเพื่อจำกัดโดเมนของแอตทริบิวต์อย่างน้อยหนึ่งรายการในความสัมพันธ์อ้างอิง แนวคิดได้รับการอธิบายอย่างเป็นทางการว่า: "สำหรับสิ่งอันดับทั้งหมดในความสัมพันธ์อ้างอิงที่คาดการณ์ไว้เหนือแอตทริบิวต์การอ้างอิง ต้องมี tuple ในความสัมพันธ์ที่อ้างอิงที่คาดการณ์ไว้เหนือแอตทริบิวต์เดียวกันเหล่านั้น เพื่อให้ค่าในแต่ละแอตทริบิวต์อ้างอิงตรงกับค่าที่สอดคล้องกันใน คุณลักษณะที่อ้างอิง"

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

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

ดัชนี

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

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

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

  • ตัวดำเนินการยูเนี่ยนจะรวมทูเพิลของความสัมพันธ์สองอย่างเข้าด้วยกันและลบทูเพิลที่ซ้ำกันทั้งหมดออกจากผลลัพธ์ ผู้ประกอบการสหภาพสัมพันธ์เทียบเท่ากับSQL ยูเนี่ยนผู้ประกอบการ
  • ตัวดำเนินการทางแยกสร้างชุดของทูเพิลที่ความสัมพันธ์ทั้งสองมีร่วมกัน ทางแยกถูกนำมาใช้ใน SQL ในรูปแบบของตัวดำเนินการINTERSECT
  • ตัวดำเนินการผลต่างทำหน้าที่สองความสัมพันธ์และสร้างชุดของสิ่งอันดับจากความสัมพันธ์แรกที่ไม่มีอยู่ในความสัมพันธ์ที่สอง ความแตกต่างถูกนำไปใช้ใน SQL ในรูปแบบของตัวดำเนินการEXCEPTหรือ MINUS
  • ผลคูณคาร์ทีเซียนของความสัมพันธ์สองรายการเป็นการเข้าร่วมที่ไม่ถูกจำกัดโดยเกณฑ์ใดๆ ส่งผลให้ทุก tuple ของความสัมพันธ์แรกถูกจับคู่กับทุก tuple ของความสัมพันธ์ที่สอง ผลิตภัณฑ์คาร์ทีเซียนจะดำเนินการใน SQL เป็นสครอสเข้าร่วมดำเนินการ

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

  • การเลือกหรือการจำกัด การดำเนินการดึงทูเพิลจากความสัมพันธ์ โดยจำกัดผลลัพธ์ไว้เฉพาะผู้ที่ตรงตามเกณฑ์เฉพาะ กล่าวคือเซตย่อยในแง่ของทฤษฎีเซต เทียบเท่า SQL ของการเลือกเป็นเลือกคำสั่งแบบสอบถามกับWHEREข้อ
  • การดำเนินการฉายจะแยกเฉพาะแอตทริบิวต์ที่ระบุจากทูเปิลหรือชุดของทูเปิล
  • การดำเนินการเข้าร่วมที่กำหนดไว้สำหรับฐานข้อมูลเชิงสัมพันธ์มักเรียกว่าการรวมแบบธรรมชาติ ในการเข้าร่วมประเภทนี้ ความสัมพันธ์สองประการเชื่อมต่อกันด้วยคุณลักษณะทั่วไป ประมาณ MySQL ของธรรมชาติเข้าร่วมเป็นInner เข้าร่วมดำเนินการ ใน SQL การเข้าร่วมภายในจะป้องกันไม่ให้ผลิตภัณฑ์คาร์ทีเซียนเกิดขึ้นเมื่อมีสองตารางในแบบสอบถาม สำหรับแต่ละตารางที่เพิ่มไปยัง SQL Query จะมีการเพิ่ม INNER JOIN อีกหนึ่งรายการเพื่อป้องกันผลิตภัณฑ์คาร์ทีเซียน ดังนั้น สำหรับตาราง N ในการสืบค้น SQL จะต้องมี N-1 INNER JOINS เพื่อป้องกันผลิตภัณฑ์คาร์ทีเซียน
  • การดำเนินการหารเชิงสัมพันธ์เป็นการดำเนินการที่ซับซ้อนกว่าเล็กน้อย และโดยพื้นฐานแล้วเกี่ยวข้องกับการใช้ทูเพิลของความสัมพันธ์หนึ่ง (เงินปันผล) เพื่อแบ่งความสัมพันธ์ที่สอง (ตัวหาร) ตัวดำเนินการแผนกเชิงสัมพันธ์นั้นตรงกันข้ามกับตัวดำเนินการผลิตภัณฑ์คาร์ทีเซียนอย่างมีประสิทธิภาพ (จึงเป็นชื่อ)

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

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

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

RDBMS

คำนิยามคำศัพท์พื้นฐานของระบบฐานข้อมูล tuple

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

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

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

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

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

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

จากข้อมูลของ DB-Enginesในเดือนมีนาคม พ.ศ. 2564 ระบบที่ใช้กันอย่างแพร่หลายที่สุดคือ: [23] [24]

  1. Oracle
  2. MySQL
  3. Microsoft SQL Server
  4. PostgreSQL (ซอฟต์แวร์ฟรี)
  5. IBM DB2
  6. SQLite (ซอฟต์แวร์ฟรี)
  7. Microsoft Access
  8. MariaDB (ซอฟต์แวร์ฟรี)
  9. Hive (ซอฟต์แวร์ฟรี เฉพาะสำหรับคลังข้อมูล ) [25]
  10. เทราดาต้า
  11. ฐานข้อมูล Microsoft Azure SQL

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

ดูสิ่งนี้ด้วย

  • SQL
  • ฐานข้อมูลวัตถุ (OODBMS)
  • การประมวลผลเชิงวิเคราะห์ออนไลน์ (OLAP) และROLAP (การประมวลผลเชิงสัมพันธ์ออนไลน์เชิงวิเคราะห์)
  • คลังข้อมูล
  • สตาร์สคีมา
  • สคีมาเกล็ดหิมะ
  • รายการระบบจัดการฐานข้อมูลเชิงสัมพันธ์
  • การเปรียบเทียบระบบการจัดการฐานข้อมูลเชิงสัมพันธ์

อ้างอิง

  1. อรรถเป็น ข Codd, EF (1970) "แบบจำลองเชิงสัมพันธ์ของข้อมูลสำหรับธนาคารข้อมูลที่ใช้ร่วมกันขนาดใหญ่" การติดต่อสื่อสารของพลอากาศเอก13 (6): 377–387. ดอย : 10.1145/362384.362685 .
  2. ^ แอมเบลอร์, สก็อตต์. "ฐานข้อมูลเชิงสัมพันธ์ 101: การมองภาพรวม" .[ ต้องการแหล่งที่ดีกว่า ]
  3. ^ "เป็นความสัมพันธ์รูปแบบของข้อมูลขนาดใหญ่ที่ใช้ร่วมกันข้อมูลธนาคาร" (PDF)
  4. ^ เดท, คริส. ฐานข้อมูลในเชิงลึก: ทฤษฎีเชิงสัมพันธ์สำหรับผู้ปฏิบัติงาน โอเรลลี่. ISBN 0-596-10012-4.
  5. ^ เงินทุนการปฏิวัติ: การสนับสนุนรัฐบาลเพื่อการวิจัยคอมพิวเตอร์ สำนักพิมพ์วิชาการแห่งชาติ. 8 ม.ค. 2542 ISBN 0309062780.
  6. ^ สุมาติ, ส.; Esakkirajan, S. (13 ก.พ. 2551). ความรู้พื้นฐานของระบบการจัดการฐานข้อมูลเชิงสัมพันธ์สปริงเกอร์. ISBN 3540483977. ผลิตภัณฑ์นี้เรียกว่า SQL/DS (Structured Query Language/Data Store) และทำงานภายใต้สภาพแวดล้อมระบบปฏิบัติการ DOS/VSE
  7. ^ "ออราเคิลไทม์ไลน์" (PDF) . นิตยสารกำไร . ออราเคิล. 12 (2): 26. พฤษภาคม 2550 . สืบค้นเมื่อ2013-05-16 .
  8. ^ "โปรแกรมซอฟต์แวร์ฐานข้อมูลใหม่ย้าย Macintosh ไปสู่ลีกใหญ่" . ทริบูนดิจิตัล-ชิกาโกตริบูน สืบค้นเมื่อ2016-03-17 .
  9. ^ SIGFIDET '74 Proceedings of the 1974 ACM SIGFIDET (ปัจจุบันคือ SIGMOD) เวิร์กช็อปเกี่ยวกับคำอธิบายข้อมูล การเข้าถึงและการควบคุม
  10. ^ Ramakrishnan, Raghu; ดอนเยอโควิช, ดอนโก้; รังกานาธาน, อาร์วินด์; เบเยอร์, ​​เควิน เอส.; กฤษณะประศาสน์, Muralidhar (1998). "SRQL: เรียงสัมพันธ์ Query Language" (PDF)การดำเนินการของอี SSDBM
  11. ^ "ภาพรวมฐานข้อมูลเชิงสัมพันธ์" . oracle.com .
  12. ^ "แบบจำลองความสัมพันธ์สากลสำหรับฐานข้อมูลที่ซ้อนกัน" , The Nested Universal Relation Database Model , เบอร์ลิน, ไฮเดลเบิร์ก: Springer Berlin Heidelberg, pp. 109–135, 1992, ISBN 978-3-540-55493-6, เรียกข้อมูลเมื่อ2020-11-01
  13. ^ "Gray to be Honored with AM Turing Award ฤดูใบไม้ผลินี้" . ไมโครซอฟต์เพรสพาส 1998-11-23. เก็บจากต้นฉบับเมื่อ 6 กุมภาพันธ์ 2552 . สืบค้นเมื่อ2009-01-16 .
  14. ^ เกรย์, จิม (กันยายน 1981). "แนวคิดที่เกิดรายการ: คุณธรรมและข้อ จำกัด" (PDF)การประชุมวิชาการนานาชาติครั้งที่ 7 ในฐานข้อมูลขนาดใหญ่มาก คูเปอร์ติโน, แคลิฟอร์เนีย: ตีคู่คอมพิวเตอร์ น. 144–154 . สืบค้นเมื่อ2006-11-09 .
  15. ^ สีเทา, จิมและรอยเตอร์, อันเดรีย,การประมวลผลธุรกรรมที่กระจายได้: แนวคิดและเทคนิค มอร์แกน คอฟมันน์ , 1993. ISBN  1-55860-190-2 .
  16. ^ วีส, ลีนา (2015). การจัดการข้อมูลขั้นสูง: สำหรับ SQL, NoSQL เมฆและฐานข้อมูลแบบกระจาย Walter de Gruyter GmbH & Co KG. หน้า 192.
  17. ^ วันที่ (1984) , p. 268.
  18. ^ คอนนอลลี่ โธมัส เอ็ม.; เบกก์, แคโรลีน อี. (2014). ระบบฐานข้อมูล – แนวทางปฏิบัติในการออกแบบการดำเนินการและการจัดการ (ฉบับที่ 6) เพียร์สัน หน้า 64. ISBN 978-1292061184.
  19. ^ แพรตต์, ฟิลิป เจ.; สุดท้าย แมรี่ ซี. (2014-09-08). แนวคิดการจัดการฐานข้อมูล (ฉบับที่ 8) หลักสูตร เทคโนโลยี. หน้า 29. ISBN 9781285427102.
  20. ^ "ฐานข้อมูล NoSQL กินเข้าไปในตลาดฐานข้อมูลเชิงสัมพันธ์" สืบค้นเมื่อ2018-03-14 .
  21. ^ Reinsch, R. (1988). "ฐานข้อมูลแบบกระจายสำหรับ SAA" ระบบ IBM วารสาร 27 (3): 362–389. ดอย : 10.1147/sj.273.0362 .
  22. ^ กระจายฐานข้อมูลเชิงสัมพันธ์สถาปัตยกรรมอ้างอิงIBM Corp. SC26-4651-0. 1990.
  23. ^ "การจัดอันดับเครื่องยนต์ DB" . DB-เครื่องยนต์
  24. ^ "การจัดอันดับเครื่องยนต์ DB" . DB-เครื่องยนต์2021-04-27 . สืบค้นเมื่อ2021-05-12 .
  25. ^ "DB-เครื่องยนต์การจัดอันดับของ Relational DBMS" สืบค้นเมื่อ2021-03-24 .
  26. ^ "ออราเคิลผู้นำที่ชัดเจนใน 24 $ พันล้าน RDBMS ตลาด" 2012-04-12 . ที่ดึง 2013-03-01

แหล่งที่มา

  • เดท, ซีเจ (1984). A Guide to DB2 (student ed.). แอดดิสัน-เวสลีย์ . ISBN 0201113171. ส ธ . 256383726 . อ  . 2838595M .

ลิงค์ภายนอก