Главная

Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Меры по поддержанию целостности данных


 

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

 

Ограничение целостности - это некоторое утверждение, которое может быть истинным или ложным в зависимости от состояния базы данных.

 

В любой момент времени любая база данных содержит некоторую определенную конфигурацию значений данных, которая должна отражать некую действительность. Эта конфигурация должна подчиняться соответствующему набору правил (правил целостности), назначение которых в том, чтобы информировать СУБД о разного рода ограничениях реального мира, а значит, предотвращать появление таких недопустимых конфигураций значений.

Любое изменение в предметной области, значимое для построенной модели, должно отражаться в базе данных, и при этом должна сохраняться однозначная интерпретация информационной модели в терминах предметной области.

 

Примерами ограничений целостности могут служить следующие утверждения:

Пример 1. Вес детали не может быть отрицательным.

Пример 2. Возраст сотрудника не может быть меньше 18 и больше 65 лет.

Пример 3. Каждый сотрудник имеет уникальный табельный номер.

Пример 4. Сотрудник обязан числиться в одном отделе.

Пример 5. Сумма накладной обязана равняться сумме произведений цен товаров на количество товаров для всех товаров, входящих в накладную.

 

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

Однако есть два общих особых правила целостности, которые свойственны любой реляционной модели. Эти два особых правила относятся к потенциальным (и первичным) ключам и к внешним ключам.

1) База данных не должна содержать несогласованных значений внешних ключей (т.е. значений внешних ключей, для которых не существует отвечающих им значений соответствующих потенциальных ключей в соответствующем целевом отношении). Иначе говоря, правило утверждает, что если В ссылается на А, то А должно существовать.

2) Ни один элемент первичного ключа базового отношения не может быть null-значением.

 

 

Целостность данных - это механизм поддержания соответствия базы данных предметной области. В реляционной модели данных определены два базовых требования обеспечения целостности:

· целостность сущностей,

· целостность ссылок.

 

Целостность сущностей.

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

 

Каждый кортеж любого отношения должен отличаться от любого другого кортежа этого отношения (т.е. любое отношение должно обладать первичным ключом).

 

Вполне очевидно, что если данное требование не соблюдается (т.е. кортежи в рамках одного отношения не уникальны), то в базе данных может храниться противоречивая информация об одном и том же объекте. Поддержание целостности сущностей обеспечивается средствами системы управления базой данных (СУБД). Это осуществляется с помощью двух ограничений:

· при добавлении записей в таблицу проверяется уникальность их первичных ключей,

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

 

Целостность ссылок.

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

· Связи между данными отношениями описываются в терминах функциональных зависимостей,

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

 

База данных не должна содержать несогласованных значений внешних ключей (т.е. значений внешних ключей, для которых не существует отвечающих им значений соответствующих потенциальных ключей в соответствующем целевом отношении). Иначе говоря, правило утверждает, что если В ссылается на А, то А должно существовать.

 

Иначе говоря, требование целостности по ссылкам состоит в следующем:

 

для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись кортеж с таким же значением первичного ключа.

 

Пусть, например, даны отношения

 

ОТДЕЛ (N_ОТДЕЛА, ИМЯ_ОТДЕЛА) и

Другое общее требование по ссылкам: ни один элемент первичного ключа базового отношения не может быть null-значением.

 

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

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

 

Что дает ссылочная целостность?

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

· Убыстрение разработки. Ссылочная целостность объявляется. Это гораздо продуктивнее (на один или два порядка), чем написание специального программного кода.

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

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

 

Дополнительный аспект поддержки целостности (в реляционной модели) – это обеспечение языковой целостности, которая состоит в том, что реляционная СУБД должна обеспечить языки описания и манипулирования данными не ниже стандарта SQL. При этом не должны быть доступны иные низкоуровневые средства манипулирования данными, не соответствующие стандарту.

Именно поэтому доступ к информации, хранимой в базе данных, и любые изменения этой информации могут быть выполнены только с использованием операторов языка SQL.

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



Последнее изменение этой страницы: 2016-06-09

headinsider.info. Все права принадлежат авторам данных материалов.