Введение в программирование SQL Server. Создание и управление базой данных. Инструменты целостности данных, страница 20

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

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

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

*  Эта целостность может обеспечиваться на клиенте и сервере с помощью других языков программирования и утилит;

*  Обеспечивайте целостности с помощью триггеров и процедур.

5.2 Объявление ограничений

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

Определение, какой тип ограничения использовать

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

Тип целостности

Тип ограничения

Описание

Доменная

DEFAULT

Указывает значение, которое будет занесено в колонку, если не указано другого

CHECK

Указывает значения данных, которые могут быть приняты в колонку

REFERENTIAL

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

Таблицы

PRIMARY KEY

Уникальный идентификатор каждой строки – гарантирует, что пользователи не введут дублирующее значение, и этот индекс создаётся для увеличения производительности. Нулевые значения не разрешены

UNIQUE

Обеспечивает альтернативную уникальность (не первичного ключа) и гарантирует, что индекс создан для повышения производительности. Нулевые значения разрешены.

Ссылочная

FOREIGHN KEY

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

CHECK

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

Создание ограничений

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

*  Если ограничение назначается отдельной колонке, оно называется ограничения уровня колонки;

*  Если ограничение ссылается на несколько колонок, оно называется ограничением уровня таблицы, даже если оно ссылается не на все колонки таблицы.

Пример

Следующий пример создаёт таблицу, объявляющую ограничения обоих типов – уровня колонки и уровня таблицы:

Размышления по использованию ограничений

Рассматривайте следующие факты по внедрению и изменению ограничений:

*  Вы можете создавать, изменять и удалять ограничения без удаления и воссоздания таблицы;

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

*  Сервер SQL проверяет существующие данные, когда вы добавляете ограничение к таблице.

Вы должны указывать имя ограничения, когда вы создаёте его, потому что SQL Server предоставляет сложные имена, сгенерированные системой. Имена должны быть уникальными для объекта базы данных.

Для помощи с ограничением выполните процедуры sp_helpconstraint или sp_help, или используйте просмотрщики, такие как check_constrainy, referential_constrainy и table_constrainy.