如果我们要与美国人建立关系,包括他们的姓名,社会安全号码,街道地址,城市,州,邮政编码,区号和电话号码,那么我们期望这种关系具有哪些功能依赖关系举行?
我的尝试是这样的:
Social security number -> name
Phone number -> Social security number
Street adress, city -> State, ZIP, area code
Area code -> city
这是对的吗?
答案 0 :(得分:3)
这样的问题没有客观的正确或错误的答案。我们真正要做的只是一些属性名称。
数据库设计的关键在于它准确地表示某些话语领域的解释 。正确设计的数据库模式是一组谓词,适用于将要使用它的上下文中的目的。在实际的数据库设计中,功能依赖是您选择在数据模型中实施的业务规则,因为它们符合业务域的要求。
例如,在许多情况下,FD {Phone number}→{X}
不是一个非常现实或有用的规则,可能不会成为大多数数据模型的一部分。然而,对于电话公司来说,电话号码非常重要,{Phone number}→{X}
很可能是电话公司中某些数据模型的一部分,例如其中X是订户帐号。正如数据库设计中经常出现的那样,答案是:它取决于......
假设这是家庭作业,如果你只有属性名称,那么重要的是你可以解释你的答案。您是否将电话号码作为SSN的决定因素,因为您认为拥有SSN的每个人都会拥有唯一的电话号码?为什么?你期望城市属性的价值由什么组成?为什么它们会成为国家的决定因素?