Download presentation
Presentation is loading. Please wait.
1
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים
2
מסדי נתונים תשס " ג 2 פירוק לתבניות בצורת BCNF מעוניינים באלגוריתם יעיל ( זמן ריצה פולינומיאלי ) למציאת פירוק לתבניות בצורת BCNF מעוניינים שהפירוק יהיה חסר אובדן
3
מסדי נתונים תשס " ג 3 טענות בסיס טענה : כל סכימה שבה שתי תכונות בלבד היא בצורת BCNF – מדוע ? טענה : אם סכמה R אינה בצורת BCNF אזי קיימים שני אטריביוטים A ו -B ב -R, כך (R – AB) A – מדוע ?
4
מסדי נתונים תשס " ג 4 אלגוריתם הפירוק הרעיון הכללי : – עבור תבנית R בודקים הפרה של צורת BCNF ( איך ?) – אם אין הפרה סיימנו, אחרת מפרקים את R לשתי תבניות Z–A ו - XA כך ש - –X A – ואין Y X כך ש -Y A
5
מסדי נתונים תשס " ג 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 else begin 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
מסדי נתונים תשס " ג 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
מסדי נתונים תשס " ג 7 דוגמה ניקח סכימה R=CTHRSG –C = course –T = teacher –H = hour –R = room –S = student –G = grade
8
מסדי נתונים תשס " ג 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
מסדי נתונים תשס " ג 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
מסדי נתונים תשס " ג 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
מסדי נתונים תשס " ג 11 הפעלת האלגוריתם ממשיכים עם CHSG – עבור A=G B=H משאיר Y=CSG – לא ניתן להמשיך להוריד אטריביוטים ומוסיפים CSG לפירוק ממשיכים עם CHS –CHS בצורת BCNF כי לא ניתן למצוא זוג אטריביוטים שמראה אחרת
12
מסדי נתונים תשס " ג 12 הפירוק לפי האלגוריתם מקבלים את הסכימות HRS, CT, CSG, CHS האם יש שימור תלויות ? האם הפירוק הוא חסר אובדן ?
13
מסדי נתונים תשס " ג 13 בדיקת שימור תלויות מעונינים לבדוק בצורה יעילה האם פירוק הוא משמר תלויות נתונה סכימה R עם קבוצת תלויות F ופירוק של R: R 1, …, R n נסמן ב - F i את הצמצום של F ל - R i (F i = π R i (F)) מעוניינים לדעת האם F + = ( Fi) +
14
מסדי נתונים תשס " ג 14 בדיקת שימור תלויות האם בעקבות הפירוק יכולה להתווסף תלות שלא היתה לפני הפירוק ? לבדיקת שימור התלויות : – לכל תלות X Y בודקים האם ( Fi) + X Y – בודקים על ידי חישוב X + ביחס לתלויות הנשמרות בפירוק
15
מסדי נתונים תשס " ג 15 הרחבה של קבוצת אטריביוטים בסכימה של הפירוק עבור קבוצה Z של אטריביוטים וסכימה R i ההרחבה של Z ביחס ל - R i היא הקבוצה : Z ((Z R i ) + R i ) – הסגור מחושב ביחס ל -F
16
מסדי נתונים תשס " ג 16 בדיקת שימור תלות X Y Z:=X while changes to Z occure do for i=1 to n do Z:= Z ((Z R i ) + R i ) /* closure wrt F*/ if Y Z return “yes” else return “no”
17
מסדי נתונים תשס " ג 17 דוגמה R=ABCD F={A B, B C, C D, D A} Decomposition {AB, BC, CD} האם יש שימור תלויות ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.