Presentation is loading. Please wait.

Presentation is loading. Please wait.

קובץ רב-אינדקס Multi-Indexed File

Similar presentations


Presentation on theme: "קובץ רב-אינדקס Multi-Indexed File"— Presentation transcript:

1 קובץ רב-אינדקס Multi-Indexed File
File Organization קובץ רב-אינדקס Multi-Indexed File

2 רב–אינדקס – Multi-Index
משפחת הלא ליניאריים שלושה סוגים : עץ – עצים כלליים, עצים בינאריים, עץ מאוזן, עץ חיפוש, עץ שזור וכו'. גרף – גרף מכוון, גרף לא מכוון , גרף קשיר וכו'. B – Tree רב אינדקס – לא רק אינדקס אחד לפי המפתח הראשי אלא גם אינדקסים למפתחות המשניים, בדומה לרב טבעת.

3 (1) קובץ רב-אינדקס (Multi-Index)
אין דרישה לגישה סדרתית לא רק אינדקס אחד לפי המפתח הראשי אלא גם אינדקסים למפתחות המשניים, בדומה לרב-טבעת קובץ רב-אינדקס מאפשר לבצע חיפוש יעיל גם לפי מפתחות משניים לא רק לפי מפתח ראשי

4 (2) קובץ רב-אינדקס (Multi-Index)
מפתחות משניים: יש צורך לאחזר רשומות לפי מספרי מפתחות בונים אינדקסים כמספר המפתחות הנוספים הגישה לרשומות היא דרך האינדקס המתאים מדריך אינדקסים: מציאת טבלת אינדקס המתאים למפתח משתמשים באינדקס המתאים לשליפה מהירה

5 (1) שיטות לבניית אינדקס משני
אינדקס משני על הכתובת: רשומת אינדקס מצביעה על הכתובת יחוס על פי טבלה שימוש במספר אינדקסים ממצים בעיה: שינוי הקובץ דורש שינוי באינדקס המשני

6 (2) שיטות לבניית אינדקס משני
אינדקס משני על מפתח ראשי – אינדקס מהופך (Inverted Index) : רשומת אינדקס עבור כל ערך שהמפתח המשני קיבל S K 1 K 2 K 3 K 4 ערך מפתח משני מונה רשימת מפתחות ראשיים

7 (3) שיטות לבניית אינדקס משני
אינדקס משני על מפתח ראשי – אינדקס מהופך (Inverted Index) : רשומת אינדקס עבור כל ערך שהמפתח המשני קיבל האינדקס המשני ממוין לפי המפתח המשני משני מפתחות ראשיים אינדקס משני ראשיים נתונים אינדקס סידרתי

8 (4) שיטות לבניית אינדקס משני
אינדקס משני על מפתח ראשי – אינדקס מהופך (Inverted Index) : רשומת אינדקס עבור כל ערך שהמפתח המשני קיבל האינדקס המשני ממוין לפי המפתח המשני קובץ סידרתי – גישה ישירה לנתונים קובץ אינדקס סידרתי – גישה לאינדקס המפתח הראשי גישה ישירה – יחוס על ידי חישוב בעיה: מספר משתנה של מפתחות ראשיים – שיטות שירשור

9 (1) אינדקס מהופך (Inverted-Index)
ברשומה מופיעים כל הערכים השייכים לה. כניסה באינדקס מהופך תהיה – מפתח משני כלשהו (שכעת יתפקד כמפתח ראשי) ורשימה של מפתחות ראשיים מקוריים המצביעים על רשומות שונות המתאימות למפתח המשני. מפתח משני רשימת מפתחות ראשיים

10 (2) אינדקס מהופך (Inverted-Index)
מבנה האינדקס המשני בלתי תלוי במבנה הקובץ, ואפשר לבנות מספר אינדקסים משניים עדכון האינדקסים המשניים גוזל זמן רב

11 (3) אינדקס מהופך (Inverted-Index)
דוגמא : הקובץ הוא התנ"ך, רשומה – פסוק, מפתח משני – מילה בפסוק, מפתח ראשי – ספר, מס' פרק ומס' פסוק. עבור המפתח המשני פנחס : שמות 25,6 ; במדבר 7,25 ; במדבר 25,11 ; וכן הלאה חסרון : שיטה זו טובה עבור קובץ קבוע או קובץ מאופיין קריאה, קליטת רשומות חדשות תגרום לשינויים מסובכים.

12 Basic Inverted file organization
Key 1 Key 2 Key 3 Key 7 Index file Data base Data records

13 הנחות הנחוצות להשגת גמישות באינדקסים
אין מיון רשומות לפי מפתח ראשי ואין שטחי גלישה. לכל מפתח משני יכול להיות אינדקס נפרד. כל אינדקס מורכב מכניסות עבור רשומות ולא עבור בלוקים. האינדקס אחראי על שמירת סדר הרשומות, לכן רצוי שהוא יהיה מבנה שקל לבצע בו שינויים. אין הגבלה על המבנה הפנימי של רשומות.

14 B-Trees-Balanced Y-ARY Tree
לא רוצים אינדקס דחוס (Dense index) רוצים אינדקס דליל (Sparse index) משאירים מקום פנוי בגוש האינדקס כשהגוש מלא מבצעים פיצול גוש אינדקס תשלום בשטח בכדי לנהל את האינדקס ביעילות B-Tree of order Y Y-ARY search tree

15 B-Tree הנציג המובהק של הרב אינדקס. עץ מאוזן, מאורגן גם כעץ חיפוש כללי.
עץ דליל, מקצים מראש שטחים ריקים על מנת להקל על הוספת רשומות וכד'. שינוי בשטח הראשי משפיע רק על תתי עץ ברמה תחתונה. שטח ראשי B - Tree

16 (1) מאפייני מבנה B-Tree השורש הוא עלה או יש לו לפחות שני ילדים
לכל צומת, חוץ מהשורש והעלים, יש בין ילדים לכל נתיב (path) מהשורש לעלה יש אותו אורך יש סדר ליניארי >. כל העלים באותה רמה

17 (2) מאפייני מבנה B-Tree B-Tree הוא אינדקס היררכי
כל צומת פנימית היא מהצורה: p מצביע, v - ערך מצביע על הילד ה של הצומת הוא מפתח הנחה: הנתונים (הרשומות) רק בעלים למטה

18 B-Tree B Tree הינו מבנה הנתונים האופטימאלי לקובץ רב אינדקס.
בכל צומת יש קיבולת של y מצביעים ו y-1 ערכים, פרט לצומת השורש יש תמיד ניצול של לפחות חצי קיבולת ┌y/2┐. ביישום זה משתמשים בעץ B בו כל ערך מופיע ברמה התחתונה וחלק מהערכים מופיעים גם ברמות גבוהות יותר. 18 12 10 22 36 34 28 רשומה מפתח רשומות

19 B-Tree דוגמא לעץ B מסדר 5 : 18 12 10 22 36 34 28 4 6 8 12 14 16 18 20
18 20 34 36

20 (1) חישוב מספר רמות X רוצים הערכה למספר רמות X הדרוש
נניח עץ עם מספר מינימאלי של ילדים בכל צומת שורש – שני ילדים צומת פנימי ילדים מספר ילדים (מצביעים) מספר רמה 1 2 3 i X – רמה תחתונה

21 (2) חישוב מספר רמות X מספר הרשומות עליהן מצביעה הרמה התחתונה = n
מחיר לוגריתמי:

22 כמה ילדים בממוצע בצומת? כמה ילדים יש אפקטיבית אם יש רק הכנסות:
אם יש גם ביטולים:

23 (1) מחיר – כמה פיצולים יש בממוצע?
אם מוסיפים ברמה k עד k פיצולים לשורש אם בונים מחדש, אזי מספר הפיצולים הוא אחד פחות ממספר הצמתים, כל פיצול מוסיף צומת נניח: n – רשומות / מפתחות p – צמתים אזי יש לפחות מפתחות ב n צמתים כלומר:

24 (2) מחיר – כמה פיצולים יש בממוצע?
מסקנה: צריך לפצל צמתים פחות מפעם אחת בממוצע בכל הכנסות או: יש פחות מ פיצולים להכנסה ל 2 – 3 TREE יש פחות מפיצול אחד להכנסה

25 תיקון B-Tree יתכן שבעקבות ביטולים, הניצול ירד מתחת לחצי קיבולת.
פתרון - הוספת ערך ומצביע על חשבון צומת סמוך. - איחוד שני צמתים סמוכים. לא ממהרים לבצע תיקון כי יתכן שעוד מעט תהיה הוספה וגם מפני שהתיקון הוא פעולה כבדה יחסית. רק כאשר הניצול ירד מאד (0.35y לדוג' ) התיקון מתבצע.

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

27 חסרונות B-Tree יותר רמות מאשר באינדקס דחוס – תופס יותר מקום בדיסק
עדכון קובץ – הטיפול באינדקס המשני יקר האינדקס עצמו תופס מקום אחסנה

28 ביצועי קובץ רב אינדקס לקובץ הרשומות מבנה של ערמה.
כל רשומה מורכבת מזוגות של תכונה וערך, ישנן a תכונות. יש אינדקס נפרד לכל תכונה. לאחר פעילות רבה של הקובץ, התפוסה של כל אינדקס מתייצבת על ln2 = 69 % . משריינים עבור האינדקסים פי שניים מקום /ln2 =

29 יתרונות קובץ רב-אינדקס
גישה למידע מכיוונים / מפתחות שונים במינימום מחיר אפשר לאחזר קבוצה של רשומות ניתן לקרוא את הקובץ גם ללא שימוש באינדקס המשני האינדקס המשני בלתי תלוי בקובץ. ניתן לשינוי בניפרד


Download ppt "קובץ רב-אינדקס Multi-Indexed File"

Similar presentations


Ads by Google