Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Работа с базами данных для пользователей
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

7.2. Средства ограничения целостности данных в SQL Server

Ограничения целостности в базах данных SQL Server, CHECK, пользовательские типы данных (user-defined types, UDF), RULE, первичный ключ (PRIMARY KEY), ограничения уникальности (UNIQUE)

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

ALTER TABLE dbo.Employees

ADD

CONSTRAINT CK_birthdate

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

На графическом экране ограничение можно создать (или получить информацию/изменить/удалить) на графическом экране Enterprise Manager, открыв таблицу в режиме Design Table, а затем нажав на кнопку Manage Constraints. Про ограничение CHECK необходимо сказать, что:

·        можно проверять соответствие только константным значениям (диапазону значений). Использовать подзапросы в ограничении нельзя.

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

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

CREATE RULE id_chk AS @id BETWEEN 0 and 10000

GO

sp_bindrule id_chk, 'cust_sample.cust_id'

GO

На графическом экране Enterprise Manager работа с правилами производится из контейнера Rules под контейнером баз данных.

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

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

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

ALTER TABLE doc_exe

ADD column_b INT IDENTITY

CONSTRAINT column_b_pk PRIMARY KEY

На графическом экране - так же открываем таблицу в режиме Design table и нажимаем на кнопку Manage Indexes/Keys. Оттуда же создаем и ограничение UNIQUE - средство обеспечения уникальности значений без первичного ключа.

Ссылочная целостность, обеспечивается, как уже говорилось, системой первичных и внешних ключей. Создание их - см. создание первичного ключа. Можно определять их как при создании таблицы, так и после, средствами TSQL (ALTER TABLE) или Enterprise Manager.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru