אביב תשס"ה236363 - DBMS, צורות נורמליות1 צורות נורמליות: 3NF,BCNF צורה נורמלית (Normal Form) היא תכונה של סכמה רלציונית, המודדת את "טיב" הסכמה מבחינת מניעת.

Slides:



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

ממיבחניםC שאלות ++.
מבוא למדעי המחשב לתעשייה וניהול
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
צורה נורמלית של גרייבך הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
Number Theory and Algebra Advisor …………… Dr. Shpilka Amir Presented by …… Cohen Gil..………
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
Inverse kinematics (Craig ch.4) ב"ה. Pieper’s solution נתבונן ברובוט עם 6 מפרקי סיבוב כאשר שלושת הצירים של המפרקים האחרונים נחתכים. נקודת החיתוך נתונה.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
אתר הקורס: צוות הקורס: מרצה: אלדר פישר, טאוב
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
Tutorial #7 Preventing combinatorial loops – © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
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. מספר הטעיות קטן.
מרצה: פרופסור דורון פלד
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 10.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
תחשיב הפסוקים חלק ג'. צורות נורמליות א. DF – Disjunctive Form – סכום של מכפלות. דוגמא: (P  ~Q  R)  (R  P)  (R  ~Q  ~P) הגדרה: נוסחה השקולה לנוסחה.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
1 צורה נורמלית למסמכי XML A Normal Form for XML Documents. Arenas & Libkin - PODS 02’ An Information-Theoretic Approach to Normal Forms for Relational.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
5. תלויות פונקציונליות שקפים: אלדר פישר
Tutorial #7 Preventing combinatorial loops – © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
הקיבול איננו תלוי במטען ובפוטנציאל
שאלה 1 נתון כביש ישר עם תחנות דלק בנקודות , בנקודת המוצא נתונה מכונית עם תא דלק שמספיק ל-100 ק"מ. מחיר מילוי תא הדלק בתחנה.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (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.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
– © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT Tutorial #7 Preventing combinatorial loops.
תחשיב היחסים (הפרדיקטים)
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
מתמטיקה בדידה תרגול 2.
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5
(C) סיון טל גילוי מידע וזיהוי תבניות תרגול מס. 9 גילוי מידע וזיהוי תבניות תרגול מס. 9 דחיסת נתונים מהו קידוד תכונות של קידודים אי - שוויון קרפט.
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Population genetics גנים באוכלוסיות a population is a localized group of individuals belonging to the same species.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Formal Specifications for Complex Systems (236368) Tutorial #1
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
השוואת נתונים למודל הסתברותי - כללית
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Marina Kogan Sadetsky –
בחירת חומר גלם כתב: עמרי שרון.
תיכון בסיס-נתונים יחסי
NG Interpolation: Divided Differences
Engineering Programming A
Presentation transcript:

אביב תשס"ה DBMS, צורות נורמליות1 צורות נורמליות: 3NF,BCNF צורה נורמלית (Normal Form) היא תכונה של סכמה רלציונית, המודדת את "טיב" הסכמה מבחינת מניעת כפילויות. נלמד על שתי צורות נורמליות שונות: 3NF, BCNF.

אביב תשס"ה DBMS, צורות נורמליות2 צורה נורמלית – BCNF Boyce-Codd Normal Form מוטיבציה: תלות פונקציונלית במשהו שאיננו על-מפתח היא "דבר רע“. הגדרה: תהי R סכמה רלציונית, ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב-BCNF בהינתן F אם לכל תלות פונקציונלית לא טריוויאלית כך ש- X  Y  F +, X הוא על-מפתח של R. אם קיימת תלות לא טריוויאלית בקבוצת שדות שאיננה על-מפתח, תכנון הסכמות הרלציוניות הוא לקוי, ובמסד הנתונים עלולות להיווצר כפילויות.

אביב תשס"ה DBMS, צורות נורמליות3 BCNF – המשך דוגמה: נתונה קבוצת התלויות הפונקציונליות: {עיר  (טלפון, קידומת),קידומת  עיר} = F. הסכמה (עיר, קידומת, טלפון)R איננה ב-BCNF: הסבר: הסגור F + כולל את התלות הלא טריוויאלית קידומת  עיר, אבל עיר איננה על-מפתח. כפילויות במסד: למשל, הקידומת של חיפה (04) נשמרת במסד פעמים רבות, כמספר הטלפונים בחיפה. פירוק ל-BCNF: אם סכמה רלציונית אינה נמצאת בצורה הנורמלית הרצויה (למשל BCNF), אפשר לפרק אותה לתתי סכמות שנמצאות בצורה נורמלית זו.

אביב תשס"ה DBMS, צורות נורמליות4 פרוק ל-BCNF הגדרה: תהי R סכמה רלציונית, תהי F קבוצת תלויות פונקציונליות מעל R, ויהי  = {R 1,…, R n } פרוק של R.  הוא פרוק ל-BCNF אם כל תת-סכמה R i היא ב- BCNF בהינתן  R i F. הערה: באופן דומה ניתן להגדיר פרוק לכל צורה נורמלית אחרת, למשל 3NF. משפט: תמיד קיים פרוק ל-BCNF שמשמר מידע, אך לא תמיד קיים פרוק ל-BCNF שמשמר תלויות.

אביב תשס"ה DBMS, צורות נורמליות5 פירוק ל-BCNF – המשך דוגמה: נתונה הסכמה (עיר, קידומת, טלפון)R וקבוצת התלויות הפונקציונליות: {עיר  (טלפון,קידומת), קידומת  עיר}=F. הפרוק {(עיר, קידומת)R 2,(עיר, טלפון)R 1 } =  הוא פרוק ל-BCNF. פרוק זה משמר מידע, אך כפי שראינו הוא איננו משמר תלויות. שימו לב: כל סכמה שיש בה שני אטריביוטים או פחות היא ב-BCNF, באופן טריוויאלי (למה?)

אביב תשס"ה DBMS, צורות נורמליות6 פירוק ל-BCNF – הערה(1) יש לשים לב כי בפירוק של סכמה רלאציונית R אנחנו בודקים אם הפרוק הוא ב-BCNF ע"י כך שבודקים שכל תת-סכמה R i היא ב-BCNF מעל  R i F (ההיטל מחושב מעל F + ). לא מספיק לבדוק האם R i מקיימת את תנאי ה- BCNF מעל קבוצת התלויות ב-F שמכילות תכונות ב-R i.

אביב תשס"ה DBMS, צורות נורמליות7 פירוק ל-BCNF – הערה(2) דוגמא: R=(A,B,C,D),  C, C  D} F={B,  = {(A,B,D), (B,C)} טענה: הפירוק איננו ב-BCNF. הסבר : R 1 ∉ BCNF כי D ∈  R 1 F  B אולם B איננו על - מפתח של R 1 אולם : אם היינו בודקים את R 1 מעל קבוצת התלויות ב -F שמכילות תכונות ב-R 1 ( אשר שווה לקבוצה ריקה ), אזי היינו מקבלים כי R 1 ∈ BCNF ( ההגדרה מתקיימת באופן ריק ). ההערה רלוונטית לכל צורה נורמאלית.

אביב תשס"ה DBMS, צורות נורמליות8 BCNF לעומת שימור תלויות לעתים קרובות יש לבחור בין שימור תלויות לבין BCNF. קריטריון לבחירה: אופן השימוש הצפוי במסד הנתונים: הרבה עדכונים של שדה עם כפילויות בסכימה המקורית (החלפת קידומת של עיר ) ⇐ פירוק ל-BCNF (מונע כפילויות): (עיר, קידומת)R2,(עיר, טלפון)R1. הרבה הוספות/עדכונים של שדה המופיע בצד שמאל של תלות שלא נשמרת בפירוק (מס' טלפון) ⇐ ללא פירוק (שימור תלויות): (עיר, קידומת, טלפון)R

אביב תשס"ה DBMS, צורות נורמליות9 אלגוריתם לפרוק סכמה R ל-BCNF תהי F קבוצת תלויות פונקציונליות: 1. חשב את F {R}  . 3. אם כל הסכמות ב-  הן ב-BCNF – עצור. 4. מצא סכמה S   שאינה ב-BCNF, כלומר שקיימת תלות פונקציונלית X  Y ב- F + כך ש-XY  S, Y  X ו- X אינו על-מפתח של S. בצע:   (  \ {S})  {S\(Y\X)}  {XY} 5. חזור ל-3. הפרוק שאלגוריתם זה מוצא הוא משמר מידע, אך לא בהכרח משמר תלויות.

אביב תשס"ה DBMS, צורות נורמליות10 פירוק ל-BCNF – דוגמה דוגמה: נתונה הסכמה R עבור מסד נתונים של בית חולים: R(dname, daddr, id, pname, paddr, pres_no, date, med_name, qnt) dname – שם של רופא (נניח שאין שני שני רופאים עם אותו שם) daddr – כתובת הרופא id – מס' זיהוי של חולה pname – שם החולה paddr – כתובת החולה pres_on – מס' מרשם date – תאריך מתן המרשם med_name – שם של תרופה המופיעה במרשם (באותו מרשם יכולות להופיע כמה תרופות שונות) qnt – כמות התרופה במרשם. נתונות התלויות הבאות: F= {dname  daddr, id  )pname,paddr,dname), pres_no  (date,id), (pres_no,med_name)  qnt}

אביב תשס"ה DBMS, צורות נורמליות11 דוגמה - המשך R איננה ב-BCNF, ולכן נפעיל את האלגוריתם: F= {dname  daddr, id  (pname,paddr,dname), pres_no  (date,id), (pres_no,med_name)  qnt} R(dname, daddr, id, pname, paddr, pres_no, date, med_name, qnt) (dname, id, pname, paddr, pres_no, date, med_name, qnt)(dname, daddr) (id, pname) (dname, id, paddr, pres_no, date, med_name, qnt) (dname, id, pres_no, date, med_name, qnt) (id, paddr) dname  daddr id  pname id  paddr

אביב תשס"ה DBMS, צורות נורמליות12 דוגמה - המשך (dname, id, pres_no, date, med_name, qnt) (id, pres_no, date, med_name, qnt)(dname, id) (pres_no, med_name, qnt)(pres_no, date, id) id  dname pres_no  date, id הפירוק של R (ל-BCNF, משמר מידע) הוא:  = {R 1 (dname,daddr), R 2 (id,pname), R 3 (id,paddr), R 4 (id,dname), R 5 (id,date,pres_no), R 6 (pres_no,med_name,qnt)}

אביב תשס"ה DBMS, צורות נורמליות13 צורה נורמלית שלישית - 3NF הגדרה: תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב-3NF בהינתן F אם לכל תלות פונקציונלית X  A (לא טריוויאלית) ב- F +, או ש-X הוא על-מפתח של R או ש-A שייך למפתח קביל של R. פרוק ל-3NF מוגדר באופן דומה לפרוק ל-BCNF. צורה נורמלית שלישית היא דרישה חלשה יותר מ-BCNF: כל סכמה שנמצאת ב-BCNF היא אוטומטית גם ב-3NF, אך ההפך אינו בהכרח נכון.

אביב תשס"ה DBMS, צורות נורמליות14 דוגמה הסכמה (עיר, קידומת, טלפון) R איננה ב-BCNF בהינתן התלויות הפונקציונליות: F = {עיר  קידומת, (קידומת, טלפון)  עיר} אבל היא ב-3NF: המפתחות הקבילים של הסכמה הם (עיר, טלפון) ו- (קידומת,טלפון).

אביב תשס"ה DBMS, צורות נורמליות15 3NF - המשך BCNF מונעת יותר כפילויות בלתי רצויות מאשר 3NF. לא תמיד קיים פרוק משמר תלויות ל- BCNF, וגם אם קיים פרוק כזה, אין דרך קלה למצוא אותו. לעומת זאת, תמיד קיים פרוק ל-3NF שהוא משמר מידע ותלויות. יש אלגוריתם שמוצא פרוק משמר מידע ותלויות ל-3NF, אך כדי להשתמש בו יש להגדיר תחילה כיסוי מינימלי.

אביב תשס"ה DBMS, צורות נורמליות16 כיסוי מינימלי בקבוצת תלויות פונקציונליות עלול להיות "מידע מיותר". דוגמה: שתי הקבוצות F = {X  Y ⋃ Z}, G = {X  Y, X  Z} הן "שקולות", במובן ש- F + = G +. מטרה: להביא את כל הקבוצות השקולות של תלויות פונקציונליות לצורה אחידה. צורה זו נקראת הכיסוי המינימלי (minimal cover) של קבוצות התלויות.

אביב תשס"ה DBMS, צורות נורמליות17 כיסוי מינימלי - הגדרה הגדרה: תהי F קבוצת תלויות פונקציונליות. F היא מינימלית אם לכל תלות X  Y  F מתקיימות שלש הדרישות הבאות: 1. |Y| = 1 2. F +  (F \ {X  Y}) + – אין ב-F תלויות "מיותרות". 3. לכל Z  X מתקיים F +  (F \ {X  Y}  {Z  Y}) + – אין ב-F תלות A  X שבה X מכילה תכונות "מיותרות".

אביב תשס"ה DBMS, צורות נורמליות18 כיסוי מינימלי - המשך במקום לחשב את F + כדי לבדוק אם קבוצת תלויות F היא מינימלית, אפשר לבצע את הבדיקות הבאות: עבור תנאי 2: נבדוק ש- F’  X  Y (כאשר F’ = F\ {X  Y} ), או באופן שקול ש- Y  X + F’. עבור תנאי 3: נבדוק ש- F  (X \ B)  Y, או באופן שקול ש- Y  (X \ B) + F הגדרה: תהי F קבוצת תלויות פונקציונליות. כיסוי מינימלי (minimal cover) של F הוא קבוצת תלויות פונקציונליות F C כך ש-F C מינימלית ו- F + = F C +. הכיסוי המינימלי אינו בהכרח יחיד.

אביב תשס"ה DBMS, צורות נורמליות19 אלגוריתם למציאת כיסוי מינימלי תהי F קבוצת תלויות פונקציונליות: G  {(X  A) |  Y ((X  Y)  F  A  Y)}; Repeat 1. For each f = X  A  G do if A  X + G’ where G’ = G\ {f} then G  G’; 2. For each f = X  A  G and B  X do if A  (X\{B}) + G then G  G \ {X  A}  {X\{B}  A} ; until no more changes to G

אביב תשס"ה DBMS, צורות נורמליות20 מציאת כיסוי מינימלי - דוגמה נתון R(A,B,C,D), F={A  B, BC  A, ABC  D, D  A} יש למצוא את הכיסוי המינימאלי של F. בצעד ראשון נקבל G=F. נפעיל שלב 1 – אין שינוי נפעיל שלב 2 – נוריד A מ-  D ABC, מכיוון ש- D  ({A,B,C}\{A}) + G. קיבלנו: G={A  B, BC  A, BC  D, D  A} נפעיל שלב 1 – נוריד את התלות BC  A, מכיוון ש- A  BC + G’ (G’ = G\ {BC  A} ). קיבלנו: G={A  B, BC  D, D  A} אין יותר שינויים, ולכן G הנ"ל הוא כיסוי מינימאלי של F.

אביב תשס"ה DBMS, צורות נורמליות21 אלגוריתם לפרוק סכמה R ל-3NF בהינתן קבוצה מינימלית של תלויות פונקציונליות F: 1. אם קיימת ב-F תלות פונקציונלית שכוללת את כל התכונות ב-R, התשובה היא {R} - עצור. 2. לכל קבוצת תלויות פונקציונליות X  A n X  A 2,…, X  A 1, התלויות באותו X, צור סכמה } X  { A 1 A 2...A n. 3. אם אין אף סכמה המכילה מפתח קביל של R, הוסף סכמה שהיא מפתח קביל כלשהו של R. הפרוק שאלגוריתם זה מוצא הוא משמר מידע ותלויות.

אביב תשס"ה DBMS, צורות נורמליות22 פירוק ל-3NF – דוגמה דוגמה : נתון: R(dname, daddr, id, pname, paddr, pres_no, date, med_name, qnt) F = { dname  daddr, id  pname, id  paddr, id  dname, pres_no  date, pres_no  id, (pres_no, med_name)  qnt} 1. לא קיימת ב-F תלות פונקציונלית המכילה את כל התכונות ב-R. 2. ניצור סכמות לפי התלויות הפונקציונליות: R 1 (dname, daddr) R 2 (id, pname, paddr, dname) R 3 (pres_no, date, id) R 4 (pres_no, med_name, qnt) 3. R4 כוללת את המפתח הקביל (pres_no, med_name), ולכן אין צורך להוסיף עוד סכמה.