.DB Database File
.db

Database File

ملف DB حاوية قاعدة بيانات، وفي الغالب الأعم هو قاعدة بيانات SQLite — محرّك قواعد البيانات الأكثر انتشاراً في العالم. كل هاتف ذكي وكل متصفح وكل نظام تشغيل حديث يحتوي مئات ملفات .db. هذه صفحة مرجعية فقط.

بنية الصيغة
Header schema
Records structured data
بيانات وصفيةنص2000
بواسطة FileDex
غير قابل للتحويل

ملفات قواعد البيانات تحتاج محرّك قاعدة البيانات الأصلي للوصول الفعّال. ملفات SQLite .db يمكن الاستعلام عنها بأداة sqlite3 أو DB Browser for SQLite. راجع أوامر CLI في المرجع التقني أدناه لتصدير البيانات إلى CSV أو SQL.

أسئلة شائعة

ما هو ملف DB؟

ملف DB حاوية قاعدة بيانات، والأغلب هو قاعدة بيانات SQLite. SQLite يخزّن الجداول والفهارس والمشغّلات والبيانات في ملف ثنائي محمول واحد. أكثر من تريليون قاعدة بيانات SQLite نشطة عبر الهواتف الذكية والمتصفحات وأنظمة التشغيل حول العالم.

كيف أفتح ملف DB؟

استخدم DB Browser for SQLite للحصول على واجهة مرئية مجانية، أو DBeaver كأداة قواعد بيانات عالمية. كلاهما متاح على Windows و macOS و Linux. لملفات .db غير SQLite، حدّد التطبيق المُنشئ أولاً بفحص البايتات السحرية في بداية الملف.

هل كل ملف DB هو قاعدة بيانات SQLite؟

لا. بينما أغلب ملفات .db هي SQLite، يُستخدم الامتداد أيضاً من Berkeley DB ومخبأ الصور المصغّرة Thumbs.db في Windows ومحركات قواعد بيانات أخرى. افحص أول بايتات الملف: قواعد بيانات SQLite تبدأ دائماً بالنص ASCII "SQLite format 3" عند البايت صفر.

هل يمكنني استعادة بيانات من ملف DB تالف؟

لملفات SQLite، أمر PRAGMA integrity_check يحدد الضرر البنيوي. أمر .recover يصدّر جميع الصفوف القابلة للاستعادة كتعليمات SQL. للتلف الشديد، أدوات طرف ثالث تبحث عن أنماط خلايا صالحة خارج بنية B-tree.

لماذا يحتوي مجلد Windows على ملف Thumbs.db؟

Windows يُنشئ Thumbs.db لتخبئة الصور المصغّرة لمحتويات المجلد لعرض أسرع في مستكشف الملفات. هو مستند OLE مركّب وليس قاعدة بيانات معيارية. حذفه آمن لكن Windows قد يُعيد إنشاءه عند تصفح المجلد مجدداً.

ما الحجم الأقصى لقاعدة بيانات SQLite؟

الحد النظري الأقصى حوالي 281 تيرابايت: أكثر من أربعة مليارات صفحة بحجم 65536 بايت لكل صفحة. عملياً، قواعد بيانات بحجم عشرات الغيغابايتات تعمل بشكل جيد. الأداء يعتمد على حجم الصفحة واستراتيجية الفهرسة وتفعيل وضع WAL.

هل يُحوّل FileDex ملفات DB؟

لا. ملفات قواعد البيانات تحتاج محرّك قاعدة البيانات الأصلي للوصول الفعّال. لقواعد بيانات SQLite، استخدم DB Browser for SQLite أو أداة سطر الأوامر sqlite3 لتصدير الجداول إلى CSV أو تفريغ المخطط والبيانات كاملة كنص SQL.

ما يميز .DB

