Опубликован: 02.08.2007 | Доступ: свободный | Студентов: 3892 / 754 | Оценка: 4.55 / 4.39 | Длительность: 27:09:00
ISBN: 978-5-9556-0111-3
Лекция 5:

Функциональные зависимости и реляционные базы данных

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >

Рассмотрим схему отношения R (город, адрес, почтовый_индекс). В этом случае существуют следующие нетривиальные, т.е. имеющие смысл в контексте предметной области, ФЗ город, адрес -> почтовый_индекс (полный адрес определяет почтовый индекс) и почтовый_индекс -> город (почтовый индекс определяет город, но не адрес). Легко убедиться, что оба множества атрибутов {город, адрес} и {адрес, почтовый_индекс} являются ключами отношения. Какой из них выбрать, решает проектировщик базы данных.

Для того чтобы определить ключи отношений и логические следствия ФЗ для заданной схемы отношения, необходимо вычислить F+ или для заданного F уметь определять, принадлежит ли данная ФЗ его замыканию F+. Для этого необходимо иметь набор правил - операций над ФЗ, позволяющих ими манипулировать.

Набор правил вывода должен быть полным, т.е. давать возможность вывести все зависимости из F+, и надежным, т.е. не позволять вывести зависимость из F, не принадлежащую F+. Таким образом, правила вывода, называемые также аксиомами вывода функциональных зависимостей, должны позволять вывести множество функциональных зависимостей, присущих рассматриваемой схеме отношения R(A1, A2, ..., Am) на заданном универсальном множестве атрибутов U по заданному множеству ФЗ F = {F1, F2, ..., Fk}.

Далее представлены восемь аксиом вывода функциональных зависимостей.

  1. Рефлексивность. Если X \subseteq  U, Y \subseteq U, Y \subseteq  X, то ФЗ X \to Y следует из F. Иначе X, X \to X.
  2. Пополнение. Если X \subseteq  U, Y \subseteq  U, Z \subseteq  U и задана ФЗ X \to Y из F, то имеет место ФЗ X \cup Z \to Y \cup Z.
  3. Транзитивность. Если X \subseteq  U, Y \subseteq  U, Z \subseteq  U и задана ФЗ X \to Y, Y \to Z из F , то имеет место ФЗ X \to Z.
  4. Расширение. Если X \subseteq U, Y \subseteq  U и задана ФЗ X \to Y, то \forell Z \subseteq  U имеет место ФЗ X \cup Z \to Y.
  5. Продолжение. Если X \subseteq U, Y \subseteq U, W \subseteq U, Z \subseteq U, и задана ФЗ X \to Y, то \forall W \subseteq U имеет место ФЗ X \cup Z \to Y \cup W.
  6. Псевдотранзитивность. Если X \subseteq U, Y \subseteq U, W \subseteq U, Z \subseteq U, и заданы ФЗ X \to Y и ФЗ Y \cup W \to Z, то имеет место ФЗ X \cup W \to Z.
  7. Аддитивность. Если X \subseteq U, Y \subseteq U, Z \subseteq U, и заданы ФЗ X \to Y и ФЗ X \to Z, то имеет место ФЗ X \to Y \cup Z.
  8. Декомпозиция. Если X \subseteq U, Y \subseteq U, Z \subseteq U \text{ и } Z \subseteq  Y, и задана ФЗ X \to Y, то имеет мето ФЗ X \to Z.

Пример. Определение ключа отношения с помощью правил вывода

Используя три первых аксиомы вывода, покажем, что пара атрибутов {адрес, почтовый_индекс} из примера выше являются ключом отношения (город, адрес, почтовый_индекс), иначе имеет место ФЗ адрес, почтовый_индекс -> город, адрес, почтовый_индекс. Задана ФЗ: почтовый_индекс -> город. Используя аксиому пополнения, пополним эту ФЗ атрибутом адрес, получаем адрес, почтовый_индекс -> город, адрес. Задана ФЗ город, адрес -> почтовый_индекс. Используя аксиому пополнения, пополнив эту ФЗ атрибутами город, адрес, получим город, адрес -> город, адрес, почтовый_индекс. Тогда по аксиоме транзитивности получаем адрес, почтовый_индекс -> город, адрес, почтовый_индекс.

Можно доказать утверждение о том, что настоящие правила вывода позволяют по заданному множеству ФЗ F построить все зависимости, допускаемые на U. Таким образом, система правил вывода ФЗ 1-6 является надежной и полной.

Покажем, как можно доказать утверждение о полноте и надежности аксиом вывода. Аксиомы 1, 2 и 3 составляют независимое подмножество среди всех шести аксиом и называются аксиомами Армстронга. Из них можно вывести все остальные аксиомы. Поэтому надежность и полноту достаточно установить только для первых трех аксиом.

