DBMS 中的基数 (映射约束)

17 Mar 2025 | 4 分钟阅读

DBMS

DBMS 是数据库管理系统的缩写,它是一种用于对数据库执行各种操作的工具或软件,例如数据库的创建、删除或更新当前数据库。为了简化处理和数据查询,目前最流行的数据库类型通常将数据建模为一组表中的行和列。然后可以轻松地处理、更新、管理和结构化数据。大多数数据库使用结构化查询语言 (SQL) 来写入和查询数据。

基数

基数意味着实体之间如何排列,或者在关系集中实体之间的关系结构是什么。在数据库管理系统中,基数表示一个数字,该数字表示实体在一个关系集中参与另一个实体的次数。DBMS 的基数是表示数据库结构的一个非常重要的属性。在一个表中,行或元组的数量代表基数。

基数比

基数比也称为**基数映射**,它表示一个实体集到另一个实体集在关系集中的映射。我们通常以二元关系集为例,其中两个实体相互映射。

基数对于各种企业的数据库来说非常重要。例如,如果我们想跟踪每个客户的购买历史,那么我们可以使用一对多基数来查找特定客户的数据。数据库管理员可以在数据库中使用基数模型用于各种目的,但公司通常使用它来评估客户或库存数据。

数据库管理系统中有四种基数映射类型

  1. 一对一
  2. 多对一
  3. 一对多
  4. 多对多

一对一

一对一基数由**1:1**符号表示。在这种情况下,从一个实体到另一个实体的关系最多为一个。现实生活中的数据库中有很多一对一基数的例子。

例如,一名学生只能有一个学生 ID,而一个学生 ID 只能属于一个学生。因此,学生和学生 ID 之间的关系映射将是一对一的基数映射。

另一个例子是学校校长和学校之间的关系,因为一所学校最多可以有一个校长,而一个校长只能属于一所学校。

注意:在一对一基数中,并非所有实体集中的实体都必须进行映射。有些实体可能不参与映射。

DBMS Mapping Constraints

多对一基数

在多对一基数映射中,从集合 1,可以有多个集合与集合 2 的单个实体建立关系。或者我们也可以这样描述,从集合 2,一个实体可以与集合 1 中的多个实体建立关系。

一对一基数是多对一基数的子集。它可以用**M:1**表示。

例如,医院里有多名患者由一名医生看诊,因此患者和医生之间的关系可以用多对一基数来表示。

DBMS Mapping Constraints

一对多基数

在一对多基数映射中,从集合 1,最多可以有一个集合与集合 2 的单个实体或多个实体建立关系。或者我们也可以这样描述,从集合 2,多个实体可以与集合 1 中的一个实体建立关系。

一对一基数是一对多基数的子集。它可以用**1: M**表示。

例如,在医院里,可以有多名配药员,因此医院和配药员之间的关系可以通过一对多基数进行映射。

DBMS Mapping Constraints

多对多基数

在多对多基数映射中,可以有一个或多个实体与集合 2 中的一个或多个实体相关联。同样,从集合 2 的末端,一个或多个实体可以与集合 1 中的一个或多个实体建立关系。

它用**M: N**或**N: M**表示。

一对一基数、一对多基数和多对一基数是多对多基数的子集。

例如,在一所大学里,多个学生可以参与一个项目,而一个学生也可以参与多个项目。因此,项目和学生之间的关系可以用多对多基数来表示。

DBMS Mapping Constraints

适当的映射基数

显然,关系集建模的现实世界上下文决定了特定关系集的适当映射基数。

  • 如果基数是一对多或多对一,我们可以将关系表与许多涉及的表合并。
  • 如果一个实体具有一对一关系和完全参与,则可以将该实体与关系表合并;如果两个实体都具有完全参与,则可以将它们与其关系合并形成一个表。
  • 如果基数是多对多,我们不能混合任何两个表。

下一主题DBMS 键