MIDOONY Logo

SQLite چیست و چرا اینقدر محبوب است ؟

1400/05/21
SQLite چیست و چرا اینقدر محبوب است ؟

#SQLite یک #پایگاه_داده رابطه ای سازگار با #sql است که برخلاف سایر سیستم های مبتنی بر sql مانند #MySQL و #PostgreSQL از #معماری_کلاینت_سرور استفاده نمی نماید. کل برنامه شامل یک کتابخانه زبان C است که در نرم افزارها قرار می گیرد. پایگاه داده یک بخش جدایی ناپذیر از برنامه می شود و باعث عدم نیاز به منابع زیاد می گردد. 
SQLite داده ها را در یک فایل منفرد ذخیره می نماید بنابراین نیازی به سرور اختصاصی یا فایل سیستم خاصی نمی باشد. استقرار SQLite بسیار ساده است و شامل بکارگیری کتابخانه آن و ایجاد یک فایل ساده می گردد.
این سادگی منجر به استفاده گسترده این پایگاه داده در نرم افزارها شده است. تصور می شود که تعداد نصب های SQLite از کل نصب های سایر پایگاه های داده بیشتر است، زیرا با تمام سیستم عامل های مهم، اکثر زبان های برنامه نویسی، سطح گسترده ای از سخت افزارها و بسیاری از محصولات نرم افزاری مهم همراه است.

مزایای SQLite
SQLite یک پایگاه داده سازگار با sql بدون وابستگی به منابع است. همانطور که از اسم آن برمی آید نسخه سبکی است که تقریبا روی هر چیزی که از زبان C و سیستم ذخیره فایل پشتیبانی نماید قابل اجرا می باشد و برای تمام زبان های برنامه نویسی سطح بالای محبوب در دسترس است.
چون پایگاه های داده SQLite بصورت فایل ساده می باشند بسادگی قابل جابجایی و پشتیبان گیری هستند. عدم وجود سرور، راه اندازی آنرا راحتتر می کند ضمنا هیچ فرایند خاصی برای نظارت، راه اندازی مجدد یا مسائل امنیتی وجود ندارد.
نرم افزارها از مزیت افزایش انعطاف پذیری و کاهش زمان توسعه از طریق کاربرد SQLite بهره می برند. استفاده از پایگاه داده SQLite به جای فایل های متنی مورد استفاده برای پیکربندی و ذخیره سازی، دسترسی به اطلاعات در دستگاه ها را یکپارچه کرده و به حفظ ثبات عملکرد کمک می کند.
پایگاه های داده دارای سیستم حفاظتی در برابر خرابی هستند ولی اینکار برای سیستم مبتنی بر فایل ساده مورد نیاز نیست. عملکرد SQLite بصورت تراکنشی است، بنابراین می تواند از وقایع عدم موفقیت عملیات جلوگیری کند. اگر یک عملیات در یک تراکنش موفق نباشد، پایگاه داده به حالت اولیه باز می گردد.
SQLite همچنین در برابر خطاهای ذخیره سازی و کمبود حافظه مقاوم است. پایگاه های داده می توانند هنگام خرابی های سیستمی و قطع برق بازیافت شوند و حفظ داده را بصورت ایمن انجام دهند.

محدودیت ها
SQLite از اکثر ویژگی های زبان استاندارد #SQL92 پشتیبانی می کند ولی برخی از مغایرت ها و ویژگی های خاص وجود دارد، که البته در مورد سایر پایگاه های داده SQL نیز وضع به همینگونه هست. با این اوصاف، برخی از محدودیت های SQLite وجود دارد که باید در نظر گرفته شوند.
SQLite رویکرد سخت گیرانه ای برای مدیریت نوع داده ندارد، که با روال برخورد با نوع داده در دیگر پایگاه های داده فرق می کند. SQLite از وارد کردن مقادیر نامعتبر جلوگیری نمی کند، بنابراین می توانید یک رشته حرفی را در یک ستون از نوع عدد صحیح بنویسید. بطور کلی نوع داده ها بسیار انعطاف پذیر هستند، به ویژه اگر از سیستم پایگاه داده دیگری داده ها بخواهند وارد شوند.
SQLite همچنین از برخی انواع داده پشتیبانی نمی کند. مثلا BOOLEAN یا DATETIME وجود ندارند، بنابراین باید از متن یا مقادیر صحیح به جای آن ها استفاده کرد. در صورتی که بخواهیم از یک بستر جایگزین استفاده نماییم، این مسئله می تواند باعث مشکل شود زیرا مقادیر نامعتبر در پایگاه داده در جای دیگر پذیرفته نمی شود.
طراحی فایل ساده، موارد استفاده SQLite را محدود می کند. مقیاس پذیری و توزیع پایگاه داده بطور واقعی امکان ندارد، زیرا تمام ارتباطات تحت یک فایل می باشند. ضمنا نوشتن همزمان اطلاعات غیرممکن است، زیرا پایگاه داده برای هر ارتباط قفل می شود. این محدویت باعث کاهش عملکرد در روال های نوشتن حجیم می شود، زیرا عملیات در صف قرار می گیرند.
SQLite چند کاربره نیست. در پایگاه های داده مانند MySQL و PostgreSQL می توانید حساب های کاربری درون پایگاه داده ایجاد کنید که کلاینت ها با آنها متصل شوند. قابلیت چند کاربره امکان محدود کردن دسترسی به اطلاعات و عملیات خاص را فراهم می کند.
مدیریت کاربر در پایگاه داده SQLite کاربرد ندارد، زیرا هر نمایی از پایگاه داده بصورت یک فایل ساده روی دیسک ذخیره می شود. دسترسی به پایگاه های داده SQLite در شبکه امکان پذیر نیست، بنابراین حساب کاربری نگهداری نمی شود. برای ایجاد محدودیت و مجوز خواندن/نوشتن باید از مجوزهای سطح سیستم عامل استفاده کرد. با این وجود، عدم تعریف کاربر در نرم افزارهایی که با داده های حساس کار می کنند و نیاز به وجود چندین حساب کاربری جداگانه جهت حفاظت از اطلاعات دارند باعث نگرانی می شود.

چه موقع از SQLite استفاده نماییم؟
زمانیکه بخواهید قابلیت پرس و جوی قوی sql و ذخیره سازی را با سهولت دسترسی به سیستم فایلی ترکیب کنید. در این حالت، عملکرد و انعطاف پذیری بیشتری در خواندن/نوشتن فراهم می شود.
این سیستم برای محیط هایی که کاربران نهایی هرگز نباید از وجود پایگاه داده مطلع باشند مناسب است. SQLite نیازی به راهبری و نگهداری ندارد، و این امر آنرا برای برنامه های تلفن همراه و دستگاه های اینترنت اشیا ایده آل می کند چون پایگاه های داده کلاینت-سروری با خاموش شدن سرور یا قطع شبکه، دچار وقفه می گردند.
SQLite همچنین به عنوان پشتیبان برای نرم افزار ها و وب سایت های سمت سرور بخوبی عمل می کند به شرطی که فقط برای خواندن بکار رود. کارایی SQLite می تواند با سایر پایگاه داده برابری نماید یا حتی بیشتر باشد زیرا نیاز به تبادلات شبکه و سربارهای اضافی برای اجرا ندارد.
اگر مدیریت حجم زیادی از داده ها مد نظر است، نباید از SQLite استفاده شود. گرچه محدودیت این پایگاه داده 281 ترابایت است، عملا، برای مجموعه داده های بالای 1 گیگابایت استفاده از فناوری مبتنی بر سرور مناسب تر می باشد. ضمنا به دلیل عدم پشتیبانی همزمان نوشتن اطلاعات، امکان استفاده از SQLite برای تغییر داده ها توسط چندین کلاینت وجود ندارد.

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

#Database

1 414
دیدگاه کاربران
0 دیدگاه
شما هم دیدگاه خود را ارسال کنید