DBMS 中的复合键

17 Mar 2025 | 阅读 2 分钟

“复合”一词的更好描述是“两个或多个的组合”。因此,DBMS 中的复合键是一个由两个或多个属性组成的候选键,能够唯一地标识一个表或关系。

在本节中,我们将理解和讨论复合键及其作用。我们还将通过示例来了解其工作原理。

什么是复合键

复合键是 DBMS 键,它包含两个或多个属性,这些属性共同可以唯一地标识表中的一个元组。这样的键也称为组合键,其中构成键的每个属性本身都是外键。

复合键的用途

两个或多个属性共同构成一个复合键,该键可以唯一地标识表中的一个元组。我们需要找出可以构成候选键,从而构成复合键的表列组合。

复合键示例

以下是一个理解复合键工作原理的示例。

考虑表 A,它有三个列或属性,如下所示:

Cust_Id: 为每个访问的客户提供客户 ID,并存储在此字段中。

Order_Id: 客户下的每个订单都有一个订单 ID,并存储在此字段中。

Prod_code: 它包含可用产品的代码值。

Prod_name: 一个属性,持有指定产品代码的商品名称。

下表显示了上述表的图表

Composite Key in DBMS

从表中,我们发现没有单个属性可以唯一标识表中的记录并成为 主键。但是,某些属性的组合可以构成一个键并识别表中的一个元组。在上面的示例中,Cust_IdProd_code 可以共同构成一个主键,因为它们单独不能识别一个元组,但它们结合起来可以。

需要注意的点

  • 如果与 Cust_Id 相关的其他属性仅是客户的详细信息,例如客户的电话号码、姓名、地址等,则 Cust_Id 属性可以单独作为主键。
  • 同样,在 Prod_code 的情况下,它不能单独作为此表的主键,因为它只能识别 Prod_name,而不能识别 Cust_Id 和 Order_Id。因此,我们不能将 Prod_code 设置为主键。
  • Cust_Id 和 Prod_code 两者共同可以识别表中的所有记录,因为使用这种组合,我们可以识别客户的 Order_Id,也可以识别特定 Prod_code 的 Prod_name。
  • 因此,{Cust_Id, Prod_code} 是该表的复合键。

注意:数据库管理中使用的任何类型的键,如果由两个或多个属性构成,则称为复合键。


下一主题DBMS 中的外键