Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Средства поддержки целостности данных

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

  • обязательные данные;

  • ограничения для доменов;

  • целостность сущностей;

  • ссылочная целостность;

  • требования конкретного предприятия.

Эти ограничения могут быть определены в операторах CREATE TABLE и ALTER TABLE.

Обязательные данные

Для некоторых столбцов требуется наличие в каждой строке таблицы конкретного и допустимого значение, отличного от неопределенного значения (или значения NULL). Значение NULL служит для представления данных, которые в данный момент недоступны, отсутствуют или не определены. Например, каждый преподаватель обязательно имеет то или иное ученое звание: профессор, доцент и т.п. Для задания ограничений подобного типа стандарт ISO предусматривает использование спецификатора NOT NULL, указываемого в операторах CREATE TABLE и ALTER TABLE. Если для столбца задан спецификатор NOT NULL, система отвергает любые попытки вставить в такой столбец пустое значение. А если при определении характеристик столбца задан спецификатор NULL, то система допускает размещение в этом столбце значений NULL. В соответствии со стандартом ISO по умолчанию применяется спецификатор NULL. Например, для указания того, что столбец СТ (ученое звание) в таблице Преподаватель не может содержать пустых значений, следует определить его, как показано ниже.

СТ VARCHAR(10) NOT NULL

Ограничения для доменов

Каждый столбец имеет собственный домен, т.е. некоторый набор допустимых значений. Стандарт ISO предусматривает два различных механизма определения доменов в операторах CREATE TABLE и ALTER TABLE. Первый состоит в использовании конструкции CHECK, позволяющей задать требуемые ограничения для столбца или таблицы в целом. Конструкция CHECK имеет следующий формат:

CHECK (searchCandition)

При определении ограничений для отдельного столбца в конструкции CHECK можно ссылаться только на определяемый столбец.

Однако стандарт ISO позволяет определять и более сложные домены, для чего предназначен второй механизм – использование оператора CREATE DOMAIN, имеющего следующий формат:

CREATE DOMAIN domainName [AS] dataType

[DEFAULT defaultOption]

[CHECK (searcftCoriditicn)]

Каждому создаваемому домену присваивается имя, задаваемое параметром domainName, тип данных, определяемый параметром dataType, необязательное значение по умолчанию, устанавливаемое параметром defaultOption, и необязательный набор допустимых значений, определяемый в конструкции CHECK. Следует отметить, что приведенный формат оператора CREATE DOMAIN является неполным, однако его достаточно для демонстрации основных возможностей.

Значение параметра searchCondicion может предусматривать обращение к справочной таблице. Например, можно создать домен КП (код предмета), который позволит вводить в соответствующие столбцы различных таблиц только те значения, которые уже существуют в столбце КП таблицы Предмет. Для этой цели необходимо использовать следующий оператор:

CREATE DOMAIN КП AS VARCHAR(4)

CHECK (VALUE IN (SELECT КП FROM Предмет));

Удаление доменов из базы данных выполняется с помощью оператора DROP DOMAIN, имеющего следующий формат:

DROP DOMAIN domainName [RESTRICT | CASCADE]

Спецификатор способа удаления домена (RESTRICT или CASCADE) определяет, какие действия выполняются в базе данных, если домен в настоящее время используется. Если задан спецификатор RESTRICT, а домен применяется в существующей таблице, представлении или определении проверки, то операция удаления оканчивается неудачей. А если задан спецификатор CASCADE, то в любой столбец таблицы, который основан на определении домена, автоматически вносятся изменения таким образом, чтобы в нем применялся базовый тип данных домена, а любые ограничения или применяемые по умолчанию конструкции операторов для этого домена заменяются в случае необходимости ограничениями столбца или применяемой по умолчанию конструкцией оператора для соответствующего столбца.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]