InterBase

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 15:54, 27 декабря 2017.
InterBase
fraimed
Разработчики: Embarcadero Technologies
Операционная система: Windows, OS X, Linux и Solaris[1]
Платформа: x32, x64
Локализация: Английский
Тип ПО: РСУБД
Лицензия: Проприетарное ПО
Веб-сайт Official website

InterBase - это кросс-платформенная система управления базами данных, первоначально разработанная компанией Borland, которая поддерживает большинство известных платформ: Windows, Linux, Unix, Solaris, Mac OS и т.д. Теперь разработчик InterBase - Embarcadero Company.[2]

Обзор

Версионная архитектура

База данных InterBase построена на версионной архитектуре хранения данных.[3] Этот подход обладает рядом преимуществ перед блокировочными СУБД:

  • Для восстановления баз данных InterBase после системного сбоя нет необходимости поддержки лога транзакций.
  • Клиенты, читающие данные, никогда не блокируют клиентов, осуществляющих запись данных.

Преимущества

InterBase обладает целым рядом преимуществ, выгодно отличающих его от остальных СУБД:

  • Обновляемые представления (Views);
  • Двухфазное подтверждение транзакций;
  • Эффективный механизм триггеров;
  • Серверная обработка BLOB-полей (BLOB-filters);
  • События (Уведомления);
  • Шифрование сетевого трафика, базы данных, файлов бекапа и отдельных столбцов БД.

Язык SQL

Язык InterBase SQL совместим со стандартом SQL-92. Кроме того, InterBase server поддерживает расширения стандартного подмножества языка SQL за счет пользовательских функций UDF (User Definded Functions). InterBase SQL предоставляет расширенные возможности SQL для хранимых процедур и триггеров — PSQL.

Подробнее об инструкциях и функциях можно прочитать в справочнике.

Производительность

Сервер InterBase разрабатывался с учетом современных требований к производительности СУБД. В последних версиях InterBase SQL Server применен ряд технологий значительно повышающих скорость работы:

  • Поддержка симметричной многопроцессорной обработки InterBase SMP (symmetric multiprocessing) позволяет задействовать возможности многопроцессорной архитектуры при единственном серверном процессе InterBase SuperServer.
  • Поддержка технологии Hyperthreading.
  • Пакетное выполнение SQL запросов позволяет уменьшить сетевой трафик и повысить производительность.

Текущие версии InterBase

В настоящее время существует несколько клонов серверов InterBase. Есть коммерческая версия, принадлежащая компании Borland - СУБД InterBase версии 5.6. [4] Есть целое семейство серверов InterBase 6.x - Borland InterBase 6.0, 6.5, 7.0, XE, Firebird 3.x и Yaffil (разработка команды программистов из Санкт-Петербурга). Все эти версии основаны на исходном коде Borland InterBase 6.0 и являются практически полностью совместимыми между собой. Системы Borland InterBase 6.0, FireBird 1.x и Yaffil являются Open Source- продуктами, которые можно использовать бесплатно без ограничений на количество пользователей в рамках условий InterBase Public License. Версии Borland 5.6, 6.5 и 7.0, Embarcadero InterBase XE являются коммерческими продуктами и требуют покупки соответствующих лицензий. Опыт множества внедрений подтверждает, что информационные системы работают быстро и устойчиво на любой из версий InterBase.

InterBase против Firebird

Хотя в основе версий InterBase 2009 и Firebird 2.5 лежит общий исходный код InterBase 6.0, эти СУБД на современном этапе развития значительно отличаются друг от друга.

В InterBase 2009 реализованы следующие возможности, которые не поддерживаются в последней версии Firebird 2.5:

  • Шифрование базы данных, а также отдельных столбцов.
  • Шифрование сетевого трафика (Over-the-Wire (OTW) Encryption).
  • Протоколирование операций на базе журналов.
  • Возможность аутентификации на уровне базы данных.
  • Функция экспорта содержимого файлов базы данных (Dump) в режиме онлайн.
  • Функция восстановления состояния из архивов на определенный момент времени (Point-in-Time Recovery).
  • Логический тип данных Boolean.

Клиент-серверная версия Firebird SQL Server существует в двух вариантах: Firebird Super Server и Firebird Classic. В InterBase реализована архитектура, совмещающая в себе достоинства Classic и SuperServer — InterBase SuperServer + SMP.

Архитектура Super Server — все клиентские подключения обслуживаются одним серверным процессом, имеется общий клиентский кеш. За счет этого достигается меньший расход ресурсов на обслуживание клиентов. Недостатком Super Server является отсутствие возможности задействовать несколько процессоров для работы сервера.

Архитектура Classic Server — на каждое клиентское подключение создает отдельный серверный процесс. Архитектура Classic Server более надежна, т.к. сбой одного серверного процесса не вызывает отказ в обслуживании всех клиентов. Кроме того, Classic Server позволяет распределить клиентские подключения на несколько процессоров. Недостатком архитектуры являются дополнительные накладные расходы на обслуживание и синхронизацию процессов, а также отсутствие общего клиентского кеша.

InterBase Super Server + SMP (symmetric multiprocessing) объединяет в себе преимущества двух архитектур Classic и Superserver. Один серверный процесс InterBase Super Server позволяет сократить накладные расходы и использовать общий клиентский Кеш, а технология симметричной обработки SMP задействует возможности многопроцессорной архитектуры, которые раньше были недоступны для Classic Server.

Безопасность InterBase Server

InterBase SQL Server поддерживает несколько методов аутентификации пользователей:

  • Classic Authentication Scheme — пользователи и пароли являются едиными для всех баз и хранятся в системной базе данных InterBase — admin.ib (isc4.gdb).
  • Embedded User Authentication — пользователи и пароли хранятся в клиентской базе данных. Такая схема защищает базы данных от прямого копирования или замены на сервере admin.ib.

Чтобы включить Embedded User Authentication, необходимо при создании базы данных через SQL указать опцию WITH ADMIN OPTION. В IBConsole можно просто указать соответствующий параметр в настройках БД. [5]

Следующие инструкции позволяют управлять механизмом Embedded User Authentication:

ALTER DATABASE ADD ADMIN OPTION
ALTER DATABASE SET ADMIN OPTION INACTIVE
ALTER DATABASE SET ADMIN OPTION ACTIVE

После включения возможности хранения пользователей в БД можно управлять пользователями через SQL операторы:

CREATE USER EMPLOYER SET PASSWORD 'PASSWORD';
ALTER USER EMPLOYER SET NO LAST NAME, DEFAULT ROLE ABC;

Обе схемы аутентификации Classic и EUA могут быть использованы на сервере InterBase совместно.

Пользователь SYSDBA. Смена пароля по умолчанию

SYSDBA — это административный пользователь InterBase с исключительными правами. Пароль по умолчанию: masterkey. Для того чтобы сменить пароль, используйте утилиту gsec из состава InterBase:

C:\CodeGear\InterBase\bin>gsec GSEC> modify SYSDBA -pw NEW_PASS

При помощи утилиты gsec можно создавать, удалять, модифицировать и просматривать пользователей. Полный список команд можно получить, набрав help.

Описание процесса установки Interbase

Запуск инсталлятора

Запустите инсталлятор (install_windows.exe, запускается автоматически при вставке компакт-диска с InterBase 7.5. Описание установки Java-инсталлятором, который запускался по умолчанию для InterBase 7.1 и InterBase 7.5 Trial, изложено в документе).

Инсталятор InterBase

Выберите Install Borland InterBase 7.5. Server.

Появится окно с предложением закрыть все активные приложения и с комментариями по MultiInstance. Это окно выдается новым windows-инсталлятором. Предыдущий инсталлятор был написан на Java, который слегка отличается от Windows-инсталлятора.

Инсталятор InterBase

Следующее окно – текст лицензии. Прочитайте его и нажмите Yes если согласны, или No если не согласны.

Далее появится окно с выбором Multi-Instance установки. Multi-Instance позволяет установить несколько экземпляров InterBase на один компьютер, которые будут работать на разных портах (3050 gds_db по умолчанию). Для каждого экземпляра требуется отдельная серверная лицензия (как минимум).

Multi-Instance InterBase

Как правило, выбор Multi-Instance делается, если устанавливается вторая копия сервера. При первой установке или обновлении сервера выберите No (или не меняйте No на Yes), и нажмите Next.

Компоненты InterBase

Если выбрано Register, то в конце установки будет предложено зарегистрировать серверную или unlimited лицензию. Если Register убрано, то для последующей регистрации нужно будет запустить инсталлятор повторно, и убрать все пункты в этом диалоге, кроме Register.

Путь установки InterBase

Выбор каталога для установки

Если вы производите переустановку сервера, убедитесь, что в каталоге, куда вы устанавливаете сервер, не осталось никаких файлов от предыдущих установок InterBase. Если вы устанавливаете 7.5.1 поверх 7.1 или 7.5, скопируйте заранее файлы borland.lic, ib_license.dat, admin.ib и ваши udf (если таковые есть).

Инсталлятор InterBase

При нажатии Next начнется установка сервера, клиента или регистрация (в зависимости от выбранных ранее пунктов).

Регистрация

Регистрация Borland InterBase

Нажмите Next.

Ключи регистрации InterBase

Введите серийный номер и ключ серверной лицензии или unlimited-лицензии. В случае регистрации unlimited-лицензии регистрировать серверную лицензию не нужно (если вы попытаетесь зарегистрировать unlimited поверх серверной или наоборот, то borland.lic будет испорчен, и сервер не будет работать) .

Если в серийном номере или ключе есть вопросительные знаки "?", то их именно так и нужно вводить с клавиатуры. Например, "AB?C-?K8..."

После ввода ключа еще раз появится лицензионное соглашение.

Правила и соглашения InterBase

Следующее окно – выбор метода регистрации.

Регистрация через интернет InterBase

Регистрация через интернет. Производится напрямую в Borland, используя ssl (порт 443). Возможна в том случае, если на данном компьютере есть соединение с интернет и не закрыт порт 443. Такой метод подходит только при регистрации лицензии на компьютере разработчика, т. к. серверы обычно не имеют доступа в интернет как извне так и изнутри сети.

Регистрация по телефону или через web. Позволяет зарегистрировать лицензию по телефону или через web (reg.borland.com), если на данном компьютере нет доступа в интернет.

Для регистрации на reg.borland.com у вас должен быть логин и пароль на bdn.borland.com, причем до регистрации нужно "залогиниться" на сервер, иначе регистрация ключа невозможна. После успешного логина как на bdn.borland.com так и на reg.borland.com будет показываться приветствие Welcome FirstName LastName, где FirstName и LastName – ваши имя и фамилия, указанные при регистрации.

Файл активации вам будет выслан на email, указанный при регистрации логина bdn.borland.com . Не ошибитесь при указании email – регистрационная система не проверяет ошибки доставки, поэтому каждая регистрация через web будет расцениваться как успешная, а число перерегистраций может быть не более 3 (после чего нужно обратиться в Borland за увеличением числа регистраций).

Ключи регистрации InterBase

Зайдите на [reg.borland.com] с этого или любого другого компьютера. Проверьте, что система вас узнает (пишет Welcome Имя Фамилия). Если нет – залогиньтесь на [bdn.borland.com], указав при логине чтобы система "помнила" вас (для этого в браузере должны быть включены cookies).

Введите в браузере тот же серийный номер, и регистрационный ключ, который вам выдал диалог регистрации (он будет отличаться от приведенного на картинке). Регистрационный ключ будет по крайней мере в одном сеансе Windows одним и тем же, если вы запускаете инсталлятор на одном и том же компьютере, вводя ту же самую комбинацию серийного номера и активационного ключа. При переустановке операционной системы или при установке сервера на другой компьютер регистрационный ключ будет другим. Получаемый файл активации всегда должен соответствовать регистрационному ключу, иначе он не будет принят инсталлятором.

Нажмите Register в браузере. Через некоторое время на ваш email, который указан в регистрационной информации для bdn.borland.com, будет прислано письмо с файлом регистрации. Сохраните этот файл (regNNN.txt, где NNN – номер, в зависимости от типа лицензии – триал, серверная, unlimited и т. п.) в какой-нибудь каталог.

Наличие файла регистрации, полученного от Borland, позволяет вам переустановить InterBase на этом же компьютере с той же самой операционной системой (см. выше о регистрационном ключе) без необходимости регистрации напрямую или через reg.borland.com.

