|
Программирование >> Реализация целостности данных
ваться об этом каждый раз, когда вы сравниваете поля, объявленные в различных доменах (хотя чаще всего такое сравнение не имеет смысла). 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 байта
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |