ไฟล์ DBF คืออะไร??
ไฟล์ที่มีนามสกุล .dbf เป็นไฟล์ฐานข้อมูลที่ใช้โดยแอปพลิเคชันระบบจัดการฐานข้อมูลที่เรียกว่า dBASE เริ่มแรก ฐานข้อมูล dBASE ได้รับการตั้งชื่อว่า Project Vulcan; เริ่มต้นโดย Wayne Ratliff ในปี 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 for ดอส) |
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 ข้อความ ฐานข้อมูลเข้ารหัส จะปรากฏขึ้น
- จำนวนฟิลด์สูงสุดคือ 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 ใดๆ (เว้นวรรคตามความยาวของฟิลด์) |
ดี | วันที่ | ตัวเลขและอักขระเพื่อแยกเดือน วัน และปี (จัดเก็บภายในเป็นตัวเลข 8 หลักในรูปแบบ YYYYMMDD) |
F | จุดลอยตัว | -, ., 0–9 (ชิดขวา, เสริมด้วยช่องว่าง) |
ล | ตรรกะ | Y, y, N, n, T, t, F, f หรือ ? (เมื่อไม่ได้กำหนดค่าเริ่มต้น) |
ม | บันทึก | ข้อความ ASCII ใดๆ (จัดเก็บภายในเป็นตัวเลข 10 หลักแทนหมายเลขบล็อก .dbt จัดชิดขอบขวา เสริมด้วยช่องว่าง) |
ยังไม่มี | ตัวเลข | -, ., 0–9 (ชิดขวา, เสริมด้วยช่องว่าง) |