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

8

Я новичок в DBMS. Я видел видео лекции о функциональных зависимостях. Но меня немного смущает то, является ли функциональная зависимость ограничением всей базы данных или конкретной схемы?

Saravanan
источник

Ответы:

9

Функциональная зависимость является именно то , что подразумевает термин - выход функции всегда определяется входом. Если, например, у нас есть функция f () и мы предоставляем переменную x , и мы всегда получаем вывод y , то y функционально зависит от x. Вы можете думать об этом, как о простой графической функции. 2x + 1 = y Включение некоторых примеров значений в функцию, которую мы получаем:

X    Y
------
1    3
2    5
3    7

и так далее. Таким образом, мы знаем, что для каждого значения x есть значение y, которое всегда будет тем значением y для этого x.

Кодд адаптировал это к управлению данными, чтобы определить, всегда ли значение одного элемента данных приводит к известному значению второго элемента данных, как если бы это был ввод и вывод функции. Так, например, если мы обнаружим, что каждому сотруднику небольшой компании присвоен номер сотрудника, и мы создадим простой список номеров и имен сотрудников, мы обнаружим, что имя функционально зависит от этого номера сотрудника. Каждый раз, когда мы видим сотрудника № 7, например, мы видим имя «Джим Браун». Это представляет в базе данных утверждение, которое верно в реальном мире, а именно, что работник № 7 - это человек по имени «Джим Браун», на которого мы можем указать и сказать «это он».

Функциональная зависимость может быть реализована как уникальное ограничение, потому что существует взаимно-однозначное отношение между входом в функцию и ожидаемым выходом. В примере алгебры, когда мы подключим 2 к уравнению 2x + 1, мы всегда получим 5. Применяя этот пример к управлению данными в приведенном выше примере, каждый раз, когда у нас есть сотрудник № 7, нам нужно иметь одно и только одно имя и другие характеристики, которые идут с этим. У нас не может быть сотрудника № 7, связанного с «Джимом Брауном» и «Бобом Джонсом» больше, чем мы могли бы сказать, что включение 7 в 2x + 1 может дать 15 и 25.

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

A,B ---> C

Это означает, что значения A и B определяют значение C. Возможно, A - это номер сотрудника, а B - это зависимый номер, а C - это имя зависимого лица. Таким образом, в этом смысле они применяются к каждой таблице в каждой схеме в каждой базе данных.

Некоторые хорошие ссылки на теорию отношений - серия практических баз данных Фабиана Паскаля и книга Криса Дэйта « Реляционная теория для компьютерных профессионалов» .

Тод эверетт
источник