Subtyping הם כלי תקשורת בעל עוצמה במודל נתונים לוגי בגלל שמאפשרים למעצב המודל להציג מכנה משותף שיכול להיות קיים בין מושגים עסקים נפרדים על מנת לשפר אינטגרציה ואיכות מידע.
בתור דוגמא,נתייחס לתרשים 1 שבו supertype של הCourse מכיל את יחידות המידע המשותפות והיחסים עבור subtypes מסוג Lecture וWorkshop.
תרשים 1 -מבנה לוגי של המודל
בואו נסקור בקצרה את המודל. אנו למדים כי Course כגון Data Modeling 101 יכול להיות Lecture או Workshop.workshop ינתן בLocation אחד או יותר. Learning Track כגון Data Track יכול להיות מורכב מLecture אחד או יותר, אך רק מWorkshop אחד.Workshop כגון, Advanced Design Workshop יכול לדרוש Courses כדרישות קדם כגון Data Modeling 101 וכן Data Modeling 101 Workshop.
זהו מודל לוגי, בצד הפיזי של המודל אנו יכולים להחליף את הסימון של הsubtype עם אחת משלושת האפשרויות:
Rolling down: להסיר את ישות ה Supertype ולהעתיק את כל יחידות המידע והקשרים מהSupertype לsubtypes.
Rolling up: להסיר את הsubtypes ולהעתיק את יחידות המידע והקשרים מכל subtype לsupertype. כמו כן, הוסף קוד כדי להבדיל בין סוגי הsubtypes.
Identity:להמיר את הsubtype למערכת של קשרים אחד לאחד המחברים את הSupertype לכל אחד מהsubtypes.
האתגר: מהם נקודות החוזק והתורפה של כל אחד מהאופציות.
התשובה:
תרשים 2 מראה את טכניקת הrolling down המיוחסת למבנה הCourse. תרשים 3 מראה את טכניקת rolling up ותרשים 4 מראה את טכניקת identity. אנשים העוסקים בכך איבחנו 6 גורמים בבחירת טכניקה. תרשים 5 מראה את השיקולים בעד ונגד בבחירת טכניקה. דיון מורחב לגבי נושא זה בהמשך.
תרשים 2: Rolling Down
תרשים 3: Rolling Up
מתגובות , נושא אינטגריטי של נתונים הוא הנושא שעלה הכי הרבה. החוקים של הלוגיקה עסקית נשמרים ברמה כזאת או אחרת בכל אחד מסוגי הטכניקות כאשר טכניקת הidentiy היא הטכניקה שהכי הרבה מחקה את הלוגיקה העסקית. הקשר אחד לאחד במודל identity תופס ש Course יכול להיות Lecture,Workshop או שניהם. לכן, כל עוד המודל הלוגי מכיל subtype חופף המעבר מהמודל הלוגי לפיזי שומר על החוקים העסקים.
טכניקת rolling down יכולה לשמור רק את החוקים הקייימים בsubtypes. יועצת בשם מוניקה אוליבר אומרת שטכניקות rolling down וIdentity מוריד למינימום את עמודות null.אם Workshop Difficulty Code הוא פריט מידע חובה בWorkshop אנו יכולים לאכוף שיאוכלס.
מנגד Rolling up שומר על החוקים העסקים ברמת הSupertype. מבנה זה שומר את החוקים העסקים מCourse עד Location.
סוגי השיקולים כפי שמופיעים בטבלה 5:
תרשים 4: Identity
Balance מתייחס לכמות של יסודות המידע והקשרים אשר קיימים בכל אחת מהsubtypes. טכניקת הrolling down היא בחירה אפקטיבית כאשר הsubtypes נמתחים כלפי מטה עם קשרים ויסודות מידע יחודים. במילים אחרות, הsubtypes שונים אחד מהשני יותר מאשר הם דומים. מצד שני, טכניקת הrolling up היא בחירה טובה כאשר הsubtypes חולקים חלק ניכר מהתכונות שלהם. טכניקת הidentity יעילה בכל מקרה ללא קשר לדימיון בין הSubtypes.
Usability אומר שקל להבין את המודל. לרוב לאנליסטים יותר קל להבין מודל כשהוא משתמש במונחים עסקיים מוצקים. גם rolling down וגם identity שומרים על subtype מסוג Lecture וכן Workshop. מנגד, טכניקת rolling up מכילה רק את המונח הגנרי Course ומכן משפיעה על הפשטות ההבנתית של המודל.
Performance בשליפת מידע היא הדאגה העקרית בתכנון מודל פיזי.Doug Jones ציין שrolling down מוריד את כמות הjoins בין טבלאות. "Workshop " ו"Lecture " עומדים בזכות עצמם וחוסך בניה ותחזוקה של טבלה שלישית. יחד עם זאת אם יווצר צורך בישות Course, חיבור בין טבלאות אלו יכול להיות מורכב.
תרשים 5: שיקולים בבחירת טכניקה
Scalability מתייחס לעד כמה המודל יכול להכיל שינויים. בsupertype מופשט כגון Course ניתן לבצע שינויים בקלות בטכניקות roll up וכן identity כאשר סוג קורס שונה יכול למנף את המבנה הקיים של Super type. טכניקת rolling down אינה מותאמת לגידול עתידי.
Storage space הוא לרוב סוגיה פחות קריטית מאשר performance. מבחינה זאת טכניקת identity היא הכי חסכונית מבחינת שטח דיסק.טכניקת rolling down יכולה לגרום לחזרה במקרה שבו Course הוא גם Lecture וגם Workshop. טכניקת הrolling up היא לא אידיאלית במונחים של שטח דיסק משום שחלק מהשדות ישארו ריקים משום שהם מתייחסים לרק סוג אחד של Subtype.
מאמר זה תורגם ופורסם ברשות על ידי המחבר.
כדי לקרוא את המאמר המקורי, הקישו כאן .
אתר הבית של המחבר: www.stevehoberman.com