You are on page 1of 25

‫‪236363‬‬

‫מערכות מסדי נתונים‬


‫‪ .6‬פירוקים לצורות נורמליות‬

‫)מבוסס על שקפים של אלדר פישר(‬

‫‪1‬‬
‫פירוקים‬
‫נניח שלפנינו יחס ]‪ R[U‬בעל סכמה }‪.U={A1,…,An‬‬
‫פירוק של הסכמה ‪ U‬הוא קבוצה של סכמות ‪ U1,…,Ut‬שעבורן‬
‫מתקיים ‪.U1  …  Ut=U‬‬

‫הפירוק יקרא משמר מידע אם מתקיים‬


‫‪.(U1R)⋈(U2R) ⋈... ⋈(UtR)=R‬‬
‫כאשר בידינו פירוק משמר מידע‪ ,‬אנו נוכל להחזיק טבלאות עבור‬
‫היחסים ‪ U1R,...,UtR‬במקום להחזיק טבלה אחת גדולה עבור ‪.R‬‬

‫אנו נרצה לאתר פירוקים שישמרו מידע לכל תוכן אפשרי של ‪R‬‬
‫המציית לתלויות הפונקציונליות הנובעות מניתוח דרישות המערכת‪.‬‬
‫לכן נרצה לנסח תנאים עבור שימור מידע הנובעים מקבוצת התלויות‬
‫הפונקציונליות‪.‬‬
‫‪2‬‬
‫דוגמה לפירוק‬
‫גודל‬ ‫צבע‬ ‫חיה‬ ‫נבחן את היחס הבא‪:‬‬
‫גדול‬ ‫שחור‬ ‫סוס‬
‫=‪T‬‬
‫גדול‬ ‫שחור‬ ‫חתול‬
‫קטן‬ ‫שחור‬ ‫חתול‬
‫הפירוק הבא אינו משמר מידע‪:‬‬
‫גודל‬ ‫צבע‬ ‫צבע‬ ‫חיה‬
‫= ‪T1‬‬ ‫גדול‬ ‫שחור‬ ‫= ‪T2‬‬ ‫שחור‬ ‫סוס‬
‫קטן‬ ‫שחור‬ ‫שחור‬ ‫חתול‬

‫‪T1 ⋈ T2‬כולל גם את השורה "סוס‪-‬שחור‪-‬קטן" שאינה נמצאת ב‪.T-‬‬


‫שימו לב שבהפעלת צירוף על היחסים המתקבלים בפירוק שאינו‬
‫משמר מידע יכולות להתווסף שורות ליחס המקורי‪ ,‬אולם שורות אינן‬
‫יכולות להגרע (מדוע?)‪.‬‬
‫‪3‬‬
‫מפתחות ‪ ‬תזכורת‬
‫עבור יחס ‪ R‬מעל הסכמה ‪ ,U‬ועבור קבוצת תלויות ‪ F‬המוגדרת מעל‬
‫‪ ,U‬קבוצת תכונות ‪ XU‬תיקרא מפתח‪-‬על (‪ )Super-Key‬אם ערכי‬
‫התכונות ‪ X‬קובעים את הרשומה ביחס‪ .‬במילים אחרות‪ X ,‬הוא‬
‫מפתח‪-‬על אם ‪.XF+=U‬‬

‫הקבוצה ‪ X‬תיקרא מפתח קביל (‪ ,)Candidate Key‬או בקיצור‬


‫מפתח‪ ,‬אם היא מפתח‪-‬על מינימלי‪ ,‬ז"א ש‪ X-‬היא מפתח‪-‬על‬
‫ואין אף תת‪-‬קבוצה‪-‬ממש של ‪ X‬שגם היא מפתח‪-‬על‪.‬‬

‫‪4‬‬
‫משפט‬
‫אם ]‪ R[U‬הוא יחס עם סכמה ‪ U‬המקיים את קבוצת‬
‫התלויות ‪ ,F‬אז הפירוק } ‪ { U1,U2‬של ‪ U‬הוא משמר מידע‬
‫(עבור כל תוכן אפשרי של ‪ )R‬אם ורק אם ‪ U1U2‬הוא‬
‫מפתח‪-‬על עבור ‪ U1R‬או עבור ‪( U2R‬או עבור שניהם)‪.‬‬

‫‪5‬‬
‫הוכחה ‪ ‬כיוון ראשון‬
‫נניח ש‪ U1U2 -‬הוא מפתח‪-‬על עבור ‪ ,U2R‬ז"א שמתקיים‬
‫‪( F⊢U1U2U2‬ההוכחה עבור המקרה ‪ F⊢U1U2U1‬זהה)‪.‬‬

‫תמיד מתקיים ‪( R U1R ⋈ U2R‬אף ללא הנחות על ‪,)U1U2‬‬


‫ולכן עלינו להוכיח רק שכל שורה ב‪ U1R ⋈ U2R-‬נמצאת גם ב‪.R-‬‬

‫נניח ש‪ t-‬היא שורה ב‪ .U1R ⋈ U2R-‬נובע מכך שקיימת שורה ‪t1R‬‬


‫שעבורה מתקיים )‪.U1(t1) = U1(t‬‬

‫עבור אלו מתקיים‪U1U2t1 =U2(U1t1)=U2(U1t)=U1U2t :‬‬


‫ולכן מהתלות ‪ U1U2U2‬נובע שמתקיים גם )‪, U2(t1) = U2(t‬‬
‫ולכן ‪ .t1=t‬מכאן נובע ‪ ,tR‬כנדרש‪.‬‬

‫‪6‬‬
‫הוכחה ‪ ‬כיוון שני‬
‫נניח בשלילה שלא מתקיים ‪ F⊢U1U2U1‬ולא ‪,F⊢U1U2U2‬‬
‫ונבנה תוכן אפשרי עבור ]‪ R[U‬המקיים את ‪ F‬ושעבורו הפירוק אינו‬
‫משמר מידע‪.‬‬

‫נסמן ב‪ V-‬את הקבוצה ‪ (U1U2)F+‬המכילה כל תכונה ‪ A‬שעבורה‬


‫‪ .F⊢U1U2A‬לפי ההנחות‪ ,‬גם ‪ U1\V‬וגם ‪ U2\V‬אינן ריקות‪ .‬מצד‬
‫שני ‪.U1U2V‬‬

‫מכיוון ש‪ V-‬הוא סגור‪ ,‬מתקיים ‪ ,VF+=V‬ובפרט אין ב‪ F-‬תלות‬


‫מהצורה ‪ XY‬שעבורה ‪ X‬מוכלת ב‪ V-‬בעוד ש‪ Y-‬כוללת תכונות‬
‫שאינן ב‪.V-‬‬

‫‪7‬‬
‫הוכחה ‪ ‬כיוון שני (המשך)‬
‫נבחר עתה עבור ‪ R‬קבוצה בת שתי שורות‪ t1 :‬תקבל את הערך "‪"0‬‬
‫על כל תכונות ‪ ,U1V‬ואת הערך "‪ "1‬על תכונות ‪,U2\V‬‬
‫ו‪ t2-‬תקבל את הערך "‪ "0‬על ‪ ,U2V‬ואת הערך "‪ "1‬על ‪.U1\V‬‬

‫קבוצה זו מקיימת את ‪ ,F‬כי עבור כל תלות ‪ XY‬שמופרת כאן‬


‫מתקיים בהכרח ש‪ X-‬מוכלת ב‪ V-‬בעוד ש‪ Y-‬כוללת תכונות שאינן‬
‫ב‪.V-‬‬

‫מצד שני‪ ,‬כאן ‪ U1R ⋈ U2R‬כוללת גם את השורה שכולה אפסים‪,‬‬


‫שאינה נכללת ב‪ .R-‬מ‪.‬ש‪.‬ל‪.‬‬

‫‪8‬‬
‫פירוקים למספר סכמות‬
‫בהינתן פירוק ‪ U1,...,Uk‬עבור יחס ]‪ ,R[U‬פירוק זה ישמר מידע אם‬
‫ורק אם ניתן להציגו כתוצאה של סידרת פירוקים משמרי מידע שכל‬
‫אחד מהם הוא פירוק לשתי קבוצות‪.‬‬

‫מיקוד‬ ‫כתובת‬ ‫מס' שם‬

‫מיקוד‬ ‫מס' כתובת‬

‫מיקוד‬ ‫כתובת‬ ‫מס' כתובת‬ ‫מס' שם‬

‫עם זאת‪ ,‬סריקה של כל סדרות הפירוקים האפשריות עבור‬


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

‫‪9‬‬
‫תלויות פונקציונליות ויתירות‬
‫תלות פונקציונלית ‪ XY‬עבור יחס ]‪ R[U‬יכולה להעיד על יתירות‪,‬‬
‫שהרי אותם ערכים של ‪" Y‬משוכפלים" עבור כל קבוצת שורות ביחס‬
‫המסכימות ביניהן על ‪.X‬‬

‫דוגמה‪ :‬ניזכר שוב בייצוג (הקלוקל)‪ ,‬של סטודנטים הנרשמים‬


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

‫נגדיר אם כן קריטריון "טיב" עבור סכמה ‪( U‬במובן של חוסר צורך‬


‫לפרק לסכמות קטנות יותר) המתבסס על אי קיומן של תלויות‬
‫פונקציונליות מסוימות‪.‬‬
‫‪10‬‬
‫הצורה הנורמלית של ‪Boyce & Codd‬‬
‫הגדרה‪ :‬יחס ]‪ R[U‬נמצא ב‪BCNF -‬‬
‫(‪ )Boyce Codd Normal Form‬עבור קבוצת התלויות ‪F‬‬
‫(הנובעת מניתוח דרישות המערכת)‪ ,‬אם עבור כל תלות ‪XY‬‬
‫הנובעת מ‪ F -‬מתקיים לפחות אחד מהתנאים הבאים‪:‬‬
‫• ‪( YX‬ז"א שהתלות היא טריוויאלית)‪.‬‬
‫• ‪ X‬הוא מפתח‪-‬על של ‪( R‬ואז אין יתירות כי אין ב‪ R-‬שתי‬
‫שורות שונות המסכימות ביניהן על ‪.)X‬‬

‫באופן אידיאלי‪ ,‬נרצה לתכנן עבור מסד הנתונים שלנו סכמה‬


‫שעבורה כל היחסים נמצאים ב‪.BCNF-‬‬

‫עבור ‪ U‬עצמה מספיק לבדוק את ‪ ,F‬אולם על מנת לבדוק עבור‬


‫‪ V⊆U‬כל שהיא אם היא ב‪ BCNF-‬צריך לבדוק את ‪.F+‬‬
‫‪11‬‬
‫‪ BCNF‬ופירוקים משמרי מידע‬
‫משפט‪ :‬אם ]‪ R[U‬אינו ב‪ BCNF -‬ביחס לקבוצת תלויות ‪,F‬‬
‫אז קיים עבור ‪ R‬פירוק משמר מידע‪.‬‬

‫הוכחה‪ :‬נניח שמתקיים ‪ F⊢XY‬כאשר ‪ Y‬אינה תת‪-‬קבוצה של ‪ X‬וכן‬


‫‪ X‬אינה מפתח‪-‬על של ‪ .R‬נגדיר עתה את הפירוק‪:‬‬
‫)‪.U1=XF+ ,U2=U \ (XF+ \ X‬‬
‫קל לוודא שזהו פירוק תקין (לא ‪ U1‬ולא ‪ U2‬שווים ל‪ ,U-‬אולם איחודם‬
‫שווה ל‪ .)U-‬בנוסף לכך‪ ,U1U2=X ,‬ו‪ X-‬היא מפתח‪-‬על עבור ‪U1R‬‬
‫(מעצם הגדרת ‪ ,)U1‬ולכן ע"פ המשפט על פירוקים לשני יחסים זהו‬
‫פירוק משמר מידע‪.‬‬

‫מסקנה‪ :‬לכל יחס קיים פירוק משמר מידע ליחסים ב‪BCNF -‬‬
‫(לאחד‪ ,‬לשניים‪ ,‬או ליותר)‪.‬‬
‫‪12‬‬
‫שימור תלויות‬
‫קריטריון נוסף לטיב של פירוק הוא היכולת לבדוק את קיום התלויות‬
‫הפונקציונליות של המערכת מבלי להיזקק לשחזור מלא או חלקי של‬
‫היחס המקורי (ע"י צירופים)‪ .‬אנו נעדיף פירוק שבו ניתן לבדוק את‬
‫קיום התלויות אך ורק ע"י בדיקה ישירה של הסכמות הנובעות‬
‫מהפירוק‪.‬‬

‫פירוק ‪ U1,...,Ut‬של היחס ]‪ R[U‬יקרא משמר תלויות אם מתקיים‬


‫‪ ,(F1  …  Ft)+=F+‬כאשר ‪ Fi‬היא קבוצת התלויות של ‪F+‬‬
‫הכוללת אך ורק תכונות מ‪.Ui-‬‬

‫הבדיקה של שימור תלויות ע"י החישוב של הסגור של קבוצת‬


‫התלויות אינה יעילה‪ .‬אלגוריתם לבדיקת שימור תלויות‪ ,‬המסתמך‬
‫על חישובי סגור של קבוצות (בדומה למה שנעשה בהשוואת סגורים‬
‫של שתי קבוצות תלויות)‪ ,‬יינתן בתרגיל‪.‬‬
‫‪13‬‬
‫‪ BCNF‬ופירוקים משמרי תלויות‬
‫יתכן מצב שבו ]‪ R[U‬אינה ב‪ BCNF-‬ביחס ל‪ ,F-‬אולם בכל זאת אין‬
‫עבור ‪ R‬פירוק משמר תלויות‪.‬‬

‫דוגמא‪ :‬נסתכל ביחס ]‪ Addr[Street,City,Zip‬ובתלויות‬


‫} ‪.F = { ZipCity , {Street,City}Zip‬‬

‫יחס זה אינו ב‪ BCNF-‬מכיוון ש‪ Zip -‬אינו מפתח‪-‬על עבורו‪ ,‬למרות‬


‫התלות ‪.ZipCity‬‬

‫מצד שני‪ ,‬כל פירוק חוקי של יחס זה לא ישמר את ‪ :F‬נשים לב‬


‫ש‪ ZipCity-‬היא התלות הלא‪-‬טריביאלית היחידה ב‪ F+-‬המערבת‬
‫שתי תכונות בלבד‪ .‬מכאן נובע שבכל פירוק אפשרי של ‪,Addr‬‬
‫התלות היחידה שיכולה להיות מוכלת ב‪ Ui -‬כל שהוא‬
‫היא ‪ ,ZipCity‬ומזו לא ניתן להסיק את ‪.{Street,City}Zip‬‬
‫‪14‬‬
‫הצורה הנורמלית השלישית ‪3NF ‬‬
‫אנו נרצה עתה לנסח קריטריון עבור סכמה רלציונית שיהיה מחמיר‬
‫פחות מ‪ .BCNF-‬הרעיון הוא "לשלם" במידה מסוימת של יתירות על‬
‫מנת שנוכל להסתפק בפירוקים המשמרים גם את התלויות וגם את‬
‫המידע‪.‬‬

‫אנו נגיד שיחס ‪ R‬נמצא ב‪ )3rd Normal Form( 3NF-‬עבור קבוצת‬


‫התלויות ‪ ,F‬אם לכל תלות ‪ XA‬ב‪( F+-‬כאשר ‪ A‬היא תכונה‬
‫בודדת) מתקיים לפחות אחד מהתנאים הבאים‪:‬‬
‫• ‪( AX‬ז"א שהתלות טריוויאלית)‪.‬‬
‫• ‪ X‬הוא מפתח‪-‬על עבור ‪( R‬בדומה להגדרה של ‪.)BCNF‬‬
‫• התכונה ‪ A‬שייכת לאחד (או יותר) מהמפתחות הקבילים של ‪.R‬‬

‫שימו לב שהרלציה ‪ Addr‬מהדוגמה הקודמת נמצאת ב‪3NF-‬‬


‫למרות שהיא אינה נמצאת ב‪.BCNF-‬‬
‫‪15‬‬
‫‪ 3NF‬ופירוקים משמרי תלויות ומידע‬
‫משפט‪ :‬לכל יחס ]‪ R[U‬המקיים קבוצת תלויות ‪ ,F‬יש פירוק משמר‬
‫תלויות ומשמר מידע‪ ,‬ליחסים שכולם ב‪.3NF-‬‬

‫האלגוריתם הבא תמיד מוצא פירוק כזה‪:‬‬


‫‪Let G be a minimal covering of F‬‬
‫‪For every XA in G do‬‬
‫‪Add the set UX,A = X{A} to the list‬‬
‫‪If no set UX,A contains a key for R‬‬
‫‪Add a candidate key Ukey to the list‬‬
‫האלגוריתם שיוצג בתרגול הוא שיפור של אלגוריתם זה‪.‬‬
‫‪16‬‬
‫הוכחה – הפירוק חוקי‬
‫נראה שאיחוד הקבוצות המתקבלות הוא אכן ‪ U‬כולה‪ .‬לשם כך‬
‫נראה שכל ‪ B∈U‬מופיע בלפחות אחת הקבוצות‪.‬‬

‫אם קיימת תלות מהצורה ‪ YB‬ב‪ ,G-‬אז נקבל ‪ B∈UY,B‬ובזאת‬


‫נסיים‪.‬‬

‫אחרת‪ ,‬לא קשה לראות שלכל ‪ Y‬עבורו ‪ B∉Y‬לא יתכן ש‪ B∈Y+-‬ולכן‬


‫כל מפתח על של הרלציה יכיל את ‪ .B‬האלגוריתם דואג לכך‬
‫שלפחות אחת הקבוצות תהיה מפתח על‪ ,‬ולכן תכיל את ‪.B‬‬

‫הערה‪ :‬יכול להיות שבפירוק תהיה קבוצה שמוכלת בקבוצה אחרת‪.‬‬


‫במקרה כזה פשוט נסיר את הקבוצה המוכלת מהפירוק‪.‬‬

‫‪17‬‬
‫הוכחה – הפירוק הוא ב‪3NF-‬‬
‫בקבוצת התכונות ‪ Ukey‬אין תלויות לא טריביאליות כלל (ולכן היא‬
‫אפילו ב‪ .)BCNF-‬אחרת‪ ,‬אם ‪ YZ‬היא תלות לא טריביאלית‬
‫הנובעת מ‪ F-‬והמוכלת ב‪ ,Ukey-‬אז הקבוצה )‪ Ukey \ (Z \ Y‬היתה‬
‫מפתח‪-‬על עבור ‪ ,R‬בסתירה להנחה ש‪ Ukey-‬היא מפתח קביל‪.‬‬

‫באופן דומה‪ ,‬לכל תלות ‪ XA‬ב‪ ,G-‬מעל הקבוצה ‪ UX,A‬אין תלות‬


‫לא טריביאלית ‪ YZ‬שעבורה ‪ YX‬פרט ל‪ XA-‬עצמה‪ ,‬כי אז‬
‫היינו מקבלים סתירה להנחה ש‪ G-‬היא כיסוי מינימלי‪.‬‬

‫קיימת אפשרות נוספת עבור ‪ ,UX,A‬שבה יש תלות לא טריביאלית‬


‫‪ YB‬שעבורה ‪ .AY‬אולם במקרה זה ‪ B‬היא תכונה במפתח‬
‫קביל של ‪ ,UX,A‬שכן ‪ X‬הוא מפתח כזה מהמינימליות של ‪( G‬לא‬
‫יתכן שיתקיים ‪ A=B‬כי אז התלות תהיה טריביאלית)‪.‬‬
‫‪18‬‬
‫הוכחה – שימור תלויות ומידע‬
‫שימור תלויות‪ :‬מכיוון שהנחנו ש‪ G-‬מכסה את ‪ ,F‬שימור התלויות‬
‫נובע ישירות מכך שעבור כל תלות ב‪ G-‬הגדרנו במיוחד קבוצת‬
‫תכונות המכילה אותה‪.‬‬

‫שימור מידע‪ :‬האלגוריתם דאג לכך שלפחות אחת מקבוצות הפירוק‬


‫תהיה מפתח‪-‬על עבור ‪ .R‬עתה יש להשתמש בטענה הכללית‬
‫הבאה‪.‬‬

‫טענה כללית‪ :‬פירוק משמר תלויות שעבורו אחת מהקבוצות היא‬


‫מפתח‪-‬על של הסכמה כולה‪ ,‬הוא גם משמר מידע‪.‬‬

‫הוכחת הטענה הכללית מושארת כתרגיל למחשבה‪.‬‬


‫‪19‬‬
‫תלויות רב‪-‬ערכיות ‪ ‬הגדרה‬
‫עבור יחס ]‪ R[U‬ותתי קבוצות ‪ X,Y‬של קבוצת התכונות ‪ U‬אנו נגיד‬
‫ש‪ R-‬מקיים את התלות הרב‪-‬ערכית ‪ X↠Y‬אם עבור כל תוכן אפשרי‬
‫של ‪ R‬מתקיים התנאי הבא‪:‬‬

‫אם ‪ t1‬רשומה ב‪ ,R-‬ו‪ t2 -‬רשומה ב‪ R-‬שעבורה מתקיים‬


‫)‪ ,X(t2)=X(t1‬אז קיימת ב‪ R-‬רשומה ‪ t3‬שעבורה‬
‫)‪ XY(t3)=XY(t1‬וכן )‪.U\Y(t3)=U\Y(t2‬‬

‫הרעיון‪ :‬עבור רשומה ‪ t‬ב‪ ,R-‬נסתכל על קבוצת הרשומות ב‪ R-‬אשר‬


‫להן ערכים זהים ל‪ t -‬על כל התכונות פרט ל‪ .Y \ X-‬ההיטל של‬
‫קבוצה זו על ‪ Y‬תלוי רק בערכים של ‪ t‬על ‪ ,X‬ולא בערכים של ‪ t‬על‬
‫)‪.U \ (XY‬‬

‫‪20‬‬
‫תלויות רב‪-‬ערכיות – דוגמה‬
‫בדוגמת היחס הבא יש תלות רב‪-‬ערכית מ‪"-‬חיה" ל‪"-‬התנהגות"‪,‬‬
‫אולם אין תלות כזו מ‪"-‬צבע" ל‪"-‬התנהגות"‪.‬‬

‫התנהגות‬ ‫צבע‬ ‫חיה‬


‫נוהם‬ ‫שחור‬ ‫חתול‬
‫מגרגר‬ ‫שחור‬ ‫חתול‬
‫נוהם‬ ‫לבן‬ ‫חתול‬
‫מגרגר‬ ‫לבן‬ ‫חתול‬
‫צוהל‬ ‫לבן‬ ‫סוס‬
‫דוהר‬ ‫לבן‬ ‫סוס‬

‫‪21‬‬
‫נביעה של תלויות‬
‫בהינתן קבוצה של תלויות (פונקציונליות ו‪/‬או רב ערכיות) ‪ F‬עבור‬
‫יחס ]‪ ,R[U‬נגיד שתלות ‪ X↠Y‬נובעת מ‪ F-‬אם כל תוכן אפשרי של‬
‫היחס ‪ R‬המקיים את ‪ ,F‬יקיים גם את ‪ .X↠Y‬בדומה נגדיר גם נביעה‬
‫של תלות ‪ XY‬מ‪( F-‬יתכן ש‪ XY-‬תנבע מ‪ F-‬מבלי שהיא תנבע‬
‫רק מהתלויות הפונקציונליות ב‪.)F-‬‬

‫בדומה לאקסיומות ארמסטרונג‪ ,‬קיימת מערכת אקסיומות שעבורה‬


‫תלות נובעת (במסגרת המורחבת הזו) מ‪ F-‬אם ורק אם ניתן להסיק‬
‫אותה מ‪ F-‬במספר סופי של שימושים באקסיומות‪ .‬מערכת זו לא‬
‫תוצג במסגרת הקורס‪.‬‬

‫‪22‬‬
‫הצורה הנורמלית הרביעית ‪4NF ‬‬
‫עבור יחס ]‪ R[U‬וקבוצת תלויות (פונקציונליות ורב ערכיות) ‪ ,F‬אנו‬
‫נאמר ש‪ R -‬היא בצורה הנורמלית הרביעית (‪ )4NF‬אם עבור כל‬
‫תלות ‪ X↠Y‬או ‪ XY‬הנובעת מ‪ ,F-‬מתקיים או ‪( YX‬ז"א שהתלות‬
‫טריוויאלית) או ש‪ X -‬הוא מפתח‪-‬על עבור ‪.R‬‬

‫תנאי זה הוא חזק אף יותר מ‪ ,BCNF-‬ולכן יתכנו יחסים שאינם‬


‫ב‪ 4NF-‬ואין עבורם פירוק משמר מידע ותלויות‪.‬‬

‫מצד שני‪ ,‬לכל יחס ‪ R‬קיים פירוק משמר מידע (ללא שימור תלויות)‬
‫ליחסים בצורת ‪ .4NF‬למעשה‪ ,‬הגדרת התלות ‪ X↠Y‬שקולה להגדרה‬
‫"תוכן היחס תמיד מקיים )‪."R=(X∪YR)⋈(U∖(Y∖X)R‬‬

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

‫תלויות מובנות (‪ :)embedded‬תלויות רב ערכיות (וגם סוגי תלויות‬


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

‫דוגמה‪ :‬ברישום של חשבונות בנק‪ ,‬יתכן שאותו לקוח יפתח‬


‫חשבונות במספר סניפים וישתמש בהם בכתובות שונות‪ .‬ביחס עם‬
‫התכונות מס' זהות ‪ ‬שם לקוח ‪ ‬כתובת ‪ ‬סניף ‪ ‬מס' חשבון לא‬
‫תהיה תלות בין מס' הזהות לכתובת‪ ,‬אולם בהטלה שלה על קבוצת‬
‫התכונות מס' זהות ‪ ‬שם לקוח ‪ ‬כתובת כן תהיה תלות רב‪-‬ערכית‬
‫כזו‪.‬‬
‫‪24‬‬
‫סוגי תלויות אחרים ‪ ‬המשך‬
‫תלויות הכלה‪ :‬סוג תלויות המערב יותר מיחס אחד‪ .‬אלו דרישות‬
‫מהצורה ")‪ "W(R)W(S‬כאשר ‪ W‬היא קבוצת תכונות הקיימות‬
‫גם עבור ‪ R‬וגם עבור ‪ .S‬בדיאגרמות ‪ ER‬תלויות כאלו מתקבלות‬
‫באופן טבעי מהקשר בין טיפוס קשרים לבין טיפוסי הישויות‬
‫המחוברים לטיפוס הקשרים‪.‬‬

‫תלויות אלו ותלויות מוכללות אחרות הן מחוץ למסגרת הקורס‪.‬‬

‫‪25‬‬

You might also like