BOB
جمعه 17 آبان 1392, 10:37 صبح
بانک اطلاعاتی SQLite (http://www.sqlite.org/) در سال 2000 و توسط یکی از کارمندان شرکت General Dynamics به نام Richard Hipp با زبان C طراحی شد. در حال حاضر این بانک اطلاعاتی توسط شرکتهای بسیار معتبری مانند ORACLE، Adobe، Mozilla، Nokia و … حمایت میشود.
ایده اولیه برای طراحی آن، ایجاد یک بانک اطلاعاتی مستقل و بینیاز از نگهداری و مدیریت، جهت استفاده در پروژههای نظامی نیروی دریایی ایالات متحده بود. شرکت General Dynamics طی قراردادی با نیروی دریایی، در حال طراحی نرمافزاری برای سیستمهای هدایت شونده انهدام موشک در یک سیستم عامل اختصاصی یونیکس با نام HP-UX بود.
اولین نسخه از این بانک اطلاعاتی در ماه آگوست همان سال ارائه شد. معماری نسخه 1.0، مبتنی بر قواعد GNU DBM (معروف به GDBM) بود که امکان استفاده از فیلدهای بدون نوع و بدون محدودیت در طول داده را فراهم مینمود. پس از آن و با ارائه نسخههای بعدی، پیشرفت چشمگیری در پیادهسازی قابلیتهای جدید در SQLite (http://www.sqlite.org/syntaxdiagrams.html) بوقوع پیوست. به عنوان مثال میتوان از تغییر معماری آن به مدل B-Tree و همچنین اضافه شدن قابلیتهای اجرای تراکنش، پشتیبانی از یونیکد و انواع دادهای جدید نام برد. از پیشرفتهای اخیر آن نیز میتوان به ارائه UnQLite برای سازگاری با Document-Oriented Database و NoSQL اشاره کرد.
http://sites.google.com/site/mohammadshamsjavi/img/220px-SQLite370.png (http://sites.google.com/site/mohammadshamsjavi/img/220px-SQLite370.png)
در حال حاضر یک از مهمترین کاربردهای SQLite (http://www.sqlite.org/famous.html)، استفاده از آن در سیستمهای Mobile و Embed است. به عنوان مثال بسیاری از web browser ها (مانند mozilla، chrome، safari و غیره) برای ذخیره سازی تنظیمات داخلی خود از آن استفاده کرده و همچنین این بانک اطلاعاتی سیستم ذخیرهسازی پیشفرض در طراحی برنامههای سیستم عامل Android و iOS نیز هست.
در این مطلب قصد دارم تا برخی از بهترین ابزارهای رایگانی را که برای ایجاد و مدیریت بانکهای اطلاعاتی SQLite مورد استفاده قرار میگیرند معرفی نمایم. ابزارها به ترتیب صعودی و منطبق بر کارایی و قابلیتهایشان معرفی شدهاند.
7. Run:
نقاط قوت: پشتیبانی از Encryption و Compression فقط در خواندن از بانک – وجود تاریخچه و template برای اجرای انواع کوئریها – محاسبه زمان مورد نیاز اجرا کوئری – مناسب برای کار با کوئریهای SQL
نقاط ضعف: عدم امکان import و Export بانک – نیاز به AIR برای اجرا – عدم وجود قابلیتهای گرافیکی برای ایجاد بانک و جداول
http://sites.google.com/site/mohammadshamsjavi/img/run.png (http://sites.google.com/site/mohammadshamsjavi/img/run.png)
6. SQLiteMan:
نقاط قوت: پشتیبانی از index، view، trigger، Integrity Check در بانک – امکان export ساده بهsql query – محاسبه زمان مورد نیاز اجرا کوئری – نمایش کدهای DDL – امکان نمایش فیلدهای BLOB به صورت تصویر – نمایش و تغییر تنظیمات داخلی SQLite PRAGMA – دارای Query Builder
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – رابط کاربری بسیار بد
http://sites.google.com/site/mohammadshamsjavi/img/SQLiteMan.png (http://sites.google.com/site/mohammadshamsjavi/img/SQLiteMan.png)
5. Singular SQLite Explorer:
نقاط قوت: پشتیبانی از index در بانک – امکان export به sql query، و XML – امکان import از RegEx و ADO – محاسبه زمان مورد نیاز اجرا کوئری –قدرت و سرعت بسیار خوب در کار با بانکهای حجیم – امکان گروه بندی دادهها در GRID در زمان نمایش – دارای Query Builder گرافیکی و مجهز
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – عدم نمایش دادههای یونیکد – عدم سازگاری با Win7
http://sites.google.com/site/mohammadshamsjavi/img/singular-sqlite-explorer.png (http://sites.google.com/site/mohammadshamsjavi/img/singular-sqlite-explorer.png)
4. Lita:
نقاط قوت: پشتیبانی از index، Encryption و Compression در بانک – امکان export به sql query – وجود تاریخچه برای اجرای کوئریها
نقاط ضعف: عدم امکان import کل بانک – مشکل با نمایش صحیح فیلدهای RTL دارای متن فارسی و انگلیسی – نیاز به AIR برای اجرا
http://sites.google.com/site/mohammadshamsjavi/img/lita.png (http://sites.google.com/site/mohammadshamsjavi/img/lita.png)
3. SQLite Database Browser:
نقاط قوت: پشتیبانی از index و Compression در بانک – امکان export به sql query و CSV – وجود تاریخچه برای اجرای کوئریها – تعیین Default Value و Encoding – رابط کاربری خوب برای ایجاد جداول و فیلدها
نقاط ضعف: عدم پشتیبانی از Encryption – عدم سازگاری کامل با Win7
http://sites.google.com/site/mohammadshamsjavi/img/sqlite-database-browser.png (http://sites.google.com/site/mohammadshamsjavi/img/sqlite-database-browser.png)
2. SQLite Administrator:
نقاط قوت: پشتیبانی از index، view و trigger در بانک – امکان export به sql query، CSV، XML و html – رابط کاربری بسیار مجهز و امکان استفاده از کوئریهای مختلف در tab های جداگانه – امکان ارتقاء نسخه بانک به SQLite جدید – محاسبه زمان مورد نیاز اجرا کوئری – امکان نمایش فیلدهای BLOB به صورت تصویر – امکان استفاده از انواع دادههای ثانویه مانند datetime، float و غیره که جزء دادههای اولیه نیستند اما با استفاده از توابع داخلی SQLite میتوان آنها را ایجاد کرد – قدرت و سرعت بسیار خوب در کار با بانکهای حجیم
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – به طرز احمقانهای از نمایش دادههای یونیکد عاجز است، تنظیمی هم برای تغییر فونت پیشفرض نمایش ندارد
http://sites.google.com/site/mohammadshamsjavi/img/sqlite-administrator.png (http://sites.google.com/site/mohammadshamsjavi/img/sqlite-administrator.png)
1. SQLiteStudio:
نقاط قوت: پشتیبانی از index، view، trigger، Integrity Check و Vacuum در بانک – امکان export به sql query، CSV، XML و html با تنظیمات مناسب جهت تعیین فرمت خروجی و غیره – رابط کاربری بسیار مجهز و امکان استفاده از کوئریهای مختلف در tab های جداگانه – امکان ارتقاء نسخه بانک به SQLite جدید – محاسبه زمان مورد نیاز اجرا کوئری – امکان کار با فیلدهای BLOB در HexEditor داخلی آن – امکان استفاده از انواع دادههای ثانویه مانند datetime، float و غیره که جزء دادههای اولیه نیستند اما با استفاده از توابع داخلی SQLite میتوان آنها را ایجاد کرد – قدرت و سرعت بسیار خوب در کار با بانکهای حجیم – نمایش کدهای DDL در تمام پنجرههای مرتبط با فیلدها – دارای setting بسیار کامل برای تغییر تمام تنظیمات برنامه – دارای Syntax Formatter برای مرتب کردن Query ها – امکان توسعه plugin – امکان تعریف توابع جدید SQL – دارای مستندات، راهنما و user manual مناسب و همچنین forum پشتیبانی – قابلیتهای جالب برای duplicate کردن سطرها، جداول و غیره
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – وجود وقفه اولیه در زمان باز کردن بانک
http://sites.google.com/site/mohammadshamsjavi/img/SqliteStudio.png (http://sites.google.com/site/mohammadshamsjavi/img/SqliteStudio.png)
در پایان لازم به ذکر است که هرچند ابزار SQLiteStudio بیشترین امتیاز را گرفته است، اما فکر میکنم که هنوز تا تبدیل به یک ابزار ایدهآل کمی فاصله دارد. در صورتی که وقفه اولیه در زمان باز کردن بانک وجود نداشته و رابط کاربری آن هم به شکل بهتری مرتب شود (مثلا اجرا در دو حالت Basic و Expert) احتمالا این اتفاق خواهد افتاد. ابزار Lita هم به دلیل پشتیبانی از Encryption که در مابقی ابزارهای رایگان وجود ندارد، قابل تقدیر است.
ایده اولیه برای طراحی آن، ایجاد یک بانک اطلاعاتی مستقل و بینیاز از نگهداری و مدیریت، جهت استفاده در پروژههای نظامی نیروی دریایی ایالات متحده بود. شرکت General Dynamics طی قراردادی با نیروی دریایی، در حال طراحی نرمافزاری برای سیستمهای هدایت شونده انهدام موشک در یک سیستم عامل اختصاصی یونیکس با نام HP-UX بود.
اولین نسخه از این بانک اطلاعاتی در ماه آگوست همان سال ارائه شد. معماری نسخه 1.0، مبتنی بر قواعد GNU DBM (معروف به GDBM) بود که امکان استفاده از فیلدهای بدون نوع و بدون محدودیت در طول داده را فراهم مینمود. پس از آن و با ارائه نسخههای بعدی، پیشرفت چشمگیری در پیادهسازی قابلیتهای جدید در SQLite (http://www.sqlite.org/syntaxdiagrams.html) بوقوع پیوست. به عنوان مثال میتوان از تغییر معماری آن به مدل B-Tree و همچنین اضافه شدن قابلیتهای اجرای تراکنش، پشتیبانی از یونیکد و انواع دادهای جدید نام برد. از پیشرفتهای اخیر آن نیز میتوان به ارائه UnQLite برای سازگاری با Document-Oriented Database و NoSQL اشاره کرد.
http://sites.google.com/site/mohammadshamsjavi/img/220px-SQLite370.png (http://sites.google.com/site/mohammadshamsjavi/img/220px-SQLite370.png)
در حال حاضر یک از مهمترین کاربردهای SQLite (http://www.sqlite.org/famous.html)، استفاده از آن در سیستمهای Mobile و Embed است. به عنوان مثال بسیاری از web browser ها (مانند mozilla، chrome، safari و غیره) برای ذخیره سازی تنظیمات داخلی خود از آن استفاده کرده و همچنین این بانک اطلاعاتی سیستم ذخیرهسازی پیشفرض در طراحی برنامههای سیستم عامل Android و iOS نیز هست.
در این مطلب قصد دارم تا برخی از بهترین ابزارهای رایگانی را که برای ایجاد و مدیریت بانکهای اطلاعاتی SQLite مورد استفاده قرار میگیرند معرفی نمایم. ابزارها به ترتیب صعودی و منطبق بر کارایی و قابلیتهایشان معرفی شدهاند.
7. Run:
نقاط قوت: پشتیبانی از Encryption و Compression فقط در خواندن از بانک – وجود تاریخچه و template برای اجرای انواع کوئریها – محاسبه زمان مورد نیاز اجرا کوئری – مناسب برای کار با کوئریهای SQL
نقاط ضعف: عدم امکان import و Export بانک – نیاز به AIR برای اجرا – عدم وجود قابلیتهای گرافیکی برای ایجاد بانک و جداول
http://sites.google.com/site/mohammadshamsjavi/img/run.png (http://sites.google.com/site/mohammadshamsjavi/img/run.png)
6. SQLiteMan:
نقاط قوت: پشتیبانی از index، view، trigger، Integrity Check در بانک – امکان export ساده بهsql query – محاسبه زمان مورد نیاز اجرا کوئری – نمایش کدهای DDL – امکان نمایش فیلدهای BLOB به صورت تصویر – نمایش و تغییر تنظیمات داخلی SQLite PRAGMA – دارای Query Builder
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – رابط کاربری بسیار بد
http://sites.google.com/site/mohammadshamsjavi/img/SQLiteMan.png (http://sites.google.com/site/mohammadshamsjavi/img/SQLiteMan.png)
5. Singular SQLite Explorer:
نقاط قوت: پشتیبانی از index در بانک – امکان export به sql query، و XML – امکان import از RegEx و ADO – محاسبه زمان مورد نیاز اجرا کوئری –قدرت و سرعت بسیار خوب در کار با بانکهای حجیم – امکان گروه بندی دادهها در GRID در زمان نمایش – دارای Query Builder گرافیکی و مجهز
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – عدم نمایش دادههای یونیکد – عدم سازگاری با Win7
http://sites.google.com/site/mohammadshamsjavi/img/singular-sqlite-explorer.png (http://sites.google.com/site/mohammadshamsjavi/img/singular-sqlite-explorer.png)
4. Lita:
نقاط قوت: پشتیبانی از index، Encryption و Compression در بانک – امکان export به sql query – وجود تاریخچه برای اجرای کوئریها
نقاط ضعف: عدم امکان import کل بانک – مشکل با نمایش صحیح فیلدهای RTL دارای متن فارسی و انگلیسی – نیاز به AIR برای اجرا
http://sites.google.com/site/mohammadshamsjavi/img/lita.png (http://sites.google.com/site/mohammadshamsjavi/img/lita.png)
3. SQLite Database Browser:
نقاط قوت: پشتیبانی از index و Compression در بانک – امکان export به sql query و CSV – وجود تاریخچه برای اجرای کوئریها – تعیین Default Value و Encoding – رابط کاربری خوب برای ایجاد جداول و فیلدها
نقاط ضعف: عدم پشتیبانی از Encryption – عدم سازگاری کامل با Win7
http://sites.google.com/site/mohammadshamsjavi/img/sqlite-database-browser.png (http://sites.google.com/site/mohammadshamsjavi/img/sqlite-database-browser.png)
2. SQLite Administrator:
نقاط قوت: پشتیبانی از index، view و trigger در بانک – امکان export به sql query، CSV، XML و html – رابط کاربری بسیار مجهز و امکان استفاده از کوئریهای مختلف در tab های جداگانه – امکان ارتقاء نسخه بانک به SQLite جدید – محاسبه زمان مورد نیاز اجرا کوئری – امکان نمایش فیلدهای BLOB به صورت تصویر – امکان استفاده از انواع دادههای ثانویه مانند datetime، float و غیره که جزء دادههای اولیه نیستند اما با استفاده از توابع داخلی SQLite میتوان آنها را ایجاد کرد – قدرت و سرعت بسیار خوب در کار با بانکهای حجیم
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – به طرز احمقانهای از نمایش دادههای یونیکد عاجز است، تنظیمی هم برای تغییر فونت پیشفرض نمایش ندارد
http://sites.google.com/site/mohammadshamsjavi/img/sqlite-administrator.png (http://sites.google.com/site/mohammadshamsjavi/img/sqlite-administrator.png)
1. SQLiteStudio:
نقاط قوت: پشتیبانی از index، view، trigger، Integrity Check و Vacuum در بانک – امکان export به sql query، CSV، XML و html با تنظیمات مناسب جهت تعیین فرمت خروجی و غیره – رابط کاربری بسیار مجهز و امکان استفاده از کوئریهای مختلف در tab های جداگانه – امکان ارتقاء نسخه بانک به SQLite جدید – محاسبه زمان مورد نیاز اجرا کوئری – امکان کار با فیلدهای BLOB در HexEditor داخلی آن – امکان استفاده از انواع دادههای ثانویه مانند datetime، float و غیره که جزء دادههای اولیه نیستند اما با استفاده از توابع داخلی SQLite میتوان آنها را ایجاد کرد – قدرت و سرعت بسیار خوب در کار با بانکهای حجیم – نمایش کدهای DDL در تمام پنجرههای مرتبط با فیلدها – دارای setting بسیار کامل برای تغییر تمام تنظیمات برنامه – دارای Syntax Formatter برای مرتب کردن Query ها – امکان توسعه plugin – امکان تعریف توابع جدید SQL – دارای مستندات، راهنما و user manual مناسب و همچنین forum پشتیبانی – قابلیتهای جالب برای duplicate کردن سطرها، جداول و غیره
نقاط ضعف: عدم پشتیبانی از Encryption و Compression – وجود وقفه اولیه در زمان باز کردن بانک
http://sites.google.com/site/mohammadshamsjavi/img/SqliteStudio.png (http://sites.google.com/site/mohammadshamsjavi/img/SqliteStudio.png)
در پایان لازم به ذکر است که هرچند ابزار SQLiteStudio بیشترین امتیاز را گرفته است، اما فکر میکنم که هنوز تا تبدیل به یک ابزار ایدهآل کمی فاصله دارد. در صورتی که وقفه اولیه در زمان باز کردن بانک وجود نداشته و رابط کاربری آن هم به شکل بهتری مرتب شود (مثلا اجرا در دو حالت Basic و Expert) احتمالا این اتفاق خواهد افتاد. ابزار Lita هم به دلیل پشتیبانی از Encryption که در مابقی ابزارهای رایگان وجود ندارد، قابل تقدیر است.