ยินดีต้อนรับสู่โลกของ "ระบบประปา" ข้อมูล!
ยินดีต้อนรับครับ! ก่อนที่เราจะไปสร้างแบบจำลองการคาดการณ์สุดหรูหรือคำนวณคณิตศาสตร์ประกันภัยที่ซับซ้อน เราต้องมาทำความเข้าใจกันก่อนว่าข้อมูลนั้นมีที่มาอย่างไรและส่งมาถึงมือเราได้อย่างไร ในบทนี้เราจะโฟกัสไปที่ การจัดการฐานข้อมูล (Database Management) และ กระบวนการ ETL ซึ่งเปรียบเสมือน "ระบบประปา" ของการวิเคราะห์เชิงคาดการณ์ ถ้าท่อน้ำรั่วหรือน้ำสกปรก ไม่ว่าหัวก๊อกของคุณจะดีแค่ไหน ผลลัพธ์ที่ได้ก็คงไม่น่าประทับใจแน่นอน!
เมื่อจบเนื้อหาชุดนี้ คุณจะเข้าใจว่าข้อมูลถูกจัดเก็บอย่างไร เราเคลื่อนย้ายข้อมูลจากที่หนึ่งไปอีกที่หนึ่งได้อย่างไร และเราจะทำความสะอาดข้อมูลเหล่านั้นให้พร้อมสำหรับแบบจำลองของคุณได้อย่างไร ไม่ต้องกังวลนะครับถ้าคุณยังไม่เคยสัมผัสกับฐานข้อมูลมาก่อน เราจะค่อยๆ เรียนรู้ไปทีละขั้นครับ!
1. ฐานข้อมูลคืออะไร?
ถ้าพูดให้ง่ายที่สุด ฐานข้อมูล (Database) คือการรวบรวมข้อมูลที่มีโครงสร้างอย่างเป็นระบบ ในโลกของนักคณิตศาสตร์ประกันภัย เรามักจะเกี่ยวข้องกับ ฐานข้อมูลเชิงสัมพันธ์ (Relational Databases) เป็นหลักครับ
คำเปรียบเทียบ: ลองจินตนาการถึงตู้เก็บเอกสารดิจิทัลขนาดใหญ่ ลิ้นชักแต่ละอันคือ ตาราง (Table) ภายในลิ้นชักจะมีแฟ้มข้อมูล (แถว (Row) หรือ ระเบียน (Record)) และในแต่ละแฟ้มก็จะมีข้อมูลเฉพาะเจาะจง เช่น ชื่อ, เลขที่กรมธรรม์, หรือจำนวนเงินค่าสินไหมทดแทน (คอลัมน์ (Column) หรือ ฟิลด์ (Field))
คำศัพท์สำคัญที่ต้องจำ:
- Table (ตาราง): การรวมกลุ่มของข้อมูลที่จัดระเบียบในรูปแบบแถวและคอลัมน์
- Record/Row (ระเบียน/แถว): ข้อมูลหนึ่งชุดในตาราง (เช่น ข้อมูลของผู้ถือกรมธรรม์หนึ่งราย)
- Field/Column (ฟิลด์/คอลัมน์): ประเภทของข้อมูลที่ระบุไว้ชัดเจน (เช่น "วันเดือนปีเกิด")
- Schema (สกีมา): "พิมพ์เขียว" หรือโครงสร้างของฐานข้อมูลนั้นๆ
ทบทวนสั้นๆ: ฐานข้อมูลคือที่เก็บข้อมูล ตารางคือโครงสร้างภายใน ส่วนแถวและคอลัมน์คือจุดข้อมูลจริงที่เราใช้งานครับ
2. ความเป็น "เชิงสัมพันธ์": กุญแจและการเชื่อมโยง
สิ่งที่ทำให้ฐานข้อมูลเป็น "เชิงสัมพันธ์" (Relational) คือความสามารถในการเชื่อมโยงตารางเข้าด้วยกันโดยใช้ กุญแจ (Keys) ซึ่งเรื่องนี้สำคัญมากสำหรับข้อสอบ ATPA เพราะบ่อยครั้งที่คุณจะต้องรวมข้อมูลจากแหล่งต่างๆ (เช่น "ข้อมูลค่าสินไหม" และ "ข้อมูลประชากรผู้ถือกรมธรรม์") เข้าด้วยกัน
Primary Key vs. Foreign Key
Primary Key (PK): ตัวระบุที่ไม่ซ้ำกันสำหรับทุกระเบียนในตาราง มันต้องมีค่าเสมอและห้ามว่าง (null) ตัวอย่างเช่น หมายเลขบัตรประชาชน หรือรหัสประจำตัวกรมธรรม์ที่ไม่ซ้ำกัน
Foreign Key (FK): คอลัมน์ในตารางหนึ่งที่ชี้ไปยัง Primary Key ในอีกตารางหนึ่ง ซึ่งถือเป็น "สะพาน" ที่เชื่อมตารางทั้งสองเข้าหากันครับ
ตัวช่วยจำ: ให้คิดว่า Primary Key คือเลขพาสปอร์ตของคุณ (มันระบุตัวตนของคุณเพียงคนเดียว) ส่วน Foreign Key ก็เหมือนกับเลขพาสปอร์ตที่คุณเขียนลงในใบลงทะเบียนโรงแรม ซึ่งทำหน้าที่เชื่อมโยงบันทึกของโรงแรมกลับไปยังตัวตนที่แท้จริงของคุณนั่นเอง
ข้อผิดพลาดที่พบบ่อย: อย่าเพิ่งสรุปว่าทุกตารางต้องมี Primary Key ที่เป็นคอลัมน์เดี่ยวๆ บางครั้งคุณอาจต้องใช้ Composite Key ซึ่งเป็นการนำคอลัมน์ตั้งแต่สองคอลัมน์ขึ้นไปมารวมกันเพื่อสร้างตัวระบุที่ไม่ซ้ำ (เช่น เลขที่กรมธรรม์ + เลขลำดับ)
3. ทำความเข้าใจ ETL (Extract, Transform, Load)
ETL คือกระบวนการที่ใช้ในการย้ายข้อมูลจากแหล่งต้นทาง (เช่น ระบบเมนเฟรมเก่า) ไปยังจุดหมายปลายทาง (เช่น คลังข้อมูลที่คุณใช้รันแบบจำลอง)
ตัวช่วยจำ: "Eat Tasty Lunch" (ETL)
1. Extract (สกัด): หยิบอาหารออกมาจากตู้เย็น (ดึงข้อมูลจากแหล่งต้นทาง)
2. Transform (แปลง): หั่น ปรุงรส และทำอาหาร (ทำความสะอาดและจัดรูปแบบข้อมูล)
3. Load (บรรจุ): จัดใส่จาน (บันทึกข้อมูลลงในระบบปลายทาง)
ขั้นที่ 1: Extract (สกัดข้อมูล)
ในขั้นตอนนี้เราจะดึงข้อมูลจากแหล่งต่างๆ ไม่ว่าจะเป็นฐานข้อมูล SQL, ไฟล์ Excel หรือข้อมูลแบบ "ไม่มีโครงสร้าง" (Unstructured data) เช่น แบบฟอร์มเรียกร้องค่าสินไหมที่เป็น PDF เป้าหมายคือการนำข้อมูลเข้าสู่พื้นที่พักข้อมูล (Staging area) โดยไม่กระทบต่อแหล่งต้นทางเดิม
ขั้นที่ 2: Transform (แปลงข้อมูล)
นี่คือขั้นตอนที่ใช้แรงเยอะที่สุด ข้อมูลที่อยู่ใน "ธรรมชาติ" มักจะยุ่งเหยิง การแปลงข้อมูลรวมถึง:
- Cleaning (ทำความสะอาด): แก้ไขคำผิดหรือลบข้อมูลที่ซ้ำซ้อน
- Filtering (กรอง): เลือกเฉพาะข้อมูลที่จำเป็น (เช่น เลือกเฉพาะกรมธรรม์ในช่วง 5 ปีล่าสุด)
- Joining (เชื่อม): รวมหลายตารางเข้าเป็นตารางเดียว
- Aggregating (สรุปผล): สรุปข้อมูล (เช่น การคำนวณ ยอดค่าสินไหมรวมรายปี)
- Deriving (สร้างตัวแปรใหม่): สร้างตัวแปรใหม่ขึ้นมา (เช่น \( \text{อายุ} = \text{วันที่ปัจจุบัน} - \text{วันเกิด} \))
ขั้นที่ 3: Load (บรรจุข้อมูล)
สุดท้าย ข้อมูลที่ "สะอาด" แล้วจะถูกโหลดเข้าสู่ระบบปลายทาง (โดยปกติคือ Data Warehouse) ซึ่งข้อมูลนี้พร้อมให้คุณนำไปใช้ใน R หรือ Python เพื่อทำแบบจำลองการคาดการณ์แล้วครับ
ประเด็นสำคัญ: กระบวนการ ETL ช่วยให้มั่นใจได้ว่าข้อมูลที่ใช้สำหรับสร้างแบบจำลองมีความสม่ำเสมอ ถูกต้อง และมีรูปแบบที่เหมาะสม
4. Data Warehousing vs. Data Lakes
ในฐานะนักคณิตศาสตร์ประกันภัย คุณอาจได้ยินคำศัพท์สองคำนี้อยู่บ่อยๆ นี่คือสรุปสั้นๆ ครับ:
Data Warehouse (คลังข้อมูล): มีโครงสร้างสูงมาก เปรียบเสมือนห้องสมุดที่หนังสือทุกเล่มถูกติดป้ายระบุตำแหน่งและวางไว้อย่างเป็นระเบียบ คุณใช้ที่นี่สำหรับข้อมูลที่ "สะอาด" และพร้อมทำรายงาน
Data Lake (ทะเลสาบข้อมูล): มีโครงสร้างน้อยกว่า เปรียบเสมือนถังน้ำใบใหญ่ที่เททุกอย่างลงไปในรูปแบบดิบๆ การจัดเก็บที่นี่มีราคาถูกกว่า แต่การนำไปใช้งานต่อจะ "ยุ่งยาก" กว่า
คุณรู้หรือไม่? บริษัทสมัยใหม่ส่วนใหญ่ใช้แนวทางที่เรียกว่า "Lakehouse" ซึ่งพยายามรวมความยืดหยุ่นของ Data Lake เข้ากับการจัดระเบียบของ Data Warehouse ครับ!
5. การใช้ SQL เบื้องต้นสำหรับ ETL
แม้ว่าข้อสอบ ATPA อาจไม่บังคับให้คุณเขียน SQL ซับซ้อนตั้งแต่ต้น แต่คุณต้องเข้าใจ ตรรกะ ของการจัดการข้อมูล สิ่งที่สำคัญที่สุดคือการใช้ JOIN
ลองจินตนาการว่าคุณมี ตาราง A (ลูกค้า) และ ตาราง B (การเคลม):
1. Inner Join: ดึงข้อมูลเฉพาะรายการที่มีข้อมูลตรงกันใน "ทั้งสอง" ตาราง (ลูกค้าที่มีการเคลม)
2. Left Join: ดึงข้อมูล "ทั้งหมด" จากตารางฝั่งซ้าย และข้อมูลที่ตรงกันจากตารางฝั่งขวา หากไม่มีข้อมูลตรงกันจะแสดงค่าเป็น Null (ลูกค้าทุกคน พร้อมข้อมูลการเคลมถ้ามี)
3. Full Outer Join: ดึงข้อมูลทั้งหมดจากทั้งสองตาราง โดยจับคู่ในส่วนที่ทำได้
คำแนะนำ: การทำ Joins อาจดูน่าสับสนในตอนแรก! แต่ขอให้จำไว้ว่าตาราง "ซ้าย" (Left) มักเป็นจุดเริ่มต้น (รายการหลักของคุณ) และคุณกำลัง "แปะ" ข้อมูลจากตาราง "ขวา" (Right) เข้าไปเพิ่มครับ
6. ความถูกต้องและความสมบูรณ์ของข้อมูล (Data Integrity and Validation)
ในระหว่างกระบวนการ ETL เราต้องรักษา ความถูกต้องของข้อมูล (Data Integrity) ซึ่งหมายความว่าข้อมูลจะต้องถูกต้องและสอดคล้องกันตลอดเวลา
สิ่งที่ต้องตรวจสอบ (Validation Checks):
- Record Counts: เริ่มต้นมา 1,000 แถว จบด้วย 1,000 แถวหรือไม่?
- Null Checks: มีข้อมูลหายในจุดที่ไม่ควรหายหรือไม่ (เช่น ใน Primary Key)?
- Range Checks: คอลัมน์ "อายุ" มีค่าที่เป็นไปไม่ได้ เช่น -5 หรือ 200 หรือไม่?
- Uniqueness Checks: มีรหัสที่ซ้ำกันหรือไม่?
สรุปประเด็นสำคัญ:
การจัดการฐานข้อมูล คือเรื่องของการเก็บและเชื่อมโยงข้อมูลโดยใช้ตารางและคีย์ ส่วน ETL คือกระบวนการเคลื่อนย้ายและขัดเกลาข้อมูลนั้น ในฐานะนักศึกษา ATPA เป้าหมายของคุณคือการรับรองว่าข้อมูลที่คุณดึงมาใช้ในแบบจำลองได้ผ่านกระบวนการ ETL ที่เข้มงวด เพื่อให้ผลการคาดการณ์ของคุณตั้งอยู่บนน้ำที่ "ใสสะอาด" ไม่ใช่น้ำที่ "ขุ่นโคลน" ครับ!
กล่องทบทวนด่วน:
- Extract: ดึงข้อมูลดิบออกมา
- Transform: ทำความสะอาด เชื่อมข้อมูล และคำนวณ
- Load: บันทึกลงจุดหมายปลายทาง
- Primary Key: รหัสระบุตัวตนที่ไม่ซ้ำสำหรับหนึ่งแถว
- Foreign Key: เชื่อมโยงไปยัง Primary Key ในอีกตารางหนึ่ง