449
DB2 ® Руководство администратора: Планирование DB2 Версии 9 для Linux, UNIX и Windows SC43-0462-00

public.dhe.ibm.compublic.dhe.ibm.com/ps/products/db2/info/vr9/pdf/letter/nlv/ru_RU/db2… · Схемы организации данных . . . . . . . . .109 Многораздельные

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

  • DB2®

    Руководство администратора: Планирование

    DB2 Версии 9 для Linux, UNIX и Windows

    SC43-0462-00

    ���

  • DB2®

    Руководство администратора: Планирование

    DB2 Версии 9 для Linux, UNIX и Windows

    SC43-0462-00

    ���

  • Перед тем как использовать данный документ и продукт, описанный в нем, прочтите общие сведения под заголовком Замечания.

    Замечания по публикации

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

    Заказать публикации IBM можно через Интернет или у местного представителя IBM. v Чтобы заказать публикации через Интернет, перейдите на Web-страницу Центра публикаций IBM (IBM Publications Center): www.ibm.com/shop/publications/order

    v Чтобы найти местное представительство IBM, перейдите на страницу IBM Directory of Worldwide Contacts по адресу www.ibm.com/planetwide

    Чтобы заказать публикации DB2 через отдел DB2 Marketing and Sales в Соединенных Штатах или Канаде, позвоните по телефону 1-800-IBM-4YOU (426-4968).

    Отсылая информацию IBM, вы тем самым даете IBM неисключительное право использовать или распространять эту информацию любым способом, как фирма сочтет нужным, без каких-либо обязательств перед вами.

    © Copyright International Business Machines Corporation 1993, 2006. Все права защищены.

    http://www.ibm.com/shop/publications/orderhttp://www.ibm.com/planetwide

  • Содержание

    Об этой книге . . . . . . . . . . . vii Для кого предназначена эта книга . . . . . . . viii Структура книги . . . . . . . . . . . . viii

    Часть 1. Концепции баз данных . . 1

    Глава 1. Основные принципы реляционных баз данных . . . . . . . 3 О базах данных . . . . . . . . . . . . . 3 Объекты базы данных . . . . . . . . . . . 3 Параметры конфигурации . . . . . . . . . 13 Переменные среды и реестра профиля . . . . . . 15 Логические правила для данных . . . . . . . . 18 Защита данных . . . . . . . . . . . . . 21 Аутентификация . . . . . . . . . . . . . 22 Авторизация . . . . . . . . . . . . . . 23 Единица работы . . . . . . . . . . . . . 24 Обзор возможности высокой доступности - восстановления после аварий (High availability disaster recovery, HADR) . . . . . . . . . . . . . 24 Разработка стратегии резервного копирования и восстановления . . . . . . . . . . . . . 26

    Глава 2. Автоматическое обслуживание . . . . . . . . . . . 31 Об автоматическом обслуживании . . . . . . . 31 Автоматические возможности, включаемые по умолчанию . . . . . . . . . . . . . . 32 Автоматическое резервное копирование базы данных 34 Автоматическая реорганизация . . . . . . . . 35 Автоматический сбор статистики по таблице . . . 36 Автоматическая генерация профиля статистики при помощи автоматического сбора статистики . . . . 37 Память, используемая при автоматическом сборе статистики и генерации профиля . . . . . . . 38 Окна обслуживания . . . . . . . . . . . . 38 Автономное обслуживание . . . . . . . . . 39 Оперативное обслуживание . . . . . . . . . 39

    Глава 3. Параллельные системы баз данных . . . . . . . . . . . . . . 41 Параллелизм . . . . . . . . . . . . . . 41 Параллелизм ввода-вывода . . . . . . . . 41 Параллелизм запросов . . . . . . . . . . 41 Параллелизм утилит . . . . . . . . . . 44

    Среды многораздельных баз данных . . . . . . 45 Среды с различным числом процессоров и разделов баз данных . . . . . . . . . . . . . . 46 Однораздельная с одним процессором . . . . . 46 Один раздел базы данных с несколькими процессорами . . . . . . . . . . . . . 48 Многораздельные конфигурации . . . . . . 50 Типы параллелизма, наиболее подходящие для различных аппаратных сред . . . . . . . . 54

    Часть 2. Проектирование баз данных . . . . . . . . . . . . . . 57

    Глава 4. Логическая структура базы данных . . . . . . . . . . . . . . 59 Что хранить в базе данных . . . . . . . . . 59 Отношения в базе данных . . . . . . . . . . 60 Отношения ″один-ко-многим″ и ″многие-к-одному″ . . . . . . . . . . . 60 Отношения многие-ко-многим . . . . . . . 61 Отношения один-к-одному . . . . . . . . 62 Одинаковые значения должны соответствовать одному объекту . . . . . . . . . . . . 62

    Определения столбцов . . . . . . . . . . . 63 Первичные ключи . . . . . . . . . . . . 64 Определение подходящих ключевых столбцов . . 66

    Столбцы идентификации . . . . . . . . . . 67 Нормализация . . . . . . . . . . . . . 68 Первая нормальная форма . . . . . . . . 68 Вторая нормальная форма . . . . . . . . 69 Третья нормальная форма . . . . . . . . 70 Четвертая нормальная форма . . . . . . . 71

    Ограничения . . . . . . . . . . . . . . 72 Ограничения уникальности . . . . . . . . 73 Реляционные ограничения . . . . . . . . . 73 Проверочные ограничения таблицы . . . . . 77 Информационные ограничения . . . . . . . 77

    Триггеры . . . . . . . . . . . . . . . 77 Дополнительные особенности структуры базы данных . . . . . . . . . . . . . . . . 79

    Глава 5. Физическая структура базы данных . . . . . . . . . . . . . . 81 Каталоги и файлы базы данных . . . . . . . . 81 Размер объектов базы данных . . . . . . . . 83 Размер таблиц системного каталога . . . . . . 84 Размер данных пользовательских таблиц . . . . . 85 Размер данных длинных полей . . . . . . . . 87 Размер данных больших объектов . . . . . . . 87 Необходимое пространство для индексов . . . . . 88 Размер файлов журнала . . . . . . . . . . 91 Размер временных таблиц . . . . . . . . . . 92 Объекта хранилища данных XML - обзор . . . . . 92 Рекомендуемые требования к хранению документов XML . . . . . . . . . . . . . . . . . 93 Группы разделов базы данных . . . . . . . . 94 Проектирование групп разделов базы данных . . . 96 Карты распределения . . . . . . . . . . . 97 Ключи распределения . . . . . . . . . . . 98 Совместное размещение таблиц . . . . . . . 100 Совместимость по разделам базы данных . . . . 101 Разделы данных . . . . . . . . . . . . 102 Разделение таблиц . . . . . . . . . . . . 103 Ключи разделения таблиц . . . . . . . . . 106

    © Copyright IBM Corp. 1993, 2006 iii

  • Схемы организации данных . . . . . . . . . 109 Многораздельные таблицы . . . . . . . . . 115 Схемы организации данных в базах данных DB2 и Informix . . . . . . . . . . . . . . . 116 Реплицируемые материализованные таблицы запросов . . . . . . . . . . . . . . . 122 Проектирование табличного пространства . . . . 123 Табличные пространства SYSTOOLSPACE и SYSTOOLSTMPSPACE . . . . . . . . . . 127 Пространство, управляемое системой . . . . . 129 Табличные пространства SMS . . . . . . . . 131 Пространство, управляемое базой данных . . . . 132 Табличные пространства DMS . . . . . . . . 136 Рекомендации по работе с устройствами DMS . . . 137 Карты табличных пространств . . . . . . . . 138 Добавление контейнеров в табличное пространство DMS и их расширение . . . . . . . . . . . 143 Перераспределение данных . . . . . . . . 144 Без перераспределения (с помощью наборов блоков чередования) . . . . . . . . . . 149

    Отбрасывание и уменьшение контейнеров в табличном пространстве DMS . . . . . . . . 152 Сравнение табличных пространств SMS и DMS . . 155 Ввод-вывод на диск для табличного пространства 156 Сведения о рабочей нагрузке при разработке табличных пространств . . . . . . . . . . 158 Размер экстента . . . . . . . . . . . . 159 Отношения между табличными пространствами и пулами буферов . . . . . . . . . . . . 161 Отношения между табличными пространствами и группами разделов баз данных . . . . . . . . 161 Окно управления хранением . . . . . . . . . 162 Хранимые процедуры для инструмента управления хранением . . . . . . . . . . . . . . 163 Таблицы окна управления хранением . . . . . . 164 Пороги . . . . . . . . . . . . . . . 177 Проектирование временных табличных пространств 178 Временные таблицы в табличных пространствах SMS . . . . . . . . . . . . . . . . 180 Проектирование табличного пространства каталога 181 Оптимизация производительности табличного пространства при размещении данных на дисковом массиве . . . . . . . . . . . . . . . 182 Рекомендации по выбору табличных пространств для таблиц . . . . . . . . . . . . . . 184 Типы таблиц DB2 . . . . . . . . . . . . 186 Таблицы с кластеризацией по диапазонам . . . . 187 Таблицы с кластеризацией по диапазонам и значения ключей записей вне диапазонов . . . . . . . 190 Блокировки таблиц с кластеризацией по диапазонам 191 Таблицы многомерной кластеризации . . . . . 191 Сравнение обычных таблиц и таблиц с многомерной кластеризацией . . . . . . . . . . . . . 192 Блочные индексы . . . . . . . . . . . . 194 Работа с таблицей с многомерной кластеризацией 197 Блочные индексы и производительность запросов 200 Автоматическое поддержание кластеризации при операциях INSERT . . . . . . . . . . . . 204 Карты блоков . . . . . . . . . . . . . 206 Удаление из таблицы с многомерной кластеризацией . . . . . . . . . . . . . 208

    Изменение таблицы с многомерной кластеризацией 208 Особенности загрузки таблиц с многомерной кластеризацией . . . . . . . . . . . . . 209 Особенности ведения журнала для таблиц с многомерной кластеризацией . . . . . . . . 210 Особенности блочных индексов, созданных для таблиц с многомерной кластеризацией . . . . . 210 Создание таблиц с многомерной кластеризацией (MDC) . . . . . . . . . . . . . . . . 211 Создание, размещение и использование таблиц с многомерной кластеризацией (MDC) . . . . . . 220

    Глава 6. Проектирование многораздельных баз данных . . . . 227 Изменение в транзакции одной базы данных . . . 227 Использование в транзакции нескольких баз данных 228 Изменение одной базы данных в транзакции с несколькими базами данных . . . . . . . 228 Изменение в транзакции нескольких баз данных 230 Менеджер транзакций DB2 . . . . . . . . 231 Конфигурация менеджера транзакций базы данных DB2 . . . . . . . . . . . . . 231

    Изменение базы данных с хоста или клиента iSeries 234 Двухфазное принятие . . . . . . . . . . . 235 Восстановление после ошибок при двухфазном принятии . . . . . . . . . . . . . . . 238 Восстановление после ошибок, если autorestart=off 239

    Глава 7. Проектирование базы данных для применения XA-совместимых менеджеров транзакций . . . . . . . . . . . . 241 Модель распределенной обработки транзакций X/Open . . . . . . . . . . . . . . . 241 Прикладная программа (AP) . . . . . . . 242 Менеджер транзакций (TM) . . . . . . . . 244 Менеджеры ресурсов (RM) . . . . . . . . 244

    Настройка менеджера ресурсов . . . . . . . 245 Сведения о соединении с базой данных . . . . 246

    Строковые форматы xa_open . . . . . . . . 248 Обновление серверов баз данных хоста и iSeries с помощью менеджера транзакций XA . . . . . . 254 Разрешение неоднозначных транзакций вручную 255 API управления неоднозначными транзакциями . . 257 Сведения о защите для менеджеров транзакций XA 259 Сведения о настройке для менеджеров транзакций XA . . . . . . . . . . . . . . . . . 260 Функции XA, поддерживаемые DB2 Database для Linux, UNIX и Windows . . . . . . . . . . 261 Использование и положение переключателя XA 261 Использование переключателя XA DB2 Database для Linux, UNIX и Windows . . . . . . . . 262

    Определение неполадок интерфейса XA . . . . . 263 Конфигурация менеджера транзакций XA . . . . 264 Настройка IBM WebSphere Application Server . . 264 Конфигурирование IBM TXSeries CICS . . . . 264 Конфигурирование IBM TXSeries Encina . . . . 264 Конфигурирование BEA Tuxedo . . . . . . 266

    iv Руководство администратора: Планирование

  • Часть 3. Приложения . . . . . . 269

    Приложение A. Несовместимости выпусков . . . . . . . . . . . . . 271 Устаревшие и более не поддерживаемые возможности . . . . . . . . . . . . . 271 Несовместимости Версии 9 с предыдущими выпусками и изменения поведения . . . . . . . 288 Несовместимости Версии 8 с предыдущими выпусками . . . . . . . . . . . . . . 314

    Приложение B. Поддержка национальных языков (NLS) . . . . 343 Версии на национальных языках . . . . . . . 343 Поддерживаемые коды регионов и кодовые страницы . . . . . . . . . . . . . . . 343 Доступность азиатских шрифтов (Linux) . . . . . 364 Кодовый набор для упрощенного китайского . . . 365 Вывод индийских символов в инструментах GUI DB2 . . . . . . . . . . . . . . . . 366 Управление поддержкой символа евро . . . . . 366 Рекомендации по преобразованию символьных данных . . . . . . . . . . . . . . . 368 Файл таблиц преобразования для кодовых страниц с поддержкой символа евро . . . . . . . . . 369 Таблицы преобразования для кодовых страниц 923 и 924 . . . . . . . . . . . . . . . . . 374 Выбор языка для базы данных . . . . . . . . 375 Национальные настройки для сервера администратора DB2 . . . . . . . . . . 375

    Включение поддержки двунаправленного письма 375 CCSID с двумя направлениями письма . . . . . 377 Поддержка двунаправленного письма для DB2 Connect . . . . . . . . . . . . . . . 380 Последовательности слияния . . . . . . . . 381 Сортировка тайских символов . . . . . . . . 383 Форматы даты и времени по коду региона . . . . 383 Кодировка символов Unicode . . . . . . . . 386 UCS-2 . . . . . . . . . . . . . . . 386 UTF-8 . . . . . . . . . . . . . . . 386 UTF-16 . . . . . . . . . . . . . . 387

    Реализация Unicode в DB2 Database для Linux, UNIX и Windows . . . . . . . . . . . . . . 388 Дистрибутивы AIX, UNIX и Linux и кодовые страницы . . . . . . . . . . . . . . 389 Номера кодовых страниц/CCSID . . . . . . 390 Различия в алгоритмах сортировки тайского языка и Unicode . . . . . . . . . . . . 390

    Обработка типов данных Unicode . . . . . . . 391 Создание базы данных Unicode . . . . . . . . 393 Преобразование баз данных не-Unicode в базы данных Unicode . . . . . . . . . . . . . 393 Литералы Unicode . . . . . . . . . . . . 395

    Сравнение строк в базе данных Unicode . . . . . 395 Установка прежних таблиц преобразования между кодовой страницей 1394 и Unicode . . . . . . . 397 Альтернативная таблица преобразования Unicode для кодового набора символов (CCSID) 943 . . . 397 Замена таблиц преобразования Unicode для идентификатора кодового набора символов (CCSID) 943 таблицами преобразования версии Microsoft . . 399 Альтернативная таблица преобразования Unicode для кодового набора символов (CCSID) 954 . . . 400 Замена таблицы преобразования Unicode для идентификатора кодового набора символов (CCSID) 954 на таблицу преобразования Microsoft . . . . 401 Альтернативная таблица преобразования Unicode для кодового набора символов (CCSID) 5026 . . . 402 Замена таблицы преобразования Unicode для идентификатора кодового набора символов (CCSID) 5026 на таблицу преобразования Microsoft . . . . 403 Альтернативная таблица преобразования Unicode для кодового набора символов (CCSID) 5035 . . . 404 Замена таблицы преобразования Unicode для идентификатора кодового набора символов (CCSID) 5035 на таблицу преобразования Microsoft . . . . 405 Альтернативная таблица преобразования Unicode для кодового набора символов (CCSID) 5039 . . . 406 Замена таблицы преобразования Unicode для идентификатора кодового набора символов (CCSID) 5039 на таблицу преобразования Microsoft . . . . 406

    Приложение C. Техническая информация по базам данных DB2 . 409 Обзор технической информации DB2 . . . . . . 409 Отзывы о документации . . . . . . . . . 409

    Техническая библиотека DB2 в формате PDF . . . 410 Заказ печатных копий книг DB2 . . . . . . . 413 Вызов справки по SQLSTATE из командной строки 414 Доступ к различным версиям Информационного центра DB2 . . . . . . . . . . . . . . 414 Вывод тем Информационного центра DB2 на предпочитаемом вами языке . . . . . . . . 414 Обновление Информационного центра DB2, установленного на вашем компьютере или на сервере интранета . . . . . . . . . . . . 415 Учебные материалы по DB2 . . . . . . . . . 417 Информация об устранении неисправностей DB2 418 Положения и условия . . . . . . . . . . . 418

    Приложение D. Замечания . . . . . 421 Товарные знаки . . . . . . . . . . . . . 423

    Индекс . . . . . . . . . . . . . . 425

    Как связаться с IBM . . . . . . . . 433

    Содержание v

  • vi Руководство администратора: Планирование

  • Об этой книге

    В книге Руководство администратора: Планирование содержится информация, необходимая для пользования продуктами системы управления реляционными базами данных DB2 (RDBMS) и управления ими, а также для планирования и проектирования баз данных.

    Многие из задач, описанных в этой книге, можно выполнять при помощи различных интерфейсов: v Процессор командной строки, позволяющий обращаться к базам данных и работать с ними через интерфейс командной строки. При помощи этого интерфейса можно также выполнять операторы SQL и утилиты DB2. Большинство примеров в этой книге иллюстрируют использование данного интерфейса. Дополнительную информацию об использовании процессора командной строки смотрите в руководстве Command Reference.

    v Интерфейс прикладного программирования, позволяющий вызывать утилиты DB2 из прикладной программы. Дополнительную информацию об использовании интерфейса прикладного программирования смотрите в книге Administrative API Reference.

    v Центр управления, предоставляющий графический пользовательский интерфейс для управления данными и компонентами баз данных. Центр управления можно вызвать при помощи команды db2cc в командной строке Linux или Windows или через меню Пуск на платформах Windows. В Центре управления компоненты ваших баз данных представляются в виде иерархии в дереве объектов. В дерево объектов Центра управления включены ваши системы, экземпляры, базы данных, таблицы, производные таблицы, триггеры и индексы. При помощи этого дерева можно выполнять действия над объектами баз данных, такие как создание новых таблиц, реорганизация данных, конфигурирование и настройка баз данных, а также резервное копирование и восстановление табличных пространств. Во многих случаях предусмотрены мастера и панели запуска, позволяющие проще и быстрее выполнять некоторые задачи. Центр управления при работе доступен в три разных видах: – Базовый. В этом виде представлены основные функции баз данных DB2. Из него можно работать со всеми базами данных, к которым вам предоставлен доступ, и со связанными с ними объектами, такими как таблицы и хранимые процедуры. Он обеспечивает все необходимое для работы с данными.

    – Расширенный. Этот вид содержит все объекты и действия, доступные в Центре управления. Используйте этот вид, если работаете в среде предприятия и хотите устанавливать соединение с системами DB2 for z/OS Версии 9.1 (DB2 for z/OS) или IMS.

    – Пользовательский. Дает возможность настраивать Центр управления в соответствии с вашими потребностями. Выберите объекты и действия, которые хотите видеть в Центре управления.

    Справочные сведения об использовании Центра управления можно получить, выбрав С чего начать в выпадающем меню Справка окна Центра управления.

    Для выполнения задач управления существуют также другие инструменты. К ним относятся: v Редактор команд, который заменяет Центр команд и позволяет генерировать, редактировать и выполнять операторы SQL, команды IMS и команды DB2, а также

    © Copyright IBM Corp. 1993, 2006 vii

  • работать с ними; работать с выводом этих операторов и команд и просматривать графическое представление планов доступа для объясненных операторов SQL.

    v Центр разработки, который поддерживает хранимые процедур стандартного модуля SQL Persistent Storage Module (PSM), хранимых процедур Java for iSeries Версия 5 Выпуск 3 и новее, пользовательских функций и структурированных типов.

    v Центр работоспособности для устранения неполадок производительности и размещения ресурсов.

    v Параметры инструментов для изменения параметров Центра управления и Центра работоспособности.

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

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

    v Менеджер каталогов данных, который выводит графическое представление взаимосвязей данных и определений объектов при работе в среде хранилищ данных.

    v Журнал для планирования автоматического запуска заданий. v Центр хранилищ данных, который управляет объектами хранилищ.

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

    Структура книги Основные предметные области, обсуждаемые в главах этой книги:

    Концепции баз данных v В разделе Глава 1, “Основные принципы реляционных баз данных” приводится обзор объектов и понятий баз данных.

    v Глава 3, “Параллельные системы баз данных”, где излагаются начальные сведения о типах параллелизма, доступных при работе с базами данных DB2.

    Проектирование баз данных v В разделе Глава 4, “Логическая структура базы данных” обсуждаются концепции логической структуры базы данных и даются указания по разработке баз данных.

    v В разделе Глава 5, “Физическая структура базы данных” содержатся указания по разработке физической структуры базы данных, включая структуру табличных пространств и требования к памяти.

    v В разделе Глава 6, “Проектирование многораздельных баз данных” обсуждается, как обращаться к нескольким базам данных в ходе одной транзакции.

    v В разделе Глава 7, “Проектирование базы данных для применения XA-совместимых менеджеров транзакций” обсуждается, как использовать ваши базы данных в среде обработки распределенных транзакций.

    Приложения

    viii Руководство администратора: Планирование

  • v Приложение A, “Несовместимости выпусков” содержит информацию о несоответствиях версий 8 и 9 с более ранними версиями, а также возможных несоответствиях в будущем.

    v В разделе Приложение B, “Поддержка национальных языков (NLS)” дается понятие о поддержке национальных языков в DB2, включая информацию о странах, языках и кодовых страницах.

    Об этой книге ix

  • x Руководство администратора: Планирование

  • Часть 1. Концепции баз данных

    © Copyright IBM Corp. 1993, 2006 1

  • 2 Руководство администратора: Планирование

  • Глава 1. Основные принципы реляционных баз данных

    О базах данных

    В реляционной базе данных данные представлены как собрание таблиц. Таблица состоит из определенного набора столбцов и произвольного числа строк. Данные в каждой таблице логически связаны; взаимосвязи могут быть определены и между таблицами. Просмотр данных и действия с ними производятся на основе математических принципов и операций, называемых отношениями (например, INSERT, SELECT и UPDATE).

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

    Базы данных могут быть локальными или удаленными. Локальная база данных физически находится на той рабочей станции, где вы работаете; база данных на другом компьютере считается удаленной.

    Вы можете: v Создать базу данных. v Добавить базу данных в Центр управления. v Отбросить базу данных из Центра управления. v Выполнить резервное копирование базы данных. v Восстановить базу данных. v Конфигурировать базу данных. v Внести базу данных в каталог. v Удалить базу данных из каталога. v Соединиться с базой данных. v Следить за базой данных с помощью монитора событий. v Работать с многораздельными базами данных. v Работать с системами объединения.

    В процессе установки DB2 для систем z/OS and OS/390 определяется база данных по умолчанию - DSNDB04. У этой базы данных есть пул буферов по умолчанию (BP0) и группа хранения DB2 по умолчанию (SYSDEFLT).

    Понятия, связанные с данным: v “Tables” в книге SQL Reference, Том 1

    Объекты базы данных

    Системы:

    В основе структуры баз данных DB2 лежит иерархия объектов баз данных. Объектом первого уровня в этой иерархии является система. Система представляет собой установку DB2. Центр управления ведет список известных ему систем и регистрирует информацию, необходимую для связи с каждой системой (такую, как сетевой адрес,

    © Copyright IBM Corp. 1993, 2006 3

  • операционная система и протокол обмена данными). Центр управления поддерживает как системы DB2, так и системы IMS.

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

    Вы можете: v Добавить систему в Центр управления. v Подключиться к системе. v Удалить систему из Центра управления.

    Экземпляры:

    Экземпляр (другое название - менеджер баз данных) - это программа DB2, предназначенная для управления данными. Он управляет возможными действиями над данными и назначенными для него системными ресурсами. Каждый экземпляр является полнофункциональной средой. Он содержит все разделы базы данных, определенные для данной параллельной системы баз данных. У экземпляра есть собственные базы данных (к ним не могут обращаться другие экземпляры), а все его разделы баз данных совместно используют одни и те же системные каталоги. Кроме того, у экземпляра есть своя защита, отдельная от остальных экземпляров, установленных на этом же компьютере (или в системе).

    Базы данных:

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

    Разделы базы данных:

    Раздел базы данных состоит из собственных данных раздела, индексов, файлов конфигурации и ключа транзакций. Иногда он называется узлом или узлом базы данных. Таблицы могут находиться в одном или нескольких разделах базы данных. Когда табличные данные распределены по нескольким разделам, часть строк хранится в одном разделе, а остальные строки - в других разделах. Требования на получение и изменение данных автоматически расчленяются на подтребования и выполняются параллельно на соответствующих разделах базы данных. Тот факт, что базы данных разбиты на разделы, незаметен для пользователей и прикладных программ.

    Группы разделов базы данных:

    Группа разделов базы данных - это набор из одного или нескольких разделов базы данных. При создании таблиц для базы данных сначала вы создаете группу разделов базы данных, где будут храниться табличные пространства, а затем создаете табличное пространство, где будут храниться таблицы.

    В предыдущих версиях DB2 Universal Database (UDB) группы разделов базы данных назывались группами узлов.

    4 Руководство администратора: Планирование

  • Табличные пространства:

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

    Табличные пространства расположены в группе разделов базы данных. Определения и атрибуты табличных пространств хранятся в системном каталоге баз данных.

    Для табличных пространств назначаются контейнеры. Контейнер - это объект физической памяти (например, файл или устройство).

    Табличное пространство может управляться либо системой (SMS), либо базой данных (DMS). Каждый контейнер табличного пространства SMS является каталогом в файловом пространстве операционной системы, а пространством хранения управляет менеджер файлов данной операционной системы. Каждый контейнер табличного пространства DMS является либо предварительно выделенным файлом фиксированного размера, либо физическим устройством, например диском, а пространством хранения управляет менеджер баз данных.

    Рисунок 1. Способы использования табличных пространств

    Глава 1. Основные принципы реляционных баз данных 5

  • На рис. 2 показано отношение между таблицами, табличными пространствами и этими двумя типами пространств. Здесь также показано, что таблицы, индексы и длинные данные хранятся в табличных пространствах.

    На рис. 3 на стр. 7 показаны табличные пространства трех типов: обычное, временное и большое.

    Таблицы, содержащие пользовательские данные, находятся в обычных табличных пространствах. Пользовательское табличное пространство по умолчанию называется USERSPACE1. Таблицы системного каталога находятся в обычном табличном пространстве. Табличное пространство системного каталога по умолчанию называется SYSCATSPACE.

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

    Индексы хранятся в обычных табличных пространствах или больших табличных пространствах.

    Временные табличные пространства подразделяются на системные и пользовательские. Системные временные табличные пространства используются для хранения внутренних временных данных, требующихся при таких операциях SQL, как сортировка, реорганизация таблиц, создание индексов и объединение таблиц. Такие операции требуют дополнительного пространства для обработки набора результатов. Можно создать любое число системных временных табличных пространств, но рекомендуется создать только одно с размером страниц, который чаще всего используется в ваших таблицах. Системное временное табличное пространство по умолчанию называется TEMPSPACE1. Любой пользователь и

    Рисунок 2. Табличные пространства и типы контейнеров для данных

    6 Руководство администратора: Планирование

  • любая программа могут использовать системные временные табличные пространства. Пользовательские временные табличные пространства используются для хранения объявленных глобальных временных таблиц, в которых хранятся временные данные программы. Для создания таблицы в пользовательском временном табличном пространстве применяется оператор DECLARE GLOBAL TEMPORARY TABLE. Пользовательские временные табличные пространства при создании базы данных по умолчанию не создаются. Доступ к пользовательским временным табличным пространствам контролируется. Не забудьте предоставить привилегии USE для пользовательских временных таблиц при помощи оператора GRANT.

    Таблицы:

    В реляционной базе данных данные представлены как собрание таблиц. Таблица состоит из данных, логически упорядоченных по столбцам и строкам. Все данные базы данных и таблиц собраны в табличных пространствах. Данные в таблице логически связаны, а между таблицами могут быть заданы отношения. Данные можно просматривать и работать с ними на основе математических правил и операций.

    Для доступа к табличным данным применяется Язык структурированных запросов (SQL) - стандартный язык для определения данных и работы с ними в реляционных базах данных. Запрос применяется в программах или пользователями для получения данных из базы данных. Запрос использует SQL для создания оператора следующей формы: SELECT FROM

    Производные таблицы:

    Производная таблица - это эффективная форма представления данных, не требующая работы с самими данными. Производная таблица не является реальной таблицей и не требует постоянной памяти. Вместо этого создается и используется ″виртуальная таблица″.

    Производная таблица может включать все или некоторые столбцы или строки из таблиц, на которых она определена. Например, в производной таблице можно объединить таблицу отделов и таблицу сотрудников, чтобы было можно вывести список всех сотрудников по заданному отделу.

    Рисунок 3. Типы табличных пространств

    Глава 1. Основные принципы реляционных баз данных 7

  • На рис. 4 показаны отношения между таблицами и производными таблицами.

    Индексы:

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

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

    Индекс упорядочивается по значения ключа.

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

    Рисунок 4. Отношение между таблицами и производными таблицами

    8 Руководство администратора: Планирование

  • ключ. Например, можно использовать идентификационный номер сотрудника (уникальный) как ключ для одного индекса, а номер отдела (неуникальный) - как ключ для другого индекса.

    Индекс - это один или несколько ключей, каждый из которых указывает на строку в таблице. Например, у таблицы A на рис. 5 есть индекс по номерам сотрудников этой таблицы. По значению ключа можно получить указатель на строки в таблице. Например, по номеру сотрудника 19 можно найти сотрудника KMP. Индекс позволяет эффективно получать доступ к строкам в таблице, создавая путь к данным через указатели.

    Оптимизатор SQL автоматически выбирает наиболее эффективный путь доступа к данным в таблицах. При определении наиболее быстрого доступа к данным он принимает во внимание индексы.

    Для гарантии уникальности индексного ключа могут быть созданы индексы уникальности. Индексный ключ - это столбец или упорядоченное собрание столбцов, на которых определяется индекс. Использование индекса уникальности гарантирует, что значение каждого индексного ключа в индексном столбце или столбцах уникально.

    На рис. 5 показано отношение между индексом и таблицей.

    На рис. 6 на стр. 10 показана взаимосвязь между различными объектами базы данных. Здесь также показано, что таблицы, индексы и длинные данные хранятся в табличных пространствах.

    Рисунок 5. Связь между индексом и таблицей

    Глава 1. Основные принципы реляционных баз данных 9

  • Схемы:

    Схема - это идентификатор, например ID пользователя, помогающий группировать таблицы и другие объекты баз данных. Схема может принадлежать отдельному пользователю, и ее владелец может управлять доступом к данным и объектам схемы.

    Схема также является объектом баз данных. Она может быть создана автоматически, когда для нее создается первый объект. Этим объектом может быть любой объект, который можно специфицировать по имени схемы, например, таблица, индекс, производная таблица, пакет, особый тип, функция или триггер. Чтобы схема создавалась автоматически, у вас должны быть полномочия IMPLICIT_SCHEMA; можно также создать схему явно.

    Рисунок 6. Связи между выбранными объектами базы данных

    10 Руководство администратора: Планирование

  • Имя схемы используется как первая часть двухчастного имени объекта. При создании объекта его можно назначить в заданную схему. Если не задать схему, объект назначается в схему по умолчанию; обычно это схема ID пользователя, создавшего данный объект. Вторая часть такого имени - это собственно имя объекта. Например, у пользователя по имени Smith может быть таблица с именем SMITH.PAYROLL.

    Таблицы системного каталога:

    Каждая база данных включает в себя набор таблиц системного каталога, описывающий логическую и физическую структуры данных. DB2 создает и поддерживает набор таблиц системного каталога для каждой базы данных. Эти таблицы содержат информацию об определениях объектов баз данных, например, для таблиц, производных таблиц и индексов, а также информацию защиты о полномочиях пользователей для этих объектов. Таблицы системного каталога создаются при создании базы данных и изменяются во время нормальной работы. Их нельзя явно создать или отбросить, но можно запросить и просмотреть их содержание с помощью производных таблиц каталога.

    Контейнеры:

    Контейнер - это физическое устройство хранения. Он может быть идентифицирован именем каталога, именем устройства или именем файла.

    Контейнер назначается для табличного пространства. Одно табличное пространство может содержать несколько контейнеров, но каждый контейнер может принадлежать только одному табличному пространству.

    На рис. 7 на стр. 12 показано отношение между таблицами и табличным пространством в базе данных, а также приведены связанные с ними контейнеры и диски.

    Глава 1. Основные принципы реляционных баз данных 11

  • Таблицы EMPLOYEE, DEPARTMENT и PROJECT располагаются в табличном пространстве HUMANRES, которое занимает контейнеры 0, 1, 2, 3 и 4. В этом примере каждый контейнер находится на своем диске.

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

    Пулы буферов:

    Пул буферов - это объем основной памяти, выделенной для кэширования страниц данных таблиц и индексов при их чтении с диска или изменении. Цель пула буферов - улучшение производительности системы. Обращаться к данным можно гораздо быстрее, если они находятся в памяти, а не на диске, поэтому чем меньше менеджеру баз данных приходится читать или записывать на диск (операции ввода/вывода), тем

    Рисунок 7. Связи между табличным пространством и его контейнерами

    12 Руководство администратора: Планирование

  • выше производительность. (Можно создать несколько пулов буферов, но в большинстве ситуаций требуется только один.)

    Конфигурирование пула буферов - это очень важная область настройки, так как оно позволяет сократить задержку, вызванную медленными операциями ввода/вывода.

    На рис. 8 показана взаимосвязь между пулом буферов и контейнерами.

    Понятия, связанные с данным: v “Indexes” в книге SQL Reference, Том 1 v “Relational databases” в книге SQL Reference, Том 1 v “Schemas” в книге SQL Reference, Том 1 v “Table spaces and other storage structures” в книге SQL Reference, Том 1 v “Tables” в книге SQL Reference, Том 1 v “Views” в книге SQL Reference, Том 1

    Параметры конфигурации

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

    Файлы конфигурации содержат параметры, значения которых определяют ресурсы, выделяемые для продуктов баз данных DB2 и для отдельных баз данных, а также уровень диагностики. Есть два типа параметров конфигурации: v Файл конфигурации менеджера баз данных для каждого экземпляра DB2 v Файл конфигурации базы данных для каждой отдельной базы данных.

    Файл конфигурации менеджера баз данных создается при создании экземпляра DB2. Содержащиеся в нем параметры влияют на системные ресурсы на уровне экземпляра, независимо от баз данных, составляющих части этого экземпляра. Системные

    Рисунок 8. Связь между пулом буферов и контейнерами

    Глава 1. Основные принципы реляционных баз данных 13

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

    Кроме того, по одному файлу конфигурации менеджера баз данных существует для каждой клиентской установки. В этом файле содержится информация о программе инициализации клиента для конкретной рабочей станции. Набор параметров клиента образует подмножество набора параметров, доступных для сервера.

    Параметры конфигурации менеджера баз данных хранятся в файле с именем db2systm. Этот файл создается при создании экземпляра менеджера баз данных. В средах на основе UNIX этот файл находится в подкаталоге sqllib каталога экземпляра менеджера баз данных. В Windows этот файл по умолчанию создается в подкаталоге экземпляра каталога sqllib. Если задана переменная DB2INSTPROF, этот файл находится в подкаталоге instance каталога, заданного переменной DB2INSTPROF.

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

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

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

    Параметры отдельной базы данных хранятся в файле конфигурации с именем SQLDBCON. Этот файл хранится вместе с другими файлами управления базы данных в каталоге SQLnnnnn, где nnnnn - это номер, присваиваемый при создании базы данных. У каждой базы данных есть собственный файл конфигурации, и большинство параметров из этого файла задают объем ресурсов, выделяемых базе данных. Кроме того, файл содержит описательную информацию, а также флаги состояния базы данных.

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

    14 Руководство администратора: Планирование

  • Понятия, связанные с данным: v “Configuration parameters that affect query optimization” в книге Руководство по производительности

    Задачи, связанные с данной темой: v “Configuring DB2 with configuration parameters” в книге Руководство по производительности

    Переменные среды и реестра профиля

    Переменные среды и переменные реестра определяют среду базы данных.

    Для настройки параметров конфигурации и переменных реестра можно воспользоваться Помощником по настройке db2ca.

    Перед началом работы с реестром профиля базы данных DB2 измените переменные среды на рабочей станции Windows, для которых это требуется, и перезагрузите систему. Теперь ваша среда (за немногими исключениями) контролируется переменными реестра, хранящимися в реестрах профилей DB2. Пользователи операционной системы UNIX с правами системного администратора (SYSADM) для данного экземпляра могут изменять значения реестра для этого экземпляра. Пользователям Windows не нужны права SYSADM для изменения значений реестра. Чтобы изменить значения переменных реестра без перезапуска, используйте команду db2set; заданные значения сразу сохраняются в реестрах профилей. Измененная информация в реестре DB2 будет применена к экземплярам серверов DB2 server instances и к прикладным программам DB2, запущенным после внесения изменений.

    При изменении реестра новые значения не применяются для активных в настоящее время прикладных программ или пользователей DB2. Для прикладных программ, запущенных после изменения реестра, используются новые значения.

    Примечание: Переменные среды DB2 DB2INSTANCE и DB2NODE не могут быть сохранены в реестре профилей DB2. В некоторых операционных системах для изменения переменных среды необходимо вызвать

    Рисунок 9. Взаимосвязь между объектами баз данных и файлами конфигурации

    Глава 1. Основные принципы реляционных баз данных 15

  • команду set. Эти изменения вступят в силу только после следующего перезапуска системы. В системе UNIX вместо команды set можно использовать команду export.

    Используя реестр профиля, можно централизованно управлять переменными среды. Различные уровни поддержки обеспечиваются в настоящее время разными профилями. При использовании сервера администратора DB2 возможно также удаленное управление переменными среды.

    Существует четыре реестра профилей: v Реестр профиля DB2 уровня экземпляра. В этом реестре размещается большинство переменных среды DB2. В нем хранятся значения переменных среды для конкретного экземпляра. Значения, определенные на этом уровне, переопределяют соответствующие значения на глобальном уровне.

    v Реестр профиля DB2 глобального уровня. Если переменная среды не задана для конкретного экземпляра, используется этот реестр. Этот реестр видим для всех экземпляров, относящихся к определенной копии DB2 ESE, один профиль глобального уровня находится по пути установки.

    v Реестр профиля DB2 уровня узла экземпляра. На этом уровне реестра хранятся переменные, применяемые на конкретном разделе базы данных многораздельной среды. Значения из этого уровня переопределяют значения, заданные на уровне экземпляра или глобальном уровне.

    v Реестр профиля экземпляра DB2. Этот реестр содержит список всех имен экземпляров, связанных с текущей копией. У каждой установки есть свой собственный список. Полный список экземпляров в системе можно получить с помощью команды db2ilist.

    DB2 конфигурирует рабочую среду, проверяя значения реестра и переменные среды в следующем порядке: 1. Переменные среды, заданные при помощи команды set. (Или команды export в

    системах UNIX.) 2. Переменные среды, заданные в профиле уровня экземпляра (с помощью команды

    db2set -i ). 3. Значения реестра, заданные в профиле уровня экземпляра (при помощи команды

    db2set -i). 4. Значения реестра, заданные в профиле глобального уровня (при помощи команды

    db2set -g).

    Реестр профиля уровня экземпляра

    Есть некоторые различия при работе со средой многораздельных баз данных в UNIX и Windows. Эти различия демонстрируются в следующем примере.

    Предположим, в среде многораздельных баз данных есть три физических раздела базы данных под названиями “red”, “white” и “blue”. На платформах UNIX, если владелец экземпляра выполняет с любого из разделов базы данных команду: db2set -i FOO=BAR

    или db2set FOO=BAR (’-i’ подразумевается)

    это значение переменной FOO будет видно на всех узлах текущего экземпляра (то есть на узлах “red”, “white” и “blue”).

    16 Руководство администратора: Планирование

  • На платформах UNIX реестр профиля уровня экземпляра сохраняется в виде текстового файла в каталоге sqllib. В средах многораздельных баз данных каталог sqllib находится в файловой системе, совместно используемой всеми физическими разделами базы данных.

    На платформах Windows, если пользователь выполняет ту же команду с узла “red”, это значение переменной FOO будет видно только на узле “red” текущего экземпляра. Менеджер баз данных DB2 хранит реестр профиля уровня экземпляра в реестре Windows. Его значения недоступны другим физическим разделам базы данных. Чтобы задать переменные реестра на всех физических компьютерах, используйте команду “rah”: rah db2set -i FOO=BAR

    Команда rah выполнит команду db2set на всех узлах (“red”, “white” и “blue”).

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

    Предположим, что в предыдущем примере узел “red” - владелец экземпляра. Зададим переменную DB2REMOTEPREG на компьютерах “white” и “blue”, чтобы использовать переменные реестра с компьютера “red”: (на red) ничего не делаем

    (на white и blue) db2set DB2REMOTEPREG=\\red

    Заданное значение DB2REMOTEPREG нельзя менять.

    Вот как работает DB2REMOTEPREG:

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

    Для обращения к удаленному реестру требуется, чтобы на удаленном компьютере была запущена служба удаленного реестра. Кроме того, учетная запись пользователя и всех службы DB2 должны иметь достаточный доступ к этому удаленному реестру. Поэтому для использования переменной DB2REMOTEPREG следует работать в среде домена Windows, чтобы можно было предоставить учетной записи домена необходимые полномочия на обращение к реестру.

    При работе в среде Microsoft Cluster Server (MSCS) не нужно использовать переменную DB2REMOTEPREG. В конфигурации с MSCS, где все компьютеры входят в один кластер MSCS, переменные реестра сохраняются в реестре кластера. Поэтому они уже совместно используются всеми компьютерами в кластере MSCS и использовать переменную DB2REMOTEPREG в этом случае нет необходимости.

    При работе в многораздельной среде с восстановлением после сбоев, где разделы базы данных распределены по нескольким кластерам MSCS, нельзя использовать переменную среды DB2REMOTEPREG для задания компьютера-владельца экземпляра, поскольку переменные реестра этого компьютера находятся в реестре кластера.

    Глава 1. Основные принципы реляционных баз данных 17

  • Понятия, связанные с данным: v “DB2 registry and environment variables” в книге Руководство по производительности

    Задачи, связанные с данной темой: v “Объявление, вывод, изменение, сброс и удаление переменных реестра и среды” в книге Руководство администратора: Реализация

    Логические правила для данных

    В любой сфере деятельности данные чаще всего должны подчиняться определенным ограничениям или правилам. Например, номера сотрудников должны быть уникальны. В DB2 Database для Linux, UNIX и Windows для задания таких правил применяются ограничения. Для реализации подобных правил используются также триггеры.

    DB2 V9.1 поддерживает следующие типы ограничений: v ограничение NOT NULL v Ограничение уникальности v Ограничение первичного ключа v Ограничение внешнего ключа v П