Читайте также:
|
|
Процесс разбиения отношения с целью уменьшения вероятности возникновения аномалий называется декомпозицией. Для разбиения исходного отношения на ряд новых отношений, называемых проекциями отношения, используется соответствующая операция реляционной алгебры. Полная декомпозиция отношения - это совокупность произвольного числа его проекций, естественное соединение которых идентично этому отношению.
Ключевой для осуществления декомпозиции является концепция функциональных зависимостей между атрибутами в рассматриваемом отношении [7]. Функциональная зависимость (ФЗ) определяется следующим образом: если даны два атрибута А и В, то говорят, что В функционально зависит от А, если для каждого значения А в любой момент времени существует ровно одно связанное с ним значение В. А и В могут быть составными, т.е. они могут представлять собой не единичные атрибуты, а группы, состоящие из двух и более атрибутов.
Смысл данного определения состоит в том, что если В функционально зависит от А, то каждый из кортежей, имеющих одно и то же значение А, должен иметь также одно и то же значение В. Значения А и В могут изменяться время от времени, но при этом они должны изменяться так, чтобы каждое уникальное значение А имело только одно значение В, связанное с ним.
Два наиболее часто используемых способа нотации для описания ФЗ показаны на рис.1.4.
Рис.1.4. Способы описания ФЗ:
а - математический; б -графический
В конкретной ситуации ФЗ определяется путем анализа смысловых (семантических) свойств всех атрибутов в отношении и посредством вывода заключения о том, как атрибуты соотносятся между собой, т.е. ФЗ необходимо получить исходя из базовых свойств самих атрибутов.
В качестве примера обратимся к атрибутам в универсальном отношении Zgrad (см. табл.1.1) и посмотрим, как эти атрибуты связаны между собой. После изучения семантики атрибутов выявлены существующие зависимости, приведенные на рис.1.5.
Рис.1.5. Различные способы представления ФЗ,
существующих между атрибутами отношения Zgrad
Соображения, объясняющие наличие этих ФЗ, таковы:
1) номера жителей являются уникальными. Каждому жителю назначается номер Nom, причем вce номера различны. Таким образом, если известен номер жителя, то с ним может быть связана только одна фамилия, имя и отчество FIO: Nom®FIO. Обратное не является верным: FIO®Nom не является правильной ФЗ, поскольку несколько жителей могут иметь одинаковые фамилию, имя и отчество;
2) аналогичные рассуждения относятся и атрибутам Rdate, Pol и SumD. Следовательно, если известен номер жителя, то с ним может быть связана только одна дата рождения, один пол и один общий доход: Nom®Rdate, Nom®Pol, Nom®SumD. Обратное не является верным: Rdate®Nom, Pole®Nom, SumD®Nom не являются правильными ФЗ, поскольку несколько жителей могут иметь одинаковые даты рождения, пол и общий доход;
3) каждый житель зарегистрирован в одной квартире, но в одной квартире может проживать более чем один житель. Следовательно, Nom®Adr является верной ФЗ, а Adr®Nom - нет;
4) поскольку для каждой квартиры будет учитываться не более одного телефона, то по адресу квартиры однозначно определяется номер телефона или его отсутствие: Adr®Ntel. Обратное, т.е. Ntel®Adr, не является верным, поскольку не во всех квартирах есть телефоны, и при отсутствии телефона адрес квартиры не определить;
5) зная номер жителя, можно определить номер телефона или его отсутствие в квартире, занимаемой жителем: Nom®Ntel;
6) размер источника дохода Money, имеющегося у жителя, однозначно определяется только в том случае, если известен номер жителя Nom, имеющего источник дохода Source: Nom,Source®Money. Эта ФЗ представляет собой пример сложного набора атрибутов (Nom,Source), входящего в ФЗ.
Дата добавления: 2015-07-20; просмотров: 74 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Нормализация | | | Нормальные формы отношений |