Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Стратегии целостности базы данных

Читайте также:
  1. A. Различаем правила и стратегии.
  2. ABE СТРАТЕГИИ: ПРОТИВОСТОЯНИЕ И НЕСВОДИМОСТЬ?
  3. II. 12-24. Причина страданий преданных
  4. II. Ввод и редактирование данных
  5. L Перелом в стратегии Троцкого
  6. V Автоматизированная система обработки данных
  7. V. Форматирование данных

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

1. Ограничение целостности домена

2. Ограничение целостности атрибута

3. Ограничение целостности отношения

4. Ограничение целостности базы данных в целом

При проектировании базы данных «Учёт абонентов Интернет-провайдера» были использованы стратегии ограничения целостности домена и базы данных в целом.

Ограничение целостности домена определяется множеством значений, которое он образует. Другими словами, процесс создания домена – это реализация стратегии ограничение целостности домена. В процессе создания базы данных были описаны домены PACT_STATE, RATE_STATE, SERVICE_STATE, которые определяют значения полей STATE, STATE_R, STATE_S таблиц PACT, CON_RATE, CON_SERVICE соответственно. Каждый домен определен набором значений, которые могут принимать поля STATE, STATE_R, STATE_S. Запросы создания перечисленных доменов выглядят следующим образом (Листинг 3.1):

CREATE DOMAIN PACT_STATE

AS Char(10)

DEFAULT NULL

CHECK (VALUE = 'Действует' OR VALUE = 'Расторгнут');

 

CREATE DOMAIN RATE_STATE

AS Char(10)

DEFAULT NULL

CHECK (VALUE = 'Подключён' OR VALUE = 'Отключён');

 

CREATE DOMAIN SERVICE_STATE

AS Char(10)

DEFAULT NULL

CHECK (VALUE = 'Подключена' OR VALUE = 'Отключена');

Листинг 3.1 – Определение доменов

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

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

1. RESTRICT Стратегия, согласно которой налагается запрет на все изменения первичного ключа, если существуют ссылающиеся на него внешние ключи.

2. CASCADE − Воздействие операции с исходной строкой "каскадным" образом распространяется на все строки всех таблиц, где содержатся ссылки на данную строку.

3. SET NULL − В этом случае, чтобы разрешить изменение или удаление исходной таблицы и не нарушить ссылочную целостность, соответствующие значения внешних ключей заменяются значением NULL.

Рассмотрим сущности «Паспотрные данные» - «Абонент», «Абонент» - «Договор», «Договор» - «Подключенная услуга», «Договор» - «Проведенная техническая работа», «Договор» - «Подключенный тариф», «Оператор» - «Договор». Между данными сущностями для родительских сущностей INSERT:NONE, DELETE:CASCADE, UPDATE:CASCADE. Т.е при вставке кортежа в родительскую таблицу ссылочная целостность не нарушается, при попытке удалить или модифицировать данные, возникнет ошибка ссылочной целостности. Для дочерних сущностей стратегия целостности выглядит следующим образом: INSERT: RESTRICT, DELETE: NONE, UPDATE: RESTRICT. Таким образом, удаление кортежа из дочерней сущности не навредить ссылочной целостности, а при вставке и модификации она нарушится. Поэтому необходимо запретить вставку и модификацию значений полей внешних ключей.

Для сущностей «Техническая работа» - «Проведенная техническая работа», «Услуга» - «Подключенная услуга», «Тариф» «Подключенный тариф» были так же выбраны стратегии обеспечения целостности.

Для родительских сущностей INSERT: NONE, DELETE: SET NULL, UPDATE: SET NULL. При вставке кортежа не нарушается ссылочная целостность, при удалении и модификации кортежа все возникающие некорректные значения внешних ключей заменятся на null-значения, что не противоречит логическому и физическому уровню концептуальной схемы. Для дочерних сущностей схема ограничения ссылочной целостности представляется следующим образом: INSERT: SET NULL, DELETE: NONE, UPDATE: SET NULL. Из этого следует то, что удаление кортежей не нарушает ссылочную целостное. Если возникнет ошибочная ситуация при модификации и вставке кортежа, то значение внешних ключей будет установлено в NULL.


 


Дата добавления: 2015-07-10; просмотров: 132 | Нарушение авторских прав


Читайте в этой же книге: Описание предметной области | Количественный анализ модели процесса | Логический уровень концептуальной схемы | Физический уровень концептуальной схемы | Структура базы данных |
<== предыдущая страница | следующая страница ==>
Простые запросы| Стратегии безопасности базы данных

mybiblioteka.su - 2015-2024 год. (0.006 сек.)