Создание и администрирование баз данных для самой компактной СУБД
Не так давно в "Компьютерных вестях" я рассказывал о MySQL-Front - программе, предназначенной для работы с базами данных СУБД MySQL. Конечно, MySQL - продукт крайне популярный и среди разработчиков, и среди пользователей, однако MySQL - далеко не единственная СУБД, которой люди пользуются. Именно поэтому я решил рассказать об SQLite Developer - средстве для разработки и администрирования баз данных для самой компактной в мире СУБД, имя которой - SQLite.
Вступление
О самой СУБД SQLite я когда-то рассказывал на страницах "Компьютерных вестей" - это было в статье "Окинем взглядом SQLite 3" в номере 27 за 2006-й год. Тем не менее, поскольку это было уже довольно давно, думаю, если сейчас сказать пару слов об этой СУБД, вреда от этого не будет.
SQLite считается самой компактной из встраиваемых СУБД - и при этом гораздо более надёжной, чем многие написанные "на коленке" одним разработчиком движки баз данных, которые можно встретить в приложениях, где нужна "лёгкая" СУБД. Впрочем, надёжность - далеко не единственный плюс SQLite (не считая, конечно же, легковесности). Эта СУБД абсолютно бесплатна для использования как в некоммерческих, так и в коммерческих программных продуктах, что придаёт ей дополнительную привлекательность в глазах разработчиков последних. Ещё один плюс SQLite состоит в том, что эту СУБД можно фактически никак не настраивать - установка её заключается в простом копировании DLL'ки на клиентскую машину, при этом сама библиотека занимает так мало места, что с современными объёмами винчестеров и пропускными каналами для скачки файлов можно считать, что её и вовсе нет. При всём при этом движок SQLite имеет практически полную поддержку стандарта SQL92, за исключением пары-тройки конструкций, которые в небольших приложениях всё равно не слишком востребованы. Поддержка юникода, BLOB-полей, поддержка конкурентного доступа к базе... Про скорость работы, я думаю, говорить будет и вовсе лишним - у такой маленькой и легковесной СУБД она просто обязана быть на высоте. И она действительно на высоте. При этом стоит учесть, что продукт постоянно совершенствуется, выпускаются новые версии, а так как среди спонсоров проекта фигурируют такие бренды, как Adobe, Symbian, Mozilla, то можно быть более-менее уверенным в будущем SQLite.
Более подробную информацию об этой СУБД можно найти в уже упоминавшейся выше статье, а также на официальном сайте SQLite по адресу sqlite.org.
Исходя из всего, что я рассказал об этой СУБД, становится понятным, почему она пользуется популярностью среди разработчиков во всём мире и почему инструменты для администрирования и разработки SQLite-баз востребованы. Если вы решите создать продукт (скажем, утилиту для ведения домашней бухгалтерии), в котором использование SQLite будет уместным, вам также понадобится SQLite Developer. Думаю, пора уже переходить к рассказу о нём самом.
Основная часть
Итак, для начала о том, где эту программу можно найти. Поскольку это, с точки зрения SQLite, 3rd Party Tool, то на официальном сайте движка для работы с базами данных искать её бесполезно. Зато можно на www.sharpplus.com. В отличие от самого SQLite, SQLite Developer - продукт коммерческий, я бы даже сказал, коммерческий до мозга костей: авторы программы просят денег даже за некоммерческое использование своего детища. Стоит же SQLite Developer от тридцати "баксов" (это как раз для некоммерческого использования) до двух сотен (корпоративная лицензия).
Интерфейс программы выполнен в классическом для Windows-приложений стиле MDI (Multi-Document Interface - многодокументный интерфейс), то есть можно одновременно работать с несколькими базами данных, а в рамках одной базы - с несколькими таблицами, а также и с несколькими индексами, триггерами, представлениями и прочими полезными вещами, без которых не обходится ни одна нормальная база данных. Навигацию по элементам БД помогает осуществлять удобное дерево элементов Database Explorer, расположенное в левой части окна программы и выполненное в традиционном для продуктов, предназначенных для работы с базами данных, стиле.
Создание новой базы данных, в силу особенностей самой СУБД SQLite, значительно проще, чем в большинстве других инструментов для работы с базами данных. При создании требуется указать только расположение файла, в котором физически будет размещаться БД (в SQLite вся база данных помещается в один-единственный файл - точно так же, как, например, в Interbase/Firebird), и указать её псевдоним (alias). Остальные параметры, регулирующие такие вещи, как, скажем, размер страницы в базе, размер кэша данных, кодировку, можно оставить со значениями по умолчанию - по крайней мере, изменять их придётся сравнительно небольшому числу разработчиков.
Довольно часто (например, при работе с триггерами, хотя ими дело и не ограничивается) в процессе разработки или администрирования базы данных возникает потребность в редактировании скриптов. Поэтому в SQLite Developer встроен мощный редактор SQL-запросов, поддерживающий подсветку синтаксиса, автоматическое дополнение ключевых слов, историю изменения запросов, автоматическое завершение имён элементов базы данных (полей в таблицах, самих таблиц, представлений и тому подобных вещей), автоматическую проверку синтаксиса вводимых пользователем запросов, а также юникод. Согласитесь, эти все возможности действительно полезны при редактировании SQL-запросов. Помимо всего прочего, скрипты можно ещё и форматировать для придания им единообразного вида. Отформатированные в одном стиле скрипты придают проекту более профессиональный вид, а потому если вам лень их форматировать сразу при написании, можно воспользоваться форматером из SQLite Developer.
Из других полезных инструментов, предназначенных для работы с запросами, стоит отметь монитор SQL-запросов и визуальный построитель этих самых запросов. Монитор запросов позволяет следить за запросами, которые выполняются к редактируемой в программе базе данных, и бывает полезен при отладке. Визуальный построитель запросов SQL Builder позволяет сэкономить время, которые потребуется на написание простых запросов вручную, а также писать запросы тем, кто не уверен, что сможет правильно воспользоваться диалектом SQL, который предоставляет разработчикам и администраторам БД SQLite. Впрочем, если вы собираетесь пользоваться визуальным конструктором запросов именно по второй причине, то могу вас обрадовать: в справке к программе доступным английским языком изложены описания всех ключевых слов, используемых в SQLite и рассказано об их применении. Кроме того, конечно же, можно найти документацию на сайте самого SQLite. Хотя, возможно, для экономии времени стоит пользоваться именно визуальным редактором запросов вместо того, чтобы изучать тонкости диалекта SQL в SQLite.
В работе с данными SQLite Developer тоже предоставляет не такие уж плохие возможности. Во-первых, редактор данных умеет распознавать содержимого BLOB-полей и показывать его в виде текста, HTML или графики. В случае, если формат распознать не удалось, он показывается в HEX-виде. Встроенного графического редактора и визуального редактора HTML в SQLite Developer, конечно же, нет, однако это не мешает загружать из программы в BLOB-поля отредактированные в других программах файлы. Данные можно целиком экспортировать в различные табличные форматы (CSV, HTML, XML, Excel, Word) или в текст SQL-запроса. Импортировать же можно из CSV или других SQLite-баз. Что касается работы со схемой базы данных, то её также можно экспортировать - но только в SQL-скрипт. Восстановление этой схемы потом, соответственно, будет выглядеть как простое выполнение этого самого скрипта.
Опций в SQLite Developer довольно много, но большая их часть касается редактора текста SQL-запросов. Впрочем, то, что его можно практически полностью перенастроить под себя, на мой взгляд, скорее плюс, нежели минус. В отношении поддержки разных языков интерфейса программа, увы, пока что не на высоте. Она (поддержка языков) как бы формально и присутствует, однако на деле выбор языков, скажем прямо, не очень велик: помимо английского, который, конечно же, стоит в программе по умолчанию, присутствуют только китайский и японский, что вряд ли обрадует пользователей из экс-СССР. Но поскольку речь всё-таки идёт о программе для программистов и администраторов, самое главное в ней есть: англоязычный интерфейс и англоязычный же файл справки, так что, разобраться с работой в программе будет совсем не сложно.
Заключение
Что ж, сказано всего немало - и о SQLite Developer, и о самом движке баз данных SQLite. Пора, на мой взгляд, подвести итоги.
Во-первых, о самом SQLite. Я бы настойчиво рекомендовал вам обратить внимание на эту крайне компактную и удобную в ряде проектов СУБД. Даже если вы привыкли только к крупным проектам и знаете, что единственная СУБД, которую вы готовы в них использовать, - Microsoft SQL Server, всё равно не проходите мимо SQLite. Не факт, что завтра проект, который вам попадётся, не будет нуждаться именно в компактной встраиваемой СУБД, на роль которой отлично подходит SQLite.
Теперь итоги, касающиеся SQLite Developer. Думаю, из всего, что было сказано об этом инструменте, предназначенном для разработки и администрирования баз данных для СУБД SQLite, становится понятно, что он действительно достоин тех денег, которые просят разработчики. Хотя, конечно, если хочется сэкономить, можно обойтись и без него, а администрировать всю базу данных с помощью SQL-запросов к ней (и создавать её таким же образом). Но это способ в духе сурового консольного Linux'а, а не уютной Windows, где принято не экономить, а платить за удобства. SQLite Developer предлагает для скромной и компактной СУБД SQLite практически те же средства для работы с базами данных, что именитые продукты других производителей предлагают для более крупных СУБД, используемых в больших программных продуктах. Поэтому для создания маленького, но гордого программного продукта на основе такой же маленькой, но гордой СУБД SQLite имеет смысл воспользоваться как раз таки SQLite Developer. Если вы заинтересовались этой программой, то обязательно скачайте дистрибутив её пробной версии с официального сайта и попробуйте её в действии - вы убедитесь лично, что я не соврал ни на йоту, рассказывая о её возможностях.
Вадим СТАНКЕВИЧ
Комментарии
http://sqliteadmin.orbmu2k.de/
На сайте есть руссификатор