Избыточность данных и аномалии обновления в БД 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Избыточность данных и аномалии обновления в БД



Избыточность данных в БД относится к нежелательным явлениям,

поскольку ведет к увеличению объема памяти, необходимого для

физического хранения отношений. Избыточность вызывается, прежде

всего, дублированием данных.

В данном отношении с первичным ключом Ном_зач_кн в каждом

кортеже о каждом студенте из одной и той же группы повторяются

сведения о коде группы, старосте и кураторе.

При работе с отношениями, содержащими избыточные данные,

могут возникнуть проблемы, которые называются аномалиями

обновления.

Различают три вида аномалий в базе данных:

􀂃 аномалии включения;

􀂃 аномалии удаления;

􀂃 аномалии модификации.

Аномалии включения

В приведенном выше отношении аномалии включения возникают

при попытке создать новую группу и ввести ее в отношение при том

условии, что в нее еще не зачислен ни один студент. Ввод такой

информации в подобной ситуации требует присвоения значения NULL

всем атрибутам описания студента, в том числе и атрибуту Ном_зач_кн,

который является первичным ключом данного отношения. Но реализация

такой попытки приведет к нарушению категорней целостности, а значит,

система ее обязана отклонить.

Результатом анализа является вывод о том, что в отношении табл. 6.1

присутствуют аномалии включения, а, следовательно, это отношение

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

Аномалии удаления

Вернемся к анализу отношения, представленного в табл. 6.1. При

удалении из этого отношения кортежа:

20-Т-215 Петров Я.P. 20-T-12 Сизов М.М. Доц. Докин С.С.

из базы данных будут удалены все сведения о группе 20-Т-12. Такая

ситуация представляет собой аномалию удаления.

Для исключения из базы данных аномалии удаления это отношение

должно быть преобразовано. Причем преобразования должны быть

проведены точно такие же, какие были проведены для исключения

аномалии включения.

Аномалии модификации

Такая аномалия возникает при попытке изменить что-либо

касающееся сведений о группе обучения студента. Допустим, что в группе

20-Т-11 решили назначить нового старосту, например, Сенову А.Л.

В такой ситуации необходимо просмотреть все кортежи отношения и

в каждом кортеже значение атрибута ФИО_старосты заменить Рябов В.С.

на Сенова А.Л.

Появление аномалии модификации можно заблокировать, если опять

же прибегнуть к преобразованию отношения из табл. 6.1. Эти

преобразования точно такие же, которые были использованы для

исключения аномалий включения и удаления. Действительно, смена

старосты группы требует изменения значения атрибута ФИО_старосты

только в одном кортеже отношения табл. 6.3.

Проблема обратимости

Чтобы исключить различного рода аномалии из отношения, его

подвергают процессу декомпозиции. При решении задачи декомпозиции

возникают две проблемы.

Первая проблема — это проблема обратимости, заключающаяся в

возможности восстановления исходной схемы, а именно —

восстановления любого кортежа исходного отношения, используя кортежи

полученных в результате декомпозиции отношений. Декомпозиция,

удовлетворяющая этому требованию, называется декомпозицией,

гарантирующей отсутствие потерь.

Вторая проблема связана с сохранением зависимостей. Следует

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

определение ограничений, накладываемых на ее отношения. В процессе

декомпозиции получаются новые отношения и ограничения, которые

приписываются им, должны быть такими, чтобы были сохранены

исходные ограничения.

Все сказанное означает, что проводимая декомпозиция должна

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

нужна декомпозиция, гарантирующая отсутствие потерь и сохранение

зависимостей.

Нормализация отношений

Для устранения рассмотренных выше недостатков и применяется

процесс нормализация отношений. Данный процесс — это формальный

метод анализа отношений на основе их первичных или потенциальных

ключей и существующих функциональных зависимостей. Он включает ряд

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

данных. Различают:

􀂃 1НФ — первую нормальную форму;

􀂃 2НФ — вторую нормальную форму;

􀂃 ЗНФ — третью нормальную форму;

􀂃 НФБК — нормальную форму Бойса — Кодда;

􀂃 4НФ — четвертую нормальную форму;

􀂃 5НФ — пятую нормальную форму.

Каждая нормальная форма налагает определенные ограничения на

данные. Эти ограничения вводятся в каждом конкретном отношении, и

соблюдение этих ограничений в отношении связано уже с наличием

нормальной формы.

􀂃 1НФ, 2НФ, ЗНФ— ограничивают зависимость непервичных

атрибутов от ключей.

􀂃 НФБК — ограничивает зависимость первичных атрибутов.

􀂃 4НФ — формулирует ограничения на виды многозначных

зависимостей.

􀂃 5НФ — вводит другие типы зависимостей: зависимости соединений.

Процесс перехода от нормальной формы более низкого уровня к

нормальной форме более высокого уровня и называется нормализацией

отношений (НО).

Для реляционных баз данных необходимо, чтобы все отношения

базы данных обязательно находились в 1НФ. Нормальные формы более

высокого порядка могут использоваться разработчиками по своему

усмотрению. Однако следует стремиться к тому, чтобы довести уровень

нормализации базы данных хотя бы до ЗНФ, тем самым, исключив из базы

данных избыточность данных и аномалии обновления.

Функциональные зависимости

Функциональная зависимость определяется для атрибутов,

находящихся в одном и том же отношении в 1НФ. Функциональная

зависимость является семантическим свойством атрибутов отношения.

Пусть дана схема отношения R(А1, А2,...., Аn).

Атрибут А2 функционально зависит от атрибута А1 если каждому

значению А1 соответствует единственное значение А2 (т. е. каждый

кортеж, имеющий одно и то же значение А1, должен иметь одно и то же

значение А2)

Обозначается подобная ситуация так: А1 → А2. Левая часть

функциональной зависимости называется детерминантом, а правая часть

— зависимой частью. Отсутствие функциональной зависимости

обозначается А -/→ В.

Рассмотренная выше функциональная зависимость — это F-

зависимость.

Дадим более общее формальное определение функциональных

зависимостей.

Пусть r-отношение со схемой R, а X, Y— подмножества R.

Отношение r удовлетворяет функциональной зависимости X → Y, если для

любых двух кортежей t1 и t2 в r t1(X) = t2(X), то t1(Y) = t2(Y).

Аксиомы вывода

Для отношения r(R) в любой момент существует некоторое

семейство F-зависимостей, которым это отношение удовлетворяет. Причем

одно состояние отношения может удовлетворять F-зависимости, а другое

— нет. Требуется выявить семейство F-зависимостей F, которому

удовлетворяют все допустимые состояния r.

Множество функциональных зависимостей, применимых к

отношению r(R), конечно, так как существует только конечное число

подмножеств множества R. Таким образом, можно найти все F-

зависимости, которым удовлетворяет r, перебрав все возможные. Время

поиска можно сократить в том случае, если известны некоторые F-

зависимости из F. В подобной ситуации сокращение времени поиска

происходит часто из-за того, что остальные F-зависимости можно

получить, использую аксиомы вывода.

Аксиома вывода — это правило, устанавливающее, что если

отношение удовлетворяет определенным F-зависимостям, то оно должно

удовлетворять к некоторым другим F-зависимостям.

Ниже приведены шесть аксиом вывода для F-зависимостей. В их

формулировках используется обозначение r для отношения на R, и W, X,

У, Z для подмножеств R.

Запишем кратко все аксиомы.

􀂃 F1. Рефлексивность: X → X.

􀂃 F2. Пополнение: Х → Y влечет за собой XZ → Y.

􀂃 F3. Аддитивность: Х → Y и Х → Z влечет за собой Х → YZ.

􀂃 F4. Проективность: Х → YZ влечет за собой Х → Y.

􀂃 F5-Транзитивность: Х → Y и Y → Z влечет за собой Х → Z.

􀂃 F6. Псевдотранзитивность: Х → Y и YZ → W влечет за собой ХZ →

W.

Первая нормальная форма

Отношение находится в первой нормальной форме, если все его

атрибуты имеют простые (атомарные) значения. Другими словами,

значения в домене каждого атрибута отношения не являются ни списками,

ни множествами простых или сложных значений.

Определить понятия атомарности трудно. Значение, атомарное в

одном приложении, может быть неатомарным в другом. Можно

руководствоваться общим принципом, что значение не атомарно, если в

приложении оно используется по частям.

Если значение атрибута Дата рождения предполагается

использовать целиком, то в этом случае данное отношение находится в

1НФ. Если бы потребовалось выделить и отдельно использовать, скажем,

год, число, месяц, то это отношение не находилось бы в 1НФ, так как

требуемые данные являются только частями значения атрибута Дата

рождения. Чтобы перевести такое отношение в 1НФ, атрибут Дата

рождения должен быть разбит на части

Вторая нормальная форма

Вторая и третья нормальные формы возникли в результате

стремления избежать аномалий обновления данных при работе с БД и

избавиться от информационной избыточности в отношениях.

Вторая нормальная форма применяется к отношениям с составными

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

двух или более атрибутов. Отношение, у которого первичный ключ

включает только один атрибут, всегда находится во 2НФ.

Дадим определения новых понятий.

Определение 1. Атрибут называется посторонним для

функциональной зависимости Х → Y, если он может быть удален из

правой или левой части функциональной зависимости без изменений

транзитивного замыкания F+ множества F.

Определение 2. Функциональная зависимость Х → Y называется

редуцированной слева, если X не содержит атрибута Z, постороннего для

