پایگاه داده های توکار
امروزه در بین توسعهدهندگانی که بر پایه نرمافزارهای آزاد کار میکنند، پایگاه داده هایی نظیر MySQL یا PostgreSQL بسیار محبوب هستند.
اما گونه دیگری از پایگاه های داده وجود دارند که با معماری سرویسدهنده و سرویسگیرنده کار نمیکنند. این گونه از پایگاه های داده به صورت توکار (داخل خود برنامه) و به شکل یک کتابخانه مانند کتابخانههای دیگر کار میکنند یعنی با شروع برنامه، کار آن نیز آغاز شده و با به پایان رسیدن آن، به کار خود پایان میدهد. سوالی که مطرح میشود این است که اصولا در چه مواردی میتوان از آنها استفاده کرد. از عمدهترین کاربردهای آنها در سیستمهای Embed همانند اندروید است. این پایگاه های داده معمولا نیازی به اعمال تنظیمات پیچیده ندارد مانند تنظیماتی که در سیستمهای مبتنی بر سرویسدهنده/ سرویسگیرنده شاهد هستیم، ندارند. به همین دلیل نرمافزار گزینه مناسبی برای محیطهایی محسوب میشود که دسترسی به آن به صورت روزمره کار آسانی نیست. این مقاله قصد دارد تعدادی از این پایگاه داده ها را معرفی و بررسی کند.
SQLite
بک پایگاه داده رابطهای است که تقریبا تمامی توسعهدهندگان آن را میشناسند. این کتابخانه به زبان C نوشته شده است و بخش عمدهای از استاندارد SQL را پوشش میدهد. کل اطلاعات پایگاه داده در یک فایل ذخیره میشود و از آنجایی که اکثر زبانهای برنامهنویسی از آن پشتیبانی میکنند، از قابلیت حمل بسیار بالایی برخوردار است.
از جمله معایب آن این است که عملیات نگهداری (Maintenance) در آن باید به صورت دستی و یا به وسیله خود برنامه انجام شود. به همین دلیل اگر به دفعات بسیار، رکوردهای پایگاه داده خود را بهروزرسانی یا حذف میکنید، احتمالا گزینه مناسبی برای شما نخواهد بود.
H2
یک پایگاه داده رابطهای دیگر که فقط در دنیای جاوا بهشمار میآید و مانند SQLite از بخش عمدهای از استاندارد SQL پشتیبانی میکند. این پایگاه داده به زبان جاوا نوشته شده است و هماهنگی به مراتب بیشتری در مقایسه با SQLite با اکوسیستم جاوا دارد. عملیات نگهداری در آن به صورت خودکار و بدون اطلاع کاربر انجام میشود.
یکی از مزایای آن پشتیبانی از حالت In-Memory است که به شما اجازه میدهد اطلاعات خود را تنها در حافظه دستگاه نگهداری کنید. H2 یک وب سرور داخلی دارد که میتوانید به وسیله مرورگر، محتوای داخلی پایگاه داده را مشاهده کنید. تمامی این امکانات در یک فایل jar به حجم یک مگابایت در اختیار شماست.
Berkeley DB
از فضای رابطهای که کمی فاصله بگیریم، این پایگاه داده که برای ذخیره داده های Key/Value مورد استفاده قرار میگیرد به زبان C نوشته شده است و از اکثر زبانهای برنامهنویسی مرسوم پشتیبانی میکند.
همچنین یک Native با امکانات بیشتر برای زبانهای جاوا و سیپلاسپلاس دارد. سرعت و کارایی بسیار بالای آن باعث شده که بیشترین استفاده را در سیستمهای بلادرنگ و با حجم بسیار بالا داشته باشد، همچنین از قابلیت فشردهسازی پایگاه داده نیز برخوردار است.
EJDB
اگر از عاشقان MongoDB هستید، این پایگاه داده برای شما ساخته شده است. به زبان C نوشته شده و از بیشتر زبانها پشتیبانی میکند. در رده پایگاه دادههای Document Store قرار میگیرد.
زبان پرس و جوی آن بسیار شبیه به زبان پرس و جوی MongoDB است. اگر در سمت سرور از Node JS استفاده میکنید، حتی میتوانید از آن به عنوان پایگاه داده اصلی برنامه خود بهره ببرید.
LevelDB
گوگل وارد میشود. این پایگاه داده از سوی گوگل توسعه داده شده و در مرورگر کروم از آن استفاده میشود. به زبان سیپلاسپلاس نوشته شده است و در رده پایگاه های داده Key/Value قرار میگیرد.
متاسفانه پشتیبانی رسمی مناسبی از سایر زبانها ندارد. در ردهبندی کارایی، قابل مقایسه با Berkeley DB است که با اختلاف فاحش از بقیه پیش افتادهاند. از قابلیت فشردهسازی نیز برخوردار است.
UnQLite
از پایگاههای داده چندکاره است. در رده پایگاههای داده Key/Value و Document Store قرار دارد. از بیشتر زبانها پشتیبانی میکند. تنها مزیت آن نسبت به دیگر برنامهها در چندکاره بودن آن است.
CodernityDB
یک ObjectDB فقط برای برنامهنویسان پایتون. در این پایگاه داده میتوانید اشیا (Object) پایتون را بدون هیچ دردسر و واسطی ذخیره کنید و بر مبنای همه فیلدهای آن شی، از پایگاه داده خود Query بگیرید. از مزیتهای دیگر آن پشتیبانی از رمزنگاری دادهها است.
MapDB
از پایگاه های داده Key/Value برای جاوا. به گونهای آن را میتوان یک موتور ذخیرهسازی برای Collection های جاوا دانست. قابلیت In-Memory دارد و از رمزنگاری و فشردهسازی پشتیبانی میکند، همچنین قابلیت Snapshot گرفتن از پایگاه داده همزمان با کار را نیز فراهم کرده است.
قابلیت حذف رکوردهای قدیمی را در صورتی دارد که اندازه پایگاه داده بزرگ شود و در این حالت مشابه یک Cache عمل میکند.
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش جفنگ استفاده میکند. درباره چگونگی پردازش دادههای دیدگاه خود بیشتر بدانید.
دیدگاهتان را بنویسید