وُلد على سفينة حربية
SQLite صُمّم لمدمّرات البحرية الأمريكية
D. Richard Hipp صمّم SQLite عام 2000 لنظام مراقبة أضرار على مدمّرات صاروخية موجّهة. خادم Informix الموجود كان ينهار ويُسقط التطبيق بالكامل. Hipp بنى قاعدة بيانات لا تحتاج خادماً أصلاً.
تريليون قاعدة بيانات
قواعد بيانات SQLite النشطة أكثر من سكان الأرض
SQLite يُقدّر وجود أكثر من تريليون (1e12) قاعدة بيانات نشطة. كل هاتف ذكي يحمل مئات ملفات .db — Chrome وحده يُنشئ قواعد بيانات منفصلة للسجل والكوكيز والأيقونات والملء التلقائي.
ملكية عامة للأبد
SQLite بلا حقوق نشر — ملك للجميع
SQLite ليس مجرد مفتوح المصدر بل ملكية عامة. المساهمون يوقّعون إقراراً بإهداء عملهم بلا قيود. مكتبة الكونغرس توصي بالصيغة للحفظ طويل الأمد لمجموعات البيانات.
ثلاث صيغ بامتداد واحد
.db قد يكون SQLite أو Berkeley DB أو Thumbs.db
امتداد .db ليس حكراً على جهة. قاعدة بيانات SQLite تبدأ بـ "SQLite format 3". ملف Thumbs.db يبدأ بترويسة OLE: D0 CF 11 E0. Berkeley DB له توقيعه الخاص. الامتداد وحده لا يُخبرك بشيء.

ملف DB امتداد عام تستخدمه عدة محركات قواعد بيانات لتخزين بيانات مُهيكلة. الغالبية العظمى من ملفات .db اليوم هي قواعد بيانات SQLite. صمّم D. Richard Hipp محرّك SQLite ربيع عام 2000 أثناء عمله في عقد للبحرية الأمريكية لدى General Dynamics. المشكلة الأصلية كانت نظام مراقبة أضرار على متن مدمّرات صاروخية موجّهة يعتمد على خادم Informix — عندما ينهار الخادم يتوقف التطبيق بالكامل. حلّ Hipp كان محرّك قاعدة بيانات لا يحتاج خادماً ولا إعداداً ولا مدير نظام، يخزّن كل شيء في ملف واحد عادي.

اكتشف التفاصيل التقنية

الإصدار 1.0 صدر في 17 أغسطس 2000 واستخدم gdbm كمحرّك تخزين. الإصدار 2.0 تبعه في سبتمبر 2001 مستبدلاً gdbm بتطبيق B-tree مخصص مع دعم المعاملات (Transactions). الإصدار 3.0 وصل في يونيو 2004 بتمويل من America Online مُقدّماً كتابة الأنواع الضمنية (Manifest Typing) ودعم الترميزات الدولية وبنية الترويسة من 100 بايت التي تُعرّف كل ملف SQLite .db يُكتب منذ ذلك الحين.

تريليون قاعدة بيانات

SQLite هو محرّك قواعد البيانات الأكثر نشراً في العالم. المشروع يُقدّر وجود أكثر من تريليون (1e12) قاعدة بيانات SQLite نشطة. كل هاتف Android وكل iPhone وكل Mac وكل جهاز Windows 10 وأحدث وكل متصفح Firefox و Chrome و Safari يحتوي SQLite. مطوّرو SQLite يصفونه بأنه "على الأرجح ثاني أكثر مكتبة برمجية انتشاراً بعد libz".

تطبيق واحد على هاتف واحد قد يحتوي عشرات ملفات .db. Chrome يخزّن سجل التصفح والكوكيز والأيقونات وبيانات الملء التلقائي في قواعد بيانات SQLite منفصلة. WhatsApp يخزّن سجل الرسائل في msgstore.db. Signal يخزّن قاعدة رسائله المشفّرة في signal.db. عندما يفحص محقق رقمي جهازاً محمولاً، الخطوة الأولى عادةً هي فهرسة ملفات .db وفتحها — فهي تحتوي الحياة الرقمية للمستخدم.

بنية ملف SQLite

