תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
Number Theory and Algebra Advisor …………… Dr. Shpilka Amir Presented by …… Cohen Gil..………
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
משטר דינמי המשך – © Dima Elenbogen :55 חידה שכדאי לעבור עליה: 2011/ho/WCFiles/%D7%97%D7%99%D7%93%D7%94%20%D7%A2%D7%9D%20%D7%91%D7%95%D7%A0%D7%95%D7%A1.doc.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
היום נדבר אל נושא אחד בתורת הגרפים. ובהמשך נשתמש בכלים אלו לפתרון כמה בעיות גאומטריות ובפרט להוכחת Szemeredi Trotter theorem.
2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית ( חוץ מהשורש ) יש לפחות.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
משפט ההרכבה Composition Theorem תהי C מחלקה של פונקציות בוליניות תהי נגדיר סדרת פונקציות שניתנות לחישוב בזמן פולינומיאלי.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
סמינר במדעי המחשב 3 עודד פרץ משפט הנורמליזציה החזקה.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
Questions are the Answer Penick&all H ISTORY R ELATIOINSHIPS A PPLICATION S PECULATION E XPLANATION.
תחשיב הפסוקים חלק ג'. צורות נורמליות א. DF – Disjunctive Form – סכום של מכפלות. דוגמא: (P  ~Q  R)  (R  P)  (R  ~Q  ~P) הגדרה: נוסחה השקולה לנוסחה.
אביב תשס"ה DBMS, צורות נורמליות1 צורות נורמליות: 3NF,BCNF צורה נורמלית (Normal Form) היא תכונה של סכמה רלציונית, המודדת את "טיב" הסכמה מבחינת מניעת.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
5. תלויות פונקציונליות שקפים: אלדר פישר
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
צורה נורמלית – BCNF Boyce-Codd Normal Form
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
אביב-תשס"ה DBMS, Design1 פרוקים של רלציות מוטיבציה: פרוק סכמה לסכמות יותר קטנות על מנת למנוע כפילויות. הגדרה: תהי R סכמה רלציונית. פרוק של R הוא.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
4 July 2007 נרמול מסד הנתונים כאשר מסד הנתונים עובר את שלב התכנון הראשוני יכולים להיווצר מספר בעיות בתכנון הנובעות מיתירות: אחת הבעיות הנפוצות ביותר במסדי.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תחשיב היחסים (הפרדיקטים)
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
1 גילוי מידע וזיהוי תבניות תרגול מס. 3 התפלגות נורמלית רב - מימדית Kullback-Leibler Divergence - משפט קמירות - נגזרת שנייה משפט Log sum inequality משפט.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
קשר לוגי : סיבה ותוצאה. במשפט – דוגמות קלות בגלל הגשם החלטנו לא לנסוע לטיול לחיפה. הרצון שלי להצליח הניע אותי להשקיע בלימודים. ציפורים נודדות בין יבשות.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Formal Specifications for Complex Systems (236368) Tutorial #1
מבוא למדעי המחשב סיבוכיות.
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
חיפוש לוקלי Local Search.
בעיות נוספות ב-NPC.
Marina Kogan Sadetsky –
תרגול 11 NP complete.
תיכון בסיס-נתונים יחסי
למה רמת פרמי צריכה להיות קבועה בחומר שנמצא בשווי משקל?
Based on the lecture notes of Prof. Sagiv
תוכנה 1 תרגול 13 – סיכום.
NG Interpolation: Divided Differences
Presentation transcript:

תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4 תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4 Design Theory for Relational Databases Part 4

דוגמה לסכמה בעייתית היחס הסכמה היא SCT ומתקיימת הת"פ C → T Student Course Teacher T C S Smith DB Cohen Jones OS Levy

אפיון סכמה בעייתית נתונה לנו סכמה R (קבוצת אטריביוטים) ונתונה קבוצה של ת"פ F שהיחסים עבור R צריכים לקיים הסכמה בעייתית אם קימת ת"פ X → Y לא טריוויאלית (קרי, Y ⊊ X) כך ש- F ⊨ X → Y ו- X אינו מפתח-על

צורה נורמלית של Boyce-Codd Boyce-Codd Normal Form (BCNF) סכמה R עם קבוצת ת"פ F היא בצורה נורמלית של Boyce-Codd (BCNF) אם לכל X → A ∈ F+ מתקיים X → A היא טריוויאלית, כלומר A ∈ X, או X הוא מפתח-על, כלומר F ⊨ X →R

המטרה בהינתן סכמה R עם קבוצת ת"פ F, צריך למצוא פירוק Rn,…,R2 R1, כך שמתקיימים הדברים הבאים: הפירוק חסר אובדן הפירוק משמר את התלויות כל סכמה Ri הנה בצורה נורמלית

מציאת פירוק המקיים BCNF מתחילים עם הסכמה R וקבוצת הת"פ F מחפשים הפרה של BCNF, כלומר ת"פ X → A ∈ F+, כך ש- A ∉ X וגם F ⊬ X →R טענה: אם יש הפרה ב- F+, אז יש הפרה ב- F; לכן ניתן למצוא הפרה (אם יש כזאת) בזמן פולינומיאלי

אם יש הפרה, נפרק לפי הדוגמה נתונה הסכמה ABC עם F = {A → B, B → C} B → C היא הפרה של BCNF לכן נפרק לשתי סכמות: סכמה שמורכבת מהאטריביוטים של הת"פ המפרה את BCNF, כלומר בדוגמה הנתונה הסכמה היא BC (בסכמה זו פחות הפרות ופחות אטריביוטים מאשר בסכמה המקורית) וסכמה המורכבת מכל האטריביוטים של הסכמה המקורית, למעט האטריביוט המופיע בצד הימני של הת"פ המפרה BCNF, כלומר בדוגמה הנתונה הסכמה היא AB (בסכמה זו פחות הפרות ופחות אטריביוטים מאשר בסכמה המקורית)

מציאת פירוק BCNF (המשך) עבור כל אחת מהסכמות החדשות נחשב כיסוי של הת"פ, כלומר אם S סמכה חדשה נחשב את (F)S נמשיך באופן רקורסיבי עם כל אחת מהסכמות הקיימות תמיד מחליפים סכמה בשתי סכמות, שבכל אחת פחות אטריביוטים האלגוריתם מסתיים כי סכמה של שני אטריביוטים תמיד מקיימת BCNF

דוגמה R=ABCD ו- F = {A → B, B → C, C → D} B → C היא הפרה של BCNF R1=BC ו- F1 = {B → C} R2=ABD ו- F2 = {A → B, B → D} הת"פ B → D מפרה את BCNF ב- R2 ולכן נפרק את R2 ל- R2=BD ו- F2 = {B → D} R3=AB ו- F3 = {A → B}

דוגמה (המשך) F = {A → B, B → C, C → D} הפירוק הסופי הוא: R1=BC ו- F1 = {B → C} R2=BD ו- F2 = {B → D} R3=AB ו- F3 = {A → B} הערה: לכל i, Fi הוא כיסוי חסר כפילויות של והחישוב שלו דורש (במקרה הכללי) זמן אקספוננציאלי איחוד ה- Fi אינו שקול ל- F המקורי, ולפיכך אין שימור של הת"פ F = {A → B, B → C, C → D}

פירוק בדרך אחרת של הדוגמה הקודמת פירוק בדרך אחרת של הדוגמה הקודמת R=ABCD ו- F = {A → B, B → C, C → D} נפרק תחילה לפי C → D (ולא לפי B → C) לכן נפרק את R לשתי סכמות: R1=CD ו- F1 = {C → D} R2=ABC ו- F2 = {A → B, B → C} הת"פ B → C מפרה את BCNF ב- R2 ולכן נפרק את R2 ל- R2=BC ו- F2 = {B → C} R3=AB ו- F3 = {A → B}

פירוק בדרך אחרת (המשך) הפירוק הסופי הוא: R1=CD ו- F1 = {C → D} R2=BC ו- F2 = {B → C} R3=AB ו- F3 = {A → B} הפעם איחוד ה- Fi שקול ל- F המקורי ולכן יש שימור של הת"פ

למה לגבי פירוק ללא אובדן תהי R סכמה עם קבוצת ת"פ F למה: פירוק של R לשתי סכמות R1 ו- R2 הנו ללא אובדן אם ורק אם מתקיים אחד משני התנאים הבאים: F ⊨ R1 ⋂ R2 → R1 או F ⊨ R1 ⋂ R2 → R2 מסקנה: פירוק לשתי סכמות לפי הפרה של BCNF הוא תמיד ללא אובדן

