משתמש:DrorO/סכימת פתיתי שלג

מתוך ויקיפדיה, האנציקלופדיה החופשית

סכמת פתיתי שלג

סכמת פתיתי שלג היא וריאציה של סכמת כוכב, בה מתבצעת נורמליזציה של טבלאות המימדים.

במדעי המחשב, סכמת פתיתי שלג היא מבנה לוגי של טבלאות בבסיס נתונים רב מימדי שייצוגו בתרשים ישויות-קשרים דומה בצורתו לפתית שלג. סכמת פתיתי שלג מיוצגת על ידי טבלאות עובדות שנמצאות במרכז בסיס הנתונים ומקושרות למימדים רבים. סכמת פתיתי שלג דומה לסכמת כוכב אולם, בסכמת פתיתי שלג, המימדים מנורמלים למספר טבלאות מקושרות בעוד שבסכמת הכוכב כל מימד מיוצג על ידי טבלה מנורמלת אחת בלבד. המבנה המורכב של פתית שלג נוצר כאשר המימדים של סכמת פתיתי שלג מסועפים, כתוצאה מריבוי רמות קשר ולטבלאות הבנים ישנן טבלאות אב רבות. מורכבות המבנה של סכמת פתיתי שלג עולה כאשר מימדי הסכמה מורחבים על ידי קשרים מסדר גבוה וריבוי טבלאות אב לכל טבלה (מזלג דרכים). אפקט "פתית השלג" משפיע על טבלאות המימדים בלבד ואינו נוגע לטבלת העובדות.

שימושים נפוצים[עריכת קוד מקור | עריכה]

סכימות כוכב וסכמת פתיתי שלג הן נפוצות בעיקר בקרב מחסני נתונים מימדיים ומרכולי נתונים בהם מהירות שליפת המידע הינה חשובה יותר מיעילות ביצוע מניפולציות על המידע. מכיוון שכך, הטבלאות בסכימות אלו אינן מנורמלות לסדר גבוה ולרוב מנורמלות עד לרמת נרומליזציה 3NF או נמוכה ממנה. ההחלטה האם ליישם סכמת כוכב או סכמת פתיתי שלג אמורה לכלול את היתרונות היחסיים של פלטפורמת בסיס הנתונים הנדונה וכן את כלי השאילתות בו יש כוונה להשתמש. יש להעדיף את סכמת הכוכב כאשר כלי השאילתות חושף למשתמשים את המבנה הטבלאי שבבסיס המערכת, ובסביבה בה רוב השאילתות הן פשוטות באופיין. סכמות פתית שלג עדיפות בדרך כלל כאשר משתמשים בכלי שאילתות מתוחכם יותר היוצר שכבת אבסטרקציה בין המשתמשים למבנה הטבלאי הגולמי ועבור סביבה בה קיימות שאילתות מרובות המכילות קריטריונים מסובכים.

נרמול מידע ואיחסון[עריכת קוד מקור | עריכה]

נרמול היא פעולה המפצלת את המידע כדי למנוע יתירות (כפילות מידע) על ידי הזזת קבוצות נתונים החוזרות על עצמן לעיתים תכופות לטבלאות חדשות. מחד, פעולת הנרמול נוטה להגדיל את מספר הטבלאות אותן יש לשלב לצורך ביצוע שאילתה נתונה ומאידך מצמצמת את המקום הנדרש לשמירת הנתונים וכן את מספר המקומות בהם יש לעדכן את הנתונים כאשר אלו משתנים. בהיבט נפח איחסון, טבלאות המימדים הן לרוב קטנות בהשוואה לטבלאות העובדות. תכונה זו לרוב מבטלת את היתרונות הנוגעים לנפח איחסון כאשר בונים אותן על פי סכמת פתיתי שלג, בהשוואה לבנייתן על פי סכמת הכוכב. חלק ממפתחי בסיסי הנתונים יוצרים שילוב שיש בו פשרה בין סכמת הכוכב לבין סכמת פתית שלג. זו כוללת יצירת סכמת פתית שלג כשכבה חבויה ועל גביה יצירת תשקיפים (views), בהם מבוצעים הרבה מהאחודים (JOINs) הדרושים כדי לדמות סכמת כוכב. גישה זו משלבת את יתרונות האחסון המושגים דרך נרמול של מימדים של סכמת פתיתי שלג יחד עם פשטות ביצוע השאילתות של סכמת הכוכב. חסרונות הגישה נובעים מהדרישה כי השרת יבצע את פעולות האיחוד בשכבה התחתונה , דבר אשר עלול לפגוע בביצועים כאשר מריצים שאילתות כמו גם לביצוע אחודים מיותרים לטבלאות שאינן נדרשות לביצוע השאילתות.

יתרונות השימוש בסכמת פתיתי שלג[עריכת קוד מקור | עריכה]

  • חלק מכלי מידול OLAP לבסיסי נתונים רב מימדיים המשתמשים במרכולי נתונים כמקורות נתונים עובדים באופן מיטבי עבור סכמות פתיתי שלג.
  • אם מימד כלשהו דליל במיוחד (כלומר ברוב הערכים האפשריים במימד אין נתונים)או שלמימד כלשהו ישנה רשימה ארוכה של שדות אשר ניתנים לשימוש בשאילתה, טבלת המימד עשויה לאכלס אחוז ניכר מבסיס הנתונים ושימוש בסכמת פתית שלג עשוי להועיל.
  • לעיתים נוסף לבסיס נתונים המכיל טרנזקציות תשקיף (VIEW) רב מימדי (המכיל נתונים ממספר מימדים) על מנת ליצור דוחות לפי עניין כלשהו. בסכמת פתית שלג הטבלאות הדרושות לצורך הפקת דוח זה יהיו קיימות ועל פי רוב מנורמלות, ולכן סכמת פתית שלג עדיפה במקרה זה.
  • סכמת פתית שלג עשויה לשקף לעיתים את האופן בו משתמשים חושבים על הנתונים. משתמשים עשויים להעדיף ליצור שאילתות באמצעות סכמת כוכב במקרים מסוימים, אם כי אין הכרח שעובדה זו תשפיע על המבנה האמיתי של בסיס הנתונים.
  • חלק מהדוחות העסקיים, כגון מציאת מאפייני צריכה וקניה של לקוחות השמורים בבסיס הנתונים, אינם ניתנים לביצוע בכלים סטנדרטיים כאשר בסיס הנתונים מעוצב בסכמת כוכב. לעיתים יש לנרמל את טבלאות המימד (כלומר לעבור לסכמת פתית שלג) על מנת לאפשר יצירת שאילתות להפקת דוחות אלו.

דוגמאות[עריכת קוד מקור | עריכה]

  • הסכמה המופיעה משמאל כמו גם שאילתת הדוגמה הן גרסת פתית שלג של הגרסה המופיעה בערך סכמת כוכב.
  • ניתן לראות כי השאילתה בגרסת סכמת פתית שלג דורשת איחודים רבים יותר לשם ביצוע שאילתה, אפילו פשוטה. עם זאת, היתרון בשימוש בסכמת פתית שלג בדוגמה זו הוא הקטנת נפח האיחסון הנדרש כתוצאה ממניעת כפילויות רבות בטבלאות המימדים.
SELECT
	B.Brand,
	G.Country,
	SUM(F.Units_Sold)
FROM Fact_Sales F
INNER JOIN Dim_Date D             ON F.Date_Id = D.Id
INNER JOIN Dim_Store S            ON F.Store_Id = S.Id
INNER JOIN Dim_Geography G        ON S.Geography_Id = G.Id
INNER JOIN Dim_Product P          ON F.Product_Id = P.Id
INNER JOIN Dim_Brand B            ON P.Brand_Id = B.Id
INNER JOIN Dim_Product_Category C ON P.Product_Category_Id = C.Id
WHERE
	D.Year = 1997 AND
	C.Product_Category = 'tv'
GROUP BY
	B.Brand,
	G.Country

ראו גם[עריכת קוד מקור | עריכה]

לקריאה נוספת[עריכת קוד מקור | עריכה]

  • Anahory, S.; D. Murray. Data Warehousing in the Real World: A Practical Guide for Building Decision Support Systems. Addison Wesley Professional.
  • Kimball, Ralph (1996). The Data Warehousing Toolkit. John Wiley.

קישורים חיצוניים[עריכת קוד מקור | עריכה]

{{DEFAULTSORT:משתמש:DrorO/סכימת_פתיתי_שלג}} [[en:Snowflake schema]] [[de:Schneeflockenschema]] [[es:Esquema en copo de nieve]] [[ko:눈송이 스키마]] [[it:Schema a fiocco di neve]] [[ru:Схема снежинки]]