Использование утилит и операторов языка SQL для доступа к локальному серверу InterBase

Источник: mielt
mielt

Эффективная коллективная работа с информацией невозможна без использования общей БД, которая устанавливается в компьютерной сети на специально выделенном компьютере (сервере), к которому имеют одновременный доступ компьютеры пользователей (клиенты). На сервере устанавливается и система управления базами данных (СУБД), контролирующая доступ клиентов к БД и называемая SQL-сервером, если языком взаимодействия с СУБД является язык SQL.

Для информационных систем с клиент-серверной архитектурой характерна максимальная разгрузка клиента от вычислительной работы, которая переносится на сервер, и существенное улучшение защищенности данных от несанкционированного доступа или ошибочных изменений. Для реализации клиент-серверной архитектуры применяются так называаемые промышленные SQL-серверы, например, InterBase, Oracle, MS SQL Server, Informix, Sybase SQL Server, DB2.

SQL-сервер InterBase реализует версию языка SQL, совместимую со стандартом SQL-92 (SQL2), является наиболее приспособленным для использования в приложениях, разработанных с помощью системы Delphi, и не требует установки дополнительных драйверов. InterBase прост в установке, настройке и администрировании по сравнению с другими SQL-серверами и обладает хорошими функциональными возможностями. Кроме того, следует отметить появление таких бесплатно распространяемых аналогов (клонов) этого сервера, как Firebird и Yaffil [4].

SQL-сервер InterBase обеспечивает хранение и обработку больших объемов информации при одновременной работе с БД множества клиентских приложений. Чтобы максимально разгрузить клиентские приложения от вычислительной работы и гарантировать высокую защищенность и целостность информации, InterBase реализует многие возможности, предусмотренные в языке SQL. Так, для задания ограничений целостности можно определить:

1)     связи между таблицами БД путем указания первичных ключей (PRIMARY KEY) у главных таблиц и внешних ключей (FOREIGN KEY) у подчиненных таблиц;

2)     ограничения на значения, хранящиеся в отдельных столбцах (CHECK, CONSTRAINT);

3)     триггеры (TRIGGER) - подпрограммы, автоматически выполняемые SQL-сервером до и/или после изменения в таблице БД;

4)     генераторы (GENERATOR) для создания и использования уникальных значений, хранящихся в определенных столбцах.

Для ускорения взаимодействия клиентских приложений с удаленной БД можно использовать хранимые процедуры (STORED PROCEDURE), представляющие собой подпрограммы, способные посылать запросы к БД и выполнять условные ветвления и циклическую обработку. Хранимые процедуры пишутся с использованием специальных языковых конструкций и содержат часто повторяющиеся последовательности запросов к БД. Текст процедур размещается на сервере в откомпилированном виде. При использовании хранимых процедур:

1)   не требуется синтаксическая проверка каждого запроса и его компиляция перед выполнением, что ускоряет выполнение запроса;

2)   из клиентского приложения исключается реализация запросов, находящихся в теле хранимых процедур;

3)   ускоряется обработка транзакций, т.е. нескольких последовательных логически связанных операторов языка SQL, которые рассматриваются как единое целое, так как вместо длинного SQL-запроса по компьютерной сети передается короткое обращение к хранимой процедуре. Транзакция переводит БД из одного целостного состояния в другое.

Таблицы в БД InterBase состоят из содержащих информацию столбцов, типы которых перечислены в табл.1. В частности, столбцы типа BLOB (Binary Large Object - большой двоичный объект) предназначены для хранения больших объемов информации в виде последовательности байтов. Таким образом могут храниться текстовые и графические данные, а также мультимедийная информация. Смысловая интерпретация этой информации выполняется приложением, но разработчик БД может задать так называемые BLOB-фильтры для автоматического преобразования хранящейся информации к другому виду.

InterBase позволяет задавать определяемые пользователем функции UDF (User-Defined Function), в которых могут быть реализованы вычисления значений, не предусмотренные в стандатных функциях InterBase. Эти функции разрабатываются на любом языке программирования, позволяющем создавать динамически подключаемые библиотеки DLL (Dynamic Link Library), в частности, на языке Object Pascal.

Физическая модель базы данных, с которой работает InterBase, представляет собой последовательность пронумерованных, начиная с нуля, страниц. Нулевая страница является служебной и содержит информацию, необходимую для подключения к БД. Размер страницы может быть равен 1 (по умолчанию), 2, 4 или 8 Кбайт. Он устанавливается при создании БД, но может изменяться при сохранениее и восстановлении базы. Одна страница считывается SQL-сервером за один логический доступ к БД.

