תרגול 8 עצי B+ אינדקס משני.

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.
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.
1 חישוב של אופרטורים רלציוניים Evaluation of Relational Operators.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
עצים ועצי חיפוש חומר קריאה לשיעור זה Chapter 5.5– Trees (91 – 97)
A. Frank File Organization קובץ ישיר מתקדם Advanced Direct File.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
Na+ P-. הפוטנציאל האלקטרוכימי אנרגיה חופשית ל - 1 mole חומר. מרכיב חשמלי מרכיב כימי מרכיבי הפוטנציאל האלקטרוכימי של חומר X: המרכיב הכימי : RTlnC x R –
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
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)  אבל כל רצף.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
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. תאור.
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.
תרגול 9 אלגברה רלציונית.
תרגול 7 עצי B
2-3 trees עצי 3-2 ועצי דרגות Chapter 19: B trees (381 – 397) Chapter 15: Augmenting data structures (281 – 290) חומר קריאה לשיעור זה Lecture5 of Geiger.
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 רגיל - דינאמי) * רוצים זמן קבוע.
עצים מאוזנים הגדרה: משפחת עצים תקרא מאוזנת אם ,h(T) = O(log n) באשר T הוא עץ במשפחה, n הוא מספר הצמתים ב-T ו-h(T) הוא הגובה של T עצי (Adelson-Velsky,
עקרון ההכלה וההדחה.
1 חישוב ואופטימיזציה של שאילתות חלק 1 Query Evaluation and Optimization Part 1.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
1 חישוב של אופרטורים רלציוניים Evaluation of Relational Operators.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
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)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
תרגול 3 RAID. 7/14/20152 עובדה : בעת שכלל החומרה מתקדם בצעדי ענק, התקדמות הדיסקים מבחינת זמן גישה ונפח איטית יותר. פיתרון : לעבוד עם מספר גדול של דיסקים,
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
(C) סיון טל גילוי מידע וזיהוי תבניות תרגול מס. 9 גילוי מידע וזיהוי תבניות תרגול מס. 9 דחיסת נתונים מהו קידוד תכונות של קידודים אי - שוויון קרפט.
1 Formal Specifications for Complex Systems (236368) Tutorial #3 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book)
(C) Yohai Devir January מבנה מחשבים ספרתיים זכרון וירטואלי מבוסס על תרגול של מורן גביש.
תרגול 4 21/3/2007 מבני נתונים 07b ליאור שפירא. תזכורת – B-trees  לכל צומת x יש השדות הבאים n[x] מס ' מפתחות ב -x המפתחות עצמם בסדר לא יורד כל צומת פנימי.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
מבוא למדעי המחשב סיבוכיות.
אינדקסינג והשינג (indexing & hashing)
תירגול 14: מבני נתונים דינאמיים
הרצאה 07 עצים קרן כליף.
עבודה עם נתונים באמצעות ADO.NET
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
Marina Kogan Sadetsky –
Computer Architecture and Assembly Language
Presentation transcript:

תרגול 8 עצי B+ אינדקס משני

נתון עץ B+ מדרגה 125. העץ מכיל 4,000,000 רשומות. שאלה 1 נתון עץ B+ מדרגה 125. העץ מכיל 4,000,000 רשומות. קיבולת עלה מכסימלית היא 5 רשומות. תפוסת כל צומת בעץ היא 80% בדיוק. בזיכרון הראשי יש מקום לאחסון 10,101 צמתים פנימיים. עדיפות האחסון בזיכרון הראשי הנה ע"פ הרמה בעץ, לשורש העדיפות הגבוהה ביותר. כלומר B=5, m=125 בכל צומת יש 100 בנים ובכל עלה יש 4 רשומות. 16.04.2017

א. מה מספר גישות הדיסק שיידרשו לצורך שליפת רשומה? צריך לחשב איזה חלק מהעץ נמצא בדיסק. כיוון שהתפוסה היא 80%, לכל צומת פנימי יש 100 בנים ובכל עלה 4 רשומות. יש 1,000,000 עלים. מעליהם 10,000 צמתים פנימיים, שמעליהם 100 צמתים פנימיים שמעליהם השורש. לכן כל הצמתים הפנימיים נשמרים בזיכרון. לכן דרושה גישה אחת לדיסק לצורך שליפת רשומה. 16.04.2017

כדי לקרוא 9 רשומות עוקבות צריך לקרוא 3 עלים. ב. בהנחה שבזיכרון מצוי השורש והרמה שמתחתיו בלבד, חשב כמה גישות דיסק יידרשו לצורך ביצוע פעולת תת-תחום הכוללת קריאה של 9 רשומות עוקבות מהקובץ הנ"ל. כדי לקרוא 9 רשומות עוקבות צריך לקרוא 3 עלים. כדי לחשב את מספר הגישות, נתייחס לשני מקרים: 1. יש מצביעים ברמת העלים – 4 גישות. גישה אחת לצומת פנימית ו- 3 גישות לעלים. האם זה נכון בכל מצב? כן. במקרה זה. אבל אם היינו נדרשים לקרוא 8 רשומות אזיי היה סיכוי מסוים שהם פרושים על 3 עלים וסיכוי מסוים לפרישה על 2 עלים. היינו מחשבים תוחלת צומת פנימית 1 2 3 16.04.2017

כדי לקרוא 9 רשומות עוקבות צריך לקרוא 3 עלים. ב. בהנחה שבזיכרון מצוי השורש והרמה שמתחתיו בלבד, חשב כמה גישות דיסק יידרשו לצורך ביצוע פעולת תת-תחום הכוללת קריאה של 9 רשומות עוקבות מהקובץ הנ"ל. כדי לקרוא 9 רשומות עוקבות צריך לקרוא 3 עלים. כדי לחשב את מספר הגישות, נתייחס לשני מקרים: 2. אין מצביעים ברמת העלים – 4 או 5 גישות. כל הרשומות תחת צומת פנימית אחת – 4 גישות. צומת פנימית 1 2 3 16.04.2017

כדי לקרוא 9 רשומות עוקבות צריך לקרוא 3 עלים. ב. בהנחה שבזיכרון מצוי השורש והרמה שמתחתיו בלבד, חשב כמה גישות דיסק יידרשו לצורך ביצוע פעולת תת-תחום הכוללת קריאה של 9 רשומות עוקבות מהקובץ הנ"ל. כדי לקרוא 9 רשומות עוקבות צריך לקרוא 3 עלים. כדי לחשב את מספר הגישות, נתייחס לשני מקרים: 2. אין מצביעים ברמת העלים – 4 או 5 גישות. II. הרשומות תחת שני צמתים פנימיים בעץ – 5 גישות. הסיכוי שהם נמצאים תחת אותו צומת הוא 4/12 והמשלים שלו הוא הסיכוי שהם בשני צמתים. לכן סך הכל תוחלת מספר הצמתים שנצטרך לקרוא הוא 56/12 שזה קצת יותר מ-4. זה חשוב שנתרגל לחשוב על זה בצורה כזאת. צומת פנימית 2 3 צומת פנימית 1 1 2 16.04.2017

עצי B+ מאפשרים שליפה יעילה וגישת תת-תחום על פי מפתח ראשי. אינדקס משני עצי B+ מאפשרים שליפה יעילה וגישת תת-תחום על פי מפתח ראשי. לעיתים רוצים לאפשר פעולות אלו גם עבור שדות נוספים. לדוגמא – בקובץ סטודנטים המפתח הוא מספר סטודנט, אבל רוצים לאפשר גם גישה ישירה וסריקת תת-תחום על פי שם פרטי ושם משפחה. 16.04.2017

הפתרון – הגדרת אינדקס משני, שהוא עץB+ שמוגדר עבור המפתח המשני. העלים באינדקס המשני אינם מכילים רשומות. אלא הצבעה לעלים של הקובץ הראשי, שבהם יושבות הרשומות. ההצבעות יכולות להיות כתובות פיסיות של העלה בו נמצאת הרשומה pinned (נעוץ), או מפתח ראשי של הרשומה בקובץ הראשי unpinned (בלתי-נעוץ). הערה – מפתח משני אינו בהכרח חד ערכי, לכן יכולות להיות מספר רשומות עם אותו ערך של מפתח משני. 16.04.2017

אינדקס ראשי 03 01 Cohen Moshe 02 Levi Yair 04 Levi Joe 03 Cohen Danny אינדקס משני נעוץ Levi 02 Levi 04 אינדקס משני בלתי-נעוץ Cohen 01 Cohen 03 16.04.2017

