InterBase - это система управления
реляционными базами данных,
поставляемая корпорацией BORLAND для
построения приложений с
архитектурой клиент-сервер
произвольного масштаба: от сетевой
среды небольшой рабочей группы с
сервером под управлением Novell NetWare
или Windows NT на базе IBM PC до
информационных систем крупного
предприятия на базе серверов IBM,
Hewlett-Packard, SUN и т.п.
В пакет Delphi версии 1.0 входит
однопользовательская версия InterBase
для Windows - Local InterBase. Используя Local
InterBase можно создавать и отлаживать
приложения, работающие с данными по
схеме клиент-сервер, без
подключения к настоящему серверу. В
дальнейшем потребуется только
перенастроить используемый
псевдоним базы данных и программа
будет работать с реальной базой без
перекомпиляции. Кроме того, Local
InterBase можно использовать в
приложениях для работы с данными
вместо таблиц Paradox.
В данном уроке рассматриваются
утилиты, поставляемые в пакете Delphi
2.0, которые служат для
администрирования баз данных (как
локальных, так и на сервере) и для
доступа к этим данным посредством
SQL запросов.
Некоторые технические характеристики InterBase
Отличия Local InterBase от InterBase для
других платформ, в частности, от
InterBase для Windows NT:
Local InterBase не поддерживает:
функции, определяемые
пользователем (UDF).
BLOB фильтры
сигнализатор событий (event alerters)
запись через журнал (Write Ahead Log
(WAL))
"отключение" и
"включение" базы данных
(database shutdown or restart)
ведение теневой базы данных
(database shadowing)
Все остальные функции полностью
поддерживаются, совпадает даже
структура хранения базы на диске.
Максимальный размер базы данных
Реально ограничение на размер
накладывается временем обработки
запросов, временем резервного
копирования, восстановления базы и
т.д. Рекомендуется не более 10 GB.
Максимальное количество
физических файлов, из которых может
состоять база
В системных таблицах InterBase поле,
описывающее из каких файлов
состоит база данных, включая все
shadow, имеет тип SHORT. Соответственно
не более 65,536.
Максимальное количество таблиц в
базе данных
65,536. Таблицы нумеруются с
использованием типа данных SHORT.
Максимальное количество записей
в таблице и полей в записи
В записи может быть не более 1000
полей. Количество записей в таблице
не ограничено.
Максимальный размер записи и поля
Запись не может быть больше 64К
байт (не считая размера BLOB). Поле не
может быть больше 32К байт, размер
поля типа BLOB не ограничен.
Максимальное количество индексов
в таблице и базе
В базе может быть 64K индексов. В
одной таблице - 64 индекса.
Максимальное количество уровней
вложенности SQL запроса
16 уровней вложенности.
Максимальное количество полей в
составном индексе
Составной индекс может включать в
себя не более 16 полей.
Максимальный размер stored procedure или
trigger
Stored procedure или trigger может иметь
размер кода не более 48K байт.
Количество UDF, определенных в
одной базе
Длина имени UDF не более 31 символа.
Соответственно максимальное
количество UDF в базе ограниченно
количеством уникальных имен в
пределах этой длины.
InterBase Interactive SQL
В поставке Delphi есть две утилиты
для доступа к базам данных и
администрации сервера InterBase.
Утилита Windows ISQL позволяет
интерактивно выполнять SQL запросы к
базе данных и получать результат.
Это требуется в двух случаях: для
отладки SQL выражения и для
управления данными и их структурой.
Кроме того, создать базу данных,
хранимые процедуры, триггеры, и т.п.
также удобнее с помощью ISQL. ISQL
позволяет обращаться как к данным
на удаленном сервере, так и к
локальным (к Local InterBase).
Рассмотрим порядок работы с этой
программой. Прежде, чем начать
работу, нужно либо установить
соединение с имеющейся базой
данных, либо создать новую базу.
Установка соединения
После запуска ISQL выберите пункт
меню File|Connect to Database…, появится
диалог (см. рис.1), в котором нужно
выбрать сервер (удаленный или
локальный, в данном случае мы
обращаемся к Local InterBase), файл базы
данных, указать имя пользователя
(SYSDBA - имя системного
администратора) и пароль (masterkey -
пароль по умолчанию). Если все
указано правильно, то по нажатию
клавиши OK установится
соединение с базой данных и можно
приступать к дальнейшей работе.
Рис. 1: Диалог соединения с базой данных.
Создание новой базы данных
Эту операцию можно выполнить в
пункте меню File|Create Database (см.
рис.2). В диалоге нужно указать имя
файла (c:\bases\new_base.gdb), имя и пароль
системного администратора (SYSDBA и
masterkey), и, при необходимости,
дополнительные параметры. В данном
случае создается база данных,
поддерживающая русскую кодовую
страницу WIN1251. Если Вы собираетесь
работать из ISQL с базой данных в
русской кодировке, то перед
установкой соединения нужно в
пункте меню Session|Advanced Settings
установить Character set on connect в WIN1251.
Рис. 2: Диалог создания новой базы данных
Получение информации о структуре базы данных
В ISQL можно получить полную
информацию о структуре базы данных:
список таблиц и их структуры,
списки и текст триггеров, хранимых
процедур и т.п. Эту операцию можно
выполнить в пункте меню View или Extract.
Например, для базы данных из
поставки Delphi (лежит в
\IBLOCAL\EXAMPLES\EMPLOYEE.GDB), попробуем
выбрать Extract|SQL Metadata for Table для
таблицы COUNTRY. В окошке ISQL Output
появится текст SQL запроса, который
создавал данную таблицу:
/* Extract Table COUNTRY */
/* Domain definitions */
CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
/* Table: COUNTRY, Owner: SYSDBA */
CREATE TABLE COUNTRY (COUNTRY COUNTRYNAME NOT NULL,
CURRENCY VARCHAR(10) NOT NULL,
PRIMARY KEY (COUNTRY));
Выполнение SQL запросов
Текст SQL запроса вводится в окошке
SQL Statement. Для запуска его на
выполнение, нажмите кнопку Run. На
рис.3 приведен результат работы
примерного запроса.
Рис. 3: Окно ISQL с текстом и результатом выполнения SQL запроса.
InterBase Server Manager
Утилита предназначена для
администрирования InterBase. С ее
помощью можно выполнить следующие
операции:
определить пользователей и их
пароли
произвести резервное
копирование
удалить мусор из базы
завершить/откатить зависшие
транзакции
произвести проверку базы на
наличие ошибок
Рис. 4: Утилита для администрирования InterBase
Резервное копирование
Соответствующий диалог показан
на рис. 5
Рис. 5: Диалог резервного копирования базы данных.
Обычно, операционные системы сами
предоставляют возможности по
сохранению баз данных в архивах.
Однако, при резервном копировании,
проведенном с помощью Server Manager,
выполняются дополнительные
операции. При этом:
Увеличивается быстродействие
базы. В процессе
копирования/восстановления
происходит сбор мусора - в
базе данных освобождается
место, занятое удаленными
записями. Тем самым
уменьшается физический размер
базы. При восстановлении можно
изменить размер страницы и
разбить базу на несколько
файлов.
Резервное копирование может
выполняться на работающей
базе, для этого не надо
отключать пользователей от
нее. При этом, изменения,
вносимые в базу данных после
начала процесса копирования,
не записываются в резервный
файл.
Данные можно перенести на
другую операционную систему.
Различные компьютеры имеют
собственные форматы файлов баз
данных и эти файлы нельзя
просто перенести на другую
операционную систему. Для
выполнения этой операции нужно
создать резервную копию базы в
транспортном формате.
[ Предыдущий урок | Содержание | Следующий урок ]
|