Надежность аксиом заключается в том, что если ФЗ Х \to Y выведена из F с помощью этих аксиом, то она справедлива на любом отношении, на котором справедливы ФЗ из F. Аксиома рефлексивности является надежной, так как нельзя иметь отношение R с двумя кортежами, которые совпадают по Х, но не совпадают по некоторому его подмножеству. Для доказательства аксиомы пополнения предположим, что имеется отношение R и справедлива ФЗ Х \to Y на R. Однако есть два кортежа t и s, которые совпадают по атрибутам XZ, но не совпадают по YZ. Поскольку они не могут совпадать по какому-либо атрибуту из Z, то они не должны совпадать по некоторому атрибуту из Y. Тогда они совпадают по X, но не совпадают по Y, что противоречит существованию ФЗ Х \to Y. Надежность аксиомы транзитивности уже была доказана в настоящем учебном элементе ранее.

Для доказательства полноты аксиом вывода введем понятие замыкания множества атрибутов X относительно множества ФЗ F.

Определение 10. Пусть F - множество ФЗ на множестве атрибутов U и X \subseteq U. Тогда замыканием X+ множества ФЗ F называется множество атрибутов А, таких, что ФЗ Х \to A может быть выведена из F по аксиомам 1-3.

Нетрудно показать, что ФЗ Х \to Y следует из аксиом 1-3 тогда и только тогда, когда Y \subseteq X^+. По определению замыкания для каждого атрибута из Y выводится ФЗ Х \to атрибут. По аксиоме объединения имеет место ФЗ Х \to Y. Обратно, если выполняется ФЗ Х \to Y, то по аксиоме декомпозиции имеет место ФЗ Х\to каждый атрибут из Y, и, следовательно, имеет место Y \subseteq X^+.

Теперь, для того чтобы показать полноту аксиом 1-3, покажем, что если при заданном F ФЗ Х \to Y не может быть выведена из данных аксиом, то должно существовать такое отношение, в котором справедливы все ФЗ F, кроме ФЗ Х \to Y.

Рассмотрим отношение R с двумя кортежами:

X+ другие атрибуты
1 1 … 1 1 1 … 1
1 1 … 1 0 0 … 0

Все зависимости из F справедливы на R. Следует показать, что Х \to Y не удовлетворяется на R. Допустим обратное. Из X \subseteq Х^+ следует Y \subseteq Х^+, иначе два кортежа, совпадая по Х, не совпадают по Y. Тогда ФЗ Х \to Y следует из аксиом 1-3, что приводит к противоречию. Таким образом, аксиомы 1-3 полны.

На основе аксиом вывода можно уточнить понятие замыкания множества ФЗ F - F^+, как наименьшего множества, содержащего F, которое не может быть расширено за F с помощью аксиом 1, 2 и 3. Понятие замыкания является основным при доказательстве приведенного выше утверждения. Оно также важно при определении, имеет ли множество ФЗ F зависимость Х \to Y. Для этого достаточно проверить, принадлежит ли рассматриваемая зависимость множеству F+.

Вычисление замыкания конечного множества ФЗ является трудоемкой задачей, так как необходимо перебрать множество всех подмножеств, а таких множеств, как известно, 2n, где n - число элементов исходного множества. Однако вычислить замыкание X+ для данного множества атрибутов несложно. Алгоритм вычисления приведен ниже. Можно показать, что этот алгоритм корректно вычисляет замыкание X+.

Алгоритм вычисления X+

Input: U - конечное множество атрибутов, множество ФЗ F на U, множество X \subseteq  U. Output: X+

  1. Х0 есть Х.
  2. Xi+1 есть Xi плюс множество атрибутов А, для которых в F существует ФЗ Y \to Z, A \subseteq  Z, Y \subseteq  X^i.

Условие завершения. Так как U - конечно и X = X^0 \subseteq  \dots \subseteq  X^i \subseteq  \dots К \subseteq, то существует i, такое, что Xi = Xi+1.

Пример. Вычислим Х+

Пусть F = {AB \to C, C \to A, BC \to D, ACD \to B, D \to EG, BE \to C, CG \to BD, CE \to AG} и X=BD.

  1. X^0=BD
  2. Находим ФЗ, которые в левой части имеют B, D, BD - D \to EG. Присоединим E и G к X0. X1 = BDEG. Находим ФЗ с левыми частями из Х^1 - D \to EG, BE \to C. X^2 = BCDEG. Находим ФЗ с левыми частями из Х^2 - C \to A, BC \to D, CG \to BD, CE \to AG. X^3 = ABCDEG.
  3. X^4 = X^3 \dot (BD)^+ = ABCDEG.
< Лекция 4 || Лекция 5: 123456 || Лекция 6 >
Александра Каева
Александра Каева
Михаил Забелкин
Михаил Забелкин