ทฤษฎีฐานข้อมูลเชิงสัมพันธ์ แนวคิดพื้นฐานของฐานข้อมูลเชิงสัมพันธ์ สี่แยกและการลบ

การเขียนโปรแกรมในสภาพแวดล้อม DELPHI 6

ฐานข้อมูล สร้างรายงานโดยใช้ Word

ได้รับการอนุมัติจากสภาบรรณาธิการและสำนักพิมพ์

มหาวิทยาลัยเป็นห้องปฏิบัติการเชิงปฏิบัติการ

โวโรเนซ 2004


ยูดีซี 681.3

Vorobyov E.I., Korotkevich D.E.. การเขียนโปรแกรมในสภาพแวดล้อม Delphi 6: เวิร์กช็อปในห้องปฏิบัติการ: ตอนที่ 2: ฐานข้อมูล การสร้างรายงานโดยใช้ Word สตรีม โวโรเนซ: โวโรเนจ. สถานะ เทคโนโลยี ม., 2547. 107 น.

ส่วนที่สองของเวิร์กช็อปในห้องปฏิบัติการจะอภิปรายข้อมูลทางทฤษฎีและการปฏิบัติสำหรับการเขียนโปรแกรมในสภาพแวดล้อม Delphi 6 ในหัวข้อ: “การออกแบบฐานข้อมูล การสร้างรายงานใน Word และการใช้เธรดเมื่อสร้างแอปพลิเคชันที่มีประสิทธิภาพสูง”

สิ่งพิมพ์นี้เป็นไปตามข้อกำหนดของมาตรฐานการศึกษาของรัฐสำหรับการศึกษาวิชาชีพระดับสูงในทิศทาง 230100 “สารสนเทศและวิทยาการคอมพิวเตอร์”, พิเศษ 230104 “ระบบการออกแบบโดยใช้คอมพิวเตอร์ช่วย”, สาขาวิชา “การเขียนโปรแกรมในภาษาระดับสูง”

โต๊ะ 3. อิลลินอยส์ 19. บรรณานุกรม: 7 เรื่อง.

บรรณาธิการด้านวิทยาศาสตร์: ดร.เทค วิทยาศาสตร์ศ. เย้.. ลโววิช

ผู้ตรวจสอบ: ภาควิชาวิทยาการคอมพิวเตอร์, Voronezh Forestry Academy (หัวหน้าภาควิชา, วิทยาศาสตรดุษฎีบัณฑิต, ศาสตราจารย์ V.E. Mezhov);

ดร.เทค วิทยาศาสตร์ศ. โอ.ยู.มาคารอฟ

© Vorobyov E.I. , Korotkevich D.E. , 2004

© การออกแบบ รัฐโวโรเนซ

มหาวิทยาลัยเทคนิค พ.ศ. 2547


การแนะนำ

แนวคิดของฐานข้อมูล

ฐานข้อมูลถือเป็นข้อได้เปรียบหลักของ Delphi แม้แต่ภาษาเฉพาะสำหรับการทำงานกับฐานข้อมูล (เช่น MS Visual FoxPro) ก็ยังด้อยกว่าอย่างชัดเจนในแง่ของความเรียบง่ายและพลังในการเขียนโปรแกรมสำหรับแอปพลิเคชันประเภทนี้ เดลฟีซ่อนความซับซ้อนทั้งหมดและในขณะเดียวกันก็ให้พลังที่ยิ่งใหญ่ที่สุด ไม่เคยมีงานใดที่ไม่สามารถดำเนินการได้ใน Delphi ในช่วงเวลาอันสั้น และสิ่งสำคัญคือทั้งหมดนี้ถูกนำไปใช้อย่างสะดวกและเข้าใจง่าย ใน Delphi คุณสามารถสร้างแอปพลิเคชั่นง่ายๆ ได้ แม้จะมีฐานข้อมูลที่ซับซ้อน โดยไม่ต้องใช้โค้ดแม้แต่บรรทัดเดียว บทช่วยสอนนี้ครอบคลุมถึงงานในห้องปฏิบัติการสำหรับการเรียนรู้เทคนิคการทำงานกับฐานข้อมูลท้องถิ่น

ทฤษฎีฐานข้อมูลเชิงสัมพันธ์

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

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

ฐานข้อมูลท้องถิ่น

