Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ИСЭ_(сборка).doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1 Мб
Скачать
☆

2.2.3. Функциональные зависимости между данными (f-зависимости и их свойства)

Другие ограничения на схему БД связаны с таким понятием как функциональные зависимости. Функциональные зависимости определяются для атрибутов, находящихся в одном и том же отношении, удовлетворяющем 1НФ.

Функциональная зависимость может охватывать несколько атрибутов, в простейшем случае зависимость связывает два атрибута. В отношении r со схемой R(А, В,…) атрибут А функционально определяет атрибут В, если в любой момент времени каждому значению А соответствует единственное значение В (обозначается А→В). Иначе говоря В функционально зависит от А т.е. В = f(А) (слд. 32 с ЭФ).

В рассматриваемом примере (кнопка ПЕРЕВОЗКИ), между атрибутами «ГН» и «М_АМ» (рис.3),

М_АМ

ГН

МАЗ

А567УК

ГАЗ-53

В354УО

КАМАЗ

Д129УК

МАЗ

А567УК

КАМАЗ

С311УО

КАМАЗ

Д129УК

МАЗ

Х711УК

Рис. 3.

существует функциональная зависимость «ГН» → «М_АМ». В тоже время «М_АМ» −/→ «ГН».

Наличие функциональных зависимостей порождает понятие КЛЮЧА (слд. 33 с ЭФ).

КЛЮЧ отношения r со схемой R является подмножеством атрибутов K из множества атрибутов {A1, A2,... Аi ... An} входящих в R.

Подмножество K обладает следующим свойством. В отношении r не существует двух различных кортежей t1 и t2, таких, что t1(K) = t2(K).

Другими словами, не существует двух строк, имеющих одинаковые значения на всех атрибутах из K. Это можно записать как t1(K)t2(K). Такой ключ называют первичным. Атрибуты, входящие в подмножество K называют ключевыми полями. Чаще всего ключ отношения состоит из одного атрибута (поля). Такой ключ является простым. Когда ключ состоит из нескольких атрибутов, его называют составным.

В рассматриваемом примере (кнопка ПЕРЕВОЗКИ), в качестве ключевого можно использовать поле с именем "Nр" (номер рейса).

Т.о., достаточно знать значение ключевого поля, чтобы однозначно определить значения всех атрибутов для данного объекта.

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

Рассмотренный выше пример (рис.3) функциональной зависимости не порождает первичного ключа для таблицы «перевозки». Рейсы №1 и №5 выполнены в разные пункты назначения с разным весом груза. Поэтому f-зависимость «Гос_номер»→«Марка_АМ» в таблице «перевозки» будет называться неполной.

Наличие неполных функциональных зависимостей порождает такие нежелательные свойства БД, как аномалии обновления данных и избыточность данных. Аномалии обновления связаны с тем, что при определенных условиях f-зависимость м.б. нарушена.

Избыточность БД будет рассмотрена ниже.

Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и не содержит неполных функциональных зависимостей.

Следовательно, для приведения БД ко 2НФ, необходимо описание атрибутов входящих в неполные функциональные зависимости выделить в отдельные таблицы.