PlusMagi's Blog By Pitt Phunsanit Backend,Database Due Process & Fairness (สิทธิในการโต้แย้งและความเป็นธรรมของกระบวนการ)

Due Process & Fairness (สิทธิในการโต้แย้งและความเป็นธรรมของกระบวนการ)

ในโลกของข้อมูล (Data World) ที่ซับซ้อนและมีการไหลเวียนของข้อมูลจากหลายระบบ การรับรองความถูกต้องและความยุติธรรมของข้อมูล (Data Integrity and Fairness) จึงเป็นหัวใจสำคัญของการดำรงอยู่ของระบบฐานข้อมูลที่เชื่อถือได้ (Reliable Database System) หากกระบวนการบันทึก การเปลี่ยนแปลง หรือการเรียกใช้ข้อมูลใดขาดความโปร่งใส ขาดการตรวจสอบ หรือมีการใช้อำนาจในการแก้ไขข้อมูลโดยพลการ ย่อมส่งผลให้เกิดความไม่ยุติธรรมทางข้อมูล (Data Injustice) ซึ่งเป็นสิ่งที่หลักการทางสถาปัตยกรรมข้อมูลต้องเข้ามาคุ้มครอง

Due Process ในมุมมองของฐานข้อมูล: การรับประกันความเที่ยงตรงของกระบวนการ

แก่นแท้ของแนวคิด Due Process คือการยืนยันว่า ไม่ว่าข้อมูลใดจะถูกบันทึกหรือถูกเปลี่ยนแปลง จะต้องได้รับการปฏิบัติที่ยุติธรรมในทุกขั้นตอน ตั้งแต่การนำเข้าข้อมูล (Ingestion) การประมวลผล (Processing) ไปจนถึงการเรียกใช้งาน (Retrieval) หลักการนี้ไม่ได้จำกัดอยู่แค่เพียงการทำตามไวยากรณ์ (Syntax) เท่านั้น แต่ยังรวมถึงการรับประกันว่าการเปลี่ยนแปลงข้อมูลนั้นต้องเป็นไปตามกฎทางธุรกิจ (Business Rules) อย่างเคร่งครัด

1. Procedural Due Process: ความถูกต้องของขั้นตอน (Transaction Management)

ในเชิงฐานข้อมูล Procedural Due Process หมายถึงการรับประกันว่าทุกการเปลี่ยนแปลงข้อมูลต้องเกิดขึ้นเป็นชุด (Atomic) และสมบูรณ์ (Consistent) ไม่สามารถเกิดสถานะที่ข้อมูลบางส่วนถูกบันทึกแต่บางส่วนล้มเหลวได้ นี่คือบทบาทสำคัญของ **Transaction** ใน PostgreSQL ซึ่งรับประกันคุณสมบัติ ACID (Atomicity, Consistency, Isolation, Durability) ทำให้มั่นใจได้ว่าการดำเนินการทั้งหมดจะสำเร็จพร้อมกัน หรือล้มเหลวทั้งหมด

SQL

-- ตัวอย่างการใช้ Transaction เพื่อรับประกันความสมบูรณ์ของข้อมูล (ACID) --
BEGIN;

-- ขั้นตอนที่ 1: ลดจำนวนสินค้าคงคลัง
UPDATE inventory SET stock_count = stock_count - 1 WHERE product_id = 'P101';

-- ขั้นตอนที่ 2: บันทึกรายการสั่งซื้อ
INSERT INTO orders (product_id, quantity) VALUES ('P101', 1);

-- หากขั้นตอนใดล้มเหลว (เช่น ข้อมูลสินค้าไม่มีอยู่จริง) จะใช้ ROLLBACK
-- COMMIT; -- จะถูกเรียกเมื่อทุกขั้นตอนสำเร็จเท่านั้น
ROLLBACK; -- ในตัวอย่างนี้เราสมมติว่ามีข้อผิดพลาดและต้องยกเลิกทั้งหมด

2. Substantive Due Process: ความถูกต้องของสาระ (Constraints & Views)

Substantive Due Process คือการตรวจสอบว่าข้อมูลหรือมาตรการที่ออกมานั้น มีสาระสำคัญที่ขัดต่อกฎเกณฑ์ทางธุรกิจหรือไม่ ใน PostgreSQL เราใช้ **Constraints** (เช่น PRIMARY KEY, FOREIGN KEY, CHECK) เพื่อบังคับใช้กฎเกณฑ์เหล่านี้ในระดับฐานข้อมูล ทำให้ไม่สามารถมีการแทรกข้อมูลที่ขัดแย้งกับตรรกะทางธุรกิจได้ นอกจากนี้ การใช้ **Views** ยังช่วยให้เราสามารถจำกัดการเข้าถึงข้อมูลเฉพาะส่วนที่จำเป็นเท่านั้น (Principle of Least Privilege) ซึ่งเป็นการรักษาความยุติธรรมในการเข้าถึงข้อมูล

SQL

-- ตัวอย่างการใช้ CHECK Constraint เพื่อรับรองความถูกต้องของข้อมูล --
ALTER TABLE product ADD CONSTRAINT check_price CHECK (price >= 0);

-- ตัวอย่างการใช้ View เพื่อจำกัดการเข้าถึงข้อมูลที่ละเอียดอ่อน
CREATE VIEW public.public_user_summary AS
SELECT user_id, username, email FROM users WHERE is_active = TRUE;

บทสรุป

การนำหลักการ Due Process มาประยุกต์ใช้กับ PostgreSQL ไม่ได้หมายถึงการเขียนโค้ดที่ซับซ้อนเท่านั้น แต่คือการออกแบบสถาปัตยกรรมข้อมูลที่รอบคอบ โดยใช้ Transaction, Constraints, และ Views เป็นกลไกหลักในการรับประกันว่าทุกการกระทำกับข้อมูลนั้นเป็นไปอย่างโปร่งใส ตรวจสอบได้ และยุติธรรมตามกฎเกณฑ์ที่กำหนดไว้เสมอ การทำเช่นนี้คือการสร้างรากฐานของความน่าเชื่อถือ (Trustworthiness) ให้กับระบบข้อมูลโดยรวม

Exit mobile version