Размер буфера ввода-вывода для операций чтения-записи задается количеством страниц. По умолчанию размер буфера равен 75. Если информация из БД будет чаще считываться, чем записываться в нее, то объем буфера рекомендуется увеличить. Если информация будет чаще записываться в БД, то размер буфера можно уменьшить. Некоторые характеристики SQL-сервера InterBase приведены в табл.2.

Пользователь получает доступ к БД с помощью специально созданных клиентских приложений или утилит InterBase Windows Interactive SQL (WISQL), InterBase Server Manager, а также SQL Explorer и SQL Monitor, предназначенных для работы с SQL-сервером InterBase и другими СУБД.

Утилита WISQL работает с SQL-сервером InterBase напрямую через интерфейс прикладной программы API (Application Program Interface) и позволяет направлять к серверу запросы на создание БД , таблиц, изменение структуры данных, чтение данных из БД или их изменение и т.п.

Утилита InterBase Server Manager используется для управления SQL-сервером и конкретными БД. С ее помощью можно определять параметры SQL-сервера, производить сохранение, восстановление БД, сборку неиспользуемой памяти (сборку "мусора"), определять новых пользователей их пароли и т.д.

Утилита SQL Explorer предназначена для просмотра БД, работы с таблицами, индексами, доменами, ограничениями и другими характеристиками БД.

Утилита SQL Monitor используется для просмотра и анализа реальных процессов, происходящих на сервере при выполнении SQL-запросов.

Существует версия SQL-сервера InterBase, реализующая полный набор функций для локального однопользовательского применения. Эта версия, называемая локальным сервером InterBase, может использоваться при разработке клиент-серверных приложений в качестве модели реального SQL-сервера или для переноса локальной БД на SQL-сервер. Кроме этого, локальный сервер InterBase может применяться в качестве процессора БД в обычных локальных приложениях. Его применение позволяет программисту повысить надежность разрабатываемого приложения и избежать возможной потери данных при тестировании неотлаженных приложений.

Если БД, для работы с которой предназначено разрабатываемое приложение, уже существует, то локальный сервер InterBase может быть использован в качестве проверочной модели перед последующим подключением приложения к удаленному SQL-серверу InterBase.

Если реальная БД еще не существует, то локальный сервер InterBase может использоваться для создания прототипа данных, на которых будет проверяться работоспособность приложения.

Если приложение разрабатывается для уже существующей БД, функционирующей на удаленном SQL-сервере InterBase, то перед проверкой работоспособности приложения на реальных данных локальный сервер InterBase может использоваться для создания резервных копий данных или для отладки приложения на представительной выборке информации из существующей БД.

При переносе локальной БД на клиент-серверную платформу локальный сервер InterBase используется в качестве промежуточного сервера, на котором проверяется структура новой БД, предназначенной для установки на сервере. После успешной проверки база данных переносится на SQL-сервер.

 
Если на компьютере с установленным локальным сервером InterBase не предусмотрен его автоматический запуск при загрузке операционной системы Windows, то запуск осуществляется из стартового меню Windows командой Программы / InterBase 5.0 / InterBase Guardian. О запуске сервера сигнализирует значок справа на панели задач Windows, который является пиктограммой утилиты InterBase Guardian, осуществляющей начальный запуск сервера InterBase, а также его перезапуск, если по каким-либо причинам сервер прекратил свою работу. Локальное меню этой утилиты позволяет проверить и переопределить стартовые параметры сервера InterBase, ознакомиться со свойствами сервера InterBase и текущей сессии (например, с числом активных подключений и числом используемых БД), а также завершить работу сервера InterBase.

Для обеспечения доступа клиентскому приложению к локальному серверу InterBase достаточно задать псевдоним БД с помощью утилиты BDE Administrator и использовать этот псевдоним в компонентах TDatabase или TTable и TQuery, если подключение к БД происходит, минуя компонент TDatabase. При доступе к локальному серверу InterBase с помощью утилиты WISQL указывается путь к БД, имя пользователя и пароль.

При работе с удаленным SQL-сервером InterBase необходимо зарегистрировать его в файлах каталога WINDOWS на клиентском компьютере, с которого происходит обращение к серверу. Так, при использовании протокола TCP/IP IP-адрес сервера и имя должны быть указаны в файле HOSTS (например, 10.12.0.43 srv), а протокол доступа к серверу должен быть описан в файле SERVICE: gds_db 3050/tcp.

Утилиты для работы с SQL-сервером InterBase

Утилита SQL Explorer

Утилита SQL Explorer является универсальным средством доступа к БД, с помощью которого можно создавать псевдонимы БД, а также просматривать и изменять содержимое БД, в том числе добавлять и удалять таблицы, столбцы и т.п. Запуск утилиты осуществляется из стартового меню Windows командой Пуск / Программы / Borland Delphi 5 / SQL Explorer или из главного меню системы Delphi командой Database / Explorer.

В окне утилиты (рис.1) имеются главное меню, панель инструментов и две рабочие панели - левая с закладками Database и Dictionary и правая с закладками Definition, Summary, Text, Data и Enter SQL.

Главной меню и панель инструментов служат для управления утилитой и ее настройки.

Левая панель на закладке Database позволяет просматривать существующие псевдонимы БД, создавать новые, изменять и удалять их. Здесь же можно увидеть структуру БД, связанной с конкретным псевдонимом: входящие в БД таблицы, домены, представления, хранимые процедуры и т.д. На закладке Dictionary отображается информация из словарей БД.

Состав закладок на правой панели меняется в зависимости от того, какой объект выбран на левой панели. На закладке Definition отображается определение или параметры выбранного объекта (таблицы, столбца (поля), хранимой процедуры и т.п.). На закладке Summary перечисляются элементы, входящие в объект. На закладке Text приводится описание выбранного объекта или элемента на языке SQL. На закладке Data можно увидеть содержимое таблицы, выбранной на левой панели. Закладка Enter SQL предназначена для ввода запросов на языке SQL, их выполнения и отображения результатов выполнения запросов.

Выбор команды из главного меню утилиты активизирует соответствующее подменю. Так, подменю Object, в основном, содержит команды, задающиеся действия над объектом, выбранным на левой панели окна утилиты; команды подменю Dictionary предназначены для обслуживания словарей БД, т.е. хранилищ информации о БД и имеющихся в них объектах (таблицах, ограничениях целостности и т.п.); подменю Edit содержит команды для редактирования текста SQL-операторов; команды подменю View управляют видом окна утилиты; с помощью команд подменю Options устанавливаются параметры утилиты; подменю Help содержит команды для получения справочной информации о версии утилиты и правилах работы с утилитой.

Управление псевдонимами

Утилита SQL Explorer позволяет создавать новые псевдонимы для БД, изменять их параметры и уничтожать псевдонимы так же, как это можно делать с помощью утилиты BDE Administrator, рассмотренной в первой части лабораторного практикума [1], но не предоставляет возможности устанавливать системные параметры BDE.

Для создания нового псевдонима нужно на левой панели окна утилиты выбрать закладку Database и щелкнуть мышью по любому псевдониму, а в главном меню утилиты выбрать команду Object / New, которая активизирует диалоговое окно New Database Alias. Заметим, что этой командой можно создавать и другие объекты БД (таблицы, колонки и т.п.) в зависимости от того, какой объект выделен на левой панели.

В окне New Database Alias выбирается имя драйвера БД из предложенного списка, например, INTRBASE для драйвера SQL-сервера InterBase. После выбора драйвера и нажатия на кнопку OK в списке появляется новый псевдоним, имя которого можно скорректировать. Параметры базы данных, обозначенной новым псевдонимом, устанавливаются на правой панели. Например, для БД типа INTRBASE обязательно задаются параметры server name (местонахождение файла с БД, имеющего расширение gdb , в компьютерной сети или на клиентском компьютере, если используется локальный сервер InterBase) и USER NAME (имя пользователя для доступа к серверу). Информация о новом псевдониме запоминается после выбора команды Object│Apply. Для удаления псевдонима или другого объекта следует выбрать его в списке и воспользоваться командой Object│Delete.

Просмотр метаданных

Для просмотра метаданных, относящихся к БД, нужно выбрать ее псевдоним на левой панели окна утилиты и щелкнуть мышью по квадрату, стоящемуся слева от псевдонима БД, чтобы раскрыть дерево метаданных. При этом для БД, находящейся на сервере, в появившемся диалоговом окне Database Login необходимо будет ввести имя пользователя и пароль. После этого на правой панели появятся характеристики псевдонима БД, а на левой панели раскроется дерево метаданных БД (рис.2).

Дерево метаданных БД, находящейся на сервере, включает следующие ветви:

-         Domains - домены;

-         Tables - таблицы;

-         Views - представления (виртуальные таблицы);

-         Procedures - хранимые процедуры;

-         Functions - функции, определяемые пользователем ;

-         Generators - генераторы;

-         Exceptions - исключения;

-         Blob Filters - BLOB-фильтры.

В состав метаданных локальных БД входят только таблицы.

Для работы с определенным элементом метаданных следует выбрать соответствующую ветвь дерева и раскрыть список, щелкнув мышью по квадрату, стоящемуся слева от названия ветви.

Для просмотра характеристик элемента метаданных (домена, таблицы, процедуры и т.д.) или его текста на языке SQL нужно выбрать имя элемента в дереве на левой панели, а на правой панели выбрать закладку Definition или Text (рис.3).

Просмотр и редактированием содержимого таблиц

Чтобы ознакомиться с содержимым таблицы БД и при необходимости добавить в нее новые строки, удалить ненужные, изменить значения полей, следует

раскрыть ветвь дерева метаданных, соответствующую выбранной БД, затем раскрыть ветвьTables и щелкнуть мышью по названию требуемой таблицы. На закладке Data правой панели отображается содержимое выбранной таблицы, а на панели инструментов становятся доступны кнопки навигатора, предназначенные для выполнения операций с таблицей (рис.4).

Чтобы увидеть содержимое MEMO- или BLOB-полей в соответствующем окне (см. рис.1), нужно воспользоваться командой главного меню утилиты View / Blob Explorer или кнопкой Explore Blobs на панели инструментов. Локальное меню этого окна позволяет сделать его неперекрываемым (Always On Top) и выбрать подходящий режим отображения информации (Show As Default - графика или текст в зависимости от заданных параметров псевдонима БД; Show As Graphic - графическое изображение в формате bmp ; Show As Text -текст, который можно редактировать).

Создание и выполнение запросов

Для создания и выполнения запроса на языке SQL следует на левой панели выбрать псевдоним нужной БД, а на правой панели - закладку Enter SQL. В окне редактора набирается текст запроса, и нажатием на кнопку иниции­руется выполнение запроса. В нижней части правой панели отображается результат выполнения запроса (рис.5). Кнопки и предназначены для про­смотра списка выполненных запросов и выбора запроса для повторного выполнения. Первую из этих кнопок можно также использовать для перехода к созданию нового запроса.

Работа со словарем данных

Закладка Dictionary на левой панели окна утилиты содержит сведения о базах данных (Databases) и наборах атрибутов (Attribute Sets), зафиксированные в словаре данных. Словарь данных - это особая БД, используемая для хранения наборов атрибутов, имеющихся у компонентов типа TField, которые являются полями в наборах данных.

Набор атрибутов описывает свойства компонента TField, тип поля (TFieldClass) и тип визуального компонента (TControlClass), предназначенного для отображения значения соответствующего поля в приложении, разрабатываемом с помощью систем Delphi или C++Builder. Визуальный компонент создается в разрабатываемом приложении автоматически, когда программист "перетаскивает" имя поля из редактора полей в клиентскую область формы.

Кроме того, запоминая наборы атрибутов в словаре данных, программист, установив однажды свойства для одного компонента, может затем присваивать этот набор атрибутов другим компонентам, у которых должны быть такие же свойства. Т.е. так же, как и в системе Clarion, использование словаря данных в системах Delphi и C++Builder позволяет сократить трудоемкость разработки приложения.

Наборы атрибутов могут быть образованы для любой БД путем импортирования существующей БД в словарь данных либо непосредственно из редактора полей при работе с набором данных, размещенным в форме приложения, создаваемого в интегрированной среде системы.

Чтобы увидеть БД и наборы данных, включенные в словарь данных, нужно раскрыть дерево словаря на левой панели, щелкнув мышью по квадрату, стоящемуся слева от вершины дерева словаря Dictionary (рис.6). Параметры объектов словаря данных, выбранных в дереве словаря, отображаются на закладках Definition или Summary правой панели.

Для создания и изменения словаря данных и входящих в него объектов предназначены команды, связанные с пунктом Dictionary главного меню утилиты и локальными меню объектов. Например, для создания нового словаря данных служит команда Dictionary / New, а включение в словарь данных информации о существующей БД и ее атрибутах задается командой Dictionary / Import From Database. Эта команда позволяет, в частности, импортировать из БД, находящейся на сервере, ограничения целостности и сведения о значениях полей, устанавливаемых по умолчанию.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=29402