PlusMagi's Blog By Pitt Phunsanit Database กระบวนการคนกลาง (Mediation, การไกล่เกลี่ยความขัดแย้งแบบเป็นกลาง และการสร้างข้อตกลงร่วมกัน)

กระบวนการคนกลาง (Mediation, การไกล่เกลี่ยความขัดแย้งแบบเป็นกลาง และการสร้างข้อตกลงร่วมกัน)

ในโลกของการจัดการข้อมูลขนาดใหญ่ (Big Data) หรือระบบฐานข้อมูลที่ซับซ้อน ความขัดแย้งของข้อมูล (Data Conflicts) เป็นสิ่งที่หลีกเลี่ยงไม่ได้ ข้อมูลที่มาจากแหล่งที่มาต่างกัน (Source Systems) มักมีความคาดหวังและโครงสร้างที่แตกต่างกัน การปล่อยให้ความขัดแย้งเหล่านี้ดำเนินต่อไปโดยไม่มีการจัดการอย่างเหมาะสม อาจนำไปสู่ความไม่สอดคล้องของข้อมูล (Data Inconsistency) และการตัดสินใจทางธุรกิจที่ผิดพลาด

การค้นหาแนวทางในการยุติข้อพิพาทของข้อมูลจึงไม่ใช่แค่การ “ลบ” ข้อมูลที่ผิด หรือการ “ตัดสิน” ว่าแหล่งใดถูกแหล่งใดผิด แต่คือการสร้างพื้นที่ปลอดภัยทางตรรกะ (Logical Space) เพื่อให้ทุกชุดข้อมูลได้ถูกนำมาเปรียบเทียบและสร้างข้อตกลงร่วมกัน (Consensus) ซึ่งในเชิงเทคนิคนี้เราเรียกกระบวนการนี้ว่า ‘การไกล่เกลี่ยข้อมูล’ (Data Mediation) โดยใช้หลักการของ PostgreSQL

หลักการทำงานของ Data Mediation ใน PostgreSQL

หัวใจหลักของกระบวนการ Mediation คือการเปลี่ยนโฟกัสจากการหา “แหล่งข้อมูลที่เป็นปัญหา” ไปสู่การค้นหา “ค่าที่สอดคล้องกันที่สุด” (Most Consistent Value) โดยที่ระบบ PostgreSQL จะทำหน้าที่เป็นตัวกลาง (Mediator) ที่เป็นกลางอย่างเคร่งครัด ไม่ใช่ผู้ตัดสินคดี (Judge) บทบาทนี้คือการช่วยให้เราสามารถสื่อสารและเปรียบเทียบข้อมูลจากตารางที่แตกต่างกัน (Schema A และ Schema B) เพื่อระบุรากเหง้าของความขัดแย้ง และสร้างทางเลือกในการแก้ไขด้วยตัวเอง (Self-determination) ซึ่งทำให้ข้อมูลที่ได้มีความยั่งยืนและถูกต้องกว่าการเลือกใช้ข้อมูลจากแหล่งใดแหล่งหนึ่งเพียงแหล่งเดียว

การใช้ PostgreSQL เพื่อไกล่เกลี่ยความขัดแย้งข้อมูล

ในทางปฏิบัติ เราสามารถใช้ฟังก์ชันและคำสั่ง Set Operations ของ PostgreSQL เพื่อจำลองกระบวนการนี้ได้ ตัวอย่างเช่น หากเรามีข้อมูลลูกค้าจากระบบเก่า (Legacy) และระบบใหม่ (Modern) ที่มีชื่อและที่อยู่ขัดแย้งกัน เราต้องใช้คำสั่งที่สามารถรวมข้อมูลและเลือกค่าที่น่าเชื่อถือที่สุด

สมมติว่าเรามีตาราง `source_a` และ `source_b` ที่มีข้อมูลที่ขัดแย้งกัน เราสามารถใช้ `SELECT` ร่วมกับฟังก์ชัน `COALESCE()` ซึ่งทำหน้าที่คล้ายกับคนกลางที่เลือกค่าที่ไม่เป็น NULL เป็นลำดับแรก:

SQL

SQL

SELECT
    t1.customer_id,
    COALESCE(t1.name, t2.name) AS reconciled_name,
    COALESCE(t1.address, t2.address) AS reconciled_address
FROM
    source_a t1
FULL JOIN
    source_b t2 ON t1.customer_id = t2.customer_id;

ในตัวอย่างข้างต้น, `COALESCE(t1.name, t2.name)` คือการไกล่เกลี่ย: ระบบจะพยายามใช้ชื่อจาก `source_a` ก่อน หากค่าเป็น NULL (ขัดแย้งหรือขาดหาย) ระบบจะเปลี่ยนไปใช้ชื่อจาก `source_b` แทน นี่คือการสร้าง ‘ข้อตกลงร่วมกัน’ ของข้อมูลที่สมบูรณ์ที่สุด

บทสรุป

การทำ Data Mediation ไม่ใช่แค่การรันคำสั่ง SQL แต่คือการออกแบบกระบวนการทางตรรกะที่ซับซ้อน เพื่อให้แน่ใจว่าข้อมูลที่ออกมานั้นผ่านการตรวจสอบและไกล่เกลี่ยความขัดแย้งมาแล้วอย่างเป็นกลาง การใช้ฟังก์ชันของ PostgreSQL อย่างชาญฉลาด เช่น `COALESCE()`, `CASE` statement, หรือ Common Table Expressions (CTEs) ช่วยให้เราสามารถสร้าง Data Pipeline ที่มีความทนทาน (Resilient) และเชื่อถือได้สูง ทำให้ผลลัพธ์ที่ได้ไม่ใช่แค่การยุติปัญหาชั่วคราว แต่เป็นการสร้างฐานข้อมูลที่แข็งแกร่งและพร้อมสำหรับการเติบโตอย่างยั่งยืน