فایل DBF چیست؟
The file with .dbf extension is a database file used by a database management system application called dBASE. Inititally, the dBASE database was named as Project Vulcan; started by Wayne Ratliff in 1978. نوع فایل DBF با dBASE II در سال 1983 معرفی شد. چندین رکورد داده را با فیلدهای نوع Array مرتب می کند. نرم افزار پایگاه داده xBase که به دلیل سازگاری آن با طیف گسترده ای از فرمت های فایل محبوبیت دارد. همچنین از فایل های DBF پشتیبانی می کند.
فرمت فایل DBF
فرمت فایل DBF متعلق به سیستم مدیریت پایگاه داده dBASE است اما ممکن است با xBase یا سایر نرم افزارهای DBMS سازگار باشد. نسخه اولیه فایل dbf شامل یک جدول ساده بود که می توانست داده ها را با استفاده از مجموعه کاراکترهای ASCII اضافه، اصلاح، حذف یا چاپ کند. با گذشت زمان .dbf بهبود یافت و فایل های اضافی برای افزایش امکانات و قابلیت های سیستم پایگاه داده اضافه شد.
در dBASE مدرن یک فایل DBF از یک هدر، رکوردهای داده و نشانگر EOF (پایان فایل) تشکیل شده است.
- هدر حاوی اطلاعاتی در مورد فایل است، مانند تعداد رکوردها و تعداد انواع فیلدهای استفاده شده در رکوردها.
- سوابق حاوی داده های واقعی است.
- انتهای فایل با یک بایت با مقدار 0x1A مشخص شده است.
هدر فایل
چیدمان هدر فایل در dBase در جدول زیر آورده شده است:
بایت | مطالب | معنی |
---|---|---|
0 | 1 بایت | dBASE معتبر برای فایل DOS. بیتهای 0-2 نشاندهنده شماره نسخه، بیت 3 نشاندهنده وجود یک dBASE برای فایل یادداشت DOS، بیتهای 4-6 نشاندهنده وجود یک جدول SQL، بیت 7 نشاندهنده وجود هر فایل یادداشتی (یا dBASE m PLUS یا dBASE برای DOS) |
1-3 | 3 بایت | تاریخ آخرین به روز رسانی؛ فرمت شده به عنوان YYMMDD |
4-7 | شماره 32 بیتی | تعداد رکوردهای فایل پایگاه داده |
8-9 | شماره 16 بیتی | تعداد بایت ها در هدر |
10-11 | شماره 16 بیتی | تعداد بایت ها در رکورد |
12-13 | 2 بایت | رزرو شده؛ پر کردن با 0 |
14 | 1 بایت | پرچم نشان دهنده تراکنش ناقص[نکته 1] |
15 | 1 بایت | پرچم رمزگذاری[یادداشت 2] |
16-27 | 12 بایت | رزرو شده برای dBASE برای DOS در یک محیط چند کاربره |
28 | 1 بایت | تولید پرچم فایل mdx. 1 اگر یک فایل .mdx تولیدی وجود دارد، 0 اگر نه |
29 | 1 بایت | شناسه درایور زبان |
30-31 | 2 بایت | رزرو شده؛ پر کردن با 0 |
32–n [یادداشت 3] [یادداشت 4] | هر کدام 32 بایت | آرایه ای از توصیفگرهای میدان (برای چیدمان توصیفگرها به زیر مراجعه کنید) |
n + 1 | 1 بایت | 0x0D به عنوان پایان دهنده آرایه توصیفگر میدان |
- تابع ISMARKEDO این پرچم را بررسی می کند (BEGIN TRANSACTION آن را روی 1 تنظیم می کند، END TRANSACTION و ROLLBACK آن را روی 0 تنظیم می کند).
- اگر این پرچم روی 1 تنظیم شود، پیام Database encrypted ظاهر می شود.
- حداکثر تعداد فیلدها 255 می باشد.
- n به معنای آخرین بایت در آرایه توصیفگر فیلد است.
آرایه توصیفگر فیلد
چیدمان توصیفگرهای فیلد در dBASE:
بایت | مطالب | معنی |
---|---|---|
0-10 | 11 بایت | نام فیلد در ASCII (صفر پر شده) |
11 | 1 بایت | نوع میدان. مقادیر مجاز: C، D، F، L، M، یا N (برای معانی جدول بعدی را ببینید) |
12-15 | 4 بایت | رزرو شده |
16 | 1 بایت | طول فیلد به صورت باینری (حداکثر 254 (0xFE)). |
17 | 1 بایت | فیلد شمارش اعشاری به صورت باینری |
18-19 | 2 بایت | شناسه محل کار |
20 | 1 بایت | مثال |
21-30 | 10 بایت | رزرو شده |
31 | 1 بایت | تولید پرچم میدان MDX; 1 اگر فیلد دارای برچسب شاخص در فایل MDX تولیدی باشد، 0 اگر نه |
رکوردهای پایگاه داده
هر رکورد با یک پرچم حذف (1 بایت) شروع می شود. فیلدها بدون جداکننده فیلد در رکوردها پیچیده می شوند. تمام داده های فیلد ASCII هستند. بسته به نوع رشته، برنامه محدودیت های بیشتری را اعمال می کند. در اینجا انواع فیلد در dBase آمده است:
نوع میدان | یادگاری | آنچه را می پذیرد |
---|---|---|
ج | شخصیت | هر متن ASCII (پر شده با فاصله تا طول فیلد) |
D | تاریخ | اعداد و یک کاراکتر برای جداسازی ماه، روز و سال (در داخل به صورت 8 رقمی در قالب YYYYMMDD ذخیره می شود) |
F | نقطه شناور | -، .، 0–9 (راست توجیه شده، پر شده با فضاهای خالی) |
L | منطقی | Y، y، N، n، T، t، F، F، یا؟ (هنگامی که مقدار اولیه اولیه نباشد) |
M | یادداشت | هر متن ASCII (ذخیره شده در داخل به صورت 10 رقمی که نشان دهنده یک شماره بلوک .dbt است، به سمت راست توجیه شده است، با فضای خالی پر شده است) |
N | عددی | -، .، 0–9 (راست توجیه شده، پر شده با فضاهای خالی) |