×

MS Access教程

MS Access概述MS Access RDBMSMS Access对象MS Access创建数据库MS Access数据类型MS Access创建表MS Access添加数据MS Access查询数据MS Access查询条件MS Access操作查询MS Access创建查询MS Access参数查询MS Access替换条件MS Access相关数据MS Access创建表关系MS Access一对一关系MS Access一对多关系MS Access多对多关系MS Access通配符MS Access表达式MS Access索引MS Access分组数据MS Access汇总数据MS Access连接MS Access查找重复项MS Access查找不匹配项MS Access创建窗体MS Access修改窗体MS Access导航窗体MS Access组合框MS Access SQL视图MS Access格式化MS Access控件和属性MS Access报表基础MS Access格式化报表MS Access内置函数MS Access宏MS Access数据导入MS Access数据导出

MS Access相关资源

MS Access相关资源MS Access相关讨论

MS Access相关数据


在本章中,我们将了解相关数据的基础知识。在讨论和创建不同数据之间的关系之前,让我们来回顾一下为什么我们需要它。这一切都回归正常化。

正常化

数据库规范化或简单规范化是组织关系数据库的列(属性)和表(关系)以最小化数据冗余的过程。它是跨多个表分割数据以提高整体性能,完整性和寿命的过程。

  • 规范化是在数据库中组织数据的过程。

  • 这包括根据设计的规则创建表并在这些表之间建立关系,以保护数据并通过消除冗余和不一致的依赖性使数据库更加灵活。

现在让我们看看包含数据的下表,但问题是这个数据是相当冗余的,这增加了在数据输入期间打字和不一致短语的机会。

CustID Name Address Cookie Quantity Price Total
1 Ethel Smith 12 Main St, Arlington, VA 22201 S Chocolate Chip 5 $ 2.00 $ 10.00
2 Tom Wilber 1234 Oak Dr., Pekin, IL 61555 Choc Chip 3 $ 2.00 $ 6.00
3 Ethil Smithy 12 Main St., Arlington, VA 22201 Chocolate Chip 5 $ 2.00 $ 10.00

为了解决这个问题,我们需要重构我们的数据并将其分解成多个表,以消除一些冗余,如下面三个表所示。

Three Tables

这里,我们有一个Customers表,第二个是Orders表,第三个是Cookies表。

这里的问题是,只是通过拆分多个表中的数据将无助于告诉一个表中的数据如何与另一个表中的数据相关。要在多个表中连接数据,我们必须向Orders表添加外键。

定义关系

关系通过匹配键列中的数据(通常是两个表中具有相同名称的列)来工作。在大多数情况下,关系与来自一个表的主键匹配,该表为每个行提供唯一标识符,在另一个表中的外键中具有条目。这里有三种类型的表之间的关系。创建的关系类型取决于如何定义相关列。

现在让我们看看这三种类型的关系 -

一对多关系

一对多关系是最常见的关系类型。在此类型的关系中,表A中的行可以在表B中具有许多匹配的行,但表B中的行在表A中只能具有一个匹配的行。

例如,客户和订单表具有一对多关系:每个客户可以下订单,但每个订单只来自一个客户。

多对多关系

在多对多关系中,表A中的行可以在表B中具有许多匹配的行,反之亦然。

您通过定义第三个表(称为联结表)来创建此类关系,其主键由来自表A和表B的外键组成。

例如,Customers表和Cookies表具有多对多关系,该关系由从这些表到Orders表的一对多关系定义。

一对一关系

在一对一关系中,表A中的行在表B中可以不多于一个匹配行,反之亦然。如果相关列都是主键或具有唯一约束,那么将创建一对一关系。

这种类型的关系不常见,因为以这种方式相关的大多数信息将全部在一个表中。您可以使用一对一关系 -

  • 将表分成多个列。
  • 出于安全原因,隔离表的一部分。
  • 存储短暂的数据,只需删除表即可轻松删除。
  • 存储仅适用于主表子集的信息。

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)