پایگاه ‌داده‌های توکار

از عمده‌ترین کاربرد‌های آن‌ها در سیستم‌های Embed همانند اندروید است. این پایگاه‌های داده معمولا نیازی به اعمال تنظیمات پیچیده ندارد مانند تنظیماتی که در سیستم‌های مبتنی بر سرویس‌دهنده/ سرویس‌گیرنده شاهد هستیم،‌ ندارند. به همین دلیل نرم‌افزار گزینه مناسبی برای محیط‌هایی محسوب می‌شود که دسترسی به آن به صورت روزمره کار آسانی نیست. این مقاله قصد دارد تعدادی از این پایگاه داده‌ها را معرفی و بررسی کند.

SQLite: یک پایگاه داده رابطه‌ای است که تقریبا تمامی توسعه‌دهندگان آن را می‌شناسند. این کتابخانه به زبان C نوشته شده است و بخش عمده‌ای از استاندارد SQL را پوشش می‌دهد. کل اطلاعات پایگاه‌ داده در یک فایل ذخیره می‌شود و از آن‌جایی که اکثر زبان‌های برنامه‌نویسی از آن پشتیبانی می‌کنند، از قابلیت حمل بسیار بالایی برخوردار است. از جمله معایب آن این است که عملیات نگهداری
(Maintenance) در آن باید به صورت دستی و یا به وسیله خود برنامه انجام شود. به همین دلیل اگر به دفعات بسیار، رکورد‌های پایگاه‌ داده خود را به‌روزرسانی یا حذف می‌کنید، احتمالا گزینه مناسبی برای شما نخواهد بود.

H2: یک پایگاه داده رابطه‌ای دیگر که فقط در دنیای جاوا به‌شمار می‌آید و مانند SQLite از بخش عمده‌ای از استاندارد SQL پشتیبانی می‌کند. این پایگاه داده به زبان جاوا نوشته شده است و هماهنگی به مراتب بیش‌تری در مقایسه با SQLite با اکوسیستم جاوا دارد. عملیات نگهداری در آن به صورت خودکار و بدون اطلاع کاربر انجام می‌شود. یکی از مزایای آن پشتیبانی از حالت In-Memory است که به شما اجازه می‌دهد اطلاعات خود را تنها در حافظه دستگاه نگهداری کنید. H2 یک وب سرور داخلی دارد که می‌توانید به وسیله مرورگر، محتوای داخلی پایگاه داده را مشاهده کنید. تمامی این امکانات در یک فایل jar‌ به حجم یک مگابایت در اختیار شماست.

Berkeley DB: از فضای رابطه‌ای که کمی فاصله بگیریم، این پایگاه داده که برای ذخیره داده‌های
Key/Value مورد استفاده قرار می‌گیرد به زبان C نوشته شده است و از اکثر زبان‌های برنامه‌نویسی مرسوم پشتیبانی می‌کند. همچنین یک نسخه Native با امکانات بیش‌تر برای زبان‌های جاوا و ++C دارد. سرعت و کارایی بسیار بالای آن باعث شده که بیش‌ترین استفاده را در سیستم‌های بلادرنگ و با حجم بسیار بالا داشته باشد، همچنین از قابلیت فشرده‌سازی پایگاه داده نیز برخوردار است.

EJDB: اگر از عاشقان MongoDB هستید، این پایگاه داده برای شما ساخته شده است. به زبان C نوشته شده و از بیش‌تر زبان‌ها پشتیبانی می‌کند. در رده پایگاه داده‌های Document Store قرار می‌گیرد. زبان پرس‌وجوی آن بسیار شبیه به زبان پرس‌وجوی MongoDB است. اگر در سمت سرور از Node JS استفاده می‌کنید، حتی می‌توانید از آن به عنوان پایگاه داده اصلی برنامه خود بهره ببرید.

LevelDB: گوگل وارد می‌شود. این پایگاه داده از سوی گوگل توسعه داده شده و در مرورگر کروم از آن استفاده می‌شود. به زبان ++C نوشته شده است و در رده پایگاه‌های داده Key/Value قرار می‌گیرد. متاسفانه پشتیبانی رسمی مناسبی از سایر زبان‌ها ندارد. در رده‌بندی کارایی، قابل مقایسه با Berkeley DB است که با اختلاف فاحش از بقیه پیش افتاده‌اند. از قابلیت فشرده‌سازی نیز برخوردار است.

UnQLite: از پایگاه‌های داده چندکاره است. در رده پایگاه‌های داده Key/Value و Document Store قرار دارد. از بیش‌تر زبان‌ها پشتیبانی می‌کند. تنها مزیت آن نسبت به دیگر برنامه‌ها در چندکاره بودن آن است.

CodernityDB: یک ObjectDB فقط برای برنامه‌نویسان پایتون. در این پایگاه داده می‌توانید اشیا (Object) پایتون را بدون هیچ دردسر و واسطی ذخیره کنید و بر مبنای همه فیلدهای آن شی، از پایگاه داده خود Query بگیرید. از مزیت‌های دیگر آن پشتیبانی از رمزنگاری داده‌ها است.

MapDB: از پایگاه‌های داده Key/Value برای جاوا. به گونه‌ای آن را می‌توان یک موتور ذخیره‌سازی برای Collectionهای جاوا دانست. قابلیت In-Memory دارد و از رمزنگاری و فشرده‌سازی پشتیبانی می‌کند، همچنین قابلیت Snapshot گرفتن از پایگاه‌ داده همزمان با کار را نیز فراهم کرده است. قابلیت حذف رکوردهای قدیمی را در صورتی دارد که اندازه پایگاه داده بزرگ شود و در این حالت مشابه یک Cache عمل می‌کند.