1 / 17

תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF

תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF. מסדי נתונים. פירוק לתבניות בצורת BCNF. מעוניינים באלגוריתם יעיל (זמן ריצה פולינומיאלי) למציאת פירוק לתבניות בצורת BCNF מעוניינים שהפירוק יהיה חסר אובדן. טענות בסיס. טענה: כל סכימה שבה שתי תכונות בלבד היא בצורת BCNF מדוע?

arista
Download Presentation

תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF

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. תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים

  2. פירוק לתבניות בצורת BCNF • מעוניינים באלגוריתם יעיל (זמן ריצה פולינומיאלי) למציאת פירוק לתבניות בצורת BCNF • מעוניינים שהפירוק יהיה חסר אובדן

  3. טענות בסיס • טענה: כל סכימה שבה שתי תכונות בלבד היא בצורת BCNF • מדוע? • טענה: אם סכמה R אינה בצורת BCNF אזי קיימים שני אטריביוטים A ו-B ב-R, כך (R – AB)A • מדוע?

  4. אלגוריתם הפירוק • הרעיון הכללי: • עבור תבנית R בודקים הפרה של צורת BCNF (איך?) • אם אין הפרה סיימנו, אחרת מפרקים את R לשתי תבניות • Z–A • ו- XA כך ש- • XA • ואין YX כך ש-YA

  5. פרוצדורת הפירוק if Z contains no A and B such that A is in (Z-AB)+then return that Z is in BCNF and cannot be decomposed elsebegin find one such A and B; Y:=Z–B; while Y contains A and B such that A is in (Y-AB)+do Y:=Y–B; return the decomposition Z–A and Y; end

  6. תוכנית הפירוק Z:=R; repeat decompose Z into Z–A and XA, where XA is in BCNF and XA; /* use the decomposition procedure */ add XA to the decomposition; Z:=Z–A; Until Z cannot be decomposed add Z to the decomposition

  7. דוגמה • ניקח סכימה R=CTHRSG • C = course • T = teacher • H = hour • R = room • S = student • G = grade

  8. התלויות שיתקיימו • C  T Each course has one teacher • HR C Only one course can meet in a room at one time • HT R A teacher can be in only one room at one time • CS  G Each student has one grade in each course • HS R A student can be in only one room at one time

  9. הפעלת האלגוריתם • הסכימה CTHRSG • בודקים את הזוג CT: C(HRSG)+ • עבור C בתפקיד A ו-T בתפקיד B מתחילים הורדת אטריביוטים מיותרים מ- Y=CHRSG • A=C B=H לא ניתן להוריד אטריביוט • A=R B=C גורם להורדת C מקבלים Y=HRSG • ממשיכים עד לזוג A=R B=G ומקבלים Y=HRS • לא ניתן להמשיך לפרק את Y

  10. הפעלת האלגוריתם • מוסיפים HRS לפירוק וממשיכים עם Z=CTHRSG – R • ממשיכים עם CTHSG: • עבור A=T B=H נשארים עם Y=CTSG • עבור A=T B=S נשארים עם Y=CTG • עבור A=T B=G משאיר Y=CT ואז Y בצורת BCNF • מוסיפים את CT לפירוק וממשיכים עם Z=CSHG

  11. הפעלת האלגוריתם • ממשיכים עם CHSG • עבור A=G B=H משאיר Y=CSG • לא ניתן להמשיך להוריד אטריביוטים ומוסיפים CSG לפירוק • ממשיכים עם CHS • CHS בצורת BCNF כי לא ניתן למצוא זוג אטריביוטים שמראה אחרת

  12. הפירוק לפי האלגוריתם • מקבלים את הסכימות • HRS, CT, CSG, CHS • האם יש שימור תלויות? • האם הפירוק הוא חסר אובדן?

  13. בדיקת שימור תלויות • מעונינים לבדוק בצורה יעילה האם פירוק הוא משמר תלויות • נתונה סכימה R עם קבוצת תלויות F ופירוק של R: R1, …, Rn • נסמן ב- Fi את הצמצום של F ל- Ri (Fi = πRi(F)) • מעוניינים לדעת האם F+ = (Fi)+

  14. בדיקת שימור תלויות • האם בעקבות הפירוק יכולה להתווסף תלות שלא היתה לפני הפירוק? • לבדיקת שימור התלויות: • לכל תלות XY בודקים האם (Fi)+ XY • בודקים על ידי חישוב X+ ביחס לתלויות הנשמרות בפירוק

  15. הרחבה של קבוצת אטריביוטים בסכימה של הפירוק • עבור קבוצה Z של אטריביוטים וסכימה Ri ההרחבה של Z ביחס ל- Ri היא הקבוצה: Z  ((Z Ri)+  Ri) • הסגור מחושב ביחס ל-F

  16. בדיקת שימור תלות XY Z:=X while changes to Z occure do for i=1 to n do Z:= Z  ((Z  Ri)+  Ri) /* closure wrt F*/ if YZ return “yes” else return “no”

  17. דוגמה • R=ABCD • F={AB, BC, CD, DA} • Decomposition {AB, BC, CD} • האם יש שימור תלויות?

More Related