我的教授在下表中给出了一个任务,以找到4种不同的功能依赖关系:
Company(Company_Name,Street_Address,城市,Zip,State,CEO_Name)
他还指出:每一家公司都有不同的(唯一)地址含义(Street_Address、City、Zip、State)共同构成一个密钥。不同的公司可能有相同的名字。每家公司都有一个CEO,一个人不可能是不止一个公司的首席执行官。CEO的名字可能不是唯一的(可能有两个CEO的名字是一样的)。要计算具有属性(A、B、C、D)的表中的4个函数依赖关系:如果A -> B显然是A,C -> B也是。这不应算作两个独立的依赖项。另一方面,A -> B和A -> C应算作2种不同的函数依赖关系。“
但在我看来,没有4种功能依赖关系。
但是,由于两家公司可以有相同的名称,所以也应该有一个主键,比如"Company_Number“。但是创建已知的表并不是任务..。
发布于 2013-06-01 14:31:24
函数依赖项回答了一个问题:“给出X的一个值,我们知道Y的一个值吗?”Eitehr X或Y可能是属性集合,而不仅仅是单个属性。当你阅读这个答案时,要记住这一点。
每一家公司都有一个不同的(唯一的)地址含义(Street_Address,City,Zip,State)共同构成一个密钥。
顾名思义,这意味着
这是候选密钥{Street_Address、City、Zip、State}的所有可能的FDs。四个中的两个--回家一半。
您将{CEO_Name,Company_name}标识为函数依赖项的左侧.在这种情况下,您还可以将其标识为候选密钥。让我们来看看一些虚构的数据。
Company_Name CEO_Name Street_Address City State Zip
--
Wibble, Inc. Mary Smith 123 E Main St Anytown PA 00001
Wibble, Inc. Mary Smith 456 S Darn St Sometown WY 10000这些数据描述了两家不同的公司,它们的名字恰好相同,有两位不同的CEO恰好有着相同的名字。这符合FDs的描述,但清楚地表明{Company_Name,CEO_Name}不是候选密钥。伪造的数据还清楚地表明,{Company_Name,CEO_Name}不能是函数依赖的左侧。给定{Company_Name,CEO_Name}的单个值,对于任何其他属性,我们都没有一个和唯一一个值。
在将属性Company_Name和CEO_Name排除为左侧的可能性之后,“制造”另外两个函数依赖项的唯一方法是在候选键{Street_Address、City、Zip、State}中找到它们。不是因为候选键有什么特别之处,而是因为这些是剩下的唯一属性。
我猜你的老师希望你说
在美国(在“真实”世界),"Zip -> City,State“并不适用。邮政编码与运营商如何驾驶他们的路线和递送邮件有关;邮政编码与地理无关。一些城市(和邮政编码)跨越州边界。相当多的邮政编码跨越相邻的城市在一个州内。随着USPS削减预算,我预计这样的邮政编码数量会增加。
但在学术界,这种现实世界的行为往往由于教学原因而被忽视.这就是为什么我敢打赌你们的老师希望{Zip ->市,州}。
https://stackoverflow.com/questions/16873088
复制相似问题