Нужна помощь в выяснении функциональных зависимостей

У меня есть проблема, когда меня просят получить функциональные зависимости, но я не совсем уверен, правильно ли я их понял, эта тема кажется немного запутанной, мне было интересно, можете ли вы, ребята, дважды проверить меня или исправить меня, если я неправильно пожалуйста!

Company(companyID, companyName, cityName, country, assets)
Department(deptID, deptName, companyID, cityName, country, deptMgrID)
City(cityID, cityName, country)

-Two different companies cannot have the same company ID
-Two different departments cannot have the same deptID
-Two different cities cannot have the same cityID
-Two different cities in the same country cannot have the same name.
-The company name and the city it’s located in determine the company ID.
-Two departments in the same company must have different names.
-One manager cannot run two different departments.

Вот те ФД, которые я придумал:

companyID -> companyName,cityName,country,assets
deptID -> deptName,companyID,cityName,country,deptMgrID
cityID -> cityName,country
country,cityID -> cityName
companyName,cityName -> companyID
deptID -> deptMgrID
deptID,country -> deptName

1 ответ

Две разные компании не могут иметь один и тот же идентификатор компании

Я бы сказал, что это значит, что Company.companyID уникален. Это значит

  • companyID -> Company.companyName
  • companyID -> Company.cityName
  • companyID -> Company.country
  • companyID -> Company.assets

Два разных отдела не могут иметь одинаковый deptID

Та же интерпретация, что и выше. FDs должны быть очевидными.

Два разных города не могут иметь одинаковый cityID

Та же интерпретация. Опять же, FDs должны быть очевидны.

Два разных города в одной стране не могут иметь одинаковые названия.

Я бы сказал, что {название города, название страны} уникально. Это означает, что это ключ-кандидат, и это означает, что каждый FD, который имеет cityID с левой стороны, может повторяться с {название города, название страны} с левой стороны.

Название компании и город, в котором она находится, определяют идентификатор компании.

  • companyName, cityName, страна -> идентификатор компании

Два отдела в одной компании должны иметь разные названия.

Я бы понял, что это означает, что название отдела не уникально, а {companyID, deptName}. Это делает {companyID, deptName} ключом-кандидатом. Таким образом, каждый FD, имеющий Department.deptID на левой стороне, может повторяться с {companyID, deptName} на левой стороне.

Один менеджер не может управлять двумя разными отделами.

deptMgrID является ключом-кандидатом. Смотри выше.

Другие вопросы по тегам