Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Microsoft SQL Server 2008 исправленная1.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
8.11 Mб
Скачать

Ограничения целостности

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

Все ограничения целостности можно разделить на три большие категории:

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

  • Вторая категория - сущностная целостность. Главная задача здесь - сделать так, чтобы данные об одной сущности не попали в базу данных два раза. Обеспечивается ограничением уникальности и первичным ключом.

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

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

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

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

Главное средство обеспечение доменной целостности в SQL Server - это ограничение CHECK. Оно может быть определено при создании таблицы или добавлено позднее при изменении таблицы, например для проверки года рождения студентов:

CHECK (BirthDate > '01-01-1900' AND BirthDate < '01-01-2020')

Практически полный аналог Check в SQL Server - это Rule (правило). Фактически этот тот же самый CHECK, но создаваемый как отдельный объект базы данных. Созданное правило мы можем привязывать ко множеству столбцов в базе.

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

Если же приходится использовать более сложные типы обеспечения доменной целостности, то выход - использование программных элементов: хранимых процедур или триггеров. В них можно реализовать обращение к другим таблицам, вызов внешних программных серверов и другую сложную логику. Триггер предназначен для автоматического запуска системой SQL Server при модифицировании данных какой-либо таблицы. Процедура «вызывается» вручную пользователем или системой при каком-либо заданном событии и представляет собой программный код.

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

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

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