28
סססס סססססס ססס" ס1 ( ססססס סססססDesign Theory ) סססס סססססס

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

  • View
    241

  • Download
    1

Embed Size (px)

Citation preview

מסדי נתונים תשס"ג 1

(Design Theoryתכנון סכמות )

מסדי נתונים

מסדי נתונים תשס"ג 2

סגור של קבוצת אטריביוטים

קבוצת F קבוצת אטריביוטים, Rתהי •תלויות פונקציונליות

ומכיל את כל +X מסומן Xהסגור של •:X שנגררים מ-Rהאטריביוטים ב-

X+ = {A | F |= XA}

מתי נרצה לחשב סגור ?| ב- =| האם ניתן להחליף ?| ב- =| האם ניתן להחליף של קבוצת אטריביוטים?

מסדי נתונים תשס"ג 3

דוגמה

• R=ABCDE

• F={ABC, CEB, DA, BCE}– {A}+ = – {A,B}+ =– {B,D}+=

מסדי נתונים תשס"ג 4

Compute Closure(X,F)1. Set C := X

2. While there is a VW in F such that V C and W C

C := C W

3. Return C

אלגוריתם בסיסי לחישוב סגור

מסדי נתונים תשס"ג 5

סיבוכיות זמן ריצה

O( |X+|2·|F| )סיבוכיות זמן ריצה: •מספר האיטרציות הוא לכל היותר כמספר –

+Xהאטריביוטים ב-

תלויות|F|בכל איטרציה בודקים לכל היותר – שלא מכילה יותר Cכל בדיקה היא ביחס ל-–

+Xאטריביוטים מ-

מסדי נתונים תשס"ג 6

אלגוריתם יותר יעיל

Fיוצרים טבלה שבה שורה לכל ת"פ של •Rועמודה לכל אטריביוט של

( sizeמוסיפים לטבלה עמודה של גודל )•(tailועמודת זנב )

, בשורה של הת"פ XYעבור כל תלות •רושמים

–true -בכל העמודות שהן אטריביוטים ב Xsize בעמודה Xאת מספר האטריביוטים ב-–tail בעמודה Yאת –

מסדי נתונים תשס"ג 7

טבלת דוגמה

F = {A → C, B → D, AD → E}

ABCDESizeTail

A → C1C

B → D1D

AD → E2E

מסדי נתונים תשס"ג 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

+ABחישוב

ABCDESizeTail

A → C1C

B → D1D

AD → E2E

Start: X+ = {A,B}, Q = {A, B}

מסדי נתונים תשס"ג 10

+ABחישוב

ABCDESizeTail

A → C0C

B → D1D

AD → E1E

Iteration of A: X+ = {A,B,C}, Q = {B,C}

מסדי נתונים תשס"ג 11

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E1E

Iteration of B: X+ = {A,B,C,D}, Q = {C,D}

מסדי נתונים תשס"ג 12

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E1E

Iteration of C: X+ = {A,B,C,D}, Q = {D}

מסדי נתונים תשס"ג 13

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E0E

Iteration of D: X+ = {A,B,C,D,E}, Q = {E}

מסדי נתונים תשס"ג 14

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E0E

Iteration of E: X+ = {A,B,C,D,E}, Q = {}

מסדי נתונים תשס"ג 15

סיבוכיות

ליעילות, נניח שיש מצביע מכל תא שמסומן •true בטבלה לתא הבא באותה עמודה

trueשמסומן ABCDESizeTail

A → C1C

B → D1D

AD → E2E

מסדי נתונים תשס"ג 16

סיבוכיות זמן ריצה

O( |F| + |X+| )החישוב נעשה ב- • +Xעוברים על כל האטריביוטים של –מספר השינויים שנעשים בטבלה הוא לכל –

היותר כמספר האטריביוטים שמופיעים בצד Fשמאל של תלות ב-

למה האלגוריתם נכון?•

מסדי נתונים תשס"ג 17

מציאת מפתח

F וקבוצת תלויות פונקציונליות Rנתונה סכימה •

Rרוצים למצוא מפתח )כלשהו( עבור •

אלגוריתם נאיבי:• Rעוברים על כל תת הקבוצות של אטריביוטים ב-–

החל מהקבוצות הקטנות והמשך בקבוצות הולכות וגדלות

מסיימים כאשר מקבלים קבוצה שהסגור שלה הוא –R

למה האלגוריתם נכון?•

מסדי נתונים תשס"ג 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

סיבוכיות מעריכית

!n!/(n-i)!i אטריביוטים אז יש n יש Rאם ב-• R מ-iאפשרויות לבחירת קבוצות בגודל

ומספר זה מעריכי בגודל הקלטרוצים אלגוריתם יעיל יותר•הרעיון: להתחיל "מלמעלה"•

מסדי נתונים תשס"ג 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

דוגמא

• R=ABCDE

• F={ABC, CEB, DA, BCE}

K:=ABCDEבהתחלה 1.

K:=BCDE מקבלים DAבגלל 2.

K:=CDE מקבלים CEBבגלל 3.

לא ניתן להוריד עוד אטריביוטים ולכן זהו 4.מפתח

מסדי נתונים תשס"ג 22

זמן ריצה

פעמים ולכן |R|מחשבים סגור לכל היותר •O(|R||F|)זמן הריצה

מדוע האלגוריתם נכון?•

מסדי נתונים תשס"ג 23

דוגמא למציאת פירוק

• R=ABCDE

• F={ABCD, DB, BC, ADBC}

רוצים פירוק משמר תלויות, משמר מידע •ובצורה נורמלית גבוהה ככל שניתן

מסדי נתונים תשס"ג 24

שלבים בפתרון

מציאת כיסוי חסר כפילויות•מציאת כל המפתחות•מציאת צורה נורמלית•יצירת פירוק•בדיקת הצורה הנורמלית של הפירוק•

מסדי נתונים תשס"ג 25

מחיקות במציאת כיסוי חסר כפילויות

בדיקה ביחס ל-

סוג מחיקהסכנה

שימור בקבוצת התלויות אחרי

המחיקהתלותאיבוד תלות

קיום בקבוצת התלויות לפני

המחיקה

יצירת תלות חדשה

תכונה בצד שמאל

מסדי נתונים תשס"ג 26

פתרון

כיסוי חסר כפילויות:• FC={ABD, DB, BC}

ABE, ADEמפתחות: •3NFצורה נורמלית: פחות מ-•ABD, BC, ABEפירוק: •

פירוק משמר מידע–פירוק משמר תלויות– )מדוע?(3NFפירוק לתבניות בצורה נורמלית –

מסדי נתונים תשס"ג 27

דוגמה נוספת

• R=ABCDE

• F={BCCD, ACD, DAB, EBC}

רוצים פירוק משמר תלויות, משמר מידע •ובצורה נורמלית גבוהה ככל שניתן

מסדי נתונים תשס"ג 28

פתרון

כיסוי חסר כפילויות:• FC ={BCD, DA, DB,

AC, AD,E B, E B} מפתח יחידEמפתחות: •3NFצורה נורמלית: פחות מ-•ABCD, BCEפירוק: •

פירוק משמר מידע–פירוק משמר תלויות– )מדוע?(BCNFפירוק לתבניות בצורה נורמלית –