Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по БД new.doc
Скачиваний:
11
Добавлен:
18.09.2019
Размер:
687.62 Кб
Скачать

Средства поддержки целостности данных (см. Dcl sql и т.Т.)

Поддержка целостности данных включает средства задания ограничений, которые вводятся для защиты БД от нарушения согласованности данных. Большая часть этих ограничений задается в операторах CREATE и ALTER TABLE.

Типы ограничений поддержки целостности данных и их реализация в стандарте ISO в операторах CREATE или ALTER TABLE:

Обязательные данные: Для некоторых столбцов требуется наличие в каждой строке таблицы конкретного значения, отличного от значения NULL. Так, в таблице RABOTNIK каждый работник обязательно занимает ту или иную должность. Для задания ограничений такого типа предусмотрено использова­ние служебного слова NOT NULL. Например,

DOLJNOST VARCHAR(10) NOT NULL.

Ограничения для доменов атрибутов: Каждый столбец имеет собственный домен - некоторый набор допустимых значений. Например, для определения пола работника достаточно всего двух значений, поэтому домен для столбца POL таблицы RABOTNIK можно оп­ределить как набор из двух строк длиной в один символ со значением либо 'М', либо 'Ж'. Можно описать его таким образом:

POL CHAR NOT NULL CHECK (POL IN (‘M’, ‘Ж’)).

Целостность сущностей: Первичный ключ таблицы должен иметь уникальное непустое значение в каждой строке таблицы. Например, каждая строка таблицы RABOTNIK должна содержать уникальное непустое значе­ние личного (табельного) номера работника в столбце NOMER, оно бу­дет определять работника, описываемого данной строкой табли­цы. Требования поддержки целостности данных задаются с помощью фразы

PRIMARY KEY (NOMER).

В случае составного первичного ключа фраза определения первичного ключа будет иметь следующий вид:

PRIMARY KEY (FIRMA, NOMER).

Фраза PRIMARY KEY может указываться в определении таблицы только один раз. Гарантировать уникальность значений для альтернативных ключей таблицы может ключевое слово UNIQUE и ключевые слова NOT NULL.

Ссылочная целостность: Понятие ссылочной целостности означает, что если поле внешнего ключа содержит некоторое значение, то оно обязательно должно ссылаться на существующую строку в родительской таблице. На­пример, значение OTDEL (внешний ключ) таблицы RABOTNIK, если оно не опущено, должно свя­зывать каждого сотрудника с конкретной строкой таблицы OTDELS, соответствующей тому отделению фирмы, в котором данный сотрудник работает. В противном случае работник окажется приписан­ным к несуществующему отделению компании.

Для определения внешнего ключа OTDEL в таблице RABOTNIK можно использовать, на­пример, следующее предложение:

FOREIGN KEY(OTDEL) REFERENCES OTDELS.

При этом будет отклонена попытка создания в дочерней таблице RABOTNIK значения внешнего ключа, не соответствующего одному из уже существующих значений первичного ключа родительской таблицы OTDELS. При попытке обновить или удалить значение первичного ключа в родительской таблице в зависимости от правил поддержки ссылочной це­лостности, указанных во фразах ON UPDATE и ON DELETE предложения FOREIGN KEY выполняется каскадирование, занесение во внешние ключи NULL-значений, значений по умолчанию, новых значений или операция не производится вообще.

Требования данного предприятия: Обновления данных в таблицах могут быть ограничены существующими в данной организации требованиями (бизнес-правилами). Реали­зовать бизнес-правила предприятий можно, например, с помощью предложений CHECK и условий, записанных на языке SQL.