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

Post on 21-Dec-2015

223 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Multi-Indexed File

File Organization

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ערך מפתח משני

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

S K 3 K 2 K 4K 1

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

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

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

אינדקס משני

משניראשיים

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ומס' פסוק.

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

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

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

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

Basic Inverted file organization

Key 1 Key 2 Key 3 Key 7

Data records

Index file

Data base

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

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

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

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

B-Trees-Balanced Y-ARY Tree

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

B-Tree

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

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

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

B - Tree

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

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

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

ילדים

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

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

YY 2

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

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

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

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

uip

uivYui 1

Yui 2

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

הוא מפתח

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

B-Tree

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

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

┌y/2.┐

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

יותר.

18

1210 22 363428

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

מפתח רשומות

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

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

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

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

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

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

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

)מצביעים(

1

2

3

i

X – רמה תחתונה

022 Y

122 Y

222 Y

122 XY

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

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

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

122 XYn

22log1

n

yX

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

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

YYY EFF 2

YY 75.0

69.02ln YYEFF

YYYEFF 69.02ln

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

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

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

pצמתים –

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

כלומר:

1121 PY

nPY 1121

1

12

1

Y

np

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

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

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

12 Y

12

1

Y

B-Treeתיקון

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

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

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

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

מתבצע.

B-Treeיתרונות

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

B-Treeחסרונות

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

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

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

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

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

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

1.4427 1/ln2=

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

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

top related