1 / 30

תיכון בסיס הנתונים

תיכון בסיס הנתונים. איריס צור ברגורי bargury@bezeqint.net. תיכון בסיס נתונים- למה?. סטודנט ( ת.ז. , שם, כתובת, טלפון, מס-קורס , שם-קורס, רכז, נ"ז) יתרונות – חסרונות -. תיכון בסיס הנתונים – מה נלמד?. 1NF טעויות בתיכון בסיסי נתונים תלויות פונקציונליות פירוק

hugh
Download Presentation

תיכון בסיס הנתונים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. תיכון בסיס הנתונים איריס צור ברגורי bargury@bezeqint.net

  2. תיכון בסיס נתונים- למה? סטודנט (ת.ז., שם, כתובת, טלפון, מס-קורס, שם-קורס, רכז, נ"ז) יתרונות – חסרונות -

  3. תיכון בסיס הנתונים – מה נלמד? • 1NF • טעויות בתיכון בסיסי נתונים • תלויות פונקציונליות • פירוק • BCNF • 3NF

  4. -1NF צורה נורמלית ראשונה • תחום הוא אטומיאם מרכיביו לא ניתנים לא ניתנים לפירוק. (כתובת-רחוב בית מספר) • תבנית יחס R היא בצורה נורמלית ראשונה אם התחומים של כל התכונות ב-R אטומיים. • ערכים שאינם אטומיים מסבכים את אחסון הנתונים ומעודדים מידע כפול. • אנו מניחים שכל היחסים נמצאים בצורה נורמלית ראשונה – 1NF.(בנינו ER)

  5. בעיות בתיכון בסיס נתונים • תיכון בסיס נתונים דורש שנמצא אוסף "טוב" של תבניות יחסים. תיכון גרוע עשוי לגרור: • מידע כפול • חוסר יכול לייצג מידע מסוים • מטרות התיכון: • להימנע ממידע כפול • לוודא שהיחסים בין התכונות מיוצגים • לוודא שלא תהיה הפרת אילוצים במצב של עדכון בסיס הנתונים.

  6. המטרה • לקבוע האם יחס R בצורה "טובה". • במקרה שיחס R אינו בצורה "טובה", פרק אותו ליחסים {R1, R2, ..., Rn} כך ש: • כל יחס בצורה "טובה" • הפרוק משמר מידע – לא יתווסף מידע בחיבור מחדש • התיאוריה מבוססת על תלויות פונקציונליות.

  7. תלויות פונקציונליות • אילוצים על אוסף יחסים (מפתחות / מידות ריבוי) • דורשים שהערכים באוסף תכונות יקבע באופן חד ערכי את הערכים של אוסף תכונות אחר. • בעזרת הכללת התלויות הפונקציונליות מגדירים מפתח • תהא R סכמת יחס.   R וגם   R התלות הפונקציונלית  חלה על R אם ורק אם לכל יחס r(R), אם כל שתי שורות t1 ו- t2שמסכימות על תכונות , מסכימות גם על תכונות . ז"א t1[] = t2 []  t1[ ] = t2 [ ] • כל תכונות היחס תלויות פונקציונאלית במפתח היחס

  8. תלויות פונקציונליות –דוגמאמהמדריך Emp(id, dept, manager) מהתלות השלישית נסיק כי מהעובדה כי XYZ לא נובע כי XZ או YZ.

  9. תלויות פונקציונליות - המשך • תלות פונקציונלית היא טריוויאלית אם היא מתקיימת תמיד לכל המופעים של יחס. באופן כללי:   היא טריוויאלית אם    • K הוא מפתח על של תבנית יחס R אם ורק אם KR. • K הוא מפתח קביל עבור R אם ורק אם • KRוגם • אין אף תת קבוצה   K עבורה  R (מפתח קביל – אין תכונות עודפות במפתח) • הערה: מופע מסוים של תבנית יחסים יכול לקיים תלות פונקציונלית למרות שהתלות לא חלה על כל המופעים האפשריים.

  10. תלויות פונקציונליות - דוגמא • מצאו תלויות לא טריוויאליות • מצאו מפתחות

  11. תלויות פונקציונליות - דוגמא R=(A,B,C,D) F={AB , B C} • האם ניתן להסיק תלויות נוספות? • מהו המפתח של התבנית R? מסקנה – כל תכונה שאינה תלויה באף תכונה אחרת (אינה מופיעה בצד ימין) חייבת להיות מוכלת בכל מפתח קביל של היחס

  12. סגור של אוסף תלויות פונקציונליות • בהינתן אוסף תלויות פונקציונליות, יש תלויות פונקציונליות נוספות שנובעות מ-F. • למשל, אם A  B ו- B  C אז ניתן להסיק כי A  C. • אוסף כל התלויות הפונקציונליות שנובעות לוגית מ-F היא הסגור של F. מסומן ב-F+. • ניתן לחשב את +F על ידי הפעלת האקסיומות הבאות: • רפלקסיביות: אם  אזי . • טרנזיטיביות: אם  וגם  אז . • איחוד: אם  וגם  אזי  • פירוק: אם  אזי  וגם . • חישוב הסגור מתוך קבוצת תלויות פונקציונליות עשוי להיות תהליך ממושך ומיגע.

  13. דוגמא R = (A, B, C, G, H, I)F = { A BA CGC HCG IB H} • חלק מ-+F הוא: • AH- טרנזיטיביות • CG HI - איחוד • AG I - מתוך A C יחד עם CG I.

  14. סגור של קבוצת תכונות • בהינתן אוסף תכונות X, נגדיר את הסגור של X תחת F (מסומן +X) כאוסף התכונות שתלויות פונקציונלית ב-X תחת F: X Y ב-+FYX+ • האלגוריתם לחישוב +X, הסגור של X תחת F הוא: result :=X;while (changes to result) do for each in F do if  result then result := result 

  15. דוגמא (המשך הדוגמא הקודמת) R = (A, B, C, G, H, I) F = {A B, A C, CG H, CG I, B H} • (AG)+ • 1.result = AG • 2.result = ABCG (A C and A  B) • 3.result = ABCGH (CG H and CG  AGBC) • 4.result = ABCGHI (CG I and CG  AGBCH) • האם AG מפתח קביל? • האם AG מפתח על? • האם תת קבוצה כלשהי של AG מפתח?

  16. תכונה שלא תלויה פונקציונלית באף תכונה אחרת, חייבת להיכלל בכל מפתח קביל אם תכונה או קב' תכונות הן מפתח קביל – לא צריך לבדוק קבוצות המכילות אותן אם הסגור של קבוצת תכונות מכיל מפתח אזי גם קבוצת התכונות היא מפתח מציאת מפתח קביל

  17. חיפוש מפתחות על כדי לבדוק אם A מפתח על, מחשבים את +A ובודקים אם הוא מכיל את כל התכונות של R. חיפוש תלויות פונקציונליות כדי לבדוק אם התלות הפונקציונלית XY מתקיימת (האם היא ב-+F) נבדוק אם Y X+ נחשב את +X ונבדוק האם הוא מכיל את Y. חישוב הסגור של F כל תת קבוצה   R, ניתן לחשב את הסגור +, ולכל S  + יוצרים את התלות הפונקציונאלית   S שימושים לסגור של קבוצת תכונות

  18. כיסוי קנוני • באוסף תלויות פונקציונליות יתכנו תלויות מיותרות שניתן להסיק מאחרות. • ייתכן גם שחלקים של תלויות פונקציונליות מיותרים. • באופן אינטואיטיבי, כיסוי קנוני של F הוא אוסף "מינימלי" של תלויות פונקציונליות השקול ל-F, ואין בו תלויות עודפות, או חלקי תלויות עודפות. תכונות עודפות • בהינתן אוסף תלויות פונקציונליות F ותלות   ב-F • התכונה Aעודפת ב-  אם A  וניתן להסיק מ-F את התלות (–A)  • התכונה Bעודפת ב-  אם B וניתן להסיק מ- (F– {})  {(–B)} את התלות  B.

  19. בדיקה האם תכונה עודפת בהינתן אוסף תלויות פונקציונליות F ותלות פונקציונאלית   ב-F • כדי לבדוק אם תכונה A  עודפת ב-  • חשבו ({} – A)+ תוך שימוש באוסף התלויות הפונקציונליות F • בדקו ש-({} – A)+ מכיל את , אם כן – A עודפת. • כדי לבדוק שתכונה B  עודפת ב-  • חשבו את + תוך שימוש רק בתלויות המופיעות ב- F’=(F– {})  {(–A)} • בדקו ש- + מכיל את B, אם כן, B עודפת

  20. כיסוי קנוני • כיסוי קנוני של F הוא אוסף תלויות פונקציונליות Fc המקיים: • F גורר לוגית את כל התלויות הפונקציונליות ב- Fc • Fc גורר לוגית את כל התלויות הפונקציונליות ב-F • אין אף תלות ב- Fc המכילה תכונות עודפות • צד שמאל של כל אחת מהתלויות הפונקציונליות ב- Fc הוא ייחודי.

  21. כיסוי קנוני אלגוריתם לחישוב כיסוי קנוני ל-F: השתמש בכלל האיחוד כדי להחליף את התלויות 11 ו- 12 בתלות 112 חפש תלות פונקציונלית  המכילה תכונה עודפת ב-  או ב-  אם נמצאה תכונה עודפת, מחק אותה מ-  חזור להתחלה עד שלא ניתן לשנות יותר את F - לאחר מחיקת כמה תכונות עודפות ייתכן וניתן יהיה שוב לאחד תלויות.

  22. כיסוי קנוני - דוגמא R= (A ,B, C) F= {ABC , BC , AB , ABC} מצא כיסוי קנוני

  23. פירוק מהו? או"פ ( ת.ז.-סטודנט , שם-סטודנט , שם-קורס , מס'-קורס ) 1 אפרת א 111 1 אפרת ב 222 2 יעל א 333 פרוקים אפשריים: סטודנטים(ת.ז. , שם , שם-קורס ) סטודנטים(ת.ז. , שם , מס'-קורס ) קורסים (מס'-קורס, שם-קורס ) קורסים (מס'-קורס, שם-קורס ) משמר מידע  סטודנטים קורסים = או"פ המוטיבציה לפירוק – בסיס נתונים בלי מידע כפול

  24. פירוק • כל התכונות של תבנית יחס (R) חייבות להופיע בפירוק(R1, R2): R = R1  R2 • על הפירוק להיות משמר מידע. ז"א לכל יחס r(R) מתקיים: • פירוק של R ל- R1 ו- R2 הוא פירוק משמר מידע אם מתקיים לפחות אחד מהתנאים הבאים: • R1 R2R1 • R1 R2R2 • כשמפרקים יחס R עם אוסף תלויות פונקציונליות F ליחסים R1, R2,.., Rn מעונינים ב: • פירוק משמר מידע – אחרת הפרוק יגרור איבוד מידע • חוסר כפילויות – כל יחס מהיחסים המפורקים יהיה באחת מהצורות הנורמליות הבאות: BCNF או 3NF. • שימור תלויות – יהי Fiאוסף התלויות הפונקציונליות מתוך +F המכילות רק תכונות מ- Ri.. על הפירוק להיות משמר תלויות, דהיינו: (F1 F2  …  Fn)+ = F+

  25. הצורה הנורמלית של Boyce-Codd BCNF תבנית יחס R נמצאת ב-BCNF ביחס לאוסף תלויות פונקציונאליות F אם לכל התלויות הפונקציונליות ב-+F מהצורה  כאשר Rמתקיים לפחות אחד מהתנאים הבאים: • התלות  היא טריוויאלית (  ) •  מפתח של R

  26. אלגוריתם פירוק ל-BCNF • R תבנית יחסים, F אוסף התלויות הפונקציונליות החלות עליה. • תהא X Y תלות שמפרה BCNF • נפרק את R ל-2 תבניות: • R1=(X,Y) • R2=(R-Y) • הערה: הפירוק משמר מידע. • הערה: לא תמיד ניתן להגיע לפירוק BCNF המשמר תלויות.

  27. דוגמא לפירוק ל-BCNF R=(A , B , C , D , E) F={ ABDE , CDE , DAE , CA} R=(A , B , C , D , E , G) F={ AEG, EBD, BCAG, BG, CDA}

  28. הצורה הנורמלית השלישית 3NF • ישנם מצבים בהם • BCNF אינו משמר תלויות ו- • חשוב לבדוק מהר בעדכונים אם מתקיימות כל התלויות הפונקציונליות • פתרון: נגדיר צורה נורמלית חלשה יותר: צורה נורמלית שלישית • מאפשרת כפילות מסוימת • ניתן לבדוק תלויות פונקציונליות על היחסים עצמם • תמיד יש פירוק משמר מידע ומשמר תלויות ב-3NF. • תבנית יחס R נמצאת ב-3NF אם לכל תלות  ב-+F מתקיים לפחות אחד מהתנאים הבאים: • תלות טריוויאלית ( ) • מפתח של R • כל תכונה A ב- – מוכלת במפתח קביל של R • הערה: כל תכונה יכולה להשתייך למפתח שונה.

  29. אלגוריתם לפירוק 3NF R תבנית יחס, ו- Fc כיסוי קנוני ל-F. i=0 לכל תלות  ב- Fc בצע: אם אף אחת מתבניות היחסים Rj,1  j  i אינה מכילה את , i=i+1 Ri :=  אם אף אחת מתבניות היחסים אינה מכילה מפתח קביל כלשהו של R אזי i=i+1 Ri- מפתח קביל כלשהו של R. • האלגוריתם מבטיח: • כל אחת מהתבניות שנוצרה ב-3NF. • הפירוק משמר מידע ומשמר תלויות.

  30. השוואה בין 2 הפירוקים • תמיד ניתן לפרק יחס ליחסים ב-3NF. • הפירוק משמר מידע • הפירוק משמר תלויות • תמיד ניתן לפרק יחס ליחסים ב-BCNF. • הפרוק משמר מידע • הפירוק לא תמיד משמר תלויות. • ליחס ב-3NF שאינו ב-BCNF יתכן: • כפילות מידע • צורך בערכי NULL.

More Related