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

Реляционные ключи

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

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

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

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

Кортежи могут добавляться, удаляться или модифицироваться. Тем не менее, предполагается, что сама схема отношения постоянная во времени.

Пример

Пусть рассматривается концептуальная модель, которая содержит две сущности: ЛЕКТОР и ПРЕДМЕТ, между которыми установлена связь ЧИТАЕТ типа "многие ко многим". Характеристики сущностей представлены изображенными на рисунке атрибутами. Связь ЧИТАЕТ не имеет собственных атрибутов. Для преобразования концептуальной модели в реляционную модель разработан ряд технологий, знакомство с которыми состоится несколько позже.

Приведем реляционную схему, соответствующую указанной концептуальной модели. Она включает в себя три отношения: ЛЕКТОР, ПРЕДМЕТ, ЧИТАЕТ

Целостность БД

Для обновления отношений необходимо иметь возможность выполнять следующие операции;

􀂃 добавление кортежа;

􀂃 удаление кортежа;

􀂃 изменение кортежа.

Целостность данных обеспечивает достоверность и непротиворечивость данных, хранящихся в отношениях.

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

Существует категорная целостность и целостность на уровне ссылок.

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

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

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

 

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

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

Вот характерный пример отношения содержащего нежелательную избыточность:

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

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

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

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

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

 

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

В приведенном выше отношении аномалии включения возникают при попытке создать новую группу и ввести ее в отношение при том условии, что в нее еще не зачислен ни один студент. Ввод такой информации в подобной ситуации требует присвоения значения NULL всем атрибутам описания студента, в том числе и атрибуту Ном_зач_кн, который является первичным ключом данного отношения.

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

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

Структура отношений, содержащая ту же информацию, что и отношение СТУДЕНТ, но лишенная аномалий включения,

 

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

Вернемся к анализу отношения СТУДЕНТ. При удалении из этого отношения кортежа:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: