ݺߣ

ݺߣShare a Scribd company logo
‫מודל ישויות קשרים ‪ – Entity Relational Model‬כלי לתכנון.‬
                   ‫ישות (‪ ) Entity‬היא עצם עליו רוצים לשמור מידע באופן בלתי תלוי בעצמים אחרים.‬       ‫-‬
     ‫טיפוס ישויות– אוסף כל הישויות מאותו הסוג. טיפוס הישויות =‪ class‬וישות מסוימת = ‪instance‬‬         ‫-‬
                                   ‫(מופע של טיפוס זה) לדוגמה: טיפוס ישויות = מקצוע, מופע = נגר.‬
     ‫קשר – צירוף של מספר ישויות המציין זיקה כלשהי ביניהן. לדוגמה: מועמד‪ X‬נמצא מתאים לעבודה‬          ‫-‬
                                                ‫במקצוע ‪ ,Y‬אם כן, בין ‪ X‬ל – ‪ Y‬יש קשר של התאמה.‬
    ‫טיפוס קשרים– סוג של קשרים המתקיימים בין ישויות מטיפוסי נתונים. כאן טיפוס הנתונים =‪class‬‬         ‫-‬
‫וצירוף הישויות = ‪ .instance‬לדוגמה: טיפוס הקשרים = "התאמה" בעוד המופע הוא זוג מהצורה (מועמד,‬
    ‫מקצוע‬                  ‫מועמד‬    ‫מקצוע), במקרה זה, זהו טיפוס קשרים בינארי. ובצורה גראפית:‬
                                                                                   ‫התאמה‬
                          ‫- דרגה של קשר – מספר טיפוסי הישויות בקשר. בדוגמה הנ"ל הדרגה היא 2.‬
‫תכונות – ‪ – Attributes‬היבטים מסוימים של הישות (שמות העמודות). במודל ה – ‪ E-R‬לכל המופעים של‬          ‫-‬
                                                         ‫טיפוס ישויות מסוים יהיו אותן התכונות.‬
‫ערך של תכונה– הערך של ישות מסוימת בתכונה של טיפוס הישויות. לדוגמה: טיפוס הישויות = מקצוע,‬           ‫-‬
                                               ‫תכונה = שם מקצוע, ערך התכונה שם מקצוע = נגר.‬
 ‫תחום תכונה –‪ – Attribute Domain‬קבוצת הערכים האפשריים עבור תכונה מסוימת. לדוגמה: תכונה =‬            ‫-‬
                                                   ‫שם מקצוע, תחום תכונה = {נגר, ספר, מלגזן...}‬
                         ‫תכונה מרובת ערכים– לדוגמה: תכונה = התמחות, ערך = {אורטופד, מנתח}.‬          ‫-‬
                ‫תכונה ריקה – לדוגמה: טיפוס ישויות = עובד, תכונה = שם בן / בת הזוג, ערך =‪NULL‬‬        ‫-‬
‫– טיפוס קשרים המתקיים בין טיפוס ישויות לבין עצמו. לדוגמה: הצעה לפגישה‬
                                                                    ‫טיפוס ישויות רקורסיבי‬           ‫-‬
                                                             ‫בין ללקוח ללקוח. ובצורה גרפית:‬
                              ‫הצעה לפגישה‬
                                                  ‫לקוח‬


                  ‫– ‪ – Cardinality‬אנו עוסקים בטיפוס קשרים בינארי.‬
                                                                ‫מידות ריבוי של טיפוסי קשרים‬         ‫-‬
                                                   ‫מינימום מידות ריבוי‬        ‫מקסימום מידות ריבוי‬
               ‫( ‪Mandatory to Mandatory )M-M‬‬       ‫⊲[‬        ‫‪N:M‬‬         ‫(‪⊲[ Many To Many )N:M‬‬


                 ‫(‪Optional to Mandatory )O-M‬‬       ‫‪]⊳ o‬‬      ‫1:‪N‬‬          ‫[‬    ‫(1:‪Many To One )N‬‬


                 ‫(‪Mandatory to Optional )M-O‬‬        ‫]‬         ‫‪1:N‬‬    ‫]⊲ ‪o‬‬      ‫(‪One To Many )1:N‬‬


                  ‫(‪Optional to Optional )O-O‬‬        ‫‪[ o‬‬       ‫1:1‬    ‫] ‪o‬‬        ‫(1:1) ‪One To One‬‬

      ‫שילוב של שיטת הסימון הסטנדרטית ( אותה נקבל אם נסיר את התגים החיצוניים), ושיטת הסימון‬
                                                 ‫המקובלת בתעשייה (אם נסיר את המלל במעוין).‬
‫ישויות.‬
                                                   ‫- ישות חזקה – ישות שיכולה להתקיים בזכות עצמה.‬
                                   ‫- ישות חלשה – ישות שקיומה תלוי בישות אחרת באחת משתי תלויות:‬
                ‫‪ o‬תלות זיהוי – הישות היא חלשה, המפתח שלה צריך לכלול מפתח של ישות אחרת.‬
      ‫‪ o‬תלות קיום – הישות היא חלשה, בהיעדר ישות מסוימת אין לה זכות קיום והיא לא רלוונטית.‬
                       ‫דוגמה: במפעל לייצור חלב שומרים נתונים לגבי חליבות של פרות לצורך סיווג הפרות.‬
                                                                               ‫- ישות חזקה – פרה‬
                                                                             ‫- ישות חלשה – חליבה‬
                                        ‫תלויה בתלות זיהוי שהרי המפתח שלה חייב להכיל את מספר הפרה.‬
                     ‫תלויה בתלות קיום שהרי אם מסירים פרה מהרשימה, אין משמעות לנתוני החליבה שלה.‬
                                                              ‫קיימים ב – ‪ E-R‬גם ישויות מהסוגים:‬     ‫-‬
                  ‫‪... Subtype Entities, Non-ID Dependant Entities ,ID Dependant Entities‬‬


          ‫המרת מודל ישויות קשרים לתבנית של בסיס נתונים (ב 3 שלבים).‬
                                                                  ‫שלב 3/1 :‬
                            ‫יצירת טבלה לכל ישות כאשר כל תכונה של הישות תהפוך לעמודה בטבלה.‬          ‫-‬
    ‫בחירת המפתח הראשי מתוך המפתחות הקבילים (לשקול מפתח חילופי) לציון יתר המפתחות הקבילים.‬           ‫-‬
                      ‫הגדרת תכונות עבור העמודות (‪ ,null status‬טיפוס הנתונים, ערך ברירת מחדל...).‬    ‫-‬
       ‫הגדרת אילוצים על הנתונים לשם הגבלת הערכים שלהם (הגבלת בחירה מקבוצת ערכים (‪,)domain‬‬           ‫-‬
        ‫הגבלת תחום עבור הערכים (‪ ,)range‬הגבלות ביחס לערכים אחרים באותה טבלה (‪,)intra relation‬‬
                                        ‫הגבלות ביחס לערכים אחרים מטבלה אחרת (‪.))inter relation‬‬
                                                            ‫נרמול: הגעה ל – ‪ BCNF‬במידת הצורך.‬       ‫-‬
                                                                                     ‫שלב 3/2 :‬
‫ייצוג קשרים בין ישויות חזקות על ידי הצבת מפתחות זרים בהתאם למקסימום מידות הריבוי של הקשר:‬           ‫-‬
  ‫1:1 הצבת המפתח הראשי של אחת הטבלאות כמפתח זר בטבלה השנייה והוספת אילוץ על כך‬
                                                      ‫שהמפתח הזה הוא ייחודי.‬
                        ‫‪ 1: N‬הצבת המפתח הראשי של ההורה (1) כמפתח זר בטבלת הילד (‪.)N‬‬
                                  ‫1 :‪ N‬הצבת המפתח הראשי של (1) כמפתח זר בטבלת ה (‪.)N‬‬
      ‫‪ N:M‬יצירת טבלת חיתוך שמכילה את שני המפתחות הראשיים (של (‪ ))N(,)M‬כמפתחות זרים‬
                                           ‫שהשילוב ביניהם יהווה המפתח הראשי שלה.‬
                                                                                     ‫שלב 3/3 :‬
                                                  ‫ייצוג מינימום מידות ריבוי על ידי הגדרת אילוצים.‬   ‫-‬
                                  ‫‪ M – O‬הגדרת אילוץ זיקה והבטחה שערך המפתח הזר לא יהיה ריק.‬
‫…(‪CREATE TABLE X‬‬
‫‪α ID NOT NULL‬‬
‫.‬
‫)‪FOREIGN KEY α FK (α ID‬‬
‫...)‪REFERENCES Z(α ID‬‬
                                                 ‫*שאר מידות ריבוי מינימאליות באמצעות טריגרים*‬

More Related Content

SQL - מודל ישויות קשרים

  • 1. ‫מודל ישויות קשרים ‪ – Entity Relational Model‬כלי לתכנון.‬ ‫ישות (‪ ) Entity‬היא עצם עליו רוצים לשמור מידע באופן בלתי תלוי בעצמים אחרים.‬ ‫-‬ ‫טיפוס ישויות– אוסף כל הישויות מאותו הסוג. טיפוס הישויות =‪ class‬וישות מסוימת = ‪instance‬‬ ‫-‬ ‫(מופע של טיפוס זה) לדוגמה: טיפוס ישויות = מקצוע, מופע = נגר.‬ ‫קשר – צירוף של מספר ישויות המציין זיקה כלשהי ביניהן. לדוגמה: מועמד‪ X‬נמצא מתאים לעבודה‬ ‫-‬ ‫במקצוע ‪ ,Y‬אם כן, בין ‪ X‬ל – ‪ Y‬יש קשר של התאמה.‬ ‫טיפוס קשרים– סוג של קשרים המתקיימים בין ישויות מטיפוסי נתונים. כאן טיפוס הנתונים =‪class‬‬ ‫-‬ ‫וצירוף הישויות = ‪ .instance‬לדוגמה: טיפוס הקשרים = "התאמה" בעוד המופע הוא זוג מהצורה (מועמד,‬ ‫מקצוע‬ ‫מועמד‬ ‫מקצוע), במקרה זה, זהו טיפוס קשרים בינארי. ובצורה גראפית:‬ ‫התאמה‬ ‫- דרגה של קשר – מספר טיפוסי הישויות בקשר. בדוגמה הנ"ל הדרגה היא 2.‬ ‫תכונות – ‪ – Attributes‬היבטים מסוימים של הישות (שמות העמודות). במודל ה – ‪ E-R‬לכל המופעים של‬ ‫-‬ ‫טיפוס ישויות מסוים יהיו אותן התכונות.‬ ‫ערך של תכונה– הערך של ישות מסוימת בתכונה של טיפוס הישויות. לדוגמה: טיפוס הישויות = מקצוע,‬ ‫-‬ ‫תכונה = שם מקצוע, ערך התכונה שם מקצוע = נגר.‬ ‫תחום תכונה –‪ – Attribute Domain‬קבוצת הערכים האפשריים עבור תכונה מסוימת. לדוגמה: תכונה =‬ ‫-‬ ‫שם מקצוע, תחום תכונה = {נגר, ספר, מלגזן...}‬ ‫תכונה מרובת ערכים– לדוגמה: תכונה = התמחות, ערך = {אורטופד, מנתח}.‬ ‫-‬ ‫תכונה ריקה – לדוגמה: טיפוס ישויות = עובד, תכונה = שם בן / בת הזוג, ערך =‪NULL‬‬ ‫-‬ ‫– טיפוס קשרים המתקיים בין טיפוס ישויות לבין עצמו. לדוגמה: הצעה לפגישה‬ ‫טיפוס ישויות רקורסיבי‬ ‫-‬ ‫בין ללקוח ללקוח. ובצורה גרפית:‬ ‫הצעה לפגישה‬ ‫לקוח‬ ‫– ‪ – Cardinality‬אנו עוסקים בטיפוס קשרים בינארי.‬ ‫מידות ריבוי של טיפוסי קשרים‬ ‫-‬ ‫מינימום מידות ריבוי‬ ‫מקסימום מידות ריבוי‬ ‫( ‪Mandatory to Mandatory )M-M‬‬ ‫⊲[‬ ‫‪N:M‬‬ ‫(‪⊲[ Many To Many )N:M‬‬ ‫(‪Optional to Mandatory )O-M‬‬ ‫‪]⊳ o‬‬ ‫1:‪N‬‬ ‫[‬ ‫(1:‪Many To One )N‬‬ ‫(‪Mandatory to Optional )M-O‬‬ ‫]‬ ‫‪1:N‬‬ ‫]⊲ ‪o‬‬ ‫(‪One To Many )1:N‬‬ ‫(‪Optional to Optional )O-O‬‬ ‫‪[ o‬‬ ‫1:1‬ ‫] ‪o‬‬ ‫(1:1) ‪One To One‬‬ ‫שילוב של שיטת הסימון הסטנדרטית ( אותה נקבל אם נסיר את התגים החיצוניים), ושיטת הסימון‬ ‫המקובלת בתעשייה (אם נסיר את המלל במעוין).‬
  • 2. ‫ישויות.‬ ‫- ישות חזקה – ישות שיכולה להתקיים בזכות עצמה.‬ ‫- ישות חלשה – ישות שקיומה תלוי בישות אחרת באחת משתי תלויות:‬ ‫‪ o‬תלות זיהוי – הישות היא חלשה, המפתח שלה צריך לכלול מפתח של ישות אחרת.‬ ‫‪ o‬תלות קיום – הישות היא חלשה, בהיעדר ישות מסוימת אין לה זכות קיום והיא לא רלוונטית.‬ ‫דוגמה: במפעל לייצור חלב שומרים נתונים לגבי חליבות של פרות לצורך סיווג הפרות.‬ ‫- ישות חזקה – פרה‬ ‫- ישות חלשה – חליבה‬ ‫תלויה בתלות זיהוי שהרי המפתח שלה חייב להכיל את מספר הפרה.‬ ‫תלויה בתלות קיום שהרי אם מסירים פרה מהרשימה, אין משמעות לנתוני החליבה שלה.‬ ‫קיימים ב – ‪ E-R‬גם ישויות מהסוגים:‬ ‫-‬ ‫‪... Subtype Entities, Non-ID Dependant Entities ,ID Dependant Entities‬‬ ‫המרת מודל ישויות קשרים לתבנית של בסיס נתונים (ב 3 שלבים).‬ ‫שלב 3/1 :‬ ‫יצירת טבלה לכל ישות כאשר כל תכונה של הישות תהפוך לעמודה בטבלה.‬ ‫-‬ ‫בחירת המפתח הראשי מתוך המפתחות הקבילים (לשקול מפתח חילופי) לציון יתר המפתחות הקבילים.‬ ‫-‬ ‫הגדרת תכונות עבור העמודות (‪ ,null status‬טיפוס הנתונים, ערך ברירת מחדל...).‬ ‫-‬ ‫הגדרת אילוצים על הנתונים לשם הגבלת הערכים שלהם (הגבלת בחירה מקבוצת ערכים (‪,)domain‬‬ ‫-‬ ‫הגבלת תחום עבור הערכים (‪ ,)range‬הגבלות ביחס לערכים אחרים באותה טבלה (‪,)intra relation‬‬ ‫הגבלות ביחס לערכים אחרים מטבלה אחרת (‪.))inter relation‬‬ ‫נרמול: הגעה ל – ‪ BCNF‬במידת הצורך.‬ ‫-‬ ‫שלב 3/2 :‬ ‫ייצוג קשרים בין ישויות חזקות על ידי הצבת מפתחות זרים בהתאם למקסימום מידות הריבוי של הקשר:‬ ‫-‬ ‫1:1 הצבת המפתח הראשי של אחת הטבלאות כמפתח זר בטבלה השנייה והוספת אילוץ על כך‬ ‫שהמפתח הזה הוא ייחודי.‬ ‫‪ 1: N‬הצבת המפתח הראשי של ההורה (1) כמפתח זר בטבלת הילד (‪.)N‬‬ ‫1 :‪ N‬הצבת המפתח הראשי של (1) כמפתח זר בטבלת ה (‪.)N‬‬ ‫‪ N:M‬יצירת טבלת חיתוך שמכילה את שני המפתחות הראשיים (של (‪ ))N(,)M‬כמפתחות זרים‬ ‫שהשילוב ביניהם יהווה המפתח הראשי שלה.‬ ‫שלב 3/3 :‬ ‫ייצוג מינימום מידות ריבוי על ידי הגדרת אילוצים.‬ ‫-‬ ‫‪ M – O‬הגדרת אילוץ זיקה והבטחה שערך המפתח הזר לא יהיה ריק.‬ ‫…(‪CREATE TABLE X‬‬ ‫‪α ID NOT NULL‬‬ ‫.‬ ‫)‪FOREIGN KEY α FK (α ID‬‬ ‫...)‪REFERENCES Z(α ID‬‬ ‫*שאר מידות ריבוי מינימאליות באמצעות טריגרים*‬