Для множества функциональных зависимостей существует ряд закономерностей, которые выражаются теоремами. Знание теорем позволяет из исходного множества функциональных зависимостей получать производные зависимости.
Отметим ряд известных теорем о функциональных зависимостях. Атрибуты, фигурирующие в каждой теореме, должны находиться в одном и том же отношении.
Теорема 1
А,В -* А и А,В -> В.
Доказательство основано на том, что в строке <а,Ь> для атрибутов А и В значение а (как и значение Ь) присутствует один раз.
Теорема 2
А -> В и А ->С тогда и только тогда, когда А -> ВС.
Рассмотрим произвольное значение а атрибута А. Если А ->В и А -* С, то im В(а) и im C(a) содержат по одному элементу. Предположим, что зависимость А -> ВС неверна и ini ВС(а) состоит из 2 иди более элементов. Тогда либо im B(a), либо im C(a) должны содержать более одного элемента. Полученное противоречие доказывает зависимость А -> ВС.
Обратно, если А -> ВС, то im BC(a) содержит один элемент вида <Ь,с> для любого а. Зафиксируем некоторое значение al. Значение b (как и значение с) встречается в сочетании с д! только один раз, следовательно, справедливо А -> В и А ->С.
Теорема 3
Если А ->" В и В ->С, то А -> С.
Предположим, что зависимость А -> С неверна и множество im С(а) содержит более одного элемента. Каждому значению а соответствует единственное значение b (в силу А -> В), поэтому im C(b) содержит более одного элемента. Получилось противоречие с условием В -> С, что и доказывает теорему.
Примечательно, что доказательства остальных теорем опираются на первые 3 теоремы, а не доказываются от противного.
Теорема 4
Если А--» В, то АС -> В (С произвольно).
Доказательство
АС --> А (теорема 1), А -> В (условие), следовательно, АС -> В по теореме 3.
Теорема 5
Если А -> В, то АС -> ВС (С произвольно).
АС --» В (теорема 4), АС --» С (теорема 1), следовательно, АС->ВС по теореме 2.
Теорема 6
Если А ->В и ВС ->D, то АС -* D.
Из А -> В следует АС -> ВС (теорема 5). ВС -> D (условие), поэтому АС--> D по теореме 3.
Вторая и третья нормальные формы отношений
Отношение имеет вторую нормальную форму (2НФ), если оно соответствует 1НФ и не содержит неполных функциональных зависимостей.
Неполная функциональная зависимость - это две зависимости:
· вероятный ключ отношения функционально определяет некоторый неключевой атрибут,
· часть вероятного ключа функционально определяет этот же неключевой атрибут.
Отношение, не соответствующее 2НФ, характеризуется избыточностью хранимых данных.
Например:
Т4
Магазин
Изделие
Цена
План_1999_г.
Салют
М22
50
200
К14
40
100
АТЭ
300
Т62
60
Функциональные зависимости отношения Т4:
Избыточность иллюстрируется тем фактом, что цена изделия указывается столько раз, сколько магазинов продают это изделие (изделие М22 в Т4). Переход к 2НФ и соответственно устранение отмеченной избыточности данных связано с созданием двух отношений вместо исходного отношения Т4.
Т41
Т42
Отношение соответствует ЗНФ, если оно соответствует 2НФ и среди его атрибутов отсутствуют транзитивные функциональные зависимости (ФЗ).
Алгоритм получения отношений в ЗНФ обладает следующими свойствами:
· сохраняет все первоначальные функциональные зависимости, т.е. зависимость, справедливая в R, справедлива и в одном из производных отношений. Это гарантирует получение осмысленных отношений с легко интерпретируемой структурой;
· обеспечивает соединение без потерь, т.е. значения исходного отношения R могут быть восстановлены из проекций отношения R с помощью операции соединения;
· результат декомпозиции в ЗНФ обычно содержит меньше значений атрибутов, чем исходное отношение R (происходит уменьшение избыточности).
3. Разработать информационную систему для учета затрат на производство продукции
Данная задача необходима для планово-экономического отдела предприятия. Ее цель показать затраты на производство с учетом материальных и трудовых ресурсов. Результаты задачи показывают насколько выгодно для предприятия выполнение данного заказа изготовления продукции. Данные о необходимой информации поступают из следующих отделов участвующих в процессе обработки информации:
· финансовый;
· отдела материалов;
· комплектующий отдел;
· расчетный отдел;
· др.
Необходимость или периодичность выполнения данной задачи зависит от количества выполняемых заказов. Другими словами, она необходима при выполнении любого заказа, выполняемого на предприятии.
Приведенные входные данные имеют укрупненный вид.
Входные таблицы:
1. Сводная таблица учетов заказов.(Costs)
Наименование поля
Идентификация
Тип данных
Код записи (ключевое)
ID
Счетчик
Код заказа
KodZak
Текстовое
Дата
Data
Дата/Время
Затраты на материалы
Materials
Денежный
Затраты на всп. материалы
SumMaterials
Накладные расходы
Overheads
Полуфабрикаты/комплектующие
SemiProducts
2. Таблица учета работы над заказом специалистов (MainManufacture)
ID_costs
Числовое-целое
Код рабочего
WorkerID
Заработная плата
Zarpl
3. Таблица учета работы над заказом групп работников (SubManufacture)
ID_Costs
Количество работников
Kolvo
Средняя заработная плата
AvrZarpl
Страницы: 1, 2, 3