ในบรรดาฐานข้อมูลท้องถิ่น ลองพิจารณาฐานข้อมูลเชิงสัมพันธ์เป็นฐานข้อมูลที่พบบ่อยที่สุด ฐานข้อมูลเชิงสัมพันธ์คืออะไร? นี่คือตารางที่คอลัมน์ต่างๆ เป็นชื่อของข้อมูลที่เก็บไว้ในนั้น และแต่ละแถวจะจัดเก็บข้อมูลนั้นเอง ตารางฐานข้อมูลจะคล้ายกับสเปรดชีต Excel (เพื่อให้แม่นยำยิ่งขึ้น Excel จะจัดเก็บข้อมูลในรูปแบบที่เป็นกรรมสิทธิ์ซึ่งสร้างจากเทคโนโลยีฐานข้อมูล) ตารางฐานข้อมูลท้องถิ่นสามารถจัดเก็บไว้ในฮาร์ดไดรฟ์ภายในเครื่องหรือจัดเก็บไว้ในไดรฟ์เครือข่ายบนเซิร์ฟเวอร์ไฟล์จากส่วนกลาง ไฟล์เหล่านี้สามารถคัดลอกได้โดยใช้เครื่องมือมาตรฐานเช่นเดียวกับไฟล์อื่นๆ เนื่องจากตารางฐานข้อมูลไม่ได้เชื่อมโยงกับตำแหน่งเฉพาะ สิ่งสำคัญคือโปรแกรมสามารถค้นหาตารางได้ แต่ละตารางจะต้องมีเขตข้อมูลที่ไม่ซ้ำกันซึ่งจะระบุแถวโดยไม่ซ้ำกัน ฟิลด์นี้เรียกว่าฟิลด์คีย์ ฟิลด์เหล่านี้มักใช้ในการเชื่อมโยงหลายตารางเข้าด้วยกัน แต่ถึงแม้ว่าตารางจะไม่เกี่ยวข้องกัน แต่ก็ยังจำเป็นต้องมีฟิลด์คีย์ ขอแนะนำให้ใช้ประเภทตัวเลขเป็นคีย์ และหากฐานข้อมูลอนุญาต จะดีกว่าหากเป็นประเภท "การเพิ่มอัตโนมัติ" (เพิ่ม/ลดจำนวนหรือตัวนับโดยอัตโนมัติ) ชื่อคอลัมน์ในตารางฐานข้อมูลจะต้องไม่ซ้ำกัน แต่ในกรณีนี้ไม่จำเป็นต้องเป็นตัวเลข พวกเขาสามารถเรียกสิ่งที่คุณต้องการได้ตราบใดที่มันมีเอกลักษณ์และเข้าใจได้ แต่ละคอลัมน์ (ช่องฐานข้อมูล) ต้องมีประเภทเฉพาะ จำนวนประเภทและความหลากหลายของมันขึ้นอยู่กับประเภทของฐานข้อมูล ตัวอย่างเช่น รูปแบบ dBASE (ไฟล์ที่มีนามสกุล DBF) รองรับเพียง 6 ประเภท และ Paradox รองรับได้ถึง 15 ประเภทแล้ว ฐานข้อมูลสามารถเก็บไว้ในไฟล์เดียว (Access ) หรือในหลาย ๆ (Paradox, dBase) แม่นยำยิ่งขึ้น ข้อมูลตารางจะถูกจัดเก็บไว้ในไฟล์เดียวเสมอ แต่ข้อมูลเพิ่มเติมสามารถอยู่ในไฟล์แยกกันได้ ข้อมูลเพิ่มเติมอาจรวมถึงดัชนี ข้อจำกัด หรือรายการค่าเริ่มต้นสำหรับฟิลด์เฉพาะ หากไฟล์อย่างน้อยหนึ่งไฟล์เสียหายหรือถูกลบ ข้อมูลอาจไม่สามารถแก้ไขได้

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

หากคุณต้องการโต๊ะที่จะเรียงลำดับตามสนาม " นามสกุล" จากนั้นฟิลด์นี้จะต้องได้รับการจัดทำดัชนีก่อน จากนั้นคุณเพียงแค่ต้องระบุว่าตอนนี้ตารางควรทำงานกับดัชนีดังกล่าวแล้วและมันจะถูกจัดเรียงโดยอัตโนมัติ

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

วงจรชีวิตของผลิตภัณฑ์ซอฟต์แวร์ใดๆ รวมถึงระบบการจัดการฐานข้อมูล ประกอบด้วย (ส่วนใหญ่) ของขั้นตอนของการออกแบบ การนำไปปฏิบัติ และการดำเนินงาน

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

ข้อกำหนดฐานข้อมูล

ดังนั้นฐานข้อมูลที่ออกแบบมาอย่างดี:

1. ตอบสนองทุกความต้องการของผู้ใช้สำหรับเนื้อหาฐานข้อมูล ก่อนที่จะออกแบบฐานข้อมูล จำเป็นต้องดำเนินการวิจัยอย่างละเอียดเกี่ยวกับข้อกำหนดของผู้ใช้สำหรับการทำงานของฐานข้อมูล

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

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

4. ตรงตามข้อกำหนดด้านประสิทธิภาพฐานข้อมูลของผู้ใช้ ด้วยข้อมูลปริมาณมาก ปัญหาการรักษาผลผลิต

เริ่มมีบทบาทสำคัญทันที "เน้น" ข้อบกพร่องทั้งหมดของขั้นตอนการออกแบบ

ประเด็นต่อไปนี้แสดงถึงขั้นตอนพื้นฐานของการออกแบบฐานข้อมูล:

1. กำหนดความต้องการข้อมูลของฐานข้อมูล

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

3. จับคู่เอนทิตีและคุณลักษณะ - ตารางและคอลัมน์ (ฟิลด์) ในรูปแบบ DBMS ที่คุณเลือก (Paradox, dBase, FoxPro, Access, Clipper, InterBase, Sybase, Informix, Oracle ฯลฯ )

4. กำหนดคุณลักษณะที่ระบุแต่ละออบเจ็กต์โดยไม่ซ้ำกัน

5. พัฒนากฎที่จะสร้างและรักษาความสมบูรณ์ของข้อมูล

6. สร้างการเชื่อมต่อระหว่างวัตถุ (ตารางและคอลัมน์) ทำให้ตารางเป็นมาตรฐาน

7. วางแผนสำหรับประเด็นด้านความน่าเชื่อถือของข้อมูล และหากจำเป็น ให้รักษาความลับของข้อมูล


ข้อมูลที่เกี่ยวข้อง.


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

ดังนั้นหากคุณกำลังจะเริ่มต้นการศึกษาในด้านนี้หรือคุณเพียงแค่สนใจโปรดคลิกที่แมว

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

ขั้นแรก ขอแนะนำแนวคิดของฐานข้อมูลเชิงสัมพันธ์ซึ่งเราจะดำเนินการทั้งหมด

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

ตารางผลิตภัณฑ์

บัตรประจำตัวประชาชน ชื่อ บริษัท ราคา
123 คุกกี้ บจก. ด้านมืด 190
156 ชา บจก. ด้านมืด 60
235 สับปะรด OJSC “ฟรุกตี้” 100
623 มะเขือเทศ OOO "ผัก" 130

ตารางประกอบด้วย 4 แถว โดย 1 แถวในตารางเป็นทูเพิลในทฤษฎีเชิงสัมพันธ์ ชุดของสิ่งอันดับอันดับเรียกว่าความสัมพันธ์
ก่อนที่จะกำหนดความสัมพันธ์ ขอแนะนำคำอื่น - โดเมน โดเมนที่เกี่ยวข้องกับตารางคือคอลัมน์

เพื่อความชัดเจน ตอนนี้เราขอแนะนำคำจำกัดความที่เข้มงวดของความสัมพันธ์

ให้ N กำหนดให้ D1,D2, … ได้รับ Dn (โดเมน) ความสัมพันธ์ R เหนือชุดเหล่านี้คือชุดของสิ่งอันดับ N ที่เรียงลำดับของแบบฟอร์ม โดยที่ d1 เป็นของ D1 เป็นต้น เซต D1,D2,..Dn เรียกว่าโดเมนของความสัมพันธ์ R
แต่ละองค์ประกอบของทูเปิลแสดงถึงค่าของหนึ่งในคุณลักษณะที่สอดคล้องกับโดเมนใดโดเมนหนึ่ง

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

ตารางไดรเวอร์

จะเห็นได้ว่าองค์กรสามารถมีไดรเวอร์ได้หลายตัว และเพื่อที่จะระบุไดรเวอร์ได้โดยไม่ซ้ำกัน จำเป็นต้องมีทั้งค่าจากคอลัมน์ "ชื่อองค์กร" และจากคอลัมน์ "ชื่อไดรเวอร์" คีย์ดังกล่าวเรียกว่าคีย์ผสม

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

ทฤษฎีเตรียมการนี้จะเพียงพอที่จะแนะนำให้คุณรู้จักกับการดำเนินการพื้นฐานของพีชคณิตเชิงสัมพันธ์

การดำเนินการของพีชคณิตเชิงสัมพันธ์

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

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

ตารางผู้ขาย

บัตรประจำตัวประชาชน ผู้ขาย
123 OOO “โผ”
156 JSC "เวโดร"
235 CJSC “บาซ่าผัก”
623 JSC "บริษัท"

ยอมรับว่าในตาราง ID นี้เป็นคีย์ต่างประเทศที่เชื่อมโยงกับคีย์หลักของตาราง PRODUCTS

ก่อนอื่น มาดูการดำเนินการที่ง่ายที่สุด - ชื่อของความสัมพันธ์ ผลลัพธ์จะเป็นความสัมพันธ์เดียวกัน นั่นคือ โดยการดำเนินการ PRODUCTS เราจะได้รับสำเนาของความสัมพันธ์ PRODUCTS

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

ไวยากรณ์การดำเนินการ:
π (รหัส ราคา) สินค้า

ในเงื่อนไขตัวอย่าง เราสามารถใช้นิพจน์บูลีนใดก็ได้ เรามาเลือกอีกรายการหนึ่งซึ่งมีราคามากกว่า 90 และรหัสผลิตภัณฑ์น้อยกว่า 300:

σ(ราคา>90^รหัส<300) PRODUCTS

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

เราได้รับผลิตภัณฑ์คาร์ทีเซียนของตารางผลิตภัณฑ์และผู้ขาย
ไวยากรณ์การดำเนินการ:

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

(สิ่งอันดับเดียวกันจะถูกเน้นด้วยสี)

รหัสสินค้า ชื่อ บริษัท ราคา รหัสผู้ขาย ผู้ขาย
123 คุกกี้ บจก. ด้านมืด 190 123 OOO “โผ”
156 ชา บจก. ด้านมืด 60 156 JSC "เวโดร"
123 คุกกี้ บจก. ด้านมืด 190 156 JSC "เวโดร"
156 ชา บจก. ด้านมืด 60 123 OOO “โผ”

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

π (ผู้ขาย) σ (RODUCTS.ID=SELLERS.ID ^ ราคา<90) PRODUCTS × SELLERS

จากการดำเนินการนี้ เราได้รับความสัมพันธ์:

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

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

ลองเชื่อมโยงความสัมพันธ์ระหว่างผลิตภัณฑ์และผู้ขายและรับความสัมพันธ์

รหัสสินค้า ชื่อ บริษัท ราคา รหัสผู้ขาย ผู้ขาย
123 คุกกี้ บจก. ด้านมืด 190 123 OOO “โผ”
156 ชา บจก. ด้านมืด 60 156 JSC "เวโดร"
235 สับปะรด OJSC “ฟรุกตี้” 100 235 CJSC “บาซ่าผัก”
623 มะเขือเทศ OOO "ผัก" 130 623 JSC "บริษัท"

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

ไวยากรณ์การดำเนินการ:
สินค้า ⋈ ผู้ขาย;

คุณได้รับความสัมพันธ์นี้:

รหัสสินค้า ชื่อ บริษัท ราคา ผู้ขาย
123 คุกกี้ บจก. ด้านมืด 190 OOO “โผ”
156 ชา บจก. ด้านมืด 60 JSC "เวโดร"
235 สับปะรด OJSC “ฟรุกตี้” 100 CJSC “บาซ่าผัก”
623 มะเขือเทศ OOO "ผัก" 130 JSC "บริษัท"
สี่แยกและการลบ
ผลลัพธ์ของการดำเนินการตัดกันจะเป็นความสัมพันธ์ที่ประกอบด้วยสิ่งอันดับซึ่งรวมอยู่ในความสัมพันธ์ทั้งสองอย่างสมบูรณ์
ผลลัพธ์ของการลบจะเป็นความสัมพันธ์ที่ประกอบด้วยสิ่งอันดับซึ่งเป็นสิ่งอันดับของความสัมพันธ์ที่หนึ่ง ไม่ใช่สิ่งอันดับของความสัมพันธ์ที่สอง
การดำเนินการเหล่านี้คล้ายคลึงกับการดำเนินการเดียวกันในฉาก ดังนั้นฉันคิดว่าไม่จำเป็นต้องอธิบายรายละเอียดเหล่านี้
แหล่งที่มาของข้อมูล
  • พื้นฐานของการใช้และการออกแบบฐานข้อมูล - V. M. Ilyushechkin
  • หลักสูตรการบรรยาย Introduction to Databases - Jennifer Widom, Stanford University

ฉันจะขอบคุณสำหรับความคิดเห็นที่มีเหตุผล

RMD ถูกคิดค้นและพัฒนาโดย E. Codd ในปี 1970 ผู้ติดตามของเขาคือเดท

RMD ขึ้นอยู่กับแนวคิด ความสัมพันธ์เซต-ทฤษฎี .

ทัศนคติ เป็นตารางสองมิติที่มีข้อมูลบางส่วน

เอสเซ้นส์ เป็นวัตถุในลักษณะใด ๆ ข้อมูลที่ถูกจัดเก็บไว้ในฐานข้อมูล

คุณลักษณะ เป็นคุณสมบัติที่แสดงลักษณะของเอนทิตี

ให้ D 1 ,D 2 ,…,D n –n-sets มอบให้

ดังนั้นความสัมพันธ์ R คือเซตของสิ่งอันดับอันดับ d i єD i โดยที่ d i เป็นคุณลักษณะ D i คือโดเมน

ตัวอย่าง:

พนักงาน

ความสมบูรณ์ของความสัมพันธ์ (องศา) คือจำนวนคุณลักษณะทั้งหมดในความสัมพันธ์

จำนวนคาร์ดินัล (ภาวะเชิงการนับของความสัมพันธ์) คือจำนวนสิ่งอันดับที่แตกต่างกันทั้งหมดในความสัมพันธ์ที่ก่อตัว R

ทัศนคติ เป็นส่วนย่อยของผลิตภัณฑ์คาร์ทีเซียนที่มีโดเมนตั้งแต่หนึ่งโดเมนขึ้นไป

ตัวอย่าง : มีมากมาย

