我有下表
Case ( referenceID, startDate, endDate, caseDetail, caseType, caseTypeRate,
lawyerName, lawyerContact, clientID, clientName, clientAddress, clientContact,
serviceProvided, serviceDate, serviceCost,
otherPartyID, otherPartyName, otherPartyContact )
我的FD是
referenceID-->caseDetail
referenceID-->caseType
referenceID-->ServiceProvided
lawyerContact-->lawayerName
clientID-->clientName
我是正确还是更多?阅读理论后,我仍然不确定它是如何工作的。我需要明确的例子。我如何确定mvds?
答案 0 :(得分:3)
功能依赖: - 如果X的一个值只有一个Y值,那么我们可以说Y是功能性依赖于X并写成如下。
X -> Y
多值依赖性: - 如果X的一个值有多个Y值,那么我们可以说Y是对X的多值依赖,它被写成如下。
X ->-> Y
答案 1 :(得分:1)
松散地说,表示为x -> y
的函数依赖意味着,“当我知道x的任何值时,我知道y的唯一值。”因此x的值确定y的唯一值。
为了确定是否存在功能依赖,你问自己一个问题,“如果我知道x的任何值,我知道y的唯一值吗?”,然后回答它。
在您的情况下,我猜测这些额外的功能依赖项的大多数将成立。很难确定,因为没有样本数据,因为我不知道列的含义。 (试图仅根据列名确定功能依赖性非常有风险。这里,“startDate”可能意味着什么。)
referenceID -> startDate
referenceID -> endDate
referenceID -> caseType
referenceID -> caseTypeRate
clientID -> clientName
clientID -> clientAddress
clientID -> clientContact
otherPartyID -> otherPartyName
otherPartyID -> otherPartyContact
还有其他人。
答案 2 :(得分:0)
以下是如何确定MVD的一个很好的示例:https://www.cs.oberlin.edu/~jdonalds/311/lecture08.html。
基本上,请遵循以下算法:
1)弄清楚A是否确定B的一组值, 2)弄清楚A是否确定C的一组值,然后 3)确定B和C是否相互独立。
A,B,C是一组属性。如果条件满足那么 A - >> B和A - >> C是MVD。