אביב-תשס"ה236363- DBMS, Design1 פרוקים של רלציות מוטיבציה: פרוק סכמה לסכמות יותר קטנות על מנת למנוע כפילויות. הגדרה: תהי R סכמה רלציונית. פרוק של R הוא.

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.
אקסס מבוא למערכות מידע.
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
היום נדבר אל נושא אחד בתורת הגרפים. ובהמשך נשתמש בכלים אלו לפתרון כמה בעיות גאומטריות ובפרט להוכחת Szemeredi Trotter theorem.
Robust Characterization of Polynomials 1 Robust Characterization of polynomials “IT DOES NOT MAKE SENCE!” מרצים : אורי גרסטן יניב עזריה Ronitt Rubinfeld.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
משטר סטטי שערים לוגיים Wired Drives – © Dima Elenbogen 2009, Moshe Malka :29.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
אביב-תשס"ה DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות כאל קבוצות של רשומות (ללא חזרות וללא.
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) הגדרה: נוסחה השקולה לנוסחה.
אביב תשס"ה DBMS, צורות נורמליות1 צורות נורמליות: 3NF,BCNF צורה נורמלית (Normal Form) היא תכונה של סכמה רלציונית, המודדת את "טיב" הסכמה מבחינת מניעת.
DBMS , שפות שאילתה: SQL (ב')
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
5. תלויות פונקציונליות שקפים: אלדר פישר
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
1 מפרטים פורמאליים תרגול מספר 1 מהות הקורס:כח ביטוי. בעיות מעשיות (ולא הוכחות) מתרגל אחראי:שחר דג מתרגלת:אמיליה כץ אתר:
הקיבול איננו תלוי במטען ובפוטנציאל
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
צורה נורמלית – BCNF Boyce-Codd Normal Form
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
4 July 2007 נרמול מסד הנתונים כאשר מסד הנתונים עובר את שלב התכנון הראשוני יכולים להיווצר מספר בעיות בתכנון הנובעות מיתירות: אחת הבעיות הנפוצות ביותר במסדי.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תחשיב היחסים (הפרדיקטים)
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5
(C) סיון טל גילוי מידע וזיהוי תבניות תרגול מס. 9 גילוי מידע וזיהוי תבניות תרגול מס. 9 דחיסת נתונים מהו קידוד תכונות של קידודים אי - שוויון קרפט.
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
Presentation by Gil Perry Supervised by Amos Fiat 1.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
2003B Q5 Suppliers(sid, sname, city) Select sid from suppliers where city=‘jerusalem’ or sname like ‘%Smith’ Select sid from suppliers where city=‘jerusalem’
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
. Sequence Alignment Tutorial #3 © Ydo Wexler & Dan Geiger.
Tirgul 12 Trees 1.
Formal Specifications for Complex Systems (236368) Tutorial #1
סמן נכון/לא נכון: יכולים להיות 2 חתולים (type)עם אותו שם (name)
מבוא למדעי המחשב סיבוכיות.
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
עבודה עם נתונים באמצעות ADO.NET
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
נרמול מסד הנתונים אביב July 2007
Marina Kogan Sadetsky –
תרגול 11 NP complete.
תיכון בסיס-נתונים יחסי
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

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

אביב-תשס"ה DBMS, Design2 שימור מידע ושימור תלויות שימור מידע: אינטואיציה: נדרוש שהפרוק לא יאבד אינפורמציה, ונוכל לקבל בחזרה בדיוק את המידע שהיה לנו בטבלה המקורית ע"י צרוף תת-הטבלאות. אם הפרוק אינו משמר מידע, בדרך-כלל הצירוף ייתן רשומות מיותרות, שלא היו בטבלה המקורית. שימור תלויות: אינטואיציה: כאשר מעדכנים את מסד הנתונים, אם מוודאים שכל תת-טבלה בפני עצמה נשארת עקבית, אז מובטח שגם המסד כולו הוא עקבי (כלומר אינו מפר את התלויות הפונקציונליות).

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

אביב-תשס"ה DBMS, Design4 שימור מידע הגדרה: תהי R סכימה רלציונית, ותהי F קבוצת תלויות פונקציונלית, ויהי  = {R 1, …,R n } פרוק של R.  הוא משמר מידע בהינתן F אם לכל רלציה r מעל R המקיימת r  F מתקיים : ⋈ i n = 1  R i (r) = r דוגמה: R(ID, NAME, ADDR), F = {ID  NAME, ID  ADDR} הפרוק  = {R 1 (ID, NAME), R 2 (NAME, ADDR)} אינו משמר מידע. נראה תוכן של R שמפר את התנאי של שימור מידע:

אביב-תשס"ה DBMS, Design5 דוגמה – המשך לעומת זאת, הפירוק  ’ = {R 1 ’ (ID, NAME), R 2 ’ (ID, ADDR)} משמר מידע :  R 1 ’ (r) ⋈  R 2 ’ (r) = r ADDRNAMEID ת"אראובן1 חיפהראובן2 ADDRNAME ת"אראובן חיפהראובן NAMEID ראובן1 2 ADDRNAMEID ת"אראובן1 חיפהראובן1 ת"אראובן2 חיפהראובן2 r =  R 1 (r)  R 2 (r)  R 1 (r) ⋈  R 2 (r)

אביב-תשס"ה DBMS, Design6 שימור מידע בפירוק לשתי סכמות משפט: פירוק לשתי סכמות  = {R 1, R 2 } הוא משמר מידע אם ורק אם F  (R 1  R 2 )  (R 1 \ R 2 ) או F  (R 1  R 2 )  (R 2 \ R 1 ) בדוגמה האחרונה (עבור סכמה R(ID, NAME, ADDR)): הפירוק  = {R 1 (ID, NAME), R 2 (NAME, ADDR)} לא מקיים NAME  ID, וגם לא NAME  ADDR, ולכן אינו משמר מידע. לעומת זאת, הפירוק  = {R 1 (ID, NAME), R 2 (ID, ADDR)} כן מקיים (למשל) ID  NAME, ולכן לפי המשפט, כן משמר מידע.

אביב-תשס"ה DBMS, Design7 פרוק ליותר משתי תתי-סכמות פרוק של סכמה למספר תתי-סכמות הוא משמר מידע אם הוא מתבצע בשלבים, כאשר בכל שלב מתפרקת סכמה אחת לשתיים בפרוק משמר מידע: בהינתן סכמה R ותלות פונקציונלית X  Y, נוכל לפרק את R לשתי תתי-סכמות: {R 1 [XY],R 2 [R\(Y\X)]}. לפי המשפט, מובטח שהפירוק משמר מידע. נחזור על הצעד הנ"ל מספר פעמים כרצוננו, ונקבל בסוף פרוק למספר תתי-סכמות שהוא משמר מידע.

אביב-תשס"ה DBMS, Design8 דוגמה דוגמה: נתונה הסכמה R (ציונים של סטודנטים), וקבוצת תלויות F: R(snumber, sname, cnumber, cname, grade) F = {snumber  sname, cnumber  cname, (snumber, cnumber)  grade} Snumber -- מס' סטודנט Sname -- שם סטודנט Cnumber -- מס' קורס Cname -- שם קורס Grade -- ציון מטרה: לפרק את R למספר סכמות, כך שהפירוק יהיה משמר מידע.

אביב-תשס"ה DBMS, Design9 דוגמה - המשך R(snumber, sname, cnumber, cname, grade) R 2 (snumber, cnumber, cname, grade) R 4 (cnumber, cname)R 3 (snumber, cnumber, grade) R 1 (snumber, sname) snumber  sname cnumber  cname פירוק בשלבים: F = {snumber  sname, cnumber  cname, (snumber, cnumber)  grade} לפי הבנייה, הפירוק ל- {R 1,R 3,R 4 } הוא משמר מידע.

אביב-תשס"ה DBMS, Design10 פרוק משמר מידע - המשך אלגוריתם כללי לבדיקת שימור מידע בפירוק נתון (מס' תתי-סכמות כלשהו): 1. צור רלציה r מעל הסכמה R. לכל תת-סכמה R i נקצה ברלציה r שורה אחת t i t i מקבלת את הערך a לכל עמודה A  R i ואת הערך b i לכל עמודה B  R i. 2. כל עוד אין ב-r שורה שכולה ללא אינדקסים, ויש ב-r שתי שורות t i, t j כך ש- t i [X]=t j [X] עבור תלות פונקציונלית כלשהי (X  Y)  F, השווה את הערכים ב-t j [Y] וב-t i [Y], באופן הבא: לכל עמודה A  Y, אם אחד משני הערכים t i [A], t j [A] הוא a (ללא אינדקס), החלף את הערך האחר ב-a, ואחרת החלף את t j [A] ב-t i [A] או את t i [A] ב-t j [A], כרצונך. 3. הפרוק משמר מידע אם ורק אם בסוף הריצה יש ב-r שורה שהיא כולה ערכים ללא אינדקסים.

אביב-תשס"ה DBMS, Design11 דוגמה דוגמה: נתונה הסכמה R(A, B, C, D, E, F) וקבוצת תלויות F = {A  B, C  D, B  EF}. האם הפירוק  = {R 1 (A, B), R 2 (A, C, D), R 3 (B, E, F)} הוא משמר מידע? פתרון: נבנה את הרלציה r: FEDCBA f1f1 e1e1 d1d1 c1c1 ba f2f2 e2e2 dcb2b2 a fed3d3 c3c3 ba3a3 t1t1 t2t2 t3t3

אביב-תשס"ה DBMS, Design12 דוגמה - המשך קיבלנו t 2 ללא אינדקסים, ולכן הפרוק משמר מידע. FEDCBA f1f1 e1e1 d1d1 c1c1 ba f2f2 e2e2 dcb2b2 a fed3d3 c3c3 ba3a3 t1t1 t2t2 t3t3 A  B (t 1,t 2 ) B  EF (t 3,t 2 ) FEDCBA f1f1 e1e1 d1d1 c1c1 ba f2f2 e2e2 dcba fed3d3 c3c3 ba3a3 t1t1 t2t2 t3t3 FEDCBA f1f1 e1e1 d1d1 c1c1 ba fedcba fed3d3 c3c3 ba3a3 t1t1 t2t2 t3t3 1 2

אביב-תשס"ה DBMS, Design13 דוגמה נוספת דוגמה: נתון R(A,B,C,D,E), F = {A  B, B  C, C  D, DE  BC}. האם הפירוק  = {R 1 (A,D), R 2 (A,E), R 3 (B,C,D,E)} הוא משמר מידע? EDCBA e1e1 dc1c1 b1b1 a ed2d2 c2c2 b2b2 a edcba3a3 t1t1 t2t2 t3t3 EDCBA e1e1 dc1c1 b1b1 a ed2d2 c1c1 b1b1 a edcba3a3 t1t1 t2t2 t3t3 EDCBA e1e1 dc1c1 b1b1 a ed2d2 c2c2 b1b1 a edcba3a3 t1t1 t2t2 t3t3 A  B t 1,t 2 B  C t 1,t 2 EDCBA e1e1 dc1c1 b1b1 a edc1c1 b1b1 a edcba3a3 t1t1 t2t2 t3t3 C  D t 1,t 2 EDCBA e1e1 dc1c1 b1b1 a edcba edcba3a3 t1t1 t2t2 t3t3 DE  BC t 3,t 2 מסקנה : הפירוק משמר מידע.

אביב-תשס"ה DBMS, Design14 שימור תלויות אינטואיציה: כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה: כאשר מעדכנים את אחת מתתי-הרלציות באופן חוקי, גם העדכון על מסד הנתונים כולו (ה- join בין תת- הרלציות) הוא חוקי. אם אין שימור תלויות אז כאשר נעדכן טבלה אחת, נצטרך לבדוק מול הטבלאות האחרות כדי לוודא שהעדכון חוקי.

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

אביב-תשס"ה DBMS, Design16 דוגמה - המשך הפרוק אינו משמר תלויות, כי: כל אחת מהרלציות r 1, r 2 מקיימת את F. עירטלפון חיפה1234 טבעון1234 עירקדומת חיפה04 טבעון04 r1=r1=r2=r2=

אביב-תשס"ה DBMS, Design17 דוגמה - המשך אבל ה-join אינו מקיים את F : כאשר נרצה להוסיף או לשנות מספר טלפון ב- r 1 נצטרך לבדוק גם ב- r 2 כדי לוודא שהשינוי הוא חוקי. לא די שבאותה עיר לא יהיו שני טלפונים זהים - אסור שיהיו טלפונים זהים גם בערים שונות באותו אזור חיוג. עירקדומתטלפון חיפה טבעון041234

אביב-תשס"ה DBMS, Design18 שימור תלויות – המשך אינטואיטיבית: תלות פונקציונלית f נשמרת בפרוק אם קיימת תת-סכמה שמכילה את כל האטריביוטים המופיעים ב- f, או אם ניתן להסיק את f מתוך תלויות אחרות שנשמרות בפרוק. הגדרה: תהי R סכמה רלציונית, תהי F קבוצת תלויות פונקציונליות מעל R, ותהי S  R. ההיטל של F על תת-הסכמה S (סימון :  s F) הוא:  s F = {X  Y | X  Y  F +  X  Y  S} יש לשים לב לכך שהתלויות בהיטל נלקחות מתוך F + ולא רק F.

אביב-תשס"ה DBMS, Design19 שימור תלויות – המשך הגדרה: תהי R סכמה רלציונית, תהי F קבוצת תלויות פונקציונליות מעל R, ויהי  = {R 1,…,R n }.  הוא משמר תלויות (dependency preserving) בהינתן F אם לכל קבוצת רלציות {r 1,…,r n } (מעל הסכמות {R 1,…,R n } בהתאמה) כך ש-r i   Ri F לכל i = 1,…,n מתקיים ⋈ n i=1 r i  F.

אביב-תשס"ה DBMS, Design20 אלגוריתם לבדיקת שימור תלויות בהינתן סכמה R, קבוצת תלויות פונקציונליות F ופרוק  = {R 1, …,R n }, האלגוריתם הבא בודק האם  משמר תלויות: For each f = ( X  Y) in F do begin Z f  X Repeat For i = 1 to n do Z f  Z f  ((Z f  R i ) + F  R i ) Until no more changes to Z f End  is dependency-preserving iff Y  Z f for each f in F. אינטואיציה: לכל תלות X  Y, נבנה מעין "סגור" של X, באמצעות תלויות שכבר הראינו שהן נשמרות בפירוק, ונבדוק האם Y מוכל בו.

אביב-תשס"ה DBMS, Design21 אלגוריתם לבדיקת שימור תלויות – דוגמה בפרוק {(עיר, קדומת) R 2, (עיר, טלפון){R 1 = , התלות עיר  (טלפון, קדומת) = f אינה נשמרת: {טלפון, קדומת} = Z f דוגמה: נתונה הסכמה R(A, B, C, D), קבוצת תלויות F = {A  B, AC  D, BC  D}. האם הפירוק  = {R 1 (A, B), R 2 (B, C, D)} משמר תלויות? נבדוק לכל תלות האם היא נשמרת בפירוק. התלות A  B נשמרת כי AB  R 1, התלות BC  D נשמרות כי BCD  R 2 נותר לוודא שהתלות AC  D נשמרת (לפי האלגוריתם): R 1,A  B {AC} {ABC} R 2, BC  D {ABCD}  {D}