קובץ רב-אינדקס multi-indexed file file organization

29
סססססס- סססס ססMulti-Indexed File File Organization

Post on 21-Dec-2015

223 views

Category:

Documents


5 download

TRANSCRIPT

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

קובץ רב-אינדקס

Multi-Indexed File

File Organization

Page 2: קובץ רב-אינדקס Multi-Indexed File File Organization

Multi-Indexרב–אינדקס –

משפחת הלא ליניארייםשלושה סוגים :

– עצים כלליים, עצים בינאריים, עץ מאוזן, עץ עץ1.חיפוש, עץ שזור וכו'.

– גרף מכוון, גרף לא מכוון , גרף קשיר וכו'.גרף 2.

.3B – Tree רב אינדקס – לא רק אינדקס אחד לפי המפתח הראשי

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

Page 3: קובץ רב-אינדקס Multi-Indexed File File Organization

(Multi-Index( קובץ רב-אינדקס )1)

אין דרישה לגישה סדרתית לא רק אינדקס אחד לפי המפתח הראשי אלא גם

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

מפתחות משניים לא רק לפי מפתח ראשי

Page 4: קובץ רב-אינדקס Multi-Indexed File File Organization

(Multi-Index( קובץ רב-אינדקס )2)

מפתחות משניים:יש צורך לאחזר רשומות לפי מספרי מפתחותבונים אינדקסים כמספר המפתחות הנוספיםהגישה לרשומות היא דרך האינדקס המתאים

מדריך אינדקסים:מציאת טבלת אינדקס המתאים למפתחמשתמשים באינדקס המתאים לשליפה מהירה

Page 5: קובץ רב-אינדקס Multi-Indexed File File Organization

( שיטות לבניית אינדקס משני1)

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

שינוי הקובץ דורש שינוי באינדקס המשניבעיה:

Page 6: קובץ רב-אינדקס Multi-Indexed File File Organization

( שיטות לבניית אינדקס משני2)

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

ערך מפתח משני

מונה רשימת מפתחות ראשיים

S K 3 K 2 K 4K 1

Page 7: קובץ רב-אינדקס Multi-Indexed File File Organization

( שיטות לבניית אינדקס משני3)

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

משני מפתחות ראשיים

אינדקס משני

משניראשיים

נתוניםאינדקס סידרתי

Page 8: קובץ רב-אינדקס Multi-Indexed File File Organization

( שיטות לבניית אינדקס משני4)

Invertedאינדקס משני על מפתח ראשי – אינדקס מהופך )Index):

רשומת אינדקס עבור כל ערך שהמפתח המשני קיבלהאינדקס המשני ממוין לפי המפתח המשניקובץ סידרתי – גישה ישירה לנתוניםקובץ אינדקס סידרתי – גישה לאינדקס המפתח הראשיגישה ישירה – יחוס על ידי חישוב

מספר משתנה של מפתחות ראשיים – שיטות שירשורבעיה:בעיה:

Page 9: קובץ רב-אינדקס Multi-Indexed File File Organization

(Inverted-Index( אינדקס מהופך )1)

.ברשומה מופיעים כל הערכים השייכים לה כניסה באינדקס מהופך תהיה – מפתח משני

