อ่าน 1 นาที
ร้านจำหน่ายสินค้าอีเวนต์
ระบบจัดเก็บข้อมูลเหตุการณ์ เป็น ฐานข้อมูลประเภทหนึ่งที่ได้รับการออกแบบมาเพื่อจัดเก็บเหตุการณ์โดยเฉพาะ
ร้านจำหน่ายสินค้าอีเวนต์
ระบบจัดเก็บข้อมูลเหตุการณ์ เป็น ฐานข้อมูลประเภทหนึ่งที่ได้รับการออกแบบมาเพื่อจัดเก็บเหตุการณ์โดยเฉพาะ
โดยหลักการแล้ว หน่วยเก็บข้อมูลเหตุการณ์จะบันทึกเฉพาะเหตุการณ์ที่ส่งผลกระทบต่อเอนทิตี แฟ้มข้อมูล หรือนโยบายและสถานะของเอนทิตี ณ จุดใดจุดหนึ่งในประวัติสามารถสร้างขึ้นใหม่ได้โดยการเล่นซ้ำเหตุการณ์ที่เกี่ยวข้องตามลำดับ เหตุการณ์ (และข้อมูล ที่เกี่ยวข้อง ) เป็นข้อเท็จจริง "จริง" เพียงอย่างเดียวที่ควรจัดเก็บไว้ในฐานข้อมูล วัตถุอื่น ๆ ทั้งหมดสามารถสร้างขึ้นจากเหตุการณ์เหล่านี้ได้ ซึ่งหมายความว่าวัตถุเหล่านั้นจะถูกสร้างขึ้นในหน่วยความจำโดยโค้ด ขณะทำงาน เมื่อจำเป็น (เช่น สำหรับการแสดงผลในส่วนติดต่อผู้ใช้ ) ในทางทฤษฎี วัตถุใด ๆ ที่รวบรวมข้อมูลเหตุการณ์ที่บันทึกไว้จะไม่ถูกจัดเก็บไว้ในฐานข้อมูล แต่จะถูกสร้างขึ้น " แบบเรียลไทม์ " โดยการสำรวจประวัติเหตุการณ์ เมื่ออินสแตนซ์ของวัตถุที่รวบรวมข้อมูลไม่จำเป็นอีกต่อไป ก็สามารถทิ้ง (ปล่อยออกจากหน่วยความจำ) ได้ง่าย ๆ
ตัวอย่างเช่น ในเรื่องกรมธรรม์ประกันภัย
ตัวอย่างเช่น แนวคิดการจัดเก็บเหตุการณ์ของฐานข้อมูลสามารถนำไปใช้กับกรมธรรม์ประกันภัยหรือเอกสารบำนาญได้ ในกรมธรรม์หรือเอกสารเหล่านี้ การสร้างอินสแตนซ์ของแต่ละวัตถุที่ประกอบขึ้นเป็นเอกสารหรือกรมธรรม์ (เช่นบุคคลคู่ค้าการจ้างงาน ฯลฯ) สามารถอนุมานและสร้างขึ้นในหน่วยความจำโดยอิงจากเหตุการณ์ในโลกแห่งความเป็นจริงได้
ไทม์ไลน์คู่
ส่วนสำคัญของฐานข้อมูลจัดเก็บเหตุการณ์คือ เหตุการณ์แต่ละรายการจะมีไทม์ไลน์ สองชุด : ซึ่งช่วยให้ระบบจัดเก็บเหตุการณ์สามารถแก้ไขข้อผิดพลาดของเหตุการณ์ที่เคยบันทึกไว้ในฐานข้อมูลจัดเก็บเหตุการณ์ได้
วันทั้งสองมีดังนี้:
- วันที่มีผลบังคับใช้ คือวันที่กิจกรรมนั้นมีผลบังคับใช้
- วันที่ทำรายการ คือวันที่บันทึกเหตุการณ์ลงในฐานข้อมูล
การแก้ไขข้อผิดพลาด
อีกส่วนสำคัญของฐานข้อมูลจัดเก็บเหตุการณ์คือ เหตุการณ์ที่ถูกจัดเก็บไว้จะไม่สามารถเปลี่ยนแปลงได้ เมื่อจัดเก็บแล้ว เหตุการณ์ที่ผิดพลาดก็จะไม่สามารถแก้ไขได้อีกต่อไป วิธีเดียวที่จะเปลี่ยนแปลง (หรือแก้ไข) เหตุการณ์เหล่านี้ได้ คือ การสร้างเหตุการณ์ใหม่ด้วยค่าใหม่โดยใช้ไทม์ไลน์คู่ เหตุการณ์ที่แก้ไขจะมีค่าใหม่ของเหตุการณ์เดิม พร้อมด้วยข้อมูลเหตุการณ์ของเหตุการณ์ที่แก้ไขแล้ว แต่มีวันที่ทำธุรกรรมที่แตกต่างกัน กลไกนี้ช่วยให้สามารถทำซ้ำได้ในทุกช่วงเวลา แม้กระทั่งในช่วงเวลาก่อนที่การแก้ไขจะเกิดขึ้น นอกจากนี้ยังช่วยให้สามารถจำลองสถานการณ์ที่เกิดจากเหตุการณ์ที่ผิดพลาดได้ (หากจำเป็น)
ข้อดีและข้อเสีย
ข้อดีอย่างหนึ่งของแนวคิดการจัดเก็บเหตุการณ์คือ การจัดการผลกระทบของเหตุการณ์ย้อนหลัง (เหตุการณ์ที่มีผลก่อนเหตุการณ์ก่อนหน้า และอาจทำให้เหตุการณ์ก่อนหน้านั้นเป็นโมฆะ) ทำได้ง่ายกว่ามาก
การใช้ Event Store จะช่วยลดความซับซ้อนของโค้ด เนื่องจากไม่จำเป็นต้องย้อนกลับสถานการณ์ที่ผิดพลาดและนำสถานการณ์ที่ถูกต้องกลับมาใช้ใหม่อีกต่อไป
ข้อเสียอาจอยู่ที่ว่าโค้ดจำเป็นต้องสร้างอ็อบเจ็กต์ทั้งหมดในหน่วยความจำขึ้นใหม่ตามเหตุการณ์ทุกครั้งที่มีการเรียกใช้บริการสำหรับแฟ้มข้อมูลหรือนโยบายเฉพาะเจาะจง
เมื่อเปรียบเทียบกับฐานข้อมูลทั่วไป
ในฐานข้อมูลทั่วไป การจัดการเหตุการณ์ย้อนหลังเพื่อแก้ไขเหตุการณ์ที่ผิดพลาดก่อนหน้านี้อาจเป็นเรื่องยุ่งยาก เนื่องจากมักส่งผลให้ต้องยกเลิกธุรกรรมและวัตถุที่ผิดพลาดก่อนหน้านี้ทั้งหมด และรวบรวมธุรกรรมและวัตถุที่ถูกต้องใหม่เข้ามา ในที่เก็บเหตุการณ์ จะมีการจัดเก็บเฉพาะเหตุการณ์ใหม่ (และข้อเท็จจริงที่เกี่ยวข้อง) เท่านั้น จากนั้นโค้ดจะกำหนดธุรกรรมและวัตถุใหม่โดยอิงจากข้อเท็จจริงใหม่ในหน่วยความจำ
ดูเพิ่มเติม
- ฐานข้อมูลเชิงเวลาคือฐานข้อมูลที่จัดเก็บข้อมูลที่เกี่ยวข้องกับช่วงเวลาต่างๆ (เช่น อดีต ปัจจุบัน และอนาคต) เพื่อใช้ในการพิจารณาธุรกรรม ความถูกต้อง หรือการตัดสินใจ
ลิงก์ภายนอก
- การจัดอันดับร้านค้าจำหน่ายสินค้าหรือบริการตามความนิยมของ DB-Engine อัปเดตทุกเดือน
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ร้านจำหน่ายสินค้าอีเวนต์
ระบบจัดเก็บข้อมูลเหตุการณ์ เป็น ฐานข้อมูลประเภทหนึ่งที่ได้รับการออกแบบมาเพื่อจัดเก็บเหตุการณ์โดยเฉพาะ
ตัวอย่างเช่น ในเรื่องกรมธรรม์ประกันภัย
ตัวอย่างเช่น แนวคิดการจัดเก็บเหตุการณ์ของฐานข้อมูลสามารถนำไปใช้กับ กรมธรรม์ประกันภัย หรือเอกสารบำนาญได้ ในกรมธรรม์หรือเอกสารเหล่านี้ การสร้างอินสแตนซ์ของแต่ละวัตถุที่ประกอบขึ้นเป็นเอกสารหรือกรมธรรม์ (เช่นบุคคล คู่ ค้า การจ้างงาน ฯลฯ
ไทม์ไลน์คู่
ส่วนสำคัญของฐานข้อมูลจัดเก็บเหตุการณ์คือ เหตุการณ์แต่ละรายการจะมี ไทม์ไลน์ สองชุด : ซึ่งช่วยให้ระบบจัดเก็บเหตุการณ์สามารถแก้ไข ข้อผิดพลาด ของเหตุการณ์ที่เคยบันทึกไว้ในฐานข้อมูลจัดเก็บเหตุการณ์ได้
การแก้ไขข้อผิดพลาด
อีกส่วนสำคัญของฐานข้อมูลจัดเก็บเหตุการณ์คือ เหตุการณ์ที่ถูกจัดเก็บไว้จะไม่สามารถเปลี่ยนแปลงได้ เมื่อจัดเก็บแล้ว เหตุการณ์ที่ผิดพลาดก็จะไม่สามารถแก้ไขได้อีกต่อไป วิธีเดียวที่จะเปลี่ยนแปลง (หรือแก้ไข) เหตุการณ์เหล่านี้ได้ คือ...