MS Access – 相关数据
MS Access – 相关数据
在本章中,我们将了解关联数据的基础知识。在讨论和创建不同数据之间的关系之前,让我们回顾一下我们为什么需要它。这一切都回到正常化。
正常化
数据库规范化,或简称规范化,是组织关系数据库的列(属性)和表(关系)以最小化数据冗余的过程。它是跨多个表拆分数据以提高整体性能、完整性和寿命的过程。
-
规范化是在数据库中组织数据的过程。
-
这包括根据旨在保护数据和通过消除冗余和不一致依赖性使数据库更加灵活的规则创建表并在这些表之间建立关系。
现在让我们看看包含数据的下表,但问题是这些数据非常冗余,这增加了数据输入过程中出现拼写错误和措辞不一致的可能性。
CustID | 名称 | 地址 | 曲奇饼 | 数量 | 价格 | 全部的 |
---|---|---|---|---|---|---|
1 | 埃塞尔史密斯 | 12 Main St, 阿灵顿, VA 22201 S | 巧克力片 | 5 | 2.00 美元 | 10.00 美元 |
2 | 汤姆威尔伯 | 1234 Oak Dr., Pekin, IL 61555 | 巧克力片 | 3 | 2.00 美元 | 6.00 美元 |
3 | 埃希尔·史密斯 | 弗吉尼亚州阿灵顿大街 12 号,邮编 22201 | 巧克力片 | 5 | 2.00 美元 | 10.00 美元 |
为了解决这个问题,我们需要重组我们的数据并将其分解成多个表以消除其中的一些冗余,如下三个表所示。
在这里,我们为客户准备了一张桌子,2nd 一个用于订单,而 3rd 一种是用于 Cookie。
这里的问题是,仅仅通过将数据拆分到多个表中并不能帮助判断一个表中的数据与另一个表中的数据之间的关系。要连接多个表中的数据,我们必须向Orders表添加外键。
定义关系
关系的工作原理是匹配键列中的数据,通常是两个表中具有相同名称的列。在大多数情况下,该关系将一个表中的主键与另一个表的外键中的条目匹配,该主键为每一行提供唯一标识符。表之间存在三种类型的关系。创建的关系类型取决于相关列的定义方式。
现在让我们看看三种类型的关系 –
一对多关系
一对多关系是最常见的关系类型。在这种关系中,A表中的一行可以在B表中有很多匹配的行,而B表中的一行在A表中只能有一个匹配行。
例如,Customers 和 Orders 表具有一对多关系:每个客户可以下多个订单,但每个订单仅来自一个客户。
多对多关系
在多对多关系中,表 A 中的一行在表 B 中可以有许多匹配的行,反之亦然。
您可以通过定义第三个表(称为联结表)来创建这种关系,其主键由表 A 和表 B 的外键组成。
例如,Customers 表和 Cookies 表具有多对多关系,该关系由从这些表中的每一个表到 Orders 表的一对多关系定义。
一对一关系
在一对一关系中,表 A 中的一行在表 B 中最多只能有一个匹配行,反之亦然。如果相关列都是主键或具有唯一约束,则会创建一对一关系。
这种类型的关系并不常见,因为以这种方式相关的大多数信息都在一个表中。您可以使用一对一的关系 –
- 将一个表分成许多列。
- 出于安全原因隔离表的一部分。
- 存储时间很短并且可以通过简单地删除表轻松删除的数据。
- 存储仅适用于主表子集的信息。