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

Snowflake Schema คืออะไร?

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

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

Snowflaking สามารถปรับปรุงประสิทธิภาพ Query บางประเภทได้ Schema จัดระเบียบโดยแต่ละ Fact ถูกล้อมรอบโดย Dimension ที่เกี่ยวข้อง และ Dimensions เหล่านั้นเชื่อมโยงกับ Dimensions อื่นๆ แบ่งกิ่งออกเป็นรูปแบบ Snowflake

Snowflake Schema ประกอบด้วย Fact Table เดียวที่เชื่อมต่อกับ Dimension Tables หลายตัว ซึ่งอาจเชื่อมต่อกับ Dimension Tables อื่นๆ ผ่านความสัมพันธ์ Many-to-One ตารางใน Snowflake Schema ปกติจะ Normalized ไปจนถึง Third Normal Form แต่ละ Dimension Table ใช้งานได้เพียงหนึ่งระดับใน Hierarchy

Star Schema จัดเก็บ Attributes ทั้งหมดสำหรับ Dimension ลงในตาราง Denormalized เดียว ต้องการพื้นที่ดิสก์มากกว่า Snowflake Schema ที่ Normalized มากกว่า Snowflaking ทำ Normalize Dimension โดยเปลี่ยน Attributes ที่มี Cardinality ต่ำ เป็น Dimension Tables แยกต่างหาก ที่เชื่อมโยงกับ Dimension Table หลักโดยใช้ Foreign Keys จุดประสงค์ของ Snowflake คือลดพื้นที่ดิสก์ แม้จะไม่แนะนำ เพราะอาจส่งผลลบต่อ Query Performance

ใน Snowflake Schema ตารางถูก Normalized เพื่อกำจัด Redundancy Dimension Tables ถูกแยกเป็นหลาย Dimension Tables

Snowflake Schema สร้างขึ้นเพื่อ Flexible Querying ข้าม Dimensions และ Relationships ที่ซับซ้อนมากขึ้น เหมาะกับความสัมพันธ์ Many-to-Many และ One-to-Many ระหว่าง Dimension Levels

ข้อดีของ Snowflake Schema

  • ข้อดีหลักคือการพัฒนาประสิทธิภาพ Query เนื่องจากลดพื้นที่จัดเก็บดิสก์ที่ต้องการ และ Join ตาราง Lookup ที่เล็กกว่า

  • ให้ Scalability สูงกว่าในความสัมพันธ์ระหว่าง Dimension Levels และ Components

  • ไม่มี Redundancy จึงง่ายต่อการบำรุงรักษา

ข้อเสียของ Snowflake Schema

  • ข้อเสียหลักคือความพยายามในการบำรุงรักษาเพิ่มเติม เนื่องจากจำนวน Lookup Tables เพิ่มขึ้น ยังเรียกว่า Multi-fact Star Schema

  • มี Query ที่ซับซ้อนมากขึ้น จึงยากต่อการเรียนรู้

  • ตารางมากขึ้น Joins มากขึ้น ดังนั้น Query Execution Time มากขึ้น