SQLite چیست

در این آموزش مروری کلی بر روی پایگاه‌داده SQLite خواهیم داشت تا بدانیم SQLite چیست و در مورد ویژگی‌هایی که باعث شده تا این پایگاه داده پر استفاده‌ترین باشد، صحبت خواهیم کرد.

SQLite چیست

همانطور که از نام این پایگاه‌داده پیداست، از دو قسمت SQL و Lite تشکیل شده است. واژه SQL بیانگر این است که پرس و جو در این پایگاه داده از استاندارد مشترک میان همه پایگاه‌داده‌های رابطه‌ای تبعیت می‌کند و واژه Lite بیانگر light weight یا سبک و کم حجم بودن است. یعنی نصب، مدیریت و استفاده از منابع در این پایگاه‌داده بسیار اندک است. از این رو این ابزار را میتوان به راحتی در هر محیطی مورد استفاده قرار داد. در واقع SQLite یک کتابخانه نرم‌افزاری است که یک سیستم مدیریت پایگاه داده‌ای رابطه‌ای را برای شما فراهم می‌کند.

امکانات SQLite

مهمترین امکانات این پایگاه‌داده عبارتند از:

  • self-contained
  • serverless
  • zero-configuration
  • transactional

در ادامه به تشریح هر یک از ویژگی‌های فوق می‌پردازیم.

Self-Contained

این ویژگی به معنای خودمختار بودن است. یعنی این کتابخانه برای راه‌اندازی به حداقل پشتیبانی از سمت سیستم عامل نیازمند است. به بیان دیگر بیشتر نیازهای خود برای اجرا را خودش تامین می‌کند. این ویژگی باعث می‌شود که بتوان SQLite را در هر محیطی مورد استفاده قرار داد. به عنوان مثال گوشی‌های iPhone و Android و کنسول‌های بازی و حتی برخی از دستگاه‌های پخش چندرسانه‌ای این پایگاه‌داده را در خود جای داده‌اند.

جالب است بدانید که SQLite با زبان معروف و قدرتمند C توسعه داده شده است و شامل دو فایل به نام‌های sqlite3.c و sqlite3.h می‌شود. در هر برنامه‌ای که نیاز به این پایگاه‌داده باشد، تنها کافیست تا این دو فایل را به سورس کد برنامه اضافه کرده و برنامه خود را کامپایل کنیم.

Serverless

در حالت عادی، یک سیستم مدیریت پایگاه اطلاعات مانند MySQL یا PostgreSQL و… برای اجرا به یک پروسس جداگانه نیاز دارند. برنامه‌ای که می‌خواهد به اطلاعات موجود در پایگاه‌داده دسترسی پیدا کند، درخواست خود را به کمک پروتکل TCP/IP به پروسس پایگاه‌داده ارسال می‌کند و جواب را از طریق همین کانال ارتباطی دریافت می‌کند. به این فرآیند، معماری Client/Server می‌گویند.

دیاگرام زیر این معماری را نشان می‌دهد:

ساختار Client-Server

نگران نباشید، SQLite با این ساختار کار نمی‌کند. در واقع هنگام استفاده از SQLite به سرور نیاز نداریم. در واقع این پایگاه‌داده با برنامه ما ادغام می‌شود و دسترسی به فایل‌های پایگاه داده را میسر می‌کند. به این طریق، خواندن و نوشتن در پایگاه‌داده مستقیما با خواندن و نوشتن در فایل‌های آن صورت می‌گیرد.

دیاگرام زیر معماری بدون نیاز به سرور SQLite را نمایش می‌دهد:

ساختار SQLite

Zero configuration

از آنجا که SQLite نیازمند سرور نیست، نیازی به نصب ندارد و همچنین چون پروسس سرور نداریم، تنظیماتی برای این سرور هم نخواهیم داشت.

Transactional

در SQLite تمام تراکنش‌ها به طور کامل ACID-Compliant هستند. این یعنی تمام پرس و جو‌ها و تغییرات دارای ویژگی‌های زیر هستند:

  • Atomic
  • Consistent
  • Isolated
  • Durable

به بیان دیگر، تمام تغییراتی که در یک تراکنش گنجانده شده‌اند یا به طور کامل اتفاق می‌افتند یا اصلا اتفاق نمی‌افتند. مثلا زمانی که شرایط ناخواسته‌ای رخ بدهد، مثلا برنامه ما Crash کند، سیستم به علت نوسان برق یک‌باره خاموش شود یا سیستم عامل دچار مشکل شود، اگر تراکنشی در حال اجرا باشد و به اتمام نرسیده باشد، پایگاه داده به وضعیت قبل از آن تراکنش بر‌می‌گردد و به این صورت، تغییرات بطور ناقص بر روی پایگاه داده اعمال نخواهند شد.

ویژگی‌های خاص SQLite

اول اینکه SQLite از نوع داده‌ای پویا(dynamic data type) برای جداول بهره می‌برد. این یعنی هر نوع مقداری را می‌توان در هر ستونی، بدون در نظر گرفتن نوع داده‌ای آن ذخیره کرد!

دوم اینکه SQLite به شما این امکان را می‌دهد که با یک connection به طور همزمان به چندین فایل پایگاه‌داده دسترسی پیدا کنید. این قابلیت ویژگی‌های خیلی خوبی را به همراه خواهد آورد. مثلا می‌توانید جدوالی از پایگاه‌های داده‌ای مختلف را با هم Join کنید و یا اطلاعات یک جدول را فقط با یک دستور در جدول دیگر کپی کنید.

و در آخر، SQLite به شما این امکان را می‌دهد که به جای استفاده از سیستم فایل، پایگاه داده خود را در حافظه RAM سیستم ایجاد کنید. این نوع پایگاه‌داده از سرعتی فوق‌العاده برخوردار است!

منابع:

موفق و پیروز باشید…

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

bigtheme