אינדקס משני נעוץ (pinned): חיפוש (לפי מפתח משני): חפש באינדקס המשני, קבל כתובת של עלה. קרא את העלה וחפש את הרשומה בו. הכנסה: הכנס את הרשומה החדשה בעזרת האינדקס הראשי לעלה L. הוסף לאינדקס המשני מיני-רשומה המכילה מפתח משני וכתובת של L. אם העלה של האינדקס הראשי פוצל, עדכן את כל המפתחות באינדקס המשני שהצביעו לרשומות שנדדו לעלה אחר. 16.04.2017

אינדקס משני בלתי-נעוץ (unpinned): חיפוש (לפי מפתח משני): חפש באינדקס המשני, קבל מפתח ראשי k. חפש את k באינדקס הראשי. הכנסה: הכנס את הרשומה החדשה בעזרת האינדקס הראשי. הוסף לאינדקס המשני מיני-רשומה המכילה מפתח משני ומפתח ראשי. 16.04.2017

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

פתרון: ארגון אינדקס משני משולב (נעוץ/בלתי-נעוץ) משולב: במיני-רשומה של האינדקס המשני נשמור גם את המפתח הראשי של הרשומה המקורית וגם כתובת למיקום "משוער" של הרשומה המקורית. חיפוש (לפי מפתח משני): חפש באינדקס המשני, קבל כתובת של עלה ומפתח ראשי k. קרא את העלה וחפש את הרשומה בו. אם לא נמצאה - חפש את k באינדקס הראשי ועדכן את כתובת העלה באינדקס המשני. הכנסה: הכנס את הרשומה החדשה בעזרת האינדקס הראשי לעלה L. הוסף לאינדקס המשני מיני-רשומה המכילה מפתח משני, מפתח ראשי וכתובת לעלה L. 16.04.2017

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

כל תרנגולת מזוהה ע"י מספר זיהוי - 10 Byte, ושם – 25 Byte. שאלה 2 בלול של יוסף 276,000 תרנגולות. כל תרנגולת מזוהה ע"י מספר זיהוי - 10 Byte, ושם – 25 Byte. כדי לעקוב אחרי תנובת הביצים בשנה האחרונה, לכל תרנגולת נשמור שדות בגודל 1Byte, הערך הוא משקל הביצה שהטילה התרנגולת ביום ה- של השנה ( אם התרנגולת לא הטילה ביצה באותו יום). מה אנו מסיקים מהסיפור הזה: רשומה על תרנגולת היא בגודל 400 בתים – 10 על מספר, 25 על שם ועוד 365 על מידע על ביצים 16.04.2017

ליוסף יש דיסק בו 1000 גלילים ו- 20 משטחים. בכל מסילה 10 סקטורים בני 4 KByte כל אחד. כתובת בדיסק תופסת 10 Byte. למחשב זיכרון פנימי של 1 MByte. הכניסו את הרשומות בסדר אקראי לעץ B+ ריק. את העץ אחסנו בגלילים רצופים. גודל עלה שווה לגודל מסילה. 16.04.2017

א. מהו המספר הצפוי של גלילים שיתפוס הקובץ? גודל רשומה הוא: מספר רשומות צפוי בכל עלה: מספר עלים צפוי: מספר גלילים עבור רמת העלים: המקום הדרוש לרמה ראשונה של צמתים פנימיים הוא: עבור כל עלה צריך לשמור מספר זיהוי (מפתח)+כתובת: אם תפוסת צומת פנימי היא מלאה אז נצטרך: עבור תפוסה ממוצעת: בסה"כ 198 גלילים. 16.04.2017

ב. כמה מקום יתפוס האינדקס המשני? כדי לתת יחס אישי לכל תרנגולת, החליט יוסף לאפשר לגשת לרשומת תרנגולת ע"פ שמה. לצורך זה יש לבנות אינדקס משני unpinned לפי שם התרנגולת. ב. כמה מקום יתפוס האינדקס המשני? ברמה התחתונה של האינדקס המשני שומרים עבור כל תרנגולת שם + מספר זיהוי (מפתח ראשי) . נפח כולל: רמות נוספות של האינדקס המשני תוספות מקום זניח (פחות ממסילה). 16.04.2017