Если вы не закрывали инсталлятор (не нажимали Finish в предыдущем диалоге. Если нажали – запустите инсталлятор еще раз, выберите Register убрав все эти пункты, и дойдите до диалога с выбором вариантов регистрации – напрямую, через web или по телефону и т. п.

Выберите пункт Import Software Activation Information from a file or email.

Импортирование ключей из файла InterBase

Нажмите Next. Появится диалог, где можно выбрать файл regNNN.txt, полученный по email и сохраненный заранее.

Если файл корректный, то появится диалог с подтверждением регистрации серийного номера, ключа активации и ключа регистрации . Если файл некорректный – об этом будет выдано сообщение. В этом случае проверьте, что:

  • вы указали правильный Serial Number как в инсталляторе так и на reg.borland.com
  • вы правильно ввели Activation Key в инсталляторе
  • вы правильно ввели на reg.borland.com регистрационный ключ, выданный вам инсталлятором.

Проверка регистрации

По умолчанию сервер InterBase устанавливается как сервис. В этом режиме невозможно понять, какие лицензии успешно зарегистрированы. Для этого на Windows откройте Панель Управления, Администрирование, Сервисы.

Сервис InterBase запущен

Если сервисы InterBase 7.5 Guardian и Server запущены, остановите сервис Guardian (сервис InterBase 7.5 Server должен остановиться автоматически через 1-2 секунды).

Откройте окно cmd (пуск, выполнить, cmd). Перейдите в каталог установки InterBase 7.5 выдав команды (по необходимости):

cd \
cd Program Files\Borland\InterBase\bin
ibserver -a
Команды установки InterBase

Если лицензии не зарегистрированы или зарегистрированы неуспешно, при запуске InterBase в режиме приложения он выдаст сообщение "InterBase licensing error, Please check the interbase.log file for details" или "License file is missing or corrupt".

Если лицензии (серверная или unlimited) зарегистрированы успешно, вы увидите в панели задач (справа, где системные иконки) иконку InterBase. Нажмите на ней правую кнопку мыши, и выберите Properties.

Свойства InterBase Server

В пункте License вы увидите установленные лицензии.

Нажмите правую кнопку мыши на иконке InterBase, выберите Shutdown. Вернитесь в панель управления сервисами, запустите сервис InterBase 7.5 Guardian. Сервер в этом случае запустится автоматически.

Создание базы данных

Для того, чтобы создать базу[6] данных, необходимо на компьютере, на котором установлен Interbase/Firebird, запустить утилиту IBConsole(ярлык находится в группе Interbase), войти на сервер(Server | Login, по умолчанию после установки пользователь: SYSDBA, пароль: masterkey), далее запустить утилиту Interactive SQL: пункт меню Tools | Interactive SQL ....

Если это первый запуск IBConsole после установки Interbase/Firebird, то сервер необходимо сначала зарегистрировать в IBConsole. Выберите пункт меню Server | Register, в появившимся окне выберите Local Server и нажмите ОК. После чего нужно выполнить процедуру входа на сервер, описанную выше.

После установки ProxyInspector SQL скрипт для создания БД на сервере Interbase/Firebird находится в каталоге <PI>\dbscripts\ib-firebird\ , где <PI> - каталог в который установлен ProxyInspector. Нажно открыть этот скрипт в ISQL командой Query | Load Script:


Окно Inter Active SQL


вместо строки enter database filename here ввести желаемое полное имя и путь к файлу БД(с расширением .gdb), также заменить, если нужно имя пользователя и пароль(сохранять не рекомендуется), после чего выполнить команду Query | Execute. База данных будет создана.

Теперь нужно указать путь к ней в ProxyInspector. Запустите ProxyInspector, выберите пункт меню База | Настройки программы, страница База данных | Сервер Interbase:


Настройки программы ProxyInspector


при доступе по протоколу TCP/IP путь к БД будет состоять из имени или IP-адреса сервера БД и полного имени файла БД (это же имя указывалось в SQL скрипте при создании БД), разделенных двоеточием. Например: db-server:c:\db-data\interbase\pi_ent.gdb или 10.0.0.5:d:\data\pi_ent.gdb и.т.д.

Если нужно, измените имя пользователя и пароль для доступа к серверу Interbase. Опцию Выключать индексы во время импорта следует оставить включенной на время первоначального импорта большого объема лог файлов и выключить после него.

После этого на странице База данных настроек также нужно выбрать Сервер Interbase, нажать OK и перезапустить PI. После чего выбрать База данных | Соединить для подключения к БД.

Для доступа к БД Interbase с других компьютеров необходимо наличие библиотеки gds32.dll в каталоге <WINDOWS>\system32. Эта библиотека находится в каталоге <Windows>\system32 компьютера с сервером Interbase и также устанавливается при установке Interbase

Подключение к InterBase из клиентского приложения

Для начала скачайте и установите пакет IBProvider Professional Edition.

IBProvider Professional Edition — это набор COM-компонент, которые позволяют работать с любыми версиями InterBase и Firebird. Компоненты поддерживаются большинством средств разработки: Delphi, C++ Builder, Visual C++, .Net Framework, C#, Visual Basic, VBScript, VBA и др.

Для проверки подключения к InterBase напишем простой сценарий на языке VBScript. Создайте пустой файл с расширением vbs и вставьте в него следующий код, указав правильный путь к базе данных:

Dim cn, cmd, rs, i
Set cn = CreateObject ("ADODB.Connection")
 
cn.Open "Provider=LCPI.IBProvider.3;" & _
        "Data Source=localhost:d:\temp\test.gdb; " & _
        "User Id=SYSDBA;" & _
        "password=masterkey;" & _
        "ctype=win1251;" & _
        "auto_commit=true"
 
set rs = cn.execute("select * from TMP$ATTACHMENTS")
 
do while not rs.EOF
 
   for i=0 to rs.Fields.Count - 1
       wscript.echo rs(i).Name & "=" & rs(i).Value
   next
 
   rs.MoveNext
loop
 
rs.close
cn.close

Запустите скрипт на выполнение в режиме командной строки, и вы увидите список активных подключений к БД.

InterBase и VBScript, Visual Basic, VBA

Для доступа к InterBase и Firebird из VBScript, VBA, Visual Basic используется библиотека ADO (ActiveX Data Objects). Множество примеров работы с этой библиотекой вы найдете в документации: примеры InterBase VBScript, VBA, Visual Basic.

InterBase и Delphi

IBProvider предлагает несколько способов работы с InterBase из Delphi:

  • dbGo (ADO Express) компоненты, работающие через библиотеку ADO.
  • прямой доступ к COM-интерфейсам ADO, минуя компоненты dbGo.
  • прямой доступ к COM-интерфейсам OLE DB при помощи сторонних VCL-компонент (OLE DB Direct/OLE DB Express).

Примеры работы: InterBase Delphi.

InterBase и .Net

Для доступа к InterBase из .Net используется библиотека ADO .Net. На сайте IBProvider опубликовано большое пошаговое руководство, посвященноеработе с InterBase в Visual Studio .Net (ADO .Net).

Дополнительные материалы по теме: Examples of working with ADO .Net for beginners.

InterBase и C++

IBProvider Professional Edition includes C++ library for working with OLE DB providers. It is the fastest means of working with OLE DB providers from Visual C++ 2005-2008 and from C++ Builder.

Примеры для C++

Редактирование базы InterBase — создание таблиц, связей, ключей

В пустой базе данных необходимо создать таблицы, связи между таблицами, первичные ключи, индексы, хранимые процедуры, генераторы и другие объекты. Для редактирования баз данных вы можете использовать встроенные средства InterBase — IBConsole или утилиту isql.exe.

Создание таблицы InterBase при помощи IBConsole

  1. В диалоговом окне Interactive SQL, загрузите скрипт tables.sql, чтобы ввести остальные определения таблицы в базе данных TUTORIAL, выбрав Query> Load Script. [7]
  2. Нажмите на Таблицы в левой панели IBConsole, чтобы проверить, что теперь у вас есть десять новых таблиц в базе данных TUTORIAL.

Создание таблицы InterBase при помощи утилиты isql.exe

Создаем таблицу:

SQL> CREATE TABLE cross_rate CON> ( CON> from_currency VARCHAR(10) NOT NULL, CON> to_currency VARCHAR(10) NOT NULL, CON> conv_rate FLOAT NOT NULL, CON> update_date DATE, CON> CON> PRIMARY KEY (from_currency, to_currency) CON> );

Вставляем одну запись и делаем выборку из таблицы:

SQL> INSERT INTO cross_rate VALUES (‘Dollar’, ‘CdnDlr’, 1.3273, ’11/22/93′); SQL> SELECT * from cross_rate; FROM_CURRENCY TO_CURRENCY CONV_RATE UPDATE_DATE ============= =========== ============== =========== Dollar CdnDlr 1.3273000 1993-11-22

Помимо isql существуют различные графические утилиты администрирования InterBase.

Утилиты администрирования InterBase

IBExpert

IBExpert — Поддерживает InterBase, Firebird, Yaffil. Редакторы DDL и DML. Визуальный построитель запросов. Автозавершение кода, Metadata Extractor, а также множество других возможностей.

IB/FB Development Studio

IB/FB Development Studio — визуальный дизайнер баз данных, встроенный MERGE, scheduler, Code auto completion, анализатор запросов, монитор производительности.

Blaze Top

Blaze Top — инструмент разработчика и администратора баз данных. Поддерживает Firebird и InterBase.

Database Workbench

Database Workbench — поддерживает несколько серверов баз данных, среди которых есть Firebird и InterBase. Отладка хранимых процедур, анализ планов, встроенные средства переноса данных и метаданных.

Примечания