aspose.info
VI

Định dạng tệp SQLite

Cập nhật

Tệp SQLite là gì?

Tệp có phần mở rộng .sqlite là tệp cơ sở dữ liệu SQL nhẹ được tạo bằng phần mềm SQLite. Bản thân nó là một cơ sở dữ liệu trong một tệp và triển khai một công cụ cơ sở dữ liệu SQL độc lập, đầy đủ tính năng, có độ tin cậy cao. Các tệp cơ sở dữ liệu SQLite có thể được sử dụng để chia sẻ nội dung phong phú giữa các hệ thống bằng cách trao đổi đơn giản các tệp này qua mạng. Hầu như tất cả điện thoại di động và máy tính đều sử dụng SQLite để lưu trữ và chia sẻ dữ liệu, đồng thời là lựa chọn định dạng tệp cho các ứng dụng đa nền tảng. Do sử dụng nhỏ gọn và khả năng sử dụng dễ dàng, nó đi kèm với các ứng dụng khác. Các liên kết SQLite tồn tại cho các ngôn ngữ lập trình như C, C#, C++, Java, PHP, và nhiều người khác.

Định dạng tệp SQLite

SQLite trên thực tế là một thư viện Ngôn ngữ C triển khai RDBMS SQLite bằng định dạng tệp SQLite. Với sự phát triển của các thiết bị mới mỗi ngày, định dạng tệp của nó đã được giữ tương thích ngược để phù hợp với các thiết bị cũ hơn. Định dạng tệp SQLite được coi là định dạng lưu trữ lâu dài cho dữ liệu.

Tệp cơ sở dữ liệu

Cơ sở dữ liệu SQLite được duy trì đầy đủ thông qua hai tệp.

  • Tệp cơ sở dữ liệu chính - Chứa trạng thái hoàn chỉnh của cơ sở dữ liệu SQLite
  • Rollback Journal - Lưu trữ thông tin bổ sung trong tệp thứ hai và được sử dụng trong quá trình thực hiện giao dịch. Trong trường hợp SQLite ở chế độ WAL, tệp nhật ký đầu ghi được duy trì.

Tệp nhật ký

Tệp này nhằm mục đích giữ tất cả thông tin được duy trì trong trường hợp giao dịch cuối cùng không thể hoàn thành trong các trường hợp chẳng hạn như sự cố máy tính. Tệp này được sử dụng để khôi phục tệp cơ sở dữ liệu về trạng thái nhất quán.

Trang

Tệp cơ sở dữ liệu SQLite chính bao gồm một hoặc nhiều trang. Tại bất kỳ thời điểm nào, mọi trang trong cơ sở dữ liệu chính đều có một cách sử dụng duy nhất, đó là một trong những cách sau:

  • Trang khóa-byte
  • Một trang danh sách tự do
  • Một trang trung kế freelist
  • Một trang lá freelist
  • Một trang b-cây
  • Một bảng b-cây trang nội thất
  • Một bảng b-trang lá cây
  • Một trang bên trong b-cây chỉ mục
  • Một trang lá b-cây chỉ mục
  • Trang tràn tải trọng
  • Một trang bản đồ con trỏ

Kích thước của tệp cơ sở dữ liệu SQLite có thể nằm trong khoảng từ vài kilobyte đến vài gigabyte.

Tiêu đề SQLite

Tiêu đề cơ sở dữ liệu SQLite nằm trong 100 byte đầu tiên của tệp cơ sở dữ liệu. Mọi tệp cơ sở dữ liệu SQLite hợp lệ đều bắt đầu bằng 16 byte (ở dạng hex):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Chi tiết về các trường tiêu đề như trong bảng sau.

Độ lệchKích thướcMô tả
016Chuỗi tiêu đề: “SQLite format 3\000”
162Kích thước trang cơ sở dữ liệu tính bằng byte. Phải là lũy thừa của hai trong khoảng từ 512 đến 32768 hoặc giá trị 1 biểu thị kích thước trang là 65536.
181Phiên bản ghi định dạng tệp. 1 cho di sản; 2 cho WAL.
191Định dạng tệp đọc phiên bản. 1 cho di sản; 2 cho WAL.
201byte dung lượng “dành riêng” chưa sử dụng ở cuối mỗi trang. Thường là 0.
211Phần tải trọng được nhúng tối đa. Phải là 64.
221Phần tải trọng được nhúng tối thiểu. Phải là 32.
231Phần tải trọng lá. Phải là 32.
244Bộ đếm thay đổi tệp.
284Kích thước của tệp cơ sở dữ liệu trong các trang. “Kích thước cơ sở dữ liệu trong tiêu đề”.
324Số trang của trang trung kế tự do đầu tiên.
364Tổng số trang danh sách tự do.
404Cookie lược đồ.
444Số định dạng lược đồ. Các định dạng lược đồ được hỗ trợ là 1, 2, 3 và 4.
484Kích thước bộ nhớ cache của trang mặc định.
524Số trang của trang b-tree gốc lớn nhất khi ở chế độ tự động hút chân không hoặc tăng dần chân không, hoặc bằng 0 nếu không.
564Mã hóa văn bản cơ sở dữ liệu. Giá trị 1 có nghĩa là UTF-8. Giá trị 2 có nghĩa là UTF-16le. Giá trị 3 có nghĩa là UTF-16be.
604“Phiên bản người dùng” do pragma user_version đọc và thiết lập.
644True (khác không) cho chế độ chân không gia tăng. Sai (không) ngược lại.
684“ID ứng dụng” do PRAGMA application_id đặt.
7220Dành riêng để mở rộng. Phải bằng không.
924Số phiên bản hợp lệ.
964SQLITE_VERSION_NUMBER

Người giới thiệu

Xem thêm