DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

NexusDB


NexusDB исключительно хороша - настоящий сюрприз...
Один из них называется NexusDB Enterprise Manager. Это программа для управления базами данных. Два других ярлыка -справочная информация. Посмотрите, как я витал в облаках...
После установки на рабочем столе появятся несколько ярлыков.
Автор: Эрвин Моутхан (Erwin Mouthaan)

Nexus Database Systems - компания, расположенная в Австралии. В Интернете утверждают, что NexusDB является лучшей базой данных для Delphi. Это сильное утверждение, заслуживающее тщательного исследования.
История
Компания Nexus Database Systems была основана в 2003 году. Но её истоки датированы гораздо раньше. В течение многих лет компания TurboPower поставляла различные компоненты Delphi. Одним из них был FlashFiler: очень популярный и быстрый файловый движок баз данных. NexusDB продолжила постройку наследования этого успешного предшественника. Кстати, вся библиотека Delphi-компонентов от Turbo Power является бесплатной. Исходный код доступен, так как Turbo Power сделала его открытым (open-source). Очень рекомендую на него посмотреть. Почти уверен, что эти компоненты были описаны в прошлых выпусках журнала Blaise Pascal. NexusDB используется большим количеством компаний, например, Honda, Shell, IBM, Motorola и Burgerking.
Возможности
NexusDB поддерживает всё, что можно ожидать от современной СУБД: триггеры, транзакции, представления и хранимые процедуры. NexusDB обладает высокой производительностью. Nexus имеет специально разработанный менеджер памяти, обеспечивающий наилучшую производительность на многоядерных компьютерах. Благодаря этому производительность NexusDB на таких компьютерах выше, чем у других СУБД. Для Nexus Database Systems этот менеджер памяти Nexus является отдельной опцией. Стандартный менеджер памяти Delphi может быть заменен менеджером памяти Nexus. 

(Вы добавляете модуль 

nxReplacementMemoryManager 

в первый пункт секции uses вашего проекта. Вот и все, теперь используется новый менеджер памяти - любой новичок с этим справится). 

Другим преимуществом является простая процедура установки сервера. Программа установки занимает около 5 Мб; установка происходит очень быстро. Не требуется отдельного администратора базы данных. Применение NexusDB может быть различным. Конечно, NexusDB может быть использована в клиент/серверной архитектуре. Ещё один вариант использования - компиляция движка базы данных в проект. При этом ваша Delphi-программа поставляется в виде отдельного исполняемого файла, не требуя установки и настройки отдельного сервера NexusDB. Эта встраиваемая (embedded) версия NexusDB является бесплатной. Скачайте её совершенно бесплатно с веб-сайта! Кроме того, возможно также создание так называемой гибридной архитектуры, в которой используется комбинация режимов Client/Server и Embedded.
Установка
Сначала рассмотрим встраиваемую версию NexusDB. Самая последняя версия NexusDB 3.05 была выпущена почти одновременно с выходом самой последней Delphi - XE. Встраиваемую версию NexusDB можно загрузить по ссылке http://www.nexusdb.com/support/index.php?q=FreeEmbedded.
Невозможно привести полное описание всех этих компонентов в этой вводной статье. Но они подробно описаны в прилагаемом руководстве пользователя. Большим преимуществом является наличие компонентов доступа к данным. Например, посмотрите на компоненты TnxDatabase, TnxTable, TnxQuery и TnxStoredProc. Эти компоненты позволяют вам использовать стандартные data-aware компоненты Delphi для построения приложений, работающих с базами данных, привычными способами. Установка происходит быстро и без проблем.

Инструмент управления
Рядом с другими компонентами находится так называемый Enterprise Manager. Enterprise Manager - это программа для работы с базами данных Nexus. В ней - построение таблиц, выполнение скриптов SQL, определение индексов и т.д. Все примеры в руководстве пользователя используют так называемую базу данных Northwind. После установки можно найти SQL-скрипт создания этой базы данных: C:\Program Files\NexusDB3\Sample Databases\Northwind.sql.
Для создания базы данных Northwind выполним этот скрипт в Enterprise Manager. Подробно последовательность действий описана в руководстве пользователя, см. NexusDB Manual V3 | Delphi Guide Code Examples & Fragments | Creating the Northwind sample database.
Сейчас мой жёсткий диск содержит каталог C:\Data\Northwind с несколькими файлами. Для каждой таблицы из базы данных на диске присутствует так называемый nxl-файл. В следующей версии NexusDB v4, ожидаемой позже в этом году, база данных будет размещена в одном файле.