כלשהו )שכעת יתפקד כמפתח ראשי( ורשימה של מפתחות ראשיים מקוריים המצביעים על

רשומות שונות המתאימות למפתח המשני.

מפתח משנירשימת מפתחות ראשיים

Page 10: קובץ רב-אינדקס Multi-Indexed File File Organization

(Inverted-Index( אינדקס מהופך )2)

,מבנה האינדקס המשני בלתי תלוי במבנה הקובץואפשר לבנות מספר אינדקסים משניים

עדכון האינדקסים המשניים גוזל זמן רב

Page 11: קובץ רב-אינדקס Multi-Indexed File File Organization

(Inverted-Index( אינדקס מהופך )3)

דוגמא : הקובץ הוא התנ"ך, רשומה – פסוק, מפתחמשני – מילה בפסוק, מפתח ראשי – ספר, מס' פרק

ומס' פסוק.

פנחס : עבור המפתח המשני

; וכן הלאה25,11 ; במדבר 7,25 ; במדבר 25,6שמות

שיטה זו טובה עבור קובץ קבוע או קובץ חסרון : מאופיין קריאה, קליטת רשומות חדשות תגרום

לשינויים מסובכים.

Page 12: קובץ רב-אינדקס Multi-Indexed File File Organization

Basic Inverted file organization

Key 1 Key 2 Key 3 Key 7

Data records

Index file

Data base

Page 13: קובץ רב-אינדקס Multi-Indexed File File Organization

הנחות הנחוצות להשגת גמישות באינדקסים

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

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

רצוי שהוא יהיה מבנה שקל לבצע בו שינויים..אין הגבלה על המבנה הפנימי של רשומות

Page 14: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Trees-Balanced Y-ARY Tree

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

Page 15: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Tree

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

על הוספת רשומות וכד'. שינוי בשטח הראשי משפיע רק

על תתי עץ ברמה תחתונה.שטח ראשי

B - Tree

Page 16: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Tree( מאפייני מבנה 1)

השורש הוא עלה או יש לו לפחות שני ילדים1.

לכל צומת, חוץ מהשורש והעלים, יש בין2.

ילדים

( מהשורש לעלה יש אותו אורךpathלכל נתיב )3.

יש סדר ליניארי <. כל העלים באותה רמה4.

YY 2

Page 17: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Tree( מאפייני מבנה 2)

B-Treeהוא אינדקס היררכי :כל צומת פנימית היא מהצורה

p ,מצביע v ערך -

yy pvpvp ,.......,,2,2,1

uip

uivYui 1

Yui 2

iuמצביע על הילד ה של הצומת

הוא מפתח

הנחה: הנתונים )הרשומות( רק בעלים למטה

Page 18: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Tree

B Tree הינו מבנה הנתונים האופטימאלי לקובץ רב אינדקס.

בכל צומת יש קיבולת שלy מצביעים ו y-1 ערכים, פרט לצומת השורש יש תמיד ניצול של לפחות חצי קיבולת

┌y/2.┐

ביישום זה משתמשים בעץB בו כל ערך מופיע ברמה התחתונה וחלק מהערכים מופיעים גם ברמות גבוהות

יותר.

18

1210 22 363428

רשומה רשומה רשומה רשומה רשומהרשומהרשומה

מפתח רשומות

Page 19: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Tree

דוגמא לעץB 5 מסדר:

18

1210 22 363428

4 6 8 10 12 14 16 18 20 34 36 38 40 4228 30 3222 24 26

Page 20: קובץ רב-אינדקס Multi-Indexed File File Organization

X( חישוב מספר רמות 1)

רוצים הערכה למספר רמותXהדרוש

נניח עץ עם מספר מינימאלישל ילדים בכל צומת

שורש – שני ילדים

ילדים צומת פנימי - 2Y

מספר רמהמספר ילדים

)מצביעים(

1

2

3

i

X – רמה תחתונה

022 Y

122 Y

222 Y

122 XY

Page 21: קובץ רב-אינדקס Multi-Indexed File File Organization

X( חישוב מספר רמות 2)

= מספר הרשומות עליהן מצביעה הרמה התחתונהn

:מחיר לוגריתמי

122 XYn

22log1

n

yX

Page 22: קובץ רב-אינדקס Multi-Indexed File File Organization

כמה ילדים בממוצע בצומת?

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

YYY EFF 2

YY 75.0

69.02ln YYEFF

YYYEFF 69.02ln

Page 23: קובץ רב-אינדקס Multi-Indexed File File Organization

( מחיר – כמה פיצולים יש בממוצע?1)

אם מוסיפים ברמהk עד kפיצולים לשורש אם בונים מחדש, אזי מספר הפיצולים הוא אחד פחות

ממספר הצמתים, כל פיצול מוסיף צומת :נניחn מפתחות/ – רשומות

pצמתים –

צמתים n מפתחות ב אזי יש לפחות

כלומר:

1121 PY

nPY 1121

1

12

1

Y

np

Page 24: קובץ רב-אינדקס Multi-Indexed File File Organization

( מחיר – כמה פיצולים יש בממוצע?2)

מסקנה: צריך לפצל צמתים פחות מפעם אחת בממוצע הכנסותבכל

פיצולים להכנסהאו: יש פחות מ 3 – 2ל TREEיש פחות מפיצול אחד להכנסה

12 Y

12

1

Y

Page 25: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Treeתיקון

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

פתרון - הוספת ערך ומצביע על חשבון צומת סמוך.

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

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

מתבצע.

Page 26: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Treeיתרונות

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

Page 27: קובץ רב-אינדקס Multi-Indexed File File Organization

B-Treeחסרונות

יותר רמות מאשר באינדקס דחוס – תופס יותר מקוםבדיסק

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

Page 28: קובץ רב-אינדקס Multi-Indexed File File Organization

ביצועי קובץ רב אינדקס

.לקובץ הרשומות מבנה של ערמה כל רשומה מורכבת מזוגות של תכונה וערך, ישנןa

תכונות..יש אינדקס נפרד לכל תכונה לאחר פעילות רבה של הקובץ, התפוסה של כל אינדקס

. % ln2 = 69מתייצבת על - משריינים עבור האינדקסים פי שניים מקום

1.4427 1/ln2=

Page 29: קובץ רב-אינדקס Multi-Indexed File File Organization

יתרונות קובץ רב-אינדקס

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