Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ความแตกต่างระหว่าง Star Schema และ Snowflake Schema


ในบทความนี้ เราจะทำความเข้าใจความแตกต่างระหว่าง 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 สูง, มิติมีลำดับชั้นซับซ้อน