32 урока по Delphi

    Урок 25: Утилиты для Local InterBase


     
     
     
     
     
     
     
Содержание урока 25:
    Обзор
    Некоторые технические характеристики InterBase
    InterBase Interactive SQL
    Установка соединения
    Создание новой базы данных
    Получение информации о структуре базы данных
    Выполнение SQL запросов
    InterBase Server Manager
    Резервное копирование
     
      1. Обзор

      2. 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 запросов.
         
         

      3. Некоторые технические характеристики InterBase
Отличия 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 в базе ограниченно количеством уникальных имен в пределах этой длины.
 
 

      1. InterBase Interactive SQL

      2. В поставке 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 запроса.
         
         

      3. InterBase Server Manager
Утилита предназначена для администрирования InterBase. С ее помощью можно выполнить следующие операции:
 
 

Рис. D: Утилита для администрирования InterBase

Резервное копирование

Соответствующий диалог показан на рис. 5

Рис. E: Диалог резервного копирования базы данных.

Обычно, операционные системы сами предоставляют возможности по сохранению баз данных в архивах. Однако, при резервном копировании, проведенном с помощью Server Manager, выполняются дополнительные операции. При этом: