ݺߣ

ݺߣShare a Scribd company logo
‫מודל נתונים‬
                                 ‫‪Relation:: Attribute:: Table‬‬          ‫מודל היחסים‬
                                              ‫טבלה‬         ‫קשר‬          ‫יחס‬
                                                                                                     ‫מאפייני היחס :‬
                                              ‫שורה סדורה ‪tuple‬‬          ‫כל שורה היא מידע לגבי ישות מסוימת‬      ‫-‬

                                                 ‫עמודה ביחס‬            ‫כל עמודה היא תכונה של הישות; תכונה‬      ‫-‬
                                                                                      ‫כל הישויות מאותו סוג‬     ‫-‬
                                                                                       ‫לכל עמודה שם ייחודי‬     ‫-‬
                                                                              ‫כל תא בטבלה מכיל ערך יחיד‬        ‫-‬
                                                                           ‫סדר העמודות והשורות אינו חשוב‬       ‫-‬
                                                                                     ‫אין כפילויות של שורות‬     ‫-‬

                                                                                           ‫תלויות פונקציונאליות.‬
                                        ‫הגורם הקובע, הוא האיבר המוביל ביחס של תלות.‬                ‫דטרמיננט‬    ‫‪‬‬


                                ‫מספר יחידות‬     ‫‪X‬‬        ‫מחיר ליחידה‬   ‫=‬       ‫מחיר כולל‬                 ‫לדוגמא :‬

               ‫בהינתן מחיר ליחידה, המחיר הכולל יקבע בתלות במספר היחידות ועל כן, מספר היחידות הוא‬
                                                                                   ‫הגורם הקובע.‬

                                                                                ‫אדום שוקל 5, צהוב שוקל 6 ...‬   ‫‪‬‬

                     ‫‪Color‬‬                    ‫‪Weight‬‬


                                                    ‫הצבע הוא שקובע את המשקל ועל כן, הצבע הוא הגורם הקובע.‬

      ‫דטרמיננט מורכב (‪ )composite determinant‬הוא גורם קבוע שמורכב מזוג משולב של אובייקטים.‬                     ‫‪‬‬

         ‫‪Student number, class number‬‬                           ‫‪Grade‬‬



‫תלות פונקציונאלית תוגדר ככזו באם נוכל לענות בחיוב על השאלה האם בכל פעם שמופיע ערך בא' יופיע‬                    ‫‪‬‬
                                                                              ‫אותו ערך בב'.‬

             ‫א‬                      ‫ב‬                             ‫ב‬                 ‫א‬
                         ‫?‬                          ‫או‬                     ‫?‬
  ‫כמובן שמעבר למדגם בודד, יש להפעיל שיקול דעת ולהבין ממומחה הנתונים מהן התלויות הפונקציות הנכונות‬
                                                                                      ‫לגבי הנתונים.‬
‫מפתחות.‬
                                            ‫- מפתח – עמודה המשמשת לזיהוי שורות מסוימות ביחס.‬
      ‫- מפתח מורכב ‪ – Composite Key‬שילוב של מספר עמודות המשמש לזיהוי שורות מסוימות ביחס.‬
    ‫- מפתח קביל ‪ – Candidate Key‬זהו גורם קובע אשר קובע את כל העמודות ביחס ובאמצעותו מזהים‬
                                     ‫באופן ייחודי שורה ביחס. ייתכנו מספר מפתחות קבילים ביחס.‬
    ‫- מפתח ראשי ‪ – Primary Key‬זוהי בחירה של הפשוט ביותר מבין המפתחות הקבילים. לכל טבלה יש‬
                        ‫מפתח ראשי אחד. יכול להיות פשוט (עמודה אחת) או מורכב (מספר עמודות).‬
 ‫מפתח חילופי ‪ – Surrogate Key‬עמודה מלאכותית שמוסיפים לטבלה המשמשת כמפתח ראשי. הערכים‬             ‫-‬
‫בעמודה שהתווספה לא ניתנים לשינוי. לרוב יבוא על מנת להחליף מפתח ראשי מורכב מדי על מנת לפשט‬
                                                                             ‫ולייעל ביצועים.‬
       ‫- מפתח זר – ‪ – Foreign Key‬עמודה או יותר שמהוות מפתח ראשי בטבלה שונה מזו בה הן נבחרו.‬


                                                                           ‫אילוצים - ‪. Constraints‬‬
                                                                  ‫אילוץ זיקה – זהו אילוץ בין שני יחסים.‬
         ‫זוהי ההבטחה כי כל ערך בתכונה / תכונות מסוימות חייב להופיע גם בתכונה / תכונות אלו ביחס השני.‬


                                                                              ‫סטיות - ‪. Anomalies‬‬
                                                                        ‫‪Modification anomalies‬‬
     ‫- ‪ – Deletion Anomaly‬מחיקה של שורה על מנת להסיר נתונים מסוימים המביאה להסרה גורפת של‬
                                                      ‫נתונים, כך שנגרם אובדן נתונים שלא לצורך.‬
  ‫- ‪ – Insertion Anomaly‬חוסר בידע בנוגע לישות מסוימת בהזנת תכונות לגביה, כלומר כאשר קיים צורך‬
                                    ‫ביותר נתונים ממה שידוע לנו לצורך ביצוע משימת הכנסת מידע.‬
   ‫- ‪ – Update Anomaly‬עדכון תכונה עבור ישות מסוימת בשורה אחת מתוך מספר שורות המביא לחוסר‬
                                    ‫התאמה ולסתירה בין הנתונים בשורה זו לשורות אחרות בטבלה.‬

                                                                                  ‫נירמול של טבלה.‬
           ‫כפיתרון לבעיה של סטיות ניתן לעצב את בסיס הנתונים כך שכל גורם קובע משמש גם כמפתח קביל.‬
                                                           ‫תהליך הנירמול כולל מספר שלבים כדלהלן:‬

                                          ‫זיהוי כל התלויות הפונקציונאליות (הגורמים הקובעים)‬      ‫-‬
                                               ‫ניפוי הגורמים הקובעים שהינם מפתחות קבילים.‬        ‫-‬
 ‫עבור כל תלות פונקציונאלית בעייתית (גורם קובע שאינו מפתח קביל), נבצע העברת כל התכונות ליחס‬       ‫-‬
                                               ‫חדש, תוך השארת עותק של הגורם הקובע עצמו.‬
                        ‫הפיכת הגורם הקובע למפתח ראשי ביחס החדש ולמפתח זר ביחס המקורי.‬            ‫-‬
                              ‫יצירת אילוץ זיקה מתאים בין היחס המקורי ליחס החדש באופן הבא:‬        ‫-‬
‫)‪OriginalTable.determinant(as FK) MUST EXIST IN NewTable.determinant(as PK‬‬

More Related Content

SQL - מודל הנתונים

  • 1. ‫מודל נתונים‬ ‫‪Relation:: Attribute:: Table‬‬ ‫מודל היחסים‬ ‫טבלה‬ ‫קשר‬ ‫יחס‬ ‫מאפייני היחס :‬ ‫שורה סדורה ‪tuple‬‬ ‫כל שורה היא מידע לגבי ישות מסוימת‬ ‫-‬ ‫עמודה ביחס‬ ‫כל עמודה היא תכונה של הישות; תכונה‬ ‫-‬ ‫כל הישויות מאותו סוג‬ ‫-‬ ‫לכל עמודה שם ייחודי‬ ‫-‬ ‫כל תא בטבלה מכיל ערך יחיד‬ ‫-‬ ‫סדר העמודות והשורות אינו חשוב‬ ‫-‬ ‫אין כפילויות של שורות‬ ‫-‬ ‫תלויות פונקציונאליות.‬ ‫הגורם הקובע, הוא האיבר המוביל ביחס של תלות.‬ ‫דטרמיננט‬ ‫‪‬‬ ‫מספר יחידות‬ ‫‪X‬‬ ‫מחיר ליחידה‬ ‫=‬ ‫מחיר כולל‬ ‫לדוגמא :‬ ‫בהינתן מחיר ליחידה, המחיר הכולל יקבע בתלות במספר היחידות ועל כן, מספר היחידות הוא‬ ‫הגורם הקובע.‬ ‫אדום שוקל 5, צהוב שוקל 6 ...‬ ‫‪‬‬ ‫‪Color‬‬ ‫‪Weight‬‬ ‫הצבע הוא שקובע את המשקל ועל כן, הצבע הוא הגורם הקובע.‬ ‫דטרמיננט מורכב (‪ )composite determinant‬הוא גורם קבוע שמורכב מזוג משולב של אובייקטים.‬ ‫‪‬‬ ‫‪Student number, class number‬‬ ‫‪Grade‬‬ ‫תלות פונקציונאלית תוגדר ככזו באם נוכל לענות בחיוב על השאלה האם בכל פעם שמופיע ערך בא' יופיע‬ ‫‪‬‬ ‫אותו ערך בב'.‬ ‫א‬ ‫ב‬ ‫ב‬ ‫א‬ ‫?‬ ‫או‬ ‫?‬ ‫כמובן שמעבר למדגם בודד, יש להפעיל שיקול דעת ולהבין ממומחה הנתונים מהן התלויות הפונקציות הנכונות‬ ‫לגבי הנתונים.‬
  • 2. ‫מפתחות.‬ ‫- מפתח – עמודה המשמשת לזיהוי שורות מסוימות ביחס.‬ ‫- מפתח מורכב ‪ – Composite Key‬שילוב של מספר עמודות המשמש לזיהוי שורות מסוימות ביחס.‬ ‫- מפתח קביל ‪ – Candidate Key‬זהו גורם קובע אשר קובע את כל העמודות ביחס ובאמצעותו מזהים‬ ‫באופן ייחודי שורה ביחס. ייתכנו מספר מפתחות קבילים ביחס.‬ ‫- מפתח ראשי ‪ – Primary Key‬זוהי בחירה של הפשוט ביותר מבין המפתחות הקבילים. לכל טבלה יש‬ ‫מפתח ראשי אחד. יכול להיות פשוט (עמודה אחת) או מורכב (מספר עמודות).‬ ‫מפתח חילופי ‪ – Surrogate Key‬עמודה מלאכותית שמוסיפים לטבלה המשמשת כמפתח ראשי. הערכים‬ ‫-‬ ‫בעמודה שהתווספה לא ניתנים לשינוי. לרוב יבוא על מנת להחליף מפתח ראשי מורכב מדי על מנת לפשט‬ ‫ולייעל ביצועים.‬ ‫- מפתח זר – ‪ – Foreign Key‬עמודה או יותר שמהוות מפתח ראשי בטבלה שונה מזו בה הן נבחרו.‬ ‫אילוצים - ‪. Constraints‬‬ ‫אילוץ זיקה – זהו אילוץ בין שני יחסים.‬ ‫זוהי ההבטחה כי כל ערך בתכונה / תכונות מסוימות חייב להופיע גם בתכונה / תכונות אלו ביחס השני.‬ ‫סטיות - ‪. Anomalies‬‬ ‫‪Modification anomalies‬‬ ‫- ‪ – Deletion Anomaly‬מחיקה של שורה על מנת להסיר נתונים מסוימים המביאה להסרה גורפת של‬ ‫נתונים, כך שנגרם אובדן נתונים שלא לצורך.‬ ‫- ‪ – Insertion Anomaly‬חוסר בידע בנוגע לישות מסוימת בהזנת תכונות לגביה, כלומר כאשר קיים צורך‬ ‫ביותר נתונים ממה שידוע לנו לצורך ביצוע משימת הכנסת מידע.‬ ‫- ‪ – Update Anomaly‬עדכון תכונה עבור ישות מסוימת בשורה אחת מתוך מספר שורות המביא לחוסר‬ ‫התאמה ולסתירה בין הנתונים בשורה זו לשורות אחרות בטבלה.‬ ‫נירמול של טבלה.‬ ‫כפיתרון לבעיה של סטיות ניתן לעצב את בסיס הנתונים כך שכל גורם קובע משמש גם כמפתח קביל.‬ ‫תהליך הנירמול כולל מספר שלבים כדלהלן:‬ ‫זיהוי כל התלויות הפונקציונאליות (הגורמים הקובעים)‬ ‫-‬ ‫ניפוי הגורמים הקובעים שהינם מפתחות קבילים.‬ ‫-‬ ‫עבור כל תלות פונקציונאלית בעייתית (גורם קובע שאינו מפתח קביל), נבצע העברת כל התכונות ליחס‬ ‫-‬ ‫חדש, תוך השארת עותק של הגורם הקובע עצמו.‬ ‫הפיכת הגורם הקובע למפתח ראשי ביחס החדש ולמפתח זר ביחס המקורי.‬ ‫-‬ ‫יצירת אילוץ זיקה מתאים בין היחס המקורי ליחס החדש באופן הבא:‬ ‫-‬ ‫)‪OriginalTable.determinant(as FK) MUST EXIST IN NewTable.determinant(as PK‬‬