كل قاعدة بيانات SQLite تبدأ بترويسة من 100 بايت. أول 16 بايت هي السلسلة النصية ASCII "SQLite format 3" متبوعة ببايت فارغ (hex: 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00). هذه البصمة السحرية تجعل التعريف قاطعاً — لا يستخدمها أي محرّك قواعد بيانات آخر.

البايتات 16-17 تخزّن حجم الصفحة كعدد صحيح 16 بت big-endian. القيم الصالحة هي أس 2 من 512 إلى 32768، مع القيمة الخاصة 1 التي تعني 65536. الحجم الافتراضي منذ SQLite 3.12.0 (2016) هو 4096 بايت. قاعدة البيانات بالكامل مقسّمة إلى صفحات ثابتة الحجم.

البايت 18 هو إصدار صيغة الكتابة: 1 لسجل التراجع التقليدي (Rollback Journal)، و 2 لوضع WAL (Write-Ahead Logging). وضع WAL أُضيف في SQLite 3.7.0 (2010) ويسمح بقراءات متزامنة بينما كاتب واحد يُلحق التغييرات بملف -wal منفصل.

البايتات 56-59 تخزّن ترميز النص: 1 لـ UTF-8، و 2 لـ UTF-16LE، و 3 لـ UTF-16BE. الترميز يُحدد عند إنشاء قاعدة البيانات ولا يمكن تغييره. البايتات 96-99 تسجّل رقم إصدار مكتبة SQLite التي عدّلت الملف أخيراً.

غموض الامتداد

امتداد .db ليس حكراً على جهة واحدة. بينما يهيمن SQLite، الحروف الثلاث نفسها تظهر على ملفات من أنظمة مختلفة تماماً.

Berkeley DB أُنشئ في جامعة UC Berkeley بواسطة Margo Seltzer و Keith Bostic، وصدر أولاً عام 1991 ضمن 4.4BSD. هو مخزن مفتاح-قيمة مدمج وليس قاعدة بيانات علائقية. Sleepycat Software تولّت تطويره تجارياً عام 1996 بعد طلب من Netscape. Oracle استحوذت على Sleepycat في فبراير 2006 وغيّرت الرخصة إلى AGPL v3 عام 2013 مما قلّص الاعتماد عليه بشكل حاد.

Windows Thumbs.db هو مستند OLE مركّب يحفظ صوراً مصغّرة لمحتويات المجلد. ظهر مع Internet Explorer 4 لنظام Windows 95-98 واستمر حتى Windows XP. بدءاً من Windows Vista، نقلت Microsoft التخزين المؤقت للصور المصغّرة إلى موقع مركزي (thumbcache_xxx.db). ملفات Thumbs.db لها أهمية جنائية: مكتب التحقيقات الفيدرالي استخدمها كدليل في قضية عام 2008 لأن المخبأ يكشف عن الصور التي شوهدت سابقاً حتى بعد حذف الأصول.

كيف تحدد نوع ملف .db مجهول

أول بايتات الملف تكشف المصدر:

  • بايتات تبدأ بـ 53 51 4C 69 74 65 ("SQLite") في الموضع 0 = قاعدة بيانات SQLite
  • بايتات تبدأ بـ D0 CF 11 E0 في الموضع 0 = مستند OLE مركّب (Thumbs.db أو مشابه)
  • توقيعات أخرى = Berkeley DB أو صيغ خاصة بتطبيقات

السياق يساعد أيضاً. ملف .db على جهاز Android أو iOS هو بشبه يقين SQLite. ملف Thumbs.db في مجلد Windows هو مخبأ صور مصغّرة.

التلف والاستعادة

قواعد بيانات SQLite قد تتلف بسبب: انقطاع الكتابة أثناء معاملة، حذف ملف WAL أو Journal أثناء فتح قاعدة البيانات، نسخ الملف أثناء عملية كتابة جارية، امتلاء القرص أثناء الكتابة، أو استضافة الملف على أقراص شبكية حيث يفشل القفل بصمت.

