תיאורית תכנון סכמות למסדי נתונים database design theory

54
ייייייי ייייי ייייי ייייי ייייייDatabase design theory

Upload: jose-miguel-zuniga-torregrosa

Post on 24-Jan-2016

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: תיאורית תכנון סכמות למסדי נתונים Database design theory

תיאורית תכנון סכמות למסדי נתוניםDatabase design theory

Page 2: תיאורית תכנון סכמות למסדי נתונים Database design theory

ת"פ• אטריביוטים וסגור של קבוצת ת"פ'סגור של קב•מפתח ומפתח על•כיסוי מינימלי )קנוני, חסר כפילויות(•הקדמה לפירוקים•הגדרת פירוק•פירוק משמר מידע )ללא אובדן(•שימור תלויות•BCNF, 3NFצורות נורמליות: •

נושאים

Page 3: תיאורית תכנון סכמות למסדי נתונים Database design theory

תזכורת

סכימה )תבנית(•

יחס )טבלה(•

תכונות=אטריביוטים•

Page 4: תיאורית תכנון סכמות למסדי נתונים Database design theory

תכנון מסדי נתוניםמטרה: ליצור מסדי נתונים עם מבנה "נכון"•

StudIDStudNameStudDept.DeptBudgetDeptManager

10123MosheMath200000Prof. Shamir

22458MickeyComputers900000Prof. Navot

33453EliMath200000Prof. Shamir

88966AnatBiology390000Prof. Parnas

55611MenahemMath200000Prof. Shamir

מסד נתונים עם מבנה נכון:

מונע כפילות מידע 1.

מאפשר לייצג מידע2.

קונסיסטנטי3.

Page 5: תיאורית תכנון סכמות למסדי נתונים Database design theory

StudIDStudNameStudDept.

10123MosheMath

22458MickeyComputers

33453EliMath

88966AnatBiology

55611MenahemMath

StudIDStudNameStudDept.DptBdgetDptMgr

10123MosheMath200000Prof. Shamir

22458MickeyComputers900000Prof. Navot

33453EliMath200000Prof. Shamir

88966AnatBiology390000Prof. Parnas

55611MenahemMath200000Prof. Shamir

StudDept.DptBdgetDptMgr

Math200000Prof.

Shamir

Computers900000Prof. Navot

Biology390000Prof.

Parnas

Page 6: תיאורית תכנון סכמות למסדי נתונים Database design theory

תלות פונקציונלית

תלות פונקציונלית היא אילוץ על טבלה•

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

במילים אחרות: בכל הרשומות עם אותה •מחלקה, יופיע אותו מנהל

סימון: מחלקה-<מנהל•

מחלקה מסוימת "קובעת" מנהל מסוים•

Page 7: תיאורית תכנון סכמות למסדי נתונים Database design theory

StudIDStudNameStudDept.DeptBudgetDeptManager

10123MosheMath200000Prof. Shamir

22458MickeyComputers900000Prof. Navot

33453EliMath200000Prof. Shamir

88966MosheBiology390000Prof. Parnas

55611MenahemMath200000Prof. Shamir

StudDept.-> DeptBudget

StudDept.-> DeptManager

DeptBudget-> DeptManager

StudDept.-> StudName

StudName-> StudDept

Page 8: תיאורית תכנון סכמות למסדי נתונים Database design theory

ABCD

1238

3382

2347

1258

2347

A->B

A->D

A->BD

AC->D

A->A

ועוד...

B->A

A->C

A->BC

Page 9: תיאורית תכנון סכמות למסדי נתונים Database design theory

תלות אם קיימת תלות פונקציונלית )פורמלית(:•, אזי לכל שתי Rעל היחס פונקציונאלית

יש גם בעלות ערכים זהים ב- t2 ו- t1שורות . ערכים זהים ב-

t1[] = t2 [] t1[ ] = t2 [ ]ז"א

יכולות להיות תכונות בודדות או , נשים לב ש •קבוצות של תכונות

,..A,B,C כקבוצות אטריביוטים ו X,Y,Zנהוג לסמן •כאטריביוטים בודדים

XY כ Y ו Xנהוג לסמן איחוד של קבוצות •

Page 10: תיאורית תכנון סכמות למסדי נתונים Database design theory

שימוש בתלויות פונקציונליותמשמשות ככלי בתהליך בניית יחסים "נכונים"•

התהליך:•קביעת העמודות של היחס )מנהל, מחלקה, 1.

