מהו קובץ CDB?
קבצי CDB משמשים ביישומים קריטיים למשימה כמו דואר אלקטרוני. ה-CDB מייצג “בסיס נתונים קבוע”, חבילה מהירה, אמינה ופשוטה ליצירה או קריאה של מסדי נתונים קבועים. החלפת מסד נתונים בטוחה מפני קריסות מערכת. משתמשים לא צריכים להשהות במהלך שכתוב. CDB מתפקד כמערך אסוציאטיבי (על-דיסק), ממפה מפתחות לערכים, ומאפשר לאחסן מספר ערכים במפתח בודד.
פורמט קובץ CDB
פורמט הקובץ CDB מאחסן מספרים, קיזוזים, אורכים וערכי גיבוב בפורמט אנדיאני קטן כמספרים שלמים של 32 סיביות ללא סימנים. מפתחות ונתונים נחשבים למחרוזות בתים אטומות ללא טיפול מיוחד. בתחילת מסד הנתונים, הכותרת בגודל קבוע מייצגת 256 טבלאות גיבוב על ידי רישום מיקומן בתוך הקובץ ואורכם במשבצות. בדרך כלל הנתונים מאוחסנים כרצף של רשומות, כל רשומה מאחסנת אורך מפתח, אורך נתונים, מפתח ונתונים. אין חוקי מיון או יישור. הרשומות עוקבות אחרי קבוצה של 256 טבלאות גיבוב באורכים שונים. מכיוון שאפס הוא אורך חוקי, ייתכן שיהיו פחות מ-256 טבלאות גיבוב המאוחסנות פיזית במסד הנתונים, אך אין דבר שנחשב ל-256 טבלאות. טבלאות Hash מורכבות מסדרה של משבצות, שכל אחת מהן מכילה ערך Hash והיסט רשומה. ל"משבצות ריקות" יש היסט של אפס.
מבנה
מסד נתונים CDB מורכב ממערך נתונים שלם בקובץ מחשב אחד. הוא מכיל שלושה חלקים:
- כותרת בגודל קבוע
- נתונים
- סט טבלאות חשיש.
חיפושים זמינים עבור מפתחות מדויקים בלבד. חיפושים פועלים באמצעות האלגוריתם הבא:
- דחס את המפתח.
- קבע באיזה טבלת גיבוב וחריץ רשומה זו צריכה להיות ממוקמת.
- בדוק את החריץ המצוין בטבלת הגיבוב.
עבור חיפושים של מפתחות עם יותר מערך אחד, ניתן למצוא ערכים נוספים פשוט על ידי חידוש החיפוש במשבצת הבאה.
תכונות
מבנה מסד הנתונים של CDB מספק מספר תכונות:
חיפושים מהירים
חיפוש מוצלח במסד נתונים ענק דורש בדרך כלל רק שתי גישה לדיסק וחיפוש לא מוצלח לוקח רק אחת.
תקורה נמוכה
מסד נתונים משתמש ב-2048 בתים, 24 בתים לרשומה ובמקום למפתחות ונתונים.
אין מגבלות אקראיות
CDB יכול לנהל כל מסד נתונים עד 4 גיגה-בייט. מכיוון שאין הגבלות אחרות, הרשומות אפילו לא חייבות להתאים לזיכרון. מסדי נתונים מאוחסנים בפורמט בלתי תלוי במכונה.
החלפה מהירה של מסד נתונים אטומי
הפקודה cdbmake יכולה לכתוב מחדש מסד נתונים שלם לשני סדרי גודל, מהר יותר מחבילות גיבוב אחרות.
dump מסד נתונים מהיר
cdbdump יכול להדפיס את התוכן של מסד נתונים בפורמט תואם cdbmake.