Опубликован: 24.12.2013 | Уровень: для всех | Доступ: платный | ВУЗ: Кубанский государственный университет
Лекция 5:

Нормализация

5.3 Аномалии

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

Рассмотрим пример неполного соответствия ограничений целостности концептуальной и логической моделей. Пусть в концептуальной модели имеются данные, которые должны пониматься в четырехзначной логике со значениями истинности "ИСТИННО", "ЛОЖНО", "НЕ ОПРЕДЕЛЕНО" и "НЕ ЗНАЮ". Отображение этих данных в логическую модель сводится к представлению их в трехзначной логике. Два последних значения истинности при этом объединятся в одно. Как бы оно не интерпретировалось, значения "НЕ ОПРЕДЕЛЕНО" и "НЕ ЗНАЮ" окажутся неразделимыми. И тогда тонкая интерпретация ряда запросов окажется невозможной. Как, например, понять результат вычисления среднего дохода группы лиц, у которых в рамках концептуальной схемы атрибут "доход" может быть помечен метками "НЕ ИЗВЕСТЕН" и "НЕ УЧИТЫВАТЬ"? А вот вставке, удалению и обновлению записей здесь ничто не мешает.

Более точно, аномалии - это противоречия между концептуальной и логической схемами базы. Для их выявления следует рассматривать и прямое и обратное отображения между схемами. Аномалия может пониматься еще как несоответствие бизнес-правил правилам работы в модели, логической или, может быть, физической. В "Семантика баз данных" будет предложен более общий подход, основанный на анализе смыслов данных.

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

Аномалии, проявляющиеся при удалении и обновлении записей, рассмотрим на примере отношения, содержащего записи о сотрудниках некоторой организации и их непосредственных начальниках (таблица 5.1). ТН - табельный номер работника, ФИО - его фамилия, имя и отчество, ТНН - табельный номер его непосредственного начальника.

Таблица 5.1. Задание структуры организации
ТН ФИО ТНН
1 Карпов К.К. NULL
2 Иванов И.И. 3
3 Петров П.П. 1
4 Сидоров С.С. 1

В концептуальной модели, по которой создавались отношения, записан набор ограничений целостности:

  • структура организации имеет вид дерева;
  • имеется единственный сотрудник не имеющий начальника;
  • значения атрибутов ТН и ТНН в одной записи не совпадают.

В логической модели записать первое ограничение невозможно. Нет в ней понятия "дерево". Ничто не мешает, например, удалению записи о Петрове, превращающему дерево в лес. Имеем аномалию по удалению. Аномалия по обновлению наблюдается при переподчинении Петрова Иванову. Ничто не мешает изменить в третьей строке значения атрибута ТНН с 1 на 2, но в графе образуется цикл.

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

Таблица 5.2. Размещение сотрудников
НОМЕР КОМНАТЫ ФИО ТЕЛЕФОН
129 Карпов К.К. 1-29
129 Иванов И.И. 1-29
230 Петров П.П. 2-30

Ограничения концептуальной модели:

  • в одной комнате установлен единственный внутренний телефон;
  • в одной комнате могут размещаться от одного до трех сотрудников.

Попытка вставить запись (230, "Сидоров С.С", "2-31") удается, но первое ограничение целостности будет нарушено. Вам пример не кажется странным? Вроде бы номер телефона можно вычислить по номеру комнаты. Строку с номером телефона образуем так: берем первую цифру номера телефона, за ней записываем дефис, а в конце - оставшиеся две цифры номера комнаты. Все верно, только в реляционной модели значения атрибутов атомарные и описанное преобразование просто не допустимо.

Все сказанное в этом разделе может быть полностью перенесено на любые модели данных.

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

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

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

Alexander Vizelka
Alexander Vizelka
Россия
Всеволод Трофименко
Всеволод Трофименко
Россия