Как работать с комбинированными типами сущностей при вычислении замыкания набора атрибутов - PullRequest
0 голосов
/ 10 мая 2019

Я готовлюсь к предстоящим экзаменам, и мне трудно понять пример вопроса о закрытии атрибутов.Вот проблема:

AB→C
BE→I
E→C
CI→D

Find the closure of the set of attributes BE, explaining each step.

Я нашел много объяснений метода закрытия, когда данный шаг относится к одному типу сущностей, скажем «C», с использованием аксиом Армстронга, но я не понимаюкак ответить на 'BE'.

1 Ответ

1 голос
/ 10 мая 2019

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

Итак, вопрос в том, как вычислить закрытие набора атрибутов. Вы можете применить аксиомы Армстронга, пытаясь на каждом шаге применить одну из них, пока это возможно, но вы также можете упростить вычисления, используя следующий, очень простой алгоритм (и если вы Google "алгоритм закрытия набора атрибутов", вы найдете много описаний этого):

We want to find X+, the closure of the set of attributes X.

To find it, first assign X to X+.
Then repeat the following while X+ changes:
    If there is a functional dependency W → V such as W ⊆ X+ and V ⊈ X+,
       unite V to X+.

Так в вашем случае дано:

AB → C
BE → I
E → C
CI → D

для вычисления BE + мы можем действовать следующим образом:

1. BE+ = BE
2. BE+ = BEI (because of BE → I)
3. BE+ = BEIC (because of E → C)
4. BE+ = BEICD (because of CI → D)

Никакая другая зависимость не может использоваться для изменения BE +, поэтому алгоритм завершается, и результатом является BCDEI. С точки зрения аксиом Армстронга, шаг 1 обусловлен рефлексивностью, а шаги 2–4 - комбинацией транзитивности и аугментации.

...