|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||