DBMS 中可能的超键数量2024年8月28日 | 阅读 4 分钟 超键在数据库管理系统中,用于唯一标识每一行的属性集合称为超级键。超级键是主键或候选键的超集。每个主键或候选键都是超级键,但每个超级键都不能称为候选键。 我们将通过理解下面讨论的各种示例来计算关系模型(表)中存在的超级键的数量。 注意 A 并集 B = A + B - (A 交集 B) A 并集 B 并集 C = A + B + C - (A 交集 B) - (B 交集 C) - (C 交集 A) + (A 交集 B 交集 C) 示例 1 假设我们有一个关系模型,其属性为 {A, B, C, D},A 是候选键,然后计算超级键的数量。 解决方案 我们知道候选键也是一个超级键,其任何子集都不是超级键,所以所有的超级键都将包含候选键。 所以超级键将是:{A, AB, AC, AD, ABC, ABD, ACD, ABCD} 因此,对于只有一个候选键的表,其通用公式是,如果 K 是属性的数量,则超级键总数 = 2(K-1)。 注意:假设一个关系模型有 N 个属性,则超级键的最大数量为 2N-1(当所有属性都是候选键时)。示例 2 如果一个关系模型有 N 个属性 {A1, A2...An},候选键为 {A1A2A3A4},则超级键的数量是多少? 解决方案 超级键的总数为 2(N-4)。 示例 3 如果一个关系模型有 N 个属性 {A1, A2...An},候选键为 {A1, A2},则超级键的数量是多少? 解决方案 超级键总数 = (A1 的超级键) 并集 (A2 的超级键) 超级键总数 = 2(N-1) + 2(N-1) - 2(N-2) 示例 4 如果一个关系模型有 N 个属性 {A1, A2...An},候选键为 {A1, A2A3},则超级键的数量是多少? 解决方案 超级键总数 = (A1 的超级键) 并集 (A2A3 的超级键) 超级键总数 = 2(N-1) + 2(N-2) - 2(N-3) 示例 5 如果一个关系模型有 N 个属性 {A1, A2...An},候选键为 {A1A2, A3A4},则超级键的数量是多少? 解决方案 超级键总数 = (A1A2 的超级键) 并集 (A3A4 的超级键) 超级键总数 = 2(N-2) + 2(N-2) - 2(N-4) 示例 6 如果一个关系模型有 N 个属性 {A1, A2...An},候选键为 {A1A2, A2A3},则超级键的数量是多少? 解决方案 超级键总数 = (A1A2 的超级键) 并集 (A2A3 的超级键) 超级键总数 = 2(N-2) + 2(N-2) - 2(N-3) 示例 7 如果一个关系模型有 N 个属性 {A1, A2...An},候选键为 {A1, A2, A3},则超级键的数量是多少? 解决方案 超级键总数 = (A1 的超级键) 并集 (A2 的超级键) 并集 (A3 的超级键) 超级键总数 = 2(N-1) + 2(N-1)+2(N-1) - 2(N-2) - 2(N-2) - 2(N-2)+ 2(N-3) 示例 8 我们假设有一个属性集 R:{A, B, C, D, E, F, G, H} 和函数依赖集 A -> BC B -> CFH E -> A F -> EG CH -> G 解决方案 首先,我们将确定候选键,它们是:{AD, BD, ED, FD} 所以将得到超级键总数 = (AD 的超级键) 并集 (BD 的超级键) 并集 (ED 的超级键) 并集 (FD 的超级键) 对于单个 AD,我们有六个选项可以选择或不选择,所以是 26。 两个超级键的组合,如 AD 交集 BD,将是 25。 对于三个超级键的组合,总选项将是 24。 对于四个超级键的组合,总选项将是 23。 单个组合的数量 = 4 两个组合的数量 = 6 三个组合的数量 = 4 四个组合的数量 = 1 所以超级键总数为:4*26 - 6*25 + 4*24 -1*23 = 120 示例 9 如果一个关系模型有 N 个属性 {A1, A2...An},并且有一个由 K 个属性组成的候选键。找到 K 的值,使得候选键的数量最多。 解决方案 从 N 中选择 K 个值是通过 NCK 完成的。 NCK = (!N)/!(N-K)!k 对于上述值,K = N/2 以达到最大值。 下一个主题数据库管理系统相关人员 |
我们请求您订阅我们的新闻通讯以获取最新更新。