מה זה Snowflake Schema?
Snowflake Schema הוא מונח מתחום מסדי הנתונים, ובמיוחד בתחום ה-Business Intelligence (BI) וה-Data Warehousing. מטרתו העיקרית היא לארגן ולהציג את הנתונים בדרך אשר מפחיתה קיבוצים מיותרים ויוצרת מבנה ארגוני יעיל יותר לשאילתות מורכבות. השם 'Snowflake' נובע מצורתו, המזכירה פתיתי שלג, כשהנתונים מסתעפים מבסיס מרכזי לחלקים קטנים וגרעיניים יותר.
ב-Snowflake Schema הנתונים המרכזיים מאוחסנים בטבלאות Fact Tables, שהן הטבלאות הראשיות המכילות את הנתונים הכמותיים, ולצדן ישנן טבלאות Dimensional Tables, שהן טבלאות ממדים המספקות הקשר נוסף לנתונים בטבלאות המרכזיות. הטבלאות הממדיות נשמרות בצורה נורמלית, וכך המידע מתפצל לטבלאות קטנות יותר שעליהן הנתונים מחולקים בתתי קטגוריות.
היתרון המשמעותי של Snowflake Schema הוא ביכולתו להקטין חזרתיות מידע ולהפחית את התלות בין הנתונים, ומכאן גם ביכולת להגדיל את ביצועי השאילתות. אחת השיטות להשיג זאת היא באמצעות נורמליזציה של טבלאות הממדים (dimensional tables), תהליך שבמהלה הנתונים מאוחסנים בדרך המאחדת ערכים חזרתיים ומבוזרים למבנים עצמאיים ומופרדים.
גישה זו, לעומת זאת, עשויה להיות יותר מורכבת לנהל בהשוואה לסכמות אחרות, כמו Star Schema, שמבסס את הטבלאות הממדיות בסכמת אמת (denormalized) ולכן מספק גישה פשוטה יותר לשאילתות מסוימות. למרות זאת, במקרים רבים, Snowflake Schema עדיפה במערכות גדולות ומורכבות, שבהן נדרשת יכולת מנוע שאילתות מתקדמת וגמישות גבוהה במיוחד בניהול הנתונים.
כדי להבין טוב יותר, ניתן לחשוב על יישום Snowflake Schema במערכות BI גדולות כמו של חברות קמעונאות, שבהן כל מוצר, לקוח ומכירה מפורטים בקפדנות תוך שימוש ביחסים מורכבים בין הנתונים. חלוקה זו מגבירה את האפשרות לניתוחים מדוקדקים ושאילתות מתקדמות, אך דורשת גם תיכנון ותחזוקה מדויקת יותר.