המצגת נטענת. אנא המתן

המצגת נטענת. אנא המתן

6. פירוקים לצורות נורמליות שקפים: אלדר פישר

מצגות קשורות


מצגת בנושא: "6. פירוקים לצורות נורמליות שקפים: אלדר פישר"— תמליל מצגת:

1 6. פירוקים לצורות נורמליות שקפים: אלדר פישר
מערכות מסדי נתונים 6. פירוקים לצורות נורמליות שקפים: אלדר פישר

2 פירוקים נניח שלפנינו רלציה R[U] בעלת קבוצת התכונות U={A1,…,An}. אנו נרצה לבחון פירוק אפשרי של הרלציה, הניתן ע"י משפחה של קבוצות U1,…,Ut שעבורן מתקיים U1  …  Ut=U. הפירוק יקרא משמר מידע אם מתקיים (U1R)⋈(U2R) ⋈... ⋈(UtR)=R. כאשר בידינו פירוק משמר מידע, אנו נוכל להחזיק טבלאות עבור הרלציות U1R,...,UtR במקום להחזיק טבלא אחת גדולה עבור R. אנו נרצה לאתר פירוקים שישמרו מידע לכל תוכן אפשרי של R המציית לתלויות הפונקציונליות הנובעות מניתוח דרישות המערכת. לכן נרצה לנסח תנאים עבור שימור מידע הנובעים מקבוצת התלויות הפונקציונליות.

3 דוגמה לפירוק נבחן את הרלציה הבאה: הפירוק הבא אינו משמר מידע:
T1 ⋈ T2כולל גם את השורה "סוס-שחור-קטן" שאינה נמצאת ב-T. שימו לב שבמסגרת הדיון שלנו, בפירוק שאינו משמר מידע יכולות להתווסף שורות לרלציה המיוצגת, אולם שורות אינן יכולות להיגרע (נסו להוכיח זאת כתרגיל). T = גודל צבע חיה גדול שחור סוס חתול קטן T1 = גודל צבע גדול שחור קטן T2 = צבע חיה שחור סוס חתול

4 מפתחות  הגדרה עבור רלציה R מעל התכונות U, ועבור קבוצת תלויות F שהרלציה חייבת לקיים, קבוצת תכונות XU תיקרא על-מפתח (Super-Key) אם ערכי התכונות X קובעים את האובייקט ברלציה. במילים אחרות, X הוא על-מפתח אם XF+=U. הקבוצה X תיקרא מפתח קביל (Candidate Key), או בקיצור מפתח, אם היא על-מפתח מינימלי, ז"א ש-X היא על-מפתח ואין אף תת-קבוצה-ממש של X שגם היא על-מפתח.

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

6 הוכחה  כיוון ראשון נניח ש- 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, כנדרש.

7 הוכחה  כיוון שני נניח בשלילה שלא מתקיים 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.

8 הוכחה  כיוון שני (המשך)
נבחר עתה עבור 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. מ.ש.ל.

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

10 תלויות פונקציונליות ויתירות
תלות פונקציונלית XY עבור רלציה R[U] יכולה להעיד על יתירות, שהרי אותם ערכים של Y "משוכפלים" עבור כל קבוצת שורות ברלציה המסכימות ביניהן על X. דוגמא: ניזכר שוב בייצוג (הקלוקל) של סטודנטים הנרשמים לקורסים באמצעות רלציה אחת גדולה. ברלציה זו קיימת תלות פונקציונלית ממס' הסטודנט לכתובת הסטודנט, אולם לא קיימת תלות כזו ממס' הסטודנט אל מס' הקורס. ואכן, ראינו כבר בהרצאות קודמות שישנה יתירות באשר לרישום כתובת הסטודנט עבור כל קורס שהסטודנט לקח. נגדיר אם כן קריטריון "טיב" עבור רלציה R[U] (במובן של חוסר צורך לפרקה לרלציות קטנות יותר) המתבסס על אי קיומן של תלויות פונקציונליות מסוימות.

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

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

