数据库应用基础:Access 2007
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

任务11 在表之间建立关系

任务描述

在Access数据库中为每个主题设置不同的表后,还必须告诉Access如何将这些表中的信息合并在一起。为了实现这个目的,首先需要通过公共字段在表之间建立关系,然后创建查询、窗体及报表,以便于从多个表中检索并显示信息。在本任务中,将在“成绩管理”数据库中定义表之间的关系,包括通过“系别编号”字段在“系别”表与“班级”表之间建立一对多关系,以及通过“班级编号”字段在“班级”表与“学生”表之间建立一对多关系。

实现步骤

(1)在Access 2007中,打开“成绩管理”数据库。

(2)在“数据库工具”选项卡的“显示/隐藏”组中选择“关系”命令,如图2.95所示。

图2.95 建立表关系

(3)当出现“关系”窗口时,在“设计”选项卡的“关系”组中选择“显示表”命令,如图2.96所示。

图2.96 显示要添加的表

(4)在“显示表”对话框中选择要建立关系的所有表,可单击“班级”表,然后按住“Shift”键单击“学生”表,再依次单击“添加”按钮和“关闭”按钮,如图2.97所示。

图2.97 “关系”对话框与“显示表”对话框

(5)若要在两个表之间建立关系,在“关系”窗口中从一个表中可将所要关联的字段拖到另一个表的对应字段上。在本任务中,先将“系别”表的“系别编号”字段拖到“班级”表上。

提示

若要拖动多个字段,可按住Ctrl键不放依次单击各个字段,然后把这些字段拖到另一个表的对应字段上。表中的主键字段通常以粗体字显示,可将它拖到另一个表的外键字段上。相关字段不一定同名,但它们必须具有相同的数据类型,并且包含相同的内容。除了在“关系”窗口中创建表关系外,基于表/查询来设置查阅字段列时也可能会在表之间创建关系。

(6)此时弹出如图2.98 所示的“编辑关系”对话框,显示出两个表(“系别”表为主表)中的对应字段,可对以下选项进行设置。

图2.98 “编辑关系”对话框

① 若要设置连接类型,可单击“联接类型”按钮,然后在“联接属性”对话框中选择所需的选项(其中1表示内联接,2表示左联接,3表示右联接),如图2.99所示。

图2.99 “联接属性”对话框

② 若要对关系实施参照完整性(若主表中无相关记录,则不能在子表中添加记录;若子表中有相关记录,则不能从主表中删除记录),可选中“实施参照完整性”复选框。

③ 若要在主表的主键字段更改时自动更新相关表中的对应数据,可以选中“级联更新相关字段”复选框。

④ 若要在删除主表中的记录时自动删除相关表中的有关记录,可以选中“级联删除相关记录”复选框。

(7)单击“创建”按钮,在“系别”表与“班级”表之间建立关系,可看到两个表之间出现了一条关系线,“1”方表中的字段为主键,“ ”方表中的字段为外键,如图2.100所示。

图2.100 在表间建立关系

(8)使用同样的方法,在其他相关的之间分别建立一对多关系。“关系”界面的最终布局如图2.101所示。

图2.101 “关系”界面布局

(9)在快速访问工具栏上单击“保存”按钮,以保存表之间的关系。

知识与技能

Access数据库通常包含多个表。在不同表之间可以通过公共字段建立关系。

1. 关系的类型

关系是在两表的公用字段之间创建的关联性。两个表之间的关系分为“一对一”、“一对多”和“多对多”3种类型。

(1)一对一关系。在一对一关系中,在A表中的每一记录仅能在B表中有一个匹配的记录,并且在B表中的每一记录仅能在A表中有一个匹配记录。一对一关系类型并不常用,因为两个表中重复字段浪费了磁盘空间。在实际应用中,可以使用一对一关系将一个表分成许多字段,或因安全问题隔离表中部分的数据,或保存仅应用在主表中的子集的信息。

(2)一对多关系。一对多关系是关系中最常用的类型。在一对多关系中,A表中的一个记录能与B表中的许多记录匹配,但是在B表中的一个记录仅能与A表中的一个记录匹配。例如,由于一个系有多个班级,“系别”表中的一条记录可以对应于“班级”表中的多条记录,而“班级”表中的一条记录只能对应于“系别”表中的一条记录。因此,在“成绩管理”数据库中,可以通过“系别编号”在“系别”表与“班级”表之间建立起一对多的关系。“系别编号”字段是“系别”表的主键字段,在“班级”表中通过“系别”字段引用“系别”表中的“系别编号”字段,“班级”表中的“系别”字段称为外键,外键用于表明表之间的关系。

(3)多对多关系。在多对多关系中,A表中的记录能与B表中的许多记录匹配,并且在B表中的记录也能与A表中的许多记录匹配。此关系的类型仅能通过定义第三个表(称作连接表)来达成,它的主键包含两个字段,即来源于A和B两个表的外键。实际上,多对多关系是使用第三个表的两个一对多关系。

2. 在表之间建立关系

若要在表之间建立关系,可在“数据库工具”选项卡的“显示/隐藏”组中选择“关系”命令,并将要建立关系的表添加到“关系”窗口中,然后从一个表中将所要关联的字段拖到另一个表的对应字段上。此外,定义表结构时,通过建立从表/查询中获取数据的查阅字段,也可以在表之间建立关系。在表之间建立关系后,当基于多个表创建查询时,将会自动使用连接运算符来连接相关的表。

3. 编辑表之间的关系

若要编辑表之间的关系,可在“关系”窗口中单击要编辑的关系线,然后从弹出的菜单中选择“编辑关系”命令,或者双击要编辑的关系线。当弹出“编辑关系”对话框时,重新设置两个表之间的关系。

4. 删除表之间的关系

若要删除两个表之间的已有关系,可在“关系”窗口中单击要编辑的关系线,然后从弹出菜单中选择“删除”命令,或者按“Delete”键。

5. 参照完整性

参照完整性是一个规则的系统,Access使用这些规则保证在相关表的记录间关系是有效的,并且保证了用户不会删除或更改相关的数据。通过选中“实施参照完整性”复选框,可以为关系实施参照完整性,但前提是应具备几个条件:主表的相关字段必须为主键或具有唯一索引,同时相关字段必须具有相同的数据类型,并且两个表都必须保存在同一个Access数据库中。如果取消选择“实施参照完整性”复选框,则允许更改可能会破坏参照完整性规则的相关表。