Дейт К. Д27 Руководство по реляционной субд db2/ Пер с англ и предисл. М. Р. Когаловского

Вид материалаРуководство
Глава 14 интерактивный интерфейс db2i системы db2 14.1. введение
Dsnepri меню db2i
Compile, link, run
14.2. Меню spufi
Просмотр _ _ кддейт. результат _ _ _ _ _ _ колонки 001 072
Select * 00010000
Нomeр_детали название цвет вес город
Dsneg10i число показанных строк 4.
14.3. Меню dclgen
14.4. Меню bind/rebind/free
14.5. Меню подготовки программ
14.6. Меню run
14.7. Команды оператора
14.9. Как обойтись без db2i
Подобный материал:
1   ...   13   14   15   16   17   18   19   20   ...   34

ГЛАВА 14

ИНТЕРАКТИВНЫЙ ИНТЕРФЕЙС DB2I СИСТЕМЫ DB2




14.1. ВВЕДЕНИЕ



Почти все функции системы DB2 доступны в режиме on-line при помощи интерактивного интерфейса DB2I. Этот интерфейс обеспечивает не только возможность интерактивного исполнения предложений SQL и вызова заранее написанных прикладных программ, но и, например, возможности выдачи команд оператора, вызова утилит, а также подготовки прикладных программ для исполнения (т. е. их прекомпиляции и компиляции, связывания и т. д.). Что касается этой последней функции, то интерактивная подготовка программ при помощи DB2I фактически рассматривается как обычный режим функционирования, хотя, конечно, всегда можно использовать пакетный режим, если он более предпочтителен (см. раздел 14.9). Заметим, однако, что программы могут вызываться для исполнения с помощью DB2I только в случае, если в них не содержится каких-либо обращений к IMS или CICS, поскольку DB2I исполняется под управлением TSO, а программы, содержащие обращения к IMS или CICS, должны исполняться под управлением IMS и CICS—приемлем любой из этих вариантов.

На рис. 14.1 показана обстановка TSO. Показано, в частности, каким образом DB2I связан с TSO. Как уже указывалось в главе 11, в обстановке TSO сама система TSO служит администратором транзакций. Программы, используемые в пакетном режиме TSO (см. раздел 14.9), исполняются непосредственно под управлением мониторной программы TSO. Программы, используемые в интерактивном режиме TSO, исполняются под управлением ее компонента ISPF (Interactive System Productivity Facility), который для TSO является управляющей программой экранов/диалогов. Двумя конкретными программами, исполняемыми под управлением TSO в интерактивном режиме, являются DB2I и QMF (Query Management Facility). DB2I обсуждается в данной главе, а QMF—в главе 15. Наконец, DB2I в свою очередь обеспечивает (наряду с другими возможностями) исполнение в интерактивном режиме предложений SQL посредством программы, называемой SPUFI (SQL Processor Using File Input; этот акроним обычно произносится «спуфи»). SPUFI обсуждается в разделе 14.2.

Ниже приводится последовательность событий для вызова DB2I:

Вход обычным образом в систему TSO и инициация ISPF.

Выбор варианта «DB2I» из главного меню ISPF.

Появление главного меню DB2I, предоставляющего следующие возможности по выбору (рис. 14.2):

— — SPUFI

— — DCLGEN



Рис. 14.1. Обстановка TSO


DSNEPRI МЕНЮ DB2I

= == =>—

ВЫБЕРИТЕ ОДНУ ИЗ СЛЕДУЮЩИХ ФУНКЦИЙ DB2:

1. SPUFI Обработка предложений SQL

2. DCLGEN Генерация деклараций SQL и включающего языка

3. BIND/REBIND/FREE Выдача команд BIND, REBIND или FREE

для планов

4. ПОДГОТОВКА ПРОГРАММ Исполнение команд РRECOMPILE, BIND,

COMPILE, LINK, RUN

5. RUN Исполнение SQL-программы

6. КОМАНДЫ DB2 Исполнение команд системы DB2

7. УТИЛИТЫ Обращение к утилитам DB2

X. ВЫХОД Выход из DB2I

НАЖМИТЕ: ENTER — для обработки

END — для выхода

HELP — для получения более подробной информации


Рис. 14.2. Главное меню DB21


BIND/REBIND/FREE подготовка программ

— — исполнение

— — команды DB2

— — утилиты.

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





Рис. 14.3. Меню DB2I и документация, предоставляемая в интерактивном режиме


Продолжим теперь более подробное обсуждение предоставляемых по выбору возможностей DB2I.

14.2. МЕНЮ SPUFI



SPUFI обозначает «процессор языка SQL, использующий входные данные из файла» (SQL Processor Using File Input). Как указывалось в разделе 14.1, SPUFI поддерживает интерактивное исполнение предложений SQL с терминала TSO. Основная идея заключается в том, что можно создать файл, содержащий одно или более предложений SQL, используя редактор ISPF, и затем исполнить этот файл предложений с помощью SPUFI, а далее снова использовать редактор ISPF для просмотра результатов исполнения этих предложений, которые будут записаны в другой файл. Отметим, следовательно, что SPUFI—это инструмент профессионала в области обработки данных, а не конечного пользователя. Соответствующим средством для конечного пользователя является QMF (см. главу 15). SPUFI предназначен, главным образом, для прикладных программистов, которые хотят проверить SQL-части их программ, или для администраторов, которые хотят исполнить предложения определения данных SQL, хотя QMF фактически может также использоваться для выполнения обеих этих функций.

Наряду с прочим меню SPUFI позволяет пользователю, а в некоторых случаях требует от него специфицировать:

— Файл, содержащий предложение (или предложения) SQL; этот файл должен уже существовать, хотя он может в настоящее время быть пустым.

— Указание, должен ли этот файл редактироваться с помощью редактора ISPF, прежде чем он будет готов к исполнению (обычно — ДА).

— Файл для получения результатов исполнения предложения (предложений) SQL; этот файл не обязательно должен уже существовать—если он не существует, SPUFI создаст его.

— Уровень изоляции — RR или CS (см. главу 11).

— Требуется ли «автоматическая фиксация» (обычно—ДА). Положительный ответ означает, что SPUFI будет автоматически выдавать команду COMMIT после исполнения входного файла, если не возникнут никакие ошибки, или команду ROLLBACK— в противном случае. Отрицательный ответ означает, что сам входной файл включает предложения COMMIT или, если это не так, то у пользователя после исполнения в интерактивном режиме будет запрашиваться, какую из команд—COMMIT или ROLLBACK—следует выдать.

Если входной файл содержит множество предложений SQL, SPUFI прекратит исполнение этих предложений, как только он встретит в одном из них ошибку. Выходной файл будет содержать последовательность результатов каждого из предложений, в том числе возвращаемые значения SQLCODE, с последующим резюме всего исполнения. Оно включает, в частности, указание, какая из команд—COMMIT или ROLLBACK—была выполнена. На рис. 14.4 показан пример выходного файла SPUFI.


ПРОСМОТР _ _ КДДЕЙТ. РЕЗУЛЬТАТ _ _ _ _ _ _ КОЛОНКИ 001 072

ВВОД КОМАНД = = = > ПРОСМОТР => СТРАНИЦАМИ

––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | –

SELECT * 00010000

FROM P 00020000

WHERE ВЕС IN (12, 16, 17) 00030000

ORDER BY НОМЕР_ДЕТАЛИ; 00040000

––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | –

НOMEР_ДЕТАЛИ НАЗВАНИЕ ЦВЕТ ВЕС ГОРОД

P1 гайка красный 12 Лондон

P2 болт зеленый 17 Париж

P3 винт голубой 17 Рим

P5 кулачок голубой 12 Париж

––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | –

DSNEG10I ЧИСЛО ПОКАЗАННЫХ СТРОК 4.

DSNE616I ИСПОЛНЕНИЕ ПРЕДЛОЖЕНИЯ БЫЛО УСПЕШНЫМ,

SQLCODE 100.

––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | ––––––––– | –

DSNE617I ВЫПОЛНЕНА КОМАНДА COMMIT, SQLCODE 0.


Рис. 14.4. Пример выходного файла SPUFI


14.3. МЕНЮ DCLGEN



Меню DCLGEN позволяет пользователю вызывать программу генератора деклараций. Как уже отмечалось в главе 10, DCLGEN — это программа, которая создает предложения EXEC SQL DECLARE TABLE и декларации соответствующих структур в Коболе или ПЛ/1 из описаний таблиц в каталоге. Результаты DCLGEN сохраняются как раздел библиотечного набора данных, из которого они могут быть внесены в прикладную программу с помощью предложения EXEC SQL INCLUDE.

14.4. МЕНЮ BIND/REBIND/FREE



Это меню позволяет пользователю выдавать команды BIND, REBIND и FREE.

1. Команда BIND создает план прикладной задачи из одного или более модулей запросов к базе данных (DBRM—см. главу 2, разделы 2.1 и 2.2). Наряду с другими могут быть специфицированы следующие параметры:

– Должен ли новый план заменить существующий.

– Уровень изоляции (RR и CS) для нового плана.

