Бывают проекты, в которых необходимо хранение данных, объем и структура которых делает хранение в обычных файлах неудобным, а использование СУБД - слишком громоздкое и дорогое решение. Представьте, для программы весом в пару мегабайт, которая спокойно умещается на флешке, ставить SQL Server. Немного утрировано, но всё же...
Для решения подобного рода проблем очень хорошо подходят embedded-БД (встраиваемые БД), например, sqlite, firebird или из области объектных бд - db4o. Конечно, им всем далеко до полноценных СУБД, но не для конкуренции с ними создавались встаиваемые БД, а для облегчения распространения приложений, использующих небольшие БД. Понятно, что для достижения этой цели пришлось чем-то жертвовать, и каждый жертвовал, чем мог :) Так как разговор в данной статье должен идти о первой из списка embedded-БД - sqlite, то давайте как раз посмотрим, чем же порадуют нас разработчики.
Как ожидается из названия, данная embedded-БД должна быть лёгкой. Это правда - размер подключаемой библиотеки со всеми фичами, как говорят разработчики, меньше 300 КБ. К тому же, с ней легко работать, ее легко внедрять в создаваемое ПО, ее легко администрировать и еще много таких "легко". Sqlite распространяется на условиях "открытого исходного кода", скачать ее можно с официального сайта http://www.sqlite.org.
Чем хороша sqlite:
- Поддержка языка запросов версии SQL92 (без особенностей типа процедур)
- База данных сохраняется в одиночном файле на диске
- Файл базы данных можно свободно разделить между процессами (например, тот же embedded firebird блокирует файл БД для монопольного использования)
- Поддерживает базы данных размером до 2-х терабайт (241 байт)
- Размеры строковых данных и BLOB данных ограничены только памятью
- Нет никакой внешней зависимости от других библиотек
- Поддержка операционных систем WINDOWS (практически все версии начиная с WIN95), *unix
- Распространяется совершенно бесплатно
Чем плоха sqlite:
- не Oracle или MS SQL.
Естественно, SQLite не предназначена, чтобы быть двигателем базы данных предприятия, это не вариант для использования в крупных проектах, разве как временную резервную БД (и звучит это даже как-то по-мазохистски). Как написано на официальном сайте движка, sqlite не предназначена, чтобы заменить Oracle, но для замены fopen().
0 коммент.:
Отправить комментарий