أمر PRAGMA integrity_check يفحص كل صفحة B-tree ويتحقق من سلامة البنية والمجاميع الاختبارية ومحاذاة الفهارس. يعيد "ok" إذا لم يجد تلفاً. للملفات التالفة، أمر .recover (أُضيف في SQLite 3.29.0) يصدّر جميع البيانات القابلة للاستعادة كتعليمات SQL.

ACID والتزامن

SQLite يوفر توافقاً كاملاً مع معايير ACID — الذرية والاتساق والعزل والمتانة — عبر آلية السجل. في وضع Rollback Journal، محتويات الصفحة الأصلية تُكتب في ملف -journal منفصل قبل التعديل. في وضع WAL، الصفحات الجديدة تُلحق بملف -wal ويستمر القرّاء في رؤية الحالة السابقة حتى يُنهي الكاتب المعاملة.

قيد الكاتب الواحد هو القيد المعماري الأبرز في SQLite. اتصال واحد فقط يستطيع الكتابة في كل لحظة. هذا يجعل SQLite غير مناسب لأحمال الخوادم ذات التزامن العالي لكنه مثالي للتخزين المحلي للتطبيقات.

ملكية عامة والتزام طويل الأمد

شفرة SQLite المصدرية ملكية عامة (Public Domain) — ليست مجرد مفتوحة المصدر بل مُهداة صراحةً بلا أي قيود حقوق نشر. المساهمون يوقّعون إقراراً بإهداء عملهم للملكية العامة. مكتبة الكونغرس تعترف بـ SQLite كأحد أربع صيغ موصى بها للتخزين طويل الأمد لمجموعات البيانات. مطوّرو SQLite أعلنوا نيتهم صيانة البرنامج وصيغة الملف حتى عام 2050.

مقارنة .DB مع البدائل

مقارنة .DB مع الصيغ البديلة
المقارنة المعيار الفائز
.DB (SQLITE) vs .MDB
متطلبات الخادم
SQLite بلا خادم — المحرّك يعمل كمكتبة مرتبطة بالتطبيق. MDB (Microsoft Access) يحتاج محرّك Access Database أو تثبيت Access الكامل على Windows. SQLite يعمل على كل المنصات.
DB (SQLITE) أفضل
.DB (SQLITE) vs .MDB
دعم المنصات المتعددة
SQLite يعمل على Windows و macOS و Linux و iOS و Android وكل منصة مدمجة. MDB مقتصر على Windows ويحتاج برامج تشغيل Microsoft حتى للقراءة فقط.
DB (SQLITE) أفضل
.DB (SQLITE) vs .CSV
قدرات الاستعلام
SQLite يدعم SQL الكامل: JOIN و استعلامات فرعية و تجميع و فهارس و معاملات. CSV نص مسطّح بلا محرّك استعلام — يجب تحميله بالكامل في الذاكرة ومعالجته برمجياً.
DB (SQLITE) أفضل
.DB (SQLITE) vs .CSV
سهولة القراءة البشرية
CSV نص عادي يُقرأ في أي محرر نصوص أو جدول بيانات. ملفات SQLite .db ثنائية وتحتاج أداة تفهم SQLite للفحص. لتبادل البيانات الجدولية البسيطة، CSV أسهل وصولاً.
CSV أفضل
.DB (SQLITE) vs .تفريغ SQL
قابلية النقل بين محركات قواعد البيانات
تفريغ SQL يحتوي تعليمات SQL معيارية تستوردها أغلب محركات قواعد البيانات مع تعديلات بسيطة في البنية. ملف .db مقيّد بـ SQLite — PostgreSQL و MySQL لا يستطيعان قراءته مباشرة.
تفريغ SQL أفضل
.DB (SQLITE) vs .تفريغ SQL
أداء الاستعلام
ملف SQLite .db قاعدة بيانات حيّة مع فهارس وأشجار B-tree وتخطيط صفحات محسّن. تفريغ SQL يحتاج إعادة استيراد وبناء فهارس قبل أن تعمل الاستعلامات بكفاءة.
DB (SQLITE) أفضل

المرجع التقني

نوع MIME
application/octet-stream
المطوّر
Various
سنة التقديم
1970
معيار مفتوح
لا

البنية الثنائية

ملفات SQLite .db تبدأ بترويسة من 100 بايت تحتوي السلسلة السحرية "SQLite format 3\000" (16 بايت) وحجم الصفحة (2 بايت big-endian) وإصدارات صيغة الملف وعدد الصفحات وكعكة المخطط وترميز النص ورقم إصدار SQLite الذي كتب الملف أخيراً. قاعدة البيانات مقسّمة إلى صفحات ثابتة الحجم (افتراضي 4096 بايت). الصفحة 1 تحمل الترويسة وجذر جدول sqlite_master (المخطط). صفحات داخلية وورقية تشكّل أشجار B-tree للجداول (rowid B-trees) والفهارس (index B-trees). صفحات الفيض تخزّن القيم التي تتجاوز المساحة المتاحة في الصفحة.

OffsetLengthFieldExampleDescription
0x00 16 بايت السلسلة السحرية 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 ASCII "SQLite format 3" متبوعة ببايت فارغ. تُعرّف الملف كقاعدة بيانات SQLite.
0x10 2 بايت حجم الصفحة 10 00 حجم صفحة قاعدة البيانات بالبايت (big-endian). الافتراضي 4096. أس 2 بين 512 و 65536 (القيمة 1 تعني 65536).
0x12 1 بايت إصدار صيغة الكتابة 01 1 = وضع سجل التراجع التقليدي (Rollback Journal)، 2 = وضع WAL (Write-Ahead Logging).
0x13 1 بايت إصدار صيغة القراءة 01 1 = تقليدي، 2 = WAL. القارئ يجب أن يدعم هذا الإصدار لفتح الملف.
0x18 4 بايت عدّاد تغيير الملف 00 00 00 02 يزداد مع كل تأكيد معاملة (Commit). يُستخدم لاكتشاف التغييرات وإبطال المخابئ.
0x1C 4 بايت حجم قاعدة البيانات بالصفحات 00 00 00 02 إجمالي عدد الصفحات في ملف قاعدة البيانات (big-endian uint32).
0x38 4 بايت ترميز النص 00 00 00 01 1 = UTF-8، 2 = UTF-16LE، 3 = UTF-16BE. يُحدد مرة واحدة عند الإنشاء ولا يمكن تغييره.
0x60 4 بايت SQLITE_VERSION_NUMBER 00 2E 8A 14 إصدار المكتبة مُشفّر كعدد صحيح (مثلاً 3050004 = SQLite 3.50.4). يُحدد أي إصدار SQLite عدّل الملف أخيراً.
1991Berkeley DB صدر في جامعة UC Berkeley بواسطة Margo Seltzer و Keith Bostic كمخزن مفتاح-قيمة مدمج يستخدم امتداد .db2000D. Richard Hipp يُنشئ SQLite لنظام مراقبة أضرار في البحرية الأمريكية على مدمّرات صاروخية موجّهة؛ الإصدار 1.0 صدر 17 أغسطس2004SQLite 3.0 يُقدّم صيغة الملف الحالية مع Manifest Typing ودعم UTF-8/UTF-16 وبنية الترويسة من 100 بايت المستخدمة حتى اليوم2006Oracle تستحوذ على Sleepycat Software (مطوّر Berkeley DB) في فبراير؛ SQLite يصبح قاعدة البيانات المحلية الافتراضية على Android و iOS2010SQLite 3.7.0 يضيف Write-Ahead Logging (وضع WAL) مُمكّناً القراءة المتزامنة إلى جانب كاتب واحد2014مكتبة الكونغرس تُصنّف SQLite كأحد أربع صيغ موصى بها للتخزين طويل الأمد لمجموعات البيانات2021SQLite 3.36 يضيف جداول STRICT للفرض الاختياري لأنواع الأعمدة استجابةً لطلب طويل الأمد من مؤيدي الكتابة الصارمة
عرض جميع الجداول في قاعدة بيانات SQLite أخرى
sqlite3 database.db '.tables'