תלמיד,..(

קביעת הת"פ הרצויות )מחלקה-<מנהל,..(2.

ע"י שימוש בעמודות ובת"פ שנקבעו, בודקים האם יש 3.שכפול מידע

אם כן- מפרקים את היחס לתת יחסים 4.

Page 11: תיאורית תכנון סכמות למסדי נתונים Database design theory

ת"פ היא טריוויאלית אם היא מתקיימת בכל •יחס

•X->Y טריוויאלית אמ"מ Y Xלמשל:•

– A->A– AC->C

ת"פ טריוויאלית

Page 12: תיאורית תכנון סכמות למסדי נתונים Database design theory

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

ואוסף אטריביוטים, סגור Fבהנתן אוסף ת"פ • הוא אוסף כל Xשל קבוצת אטריביוטים

מ- X->A כך שניתן לגזור את Aהאטריביוטים F

+Xסימון: •F

F גזירה מ X->Yהלמה של הסגור: •+Y Xאמ"מ

F

Page 13: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא למציאת סגורדוגמא: •

אז:F={A->B, B->C}, עם )R)ABCיהי – A=+

ABC B=+

BCC=+

CAC=+

ABC

Page 14: תיאורית תכנון סכמות למסדי נתונים Database design theory

אלגוריתם למציאת סגור של קבוצת תכונות

:X, וקבוצת תכונות F, קבוצת ת"פ Rעבור יחס •Xסגור_זמני=–כל עוד סגור_זמני מתעדכן:–

לא, Z מוכל בסגור_זמני ו Y: אם Y->Zעבור על כל ת"פ • לסגור זמניZאז הוסף את

לאחר סיום העידכונים, סגור_זמני הוא הסגור –Xהמלא של

Page 15: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא למציאת סגור של קבוצת תכונות

F={A->BD, C->B, BC->E} עם )R)ABCDEיהי •? Cמהו הסגור של ••CBE?Aמהו הסגור של ••ABD

:X, וקבוצת תכונות F, קבוצת ת"פ Rעבור יחס •

Xסגור_זמני=–

כל עוד סגור_זמני מתעדכן:–

לא, אז Z מוכל בסגור_זמני ו Y: אם Y->Zעבור על כל ת"פ • לסגור זמניZהוסף את

Xלאחר סיום העידכונים, סגור_זמני הוא הסגור המלא של –

Page 16: תיאורית תכנון סכמות למסדי נתונים Database design theory

ת"פ ומפתחות•X הוא מפתח על של יחס R אם X+=R תחת F

•X הוא מפתח אם הוא מפתח על ולא ניתן להוריד ממנו אטריביוט והוא עדיין יישאר

מפתח על

הוא מפתח על יש לחשב את Xכדי לדעת אם •הסגור שלו

הוא מפתח יש לבדוק ראשית Xכדי לדעת אם •שהוא מפתח על ואז לבדוק האם יש לו תת

קבוצה שגם היא מפתח על

Page 17: תיאורית תכנון סכמות למסדי נתונים Database design theory

הסגור של אוסף תלויות פונקציונליות

בהנתן אוסף ת"פ, רוצים לבדוק מהן כל •הת"פ הנובעות מהן

R אוסף תלויות פונקציונליות עבור יחס Fיהי •F={A->B, A->C, C->D}למשל: •אוסף כל התלויות הפונקציונליות שנובעות •

. +F. מסומן ב-F של הסגור היא Fלוגית מ-

Page 18: תיאורית תכנון סכמות למסדי נתונים Database design theory

מציאת הסגור של קבוצת ת"פניתן למצוא את הסגור של קבוצת ת"פ ע"י •

שימוש באקסיומות הבאות:. אזי רפלקסיביות: אם – אז אוגמנטציה: אם –. אז וגם טרנזיטיביות: אם –

Page 19: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא

)R)A,B,C,Dיהי יחס •

R אוסף ת"פ עבור היחס Fיהי •

•F={A->B, B->D, C->D}

אך היא נובעת מ F אינה מופיעה ב A->Dהת"פ •F)?מדוע(

+F תהיה שייכת ל }A->D{מכאן, ש •

היא בעיה קשה- זמן ריצה +Fמציאת •אקספוננציאלי

Page 20: תיאורית תכנון סכמות למסדי נתונים Database design theory

+Fבדיקת שייכות של ת"פ לסגור לכאורה, כדי לבדוק האם ת"פ מסוימת נובעת •

ולראות אם היא +F, צריך לחשב את Fמ כלולה

הוא קשה+Fאך חישוב •

בעזרת סגור של קבוצת תכונות אפשר לקצר:•, +F נמצא ב X->Y, כדי לדעת אם F ו Rבהנתן –

, F תחת Xנחשב את הסגור של קבוצת התכונות כלולהYונראה אם

Page 21: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא•R)ABCD(, F={AB->D,C->B,CD->A, AD->C}

?+F נמצאת ב AC->Dהאם •

:+ACנחשב את •–}AC{–}ACB{–}ACBD{–D נמצא בסגור ולכן AC->D חלה על R

Page 22: תיאורית תכנון סכמות למסדי נתונים Database design theory

כיסוי מינימלי )קנוני( של קבוצת ת"פ- אינטואיציה

)R)ABCDנניח שהיינו רוצים לבדוק האם יחס •-F={Aמקיים את אוסף הת"פ הבא:

>B, B->C, A->C, AB->C}

-AB ו A->Cניתן לראות כי "מיותר" לבדוק את •>C

כל שאין בו ת"פ Fאז מהו הייצוג של •"מיותרות"?

Fהכיסוי המינימלי של זה בדיוק •

Page 23: תיאורית תכנון סכמות למסדי נתונים Database design theory

כיסוי מינימלי )קנוני( של קבוצת ת"פ

Fc הוא קבוצת ת"פ Fכיסוי מינימלי של •

)מצומצמת יותר(, המקיימת:.1Fc+=F+

יש אטריביוט בודד בצד ימין Fcלכל ת"פ ב 2.

אין אטריביוט מיותר בצד שמאל של אף ת"פ3.

ת"פ עודפת Fcאין ב 4.

Page 24: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא לתכונה עודפת

• F = { AB C, C B, A B }

:AB->C עודף ב Bנבדוק אם •– F’ = { A C, C B, A B } ולהיפך’F נגררת מ Fנבדוק שכל ת"פ ב – באמת הייתה עודפתBאכן, לכן –

Page 25: תיאורית תכנון סכמות למסדי נתונים Database design theory

אלגוריתם למציאת כיסוי מינימליFc =Fאתחול •

צור ת"פ עם אטריביוט בודד בצד ימין ע"י פירוק•

תכונות עודפות )בצד שמאל(Fcמחק מ •

ת"פ עודפותFcמחק מ •

מחיקת תכונות עודפות

צריך לבדוק אם מחיקה של אטריביוט משנה את הסגור.

במקום זאת, מספיק לבדוק אם הת"פ החדשה )ה"מקוצצת"(, נגזרת .Fמ

.F נגזר מ X\B->A, בדוק האם X ב B, ולכל X->Aלכל

אם כן- החלף את הת"פ בת"פ ה"מקוצצת".

Page 26: תיאורית תכנון סכמות למסדי נתונים Database design theory

מצא כיסוי מינימלי לקבוצות הת"פ הבאות:

.1F={A->B, CE->A, B->C, AC->D}

.2F={AB->C, A->B, C->B}

.3F = { A G, B D, GD C, AB C}

Page 27: תיאורית תכנון סכמות למסדי נתונים Database design theory

תזכורת לסכימה בעייתיתNamePositionSalary

10מזכיריוסי300מנכלמיכל100שיווקדני100שיווקענת100שיווקמשה80תוכנהנורית

: כפילות מידע1בעיה

בזבוז מקום•

סיכון בעדכון שגוי•

: ייצוג לא טבעי של נתונים חלקיים2בעיה

שמירת משכורת של תפקיד שאינו מאויש•

Page 28: תיאורית תכנון סכמות למסדי נתונים Database design theory

פתרון: פירוק לתת-סכימות

NamePosition

מזכיריוסי

מנכלמיכל

שיווקדני

שיווקענת

שיווקמשה

תוכנהנורית

PositionSalary

10מזכיר

300מנכל

100שיווק

80תוכנה

Page 29: תיאורית תכנון סכמות למסדי נתונים Database design theory

הגדרה של פירוק

פירוק נקראות }R1, R2, ... Rn{קבוצת סכמות •(decomposition של הסכמה )Rאם מתקיים

R=R1UR2U…URn

:R=NPSפירוקים לדוגמא של •–R1=NP, R2=PS–R1=NP, R2=NS–R1=N, R2=PS–…

אבל, רק חלק מהפירוקים הללו "טובים"...•

Page 30: תיאורית תכנון סכמות למסדי נתונים Database design theory

פירוק לא "טוב" עם התלויות:R = NPSנתבונן שוב בתבנית •

F = {N P, P S}

R1=NS, R2=PSונתבונן על הפירוק: •

NS

100דני100נורית200טלי

PS

100שיווק100תוכנה200ניהול

NPS

100שיווקדני

100תוכנהנורית

200ניהולטלי

לאחר הפירוק, האם ניתן לדעת מה תפקידה של טלי?

ומה תפקידו של דני?

זה נקרא "פירוק המאבד מידע"

שמירת מידע של פירוק מוגדרים על הסכמות, ללא קשר /חשוב: איבודלתוכן היחסים!

Page 31: תיאורית תכנון סכמות למסדי נתונים Database design theory

פירוק ללא אובדן )משמר מידע(

. אז הפירוק של R קבוצת אילוצים החלה על F סכמה ו- Rתהי R לקבוצת התבניות }R1, R2, R3 ... Rn{ פירוק ללא אובדן יקרא

המקיים את ( R )שתבניתו r)משמר מידע( אם עבור כל יחס , מתקייםFכל האילוצים ב-

r = R1)r( R2)r( R3)r( ... Rn)r(

Page 32: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא עם התלויות:R = ABCנתבונן בתבנית •

F = {A C, C B}

R1=AB, R2=BCונתבונן על הפירוק: •

AB

x1y2z3

BC

1t

2s

3r

ABC

x1t

y2s

z3r

? R1)r( R2)r( = rהאם

האם ניתן לקבוע מכך שהפירוק משמר ABמידע?

x1y1z3

BC

1t

1s

3r

ABC

x1t

y1s

z3r

? R1)r( R2)r( = rהאם

כן!

לא! הפירוק אינו משמר מידע. למשל:

לא!!

Page 33: תיאורית תכנון סכמות למסדי נתונים Database design theory

כיצד אם כן נבדוק אם פירוק הינו ללא אובדן?•כדי להפריך- מספיקה דוגמה נגדית–כדי להוכיח- לכאורה צריך להראות שהצירוף –

לכל הטבעי של תתי-היחסים שווה ליחס המקורי, יחס עם הסכימה הנתונה המקיים את הת"פ

הנתונותכמובן שלא ניתן לבצע זאת–

בשיעור הוצג אלגוריתם לבדיקה אם פירוק הוא •ללא אובדן

Page 34: תיאורית תכנון סכמות למסדי נתונים Database design theory

ת"פ של תת-סכימה. מהן R תת סכימה של Ri ו- F סכימה עם אוסף ת"פ Rתהי •

?Riהת"פ של "Ri על העמודות של F הן "ההטלה של הת"פ Riהת"פ של • F. תהי R פירוק של התבנית }R1, R2, ... Rn{הגדרה: יהי •

ההטלה . אז Rקבוצה של תלויות פונקציונליות החלה על היא קבוצת כל התלויות )Ri )n 1 i לתבנית Fשל

. סימון: Ri המכילות רק תכונות שנמצאות ב- F של בסגורFi.

דוגמא:••R = )A, B, C( F = {A B, B C}•R1 = )A, C( R2 = )B, C(אז:••F1={A C}, F2={B C}

Page 35: תיאורית תכנון סכמות למסדי נתונים Database design theory

פירוק משמר ת"פפירוק משמר ת"פ הינו פירוק אשר מבטיח שהת"פ בסכימה המקורית •

נאכפות גם לאחר הפירוק קבוצת F. תהי R פירוק של התבנית }R1, R2 ... Rn{ יהי הגדרה•

Ri )1 i לתבניות F ההטלות של Fi ותהיינה Rתלויות החלה על n( פירוק משמר תלויות. אז הפירוק הזה יקרא( dependency

preserving decompositionאם מתקיים ) (F1 F2 ... Fn = +)F+

הערות:+ F(+ F1 F2 ... Fn)עבור כל פירוק מתקיים •כאשר הפירוק הוא משמר תלויות מתקיימת גם ההכלה בכיוון ההפוך •

ואז יש שיוויון. כדי לבדוק האם פירוק הוא משמר תלויות מספיק לבדוק אם מתקיים•

(F1 F2 ... Fn +) Fקיים אלגוריתם יעיל לבדיקה האם ת"פ נשמרת )בהמשך( •

Page 36: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא

•R = )A, B, C( F = {A B, B C}

•R1 = )A, C( R2 = )B, C(

אז:•

•F1={A C}, F2={B C}

ולכן (+F1 F2) לא נמצאת ב A Bהת"פ •הפירוק אינו משמר ת"פ

Page 37: תיאורית תכנון סכמות למסדי נתונים Database design theory

'דוגמא ב

•R = )A, B, C(, F = { A B, B C, C A} •R :מפורקת ל R1 = )A, B( R2 = )B, C( האם הפירוק משמר ת"פ?•• F1 = {A B, B A}• F2 = {B C, C B)נמצאות F צריך לבדוק אם כל התלויות ב- •

F1 F2בסגור של מסתבר שכן ולכן הפירוק משמר ת"פ•

Page 38: תיאורית תכנון סכמות למסדי נתונים Database design theory

מה לגבי הפירוק הבא?

SC

CohenDB

LevyOS

LevyDB

ST

CohenSmith

LevyJones

LevySmith

SCT

CohenDBSmith

LevyOSJones

LevyDBSmith

F = {C T}

אינו משמר מידע ואינו משמר ת"פ

Page 39: תיאורית תכנון סכמות למסדי נתונים Database design theory

וזה?

ST

CohenSmith

KatzSmith

LevyJones

CT

DBSmith

OSJones

AlgoSmith

SCT

CohenDBSmith

KatzAlgoSmith

LevyOSJones

F = {C T}

אינו משמר מידע אך כן משמר ת"פ

Page 40: תיאורית תכנון סכמות למסדי נתונים Database design theory

וזה?

SC

CohenDB

KatzAlgo

LevyOS

CT

DBSmith

OSJones

AlgoSmith

SCT

CohenDBSmith

KatzAlgoSmith

LevyOSJones

F = {C T}

משמר מידע )אלגוריתם מהשיעור( ומשמר ת"פ

Page 41: תיאורית תכנון סכמות למסדי נתונים Database design theory

X->Yאלגוריתם לבדיקה האם ת"פ נשמרת בפירוק

/* check if X->Y is preserved */IsPreserved(X,Y,R1…k)Z:=Xwhile changes to Z occur do for i=1 to k do Z:= Z ((Z Ri)+ Ri) if YZ return trueelse return false

Page 42: תיאורית תכנון סכמות למסדי נתונים Database design theory

IsDependencyPreserving(F,R1…k)for each X->Y in F do

if not IsPreserved(X,Y,R1…k)return false

return true

X->Yאלגוריתם לבדיקה האם ת"פ (2נשמרת בפירוק )

Page 43: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא

•R=ABCD

•F = {A -> B, B -> C, C -> D, D -> A}

•R1=AB, R2=BC, R3=CD

האם הפירוק הנ"ל משמר ת"פ?•

לא!•

Page 44: תיאורית תכנון סכמות למסדי נתונים Database design theory

BCNF החלה עליה היא F עם קבוצת תלויות Rסכימה •

F אם כל תלות בסגור של BCNFבצורה נורמלית מקיימת לפחות אחד משני התנאים הבאים:

התלות היא טריוויאלית, או:–מפתח עלצד שמאל שלה הוא –

דוגמא:• R = )A, B, C( F = { A B, B C, C A}•R -היא ב BCNF -כי לכל התלויות בF יש מפתח

על בצד שמאל )כלומר אלו תלויות במפתח על(. )אם יש Fהערה: מספיק לבדוק עבור התלויות ב •

(F אז יש הפרה ב +Fהפרה ב

Page 45: תיאורית תכנון סכמות למסדי נתונים Database design theory

?BCNFמדוע רצוי שסכימה תהיה כאשר על סכימה חלה תלות לא טריוויאלית שאינה תלות •

במפתח על, יש חשש להיווצרות כפילות בנתונים. ( אינו מפתח על, ערך נתון של pמאחר וצד שמאל של התלות )•

P למשל "שיווק"( יכול להופיע במספר רב של שורות. בגלל( S( 100התלות האמורה, הוא תמיד יופיע עם אותו הערך של

בדוגמא( וכאן הכפילות. לא נוצרת בעיה זו BCNFכאשר תבנית היא ב-•

NPS

10מזכיריוסי300מנכלמיכל100שיווקדני100שיווקענת100שיווקמשה80תוכנהנורית

N PP S

Page 46: תיאורית תכנון סכמות למסדי נתונים Database design theory

BCNFפירוק לתת סכמות שהן , ניתן לפרקה לתת BCNFבהנתן סכמה שאינה •

.BCNFסכמות שהן

ניתן לעשות זאת באופן טריוויאלי ע"י פירוק • אטריביוטים )ואז הן 2לתת-סכמות שלכל אחת

BCNF)

אך לא מובטח שזהו פירוק ללא אובדן•

המטרה: אלגוריתם המפרק סכמה לתת סכמות •, והפירוק הוא ללא אובדן BCNFשהן

Page 47: תיאורית תכנון סכמות למסדי נתונים Database design theory

BCNFאלגוריתם פירוק ל

:F וקבוצת ת"פ Rבהנתן סכמה •

קבוצת תתי הסכמות בתוצאהSתהי •

•S מאותחלת להכיל את R

:S ב Kלכל סכמה • כך X A, כלומר ת"פ BCNFמחפשים הפרה של –

X+!=K וגם A Xש , אז מפרקים K היא הפרה של סכמה X Aאם –

K-A ול XA ל Kאת

Page 48: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא להרצת האלגוריתם• R = )A, B, C, D, E(

• F = {A BD, D AE, C A}

Page 49: תיאורית תכנון סכמות למסדי נתונים Database design theory

האלגוריתם מייצר:

BCNFתת סכמות שכולן בצורת •

פירוק ללא אובדן )משמר מידע(•

באופן כללי, הפירוק אינו משמר ת"פ•

Page 50: תיאורית תכנון סכמות למסדי נתונים Database design theory

3NF החלה עליה F עם קבוצת תלויות Rתבנית •

X A אם כל תלות 3NFהיא בצורה נורמלית מקיימת לפחות אחד משלושת Fבסגור של

התנאים הבאים:–X A( היא טריוויאלית A מוכל ב X)–Xמפתח על –A היא חלק ממפתח של R

נשים לב שמכאן נובע שכל תבנית שהיא ב •BCNF 3 היא גם בNFאך לא בהכרח להיפך

Page 51: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא

•R = )A, B, C( F = { AB C, C A} הוא מפתח-עלAB Cצד שמאל של התלות •תלות זו מקיימת את התנאי השני בהגדרה של •

3NF ושל( BCNF.) אינה R ולכן C Aלא כן הדבר לגבי התלות •

.BCNFב- כן מקיימת את התנאי C Aאבל התלות •

:3NFהשלישי בהגדרה של •A היא חלק מהמפתח AB לכן .R -3 היא בNF.

Page 52: תיאורית תכנון סכמות למסדי נתונים Database design theory

3NFאלגוריתם לפירוק ל-

F עם קבוצת תלויות R תבנית קלט•

R פירוק משמר מידע ומשמר תלויות של פלט•3NFלתבניות שכולן ב-

F של G. חשב כיסוי חסר כפילויות 1

אלא אם XA, צור סכמה G ב- X A. עבור כל תלות 2XA מוכל בסכמה שכבר נוצרה

. אם אף אחת מהסכמות שנוצרו אינה מכילה מפתח 3 אז הוסף סכמה המכילה את התכונות Rכלשהו של

של מפתח כזה.

Page 53: תיאורית תכנון סכמות למסדי נתונים Database design theory

דוגמא•R = )A, B, C, D, E( F = { AB C, C B, DE CB }•ADEמפתח יחיד 3NFכל התלויות מפרות •F: נמצא כיסוי קנוני עבור 'שלב א••FC = { AB C, C B, DE C}: יצירת תבנית עבור כל תלות:'שלב ב• )R1 = )A, B, Cמהתלות הראשונה נקבל: •( B, Cעבור התלות השניה אין צורך ליצור תבנית כי כל תכונותיה )•

.R1נמצאות בתבנית )R2 = )C, D, Eמהתלות השלישית נקבל: •.Rאף אחת מהתבניות שקיבלנו אינה מכילה מפתח של : 'שלב ג•.)R3 = )A, D, Eלכן עלינו להוסיף את התבנית •בסך הכל הפירוק שהתקבל הוא:•

–R1 = )A, B, C(–R2 = )C, D, E(–R3 = )A, D, E(

Page 54: תיאורית תכנון סכמות למסדי נתונים Database design theory

האלגוריתם מייצר:

3NFתת סכמות שכולן בצורת •

פירוק ללא אובדן )משמר מידע(•

פירוק משמר ת"פ•