תכונות הפירוק ל- BCNF הפירוק שהאלגוריתם מייצר הנו בעל התכונות הבאות: הפירוק הנו ללא אובדן הפירוק אינו בהכרח משמר את הת"פ זמן הריצה של האלגוריתם הנו אקספוננציאלי בגלל חישוב בתרגיל ניתן אלגוריתם פולינומיאלי

דוגמה נתונה הסכמה ABC עם F = {AB → C, C → A} C → A היא ההפרה היחידה של BCNF, ולכן צריך לפרק לפי ת"פ זו ומקבלים: סכמה CA עם הת"פ C → A וסכמה BC ללא ת"פ מסקנה: אין שום פירוק ל- BCNF של הסכמה הנ"ל שמשמר את הת"פ

מה גרם לאי-שימור הת"פ? כשפרקנו את ABC, פיצלנו את המפתח AB של הסכמה המקורית בין שתי הסכמות החדשות A בסכמה אחת B בסכמה השניה כתוצאה מכך הת"פ AB → C הלכה לאיבוד מסקנה: אסור לפצל מפתחות

צורה נורמלית שלישית Third Normal Form (3NF) סכמה R עם קבוצת ת"פ F היא בצורה נורמלית שלישית (3NF) אם לכל X → A ∈ F+ מתקיים אחד הדברים הבאים: X → A היא טריוויאלית, כלומר A ∈ X, X הוא מפתח-על, כלומר F ⊨ X →R, או האטריביוט A שייך למפתח כלשהו של R

אלגוריתם למציאת פירוק המקיים 3NF מתחילים עם הסכמה R וקבוצת הת"פ F מוצאים כיסוי חסר כפילויות G של F מכל ת"פ X → A ∈ G מייצרים סכמה XA (שהמפתח שלה הוא X)

תכונות הפירוק שקבלנו הפירוק שהאלגוריתם מייצר הנו בעל התכונות הבאות: כל סמכה בפירוק הנה 3NF (צריך להוכיח) הפירוק משמר את הת"פ (ברור) האם הפירוק בעל תכונת הצירוף ללא אובדן?

דוגמה נתונה הסכמה ABC עם F = {A → C, B → C} R1=AC ו- F1 = {A → C} R2=BC ו- F2 = {B → C}

נבדוק האם הפירוק הוא ללא אובדן נבדוק האם הפירוק הוא ללא אובדן F = {A → C, B → C} הפירוק הוא: AC ו- BC C B A a3 b1,3 a1 a2 b2,1 הפירוק אינו מקיים את תכונת הצירוף ללא אובדן

אלגוריתם למציאת פירוק 3NF (המשך) אם בין הסכמות שקבלנו מהכיסוי חסר הכפילויות, אין אף סכמה שקבוצת האטריביוטים שלה היא מפתח-על של הסכמה המקורית, אז מוסיפים מפתח של הסכמה המקורית כסכמה נוספת של הפירוק

הדוגמה הקודמת (שנית) R1=AC ו- F1 = {A → C} R2=BC ו- F2 = {B → C} נתונה הסכמה R=ABC עם F = {A → C, B → C} F הוא כבר חסר כפילויות, לכן מקבלים: R1=AC ו- F1 = {A → C} R2=BC ו- F2 = {B → C} אף סכמה בפירוק אינה מפתח-על של ABC לכן, מוסיפים לפירוק את הסכמה AB, שהיא מפתח של הסכמה המקורית ABC R3=AB ו- F3 = ∅

דוגמה נוספת של מציאת פירוק המקיים 3NF R=ABCD ו- F = {A → B, B → C, C → D} F כיסוי חסר כפילויות, לכן נייצר את הסכמות: R1=AB ו- F1 = {A → B} R2=BC ו- F2 = {B → C} R3=CD ו- F3 = {C → D} (R1)+F=R ולכן R1 מפתח-על של R ואין צורך להוסיף אף סכמה נוספת הערה: במקרה זה הפירוק גם מקיים BCNF

Fi מציין את הת"פ שממנה נוצר Ri, אבל אינו בהכרח כיסוי של כל הת"פ המתקיימים ב- Ri עוד דוגמה נתונה הסכמה R=ABC עם F = {AB → C, C → A} נייצר את הסכמות: סכמה R1=ABC עם F1 = {AB → C} סכמה R2=AC עם F2 = {C → A} למעשה ב- R1 מתקיימת גם הת"פ C → A אבל היא לא ניתנת באופן מפורש ע"י האלגוריתם, ואין צורך לדעת זאת כדי להראות שימור הת"פ

שיפור נוסף לאלגוריתם למציאת פירוק 3NF אפשר לאחד סכמות עם אותו המפתח, קרי סכמות שהתקבלו מת"פ עם אותו צד שמאל דוגמה: R=ABC, F = {A → B, A → C} מקבלים: R1=AB ו- F1 = {A → B} R2=AC ו- F2 = {A → C} אפשר לאחד לסכמה אחת: R1=ABC ו- F1 = {A → B, A → C}

נוכיח שהפירוק המתקבל אומנם מקיים 3NF כזכור, מייצרים סכמות מכיסוי חסר כפילויות G תהי S=XA1…Anסכמה שהתקבלה מכל הת"פ מהצורה X → Ai, קרי כל הת"פ שצד שמאל שלהן הוא X צריך להוכיח שב- S אין הפרה של 3NF

הת"פ המפרה V → Ak נניח שהסכמה S=XA1…An מפרה 3NF בגלל ת"פ V → B ∈ G+ לכן B ∉ X, כי X מפתח של הסכמה ואם B ∈ X אז אין זו הפרה של 3NF לפיכך, B הוא אחד ה- Ai ונניח ש- B=Ak נסמן את הת"פ המפרה ע"י V → Ak

המשך ההוכחה: X ⊈ V V → Ak היא הת"פ המפרה 3NF X ⊈ V (אחרת V מכיל מפתח ולכן V הינו מפתח-על של הסכמה S והת"פ V → Ak איננה הפרה של 3NF ) המשך ההוכחה דן בשני מקרים: V ⊆ X V ⊈ X

מקרה 1: V ⊆ X V → Ak ∈ G+ היא הת"פ המפרה 3NF כאמור X ⊈ V ולכן V חלקית ממש ל- X X → Ak ∈ G כי לפי ההנחה יצרנו סכמה מת"פ זו נובע שהאטריביוטים של X – V הנם מיותרים בצד שמאל של הת"פ X → Ak, בסתירה לכך ש- G כיסוי חסר כפילויות

מקרה 2: V ⊈ X V → Ak ∈ G+ היא הת"פ המפרה 3NF יש גזירה של V → Ak מ- G, שחייבת להשתמש בת"פ של תת-קבוצה G1 ⊆ G ב- G1 אין אף ת"פ שצידה השמאלי הוא X (אחרת X ⊆ V+ ולכן V מפתח-על של S והת"פ V → Ak אינה הפרה של 3NF) מסקנה 1: V → Ak G1 ⊢ וגם X → Ak ∉ G1

מקרה 2: V ⊈ X (המשך) תהי G2 ⊆ G קב' כל הת"פ X → Ai עבור Ai ∈ V מ- G2 אפשר לגזור את X → V (בעזרת אקסיומת האיחוד) X → Ak ∉ G2 (אחרת Ak ∈ V ולכן V → Ak אינה הפרה של 3NF) מסקנה 2: X → V G2 ⊢ וגם X → Ak ∉ G2

מקרה 2: V ⊈ X (סיכום) מסקנה 2: X → V G2 ⊢ וגם X → Ak ∉ G2 מסקנה 1: V → Ak G1 ⊢ וגם X → Ak ∉ G1 מסקנה 2: X → V G2 ⊢ וגם X → Ak ∉ G2 לכן מ- ⋃ G2 G1אפשר לגזור אתX → Ak ולפיכך X → Ak הנה ת"פ מיותרת ב- G, בסתירה לכך ש- G חסר כפילויות בכל אחד משני המקרים, הראנו שהסכמה S=XA1…An אינה מפרה 3NF

סיום ההוכחה נשאר להוכיח שאם מוסיפים סכמה S שהיא מפתח של הסכמה המקורית R, אז S מקיימת 3NF בין האטריביוטים של מפתח של הסכמה המקורית R לא יכולות להתקיים שום ת"פ (אחרת זה לא מפתח) לכן בין האטריביוטים של מפתח אין שום הפרה של 3NF

תכונות הפירוק שהאלגוריתם מייצר הפירוק שהאלגוריתם מייצר הנו בעל התכונות הבאות: כל סמכה בפירוק הנה 3NF (הוכחנו) הפירוק משמר את הת"פ (ברור) הפירוק הנו ללא אובדן (צריך להוכיח – אפשר למצוא הוכחה בספר של אולמן) לאלגוריתם זמן ריצה פולינומיאלי