функциональной зависимости Х → Y. Если функциональная зависимость

Х → Y редуцирована слева, то Y является полностью зависящим oт X. В

противном случае Y частично зависит от X.

Определение 3. Для данной схемы отношения R атрибут А в R и

множество функциональных зависимостей F на R атрибут А называется

первичным в R относительно F, если А содержится в каком-нибудь ключе

схемы R. В противном случае А называется непервичным в R.

Итак, схема отношения R находится во 2НФ относительно F, если

она находится в 1НФ, и каждый непервичный атрибут функционально

полно зависит от первичного ключа.

Схема всей БД имеет 2НФ относительно F, если каждая ее схема

отношения находится относительно F во 2НФ.

Рассмотрим отношение КОНСУЛЬТАЦИИ_ДИПЛОМНИКОВ со

схемой:

(Таб_Ном_преп, Ном_зач_кн, Дата, ФИО_преп, Должность,

ФИО_студ, Тема_диплома, Время, Аудитория, Вместимость).

Это отношение содержит информацию о том, какой преподаватель

консультирует определенного дипломника, а также дату, время

консультации и аудиторию с ее вместимостью, где она должна

проводиться. Обозначим основные зависимости этого отношения.

(Таб_Ном_преп, Ном_зач_кн, Дата)(ФИО_преп, Должность,

ФИО_студ, Тема_липлома, Время, Аудитория, Вместимость).

Описательные атрибуты преподавателя ФИО_преп, Должность

зависят только от части первичного ключа. Данную ситуацию определяет

зависимость:

Таб-Ном_преп(ФИО_преп, Должность).

Описательные атрибуты студента ФИО_студ, Тема_диплома также

зависят только от части первичного ключа и не зависят от остальных

атрибутов ключа, то есть имеется зависимость вида:

Ном_зач_кн(ФИО_студ. Тема_диплома).

Отсутствие полной функциональной зависимости каждого

непервичного атрибута отношения от первичного ключа, как и в других

рассмотренных здесь примерах, является источником аномалий

обновления и вносит свою долю избыточности в базу данных. Устранение

данных отрицательных явлений осуществляется путем декомпозиции

исходного отношения на три со следующими схемами:

ПРЕПОДАВАТЕЛЬ (Таб_Ном_преп, ФИО_преп, Должность);

СТУДЕНТ (Ном_зач_кн, ФИО_студ, Тема_диплома);

КОНСУЛЬТАЦИИ (Таб_Ном_преп, Ном_зач_кн, Дата, Время,

Аудитория, Вместимость).

Третья нормальная форма

Рассмотрим транзитивную зависимость следующего типа: если А →

В, В -/→ А (В не является ключом), В → С, то А → С.

В этом случае считается, что С транзитивно зависит от А.

Транзитивная зависимость вызвана наличием в отношении двух

семантических зависимостей различных типов.

Схема отношения находится в третьей нормальной форме

относительно множества функциональных зависимостей F, если она

находится в 1НФ и ни один из непервичных атрибутов в R не является

транзитивно зависимым от ключа для R.

Схема всей БД находится в ЗНФ относительно F, если каждая схема

отношения находится в ЗНФ относительно F.

Рассмотрим схему базы данных примера предыдущего раздела.

ПРЕПОДАВАТЕЛЬ (Таб_Ном_преп, ФИО_преп, Должность);

СТУДЕНТ (Ном_зач_кн, ФИО_студ, Тема_диплома);

КОНСУЛЬТАЦИИ (Таб_Ном_преп, Ном_зач_кн, Дата, Время,

Аудитория, Вместимость).

Последнее отношение содержит транзитивную зависимость:

(Таб_Ном_преп, Ном_зач_кн, Дата)Аудитория

Вместимость.

Следовательно, это отношение не находится в ЗНФ со всеми

вытекающими из этого последствиями, и прежде всего следующими:

􀂃 если аудитория исключается из расписания консультаций, то о ней

вообще теряются сведения;

􀂃 если аудитория перестроена и в результате изменилась ее

вместимость, то придется просмотреть все кортежи и провести

модификацию значений атрибута.

Для устранения транзитивной зависимости необходимо провести

декомпозицию последнего отношения, удалив из него транзитивно-

зависимый атрибут и поместив его в новое отношение вместе с копией

того атрибута, от которого он зависит.

Таким образом, база данных этого примера, лишенная транзитивных

зависимостей, в ЗНФ будет выглядеть так:

ПРЕПОДАВАТЕЛЬ (Таб_Ном_преп, ФИО_преп, Должность);

СТУДЕНТ Ном_зач_кн, ФИО_студ, Тема_диплома);

КОНСУЛЬТАЦИИ (Таб_Ном_преп, Ном_зач_кн, Дата, Время,

Аудитория);



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 1767; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.239.119.159 (0.104 с.)