Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы даннbIх.doc
Скачиваний:
8
Добавлен:
09.08.2019
Размер:
211.46 Кб
Скачать
  1. Обеспечение целостности данных: на уровне таблицы, на уровне базы данных.

Целостность данных на уровне таблицы:

Обеспечение целостности данных гарантирует качество данных в таблице. Например если служащий вводится со значением столбца employee_id, равным 123, то база данных не должна позволять другим служащим иметь такое же значение идентификатора. Если существует столбец employee_rating, в котором диапазон значений должен составлять от 1 до 5, то база данных не должна сохранять в нем значение 6. Если в таблице есть столбец dept_id, в котором хранятся номера отделов для служащих, то база данных должна воспринимать только те значения, которые допустимы в качестве номеров отделов компании.

При планировании таблиц имеются два важных шага: определить допустимые значения для столбца и решить, каким образом обеспечить целостность данных в этом столбце. Целостность данных подразделяется на следующие категории.

  • Сущностная целостность

  • Доменная целостность

  • Ссылочная целостность

  • Пользовательская целостность

Сущностная целостность

Сущностная целостность определяет строку как уникальную сущность в конкретной таблице. Она обеспечивает целостность столбцов идентификаторов или первичного ключа таблицы с помощью индексов, ограничений UNIQUE, ограничений PRIMARY KEY или свойств IDENTITY.

Доменная целостность

Доменная целостность - это достоверность записей в конкретном столбце. Она включает ограничения типа данных, ограничения формата при помощи ограничений CHECK и правил, а также ограничения диапазона возможных значений при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил.

Ссылочная целостность

Ссылочная целостность сохраняет определенные связи между таблицами при вводе или удалении записей. В SQL Server 2000 ссылочная целостность основана на связи первичных и внешних ключей (либо внешних и уникальных ключей) и обеспечивается с помощью ограничений FOREIGN KEY и CHECK. Ссылочная целостность гарантирует согласованность значений ключей во всех таблицах. Этот вид целостности требует отсутствия ссылок на несуществующие значения, а также обеспечивает согласованное изменение ссылок во всей базе данных при изменении значения ключа.

При обеспечении ссылочной целостности SQL Server не допускает следующих действий пользователей.

Добавления или изменения записей в связанной таблице, если в первичной таблице нет соответствующей записи.

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

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

Например в таблицах Sales.SalesOrderDetail и Production.Product в базе данных AdventureWorks ссылочная целостность основана на связи между внешним ключом (ProductID) в таблице Sales.SalesOrderDetail и первичным ключом (ProductID) в таблице Production.Product. Эти связи гарантируют, что заказ на продажу никогда не будет ссылаться на изделие, не существующее в таблице Production.Product.

Пользовательская целостность

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

Принудительное обеспечение целостности данных

Планирование и создание таблиц требует указания допустимых значений для столбцов и определения способов принудительного обеспечения целостности данных в них. SQL Server 2005 предоставляет следующие механизмы для принудительного обеспечения целостности данных в столбце:

  • Ограничения PRIMARY KEY

  • Ограничения FOREIGN KEY

  • Ограничения UNIQUE

  • Ограничения CHECK

  • Определения DEFAULT

  • Разрешение значений NULL