ทฤษฎีฐานข้อมูลเชิงสัมพันธ์ แนวคิดพื้นฐานของฐานข้อมูลเชิงสัมพันธ์ สี่แยกและการลบ
การเขียนโปรแกรมในสภาพแวดล้อม 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 ที่เรียงลำดับของแบบฟอร์ม
แต่ละองค์ประกอบของทูเปิลแสดงถึงค่าของหนึ่งในคุณลักษณะที่สอดคล้องกับโดเมนใดโดเมนหนึ่ง
กุญแจสำคัญในความสัมพันธ์
ในความสัมพันธ์ ข้อกำหนดก็คือว่าสิ่งอันดับทั้งหมดจะต้องแตกต่างกัน หากต้องการระบุทูเพิลโดยไม่ซ้ำกัน จะต้องมีคีย์หลัก คีย์หลักคือแอตทริบิวต์หรือชุดของจำนวนแอตทริบิวต์ขั้นต่ำที่ระบุ 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 คือเซตของสิ่งอันดับอันดับ
ตัวอย่าง:
พนักงาน
ความสมบูรณ์ของความสัมพันธ์ (องศา) คือจำนวนคุณลักษณะทั้งหมดในความสัมพันธ์
จำนวนคาร์ดินัล (ภาวะเชิงการนับของความสัมพันธ์) คือจำนวนสิ่งอันดับที่แตกต่างกันทั้งหมดในความสัมพันธ์ที่ก่อตัว 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 ในกรณีนี้คือชุดของแบบฟอร์ม
ข้าว.
เป็นเรื่องง่ายที่จะเห็นว่าความสัมพันธ์เป็นการสะท้อนถึงเอนทิตีบางอย่างในโลกแห่งความเป็นจริง (ในกรณีนี้คือเอนทิตี "ส่วนหนึ่ง") และจากมุมมองของการประมวลผลข้อมูล มันเป็นตาราง เนื่องจากในฐานข้อมูลท้องถิ่น แต่ละตารางจะอยู่ในไฟล์ที่แยกจากกัน จากมุมมองของการจัดวางข้อมูลสำหรับฐานข้อมูลท้องถิ่น จึงสามารถระบุความสัมพันธ์ได้ด้วยไฟล์ สิ่งอันดับคือแถวในตารางหรือระเบียน แอ็ตทริบิวต์คือคอลัมน์ของตารางหรือฟิลด์ในเรกคอร์ด โดเมนดูเหมือนจะเป็นประเภททั่วไปที่สามารถเป็นแหล่งที่มาสำหรับประเภทฟิลด์ในเรกคอร์ดได้ ดังนั้นสามพจน์ต่อไปนี้จึงเทียบเท่ากัน:
- · ความสัมพันธ์ ตาราง ไฟล์ (สำหรับฐานข้อมูลท้องถิ่น)
- · สิ่งอันดับ, สตริง, บันทึก
- · คุณลักษณะ คอลัมน์ ฟิลด์
ฐานข้อมูลเชิงสัมพันธ์คือชุดของความสัมพันธ์ที่ประกอบด้วยข้อมูลที่จำเป็นทั้งหมดและรวมเป็นหนึ่งเดียวโดยการเชื่อมต่อต่างๆ
เรียกว่าแอตทริบิวต์ (หรือชุดของคุณลักษณะ) ที่สามารถใช้เพื่อระบุทูเพิลโดยเฉพาะ (แถว บันทึก) คีย์หลัก- คีย์หลักต้องไม่มีแอตทริบิวต์เพิ่มเติม ซึ่งหมายความว่าหากแอตทริบิวต์ที่กำหนดเองถูกแยกออกจากคีย์หลัก คุณลักษณะที่เหลือจะไม่เพียงพอที่จะระบุสิ่งอันดับแต่ละรายการโดยไม่ซ้ำกัน เพื่อเพิ่มความเร็วในการเข้าถึงคีย์หลัก ระบบจัดการฐานข้อมูล (DBMS) ทั้งหมดมีกลไกที่เรียกว่า การจัดทำดัชนี- โดยคร่าวแล้ว ดัชนีคือรายการต้นไม้กลับหัวที่ชี้ไปยังตำแหน่งที่แท้จริงของบันทึกสำหรับแต่ละคีย์หลัก โดยปกติแล้วดัชนีจะถูกนำไปใช้แตกต่างกันใน DBMS ที่แตกต่างกัน (ตามกฎแล้วใน DBMS ภายในเครื่องในรูปแบบของไฟล์แยก) อย่างไรก็ตามหลักการขององค์กรจะเหมือนกัน
เป็นไปได้ที่จะจัดทำดัชนีความสัมพันธ์โดยใช้คุณลักษณะอื่นที่ไม่ใช่คีย์หลัก ดัชนีประเภทนี้เรียกว่า ดัชนีรองและใช้เพื่อลดเวลาในการเข้าถึงเมื่อค้นหาข้อมูลในความสัมพันธ์ตลอดจนการเรียงลำดับ ดังนั้นหากความสัมพันธ์นั้นไม่ได้รับการเรียงลำดับในทางใดทางหนึ่งและอาจมีแถวที่เหลืออยู่หลังจากลบบางทูเพิลแล้ว ดัชนี (สำหรับ DBMS ในเครื่อง - ไฟล์ดัชนี) จะถูกจัดเรียงในทางตรงกันข้าม
เพื่อรักษาความสมบูรณ์ในการอ้างอิงของข้อมูล DBMS จำนวนมากมีกลไกสำหรับสิ่งที่เรียกว่า กุญแจต่างประเทศ- ความหมายของกลไกนี้คือ คุณลักษณะบางอย่าง (หรือกลุ่มของคุณลักษณะ) ของความสัมพันธ์หนึ่งได้รับการกำหนดลิงก์ไปยังคีย์หลักของความสัมพันธ์อื่น จึงเป็นการเสริมสร้างความผูกพันของการอยู่ใต้บังคับบัญชาระหว่างความสัมพันธ์เหล่านี้ ในกรณีนี้ ความสัมพันธ์ที่มีคีย์หลักถูกอ้างอิงโดยคีย์ต่างประเทศของความสัมพันธ์อื่นจะถูกเรียกว่า ความสัมพันธ์หลักหรือความสัมพันธ์หลัก และความสัมพันธ์ที่เรียกว่าการอ้างอิงมา รายละเอียดความสัมพันธ์หรือความสัมพันธ์รอง หลังจากกำหนดลิงก์ดังกล่าวแล้ว DBMS จะมีความสามารถในการตรวจสอบปัญหา "การไม่ละเมิด" ของการเชื่อมต่อระหว่างความสัมพันธ์โดยอัตโนมัติ กล่าวคือ:
- · หากคุณพยายามแทรกบันทึกลงในตารางรองซึ่ง Foreign Key ไม่ตรงกันในตารางหลัก (เช่น ไม่มีบันทึกที่มีคีย์หลักเดียวกัน) DBMS จะสร้างข้อผิดพลาด
- · หากคุณพยายามลบบันทึกออกจากตารางหลักซึ่งมีคีย์หลักมีอย่างน้อยหนึ่งลิงก์จากตารางทาส DBMS ก็จะสร้างข้อผิดพลาดเช่นกัน
- · หากคุณพยายามเปลี่ยนคีย์หลักของบันทึกในตารางหลักที่มีอย่างน้อยหนึ่งลิงก์จากตารางทาส DBMS ก็จะสร้างข้อผิดพลาดเช่นกัน
ความคิดเห็น - การลบและการเปลี่ยนแปลงบันทึกจากตารางหลักมีสองวิธี:
- 1. ห้ามการลบบันทึกทั้งหมด รวมถึงการแก้ไขคีย์หลักของตารางหลักที่อ้างอิงโดยตารางรอง
- 2. เผยแพร่การเปลี่ยนแปลงใด ๆ ในคีย์หลักของตารางหลักไปยังตารางรอง ได้แก่ :
- o หากบันทึกถูกลบในตารางหลัก จะต้องลบบันทึกทั้งหมดที่อ้างอิงถึงบันทึกที่ถูกลบในตารางรอง
- o หากคีย์หลักของเรคคอร์ดมีการเปลี่ยนแปลงในตารางหลัก ดังนั้นคีย์ต่างประเทศทั้งหมดของเรคคอร์ดที่อ้างถึงคีย์ที่ถูกเปลี่ยนแปลงจะต้องถูกเปลี่ยนในตารางรอง
ดังนั้น หลังจากที่เราคุ้นเคยกับแนวคิดพื้นฐานของทฤษฎีเชิงสัมพันธ์แล้ว เราก็สามารถเข้าสู่การพิจารณาโดยละเอียดเกี่ยวกับขั้นตอนการออกแบบฐานข้อมูลที่เราระบุไว้ข้างต้นได้
การทำดัชนีสัมพันธ์ฐานข้อมูล