100 likes | 274 Views
File Organization. קובץ ישיר מתקדם Advanced Direct File. n. m. (1) קובץ ישיר מתקדם - Advanced Direct File. בקובץ ישיר מתקדם מספר המקומות בקובץ – m משתנה, לעומת קובץ ישיר קלאסי ששם m קבוע כאשר m משתנה – פונקצית הגיבוב משתנה
E N D
File Organization קובץ ישיר מתקדםAdvanced Direct File A. Frank
n m (1) קובץ ישיר מתקדם - Advanced Direct File • בקובץ ישיר מתקדם מספר המקומות בקובץ – m משתנה, לעומת קובץ ישיר קלאסי ששם m קבוע • כאשר m משתנה – פונקצית הגיבוב משתנה • הקובץ הסדרתי גדל וקטן בהתאמה בגלל הביטולים הפיזיים • גישה ישירה יותר A. Frank
Henry Kissinger K: שטח ראשי Emmy Noether N: Julia Robinson R: Mary Shaw Pierre Salinger Chris Strachey S: T: AndrewTanne Barbara Tuchman Gertrude Stein בלוק גלישה (2) קובץ ישיר מתקדם - Advanced Direct File • דוגמא לשילוב של שרשור פנימי, יש גלישה בתוכן השטח הראשי מפתח רשומות Pierre Salinger Andrew Tanne Chris Strachey Mary Shaw Barbara Tuchman Henry Kissinger Julia Robinson Emmy Noether Gertrude Stein A. Frank
00 01 10 11 קובץ ישיר מתקדם בשיטת גיבוב מתרחב • שטח ראשי – מקום אחסנה של רשומות, הקובץ. אוסף של מכלאים , כל מכלאתופס גוש ומכיל מספר קבוע של רשומות בהתאם לגודלו ולגודל הרשומה • לדוגמא: טבלה – מהווה אינדקס, שדה מפתח + שדה מצביע למכלא. במקרה זה הטבלה מהווה קובץ / שטח אינדקס Record Storage table bfr = 10 m = 4 x bfr A. Frank
גיבוב מתרחב – Extendible Hashing • בשיטה זו פונקצית הגיבוב היא קיצוץ של 2 הספרות השמאליות מתוך הייצוג הבינארי של המפתח 0010 10 = 34, רשומה 34 תכנס למכלא שמסומן במפתח 10 • כאשר מכלא מסוים מתמלא, מפצלים את הגוש לשניים (פיצול גוש, block split)ומחלקים את שדה המצביע לשניים(הכפלת טבלה, table multiplication) • שיטה זו נקראת גיבוב מתרחבמשום שהשטח הראשי מתרחב לפי הצורך A. Frank
000 001 010 011 100 101 110 111 שיטת גיבוב מתרחב - דוגמא • כל מפתח בטבלה הקודמת פוצל לשניים ע"י הוספת 0 ו-1 • לאחר שהבלוק השלישי התמלא הוא פוצל לשניים והמצביעים שונו בהתאם A. Frank
00 01 10 11 גיבוב מזדחל –Linear Hashing • לכל בלוק יש מצביע =>B+P . • הנחה: הבלוקים בשטח הראשי מסודרים אחד אחרי השני • קיצוץ 2 הספרות הנמוכות מערך המפתח 010001 • אין שטח טבלה(table), אלא יש שטח גלישה אליו יש מצביע A. Frank
00 01 10 11 הוספת בלוק גלישה • הוספנו 7 רשומות ושני גושי גלישה. • סף הטעינה:(אחוז מסוים מהמכלא) שומר על היחס בין הקובץ לסף, בדוגמא:70%. • כאשר מגיעים לסף טעינה (42 רשומות מתוך 60) יש צורך בגיבוב מזדחל. A. Frank
000 01 10 11 100 ביצוע גיבוב מזדחל • לאחר שעברנו את סף הטעינה מתייחסים לשלושת הסיביות הימניות • פיצול הגוש הראשון - 4 רשומות המסתיימות בסיביות 000 נשארות ו-6 הרשומות המסתיימות ב-100 עוברות • מחוון P מפריד בין בלוקים של שתי סיבות לשלוש סיביות p A. Frank
יתרונות של גיבוב מזדחל על פני גיבוב מתרחב • בגיבוב מתרחב מגדילים כל פעם את מספר כניסות האינדקס והבלוקים בצורה חזקתית • היות והרשומות ממוינות בתוך הבלוקים עלול הדבר לגרום לפיצולים כאשר רשומות מגיעות לאותו אזור • עלות גישה ממוצעת לרשומה בגיבוב מזדחל – 1.5 A. Frank