×

آموزش دیتابیس SQLite

فصل اول :

معرفی دیتابیس SQLite

مقدمه
SQLite برای رقابت و یا مقابله با دیتابیس های کلاینت سروری نظیر MS SQL SERVER وMySQL و یا ORACLE ساخته و طراحی نشده پس SQLite را با آنها مقایسه نکنید .
SQLite برای کاربرد ها و حل مسائل دیگری طراحی و ساخته شده است. SQLite تلاش دارد تا دیتابیسی لوکال را برای برنامه های تک کاربره و وب سایت های با ترافیک کم ، بوجود آورد تا هم قابل حمل باشد و هم بسیار کم حجم ، سبک .و بروی موبایل ها و تبلت ها هم قابل استفاده باشد.
جالب اینجاست که خود سایت SQLite.org نیز برای دیتابیس خود از SQLite استفاده میکند و روزانه پاسخگوی 400 تا 500 هزار رکوئست می باشد! (پس خیلی هم ضعیف نیست)

SQLite چیست ؟

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

SQLite پر استفاده ترین و پرکاربردترین موتور پایگاه داده در جهان است !

هیچ موتور پایگاه داده ایی تا به حال به این گستردگی در جهان نصب و استفاده نشده است!

و از همه جالب تر اینکه Open Source (متن باز) می باشد و شما می توانید براحتی سورس آنرا دانلود و کامپایل نمایید !

هیچ موتور پایگاه داده ایی به این سرعت در جهان رشد نکرده و محبوب نشده است.

یکی از مهمترین ویژگیهای SQLite خاصیت zero-configured بودن آن است و این بدان معناست که برای اینکه SQLite کار کند شما احتیاجی به انجام هیچگونه تغییرات و تنظیماتی در سیستم خود نیستید . و این کاملا برعکس پایگاه دادهایی مثل SQL Server مایکروسافت و یا اوراکل می باشد.

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

چرا SQLite ؟

  • SQLite احتیاجی به سرور مستقل ندارد. (server less)
  • SQLite عملا zero-configuration است یعنی احتیاجی به نصب و Setup کردن و مدیریت ندارد .
  • تمامی اشیاء دیتابیس درون یک فایل ذخیره میشود که وابسته به سیستم عامل خاصی نیست (Cross Platform) یعنی فایل دیتای شما در ویندوز ، سیستم عامل های اپل ، لینوکس و اندروید و ... کار خواهد کرد !
  • SQLite بسیار کم حجم و سبک است با تمامی تنظیمات و امکانات کامل 400 کیلوبایت و بدون یکسری امکانات انتخابی 250 کیلوبایت است !
  • SQLite کاملا مستقل است و هر آنچه لازم دارد را در خود دارد. بنابراین هچگونه وابستگی به منابع و نرم افزار های دیگر ندارد .
  • Transaction های SQLite کامل سازگار با ACID می باشند که این موضوع دسترسی امن و بی خطر از چند پروسس و یا Thread را فراهم می آورد .
  • SQLite بیشتر امکانات زبان SQL که در استاندارد SQL92 وجود دارند را پشتیبانی میکند.
  • SQLite با زبان ANSI –C نوشته شده است و یک API با کاربری ساده را فراهم می آورد .
  • SQLite بروی سیستم عامل های مبتنی بر UNIX شامل (Linux , Mac OS-x , Android ,iOS ) و سیستم عامل های مبتنی بر Windows شامل : Win32 , WinCE و WinRT ، در دسترس است.

تاریخچه SQLite

  • در سال 2000 آقای Richard D. Hipp
    SQLite را طراحی کرده تا دیتابیسی داشته باشد که نیازی به مدیریتی نداشته باشد. و یک برنامه براحتی و بدون نیاز به مدیریت خاصی بتواند اطلاعات را در یک پایگاه داده ذخیره و بازیابی کند.
  • در آگوست سال 2000 نسخه 1.0 SQLite منتشر شده است.
  • در سال 2011 آقای Hipp اعلام کرد که UNQl interface را به SQLite افزوده است و UNQLite (Document oriented database) را توسعه داده است.
    نکته : UnQLite نیز همانند خود SQLite تمامی خواص اصلی آن شامل (self-contained, serverless, zero-configuration, transactional) را دارا می باشد با این تفاوت که NoSQL است . دیتابیس های NoSql همانند MongoDB ، Redis و CouchDB برای ذخیره و بازیابی BigData استفاده میشوند و ساختار ذخیره اطلاعات آن با دیتابیس های مبتنی برSQL متفاوت است . این دیتابیس ها برای ذخیره حجم بسیار زیاد اسناد (Document) بکار میروند و دارای ساختار های بصورت Key/Value می باشند . مثلا آمازون ، گوگل و facebook از NoSql استفاده میکنند. که توضیح کامل آن خارج از محدوده این آموزش است .

محدودیت های SQLite :

تنها تعداد کمی از امکانات استاندارد SQL92 هستند که در SQLite پشتیبانی نمی شوند که عبارتند از :

خصوصیت توضیح
RIGHT OUTER JOIN تنها LEFT OUTER JOIN پشتیبانی می شود
FULL OUTER JOIN تنها LEFT OUTER JOIN پشتیبانی می شود
ALTER TABLE RENAME TABLE و ADD COLUMN پشتیبانی می شوند ولی DROP COLUMN, ALTER COLUMN,
ADD CONSTRAINT پشتیبانی نمی شوند
Trigger support تریگر های FOR EACH ROW پشتیبانی می شوند ولیکن ترگر های FOR EACH STATEMENT پشتیبانی نمی شوند
VIEWs View ها در SQLite فقط خواندنی (Read only) هستند و شما نمی توانید دستورات Insert ,Delete و Update را در آنها اجرا کنید
GRANT and REVOKE تنها مجوز دستیابی که باید تنظیم شود همان مجوز معمولی دسترسی فایل در سیستم عامل است

دستورات SQLite

دستورات کار با دیتا همانند همان دستورات SQL هستند که شامل : CREATE, SELECT, INSERT, UPDATE, DELETE و DROP می باشند که این دستورات بسته به طبیعت کاری که انجام میدهند به گروه های ذیل تقسیم می شوند :

  • DDL - Data Definition Language

    تعریف ، تغییر و یا حذف اشیاء (ابجکت های دیتابیس)

    دستور توضیح
    CREATE جهت ساخت یک ابجکت مثل جدول ، View و سایر ابجکت های دیتابیس
    ALTER انجام تغییر در یک ابجکت موجود مثل یک جدول و و یا یک View
    DROP حذف یک ابجک دیتابیسی همانند یک جدول و یا یک View
  • DML - Data Manipulation Language

    دستورات کار بروی دیتای دیتابیس

    دستور توضیح
    INSERT جهت ساخت و درج یک رکورد
    UPDATE بروز رسانی و انجام تغییرات در مقادیر فیلد های رکورد های موجود
    DELETE حذف رکورد ها
  • DQL - Data Query Language

    جهت انجام پرس و جوها و واکشی اطلاعات از جداول

    دستور توضیح
    SELECT واکشی رکورد ها از یک و یا چند جدول

مفاهیم و موضوعات این فصل عبارتند از :

  • معرفی SQLite

  • تاریخچه SQLite

  • محدودیت های SQLite

  • دستورات SQLite

vatantop
نظرات و سوالات درج سوال/ نظر