Полное название этого программного продукта звучит как FSSQL CLIENT-SERVER SQL DATABASE. Впрочем, даже из первого слова, ставшего заголовком статьи, видно, что представляет собой FSSQL. Это клиент-серверный движок базы данных, достаточно компактный, но при этом и достаточно мощный.
В мире очень много движков баз данных, и о многих из них узнать совсем не сложно, поскольку они достаточно неплохо разрекламированы, и информации о них в интернете достаточно. Поэтому особого смысла рассказывать на страницах газеты о том же MySQL, мне кажется, нет. А вот о менее разрекламированных движках рассказать можно и даже нужно. Зачем рассказывать о менее известных, когда есть много более известных и более популярных? Дело в том, что для данной конкретной задачи, которая возникает перед разработчиком, не обязательно наилучшим образом подходит самое известное из средств. Конечно, MySQL применять проще, поскольку различной документации по его применению, как и различных сторонних средств для этого гораздо больше, чем для менее популярных движков. Зато для определённого круга задач и инструментов разработки FSSQL гораздо предпочтительнее, поэтому мы о нём сейчас и поговорим.
Итак, как я уже говорил, FSSQL - это клиент-серверный движок. Ориентирован он, в основном, на программистов, использующих Delphi и C++ Builder, поскольку сам написан на Delphi. Нельзя сказать, что FSSQL нельзя будет использовать при разработке в других средах, но, несомненно, наиболее удобно будет использовать именно в Delphi и C++ Builder'е. Официальный сайт проекта FSSQL - www.fssql.com. Оттуда сейчас можно скачать все исходные тексты или скомпилированные файлы этого движка. Правда, для этого нужна регистрация, но она абсолютно бесплатна и не занимает много времени.
Чем могут привлечь создатели FSSQL разработчиков прикладных приложений? Во-первых, бесплатностью своего детища. Не просто бесплатностью, а полной открытостью исходных текстов, которые каждый желающий может изменить в соответствии с собственными потребностями. Присутствие исходных текстов также предоставляет этому движку ещё один козырь, правда, неочевидный: его, таким образом, можно встраивать прямо в исполняемый файл программы, что упрощает конфигурирование параметров движка при установке приложения на компьютер конечного пользователя. Кроме того, для небольших приложений существенно и то, что встраивание движка внутрь исполняемого модуля программы уменьшает конечный размер всего приложения. Конечно, для крупных программ это даже минус, поскольку есть и психологический эффект от размера программы, но для небольших, напротив, FSSQL может именно по одному этому параметру послужить очень хорошим решением. Ко всему прочему, возможность встраивать движок внутрь программы прибавляет приложению скорости, что также не может не сказаться положительно на его образе в глазах пользователей.
Для программистов на Delphi и C++ Builder приятным моментом будет тот факт, что компоненты для доступа к данным, которые поставляются вместе с самим движком FSSQL, являются наследниками TDataSet из VCL, так что их можно использовать вместе с любыми другими компонентами для работы с данными, как стандартными, так и сторонними, как визуальными, так и не визуальными. В принципе, нельзя сказать, что эта возможность так уж уникальна и характерна только для FSSQL - скорее, всё с точностью до наоборот. Сейчас уже не осталось ни одной сколь-нибудь приличной библиотеки VCL-компонентов для работы с данными, которая бы не обеспечивала совместимость со всеми остальными библиотеками таким нехитрым способом. В общем-то, этим VCL и знаменита - тем, что её компонентная архитектура позволяет увязать множество компонентов от самых разных производителей в одно целое, которое является готовым приложением. Стабильность работы - вопрос особый, но для прикладных приложений она вполне приемлема.
В плане функций, конечно, FSSQL не бежит впереди планеты всей. Довольно простой синтаксис SQL92, впрочем, поддерживается абсолютное большинство команд, а также такие расширенные возможности, как вложенные запросы и встроенные, специфичные для движка FSSQL функции. Размеры таблиц в базе данных, как и размеры самой базы данных, виртуально не ограничены, а ограничены лишь размером винчестера и возможностями файловой системы. В общем-то, это довольно обычно и типично для современных движков для работы с данными, однако это ничуть не умаляет значимость и ценность этой возможности. Однако при этом размер одной записи имеет лимит в два гигабайта. Это ограничение может быть сколь-нибудь существенным разве что для BLOB-полей, в которых размещаются картинки и мультимедийные данные. Впрочем, в тех приложениях, где может успешно использоваться FSSQL, вряд ли часто будет возникать необходимость в размещении таких объёмов информации.
Полезной особенностью FSSQL является поддержка размещения в базе данных "защищённых" записей, которые не могут быть удалены или изменены при помощи обычных запросов.
Теперь немного поговорим о возможностях сервера FSSQL, коль уж эта база данных является клиент-серверной. Как и клиент, сервер может быть встроен непосредственно в EXE-файл с программой. Сервер FSSQL - это качественный многопоточный сервер. При встраивании его в приложение программисту не придётся самому заботиться о многопоточности, её уже реализовали разработчики самого движка. Количество одновременно подключаемых клиентов ограничено лишь размером доступной оперативной памяти. Что интересно, сервер спроектирован таким образом, что в одном приложении могут быть два или больше серверов (правда, трудно придумать задачу, по ходу решения которой может потребоваться эта возможность сервера FSSQL). Тем не менее, жизнь иногда подносит задачи, которые превосходят все возможности человеческого воображения, поэтому эту возможность движка FSSQL стоит взять на заметку. Правда, вовсе не обязательно встраивать сервер в собственное приложение - можно скачать готовые скомпилированные файлы и работать с сервером FSSQL как с любым другим сервером баз данных. Тогда сервер FSSQL будет под Windows NT (2000, ХР, 2003) запускаться как сервис.
Среди других возможностей сервера стоит упомянуть поддержку сервером различных плагинов, с помощью которых достаточно легко и безболезненно можно расширить функциональность сервера. Подробную информацию по написанию плагинов можно найти на сайте проекта.
Для создания и администрирования баз данных FSSQL необходимы специализированные инструменты. Такие инструменты имеются прямо в комплекте поставки движка. Работают эти самые инструменты из-под IDE Delphi/C++ Builder и включают в себя возможности администрирования FSSQL, что называется, с ног до головы. То есть и таблицы создавать и редактировать можно, и пользователей добавлять и удалять, формировать запросы и многое другое.
По ходу работы приложений, в которых встроен FSSQL, можно отслеживать то, как движок функционирует. Для этого в нём предусмотрены специальные средства мониторинга. Можно отслеживать статистику сервера, а можно смотреть на отдельные события из его, так сказать, жизни.
Система безопасности, как назвали её сами авторы FSSQL, состоит в том, что необходимо залогиниваться для доступа к той или иной таблице (что, в принципе, естественно для клиент-серверного движка). Также имеется возможность зашифровывать сами таблицы, как и сообщения, которыми обмениваются сервер и клиент в процессе обмена данными. Правда, авторы не уточняют, какие именно методы шифрования используются в программе, однако, какие бы ни использовались, для защиты от примитивных взломов и просто любопытных глаз этого вполне достаточно.
На сайте FSSQL можно найти много подробной документации с примерами использования этого движка в программах, разрабатываемых в среде Delphi. Поэтому писать программы с его использованием будет не так уж сложно тем, кто знает английский. Там же можно найти обещания разработчиков по поводу следующей версии движка, в которой обещана поддержка кодировки UNICODE, поддержка объектных полей и сохранение базы в одном цельном файле, а также версия для операционной системы Linux. Будем надеяться, разработчики не бросят своё детище на произвол судьбы, и мы увидим новые версии этого программного продукта.
Что ж, это, пожалуй, всё, что можно было бы рассказать в обзорной статье по поводу FSSQL. Если заинтересовались, заходите на www.fssql.com, скачивайте и пробуйте.
Вадим СТАНКЕВИЧ
Комментарии