IMS DB - ฐานข้อมูลเชิงตรรกะ
ฐานข้อมูล IMS มีกฎว่าแต่ละประเภทเซ็กเมนต์สามารถมีพาเรนต์ได้เพียงคนเดียว สิ่งนี้จำกัดความซับซ้อนของฐานข้อมูลทางกายภาพ แอปพลิเคชัน DL / I จำนวนมากต้องการโครงสร้างที่ซับซ้อนซึ่งอนุญาตให้เซ็กเมนต์มีเซ็กเมนต์แม่สองประเภท เพื่อเอาชนะข้อ จำกัด นี้ DL / I อนุญาตให้ DBA ใช้ความสัมพันธ์เชิงตรรกะซึ่งเซ็กเมนต์สามารถมีพ่อแม่ทั้งทางกายภาพและทางตรรกะได้ เราสามารถสร้างความสัมพันธ์เพิ่มเติมได้ภายในฐานข้อมูลทางกายภาพเดียว โครงสร้างข้อมูลใหม่หลังจากใช้ความสัมพันธ์เชิงตรรกะเรียกว่าฐานข้อมูลลอจิคัล
ความสัมพันธ์เชิงตรรกะ
ความสัมพันธ์เชิงตรรกะมีคุณสมบัติดังต่อไปนี้ -
ความสัมพันธ์เชิงตรรกะคือเส้นทางระหว่างสองส่วนที่เกี่ยวข้องกันในเชิงเหตุผลและไม่ใช่ทางกายภาพ
โดยปกติแล้วความสัมพันธ์เชิงตรรกะจะถูกสร้างขึ้นระหว่างฐานข้อมูลที่แยกจากกัน แต่เป็นไปได้ที่จะมีความสัมพันธ์ระหว่างเซ็กเมนต์ของฐานข้อมูลหนึ่งโดยเฉพาะ
ภาพต่อไปนี้แสดงฐานข้อมูลที่แตกต่างกันสองฐานข้อมูล หนึ่งคือฐานข้อมูลนักเรียนและอีกอันคือฐานข้อมูลห้องสมุด เราสร้างความสัมพันธ์เชิงตรรกะระหว่างส่วนหนังสือที่ออกจากฐานข้อมูลนักเรียนและส่วนหนังสือจากฐานข้อมูลห้องสมุด
นี่คือลักษณะของฐานข้อมูลเชิงตรรกะเมื่อคุณสร้างความสัมพันธ์เชิงตรรกะ -
กลุ่มเด็กตรรกะ
ส่วนลูกเชิงตรรกะเป็นพื้นฐานของความสัมพันธ์เชิงตรรกะ เป็นส่วนข้อมูลทางกายภาพ แต่สำหรับ DL / I ดูเหมือนว่ามีผู้ปกครองสองคน กลุ่มหนังสือในตัวอย่างข้างต้นมีกลุ่มหลักสองกลุ่ม เซ็กเมนต์หนังสือที่ออกคือพาเรนต์เชิงตรรกะและเซ็กเมนต์ห้องสมุดคือพาเรนต์ทางกายภาพ การเกิดเซกเมนต์ลูกแบบลอจิคัลหนึ่งครั้งมีการเกิดเซ็กเมนต์พาเรนต์แบบโลจิคัลเพียงหนึ่งครั้งและการเกิดเซ็กเมนต์พาเรนต์แบบลอจิคัลหนึ่งครั้งสามารถมีเซกเมนต์ลูกทางตรรกะได้
ฝาแฝดตรรกะ
ฝาแฝดแบบลอจิคัลคือการเกิดขึ้นของประเภทเซ็กเมนต์ชายน์แบบลอจิคัลที่ทั้งหมดอยู่ภายใต้การเกิดครั้งเดียวของประเภทเซ็กเมนต์แม่แบบตรรกะ DL / I ทำให้ส่วนย่อยลอจิคัลปรากฏคล้ายกับเซ็กเมนต์ชายน์ทางกายภาพจริง สิ่งนี้เรียกอีกอย่างว่าเซ็กเมนต์ลูกเชิงตรรกะเสมือน
ประเภทของความสัมพันธ์เชิงตรรกะ
DBA สร้างความสัมพันธ์เชิงตรรกะระหว่างเซ็กเมนต์ ในการใช้ความสัมพันธ์เชิงตรรกะ DBA จะต้องระบุใน DBDGEN สำหรับฐานข้อมูลทางกายภาพที่เกี่ยวข้อง ความสัมพันธ์เชิงตรรกะมีสามประเภท -
- Unidirectional
- เสมือนแบบสองทิศทาง
- แบบสองทิศทางทางกายภาพ
ทิศทางเดียว
การเชื่อมต่อแบบลอจิคัลไปจากลูกลอจิคัลไปยังโลจิคัลพาเรนต์และไม่สามารถไปทางอื่นได้
เสมือนแบบสองทิศทาง
ช่วยให้เข้าถึงได้ทั้งสองทิศทาง ลูกตรรกะในโครงสร้างทางกายภาพและลูกตรรกะเสมือนที่สอดคล้องกันสามารถมองเห็นได้เป็นเซ็กเมนต์ที่จับคู่
แบบสองทิศทางทางกายภาพ
เด็กตรรกะเป็นผู้อยู่ใต้บังคับบัญชาที่จัดเก็บไว้ทางกายภาพสำหรับทั้งพ่อแม่ทางกายภาพและทางตรรกะ สำหรับแอปพลิเคชันโปรแกรมจะปรากฏในลักษณะเดียวกับลูกลอจิคัลเสมือนแบบสองทิศทาง
ข้อควรพิจารณาในการเขียนโปรแกรม
ข้อควรพิจารณาในการเขียนโปรแกรมสำหรับการใช้ฐานข้อมูลเชิงตรรกะมีดังนี้ -
DL / ฉันเรียกเพื่อเข้าถึงฐานข้อมูลยังคงเหมือนเดิมกับฐานข้อมูลลอจิคัลด้วย
บล็อกข้อมูลจำเพาะของโปรแกรมระบุโครงสร้างที่เราใช้ในการโทร ในบางกรณีเราไม่สามารถระบุได้ว่าเรากำลังใช้ฐานข้อมูลเชิงตรรกะ
ความสัมพันธ์เชิงตรรกะเพิ่มมิติใหม่ในการเขียนโปรแกรมฐานข้อมูล
คุณต้องระมัดระวังในขณะที่ทำงานกับฐานข้อมูลเชิงตรรกะเนื่องจากฐานข้อมูลสองฐานข้อมูลถูกรวมเข้าด้วยกัน หากคุณแก้ไขฐานข้อมูลหนึ่งการปรับเปลี่ยนเดียวกันจะต้องแสดงในฐานข้อมูลอื่น
ข้อกำหนดของโปรแกรมควรระบุว่าการประมวลผลใดที่อนุญาตให้ใช้บนฐานข้อมูล หากละเมิดกฎการประมวลผลคุณจะได้รับรหัสสถานะที่ไม่ว่างเปล่า
กลุ่มที่เชื่อมต่อกัน
ส่วนลูกแบบลอจิคัลจะเริ่มต้นด้วยคีย์ที่ต่อกันทั้งหมดของพาเรนต์ปลายทางเสมอ ซึ่งเรียกว่า Destination Parent Concatenated Key (DPCK) คุณต้องเขียนรหัส DPCK ที่จุดเริ่มต้นของพื้นที่ I / O เซ็กเมนต์ของคุณเสมอสำหรับลูกเชิงตรรกะ ในฐานข้อมูลเชิงตรรกะเซ็กเมนต์ที่เชื่อมต่อกันทำให้การเชื่อมต่อระหว่างเซ็กเมนต์ที่กำหนดไว้ในฐานข้อมูลทางกายภาพที่แตกต่างกัน ส่วนที่ต่อกันประกอบด้วยสองส่วนต่อไปนี้ -
- กลุ่มลูกตรรกะ
- กลุ่มแม่ปลายทาง
ส่วนลูกเชิงตรรกะประกอบด้วยสองส่วนต่อไปนี้ -
- คีย์ที่เชื่อมต่อกับปลายทางหลัก (DPCK)
- ข้อมูลผู้ใช้ลูกแบบลอจิคัล
เมื่อเราทำงานกับเซ็กเมนต์ที่ต่อกันระหว่างการอัปเดตอาจเป็นไปได้ที่จะเพิ่มหรือเปลี่ยนแปลงข้อมูลทั้งในลอจิคัลชายน์และพาเรนต์ปลายทางด้วยการเรียกเพียงครั้งเดียว นอกจากนี้ยังขึ้นอยู่กับกฎที่ DBA ระบุไว้สำหรับฐานข้อมูล สำหรับเม็ดมีดให้ DPCK อยู่ในตำแหน่งที่ถูกต้อง สำหรับการแทนที่หรือลบอย่าเปลี่ยน DPCK หรือข้อมูลฟิลด์ลำดับในส่วนใดส่วนหนึ่งของเซ็กเมนต์ที่ต่อกัน