PlusMagi's Blog By Pitt Phunsanit Database Objectivity & Skepticism (ความเที่ยงตรง ปราศจากอคติ และการตั้งตั้งข้อสงสัยอย่างมีเหตุผล)

Objectivity & Skepticism (ความเที่ยงตรง ปราศจากอคติ และการตั้งตั้งข้อสงสัยอย่างมีเหตุผล)

ในโลกของ Data Architecture ที่ข้อมูล (Data) หลั่งไหลเข้ามาอย่างมหาศาล การวิเคราะห์ข้อมูลที่แม่นยำไม่ได้หมายถึงการรวบรวมข้อมูลให้ได้มากที่สุด แต่หมายถึงการแยกแยะระหว่างข้อเท็จจริง (Fact) ความเชื่อ (Belief) และอคติ (Bias) ได้อย่างชัดเจน สำหรับนักพัฒนาระบบและ Data Architect การนำหลักการของ ความเที่ยงตรง (Objectivity) และ การตั้งข้อสงสัยอย่างมีเหตุผล (Skepticism) มาใช้กับฐานข้อมูล PostgreSQL จึงเป็นหัวใจสำคัญในการสร้างกระบวนการที่มั่นใจว่าผลลัพธ์ที่ได้นั้นปราศจากอคติของโค้ด (Code Bias) และสะท้อนความจริงของข้อมูลอย่างเที่ยงตรงที่สุด

💡 Objectivity: การดึงข้อเท็จจริงตามโครงสร้างข้อมูล

Objectivity ในบริบทของ PostgreSQL คือการเขียน Query ที่มุ่งเน้นการดึงเอาข้อเท็จจริงที่ปรากฏอยู่ใน Schema โดยไม่ใส่สมมติฐานหรือการตีความส่วนตัวใดๆ เข้าไป การเขียนโค้ดที่เที่ยงตรงหมายถึงการระบุเงื่อนไข (WHERE clause) อย่างชัดเจน และการใช้ฟังก์ชันที่ให้ผลลัพธ์ตามหลักตรรกะที่กำหนดไว้เท่านั้น เราต้องมั่นใจว่าทุกบรรทัดของ SQL คือการสะท้อนข้อมูล ไม่ใช่การคาดเดา

ตัวอย่าง: หากเราต้องการหาชื่อลูกค้าที่อยู่ในภูมิภาค ‘Asia’ เท่านั้น เราต้องกำหนดเงื่อนไขอย่างชัดเจน ไม่ใช่การใช้เงื่อนไขที่อาจจะรวมถึงข้อมูลที่ไม่เกี่ยวข้อง

SQL

SELECT customer_name, order_date FROM orders WHERE region = 'Asia' AND order_date >= '2023-01-01';

🔬 Skepticism: การตั้งคำถามต่อข้อมูลและโค้ด

Skepticism ไม่ใช่การปฏิเสธข้อมูล แต่คือการถามคำถามเชิงวิพากษ์ต่อทุก Query ที่เราเขียนขึ้น โดยเฉพาะเมื่อมีการ Join ข้อมูลจากหลายตาราง (Multi-table Join) เราต้องถามตัวเองเสมอว่า:

  1. Source Reliability: ข้อมูลนี้มาจากแหล่งที่เชื่อถือได้หรือไม่? (เช่น ตรวจสอบว่ามีการ Join ข้อมูลที่จำเป็นครบถ้วนหรือไม่)
  2. Assumption Check: เราได้สมมติว่าข้อมูลมีความสมบูรณ์ 100% หรือไม่? (เช่น อาจมี NULL values ที่ทำให้การ Join ผิดพลาด)
  3. Edge Case Testing: มีกรณีขอบ (Edge Case) ใดที่ Query นี้มองข้ามไปหรือไม่? (เช่น ข้อมูลที่ไม่มีการอัปเดตเลย)

การใช้ Common Table Expressions (CTEs) ใน PostgreSQL เป็นวิธีที่ช่วยเสริม Skepticism ได้ดี เพราะมันช่วยแยกขั้นตอนการคำนวณที่ซับซ้อนออกเป็นส่วนย่อยๆ ทำให้เราสามารถตรวจสอบความถูกต้องของผลลัพธ์ในแต่ละขั้นตอนได้อย่างเป็นระบบ

SQL

WITH filtered_data AS (SELECT user_id, count(order_id) AS total_orders FROM orders WHERE order_date >= '2023-01-01' GROUP BY user_id) SELECT t1.user_id, t2.user_name FROM filtered_data t1 JOIN users t2 ON t1.user_id = t2.user_id;

✅ บทสรุป: การสร้าง Data Pipeline ที่เชื่อถือได้

การบูรณาการ Objectivity และ Skepticism เข้ากับการพัฒนา PostgreSQL ไม่ใช่แค่การเขียนโค้ด แต่คือการสร้างกระบวนทัศน์ (Mindset) ในการเป็น Data Architect ที่รอบคอบ

Objectivity ทำให้โค้ดของเราเป็นเหมือนกระจกที่สะท้อนข้อมูลจริงอย่างไม่บิดเบือน ส่วน Skepticism คือการเป็นผู้ตรวจสอบที่คอยตั้งคำถามกับทุกผลลัพธ์ที่ได้ ทำให้มั่นใจได้ว่าระบบ Data Pipeline ของเรานั้นมีความเที่ยงตรงสูง (High Data Integrity) และสามารถนำไปใช้ในการตัดสินใจทางธุรกิจที่สำคัญได้อย่างแท้จริง