فایل SQLite چیست؟
یک فایل با پسوند .sqlite یک فایل پایگاه داده SQL سبک وزن است که با نرم افزار SQLite ایجاد شده است. این یک پایگاه داده در خود یک فایل است و یک موتور پایگاه داده SQL با ویژگی های کامل و بسیار قابل اعتماد را پیاده سازی می کند. فایل های پایگاه داده SQLite را می توان با تبادل ساده این فایل ها از طریق شبکه برای اشتراک گذاری محتوای غنی بین سیستم ها استفاده کرد. تقریباً همه تلفنهای همراه و رایانهها از SQLite برای ذخیره و اشتراکگذاری دادهها استفاده میکنند و فرمت فایل انتخابی برای برنامههای چند پلتفرمی است. به دلیل استفاده فشرده و قابلیت استفاده آسان، آن را در داخل سایر برنامه ها به همراه دارد. پیوندهای SQLite برای زبان های برنامه نویسی مانند C، C#، C++، Java، PHP و بسیاری دیگر وجود دارد.
فرمت فایل SQLite
SQLite در واقعیت یک کتابخانه C-Language است که SQLite RDBMS را با استفاده از فرمت فایل SQLite پیاده سازی می کند. با تکامل دستگاههای جدید هر روز، فرمت فایل آن برای سازگاری با دستگاههای قدیمیتر سازگار نگه داشته شده است. فرمت فایل SQLite به عنوان فرمت آرشیوی طولانی مدت برای داده ها دیده می شود.
فایل پایگاه داده
پایگاه داده SQLite به طور کامل از طریق دو فایل نگهداری می شود.
- فایل پایگاه داده اصلی - شامل وضعیت کامل پایگاه داده SQLite است
- Rollback Journal - اطلاعات اضافی را در یک فایل دوم ذخیره می کند و در هنگام انجام تراکنش ها استفاده می شود. در صورتی که SQLite در حالت WAL باشد، یک فایل لاگ سر نوشتن نگهداری می شود.
فایل مجله
این فایل در نظر گرفته شده است تا در صورت عدم امکان انجام آخرین تراکنش در مواردی مانند خرابی رایانه، تمام اطلاعات حفظ شود. این فایل برای بازگرداندن فایل پایگاه داده به حالت ثابت استفاده می شود.
صفحات
فایل اصلی پایگاه داده SQLite از یک یا چند صفحه تشکیل شده است. در هر نقطه از زمان، هر صفحه در پایگاه داده اصلی یک کاربرد دارد که یکی از موارد زیر است:
- صفحه قفل بایت
- یک صفحه فهرست آزاد
- یک صفحه ترانک لیست آزاد
- یک صفحه برگ لیست آزاد
- صفحه b-tree
- صفحه داخلی جدول b-tree
- صفحه برگ درخت ب جدول
- یک صفحه داخلی نمایه b-tree
- صفحه برگ b-tree شاخص
- صفحه سرریز بار
- یک صفحه نقشه اشاره گر
اندازه فایل های پایگاه داده SQLite می تواند از چند کیلوبایت تا چند گیگابایت متغیر باشد.
هدر SQLite
The SQLite database header is located in the first 100 bytes of the database file. Every valid SQLite database file starts with 16 bytes (in hex):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. جزئیات فیلدهای هدر مانند جدول زیر است.
افست | اندازه | توضیحات |
---|---|---|
0 | 16 | رشته سرصفحه: SQLite format 3\000 |
16 | 2 | اندازه صفحه پایگاه داده بر حسب بایت. باید توان دو بین 512 و 32768 باشد، یا مقدار 1 نشان دهنده اندازه صفحه 65536 باشد. |
18 | 1 | نسخه نوشتن فرمت فایل. 1 برای میراث؛ 2 برای WAL. |
19 | 1 | فرمت فایل نسخه خوانده شده. 1 برای میراث؛ 2 برای WAL. |
20 | 1 | بایت فضای رزرو شده استفاده نشده در انتهای هر صفحه. معمولا 0. |
21 | 1 | حداکثر کسر محموله تعبیه شده. باید 64 باشه. |
22 | 1 | حداقل کسر محموله تعبیه شده. باید 32 باشد. |
23 | 1 | کسری باربر برگ. باید 32 باشد. |
24 | 4 | مشتری تغییر فایل. |
28 | 4 | اندازه فایل پایگاه داده در صفحات. اندازه پایگاه داده درون سرصفحه. |
32 | 4 | شماره صفحه اولین صفحه ترانک آزاد. |
36 | 4 | تعداد کل صفحات فهرست آزاد. |
40 | 4 | کوکی طرحواره. |
44 | 4 | شماره قالب طرحواره. قالب های طرحواره پشتیبانی شده 1، 2، 3 و 4 هستند. |
48 | 4 | اندازه پیش فرض کش صفحه. |
52 | 4 | شماره صفحه بزرگترین صفحه b-tree ریشه در حالت خلاء خودکار یا خلاء افزایشی یا در غیر این صورت صفر است. |
56 | 4 | The database text encoding. A value of 1 means UTF-8. مقدار 2 به معنای UTF-16le است. مقدار 3 به معنای UTF-16be است. |
60 | 4 | «نسخه کاربری» که توسط user_version pragma خوانده و تنظیم شده است. |
64 | 4 | درست (غیر صفر) برای حالت خلاء افزایشی. نادرست (صفر) در غیر این صورت. |
68 | 4 | «شناسه برنامه» تنظیم شده توسط PRAGMA application_id. |
72 | 20 | برای گسترش محفوظ است. باید صفر باشد. |
92 | 4 | نسخه-معتبر-برای شماره. |
96 | 4 | SQLITE_VERSION_NUMBER |