ในบทความนี้ เราจะทำความเข้าใจความแตกต่างระหว่าง Star Schema และ Snowflake Schema ในการออกแบบฐานข้อมูล Data Warehouse
Star Schema (สตาร์สคีมา)
ลำดับชั้นของมิติ (dimension hierarchies) ถูกเก็บไว้ในตารางมิติเดียว (dimensional table)
ประกอบด้วยตารางข้อเท็จจริง (fact table) อยู่ตรงกลาง ถูกล้อมรอบโดยตารางมิติ (dimension tables)
ในสคีมานี้ การเชื่อมโยง (join) เพียงครั้งเดียวระหว่าง fact table และ dimension table ใดๆ ก็เพียงพอ
เป็นการออกแบบฐานข้อมูลที่เรียบง่าย
มีระดับความซ้ำซ้อนของข้อมูลสูง (high data redundancy)
การประมวลผล Cube (OLAP) เร็ว
ข้อมูลสรุป (aggregated data) อยู่ในตารางมิติเดียว
เป็นโครงสร้างข้อมูลแบบ De-normalized
Query ทำงานเร็วกว่า schema อื่นๆ
ใช้เทคนิค Star Join Query Optimization ทำให้ query ทำงานได้ดี
ตารางสามารถเชื่อมต่อกับหลายมิติได้
Snowflake Schema (สโนวเฟลกสคีมา)
ลำดับชั้นของมิติถูกแบ่งออกเป็นตารางแยกต่างหาก (normalized)
ตารางข้อเท็จจริง (fact table) ถูกล้อมรอบโดยตารางมิติ ซึ่งมิตินั้นอาจถูกล้อมรอบโดยมิติย่อยอีกที
ต้องใช้การ join หลายครั้ง (multiple joins) เพื่อดึงข้อมูล
มีการออกแบบฐานข้อมูลที่ซับซ้อนกว่า
เป็นโครงสร้างข้อมูลแบบ Normalized
มีระดับความซ้ำซ้อนของข้อมูลต่ำ (low data redundancy)
ข้อมูลถูกแบ่งออกเป็นตารางมิติที่แตกต่างกัน
การประมวลผล Cube ช้ากว่าเนื่องจากการ join ที่ซับซ้อน
สามารถแสดงผ่าน fact table แบบรวมศูนย์กลาง ซึ่งอาจไม่เชื่อมต่อกับหลายมิติโดยตรง
สรุปการเลือกใช้
Star Schema เหมาะสำหรับ: Query performance สำคัญ, ข้อมูลไม่ใหญ่มาก, ความเรียบง่ายในการบำรุงรักษา
Snowflake Schema เหมาะสำหรับ: พื้นที่จัดเก็บจำกัด, ต้องการ data integrity สูง, มิติมีลำดับชั้นซับซ้อน