Дейт К. Д27 Руководство по реляционной субд db2/ Пер с англ и предисл. М. Р. Когаловского
Вид материала | Руководство |
Предметный указатель |
- Рич Р. К. Политология. Методы исследования: Пер с англ. / Предисл. А. К. Соколова, 6313.17kb.
- Рич Р. К. Политология. Методы исследования: Пер с англ. / Предисл. А. К. Соколова, 6313.29kb.
- Сорокин П. А. С 65 Человек. Цивилизация. Общество / Общ ред., сост и предисл., 11452.51kb.
- The guilford press, 6075kb.
- The guilford press, 6075.4kb.
- Курс лекций "Базы данных и субд" Ульянов В. С. Лекция. Целостная часть реляционной, 213.79kb.
- Дэвид Дайчес, 1633.42kb.
- Mathematics and the search for knowledge morris kline, 498.28kb.
- Лекция №1: Стандарты языка sql, 1420.56kb.
- Курс лекций "Базы данных и субд" Ульянов В. С. Лекция. Манипулирование реляционными, 276.31kb.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
B
B-дерево 196
А
Автоматическая навигация 33
Администратор базы данных 139, 189
Администратор системный 139
Администратор транзакций 166
Алгебра реляционная 238
Анализ на непротиворечивость 172
Аргумент (динамический SQL) 185
Ассоциация 245
Атомарность значений данных 24
Атомарность операций 167
Атомарность транзакций 166
Атрибут 26
Б
База данных 189
База данных по умолчанию 198
База данных пользовательская 189
База данных реляционная 22
База данных системная 189
Безопасность данных 135
Безопасность представления 136
Блок условия 214
Блокирование 172
Блокировка монопольная 172
Блокировка совместная 173
В
Вариант CHECK 121
Вариант GRANT 141
Г
Генератор деклараций DCLGEN 158
Генератор планов прикладных задач 36
Генерация кода 39
Граф ожидания 182
Группа памяти 191
Группа памяти по умолчанию 199
Группа повторяющаяся 25
Д
Данные скрытые 131
Домен 235
Е
Единица блокирования 179
Единица восстановления 169
Ж
Журнал 166
З
Зависимость от незафиксированного обновления 170
Зависимость функциональная 254
Запись хранимая 193
Значение неопределенное 46
Значение неопределенное в арифметическом выражении 57
Значение неопределенное в индексе с параметром UNIQUE 48
Значение неопределенное в предложении SELECT DISTINCT 63
Значение неопределенное в предложении UPDATE 101
Значение неопределенное в сравнениях 62
Значение неопределенное во встроенном языке 152
Значение неопределенное во фразе GROUP BY 88
Значение неопределенное во фразе ORDER BY 63
Значение неопределенное при проектировании базы данных 256
И
Идентификатор записи 194
Идентификатор санкционирования доступа 135
Импликация 83
Имя 44
Имя представления 119
Имя уточненное 55
Индекс 141, 190, 191, 193
Индекс кластеризации 193
Интерфейс интерактивный 200
Исключение дубликатов 56
К
Каталог 40, 112
Квантор 79
Квантор общности FORALL 81
Квантор существования 79
Классификация связей 245
Классификация сущностей 244
Кластеризация внутритабличная 193
Кластеризация межтабличная 193
Ключ альтернативный 237
Ключ внешний 238
Ключ возможный 237
Команда BIND 204
Команда DISPLAY FORM 207
Команда DISPLAY REPORT 208
Команда DRAW COND 215
Команда FREE 204
Команда PRINT REPORT 208
Команда REBIND 204
Команда RUN QUERY 207
КомандаDRAW 213
Константы 46
Кортеж 235
Курсор 154
Курсор, стабильноcть его 178
М
Макетирование 227
Манипулирование данными 28
Модель данных реляционная 25
Модуль запросов к базе данных 35
Модуль языка программирования интерфейсный 38
Н
Навигация 31
Навигация автоматическая 225
Навигация ручная 225
Независимость данных 41, 226
Независимость данных логическая 226
Независимость данных физическая 41
Нормализация 244, 252
О
Области рабочая QUERY 207
Область дескрипторов SQLDA 186
Область рабочая FORM 208
Область рабочая временная 207
Область связи SQLCA 186
Обновление данных 101
Обновление данных незафиксированное 170
Обновление утраченное 170
Обозначение 245
Обстановка операционная системы DB2 20
Ограничение санкционирования доступа 135
Оператор сравнения ALL 73
Оператор сравнения ANY 73
Операция декартова произведения 240
Операция деления 241
Операция присваивания реляционная 241
Операция проекции 240
Операция разности 240
Операция соединения 241
Отношение 236
Отношение базовое 238
Отношения, совместимые по объединению 239
Отчет 207
П
Параметр UNIQUE 48
Параметр динамического SQL 185, 187
Переменная включающего языка 149
Переменная индикаторная 152
Переменная системная USER 137
План прикладной задачи 36, 39
Подзапрос 74
Подзапрос коррелированный 76
Подтип сущностей 255
Поле SQLCODE 150
Пользователь 28
Предикат BETWEEN 59
Предикат IN 60
Предикат IN с подзапросами 74
Предикат LIKE 60
Предлжение DELETE CURRENT 156
Предложение INSERT встроенного языка 153
Предложение ALTER TABLE 47
Предложение CLOSE 154
Предложение COMMENT ON 115
Предложение COMMIT 158
Предложение CREATE INDEX 48
Предложение CREATE SYNONYM 116
Предложение CREATE TABLE 44, 47
Предложение CREATE VIEW 118
Предложение DECLARE CURSOR 154
Предложение DECLARE TABLE 149
Предложение DELETE 102
Предложение DELETE встроенного языка 153
Предложение DROP INDEX 49
Предложение DROP SYNONYM 116
Предложение DROP TABLE 47
Предложение DROP VIEW 121
Предложение EXECUTE 185
Предложение FETCH 154
Предложение GRANT 138
Предложение INCLUDE (декларация) 158
Предложение INCLUDE SQLCA 150
Предложение INCLUDE SQLDA 186
Предложение INSERT 103
Предложение LOCK TABLE 177
Предложение OPEN курсор 155
Предложение PREPARE 184
Предложение REVOKE 138
Предложение ROLLBACK 159
Предложение SELECT 55
Предложение SELECT вложенное 74
Предложение SELECT встроенного языка 151
Предложение SELECT единичное 151
Предложение SELECT обработка 92
Предложение SELECT* 57
Предложение UPDATE 101
Предложение UPDATE CURRENT 156
Предложение UPDATE встроенного языка 152
Предложение WHENEVER 158
Представление, условие обновляемости 124
Представления 29
Преимущества реляционных систем 223
Прекомпилятор 35
Привилегия 138
Привилегия BCTRL 143
Привилегия DBADM 143
Привилегия DBMAINT 143
Привилегия SYSADM 143
Привилегия SYSOPR 143
Привилегия административная 143
Привилегия требуемая пользователю 143
Приложение интерактивное 21
Приложение пакетное 21
Принцип двухрежимный 148
Проверка полномочий 39
Проверка правильности плана 204
Программа управления хранимыми данными 37
Проектирование базы данных 244
Производительность системы 228
Пространство индексное 189
Пространство табличное 189
Пространство табличное по умолчанию 192
Пространство табличное простое 192
Пространство табличное сегментированное 193
Протокол упреждающей записи в журнал 169
Процедура проверки достоверности 195
Процедура редактирования 194
Процессор SPUFI 202
Псевдоним 68
ПсевдоЯОД 249
Пул буферный 199
Путь доступа 39
Р
Реорганизация 192
Реструктуризация 129
С
Свойство 244
Связь 244
Сегментирование пространства 192
Синоним 116
Система R* 233
Система SQL/DS 233
Система реляционная 242
Ситуация тупиковая 179
Словарь данных (каталог) 112
Спецификация DISTINCT 55
Средство программное DL/1 Extract 22
Средство программное DXT 22
Средство программное QMF 22
Степень отношения 237
Страница 189
Супервизор стадии исполнения 36
Сущность 244
Сущность ассоциативная 244
Сущность стержневая 244
Сущность характеристическая 244
Т
Таблица 43
Таблица базовая 43
Таблица виртуальная 30
Таблица каталога 112
Таблица хранимая 189
Тип данных 45
Точка синхронизации 168
Транзакция 165
У
Умолчание системное 191
Управление параллельными процессами 169
Уровень изоляции 178
Утилита 205
Ф
Фиксация автоматическая 166
Фиксация двухфазная 168
Форма отношения нормальная 253
Форма отчета по умолчанию 207
Фраза FOR UPDATE 155
Фраза GROUP BY 87
Фраза HAVING 88
Фраза NOT NULL 46
Фраза ORDER BY (определение курсора) 155
Фраза ORDER BY (предложение SELECT) 59
Фраза USING (предложения EXECUTE) 185
Фраза USING (предложение FETCH) 187
Функция стандартная AVG 85
Функция стандартная COUNT (*) 85
Функция стандартная MIN 85
Функция стандартная SUM 85
Функция стандартная МАХ 85
Х
Характеристика 245
Ц
Целостность по ссылкам 102, 238
Целостность по сущностям 238
Ч
Число кардинальное отношения 237
Чтение повторяемое 178
Э
Эквисоединение 64
Элемент образца 215
Я
Язык QBE 213
Язык SQL встроенный 148
Язык SQL динамический 183
Язык SQL интерактивный 200
Язык SQL статический 188
1 В этой книге мы будем использовать термин «MVS» для обозначения как стандартной операционной системы MVS (т. е. системного продукта фирмы IBM «Multiple Virtual Systems»), так и расширенной ее версии, называемой MVS/XA («MVS/Extended Architecture»). Каждая ссылка в этом тексте на MVS относится в равной степени к обеим ее версиям.
2 В интересах точности следует заметить, что TSO в действительности не является «подсистемой» в том специальном смысле, в котором этот термин используется в MVS Скорее она является неотъемлемой частью самой MVS. Можно приобрести систему MVS без IMS или CICS, но нельзя без TSO. Но эти различия не представляются важными для наших целей, и для простоты мы будем рассматривать в этой книге все три компонента как подсистемы.
3 Для читателей, хорошо знающих MVS и/или TSO, заметим, что пакетное приложение TSO есть не что иное, как обычное пакетное приложение MVS, которое исполняется под управлением телемонитора TSO (ТМР). См. раздел 14.9.
4 Формат хранимых данных — это, конечно, не единственное, чем отличаются эти две системы. Имеется ряд других отличий, о которых упоминается ниже. Большинство из них связано с тем фактом, что система DB2 специально разработана для обстановки больших систем (MVS). Например, объем данных в базе данных, которые могут запоминаться в интерактивном режиме в системе DB2, ограничивается только объемом памяти, доступной в таком режиме, в то время как система SQL/DS ограничивается единственной базой данных, функционирующей в интерактивном режиме, объемом 64 гигабайта (теоретический максимум; практический максимум несколько меньше). Подобным образом механизм безопасности данных системы DB2 значительно более тщательно разработан, чем в SQL/DS, отражая тог факт, что существует, вероятно, намного больше пользователей и намного больше категорий пользователей для установки DB2, чем для SQL/DS. Детальный разбор всех таких различий не является целью этой книги.
5 В этой книге предложения SQL, команды и т. п. для ясности записываются прописными буквами. На практике же обычно более удобно вводить такие предложения и команды строчными буквами. Система DB2 допускает то и другое.
6 В фирменных руководствах по системе термины «RUNTIME SUPERVISOR» или «STORED DATA MANAGER» не используются.
7 Он оставляет также копию каждого такого предложения SQL в модифицированом исходном модуле в форме комментария.
8 Точнее, план хранится в справочнике DB2, который в действительности является расширением каталога, предназначенным только для использования самой системой. С точки зрения пользователя разница между ними состоит в том, что каталог в отличие от справочника имеет форму, позволяющую делать к нему запросы с помощью обычных предложений SQL (см. главу 7).
9 Кроме того, в качестве имен не могут использоваться ключевые слова языка SQL (CREATE, TABLE, SELECT и т. д.). Первая литера любого имени должна быть буквой (А—Z или одной из специальных литер , $, @), а остальные литеры — буквами, цифрами (0-9) или знаком подчеркивания. Имена таблиц и столбцов могут содержать максимум 18 литер, а имена пользователей—максимум 8 литер.
10 Если n>254, то поле является и «длинным полем», и объектом строгих ограничений. Длинные поля предназначены для того, чтобы иметь дело с данными в свободном формате, такими, как длинные текстовые строки, а не с простыми форматизированными данными, например номер поставщика или объем поставки. По существу, единственной операцией, в которой могут в качестве операндов использоваться такие поля, является операция присваивания базе данных (INSERT или UPDATE) либо из базы данных (SELECT). He допускаются какие-либо операции, которые предполагают сравнение с длинным полем Поэтому, например, длинные поля не могут быть индексированными, на них нельзя ссылаться во фразах WHERE, GROUP BY или ORDER BY и т. п. Две последние фразы рассматриваются в главах 4 и 5.
11 В связи с этим фактом можно сказать, что реляционные таблицы образуют замкнутую систему относительно операторов выборки данных языка, подобного SQL. Вообще говоря, замкнутая система—это совокупность (возможно, бесконечная) объектов некоторого типа, например OBJS, и соответствующая совокупность операторов, например OPS, таких, что а) операторы из OPS применяются ни к объектам из OBJS и б) результат применения любого такого оператора к любому такому объекту (любым таким объектам) является другим объектом из OBJS. Практический смысл этого соображения (в частности, для случая отношений) заключается в следующем. Поскольку результатом одной операции SELECT является другое отношение, то, по крайней мере, принципиально возможно применить другую операцию SELECT к этому результату, конечно, предусматривая, чтобы он был где-либо сохранен. Это означает, также, опять-таки принципиально, что операции SELECT могут быть вложенными друг в друга. Такая возможность иллюстрируется в разделах 5.2, 6.4 и 8.1.
12 Все они имеют значение истинности «неизвестно». При наличии неопределенных значений необходимо принять трехзначную логику, значениями истинности в которой являются: истина, ложь и неизвестно. «Неизвестно» в действительности представляет собой, по сути дела, неопределенное значение истинности. Предложение SELECT осуществляет выборку записей, для которых предикат WHERE имеет значение истина, т. е. не ложь и не неизвестно.
13 Подзапрос может включать также фразы GROUP BY и HAVING. Однако комбинация ORDER BY и UNION недопустима.
14 Между прочим, этот пример иллюстрирует важный момент, заключающийся в том, что порядок кванторов существен в выражениях, содержащих кванторы обоих типов Выражение FORALLx(EXISTSy (y>x)) истинно. Однако выражение EXISTSy(FORALLx(yx))—«существует действительное у такое, что для всех действительных х справедливо у больше х», т.е. «существует некоторое число, большее всех других чисел», — которое получается из предыдущего выражения просто перестановкой порядка кванторов, является ложным.
15 EXISTS (существует) также рассматривается как стандартная функция, но она отличается от функций, обсуждаемых в данном разделе, тем, что она возвращает значение истинности, а не арифметическое или строковое значение, т. е это не числовая функция.
16 Этого результата («группы внутри групп» и т. д.) можно достигнуть, однако, с помощью QMF. См. главу 15.
17 Каталог не является одинаковым в различных реализациях языка SQL, поскольку он по необходимости содержит для конкретной системы много информации, специфичной для этой системы. В частности, каталоги DB2 и SQL/DS различны.
18 Не следует, конечно, понимать этот абзац таким образом, что имеется фактически единственное лицо, которое на все время является системным администратором, даже если это лицо, например, покидает компанию. Имеется, скорее, один неизменный идентификатор санкционирования, который рассматривается системой как идентифицирующий системного администратора. Каждый, кто может войти в систему с этим идентификатором (и может выдержать тесты на достоверность), будет считаться системным администратором, пока он или она не выйдет из системы. Эти тесты на достоверность могут и, конечно, должны время от времени изменяться.
19 На самом деле, внутренняя структура этих наборов данных VSAM значительно отличается во всяком случае от структуры, которая предполагается для VSAM, поскольку управление всем их пространством осуществляется DB2, а не средствами VSAM (см главу 13). Таким образом, попытка понять их содержимое была бы нетривиальной задачей, даже если бы их можно было обработать с помощью обычных обращений к VSAM.
20 Мы ограничимся при этом лишь обстановкой прикладного программировании. Предложения COMMIT и ROLLBACK могут быть введены и в интерактивном режиме, но делать это на практике не рекомендуется, как будет ясно позднее в этой главе, поскольку это обычно означает, что блокировки будут установлены на нежелательно долгое время.
21 При определенных условиях, которые здесь детально не обсуждаются, эта блокировка будет сниматься в следующей точке синхронизации, а не при завершении программы. В частности, это будет происходить в случае, если предложение LOCK TABLE вводится через DB2I (что само по себе маловероятно).
22 Сегментированное пространство может иметь несколько групп памяти для каждого сегмента (см. раздел 13.3).
23 Интересно отметить, что пространство памяти в 64 гигабайта со страни-1|яМ11 по 4К эквивалентно приблизительно 128 токам, т. е. 32 устройствам пря-Мпго доступа IBM 3380.
24 Установка системы всегда располагает факультативной возможностью вообще не использовать какую-либо группу памяти для заданного пространства или его сегмента. Если это так, то для определения, расширения и удаления наборов данных необходимым образом следует использовать утилиту обслуживания методов доступа VSAM. Подробное обсуждение этих вопросов выходит за рамки данной книги.
25 Нельзя отрицать, что сегодня большинство систем, даже систем реляционного типа, тем не менее действительно проявляет весьма зависимое от ситуации и непредсказуемое поведение в некоторых областях. Для примера можно сослаться на обработку обновления представления в системе DB2, при которой действительно обнаруживается в некоторой степени неприятный произвол (см. раздел 8.4). Но такой произвол имеет тенденцию проявиться именно в тех вопросах, где реализация отклонилась от базовой теории. Так, важнейшим компонентом реляционной модели данных является понятие первичного ключа (см. Приложение А). Однако в системе DB2 такие ключи не поддерживаются, и это упущение является непосредственной причиной упоминаемого выше произвола. Конечно, система DB2—не единственный «правонарушитель» в этом отношении; подобная критика относится к большинству других систем, известных в момент написания этой книги, однако DB2 может служить для иллюстрации нежелательных последствий пренебрежения предписаниями модели, положенной в ее основу.
26 Дополнительным доказательством такого признания может служить тот факт, что Ассоциация по вычислительной технике (The Association for computing Machinery—ACM) присудила Тьюринговскую премию за 1981 год доктору Кодду, первому архитектору реляционной модели, за его работы, посвященные этой модели. Тьюринговская премия присуждается ежегодно за важнейшие работы в области информатики. По всеобщему признанию, она является наиболее престижной наградой во всей информатике.
27 Такая операция, как ALTER TABLE, в языке .SQL может рассматриваться не как изменение степени отношения с n на n+l, а, скорее, как создание нового отношения степени n+1 из отношения степени п.
28 ' Под «соединением» здесь понимается либо естественное соединение, либо эквисоединение.
29 Это предложение включает также комментарий и ключевое слово FIELDS. Ни то ни другое не является частью реального ЯОД системы DB2.