DBMS แบบกระจาย - กลยุทธ์การออกแบบ

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

การจำลองข้อมูล

การจำลองข้อมูลเป็นกระบวนการจัดเก็บสำเนาของฐานข้อมูลแยกจากกันที่ไซต์ตั้งแต่สองไซต์ขึ้นไป เป็นเทคนิคการยอมรับข้อผิดพลาดที่เป็นที่นิยมของฐานข้อมูลแบบกระจาย

ข้อดีของการจำลองข้อมูล

  • Reliability - ในกรณีที่เกิดความล้มเหลวของไซต์ใด ๆ ระบบฐานข้อมูลจะยังคงทำงานต่อไปเนื่องจากมีสำเนาอยู่ที่ไซต์อื่น

  • Reduction in Network Load- เนื่องจากมีสำเนาข้อมูลในเครื่องการประมวลผลการสืบค้นสามารถทำได้โดยลดการใช้เครือข่ายโดยเฉพาะในช่วงเวลาสำคัญ การอัปเดตข้อมูลสามารถทำได้ในเวลาที่ไม่ใช่ช่วงเวลาสำคัญ

  • Quicker Response - ความพร้อมใช้งานของสำเนาข้อมูลในเครื่องช่วยให้การประมวลผลการสืบค้นรวดเร็วและเวลาตอบสนองที่รวดเร็ว

  • Simpler Transactions- การทำธุรกรรมต้องการจำนวนการรวมตารางที่อยู่ในไซต์ต่างๆน้อยลงและการประสานงานข้ามเครือข่ายน้อยที่สุด ดังนั้นจึงกลายเป็นเรื่องง่ายขึ้นในธรรมชาติ

ข้อเสียของการจำลองข้อมูล

  • Increased Storage Requirements- การเก็บรักษาสำเนาข้อมูลหลายชุดเกี่ยวข้องกับต้นทุนการจัดเก็บที่เพิ่มขึ้น พื้นที่จัดเก็บที่ต้องการเป็นแบบทวีคูณของหน่วยเก็บข้อมูลที่จำเป็นสำหรับระบบรวมศูนย์

  • Increased Cost and Complexity of Data Updating- ทุกครั้งที่มีการอัปเดตรายการข้อมูลการอัปเดตจะต้องแสดงในสำเนาข้อมูลทั้งหมดในไซต์ต่างๆ สิ่งนี้ต้องใช้เทคนิคการซิงโครไนซ์และโปรโตคอลที่ซับซ้อน

  • Undesirable Application – Database coupling- หากไม่ได้ใช้กลไกการอัพเดตที่ซับซ้อนการลบความไม่สอดคล้องกันของข้อมูลจำเป็นต้องมีการประสานงานที่ซับซ้อนในระดับแอปพลิเคชัน ส่งผลให้แอปพลิเคชันไม่พึงปรารถนา - การเชื่อมต่อฐานข้อมูล

เทคนิคการจำลองแบบที่ใช้กันทั่วไป ได้แก่ -

  • การจำลองแบบสแนปชอต
  • การจำลองแบบใกล้เวลาจริง
  • ดึงการจำลองแบบ

การกระจายตัว

การแบ่งส่วนเป็นงานในการแบ่งตารางออกเป็นชุดของตารางขนาดเล็ก เรียกชุดย่อยของตารางfragments. การกระจายตัวเป็นสามประเภท: แนวนอนแนวตั้งและแบบผสม (ผสมระหว่างแนวนอนและแนวตั้ง) การกระจายตัวในแนวนอนสามารถแบ่งออกได้เป็นสองเทคนิค: การกระจายตัวในแนวนอนหลักและการกระจายตัวในแนวนอนที่ได้รับ

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

ข้อดีของการแยกส่วน

  • เนื่องจากข้อมูลถูกจัดเก็บไว้ใกล้กับสถานที่ใช้งานประสิทธิภาพของระบบฐานข้อมูลจึงเพิ่มขึ้น

  • เทคนิคการเพิ่มประสิทธิภาพการสืบค้นแบบโลคัลนั้นเพียงพอสำหรับการสืบค้นส่วนใหญ่เนื่องจากข้อมูลมีอยู่ในเครื่อง

  • เนื่องจากไม่มีข้อมูลที่ไม่เกี่ยวข้องในไซต์จึงสามารถรักษาความปลอดภัยและความเป็นส่วนตัวของระบบฐานข้อมูลได้

ข้อเสียของการกระจายตัว

  • เมื่อต้องการข้อมูลจากส่วนต่างๆความเร็วในการเข้าถึงอาจสูงมาก

  • ในกรณีที่มีการแยกส่วนซ้ำงานของการสร้างใหม่จะต้องใช้เทคนิคที่มีราคาแพง

  • การขาดสำเนาสำรองของข้อมูลในไซต์ต่างๆอาจทำให้ฐานข้อมูลไม่ได้ผลในกรณีที่ไซต์ล้มเหลว

การกระจายตัวในแนวตั้ง

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

ตัวอย่างเช่นให้เราพิจารณาว่าฐานข้อมูลของมหาวิทยาลัยเก็บบันทึกของนักศึกษาที่ลงทะเบียนทั้งหมดไว้ในตาราง Student ที่มีสคีมาต่อไปนี้

นักเรียน

Regd_No ชื่อ หลักสูตร ที่อยู่ ภาคเรียน ค่าธรรมเนียม เครื่องหมาย

ตอนนี้รายละเอียดค่าธรรมเนียมจะอยู่ในส่วนบัญชี ในกรณีนี้ผู้ออกแบบจะแยกส่วนฐานข้อมูลดังนี้ -

CREATE TABLE STD_FEES AS 
   SELECT Regd_No, Fees 
   FROM STUDENT;

การกระจายตัวในแนวนอน

การกระจายตัวในแนวนอนจะจัดกลุ่มสิ่งที่ทับซ้อนของตารางตามค่าของเขตข้อมูลอย่างน้อยหนึ่งเขตข้อมูล การกระจายตัวในแนวนอนควรยืนยันถึงกฎของการสร้างใหม่ แต่ละส่วนแนวนอนต้องมีคอลัมน์ทั้งหมดของตารางฐานเดิม

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

CREATE COMP_STD AS 
   SELECT * FROM STUDENT  
   WHERE COURSE = "Computer Science";

การกระจายตัวของลูกผสม

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

การกระจายตัวแบบไฮบริดสามารถทำได้สองทางเลือก -

  • ในตอนแรกสร้างชุดของชิ้นส่วนแนวนอน จากนั้นสร้างเศษแนวตั้งจากเศษแนวนอนอย่างน้อยหนึ่งชิ้น

  • ในตอนแรกสร้างชุดของชิ้นส่วนแนวตั้ง จากนั้นสร้างชิ้นส่วนแนวนอนจากเศษแนวตั้งอย่างน้อยหนึ่งชิ้น