Download presentation
Presentation is loading. Please wait.
1
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים
2
מסדי נתונים תשס " ג 2 סגור של קבוצת אטריביוטים תהי R קבוצת אטריביוטים, F קבוצת תלויות פונקציונליות הסגור של X מסומן X + ומכיל את כל האטריביוטים ב -R שנגררים מ -X: X + = {A | F | = X A} האם ניתן להחליף | = ב - | ? מתי נרצה לחשב סגור של קבוצת אטריביוטים ?
3
מסדי נתונים תשס " ג 3 דוגמה R=ABCDE F={AB C, CE B, D A, BC E} –{A} + = –{A,B} + = –{B,D} + =
4
מסדי נתונים תשס " ג 4 Compute Closure( X, F ) 1.Set C := X 2.While there is a V W in F such that V C and W C C := C W 3.Return C אלגוריתם בסיסי לחישוב סגור
5
מסדי נתונים תשס " ג 5 סיבוכיות זמן ריצה סיבוכיות זמן ריצה : O( | X + | 2 ·| F | ) – מספר האיטרציות הוא לכל היותר כמספר האטריביוטים ב - X + – בכל איטרציה בודקים לכל היותר |F| תלויות – כל בדיקה היא ביחס ל -C שלא מכילה יותר אטריביוטים מ -X +
6
מסדי נתונים תשס " ג 6 אלגוריתם יותר יעיל יוצרים טבלה שבה שורה לכל ת " פ של F ועמודה לכל אטריביוט של R מוסיפים לטבלה עמודה של גודל (size) ועמודת זנב (tail) עבור כל תלות X Y, בשורה של הת " פ רושמים –true בכל העמודות שהן אטריביוטים ב - X – את מספר האטריביוטים ב -X בעמודה size – את Y בעמודה tail
7
מסדי נתונים תשס " ג 7 טבלת דוגמה F = {A → C, B → D, AD → E} ABCDESizeTail A → C 1 C B → D 1 D AD → E 2 E
8
מסדי נתונים תשס " ג 8 Compute Closure(X, F, T) /* T is the table */ C := X Q := X While Q is not empty A := Q.dequeue() for i=1..|F| if T[i,A]=true then T[i,size] := T[i,size]–1 if T[i,size]=0, then Q := Q (T[i,tail]\C) C := C T[i,tail]
9
מסדי נתונים תשס " ג 9 חישוב AB + ABCDESizeTail A → C 1 C B → D 1 D AD → E 2 E Start: X + = {A,B}, Q = {A, B}
10
מסדי נתונים תשס " ג 10 חישוב AB + ABCDESizeTail A → C 0 C B → D 1 D AD → E 1 E Iteration of A: X + = {A,B,C}, Q = {B,C}
11
מסדי נתונים תשס " ג 11 חישוב AB + ABCDESizeTail A → C 0 C B → D 0 D AD → E 1 E Iteration of B: X + = {A,B,C,D}, Q = {C,D}
12
מסדי נתונים תשס " ג 12 חישוב AB + ABCDESizeTail A → C 0 C B → D 0 D AD → E 1 E Iteration of C: X + = {A,B,C,D}, Q = {D}
13
מסדי נתונים תשס " ג 13 חישוב AB + ABCDESizeTail A → C 0 C B → D 0 D AD → E 0 E Iteration of D: X + = {A,B,C,D,E}, Q = {E}
14
מסדי נתונים תשס " ג 14 חישוב AB + ABCDESizeTail A → C 0 C B → D 0 D AD → E 0 E Iteration of E: X + = {A,B,C,D,E}, Q = {}
15
מסדי נתונים תשס " ג 15 סיבוכיות ליעילות, נניח שיש מצביע מכל תא שמסומן true בטבלה לתא הבא באותה עמודה שמסומן true ABCDESizeTail A → C 1 C B → D 1 D AD → E 2 E
16
מסדי נתונים תשס " ג 16 סיבוכיות זמן ריצה החישוב נעשה ב - O( |F| + |X + | ) – עוברים על כל האטריביוטים של X + – מספר השינויים שנעשים בטבלה הוא לכל היותר כמספר האטריביוטים שמופיעים בצד שמאל של תלות ב -F למה האלגוריתם נכון ?
17
מסדי נתונים תשס " ג 17 מציאת מפתח נתונה סכימה R וקבוצת תלויות פונקציונליות F רוצים למצוא מפתח ( כלשהו ) עבור R אלגוריתם נאיבי : – עוברים על כל תת הקבוצות של אטריביוטים ב -R החל מהקבוצות הקטנות והמשך בקבוצות הולכות וגדלות – מסיימים כאשר מקבלים קבוצה שהסגור שלה הוא R למה האלגוריתם נכון ?
18
מסדי נתונים תשס " ג 18 האלגוריתם Compute Key(R, F) for i=1 to |R| for each subset X of R with i attributes if closure(X,F)=R Return X
19
מסדי נתונים תשס " ג 19 סיבוכיות מעריכית אם ב -R יש n אטריביוטים אז יש n!/(n-i)!i! אפשרויות לבחירת קבוצות בגודל i מ -R ומספר זה מעריכי בגודל הקלט רוצים אלגוריתם יעיל יותר הרעיון : להתחיל " מלמעלה "
20
מסדי נתונים תשס " ג 20 מציאת מפתח Compute Key(R, F) Set K := R While there is an attribute A such that F = K-{A} A K := K \{A} Return K
21
מסדי נתונים תשס " ג 21 דוגמא R=ABCDE F={AB C, CE B, D A, BC E} 1. בהתחלה K:=ABCDE 2. בגלל D A מקבלים K:=BCDE 3. בגלל CE B מקבלים K:=CDE 4. לא ניתן להוריד עוד אטריביוטים ולכן זהו מפתח
22
מסדי נתונים תשס " ג 22 זמן ריצה מחשבים סגור לכל היותר |R| פעמים ולכן זמן הריצה O(|R||F|) מדוע האלגוריתם נכון ?
23
מסדי נתונים תשס " ג 23 דוגמא למציאת פירוק R=ABCDE F={ABC D, D B, B C, AD BC} רוצים פירוק משמר תלויות, משמר מידע ובצורה נורמלית גבוהה ככל שניתן
24
מסדי נתונים תשס " ג 24 שלבים בפתרון מציאת כיסוי חסר כפילויות מציאת כל המפתחות מציאת צורה נורמלית יצירת פירוק בדיקת הצורה הנורמלית של הפירוק
25
מסדי נתונים תשס " ג 25 מחיקות במציאת כיסוי חסר כפילויות בדיקה ביחס ל - סכנהסוג מחיקה שימור בקבוצת התלויות אחרי המחיקה איבוד תלותתלות קיום בקבוצת התלויות לפני המחיקה יצירת תלות חדשה תכונה בצד שמאל
26
מסדי נתונים תשס " ג 26 פתרון כיסוי חסר כפילויות : F C ={AB D, D B, B C} מפתחות : ABE, ADE צורה נורמלית : פחות מ -3NF פירוק : ABD, BC, ABE – פירוק משמר מידע – פירוק משמר תלויות – פירוק לתבניות בצורה נורמלית 3NF ( מדוע ?)
27
מסדי נתונים תשס " ג 27 דוגמה נוספת R=ABCDE F={BC CD, A CD, D AB, E BC} רוצים פירוק משמר תלויות, משמר מידע ובצורה נורמלית גבוהה ככל שניתן
28
מסדי נתונים תשס " ג 28 פתרון כיסוי חסר כפילויות : F C ={BC D, D A, D B, A C, A D,E B, E B} מפתחות : E מפתח יחיד צורה נורמלית : פחות מ -3NF פירוק : ABCD, BCE – פירוק משמר מידע – פירוק משמר תלויות – פירוק לתבניות בצורה נורמלית BCNF ( מדוע ?)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.