– Следует ли проверять правильность плана на стадии связывания или на стадии исполнения. Проверка правильности представляет собой процесс, позволяющий убедиться в том, что ссылки на таблицы, столбцы и т. п. являются синтаксически корректными и что пользователь, который выдает команду BIND, обладает полномочиями на исполнение данных операций SQL в связываемых модулях запросов к базе данных. Обычно проверка правильности осуществляется на стадии связывания. В некоторых случаях такая проверка может, однако, оказаться невозможной на стадии связывания. Например, план может содержать ссылки на таблицу, которая еще не существует (может быть, сам этот план создает указанную таблицу), или он может включать такие операции, на выполнение которых пользователь еще не имеет необходимых полномочий. В таких случаях следует запрашивать проверку правильности плана на стадии исполнения. Заметим, однако, что проверка правильности на стадии исполнения является сравнительно дорогой, поскольку она должна осуществляться для данного предложения каждый раз, когда оно исполняется.

2. Команда REBIND заново осуществляет связывание существующего плана. Она отличается от варианта команды BIND с заменой имеющегося плана тем, что исходными данными для нее является некоторый план, а не множество модулей запросов к базе данных. Команду REBIND обычно используют после существенного изменения физической структуры базы данных, например если были созданы какие-либо новые индексы. В результате становится целесообразной переоценка стратегии доступа для плана, указанного в запросе.

3. Команда FREE уничтожает специфицированный существующий план.

14.5. МЕНЮ ПОДГОТОВКИ ПРОГРАММ



Меню подготовки программ позволяет пользователю выполнять любую (или все) из указанных ниже функций:

— прекомпиляция

— компиляция или ассемблирование

— обращение к редактору связей

— обращение к генератору планов прикладных задач

— исполнение программы.

Все необходимые параметры для прекомпилятора, генератора планов и т. д. могут быть заданы с помощью меню. Заметим, что сама исходная программа должна уже к этому времени быть создана с помощью соответствующего текстового редактора, например редактора ISPF.

14.6. МЕНЮ RUN



Меню RUN, по существу, является как раз частью «исполнения» из множества всех меню, связанных с подготовкой программ. Оно позволяет пользователю исполнить предварительно подготовленную прикладную программу при условии, что эта программа, как уже упоминалось выше, является приложением TSO, а не IMS или CICS.

14.7. КОМАНДЫ ОПЕРАТОРА



Это меню позволяет пользователю вводить команды с консоли оператора, например START DATABASE, STOP DATABASE и т. п.

14.8. УТИЛИТЫ



Это меню дает пользователю возможность вызывать утилиты системы DB2. В состав этих утилит наряду с другими входят следующие:

LOAD. Утилита LOAD загружает данные из набора данных SAM в одну или более таблиц DB2. Примечание. Такой набор данных SAM может состоять из данных, разгруженных из набора данных VSAM или из базы данных системы IMS, из таблицы DB2 или SQL/DS (см. раздел 15.4).

COPY. Утилита COPY создает полную или инкрементную копию содержимого табличного пространства или сегмента. Инкрементная копия — это копия именно тех данных, которые были изменены с тех пор, когда была создана предыдущая полная или инкрементная копия.

MERGE COPY. Утилита MERGE COPY производит объединение полной копии и одной или более инкрементных копий для заданного табличного пространства или его сегмента с тем, чтобы продуцировать текущую полную копию. Она позволяет также объединять множество инкрементных копий и продуцировать текущую инкрементную копию.

RECOVER. Утилита RECOVER служит для восстановления табличного пространства или его сегмента после разрушения относящейся к ним информации на носителях. При этом используется самая поздняя полная копия, последующие инкрементные копии, а также журнал.

REORG. Утилита REORG осуществляет реорганизацию табличного пространства или его сегмента, в результате которой появляется возможность использовать ранее остававшееся бесполезным пространство. Если это необходимо, осуществляется также восстановление последовательности кластеризации.

RUNSTATS. Утилита RUNSTATS вычисляет различные статистические характеристики, касающиеся таких вещей, как число записей в каждой таблице, и записывает их в системный каталог. Эти характеристики используются генератором планов прикладных задач в осуществляемом им процессе оптимизации.

14.9. КАК ОБОЙТИСЬ БЕЗ DB2I



Как указывалось во введении (см. раздел 14.1), не обязательно использовать DB2I. Имеется возможность вызывать приложение DB2 в интерактивном режиме, не используя DB2I. Для этого выдается команда TSO «DSN» (вызывающая DB2), за которой должна следовать команда:

RUN PROGRAM (имя—программы) PLAN (имя—плана)

Можно также вызвать приложение DB2 в пакетном режиме с помощью предложений JCL, которые: а) специфицируют в качестве программы, подлежащей исполнению, терминальную мониторную программу TSO (TMP) и б) передают команды DSN и RUN на вход этой мониторной программе.