MS Access - 相关数据

在本章中,我们将了解相关数据的基础知识.在讨论和创建不同数据之间的关系之前,让我们回顾一下我们需要它的原因.这一切都回到了标准化.

规范化

数据库规范化,或简单规范化,是组织列(属性)和表(关系)的过程)关系数据库,以最小化数据冗余.这是在多个表之间拆分数据以提高整体性能,完整性和使用寿命的过程.

  • 规范化是一个过程在数据库中组织数据.

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

现在让我们看一下包含数据的下表,但问题是这个数据是非常多余,这增加了数据输入过程中拼写错误和措辞不一致的可能性.

CustIDNameAddressCookie数量价格总计
1Ethel Smith12 Main St,Arlington,VA 22201 SChocolate Chip5$ 2.00$ 10.00
2Tom Wilber1234 Oak Dr.,Pekin,IL 61555Choc Chip3$ 2.00$ 6.00
3Ethil Smithy12 Main St.,Arlington,VA 22201巧克力筹码5$ 2.00$ 10.00

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

三个表

这里,我们有一个表用于Customers,2个 nd 一个用于Orders和3个 rd 一个用于Cookie.

这里的问题是,仅仅通过拆分多个表中的数据无助于说明一个表中的数据如何与另一个表中的数据相关表.要连接多个表中的数据,我们必须将外键添加到订单表.

定义关系

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

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

一对多关系

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

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

多对多关系

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

你创建了这样一个通过定义第三个表来实现关系,称为联结表,其主键由表A和表B中的外键组成.

例如, Customers表和Cookies表具有多对多关系,该关系由从每个表到Orders表的一对多关系定义.

One-to-to一个关系

在一对一的关系中,表A中的一行在表中只能有一个匹配的行B,反之亦然.如果相关列都是主键或具有唯一约束,则会创建一对一关系.

这种类型的关系并不常见,因为以这种方式相关的大多数信息都是全部在一张桌子里.你可以使用一对一的关系来减去;

  • 将一个表分成许多列.

  • 出于安全原因隔离表的一部分.

  • 存储短暂的数据,只需删除表即可轻松删除.

  • 存储仅适用于主表子集的信息.