ง 1* ง 2* ง 3 =((A,B,3),(A,B,4),(A,B,5),(A,C,3),(A,C,4), (A,C,5),(2,B,3),(2,B,4),(2,B,5),(2,C,3),(2,C,4),

แผนภาพความสัมพันธ์ คือชุดจำกัดของชื่อคุณลักษณะความสัมพันธ์

โดเมน – ชุดของค่าที่เป็นไปได้ทั้งหมดของคุณลักษณะใด ๆ ของความสัมพันธ์

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

ชุดย่อยของคุณลักษณะ P ของความสัมพันธ์ R เรียกว่าคีย์ตัวเลือก (คีย์ที่เป็นไปได้) หากตรงตามเงื่อนไขสองข้อต่อไปนี้:

    ในความสัมพันธ์ R ไม่สามารถมีสองสิ่งอันดับที่แตกต่างกันที่มีค่าเดียวกันได้ (ซึ่งเรียกว่าคุณสมบัติเฉพาะ)

    ไม่มีเซตย่อย P ที่มีคุณสมบัติเป็นเอกลักษณ์

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

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

โดยปกติแล้วคีย์จะถูกใช้เพื่อวัตถุประสงค์ดังต่อไปนี้:

    ขจัดความซ้ำซ้อนของค่าคุณลักษณะที่สำคัญ

    การเรียงลำดับสิ่งอันดับ

    เร่งการทำงานด้วยสิ่งอันดับความสัมพันธ์

    การจัดระเบียบการเชื่อมโยงตาราง

ปล่อยให้มีคุณลักษณะที่ไม่ใช่คีย์ A ในความสัมพันธ์ R1 ซึ่งค่านั้นเป็นค่าของคุณลักษณะคีย์ B ของความสัมพันธ์ R2 อีกอันหนึ่ง จากนั้นเราบอกว่าคุณลักษณะ A ของความสัมพันธ์ R1 คือ คีย์ต่างประเทศ .

ความสัมพันธ์ใดๆ ก็ตามสามารถแสดงเป็นตารางได้ แต่ไม่ใช่ทุกตารางจะเป็นความสัมพันธ์ เพื่อให้ตารางที่กำหนดเองมีความสัมพันธ์กัน จะต้องตรงตามเงื่อนไขสี่ประการ:

    รายการทั้งหมดจะต้องมีโครงสร้างเดียวกัน

    แต่ละรายการในตารางต้องไม่ซ้ำกัน

    ค่าขององค์ประกอบของคอลัมน์เดียวกันจะต้องอยู่ในโดเมนเดียวกัน

    ชื่อคอลัมน์ต้องไม่ซ้ำกัน

เพิ่ม– การดำเนินการนี้รายงานข้อผิดพลาดในกรณีต่อไปนี้:

    สิ่งอันดับที่ถูกเพิ่มไม่ตรงกับสคีมาความสัมพันธ์

    ค่าทูเพิลบางค่าไม่อยู่ในโดเมนที่เกี่ยวข้อง

    สิ่งทูเปิลตรงกับคีย์ของทูเพิลที่มีอยู่แล้วในความสัมพันธ์

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

สำหรับการดำเนินการนี้ เกิดข้อผิดพลาดในการเพิ่มและลบทั้งหมด

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

ระบบจัดการฐานข้อมูล (DBMS) คือชุดเครื่องมือภาษาและซอฟต์แวร์ที่ออกแบบมาเพื่อการสร้าง ดูแลรักษา และแบ่งปันฐานข้อมูลกับผู้ใช้จำนวนมาก ผู้ใช้ DBMS สามารถแบ่งออกเป็นสามกลุ่มใหญ่:

  • นักพัฒนาฐานข้อมูลมีหน้าที่เขียนโปรแกรมแอปพลิเคชันที่ใช้ฐานข้อมูล
  • ผู้ใช้ปลายทางทำงานกับฐานข้อมูลผ่านระบบข้อมูลบางอย่างหรือส่วนต่อประสานผู้ใช้ของระบบจัดการฐานข้อมูล
  • ผู้ดูแลระบบฐานข้อมูลรับประกันการบำรุงรักษาฐานข้อมูล ความปลอดภัยและความปลอดภัยของข้อมูล และการกำหนดค่าฐานข้อมูล

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

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

  • ข้อมูลทั้งหมดจะแสดงตามแนวคิดเป็นชุดแถวและคอลัมน์ตามลำดับที่เรียกว่าความสัมพันธ์
  • ข้อมูลทั้งหมดเป็นสเกลาร์
  • แถวของข้อมูลเรียกว่าทูเพิล จำนวนสิ่งทูเปิลเรียกว่าจำนวนนับ
  • แต่ละคอลัมน์ในทูเพิลเรียกว่าแอตทริบิวต์ จำนวนคุณลักษณะเรียกว่าระดับของความสัมพันธ์
  • การไม่มีข้อมูลอธิบายด้วยค่า NULL;
  • คีย์ที่เป็นไปได้ K สำหรับความสัมพันธ์ R คือเซตย่อยของชุดคุณลักษณะ R ที่มีคุณสมบัติไม่ซ้ำกันเสมอ (กล่าวคือ ไม่มีสิ่งอันดับสองอันใดในความสัมพันธ์ R ที่มีค่า K เท่ากัน) และคุณสมบัติของการไม่ซ้ำซ้อน (เช่น ไม่มีเซตย่อยของ K ที่มีคุณสมบัติเฉพาะตัว) คีย์ตัวเลือกที่ประกอบด้วยมากกว่าหนึ่งคุณลักษณะเรียกว่าคีย์ผสม ในขณะที่คีย์ตัวเลือกที่ประกอบด้วยหนึ่งเรียกว่าคีย์ธรรมดา คีย์หลักคือคีย์ตัวเลือกที่ใช้เรียงลำดับสิ่งอันดับในความสัมพันธ์
  • คีย์ต่างประเทศถูกกำหนดดังนี้ ให้ R2 มีความสัมพันธ์กัน จากนั้นคีย์นอก FK ในความสัมพันธ์ R2 จะเป็นเซตย่อยของชุดคุณลักษณะ R2 โดยมีความสัมพันธ์ R1 กับคีย์ที่เป็นไปได้ K และค่า FK ในทูเปิล R2 ใดๆ จะตรงกับค่า K ของทูเปิลบางตัวใน R1 เสมอ ข้อจำกัดที่ว่าค่าของคีย์นอกจะต้องเพียงพอกับค่าของคีย์ตัวเลือกที่เกี่ยวข้องนั้นเรียกว่าข้อจำกัดในการอ้างอิง ดังนั้น Referential Integrity หมายถึงข้อกำหนดที่ไม่มีการละเมิดข้อจำกัดในการอ้างอิงในฐานข้อมูล

การดำเนินการต่อไปนี้ได้รับอนุญาตกับข้อมูลในแบบจำลองเชิงสัมพันธ์:

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

ก่อนที่เราจะดูรายละเอียดแต่ละขั้นตอนเหล่านี้ เรามาทบทวนแนวคิดพื้นฐานของฐานข้อมูลเชิงสัมพันธ์กันก่อน ในทฤษฎีเชิงสัมพันธ์ หนึ่งในทฤษฎีหลักคือแนวคิดเรื่องความสัมพันธ์ ในทางคณิตศาสตร์อัตราส่วนถูกกำหนดดังนี้ ให้ n กำหนดให้ D1,D2,...,Dn ดังนั้น R คือความสัมพันธ์ของเซตเหล่านี้ ถ้า R คือเซตของเซตเรียงลำดับของแบบฟอร์ม< d1,d2,...,dn>โดยที่ d1 เป็นองค์ประกอบจาก D1, d2 เป็นองค์ประกอบจาก D2, ..., dn เป็นองค์ประกอบจาก Dn ในกรณีนี้คือชุดของแบบฟอร์ม เรียกว่าสิ่งอันดับ และเซต D1,D2,...,Dn เรียกว่าโดเมน แต่ละสิ่งอันดับประกอบด้วยองค์ประกอบที่เลือกจากโดเมนของตน องค์ประกอบเหล่านี้เรียกว่าแอตทริบิวต์และค่าของพวกเขา - ค่าแอตทริบิวต์นำเสนอเราด้วยการแสดงความสัมพันธ์แบบกราฟิกจากมุมมองที่ต่างกัน

ข้าว.

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

  • · ความสัมพันธ์ ตาราง ไฟล์ (สำหรับฐานข้อมูลท้องถิ่น)
  • · สิ่งอันดับ, สตริง, บันทึก
  • · คุณลักษณะ คอลัมน์ ฟิลด์

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

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

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

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

  • · หากคุณพยายามแทรกบันทึกลงในตารางรองซึ่ง Foreign Key ไม่ตรงกันในตารางหลัก (เช่น ไม่มีบันทึกที่มีคีย์หลักเดียวกัน) DBMS จะสร้างข้อผิดพลาด
  • · หากคุณพยายามลบบันทึกออกจากตารางหลักซึ่งมีคีย์หลักมีอย่างน้อยหนึ่งลิงก์จากตารางทาส DBMS ก็จะสร้างข้อผิดพลาดเช่นกัน
  • · หากคุณพยายามเปลี่ยนคีย์หลักของบันทึกในตารางหลักที่มีอย่างน้อยหนึ่งลิงก์จากตารางทาส DBMS ก็จะสร้างข้อผิดพลาดเช่นกัน

ความคิดเห็น - การลบและการเปลี่ยนแปลงบันทึกจากตารางหลักมีสองวิธี:

  • 1. ห้ามการลบบันทึกทั้งหมด รวมถึงการแก้ไขคีย์หลักของตารางหลักที่อ้างอิงโดยตารางรอง
  • 2. เผยแพร่การเปลี่ยนแปลงใด ๆ ในคีย์หลักของตารางหลักไปยังตารางรอง ได้แก่ :
    • o หากบันทึกถูกลบในตารางหลัก จะต้องลบบันทึกทั้งหมดที่อ้างอิงถึงบันทึกที่ถูกลบในตารางรอง
    • o หากคีย์หลักของเรคคอร์ดมีการเปลี่ยนแปลงในตารางหลัก ดังนั้นคีย์ต่างประเทศทั้งหมดของเรคคอร์ดที่อ้างถึงคีย์ที่ถูกเปลี่ยนแปลงจะต้องถูกเปลี่ยนในตารางรอง

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

การทำดัชนีสัมพันธ์ฐานข้อมูล