Программирование >>  Реализация целостности данных 

1 ... 28 29 30 [ 31 ] 32 33 34 ... 124


ваться об этом каждый раз, когда вы сравниваете поля, объявленные в различных доменах (хотя чаще всего такое сравнение не имеет смысла).

UDDT создается либо с помощью SQL Server Enterprise Manager, либо с помощью системной хранимой процедуры sp addlype. В любом случае дл DDT указывается имя, тип данных и определяется, могут ли они содержать значения Null. Когда UDDT создан, вы вправе определить для него значения по умолчанию и правила проверки. Правило SQL Server является логическим выражением, которое определяет значения, приемлемые для UDDT (или для поля, если правило относится к полю, а не к UDDT). (Значение по умолчанию - это просто величина, которую система подставляет в поле, если пользователь не задал значение этого поля явно).

Привязка правила или величины по умолчанию к UDDT состоит из двух шагов. Сначала нужно создать правило или величину по умолчанию, а потом - привязать их к UDDT (или полю). Целесообразность такой сложной двухступенчатой процедуры объясняют, как правило, следующим образом: будучи однажды определенной, правило по умолчанию может быть использовано повторно. Я нахожу это утомительным, так как такие объекты повторно используются редко. Когда определяется таблица, SQL Server обеспечивает возможность декларации значений по умолчанию и ограничений CHECK в самом определении таблицы. (Ограничения CHECK

во многом подобны правилам, но обладают большими возможностями). К сожалению, такая простая декларация недоступна для объявления UDDT - для них нужно использовать метод создать, потом связать . Было бы желательно, чтобы корпорация Microsoft добавила

в будущие версии SQL Server поддержку значений по умолчанию и ограничений CHECK в объявления UDDTs.

Второй способ реализации ограничений целостности на уровне домена - использовать просмотровые таблицы. Этот способ применим как для Microsoft Jet, так и для SQL Server. В качестве примера возьмем домен tates. Теоретически вы можете создать правило, проверяющее значения всех 50 штатов. Реально это мучительный процесс, в частности для механизма баз данных Microsoft Jet, где такое правило пришлось бы переписывать для каждого поля, определенного в этом домене. Намного легче создать таблицу USStates и исполь-ссылочную целостность, которая будет гарантировать, что поле содержит только значения из таблицы.

Целостность на уровне сущности

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



ЧАСТЬ йяциониых баздг1нных

ханизм баз данных Microsoft Jet, и SQL Server предоставляют средства, гарантирующие целостность на уровне сущности. SQL Server обеспечивает более богатый спектр возможностей (и это не удивительно), впрочем, разница не столь уж велика.

Самое фундаментальное ограничение целостности на уровне отдельных полей - это, конечно, тип данных. Механизм баз данных Microsoft Jet и SQL Server обеспечивают богатый спектр типов данных (табл. 4-1).

Табл. 4-1. Типы данные osoft Jet и SQL Server

Логический Тип данных Тип данных тип данных .SQL Server Microsoft Jet

Хранимый Размер

диапазон значений

Integer

Точное

числовое

значение

(exact

numeric)

Числа с

плавающей

точкой

Smallint

Tinyint

Decimal

Float (до 15

!ИаКО!(

после

десятичной точки)

Real

Long integer

He определен

Integer

Number (различные

1ИГ1Ы>

Double

Single

Целые числа от -2 147 483 648 до 2 147 483 647

-32 768 до 32 767

Целые числа от 0 до 255

Целые или дробные числа от

4 байта

2 байта

1 байт

байт

Действительные 8 байт числа от -I.79E

: положи-

тельные числа от 2,23Е <* до i,79E- отрицательные числа от-2,23Е- ЛО-1.79Е

Действительные числа от -3,40Е

4 байта

Е \ положительные числа от lЛ8Eдo 3,40Е-; ртридательньте числа

от -l.iSE до -3,40Е*



ГЛАВА 4 Цеяостиость данных

(продолжение)

Строка символов фиксированной длины

Char

Строка

символов

переменной

длины

Денежный тип

Varchar

определен

Text

Money

Currency

Smallmoney He определен

Дата и время

Daterime DateTime

SmalJ-datelime

Двоичные Binary данные фиксированной длины

Двоичные Varbjnary данные переменной длины

определено Не

определено

Поддерживается только для присоединенных таблиц

Не более 255 символов для Microsoft Jet; 8000 символов для SQL Server 7.0 1(255 - в более ранних версиях)

Не более 255 символов в Microsoft Jet, 8000 символов

для SQL Server 7.0

(255 - в ранних версиях)

Числа с точностью до четырех знаков после десятичной точки в диапазоне от -922 337 208 685 477,5808 до 922 337 208 685 477,5807 Числа с точностью до четырех знаков после десятичной точки в диапазоне ют -214 748,3648 до 214 74S,3647

От 1 январе 53 г. до 31 декабря 9999 г. для SQL Server; от 1 января 100 г. до 31 декабря W г. для Microsoft Jet

От 1 января 1900 г. до 6 июня 2079 г.

Не более 8000 байт

1 байт на символ

1 байт на символ

8 байт

4 байта

8 байт

Не более 8000 байт

4 байта

Количество байт плюс 4 байта

Количество байт плюс 4 байта



1 ... 28 29 30 [ 31 ] 32 33 34 ... 124

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика