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

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

Star Schema (ดาว)

Star Schema เป็นข้อตกลง (Convention) สำหรับจัดระเบียบข้อมูลเป็น Dimension Tables, Fact Tables และ Materialized Views ข้อมูลทั้งหมดจัดเก็บในคอลัมน์ และต้องการ Metadata เพื่อระบุคอลัมน์ที่ทำหน้าที่เป็น Multidimensional Objects

Star Schema เป็น Relational Schema ที่การออกแบบอธิบาย Multidimensional Data Model เรียกว่า Star Schema เพราะ Entity-Relationship Diagram ของ Schema นี้คล้ายดาว จุดต่างๆ แยกออกจากตารางกลาง กลางของ Schema มี Fact Table ขนาดใหญ่ และจุดของดาวคือ Dimension Tables

Snowflake Schema (หิมะตก)

Snowflake Schema เป็นรูปแบบแปรผันของ Star Schema Model โดยที่ Dimension Tables บางส่วนถูก Normalized (ทำให้เป็นปกติ) แยกข้อมูลออกเป็นตารางมากขึ้น Schema Graph ที่ได้มีรูปทรงคล้าย Snowflake

Snowflake Schema เป็นส่วนขยายของ Star Schema ที่แต่ละจุดของดาวแตกออกเป็นจุดเพิ่มเติม เรียกว่า Snowflake Schema เพราะ Diagram จำลอง Snowflake Snowflaking เป็นวิธีการ Normalize Dimension Tables ใน STAR Schemas เมื่อ Normalize Dimension Tables บางส่วนอย่างสมบูรณ์ โครงสร้างที่ได้จะคล้าย Snowflake ที่มี Fact Table อยู่กลาง

ความแตกต่างระหว่าง Snowflake และ Star Schema คือ Dimension Tables ของ Snowflake Model สามารถเก็บในรูปแบบ Normalized ได้ ตารางแบบนี้ง่ายต่อการบำรุงรักษา และประหยัดพื้นที่จัดเก็บ เพราะ Dimension Table ขนาดใหญ่อาจใหญ่มากเมื่อโครงสร้างมิติเกี่ยวข้องเป็นคอลัมน์

เนื่องจากพื้นที่ส่วนใหญ่เป็นข้อมูลซ้ำ (Redundant) การสร้าง Normalized Structure จะลดพื้นที่จัดเก็บทั้งหมด อย่างไรก็ตาม Snowflake Structure อาจลดประสิทธิภาพการ Browse เพราะต้องใช้ Joins มากขึ้นในการ Query ดังนั้น System Performance อาจได้รับผลกระทบเชิงลบ สามารถใช้ Performance Benchmarking เพื่อตัดสินใจว่าอะไรดีกว่าสำหรับ Design นี้

การเปรียบเทียบ Star Schema และ Snowflake Schema

Star SchemaSnowflake Schema
การออกแบบฐานข้อมูลที่เรียบง่ายการออกแบบฐานข้อมูลที่ซับซ้อน
ใน Star Schema มีเพียง Single Join ทำความสัมพันธ์ระหว่าง Fact Table และ Dimension Tables ใดๆSnowflake Schema ต้องการ Multiple Joins เพื่อดึงข้อมูล
Cube Processing เร็วกว่าCube Processing อาจช้าเพราะ Complex Join
ไม่ใช้ Normalizationใช้ Normalization และ Denormalization
Star Schema ใช้ Joins น้อยกว่าSnowflake Schema ใช้ Joins มากกว่า