يفتح ملف SQLite .db ويطبع أسماء جميع الجداول. أداة sqlite3 مثبّتة مسبقاً على macOS وأغلب توزيعات Linux. على Windows، حمّلها من sqlite.org/download.html.

تصدير جدول إلى CSV مع أسماء الأعمدة أخرى
sqlite3 -header -csv database.db 'SELECT * FROM users;' > users.csv

يستعلم عن جدول ويكتب النتائج كـ CSV مع أسماء الأعمدة في السطر الأول. مفيد لاستيراد البيانات في جداول البيانات أو أنظمة قواعد بيانات أخرى.

تفريغ قاعدة البيانات بالكامل إلى ملف SQL نصي أخرى
sqlite3 database.db .dump > backup.sql

يصدّر المخطط الكامل (تعليمات CREATE TABLE) وجميع البيانات (تعليمات INSERT) كنص SQL محمول. المخرجات تستطيع إعادة إنشاء قاعدة البيانات على أي نظام متوافق مع SQL.

فحص سلامة قاعدة البيانات أخرى
sqlite3 database.db 'PRAGMA integrity_check;'

يتفقد كل صفحة B-tree ويتحقق من سلامة البنية والمجاميع الاختبارية ومحاذاة الفهارس. يعيد "ok" إذا لم يجد تلفاً أو وصفاً لكل مشكلة مكتشفة.

تحديد نوع ملف .db بالبايتات السحرية أخرى
file database.db

أمر file يقرأ البايتات السحرية ويُبلّغ عن نوع الملف. لملفات SQLite يطبع "SQLite 3.x database". لملفات Thumbs.db يُبلّغ "Composite Document File" (OLE). يعمل على macOS و Linux.

متوسط

نقاط الضعف

  • حقن SQL عندما تبني التطبيقات استعلامات بدمج مدخلات المستخدم مباشرة في سلاسل SQL بدون تعليمات مُحدّدة المعاملات
  • بيانات حساسة مخزّنة بلا تشفير — أي شخص يملك وصولاً لنظام الملفات يستطيع قراءة الرسائل وجهات الاتصال وسجلات المكالمات وسجل التصفح من ملفات .db على الأجهزة المحمولة
  • الصفوف المحذوفة تبقى في صفحات القائمة الحرة حتى تنفيذ VACUUM مما يسمح بالاستعادة الجنائية لبيانات يُفترض أنها أُزيلت
  • ملفات WAL و Journal قد تحتوي كتابات حديثة حتى بعد مسح قاعدة البيانات الرئيسية
  • ملفات Thumbs.db على محركات الأقراص الشبكية المشتركة تكشف أي صور شوهدت في المجلد حتى بعد حذف الصور

الحماية: FileDex لا يفتح أو يُنفّذ أو يُحلّل ملفات قواعد البيانات. هذه صفحة مرجعية فقط.

واجهة رسومية مجانية مفتوحة المصدر لإنشاء وتحرير والاستعلام عن قواعد بيانات SQLite
DBeaver أداة
أداة قواعد بيانات عالمية مجانية تدعم SQLite و PostgreSQL و MySQL وعشرات المحركات الأخرى
sqlite3 CLI أداة
صدفة سطر الأوامر الرسمية لـ SQLite للاستعلام وإدارة ملفات .db، مثبّتة مسبقاً على macOS وأغلب توزيعات Linux
better-sqlite3 مكتبة
ربط SQLite متزامن لـ Node.js، الخيار الأسرع لـ JavaScript على جانب الخادم
Python sqlite3 مكتبة
وحدة المكتبة القياسية للوصول إلى SQLite في Python، متاحة بدون أي تثبيت إضافي
Datasette أداة
ينشر قواعد بيانات SQLite كتطبيقات ويب تفاعلية مع واجهة JSON API وبحث وتصفّح متعدد الأوجه