Урок 25: Утилиты для Local InterBase
Содержание урока 25:
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 запросов.
Отличия Local InterBase от InterBase для других платформ, в частности, от InterBase для Windows NT:
Local InterBase не поддерживает:
Все остальные функции полностью поддерживаются, совпадает даже структура хранения базы на диске.
Максимальный размер базы данных
Реально ограничение на размер накладывается временем обработки запросов, временем резервного копирования, восстановления базы и т.д. Рекомендуется не более 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 в базе ограниченно количеством уникальных имен в пределах этой длины.
В поставке Delphi есть две утилиты для доступа к базам данных и администрации сервера InterBase. Утилита Windows ISQL позволяет интерактивно выполнять SQL запросы к базе данных и получать результат. Это требуется в двух случаях: для отладки SQL выражения и для управления данными и их структурой.
Кроме того, создать базу данных, хранимые процедуры, триггеры, и т.п. также удобнее с помощью ISQL. ISQL позволяет обращаться как к данным на удаленном сервере, так и к локальным (к Local InterBase).
Рассмотрим порядок работы с этой программой. Прежде, чем начать работу, нужно либо установить соединение с имеющейся базой данных, либо создать новую базу.
Установка соединения
После запуска ISQL выберите пункт меню “File|Connect to Database…”, появится диалог (см. рис.1), в котором нужно выбрать сервер (удаленный или локальный, в данном случае мы обращаемся к Local InterBase), файл базы данных, указать имя пользователя (SYSDBA - имя системного администратора) и пароль (masterkey - пароль по умолчанию). Если все указано правильно, то по нажатию клавиши “OK” установится соединение с базой данных и можно приступать к дальнейшей работе.
Рис. A: Диалог соединения с базой данных.
Создание новой базы данных
Эту операцию можно выполнить в пункте меню “File|Create Database” (см. рис.2). В диалоге нужно указать имя файла (c:\bases\new_base.gdb), имя и пароль системного администратора (SYSDBA и masterkey), и, при необходимости, дополнительные параметры. В данном случае создается база данных, поддерживающая русскую кодовую страницу WIN1251. Если Вы собираетесь работать из ISQL с базой данных в русской кодировке, то перед установкой соединения нужно в пункте меню “Session|Advanced Settings” установить “Character set on connect” в WIN1251.
Рис. B: Диалог создания новой базы данных
Получение информации о структуре базы данных
В 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 приведен результат работы примерного запроса.
Рис. C: Окно ISQL с текстом и результатом выполнения SQL запроса.
Утилита предназначена для администрирования InterBase. С ее помощью можно выполнить следующие операции:
Рис. D: Утилита для администрирования InterBase
Резервное копирование
Соответствующий диалог показан на рис. 5
Рис. E: Диалог резервного копирования базы данных.
Обычно, операционные системы сами предоставляют возможности по сохранению баз данных в архивах. Однако, при резервном копировании, проведенном с помощью Server Manager, выполняются дополнительные операции. При этом: