📜  DBMS中的复合键

📅  最后修改于: 2020-12-13 05:36:44             🧑  作者: Mango

DBMS中的组合键

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

在此部分中,我们将在此部分理解和讨论组合键及其作用。我们还将通过示例来查看其工作。

什么是组合键

复合键是具有两个或多个属性的DBMS键,它们可以一起唯一标识表中的元组。这种密钥也称为复合密钥,其中每个创建密钥的属性本身就是一个外键。

组合键的使用

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

组合键示例

下面是一个了解组合键工作方式的示例。

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

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

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

Prod_code:它保存可用产品的代码值。

Prod_name:保存指定产品代码上产品名称的属性。

下表显示了上表的图表:

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

注意事项:

  • 如果通过属性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}是表的组合键。

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