SQLite پایگاه داده ای سبک و چابک

۱۳۸۷/۰۶/۱۸ ۲۳:۰۱ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۱۸ دسته بندی : ، ، 5

SQLite Logo
SQLite یک پایگاه داده کوچک (حجمی در حدود 500 KB) که به زبان C در قالب یک کتابخانه (Library) نوشته شده است و از پایگاه داده های RDBMS به حساب می آید. این پایگاه داده بدون لیسانس (Public Domain) ، آزاد و open source منتشر می شود.
  • بررسی ویژگیها
برخلاف پایگاه داده های client-server پایگاه داده ی SQLite به عنوان یک پروسه مجزا عمل نمی کند. بلکه به عنوان کتابخانه ای عمل می کند که همراه برنامه انتشار یافته و امکان دسترسی به دیتا را به برنامه می دهد و همانند بخشی از آن عمل می کند.
برنامه می بایست از طریق توابع فراهم شده اقدام به فراخوانی و دسترسی به دیتا نمایند که این نحوه فراخوانی باعث بهینه تر و سریعتر در دسترس قرار گرفتن نتایج خواهد شد. این روش از درخواست به سرویس های دیگر جهت دریافت اطلاعات که سایر پایگاه داده های از آن استفاده می کنند برای داده های کم حجم و پایگاه داده کوچک، بهینه تر است.

تمامی اطلاعات این بانک اطلاعاتی (شامل جداول، تعریفات، دیتا و غیره) در یک فایل که برای تمامی سیستم عامل ها یکسان است ذخیره می شود. این روش یکی از دلایل موفقیت این پایگاه داده به شمار می آید.
SQLite با توجه به نوع ساختاری که دارد تعدادی از ویژگی های استاندارد که در SQL-92 به تصویب رسیده را پشتیبانی نمی کند. شاید بزرگترین این موارد عدم پشتیبانی از توابع و stored procedure ها باشد. سایر موارد استاندارد SQL پیاده سازی شده و در دسترس هستند.
موارد قابل استفاده در این پایگاه داده را می توان trigger ها، View ها و Query های پیچیده نام برد.

یکی از موارد جالب در پیاده سازی SQLite نحوه اعمال نوع داده ها به فیلدها (Columns) است. در این پایگاه داده به جای اختصاص دادن نوع به فیلد مورد نظر که در اکثر پایگاه داده های معتبر از این روش استفاده می شود، فقط نوع به مقدار (value) داده شده اختصاص داده می شود. برای مثال اگر نوع فیلدی Integer تعریف شده باشد و کاربر قصد وارد کردن داده ای از نوع رشته را داشته باشد، موتور پایگاه داده ابتدا سعی خواهد کرد که داده را به نوع Integer تبدیل کند. این باعث افزایش انعطاف پذیری نوع داده های فیلدها می شود. مخصوصا وقتی که نیاز به عمل bind در سایر زبانها به صورت دینامیک مورد نیاز باشد.

  • شیوه مدیریت دسترسی ها
چندین پروسه یا thread می تواند به صورت همزمان به یک پایگاه داده بدون مشکل دسترسی داشته باشد و از آن اطلاعات دریافت نمایند. ولی برای نوشتن اطلاعات فقط یک پروسه امکان دسترسی خواهد داشت. سایر پروسه ها باید منتظر بمانند و یا اینکه با خطا مواجه خواهند شد.

  • ابزارهای توسعه
یکی از مهمترین مزیت های این پایگاه داده امکان استفاده آن در اکثر زبانهای برنامه نویسی است. برنامه های دسترسی به این پایگاه داده در اکثر زبانها نوشته شده است و در دسترس است. برای مشاهده ابزارهای دسترسی به این ادرس مراجعه کنید: http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers
مهمترین کتابخانه های رابط برای استفاده از SQLite
dotNET Framework: http://sqlite.phxsoftware.com/
dotNET Framework: http://www.mono-project.com/SQLite
Delphi: http://www.aducom.com/
Delpi: http://wikitaxi.org/delphi/doku.php/products/sqlite3/index
C++: http://www.sqliteplus.com/
Java: http://www.ch-werner.de/javasqlite
PHP: SQLite is bundled with PHP 5. http://www.php.net/
Python: http://pysqlite.org/

