Ранее были рассмотрены программные инструменты для работы с БД. Большинство этих программ можно использовать и для работы с удаленными БД. Так, создать псевдоним для InterBase позволяют программы Administrator BDE и Database Desktop, а редактировать и просматривать записи можно с помощью программы SQL Explorer. В дополнение к ним в данной главе мы познакомимся с программами, предназначенными специально для удаленных БД.
Программа IBConsole
Программа IBConsole предназначена для управления сервером InterBase и является его консолью. Консоль устанавливается совместно с сервером InterBase и находится в его каталоге BIN, ее главный файл называется IBConsole.exe. Программу также можно запустить через меню Пуск Windows, выбрав команду Про-rpaMMbi\InterBase\IBConsole.
Для запуска и остановки сервера служит программа InterBase Server Manager, функциональность которой начиная с версии Delphi 6 значительно уменьшилась.
Программа IBConsole обеспечивает:
□ управление локальными и удаленными серверами;
□ управление БД;
□ интерактивное выполнение SQL-запросов.
Основную часть окна IBConsole занимают две панели (рис. 16.1). В левой панели в виде дерева представлены зарегистрированные серверы и их БД, а также элементы структуры, например, таблицы или пользователи. Отметим, что в качестве имени сервера или БД отображается его псевдоним (alias), задаваемый при регистрации сервера или БД (этот псевдоним никак не связан с псевдонимом BDE). В правой панели выводится информация об объекте, выбранном в левой панели.
Глава 16. Инструменты для работы с удаленными базами данных
447
Управление сервером
П управлении сертификатами; П определении пользователей. |
Управление сервером заключается в:
|
П регистрации сервера;
П подключении сервера;
П просмотре протокола работы;
Для управления сервером используются команды меню Server главного окна программы IBConsole, а также команды контекстного меню сервера и его элементов.
После запуска консоли в левой панели отображается список зарегистрированных серверов, которые первоначально отключены, о чем свидетельствует красный крестик в значке сервера.
Подключение к серверу
Подключение к серверу, выбранному в левой панели, выполняется командой Login. При этом появляется окно Server Login (рис. 16.2), в котором необходимо указать имя пользователя (User Name) и его пароль (Password). После указания имени sysdba системного администратора, его пароля masterkey и нажатия кнопки Login осуществляется подключение к серверу, имя (alias) которого отображается в надписи Server, а к значку сервера добавляется зеленая галочка.
Отключение от выбранного сервера выполняется командой Logout. При этом выдается запрос на продолжение операции и в случае подтверждения сервер отключается.
448
Часть III. Удаленные базы данных
Рис. 16.2. Подключение к серверу
После подключения к серверу можно выполнить проверку подключения к одной из его БД. Командой Diagnose Connection открывается окно проверки соединения Communication Diagnostics (рис. 16.3), в котором указывается информация о сервере. В качестве БД задается ее файл, который можно выбрать в окне Open, открываемом нажатием кнопки с тремя точками.
Кнопка Test инициирует проверку, результаты которой выводятся в поле Results.
На страницах TCP/IP, NetBEUI, SPX можно выполнить настройку соответствующего сетевого протокола.
|
Глава 16. Инструменты для работы с удаленными базами данных
449
Регистрация сервера
Для регистрации в консоли нового сервера необходимо выполнить команду Register, после чего открывается окно регистрации и соединения с сервером Register Server and Connect (рис. 16.4).
При регистрации локального сервера устанавливается переключатель Local Server. При необходимости в поле описания (Description) можно ввести краткую информацию, поясняющую назначение и особенности сервера. После нажатия кнопки ОК локальный сервер регистрируется, а его имя добавляется к списку в левой панели.
В случае регистрации удаленного сервера устанавливается переключатель Remote Server и заполняются поля, которые заблокированы при подключении локального сервера: в поле Server Name указывается сетевое имя сервера, в списке Network Protocol выбирается протокол связи, а в поле Alias Name задается имя (псевдоним), под которым сервер регистрируется в консоли.
Одновременно с регистрацией можно выполнить подключение сервера, для чего должны быть заполнены поля User Name и Password группы Login Information.
Отмена регистрации выбранного сервера выполняется командой Un-Register. При этом выдается запрос на продолжение операции, и в случае подтверждения сервер исключается из консоли. Перед отменой регистрации сервера его необходимо отключить.
450
Часть III. Удаленные базы данных
Просмотр протокола работы сервера
В процессе работы сервера ведется протокол (log file), просмотреть который можно, вызвав команду View Logfile. При этом появляется окно протокола Server Log (рис. 16.5), в котором выводится краткий отчет о работе сервера.
|
Протокол можно распечатать или сохранить в текстовом файле.
Операции с сертификатами
Список сертификатов (certificate — удостоверение), действительных для сервера, можно просмотреть в правой панели, выбрав в левой панели элемент Certificates. Сертификат можно добавить, открыв командой Add Certificate одноименное окно Add Certificate (рис. 16.6) и указав в нем код (ID) и ключ (Key) сертификата. После нажатия кнопки ОК выполняется проверка сертификата, и, если ошибки не найдены, новый сертификат добавляется к серверу.
Выбранный в списке сертификат удаляется командой Remove Certificate. Перед удалением выдается запрос на подтверждение операции.
Глава 16. Инструменты для работы с удаленными базами данных
451
Управление пользователями
Для каждого сервера есть список пользователей, имеющих право доступа к нему. Список таких пользователей можно просмотреть в правой панели, выбрав в левой панели элемент Users. Консоль позволяет добавить или удалить пользователя, а также просмотреть и изменить его атрибуты. Эти действия (кроме удаления) выполняются в окне User Information (рис. 16.7), открываемом командой User Security или командами контекстного меню списка пользователей.
Рис. 16.7. Атрибуты пользователя
Для пользователя необходимо ввести обязательные атрибуты (Required Information), которыми являются его системное имя (User Name), пароль (Password) и повтор пароля (Confirm Password). Имя пользователя также можно выбрать в раскрывающемся списке. Остальные атрибуты являются дополнительными (Optional Information) и не требуют обязательного ввода: имя (First Name), отчество (Middle Name) и фамилия (Last Name).
Управление БД
Список баз данных, зарегистрированных для сервера, отображается в левой панели. Так, на рис. 16.1 для локального сервера (Local Server) такими БД являются Registration и Human Resources. Зарегистрированная БД может быть подключена или отключена от сервера, что отмечается, соответственно, зеленой галочкой или красным крестом в значке БД.
Управление БД заключается в:
□ регистрации БД; □ проверке состояния БД;
□ подключении БД; □ анализе статистики;
□ создании и удалении БД; □ сохранении и восстановлении БД.
□ просмотре метаданных;
452
Часть III. Удаленные базы данных
Для управления БД используются команды меню Database главного окна программы IBConsole, а также команды контекстного меню баз данных и их элементов.
Регистрация базы данных
Регистрация БД начинается командой Register, которая открывает окно Register Database and Connect (рис. 16.8). В этом окне необходимо указать (выбрать) главный файл БД (File), а также псевдоним (имя) БД (Alias), под которым она будет зарегистрирована на сервере, обозначенном надписью Server. По умолчанию в качестве псевдонима БД предлагается имя ее главного файла с расширением.
Остальные данные не являются обязательными. Однако если задать имя и пароль пользователя, то после регистрации выполняется подключение указанной БД.
Исключение БД из списка регистрации сервера выполняется командой Unregister, при этом БД предварительно должна быть отключена от сервера. При выполнении операции запрашивается подтверждение.
Подключение базы данных
Подключение БД к серверу и отключение от него выполняется командами Connect и Disconnect соответственно. Команда Connect As позволяет подключиться к БД с новыми параметрами, указываемыми в окне Database Connect (рис. 16.9).
Глава 16. Инструменты для работы с удаленными базами данных
453
Рис. 16.9. Подключение БД к серверу
Создание базы данных
Консоль позволяет достаточно удобно и быстро создавать БД, в том числе многофайловые. Создание БД, а также ее удаление, для которых предназначены команды Create Database и Drop Database, рассмотрены в главе 14.
Просмотр метаданных
Метаданные представляют собой элементы структуры БД. Для выбранной БД их можно просмотреть с помощью команды View Metadata, которая открывает окно Database Metadata. На рис. 16.10 показаны метаданные БД emioyee.gdb, которая поставляется вместе с сервером InterBase в качестве примера.
454
Часть III. Удаленные базы данных
Метаданные представляют собой сценарий (скрипт), написанный на языке SQL, который можно распечатать или сохранить в текстовом файле. Сохраненный сценарий впоследствии можно выполнить, создав БД со всей ее структурой и данными.
Сбор мусора
В процессе интенсивной многопользовательской работы в БД накапливается так называемый "мусор", под которым понимают старые версии записей, которые могут образовываться при одновременном доступе к записям нескольких транзакций. Наличие мусора увеличивает размер и фрагментацию БД, поэтому БД надо периодически чистить — "удалять мусор" (удаление мусора также называют "сбором мусора").
Удаление мусора можно выполнять в ручном или автоматическом режимах. В ручном режиме удаление мусора начинается командой Maintenance\Sweep (Обслуживание\Чистка). Во втором режиме удаление мусора начинается автоматически, когда общее число примененных к БД транзакций достигает предельного значения. По умолчанию это значение установлено равным 20 000, его можно изменить в поле Sweep Interval (Интервал чистки) окна свойств БД (Database Properties).
Если при чистке БД работают активные пользователи, то это снижает эффективность удаления мусора, т. к. используемые транзакциями записи не могут быть обработаны "уборщиком". Поэтому удаление мусора следует проводить в периоды наименьшей загрузки БД, например, в ночные часы или в режиме монопольного доступа к ней системного администратора.
Мусор удаляется также при резервном копировании и последующем восстановлении БД.
Проверка состояния базы данных
БД должна находиться в целостном и непротиворечивом состоянии, т. е. содержать правильные данные. Для проверки состояния БД нужно выбрать команду Maintenance\Validation, которая открывает диалоговое окно проверки БД Database Validation (рис. 16.11).
Глава 16. Инструменты для работы с удаленными базами данных
В надписи Database отображается имя проверяемой БД, а группа Options позволяет задать параметры поверки:
□ Validate Record Fragments (проверка структуры БД и структуры страниц);
□ Read Only Validation (в процессе проверки допускается только читать, но не
изменять записи);
□ Ignore Checksum Errors (ошибки контрольных сумм игнорируются).
По умолчанию все параметры имеют значение False, т. е. выключены. После нажатия кнопки ОК выполняется проверка, о результатах которой выдается соответствующий отчет в окне Validation Report.
Анализ статистики
В процессе управления БД собирается определенная информация, характеризующая ее работу и функционирование. Эта информация называется статистикой, несмотря на то что часть ее является управляющей информацией, определяемой в том числе и при создании БД (например, размер страницы или дата создания БД). К собственно статистике относятся такие сведения, как частота обновления заголовка БД и гистограмма заполнения страниц.
Для вывода статистики нужно выбрать команду Maintenance\Database Statistics, которая открывает диалоговое окно Database Statistics (рис. 16.12).
Рис. 16.12. Статистика БД
Выводимые в окне сведения о БД сгруппированы по секциям:
□ Database (имя БД);
□ Database header page information (страница заголовка БД):
• Flags (флаги);
• checksum (контрольная сумма);
• Generation (счетчик обновлений заголовка);
• Page size (размер страницы);
456
Часть III. Удаленные базы данных
• ods version (версия формата файла БД);
• oldest transaction (номер самой старой незавершенной (активной, отмененной или сбойной) транзакции);
• oldest active (номер самой старой активной транзакции);
• Next transaction (номер, который будет назначен следующей транзакции);
• Sequence number (номер первой страницы);
• Next attachment id (номер, который будет назначен следующему соединению);
• implementation id (идентификатор операционной системы, в которой создана БД);
• shadow count (число теневых файлов, определенных для БД);
• Page buffers (номер страницы в кэше БД);
• Next header page (номер, который будет назначен следующей странице заголовка);
• Creation date (дата создания БД);
• Attributes (атрибуты БД);
□ Database file sequence (список файлов БД):
• File (имя файла);
□ Database log page information (страница журнала БД).
Сохранение и восстановление базы данных
Сохранение БД заключается в создании резервной копии БД, которую впоследствии можно использовать для восстановления данных при сбое. Предварительно БД необходимо отключить.
Для создания резервной копии БД нужно выполнить команду Maintenance\ Backup-Restore\Backup, которая откроет окно создания резервной копии Database Backup (рис. 16.13).
В списке Alias группы Database выбирается имя сохраняемой БД, а элементы группы Backup File(s) определяют файл результата — сохраненной копии БД. В комбинированных списках Server и Alias выбирается или вводится соответственно имя сервера и БД для сохраняемой БД, а в поле Filename(s) вводится полное имя файла копии БД. В приведенном на рис. 16.13 варианте в имени копии указано слово Сору, а расширение gdb оставлено без изменений. В примерах, поставляемых совместно с сервером InterBase, имена копий совпадают с именами исходных файлов, а расширения изменены на gbk.
Группа Options позволяет задать следующие параметры:
□ Format (Формат) — формат копии, которая по умолчанию создается в перено
симом формате, не зависящем от операционной системы: сделанную в этом
Глава 16. Инструменты для работы с удаленными базами данных
457
формате копию можно перенести (восстановить) на компьютер под управлением любой из операционных систем, где установлен сервер InterBase; |
□ Metadata Only (Только метаданные) — копируются только метаданные БД, т. е. ее структура; в результате будет скопирована (создана) пустая БД; по умолчанию параметр имеет значение False, поэтому создается полная копия БД;
□ Garbage Collection (Сбор мусора) — при копировании производится сбор мусора (по умолчанию);
□ Transaction in Limbo (Транзакция в "забвении") — учитываются сбойные транзакции, которые могут возникнуть при размещении БД на нескольких серверах (значение Process по умолчанию); значение ignore предписывает не учитывать сбойные транзакции;
□ Checksums (Контрольные суммы) — учитываются ошибки, связанные с несовпадением контрольных сумм (значение Process по умолчанию); при значении ignore ошибки контрольных сумм игнорируются;
□ Convert to Tables (Преобразование в таблицы) — преобразование в таблицы, по умолчанию False;
□ Verbose Output (Расширенный вывод) — указывает устройство, на которое в процессе копирования выдается дополнительная информация о ходе процесса, по умолчанию экран (значение то screen); кроме экрана можно указать файл (то File) или отменить выдачу сообщений (None).
После завершения процесса выдается отчет о результатах, который в случае успешного создания копии выводится в окне Database Backup и имеет следующий вид:
gbak: readied database D:\ibData\REGISTRATION.GDB for backup gbak: creating file d:\save\CopyRegistration.gdb
458
Часть III. Удаленные базы данных
gbak gbak gbak gbak gbak gbak
gbak gbak gbak gbak gbak gbak gbak
starting transaction
database D:\ibData\REGISTRATION.GDB has a page size of 4096 bytes.
writing domains
writing shadow files
writing tables
writing functions
writing privilege for user SYSDBA
writing privilege for user PUBLIC
writing table constraints
writing referential constraints
writing check constraints
writing SQL roles
closing file, committing, and finishing. 512 bytes written
При наличии ошибок копия не создается, а отчет содержит сообщения об ошибках.
(Замечание^
Если резервное копирование выполняет не системный администратор, а пользователь, то ошибки могут быть связаны с отсутствием у него прав доступа к информации БД.
Резервная копия представляет собой архивный файл, размер которого в несколько раз меньше, чем размер исходного файла (файлов) БД.
Процесс восстановления БД из резервной копии БД инициируется командой Maintenance\Backup-Restore\Restore, открывающей диалоговое окно Database Restore (рис. 16.14).
В списке Alias группы Backup File(s) выбирается имя сохраненной БД, после чего имя ее файла-копии автоматически выводится в поле Filename(s). Если имя БД отсутствует в списке, то можно задать ее файл, выбрав в списке элемент File и указав его имя в открывшемся окне Open. Элементы группы Database определяют сервер (Server), имя БД (Alias) и главный файл БД (Filename(s)).
Группа Options содержит следующие параметры восстановления:
□ Page Size (Bytes) — размер в байтах страницы восстанавливаемой БД (по умолчанию 1024);
□ Overwrite (Перезаписать) — если расположение и имя восстанавливаемой копии совпадают с расположением и именем существующей БД, то последняя будет заменена копией; по умолчанию имеет значение False, т. е. сохраняется существующая БД;
□ Commit After Each Table (Подтверждение после каждой таблицы) — при восстановлении каждой таблицы выдается запрос на подтверждение этой операции; по умолчанию этот параметр имеет значение False, и запрос не выдается;
Глава 16. Инструменты для работы с удаленными базами данных
459
□ Create Shadow Files (Создание теневых файлов); по умолчанию False, т. е. восстановление выполняется без создания теневой (зеркальной) копии БД;
□ Deactivate Indices (Отключить индексы) — восстановление выполняется с отключенными индексами; по умолчанию этот параметр имеет значение False, и индексы активны;
□ Validity Conditions (Условия проверки) — при значении Restore (по умолчанию) выполняется восстановление ограничений ссылочной целостности, при значении ignore ограничения не восстанавливаются;
□ Use All Space (Использовать все имеющееся пространство); по умолчанию
False;
□ Verbose Output (Расширенный вывод) — указывает устройство, на которое в
процессе копирования выдается дополнительная информация о ходе процес
са, по умолчанию экран (значение то screen); кроме экрана, можно указать
файл (то File) или отменить выдачу сообщений (None).
После завершения процесса отчет о результатах, который в случае успешного восстановления БД выводится в окне Database Restore и имеет следующий вид:
JEDN JEDN JEDN JEDN JEDN JEDN JEDN JEDN JEDN
opened file d:\save\CopyRegistration.gdb transportable backup — data in XDR format
backup file is compressed Reducing the database page size from 4096 bytes to 1024 bytes created database D:\ibData\REGISTRATION.GDB, page_size 1024 bytes started transaction
restoring privilege for user SYSDBA
restoring privilege for user SYSDBA
restoring privilege for user SYSDBA
460
Часть III. Удаленные базы данных
Интерактивное выполнение SQL-запросов
Консоль IBConsole позволяет в интерактивном режиме выполнять инструкции, заданные на языке SQL. Выполнение SQL-запросов и получение их результатов выполняются в окне Interactive SQL (рис. 16.15), открываемом командой Tools\Interactive SQL. Это окно реализует практически ту же функциональность, которая в предыдущих версиях сервера InterBase была реализована в программе Windows Interactive SQL (WISQL). В заголовке окна отображается имя файла БД, а в строке состояния — его полное имя. Одновременно можно открыть несколько окон Interactive SQL для различных БД.
В окне Interactive SQL можно выполнять различные операции с БД, включая создание и удаление БД и ее таблиц, соединение с БД, просмотр и изменение данных. Выполнение операций с БД основано на выполнении соответствующих инструкций языка SQL (SQL-запросов). Эти инструкции формируются и выполняются автоматически при выборе определенных команд меню. Так, при создании БД на основании указанных параметров формируется инструкция
CREATE DATABASE.
Кроме того, можно набирать и выполнять инструкции вручную. Инструкции вводятся в верхней части окна, а в нижней его части выдаются результаты их выполнения.
Глава 16. Инструменты для работы с удаленными базами данных
461
Инструкции можно набирать и выполнять поочередно. Перемещение между отдельными инструкциями осуществляется нажатием кнопок с изображением желтых стрелок. Кнопка со стрелкой влево выводит в окне предыдущую, а со стрелкой вправо — следующую инструкцию. Выполнение инструкции осуществляется при нажатии кнопки с изображением желтой молнии.
Результаты работы инструкции можно запомнить в обычном текстовом файле, выбрав команду сохранения результата Query\Save Output.
Последовательность действий, заданных после запуска окна Interactive SQL, можно сохранить в виде "истории". Для этого предназначена команда File\Save SQL History. "История" запоминается в виде текстового файла с расширением hst или txt.
Последовательность инструкциий SQL представляет собой сценарий, или скрипт, его удобно использовать для автоматизации операций с БД. Сохранение сценария выполняется командой Query\Save Script. Скрипт запоминается в виде текстового файла с расширением sql или txt.
Сохраненный сценарий впоследствии можно загрузить, для этого надо выбрать команду Query\Load Script и указать имя сценария.
При выполнении операций, связанных с изменением БД, автоматически используется механизм транзакций, т. е. одновременно с началом изменяющей БД операции запускается транзакция. Такой режим запуска транзакций, как вы уже знаете, называется неявным. Для фиксации выполненных изменений нужно выполнить оператор commit, а для их отмены (отката) — rollback (это же можно сделать с помощью команд Transactions\Commit и Transactions\Rollback).
Параметры выполнения SQL-запросов устанавливаются в окне SQL Options, открываемом командой Edit\Options (рис. 16.16).
462
Часть III. Удаленные базы данных
На странице Options можно задать следующие параметры:
□ Show Query Plan (Показывать план выполнения запроса);
□ Auto Commit DDL (Автоматическое подтверждение операций DDL) — инструкции определения данных, например создания таблиц, автоматически подтверждаются, т. е. связанная с инструкциями неявная транзакция не требует дополнительного подтверждения;
□ Character Set (Набор символов, используемый для кодировки строк); в нашей стране рекомендуется задавать набор wiNi2 5i;
□ BLOB Display (Режим отображения BLOB-объектов); может принимать значения Restrict, Enabled И Disabled;
□ BLOB Subtype (Тип данных, содержащихся в объекте BLOB); по умолчанию
Text;
□ Terminator (Разделитель, используемый в качестве знака окончания SQL-запроса) — по умолчанию точка с запятой (;);
□ Client Dialect (Диалект (версия) языка SQL).
Флажок Clear input window on success управляет режимом очистки верхней половины окна с текстом SQL-запроса в случае его успешного выполнения. По умолчанию флажок установлен, и окно очищается.
(_____ ЗамечаниеJ
d коде хранимых процедур и триггеров в качестве разделителя используется знак;, который не является окончанием SQL-запроса. Поэтому при их отладке для параметра Terminator необходимо установить другое значение, например, пробел.
Дополнительные параметры устанавливаются на странице Advanced (рис. 16.17). Наибольший интерес представляет группа переключателей Transactions, которые определяют режим подтверждения незавершенной транзакции при прекращении работы с БД: подтверждать незавершенную транзакцию (Commit on exit) или отменять ее (Rollback on exit).
Управление БД в окне Interactive SQL фактически происходит в ручном режиме и заключается в вводе и выполнении инструкций SQL. Единственным средством автоматизации, например, при создании таблиц или триггеров, является использование сценариев, хотя и в этом случае сценарии должны быть предварительно подготовлены. По удобству работы окно Interactive SQL уступает даже относительно простым программам типа Database Desktop. Несмотря на это, управление БД рассмотрено нами именно с использованием интерактивного SQL. Это сделано для того, чтобы показать особенности работы с удаленными БД, а также продемонстрировать язык SQL для удаленного сервера.
Кроме консоли IBConsole и подобных ей программ, есть так называемые средства CASE, с помощью которых разработчик может управлять БД в интерактивном режиме.
Глава 16. Инструменты для работы с удаленными базами данных
463
Программа SQL Monitor
Программа SQL Monitor представляет собой инструмент, позволяющий отслеживать выполнение SQL-запросов к удаленным БД. Для запуска программы нужно выбрать команду Database\SQL Monitor или запустить файл sqlmon.exe, находящийся в каталоге BIN главного каталога Delphi. Программу также можно запустить через меню Пуск Windows командой Программы\Вог1ап(1 Delphi 7\SQL Monitor.
Программа SQL Monitor (Монитор) отслеживает операции доступа к удаленным БД с помощью драйверов SQL-Links. Поэтому для локальных БД применять эту программу бесполезно, даже если используются средства языка SQL. Это связано с тем, что для локальных БД применяются локальные драйверы.
Замечание
J
Если в приложении использованы компоненты страницы InterBase Палитры компонентов, например, набор данных iBQuery, то доступ к БД выполняется напрямую через BDE без использования драйвера SQL-Links. В этом случае контролировать выполнение SQL-запросов к БД InterBase с помощью программы SQL Monitor невозможно.
После запуска Монитор автоматически отслеживает порядок выполнения SQL-запросов (выполняет трассировку инструкций), ведя журнал работы с удаленной БД. Монитор отслеживает запросы для указанного в команде Clients клиента, при отладке Delphi-приложения таким клиентом является Delphi 7. Строки журнала выводятся в верхней части окна программы (рис. 16.18). В нижней части окна отображается строка последнего запроса.
464
Часть III. Удаленные базы данных
Для сохранения журнала в текстовом файле нужно выполнить команду File\Save Log и указать имя файла, для очистки журнала — команду Edit\Clear, для копирования его содержимого в буфер — команду Edit\Copy.
Рис. 16.18. Окно программы SQL Monitor
Параметры Монитора устанавливаются в окне параметров трассировки Trace Options (рис. 16.19), открываемом командой Options\Trace Options.
Глава 16. Инструменты для работы с удаленными базами данных
465
С помощью параметров Монитора можно регулировать степень подробности информации, заносимой в журнал. Монитор имеет следующие параметры:
□ Prepared Query Statements (подготовленные запросы, передаваемые на сервер);
□ Executed Query Statements (выполненные на сервере запросы);
□ Input Parameters (входные параметры) — данные, передаваемые на сервер в качестве параметров запросов;
□ Fetched Data (данные, возвращаемые сервером);
□ Statement Operations (операции с запросами) — allocate, prepare, execute
и fetch;
□ Connect/Disconnect (операции соединения с сервером и отключения от него);
□ Transactions (операции управления транзакциями);
□ Blob I/O (ввод/вывод данных типа blob);
□ Miscellaneous (остальные операции);
□ Vendor Errors (сообщения об ошибках, возвращаемые сервером);
□ Vendor Calls (вызовы API-функций сервера).
По умолчанию включены все параметры, и отслеживание выполнения запроса осуществляется максимально подробно. При этом даже простой запрос приводит к появлению в журнале значительного числа строк. Например, после выполнения запроса на отбор записей
SELECT * FROM ti
в журнал будет занесено 26 строк, что не облегчает, а скорее затрудняет проверку выполнения запроса. Поэтому в данном случае можно ограничиться только следующими параметрами:
□ Prepared Query Statements
□ Executed Query Statements
□ Transactions
Тогда после выполнения приведенного запроса в журнал будут занесены такие данные:
1 01:10:47 SQL Prepare: INTRBASE - SELECT 1 FROM ti
2 01:10:47 SQL Transact: INTRBASE - XACT (UNKNOWN)
3 01:10:47 SQL Execute: INTRBASE - SELECT I FROM ti
4 01:10:47 SQL Transact: INTRBASE - XACT Commit
Монитор можно разместить поверх всех окон командой Options\Always on Top.
Глава 17
Трехуровневые приложения
Развитие архитектуры "клиент-сервер" привело к появлению трехуровневой архитектуры, в которой кроме сервера и приложений-клиентов (клиентов) дополнительно присутствует сервер приложений. Сервер приложений является промежуточным уровнем, обеспечивающим организацию взаимодействия клиентов ("тонких" клиентов) и сервера, например, выполнение соединения с сервером, разграничение доступа к данным и реализацию бизнес-правил. Сервер приложений реализует работу с клиентами, расположенными на различных платформах, т. е. функционирующими на компьютерах различных типов и под управлением различных операционных систем. Сервер приложений также называют брокером данных (broker — посредник).
Основные достоинства трехуровневой архитектуры "клиент-сервер":
□ снижение нагрузки на сервер;
□ упрощение клиентских приложений;
□ единое поведение всех клиентов;
□ упрощение настройки клиентов;
□ независимость от платформы.
Информационные системы, основанные на трехуровневой сетевой архитектуре, называют также распределенными.
Принципы построения трехуровневых приложений
В системе Delphi постоянно совершенствуются используемые технологии программирования и соответствующие им наборы компонентов. Так, в предыдущих версиях системы применяемые при разработке многоуровневых приложений технологии и средства объединялись под общим названием MIDAS (Multi-tier distributed application services — службы многоуровневых распределенных приложений). В последней версии системы соответствующие средства (компоненты и объекты) получили общее название DataSnap.
Глава 17. Трехуровневые приложения
467
В Delphi 7 поддерживается создание многоуровневых приложений, основанных на перечисленных ниже технологиях межпрограммного и межкомпьютерного взаимодействия.
□ Модель DCOM (Distributed Component Object Model — модель распределенных компонентных объектов) позволяет использовать объекты, расположенные на другом компьютере.
□ Сервер MTS (Microsoft Transaction Server — сервер транзакций Microsoft) является дополнением к технологии СОМ, разработанной фирмой Microsoft, и предназначен для управления транзакциями.
□ Модель СОМ+ (Component Object Model+ — усовершенствованная объектная модель компонентов) фирмы Microsoft введена в Windows 2000 и интегрирует технологии MTS в стандартные службы СОМ.
□ Сокеты TCP/IP (Transport Control Protocol/Protocol Internet — транспортный протокол/протокол Интернета) используются для соединения компьютеров в различных сетях, в том числе в Интернете.
□ CORBA (Common Object Request Broker Architecture — общедоступная архитектура с брокером при запросе объекта) позволяет организовать взаимодействие между объектами, расположенными на различных платформах.
□ SOAP (Simple Object Acces Protocol — простой протокол доступа к объектам) служит универсальным средством обеспечения взаимодействия с клиентами и серверами Web-служб на основе кодирования XML и передачи данных по протоколу HTTP.
При создании трехуровневого приложения разработка БД и использование сервера принципиально не отличаются от уже рассмотренного случая двухуровневых приложений. Главные особенности трехуровневого приложения связаны с созданием сервера приложений и клиентского приложения, а также с организацией взаимодействия между ними. Для разработки многоуровневых приложений, кроме рассмотренных ранее средств, используются удаленные модули данных и компоненты, размещенные на странице DalaSnap Палитры компонентов.
В трехуровневой архитектуре с использованием механизма доступа BDE процессор баз данных в обязательном порядке устанавливается совместно с сервером приложений, при этом на клиентском компьютере должна быть установлена только библиотека DBClient.dll относительно небольшого размера (210 Кбайт). Таким образом, на компьютере пользователя "тонким" является не только клиент, но и процессор баз данных. Соответствующая трехуровневая архитектура схематично представлена на рис. 17.1. В частном случае два или все три уровня могут располагаться на одном компьютере, что широко используется при отладке приложений.
Взаимодействие между сервером приложений и клиентом организуется через интерфейс провайдера, называемый интерфейсом оператора или просто провайдером. Этот интерфейс обеспечивает передачу информации в виде пакетов данных. Физически пакеты данных представляют собой совокупности двоичных кодов, образующих блоки. Логически пакет данных является подмножеством
468
Часть III. Удаленные базы данных
набора данных, которое содержит данные записей, а также метаданные (информация об именах и типах полей) и ограничения. Провайдер обеспечивает разбиение данных на пакеты, а также кодирование пакетов в зависимости от используемого сетевого протокола.
Рис. 17.1. Трехуровневая архитектура типа "клиент-сервер"