Встраиваемая версия
Использование встраиваемого сервера освобождает пользователя от необходимости устанавливать отдельный сервер базы данных. Встраиваемая версия NexusDB даже не имеет DLL. Движок базы данных встраивается в само приложение. Таким образом, приложение может поставляться на компакт-диске и при этом запускаться непосредственно с диска. Больше не надо беспокоиться об установке на пользовательские ПК какой-то другой библиотеки.
Если нужно, чтобы к базе данных получали доступ несколько пользователей, в любое время можно осуществить переход к полной клиент/серверной архитектуре. Это вопрос добавления нескольких компонентов. Андерс Педерсен написал хорошую статью в выпуске 67 журнала Blaise Pascal о встраиваемом сервере Firebird Embedded Server. Полезно прочитать статью Андерса для ознакомления со встраиваемыми базами данных в целом. Руководство пользователя содержит понятное описание, как разрабатывать Delphi-приложения для работы с базой данных на встраиваемом сервере. Сопровождающий пример находятся здесь:
C:\Program\Files\NexusDB3\Examples\Delphi\Manual\ SimpleEmbedded\Project1.dpr.
В модуле данных этого проекта присутствует 5 компонентов:

Рисунок 6: Пример модуля данных

Компонент TnxTable в модуле данных ссылается на таблицу Customers (Клиенты). Это отражено в свойстве TableName.
Компонент TnxDatabase имеет свойство AliasPath, в котором указывается каталог базы данных. В нашем случае это: C:\data\Northwind
На главной форме проекта мы видим классические компоненты: DBGrid и DataSource. Свойство DataSet компонента DataSource ссылается на компонент nxTable1 модуля данных. Теперь, если установить свойство ActiveDesignTime компонента nxTable1 в True, данные таблицы Customers отобразятся в таблице. Всё как мы привыкли.

Рисунок 9: Главная форма

На компьютерах конечных пользователей это приложение, как отмечалось ранее, не требует отдельного сервера баз данных. Движок базы данных вшит прямо в EXE-файл приложения. Никаких DLL не требуется. Конечному пользователю нужны только исполняемый файл самого приложения, а также файлы базы данных. В нашем случае -C:\Data\Northwind.
Lazarus и Free Pascal
Команда Nexus напряжённо работает над версией NexusDB для Lazarus и Free Pascal. Обратите внимание на предварительный скриншот поддержки DesignTime-разработки в Lazarus. Позже в этом году будет выпущен NexusDB v4. Вскоре после этого имеется намерение официально поддерживать Lazarus и Free Pascal.

Заключение
NexusDB является полноценной СУБД с большими возможностями. Она быстра, устанавливается без проблем, а руководство пользователя содержит много примеров. Включённые компоненты доступа к данным упрощают использование базы данных.
Также включена программа для управления базами данных. Enterprise Manager обычно дружественен к пользователю. В этой статье я в основном сосредоточился на бесплатной встраиваемой версии NexusDB. Про её использование подробно сказано в руководстве пользователя, довольно просто создать приложение баз данных на встраиваемом сервере в Delphi. Кроме того, NexusDB предлагает множество дополнительных опций, таких как таблицы в памяти, динамический SQL и даже удалённый framework. Но в данный момент я не владею всеми этими опциями.
Тем не менее, они обсуждаются на веб-сайте, с большим количеством примеров.
Рекомендую всем посмотреть на NexusDB, чтобы иметь представление о ней.
Об авторе
Эрвин Моутхан (Erwin Mouthaan)
родился в Утрехте, Нидерланды, в 1966 году. Изучал прикладную математику в университете Твенте, где научился программированию и языку Pascal. Работал в различных научно-исследовательских институтах, в настоящее время работает самостоятельно и очень счастлив использовать Delphi.

 









jAntivirus