Presentation is loading. Please wait.

Presentation is loading. Please wait.

מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.

Similar presentations


Presentation on theme: "מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים."— Presentation transcript:

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 ( מדוע ?)


Download ppt "מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים."

Similar presentations


Ads by Google