![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Можно убедиться, что все отношения в рассматриваемой модели имеют только один потенциальный ключ, поэтому в качестве первичных ключей для каждого отношения выберем единственный имеющийся потенциальный ключ. При этом все первичные ключи получились достаточно простыми. Приведём их в виде таблицы:
Отношение | Первичный ключ |
Credits | {ID, debitorID } |
Debitors | {ID} |
Payment | {ID} |
User | {ID} |
Нормализация отношений.
Для ликвидации противоречий в отношениях необходимо провести их нормализацию.
НФ.
Все отношения уже находятся в 1НФ, так как значения всех их атрибутов атомарны, т.е. каждый его кортеж содержит только одно значение для каждого из атрибутов.
НФ.
Отношения “Пользователи”, “Дебиторы” и “Оплаты” имеют единственные и простые потенциальные ключи, поэтому уже находятся в 2НФ.
Рассмотрим отношение “Кредиты”. Обозначим его R1.Оно имеет множество атрибутов A = { ID, Дебитор, Баланс, Дата, Сумма} и неприводимое множество функциональных зависимостей
S = {
{id}->{Сумма},
{id}->{Дата},
{Дебитор}->{Баланс}
}.
Потенциальным ключом в этом отношении является множество K = {ID, Дебитор}.
Это отношение не находится в 2НФ, так как атрибуты “ID” и “Дебитор” приводимо зависят от потенциального ключа (т.е. зависят от части ключа).
Проведём нормализацию этого отношения до 2НФ.
Для этого выполним декомпозицию этого отношения и разобьём его на две проекции. В первую проекцию включим все атрибуты, входящие в потенциальный ключ, а также неключевые атрибуты, которые неприводимо зависят от потенциального ключа. Во вторую проекцию включим все неключевые атрибуты, которые приводимо зависят от потенциального ключа, вместе с теми атрибутами, принадлежащими потенциальному ключу, от которых эти неключевые атрибуты зависят приводимо.
R1’ = {
ID,
Дебитор,
Баланс
}
Потенциальным ключом отношении R1’ является множество атрибутов {ID, cinema}.
R1’’ = {
ID,
Сумма,
Дата
}
Потенциальным ключом отношении R1’’ является множество атрибутов {ID}.
Таким образом, исходное отношение “Кредиты” было разбито на отношения R1’ и R1’’, которые находятся в 2НФ, причём нетрудно убедиться, что естественное объединение R1’ и R1’’ даст отношение “Кредиты”.
3НФ
Отношения “Пользователи”, “Дебиторы”, а также отношения R1’ и R1’’, на которые было разбито отношение “Кредиты”, находятся в 2НФ, так как не имеют неключевых атрибутов, которые транзитивно зависят от первичного ключа.
Рассмотрим отношение “Оплаты”. Обозначим его R2. Оно имеет множество атрибутов
A = {ID, Кредитный счет, Сумма, Дата} и неприводимое множество функциональных зависимостей
S = {
{ID} -> { Кредитный счет },
{ID} -> { Дата },
{ Дата } -> { Сумма }
}.
Потенциальным ключом в этом отношении является множество атрибутов K = {ID}.
Это отношение не находится в 3НФ, так как по правилу транзитивности
{ID} -> { Кредитный счет, Дата } ʌ { Дата } -> {Сумма} =>
=> {ID} -> { Сумма },
т.е. атрибуты “ Сумма ” транзитивно зависит от потенциального ключа.
Проведём нормализацию этого отношения до 3НФ.
Для этого выполним декомпозицию этого отношения и разобьём его на две проекции. В первую проекцию включим все атрибуты, входящие в потенциальный ключ. Во вторую проекцию включим неключевые атрибуты, которые нетранзитивно зависят от ключа и через которые осуществляется транзитивная зависимость, в качестве нового потенциального ключа, а также транзитивно зависящий от ключа отношения R2 атрибут.
R2’ = { ID,
Дата,
Кредитный счет
}
Потенциальным ключом отношении R2’ является множество атрибутов {ID}.
R2’’ = {
Дата,
Сумма
}
Потенциальным ключом отношении R2’’ является множество атрибутов {Дата}.
Таким образом, исходное отношение “Оплаты” было разбито на отношения R2’ и R2’’, которые находятся в 3НФ, причём нетрудно убедиться, что естественное объединение R2’ и R2’’ даст отношение “Оплаты”.
В результате, все отношения являются нормализованными до 3НФ. Для тех отношений, которые были разбиты на несколько проекций, зададим новые имена:
R1’ − “Баланс дебитора”,
R1’’ − “Сумма кредита”,
R2’ − “Дата кредитной операции”,
R2’’ − “Сумма оплаты в данном месяце”
Дата публикования: 2014-11-28; Прочитано: 200 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!