תרגול 7 עצי B+ 17.04.2017.

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
A. Frank File Organization Indexed-Sequential File Measurements Thanks to Tamar Barnes.
A. Frank File Organization Hardware Time Parameters.
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
עצים ועצי חיפוש חומר קריאה לשיעור זה Chapter 5.5– Trees (91 – 97)
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
תרגול 8 עצי B+ אינדקס משני.
A. Frank File Organization קובץ ישיר מתקדם Advanced Direct File.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
A. Frank File Organization Indexed-Sequential File Introduction Thanks to Tamar Barnes.
2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית ( חוץ מהשורש ) יש לפחות.
1 Data Structures, CS, TAU, Splay Tree Splay Tree  מימוש של עץ חיפוש בינארי  מטרה לדאוג ל- Amortized Time  פעולה בודדת יכולה לקחת O(N)  אבל כל רצף.
A. Frank File Organization Sequential File Measures.
A. Frank File Organization Pile File Measures. 2 A. Frank Steps in analysis of file organization בהערכת מבנה קובץ, נתייחס ל - 6 שלבים / צעדים : 1. תאור.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Data Structures, CS, TAU, Splay Tree 1 Splay Tree - עץ חיפוש בינארי - מטרה לדאוג ל - Amortized Time - פעולה בודדת יכולה לקחת O(N) - אבל כל רצף M פעולות.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
A. Frank File Organization Classic / Direct File קובץ ישיר קלאסי.
חישוב ואופטימיזציה של שאילתות חלק 1
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
קובץ רב-אינדקס Multi-Indexed File
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
A. Frank File Organization Introduction to Overflow Thanks to Tamar Barnes.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
A. Frank File Organization Various Parameter Issues.
2-3 trees עצי 3-2 ועצי דרגות Chapter 19: B trees (381 – 397) Chapter 15: Augmenting data structures (281 – 290) חומר קריאה לשיעור זה Lecture5 of Geiger.
A. Frank File Organization Transfer Time/Rate Parameters.
שאלה 1 נתון כביש ישר עם תחנות דלק בנקודות , בנקודת המוצא נתונה מכונית עם תא דלק שמספיק ל-100 ק"מ. מחיר מילוי תא הדלק בתחנה.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
Remember Remember The 5 th of November. תרגול 2 קובץ סדרתי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
עצים מאוזנים הגדרה: משפחת עצים תקרא מאוזנת אם ,h(T) = O(log n) באשר T הוא עץ במשפחה, n הוא מספר הצמתים ב-T ו-h(T) הוא הגובה של T עצי (Adelson-Velsky,
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
A. Frank File Organization Introduction to Pile File.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
1 - גמישות בבינאריות גמישות בעומק - עץ חיפוש בינארי: ממוצע O(log n) גרוע ביותר (O(n - היינו רוצים לשמור את העץ מאוזן תמיד Data Structures, CS, TAU
A. Frank File Organization Hardware Size Parameters.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
תרגול 3 RAID. 7/14/20152 עובדה : בעת שכלל החומרה מתקדם בצעדי ענק, התקדמות הדיסקים מבחינת זמן גישה ונפח איטית יותר. פיתרון : לעבוד עם מספר גדול של דיסקים,
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
(C) סיון טל גילוי מידע וזיהוי תבניות תרגול מס. 9 גילוי מידע וזיהוי תבניות תרגול מס. 9 דחיסת נתונים מהו קידוד תכונות של קידודים אי - שוויון קרפט.
תרגול 4 21/3/2007 מבני נתונים 07b ליאור שפירא. תזכורת – B-trees  לכל צומת x יש השדות הבאים n[x] מס ' מפתחות ב -x המפתחות עצמם בסדר לא יורד כל צומת פנימי.
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Tirgul 12 Trees 1.
Formal Specifications for Complex Systems (236368) Tutorial #1
אינדקסינג והשינג (indexing & hashing)
תירגול 14: מבני נתונים דינאמיים
הרצאה 07 עצים קרן כליף.
מבני נתונים עצים קרן כליף.
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Data Structures, CS, TAU, Splay Tree
Marina Kogan Sadetsky –
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

תרגול 7 עצי B+ 17.04.2017

17.04.2017

 מספר קבוע וקטן של רמות מהשורש לעלים. יתרונות לעומת קובץ סידרתי: עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ.  מספר קבוע וקטן של רמות מהשורש לעלים. יתרונות לעומת קובץ סידרתי: גישה אקראית יעילה (קבועה - תלוי רק בגובה העץ ודרגת הפיצול). אפשרות להוספת רשומה ללא ארגון מחדש (לא צריך כתיבה של כל הקובץ מחדש). גישה יעילה לתת תחום (ע"פ המפתח הראשי). 17.04.2017

הגדרת עץ B+ מדרגה m וקיבולת עלה B: לשורש דרגה (מספר בנים) d כך ש- שימו לב בבקשה להבדל בין העצים הללו לעצים של קורס מבני נתונים, שם היה רק פרמטר אחד! הגדרת עץ B+ מדרגה m וקיבולת עלה B: לשורש דרגה (מספר בנים) d כך ש- לצומת פנימי דרגה d כך ש- מספר רשומות b בעלה מקיים הרשומות יושבות רק בעלים, וכל העלים באותו מרחק מהשורש. לצומת פנימי עם d בנים יש d-1 מפתחות מפרידים, כך שערכיהם מפרידים בין תתי העצים של הבנים, כלומר לכל מפתח המפריד בין שני תתי-עצים מתקיים: כלומר עץ מאוזן 17.04.2017

כלומר איך נראה צומת פנימי? אם דרגת העץ עבור צמתים פנימיים (כלומר פרמט m) הוא אכן m אזי מבנה של צומת פנימי יראה וזה אומר, שאם גודל מצביע (כלומר גודל כתובת) הוא נניח a וגודל מפתח ראשי (מפתח ייחודי כך שלכל רשומה יש ערך שונה) הוא K, אזי יוצא שגודל כל הצומת הוא (m-1)k+ma וזה כי צריך לתת מצביע לכל הבנים, והפרדה בין כולם. ומה תמיד שוכחים בחישוב? גם אם הצומת לא מלא כרגע (ויש לו רק שני בנים מתוך 8 בנים אפשריים, עדיין המקום שהוא תופס בזיכרון הוא כצומת מלא, כי כל הרעיון הוא שאין צורך לשכב את כל העץ בעת הכנסה או הוצאה, אלא רק את העלה הספציפי שעבר שינוי!!!! 17.04.2017

וזה אומר, דאם גודל רשומה הוא q אז גודל של עלה בזיכרון הוא ואיך נראה עלה? אם דרגת העץ עבור עלים פנימיים (כלומר פרמט B שהוא דרגה מקסימלית עבור עלה) הוא אכן b אזי מבנה של עלה הוא וזה אומר, דאם גודל רשומה הוא q אז גודל של עלה בזיכרון הוא qb באופן דומה לשקופית קודמת – זה נכון גם אם העלה לא מלא (ועוד מעט נראה שבדרך כלל הוא אכן לא מלא...) אלא עדיין מתמלא. כל עלה הוא בגודל כזה מהרגע שהוא נוצר. טיפ: שימו לב תמיד בשאלה בכמה אחוזים מלאים העלים. אם לא כתוב, אז יש תוחלת למספר הזה. 17.04.2017

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

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

דוגמאות לפעולות על עצי B+ בדוגמה זו m=3,B=3 3 5 1 2 3 4 5 6 7 הוסף 8 השקף הזה נכון לחלוטין!!! האם כולם מבינים למה המפתח 5 עלה למעלה? כי נוצר מצב שבו 3,5,7 היו בצומת פנימי בשורש ולכן דרג השורש הייתה 4 שזה מעל המותר, ונוצר פיצול 3 1 2 3 4 5 6 7 8 7 5 17.04.2017

דוגמאות לפעולות על עצי B+ בדוגמה זו m=3,B=3 1 2 3 4 5 6 7 8 7 5 מחק 3 5 7 1 2 4 5 6 7 8 17.04.2017

דוגמאות לפעולות על עצי B+ בדוגמה זו m=3,B=3 5 7 1 2 4 5 6 7 8 מחק 5 שימו לב כי זה חשוב: כאשר 6 נשאר לבד, לא חיפשנו לצרף אותו למישהו אחר, אלא חיפשנו מי יצטרף אליו 4 7 1 2 4 6 7 8 17.04.2017

שאלה מס' 1 בעץ B+ מדרגה m=3 וקיבולת עלה B=4 מוכנסת קבוצת רשומות שמפתחותיהן הינם 1,2,3,….,60. נתון כי בתחילה העץ ריק. א. הצע סדר הכנסה לעץ שבו מספר העלים הסופי גדול ככל האפשר. ציין את מספר העלים הדרוש. 1,2,3,…60 (כלומר בסדר עולה). אז מתקבל 29 עלים, מתוכם 28 מכילים 2 רשומות כל אחד ועלה אחד (אחרון) מכיל 4 רשומות. 17.04.2017

בכל (*) יש פיצול של עלה, מתקבלים 15 עלים כל אחד מכיל 4 רשומות. ב. הצע סדר הכנסה לעץ שבו מספר העלים הסופי קטן ככל האפשר. ציין את מספר העלים הדרוש. 1,2,3,4|5,6,7,8|9,10,11,12|13,14,15,16|17,18,19,…|57,58,59,60 1,2,5,6,9*,10,13*,14,17*,18,…,53*,54,57*,58,59*,3,4,7,8,11,12,15,16,19…55,56,60 בכל (*) יש פיצול של עלה, מתקבלים 15 עלים כל אחד מכיל 4 רשומות. 17.04.2017

…… 1 2 5 6 …… 1 2 5 6 9 …… 1 2 5 6 9 10 57 58 59 53 54 ….. …… 1 2 3 4 5 6 7 8 9 10 11 12 57 58 59 60 53 54 55 56 ….. 17.04.2017

גובה מינימאלי ומקסימאלי של עץ B+: נתון עץ B+ מדרגה m וקיבולת עלה B וקובץ עם n רשומות: עץ עם גובה מינימלי ו- עלים מקיים: עץ עם גובה מקסימלי ו- עלים מקיים: 17.04.2017

עבור סדר הכנסה מסעיף א בשאלה 1 : עבור סדר הכנסה מסעיף ב בשאלה 1 : שאלה מס' 2 ביחס לעץ וקבוצת המפתחות 1,2,3,4,…,60 האם ישנם סדרי הכנסה שונים המובילים לעצים שגובהם שונה? פתרון: עבור סדר הכנסה מסעיף א בשאלה 1 : עבור סדר הכנסה מסעיף ב בשאלה 1 : כלומר, שני סדרי ההכנסה יתנו עצים בגובה שונה. 17.04.2017

הערה: תמיד קוראים וכותבים עלים שלמים, ולא חלקי עלים. חישוב זמני גישה: כדי להקטין את מספר פעולות הקריאה/כתיבה, משתדלים לשמור בזיכרון הראשי חלק גדול ככל האפשר של העץ. בדרך כלל שומרים בדיסק רק עלים ורמה אחת של צמתים פנימיים מעל העלים. חישוב זמן גישה לרשומה במקרה זה כולל קריאה אקראית של צומת פנימי וקריאה אקראית של עלה. הערה: תמיד קוראים וכותבים עלים שלמים, ולא חלקי עלים. בהנחה שאין פיצול (או איחוד) עלים, זמן עדכון/הוספה/מחיקת רשומה כולל גישה אקראית לרשומה (קריאת עלה) + זמן של סיבוב שלם, עד להשלמת כתיבת העלה המעודכן לאותו מקום במסילה (בהנחה שגודל עלה קטן מגודל מסילה). זה לא כולל את הזמן שלוקח את הזמן למצוא את הרשומה הזאת בעץ 17.04.2017

בדרך כלל נניח שבכל עלה קיים מצביע לעלה הבא. בעץ B+ יש אפשרות לקרוא תת-תחום שממוין על פי המפתח הראשי של הקובץ. במקרה זה קוראים אקראית את הרשומה הראשונה בתת התחום, ואחר כך קוראים לפי הסדר, עלה אחרי עלה, את כל הרשומות השייכות לתת התחום. בדרך כלל נניח שבכל עלה קיים מצביע לעלה הבא. זמן הקריאה של כל עלה מחושב כזמן גישה אקראי, כיוון שעלים עוקבים ע"פ סדר לא יושבים זה אחרי זה פיסית. 17.04.2017

שאלה מס' 3 נתון עץ B+, דרגה m=200. שומרים על הדיסק שתי רמות – עלים ורמה אחת מעליהם. מספר הרשומות בעץ N. גודל רשומה 200Byte. גודל צומת פנימי 4Kbyte. גודל מסילה 50Kbyte. זמן תזוזת זרוע ממוצעת . זמן סיבוב . חשב זמן קריאה אקראית של רשומה וקריאה סדרתית של כל הקובץ עבור המקרים: א. גודל עלה 4Kbyte (20 רשומות). ב. גודל עלה 50Kbyte(250 רשומות). 17.04.2017

זמן קריאת צומת פנימי או עלה: זמן קריאה אקראית – צומת פנימי + עלה: פתרון: א. זמן קריאת צומת פנימי או עלה: זמן קריאה אקראית – צומת פנימי + עלה: גישה סדרתית – קריאה של כל העלים בקובץ: מספר העלים בעץ: זמן קריאה סדרתית של הקובץ: יש כאן הנחה סמויה... מה היא? שאין עלה או צומת ששבור בין שתי מסילות. הנחה זאת ממש מקלה עלינו. 17.04.2017

שאלה מס' 3 נתון עץ B+, דרגה m=200. שומרים על הדיסק שתי רמות – עלים ורמה אחת מעליהם. מספר הרשומות בעץ N. גודל רשומה 200Byte. גודל צומת פנימי 4Kbyte. גודל מסילה 50Kbyte. זמן תזוזת זרוע ממוצעת . זמן סיבוב . חשב זמן קריאה אקראית של רשומה וקריאה סדרתית של כל הקובץ עבור המקרים: א. גודל עלה 4Kbyte (20 רשומות). ב. גודל עלה 50Kbyte(250 רשומות). 17.04.2017

זמן קריאה אקראית – צומת פנימי + עלה: פתרון: ב. זמן קריאת צומת פנימי: זמן קריאת עלה: זמן קריאה אקראית – צומת פנימי + עלה: גישה סדרתית – קריאה של כל העלים בקובץ: מספר העלים בעץ: זמן קריאה סדרתית של הקובץ: 17.04.2017

כאשר יש הרבה קריאות אקראיות, כדאי להגדיר עלים קטנים. מסקנה: כאשר יש הרבה קריאות אקראיות, כדאי להגדיר עלים קטנים. כאשר יש הרבה קריאות סדרתיות, כדאי להגדיר עלים גדולים. 17.04.2017