Access 2003完整教程:关于表关系 (ADP)

可以在数据库图表中的表之间创建关系,以显示一个表中的列与另一个表中的列是如何链接的。

表关系定义

在关系型数据库中,利用关系可以避免出现冗余的数据。例如,如果正在设计用于跟踪书籍信息的数据库,则可能会用名为titles的表来存储有关每本书的信息,如书名、出版日期和出版社。有关出版社的信息可能也需要存储,如出版社的电话、地址和邮政编码。如果将所有这些信息都存储在titles表中,则对于该出版社出版的每本书都会有重复的出版社电话。

较好的解决方案是在一个单独的表publishers中只存储一次出版社电话。然后可以在titles表中设置一个指针,引用出版社表中的一个条目。

为了不使数据失去同步,可以在表titlespublishers之间实施参照完整性。参照完整性关系可以帮助确保一个表中的信息与另一个表中的信息相匹配。例如,表titles中的每本书都必须与表publishers中特定的出版社相关联。如果数据库中没有某个出版社的信息,则该出版社的书名也不能添加到这个数据库中。

表关系的类型

关系是通过匹配键列(通常是两个表中同名的列)中的数据进行工作的。多数情况下,关系会将一个表中的主键(它为每行提供了唯一的标识)与另一个表的外键中的条目进行匹配。例如,通过在titles表的title_id列(主键)与sales表的title_id列(外键)之间创建关系,可以将销售额与已销售的特定书籍关联起来。

表之间的关系有三种类型。所建关系的类型取决于相关列是如何定义的。

一对多关系

一对多关系是最常见类型的关系。这种关系中,表 A 中的一行可以匹配表 B 中的多行,但表 B 中的一行只能匹配表 A 中的一行。例如,表publisherstitles之间就有一对多关系:每家出版社都出版许多书,但是每种书只会出自一家出版社。

只有当相关列是一个主键或具有唯一约束时,才能创建一对多关系。

一对多关系的主键方由钥匙符号钥匙符号表示。关系的外键侧由无穷大符号无穷大符号表示。

多对多关系

在多对多关系中,表 A 中的一行可以匹配表 B 中的多行,反之亦然。要创建这种关系,需要定义第三个表,称为结合表,它的主键由表 A 和表 B 两个表中的外键组成。例如,表authors和表titles具有多对多关系,该关系由这两个表各自对表titleauthors的一对多关系所定义。表titleauthors的主键是au_id列(authors表的主键)和title_id列(titles表的主键)的组合。

一对一关系

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

这种关系并不常见,因为以这种方式相关的大多数信息一般都在一个表中。可以利用一对一关系来:

一对一关系的主键方由钥匙符号钥匙符号表示。外键方也是由钥匙符号钥匙符号表示的。

参照完整性概述

参照完整性的定义

参照完整性是一套规则系统,能确保相关表中各行之间关系的有效性,并且确保不会意外删除或更改相关的数据。

当实施参照完整性时,必须遵守以下规则:

当满足下列全部条件时,可以设置参照完整性:

数据库图表中实施与未实施参照完整性的关系

在数据库图表中创建关系线时,会通过在相关表上创建外键约束而自动实施参照完整性。实施了参照完整性的关系在数据库图表中显示为实线。例如:

实线

未实施参照完整性的关系(其外键约束已被禁用)在数据库图表中显示为虚线。例如:

虚线

在某些情况下(例如,在 INSERT 和 UPDATE 事务处理过程中),根据数据库的功能,可以设置选项以禁用外键约束。

上页:Access 2003完整教程:关于“表设计器” (ADP) 下页:Access 2003完整教程:关于表 (ADP)

Access 2003完整教程:关于表关系 (ADP)

Access 2003完整教程:关于表 (ADP)Access 2003完整教程:联接的类型 (ADP)
Access 2003完整教程:关于使用具有国际化数据的“查询设计器” (ADP)Access 2003完整教程:使用通配符示例 (ADP)
Access 2003完整教程:关于多用户环境 (ADP)Access 2003完整教程:关于触发器 (ADP)
Access 2003完整教程:向所选列添加公式将会删除该列参与的所有索引和关系。Access 2003完整教程:向所选列添加公式将会删除该列作为外键参与的所有关系。
Access 2003完整教程:数据库中已经存在有同名的数据库图表。Access 2003完整教程:不能将表达式用作参数值。
Access 2003完整教程:在您处理该数据库图表时,其他用户也对其做了修改。Access 2003完整教程:索引视图中不能使用星号 (*)。
Access 2003完整教程:将该列改为所选数据类型将会删除其索引。Access 2003完整教程:将列更改为选定的数据类型会删除其索引和所有参与的关系。
Access 2003完整教程:将该列改为所选数据类型将会删除关系。Access 2003完整教程:更改此别名会导致输出列同名。
Access 2003完整教程:索引视图中可能无法使用 Collate 子句。Access 2003完整教程:列“<0s>”是计算列,不能作为外键。
Access 2003完整教程:列“<0s>”是计算列,不能参与索引或关系。Access 2003完整教程:列“<0s>”用于对表 <1s> 实施全文关键字且必须为 <2d> 或更少字节。
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号