请举例解释 DBMS 中键属性的概念?
键是用于标识记录的数据项,数据库中用于标识记录的值称为键。它有助于从实体集中唯一地标识一个实体。键使我们能够识别一组足以区分不同实体的属性。
示例
账号、员工编号、客户编号被用作键字段,因为它们专门标识存储在数据库中的记录。
不同类型的键
数据库管理系统 (DBMS) 中的不同类型的键如下 −
主键
超键
候选键
备用键
人工键
外键
主键、超键、候选键、备用键和人工键均具有唯一性,而外键键值表示参照完整性。

我们来考虑一个表 −
| StdNo | Name | Branch | Branch |
|---|---|---|---|
| 01 | Hari | Cse | A |
| 02 | Pinky | Ece | B |
| 03 | Bob | Civil | A |
候选键
它是一个属性,其值唯一地标识表中的每个记录。一个表可以有多个候选键。
候选键满足以下条件:−
不同的记录不能相同。
候选键的子集不能作为键。
在上面的学生表中,候选键如下:−
stdNo 和 branch,因为它们唯一地标识每条记录。
但是 {stdNo, name} 不是候选键,因为只有 stdNo 才是候选键。
主键
从众多候选键中,数据库设计者为其数据库选择一个候选键,称为主键。主键唯一地标识表中的每条记录,并且两条记录的主键不能相同。
示例
在上表中,stdNo 是主键。
主键具有以下一些属性:
唯一性(两条不同的记录不能相同)。
NOT NULL(不允许为空值)。
如果任何外键引用了主键,则主键列中的值永远不能被修改或更新。
主键在表中带有下划线,以便清晰标识。
例如 − stdNo
单列主键称为简单主键,多列主键称为复合主键。
示例
stdNo 是简单主键。
{orderNo, productNo} 是复合主键。
备用键
未被选为主键的候选键称为备用键。也就是说,除了主键之外,其余候选键都是备用键。
例如 −
在上面的学生表中,stdNo 是主键,因此其余候选键(即分支)是备用键。
超键
它是候选键的超集。组合属性,其中第一个属性始终具有唯一性,第二个属性可能具有唯一性,也可能不具有唯一性。
示例
上表中,候选键为 {stdNo},{branch} 和 {stdNo}。
超键如下 −
{stdNo, name} 和 {stdNo, address} 分别表示为 {stdNo, name} 和 {stdNo}。
{branch, section} 和 {stdNo}。
超键是通过在候选键上添加额外属性形成的。
人工键
以索引的形式使用。如果数据库规模很大,且无法指定任何属性作为键字段,则将对给定数据库应用索引或人工键。
外键
在一个关系中,其数据值与另一个关系中键列的值相对应的列称为外键。在关系数据库中,一个关系的外键可能是另一个关系的主键。


