DB2 – система управления реляционными базами данных. Заданное число упорядоченных столбцов и неупорядоченные строки, страница 8

Ограничения запрашиваются в операторе создания таблицы и автоматически активизируются DB2.

Ограничение:

-  Ссылается только на столбцы этой же сторки

-  максимальная длина - 3800.

-  не может использовать подзапрос, скалярные функции и функции столбца, переменные, специальные регистры, столбы с FIELDPROC, количественные предикаты (SOME, ANY, ALL), операнд NOT.

-  первым операндом каждого предиката должно быть имя столбца.


ALTERTABLE – соглашение о CHECK-ограничении

-  Если таблица пустая, то CHECK-ограничение добавляется.

-  Если таблица содержит данные, действие зависит от специального регистра CURRENT RULES ( STD|DB2)

- Для STD

·  Если нет нарушающих условие строк, ограничение добавляется.

·  Если есть такие строки, ALTER заканчивается неудачей.

- Для DB2 – устанавливается состояние check pending (CHKP)

Значение специального регистра CURRENT RULES устанавливается изначально параметром SQLRULES в BIND. Значение специального регистра может быть изменено с помощью оператора SET CURRENT RULES.

По отношению к таблице в check pending-состоянии не может быть выполнен ни один из SQL-операторов группы DML.


ALTERTABLE – пример CHECK-ограничения

Добавление/удаление CHECK-ограничения.

ALTER TABLE EMP

ADD CONSTRAINT SALCHECK

CHECK(SALARY>0)

ALTER TABLE EMP

DROP CONSTRAINT SALCHECK

ALTER TABLE EMP

DROP CHECK SEXCHECK

После использования оператора ALTER не требуется  REBIND.


CHECK-ограничения - Информация в каталоге

Две таблицы каталога содержат описания и информацию о зависимостях для CHECK-ограничении.  SYSIBM.SYSCHECKS содержит текст каждого CHECK-ограничения. SYSIBM.SYSCHECKDEP содержит информацию о зависимостях CHECK-ограничений.


CREATE TABLE – AUDIT/RESTRICT ON DROP

  • Для таблиц, содержащих “чувствительные” данные, ключевое слово AUDIT позволяет запросить протоколирование обращений к таблице. Пользователь с правами SYSADM должен активизировать “AUDIT трассу” для этого.
  • Ключевое слово RESTRICT ON DROP:

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

-  в столбец CLUSTERTYPE таблицы SYSIBM.SYSTABLES помещается информация об ограничении.

-    ограничение на удаление таблицы может быть отменено с помощью оператора ALTER.


Создание таблицы по образу другой таблицы

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

·  Столбцы имеют идентичные:

-  Имена

-  Типы данных и их длину

-  NULL-атрибуты.

·  Информация базы данных и табличного пространства НЕ копируется.

·  CHECK-ограничения НЕ копируются.


Таблица – Информация в каталоге

Все таблицы DB2, включая таблицы каталога, описаны в таблице DB2 SYSIBM.SYSTABLES. Эта таблица может быть только просмотрена. Модификация ее запрещена. Только пользователю с правами SYSADM позволено модифицировать некоторые столбцы.


CREATETABLE – выходы пользователя


Столбцы – Информация в каталоге

SYSIBM.SYSCOLUMNS

NAME

TBNAME

TBCREATOR

COLNO

COLTYPE

LENGTH

SCALE

NULLS

DEFAULT

EMPNO

EMP

BART

1

CHAR

6

0

N

N

SYSIBM.SYSFIELDS

TBCREATOR

TBNAME

NAME

COLNO

FLDPROC

PARMLIST

BART

EMP

EMPNO

1

prog1

N