13 שימור תלויות קריטריון נוסף לטיב של פירוק הוא היכולת לבדוק את קיום התלויות הפונקציונליות של המערכת מבלי להיזקק לשחזור מלא או חלקי של הרלציה המקורית (ע"י צירופים). אנו נעדיף פירוק שבו ניתן לבדוק את קיום התלויות אך ורק ע"י בדיקה ישירה של הרלציות הנובעות מהפירוק. פירוק U1,...,Ut של הרלציה R[U] יקרא משמר תלויות אם מתקיים (F1  …  Ft)+=F+, כאשר Fi היא קבוצת התלויות של F+ הכוללת אך ורק תכונות מ-Ui. הבדיקה של שימור תלויות ע"י החישוב של הסגור של קבוצת התלויות אינה יעילה. אלגוריתם לבדיקת שימור תלויות, המסתמך על חישובי סגור של קבוצות (בדומה למה שנעשה בהשוואת סגורים של שתי קבוצות תלויות), יינתן בתרגיל.

14 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 .

15 הצורה הנורמלית השלישית  3NF
אנו נרצה עתה לנסח קריטריון עבור סכימה רלציונית שיהיה מחמיר פחות מ-BCNF. הרעיון הוא "לשלם" במידה מסוימת של יתירות על מנת שנוכל להסתפק בפירוקים המשמרים גם את התלויות וגם את המידע. אנו נגיד שרלציה R נמצאת ב-3NF (3rd Normal Form) עבור קבוצת התלויות F, אם לכל תלות XA ב-F+ (כאשר A היא תכונה בודדת) מתקיים לפחות אחד מהתנאים הבאים: AX (ז"א שהתלות טריוויאלית). X הוא על-מפתח עבור R (בדומה להגדרה של BCNF). התכונה A שייכת לאחד (או יותר) מהמפתחות הקבילים של R. שימו לב שהרלציה Addr מהדוגמה הקודמת נמצאת ב-3NF למרות שהיא אינה נמצאת ב-BCNF.

16 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

17 הוכחה – הפירוק הוא ב-3NF בקבוצת התכונות Ukey אין תלויות לא טריביאליות כלל (ולכן היא אפילו ב-BCNF). אחרת, אם YZ היא תלות לא טריביאלית הנובעת מ-F והמוכלת ב-Ukey, אז הקבוצה Ukey \ (Z \ Y) היתה על-מפתח עבור R, בסתירה להנחה ש-Ukey היא מפתח קביל. באופן דומה לכל תלות XA ב-G, מעל הקבוצה UX,A אין תלות לא טריביאלית YZ שעבורה YX, כי אז היינו מקבלים סתירה להנחה ש-G היא כיסוי מינימלי. קיימת אפשרות נוספת עבור UX,A, שבה יש תלות לא טריביאלית YB שעבורה AY. אולם במקרה זה B היא תכונה במפתח קביל של UX,A, שכן X הוא מפתח כזה מהמינימליות של G (ולא יתכן שיתקיים A=B כי אז התלות תהיה טריביאלית).

18 הוכחה – שימור תלויות ומידע
שימור תלויות: מכיוון שהנחנו ש-G מכסה את F, שימור התלויות נובע ישירות מכך שעבור כל תלות ב-G הגדרנו במיוחד קבוצת תכונות המכילה אותה. שימור מידע: האלגוריתם דאג לכך שלפחות אחת מקבוצות הפירוק תהיה על-מפתח עבור R. עתה יש להשתמש בטענה הכללית הבאה. טענה כללית: פירוק משמר תלויות שעבורו אחת מהקבוצות היא על-מפתח של הרלציה כולה, הוא גם משמר מידע. הוכחת הטענה הכללית מושארת כתרגיל למחשבה.

19 תלויות רב-ערכיות  הגדרה
עבור רלציה R[U] ותתי קבוצות Y,X של קבוצת התכונות 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, מתקיים או XY (ז"א שהתלות טריוויאלית) או ש- X הוא על-מפתח עבור R. תנאי זה הוא חזק אף יותר מ-BCNF, ולכן יתכנו רלציות שאינן ב-4NF ואין עבורן פירוק משמר תלויות. מצד שני, לכל רלציה R קיים פירוק משמר מידע (ללא שימור תלויות) אף לרלציות ב-4NF.

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

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


הורד את "ppt "6. פירוקים לצורות נורמליות שקפים: אלדר פישר

מצגות קשורות


מודעות Google