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

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

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.

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

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

מסדי נתונים

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

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

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

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

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

X+ = {A | F |= XA}

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

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

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

דוגמה

• R=ABCDE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

טבלת דוגמה

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

ABCDESizeTail

A → C1C

B → D1D

AD → E2E

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

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

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

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

+ABחישוב

ABCDESizeTail

A → C1C

B → D1D

AD → E2E

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

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

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

+ABחישוב

ABCDESizeTail

A → C0C

B → D1D

AD → E1E

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

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

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

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E1E

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

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

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

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E1E

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

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

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

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E0E

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

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

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

+ABחישוב

ABCDESizeTail

A → C0C

B → D0D

AD → E0E

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

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

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

סיבוכיות

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

trueשמסומן ABCDESizeTail

A → C1C

B → D1D

AD → E2E

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

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

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

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

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

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

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

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

מציאת מפתח

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

דוגמא

• R=ABCDE

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

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

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

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

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

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

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

זמן ריצה

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

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

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

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

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

• R=ABCDE

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

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

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

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

שלבים בפתרון

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

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

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

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

בדיקה ביחס ל-

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

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

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

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

המחיקה

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

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

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

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

פתרון

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

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

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

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

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

דוגמה נוספת

• R=ABCDE

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

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

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

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

פתרון

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

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

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