Понятие о проверочных ограничениях
Одним из наиболее важных аспектов в разработке базы данных является обеспечение целостности данных (data integrity). Правила целостности данных гарантируют, что данные, содержащиеся в базе данных, являются если не корректными, то по меньшей мере правдоподобными. Имеется несколько уровней целостности данных. В уроке 7 мы рассмотрели целостность отношений, которая обеспечивает, создание и корректное обслуживание взаимосвязи между таблицами.
Проверочные ограничения, с которыми вы познакомитесь, используются для введения двух дополнительных форм целостности базы данных: целостность домена и целостность сущности. В реляционной терминологии домен (domain) представляет собой область значений, которые может содержать столбец. Тип данных столбца является одним из атрибутов домена, но определения типа данных достаточно не всегда. Например, столбец с типом данных smallint может содержать целочисленные значения от -32768 до 32767, что вполне приемлемо для столбца, содержащего год окончания работником компании учебного заведения. Однако реальный диапазон значений для столбца YearDegreeAwarded более строгий – скажем, между 1900 и текущим годом. Вам следует воспользоваться проверочным ограничением, чтобы в качестве значения столбца не был введен 1543 или 2075 год.
Ограничения целостности сущности обеспечивают целостность сущности самой по себе. Наиболее важным в ограничении целостности сущности является то, что каждая сущность должна быть уникально идентифицируемой. Это ограничение реализуется путем задания первичного ключа для таблицы. Целостность сущности может также обеспечиваться условными вычислениями для нескольких столбцов в таблице, и этот тип ограничения чаще всего реализуется с помощью проверочных ограничений. Например, если таблица содержит столбцы страны Country и штата State, вы можете использовать проверочное ограничение для указания, что значение "AZ" в столбце State (что соответствует обозначению штата Аризона) корректно только в том случае, если в столбце Country содержится значение "USA" ("США").
Проверочные ограничения задаются в виде Булевых выражений. Булево выражение принимает значение либо TRUE (Истина), либо FALSE (Ложь). Булевы выражения мы рассмотрим в уроке 13. В этом уроке мы используем выражение:
LEN (<столбец>) >= 4
Здесь LEN представляет собой функцию Transact-SQL, которая возвращает количество символов в строке, поэтому выражение LEN (<столбец>) >= 4 будет принимать значение TRUE, если <столбец> содержит четыре или более символов, и FALSE, если он содержит менее четырех символов.