DBMS 中的 7 种键类型解释
已发表: 2021-03-12目录
DBMS 中的键是什么?
DBMS 中的键是一个属性或一组属性,有助于唯一标识关系(或表)中的元组(或行)。 键还用于建立关系数据库的不同表和列之间的关系。 键中的单个值称为键值。
该博客将涵盖您需要了解的有关DBMS 中的键和属性闭包的所有信息 找到任何关系(表)的键。 关于 DBMS 中键的一些关键GATE 问题,请坚持到文章末尾。
为什么需要密钥?
密钥用于定义各种完整性约束。 数据库中的表表示特定关系的记录或事件的集合。 现在可能有成千上万这样的记录,其中一些可能是重复的。
应该有一种方法可以单独且唯一地识别每条记录,即没有重复。 钥匙让我们摆脱了这种麻烦。
让我们以在工程学院学习的每个学生的数据库为例。
你认为学生的什么属性可以唯一地识别他们每个人? 您可以使用他们的姓名、部门、年份和部门来指代学生。 或者,您可以只提及学生的大学卷号,您可以从中获取所有其他详细信息。
键可以是多个属性(或列)的组合,也可以是单个属性。 这样做的主要动机是给每张唱片一个独特的身份。
另请阅读: DBMS 与 RDBMS
DBMS 中的键类型
DBMS 中大致有七种类型的键:
- 首要的关键
- 候选键
- 超级钥匙
- 外键
- 复合键
- 备用键
- 唯一键
让我们分别看看它们。
1.主键
主键是表中的一列或一组列,有助于唯一标识该表中存在的每条记录。 一个表中只能有一个主键。 此外,主键不能对任何行重复相同的值。 主键的每个值都必须不同,不能重复。
放在一列或一组列上的 PRIMARY KEY (PK) 约束将不允许它们具有任何空值或任何重复项。 一张表只能有一个主键约束。 主键中的任何值都不能被引用它的任何外键(如下所述)更改。
2.超级钥匙
超级键是有助于唯一识别表中行的所有键的集合。 这意味着表中所有能够唯一标识该表的其他列的列都将被视为超级键。
超级键是候选键的超集(解释如下)。 表的主键是从超级键集中挑选出来的,作为表的标识属性。
3. 候选键
候选键是唯一标识表行的那些属性。 表的主键是从候选键之一中选择的。 因此,候选键具有与上述主键相同的属性。 一个表中可以有多个候选键。
4.备用键
如上所述,一个表可以有多个主键选择; 但是,它只能选择一个。 因此,所有没有成为主键的键称为备用键。
5.外键
外键用于建立两个表之间的关系。 外键将要求一列或一组列中的每个值与引用表的主键匹配。 外键有助于维护数据和参照完整性。
6. 复合键
复合键是一组两个或多个属性,有助于唯一标识表中的每个元组。 单独考虑时,集合中的属性可能不是唯一的。 然而,当它们一起使用时,它们将确保唯一性。
7.唯一键
唯一键是唯一标识表中每条记录的一列或一组列。 此键中的所有值都必须是唯一的。 唯一键与主键不同,因为它只能有一个空值,而主键不能有任何空值。
功能依赖
现在我们知道了 DBMS 中的一种不同类型的键,让我们看看在给定数据库表时如何识别它们。 为此,我们使用函数依赖的概念。
功能依赖 (FD) 是两组属性之间的约束。 此约束适用于 r 中的任何两个元组 t1 和 t2,如果 t1[X] = t2[X],则它们有 t1[Y] = t2[Y]。 这意味着元组的 X 分量的值唯一决定了 Y 分量的值。
FD 表示为 X ? Y(读作“Y 在功能上依赖于 X”)。 左侧称为行列式,右侧称为从属。
一组属性的闭包
闭包是从给定 FD 集派生的所有可能 FD 的集合。 它也被称为一套完整的FD。 如果 F 用于为关系 R 捐赠一组 FD,则 F 隐含的一组 FD 的闭包由F+表示。
我们现在将定义关于给定 FD 集的一组属性的闭包。 它将有助于识别关系的超级 Key ,并确定是否可以从给定的 FD 集合中推断出 FD 或 FD 是否冗余。 在找到关系上的一组函数依赖后,下一步是找到该关系(表)的超级键。
然后我们找出属性集的闭包来决定任何表的属性(或属性集)是否是该表的键。 在功能上依赖于属性 X 的属性集称为 X 的属性闭包,它可以表示为 X+。
以下是确定 F+ 所需的一些规则:
- 自反性:如果 X 是 Y 的超集或 Y 是 X 的子集,那么 X ? Y。
- 增强:如果 X ? Y,然后 XZ? YZ。 或者如果 Z ⊆W 和 X ? Y,然后 XW ? YZ。
- 传递性:如果 X ? Y 和 Y ? Z,然后 X ? Z。
- 工会:如果 X ? Y 和 X ? Z,然后 X ? YZ。
- 分解:如果 X ? YZ,然后 X ? Y 和 X ? Z。
- 伪传递性:如果 X ? Y 和 YW ? Z,然后 XW ? Z。
如何使用属性闭包找到候选键和超级键?
- 如果一个属性集的属性闭包包含关系的所有属性,则该属性集将是关系的超级Key。
- 如果该属性集的任何子集都不能在功能上确定所有关系属性,则该集将是候选键。
让我们讨论几个之前被问到的 GATE 问题,看看属性闭包的应用。
门 2014
考虑关系方案 R = {E, F, G, H, I, J, K, L, M, N} 和函数依赖集 {{E, F} ? {G}, {F} ? {I, J}, {E, H} ? {K, L}, K ? {M}, L ? R 上的 {N}。R 的键是什么?
(A) {E, F}
(B) {E, F, H}
(C) {E, F, H, K, L}
(D) {E}
方法:我们将检查所有提供的选项的属性闭包。 其闭包将为我们提供整个关系 R 的集合将是正确答案。
A: {E, F} + = {EFGIJ} ≠ R
B: {E, F, H} + = {EFGHIJKLMN} = R
C: {E, F, H, K, L} + = {EFGHIJKLMN} = R
D: {E} + = {E} ≠ R
选项 B 和 C 都为我们提供了整个关系方案。 但是,我们选择最小选项作为正确答案,因为Candidate Key 应该是最小的 Super Key 。
回答: 乙
门 2013
关系 R 有八个属性 ABCDEFGH。 R 的字段仅包含原子值。 F = {CH ? G、A? 公元前,乙? CFH,E? 甲、乙? EG} 是一组函数依赖(FD),因此 F+ 正是 R 的一组 FD。
关系 R 有多少个候选键?
(一) 3
(乙) 4
(三) 5
(四) 6
方法:我们将获取问题中给出的每个函数依赖的 LHS 并找到它们的属性闭包。
CH+ = G
A+ = ABCEFGH
B+ = ABCEFGH
E+ = ABCEFGH
F+ = ABCEFGH
所以我们看到A,B,E,F的闭包除了属性D之外,都有完整的关系。所以总共有4个候选键AD,BD,ED和FD。
答案:B
从世界顶级大学在线学习软件课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
结论
键和功能依赖在设计数据库中起着非常重要的作用。 这些概念也有助于找出好的和坏的数据库设计之间的区别。 消除冗余并使数据库高效的最后一个过程是规范化,它使用了本文中提到的所有概念。
如果您有兴趣了解有关全栈开发的更多信息,请查看 upGrad & IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目、和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。
DBMS 中有哪些不同类型的键?
数据库中使用了几种类型的键。 主键用于标识表中的特定行。 唯一键用于确保特定表中只有一个条目。 外键用于将一个表中的条目链接到另一个表。 复合键是表中多个列的集合,它们一起用于标识行。 这些键可帮助您准确且唯一地识别表格行的特定列。 因此,根据您的用例使用准确的列作为键非常重要。
DBMS 中的外键是什么?
外键是一列或一组列,用于将一个表的行链接到另一个表的行。 它用于防止数据不一致。 在 DBMS 中,外键是使用单个列或一组列(逻辑列)实现的,DBMS 会检查这些列中的值是否与引用列(主键)中的值匹配。 例如,假设表 A 和表 B 都有一个名为列 A 的列。您可以说表 A 中的列 A 引用表 B 中的列 A。这可以想象为一个外键值指向的箭头目标表。
DBMS 中的复合键是什么?
复合键是一个超级键。 它是一个或多个列的组合。 它允许从不同列的组合构造单个键。 它也称为复合标识符、复合键或复合键。 简而言之,您可以使用一组列来标识表中的唯一行,以防您没有可以唯一标识行的单个列。 在这种情况下,您将使用的所有列的集合将被视为复合键。 因此,可以正确地说,主键具有多个列,它被重命名为复合键。