برای طراحی و ایجاد پایگاه داده SQLite می توانید از ابزارهای زیر استفاده کنید:
SQLite Manager: یک extension برای مرورگر فایرفاکس که با به سادگی امکان دسترسی به تمامی امکانات SQLite رو فراهم می کند. لینک: https://addons.mozilla.org/en-US/firefox/addon/5817
SQLite مورد مقبولیت فراوانی برای استفاده به عنوان یک دیتابیس Embeded قرار گرفته و در پروژه های زیر مورد استفاده قرار گرفته است:

  • FireFox - این مرورگر برای ذخیره اطلاعات خود از SQLite استفاده می کند.

  • Mac OS X - سیستم عامل شرکت Apple به صورت داخلی از SQLite به عنوان یک پایگاه داده استاندارد استفاده می کند.

  • Skype - این نرم افزار چت و گفت و گوی آنلاین که با مقبولیت خوبی روبروست از SQLite استفاده می کند.

  • Symbian - سیستم عامل گوشی های موبایل در نسخه های جدید خود از این پایگاه داده به صورت توکار استفاده می کند.

  • Android - سیستم عامل جدید گوگل برای موبایل

  • iPhone و iPod touch : در این دو دستگاه محصول Apple از این پایگاه داده استفاده شده است.

  • Google Gears - ابزار گوگل برای نوشتن برنامه های تحت وب با استفاده از تکنولوژی های مختلف روز.
  • معایب
در طی آزمایشات گوناگونی که انجام گرفته سرعت این پایگاه داده در مقابله با حجم اطلاعات زیاد مقداری بیش از حد معمول پایین می آید.
عدم امنیت. در این پایگاه داده هیچ روش خاصی برای حفظ امنیت داده های در نظر گرفته نشده است و این مورد می تواند برای ذخیره داده های حساس مشکل ساز شود.
  • سخن آخر
پایگاه داده SQLite یک ابزار کوچک سریع و مطمئن است که برای مقاصد خاص نوشته شده است. از این پایگاه داده می توانید برای سیستم های Embeded استفاده کنید. یا برای نزم افزار های کوچک و تک کاربره خود تا خود را از شر مشکلات انتشار پایگاه داده های بزرگ همراه نرم افزار خود دور بمانید.
همچنین این یک گزینه فوق العاده برای کسانی است که از access صرفا برای پایگاه داده خود استفاده می کنند.
  • منابع مفید
سایت اصلی: http://www.sqlite.org
دانلود نسخه اصلی: http://www.sqlite.org/download.html
ویژگی های حذف شده از SQL استاندارد: http://www.sqlite.org/omitted.html
ویژگی های پیاده سازی شده: http://www.sqlite.org/lang.html

 

5 بازخورد برای “SQLite پایگاه داده ای سبک و چابک”

  1. نوشته کاملی بود، SQLite همونطوری که گفتی انعطاف پذیری خوبی داره. من در دات نت ازش استفاده کردم، البته فقط برای امتحان.
    Google Gears هم از SQLite به صورت توکار استفاده میکنه.

    پاسخحذف
  2. @ایمان:
    ممنون به خاطر تذکرت، Google Gears هم اضافه شد.

    من هم خیلی دوست دارم ازش استفاده کنم، ولی پروژه هایی که کار میکنم این اجازه رو نمی دن.

    پاسخحذف
  3. [...] SQLite پایگاه داده SQLite بسیار جالب و کار امد است. مزیت: پایگاه داده ای تک فایلی با حجم کم و عدم وابستگی به سیستم عامل. دارای محیط مدیریتی خوب که تمامی امکانات آن را پوشش می دهند. عیب مهم: تنها مشکل بزرگ عدم پشتیبانی از تمامی امکانات استاندارد sql هست که ضعف بزرگ اون محسوب می شود. توضیحات بیشتر در مورد این پایگاه داده را در این پست بخوانید. [...]

    پاسخحذف
  4. [...] بخواهید اطلاعات بیشتری رو بدست بیارید توصیه میکنم به این پست نوشته های یک برنامه نویس مراجعه کنید ولی یک قسمت از مطلب ایشون رو هم اینجا [...]

    پاسخحذف