- Определение зависимости функции:
если есть шаблон (id, name), где id - основной код.
Тогда функциональная зависимость может быть записана как id-> name - Удовлетворение условию функциональной зависимости (a-> b)
Для всех пар кортежей t1 и t2 в данном случае, если t1 [a] = t2 [a], то t1 [b] = t2 [b] - Преимущества функциональных зависимостей
могут представлять ограничения, которые не могут быть выражены в суперкоде.
Например, stu (id, имя, пол, квартира), где id - это основной код, при условии, что есть только две квартиры (мужчины и женщины).
Затем устанавливается секс-> квартира, потому что мальчики могут жить только в общежитии для мальчиков. Таким образом, пол может сдерживать жилые дома - Обыкновенная функциональная зависимость
Если a содержит b, то функциональная зависимость a-> b называется обычной - Аксиома Армстронга
- Закон рефлексивности: если a является набором атрибутов и a содержит b, то a-> b
- Дополнительный закон: если a-> b и r является набором атрибутов, то ar-> br
- Закон переноса: если a-> b, b-> c, то выполняется a-> c
- вывод
- Закон слияния: если a-> b, a-> c, то a-> bc
- Закон разложения: если a-> bc, то a-> b, a-> c
- Закон псевдопереноса: если a-> b, bc-> r, то ac-> r
Простой пример
A | В | С | D |
---|---|---|---|
a1 | b1 | c1 | D1 |
a1 | Би 2 | c1 | d2 |
a2 | Би 2 | c2 | d2 |
a2 | b3 | c2 | d3 |
a3 | b3 | c2 | d4 |
Можно сказать, что A-> C (для a3 и c2, поскольку нет другого набора A, значение которого равно a3, a3 может однозначно определить c2)
C-> A не выполняется.
AB-> C, AB-> D установлено