1、 在信息系统中的一个数据库中常常包含若干个数据表,用以存放不同类别的数据集合。而这些数据集合存放于同一个数据库中,是由于它们之间存在着相互联接。这种数据集合间的相互联接称之为关联。在关系数据库的实现中,主要存在两种关联:一对一的关联和一对多的关联。Access是一个关系型数据库管理系统,上述两种关联是通过设定数据库中表对象的关联来实现的。数据表关联的目的是为了实现关系联接运算,即将两个数据表中的相关记录联接形成一个新关系中的一条记录,这个新关系称为关联数据表。3.3 3.3 表对象间的关联设定表对象间的关联设定 主目录主目录3.3 3.3 表对象间的关联设定表对象间的关联设定 3.3.13.3
2、.1、一对一关联、一对一关联 3.3.23.3.2、一对多关联、一对多关联 3.3.33.3.3、子数据表、子数据表 3.3.43.3.4、建立数据库中表间关、建立数据库中表间关联的操作联的操作 一对一关联是指两个数据表对象中的各条记录之间存在这样一种对应的关系,只有当两个数据表中某一条记录的联接关键字段值相等时,两个数据表中的这一条记录才能联接成为关联数据表中的一条记录。一对一关联要求两个关联数据表中的联接关键字段分别是这两个数据表的主关键字段。3.3.13.3.1、一对一关联、一对一关联 可以CMMIS为例讨论关联的意义。在“库存数据记录”表中,“货号”字段中的数据必须互不相同,用以表示不
3、同的商品。只有在“库存数据记录”表中存在的商品才可以通过“商品上柜数据录入”操作,使其添加到“柜存数据记录”表中,且在“柜存数据记录”表中的同一商品的货号必须与“库存数据记录”表中的货号相同,如此方能保证各种查询和统计数据的正确性。这就表示“库存数据记录”表中的记录与“柜存数据记录”表中的记录必须是一对一的关联,且“库存数据记录”表称为主表,“柜存数据记录”表称为从表,而两个数据表间的联接关键字是“货号”字段。一对多关联不同于一对一关联,它不要求两个关联数据表中的联接关键字段分别是这两个数据表的主关键字段,这意味着联接关键字段值相等的记录可能不只一条。如此一来,一对多关联就存在两种不同的形式。
4、第一种一对多关联形式为,取主表中的所有记录,并逐一从从表中选取那些与主表中联接关键字段值相等的记录,联接形成关联数据表中的一条记录。第二种一对多关联形式为,取从表中的所有记录,并逐一从主表中选取那些与从表中联接关键字段值相等的记录,联接形成关联数据表中的一条记录。3.3.23.3.2、一对多关联、一对多关联 可以CMMIS为例讨论第一种一对多关联的形式。在“柜存数据记录”表和“销售数据记录”表之间存在着一对多的关联,“柜存数据记录”表中记录的商品可以分多次售出。因此,在“柜存数据记录”表中同一商品将在“销售数据记录”表中被记录多次。这就表示“柜存数据记录”表中的记录与“销售数据记录”表中的记录
5、实际是一对多的关联,且“柜存数据记录”表是主表,“销售数据记录”表是从表,两个数据表间的联接关键字是“货号”字段。在以此形成的关联数据表中,一些“柜存数据记录”表中的记录将重复记录几次,重复记录的次数取决于一件商品的销售次数。自Access 2000版本始,Access数据表对象支持子 数据表。所谓子数据表,是指在一个数据表视图中显示已与其建立关联的数据表视图。观察图3-13所示的“库存数据记录”的子数据表显示形式,可以看到子数据表提供了相互关联着的数据表数据综合查询的优越。在建有关联的主数据表视图上,每一条记录左端均有一个关联标记“”。在未显示子数据表时,关联标记“”内为一个“+”号,此时单
6、击某以记录的关联标记“”,即可显示该记录对应的子数据表记录数据,而该记录左端的关联标记“”内成为一个“-”号。3.3.33.3.3、子数据表、子数据表 若需展开所有记录的子数据表数据,可以在数据库设计视图的菜单栏上单击【格式】|【子数据表】|【全部展开】。若需将所有展开的子数据表折叠,可以在数据库设计视图的菜单栏上单击【格式】|【子数据表】|【全部折叠】。图图3-13 “库存数据记录库存数据记录”的数据子表的数据子表显示形式显示形式 建立数据库中表间关联的操作,可以在数据库设计视图中按如下步骤进行。1选定需要建立关联的表对象选定需要建立关联的表对象 单击常用工具栏中的“关系”工具按钮“”(或在
7、数据库设计视图菜单栏上单击【工具】|【关系】),随即出现如图3-14所示的“关系设计视图”窗口。若已定义了一些关系,该窗口内会显示这些关系;若尚未定义任何关系该窗口内没有任何内容;若需定义新的关系,可在该窗口内单击鼠标右键,在随即弹出的快捷菜单中单击【显示表】,也可在关系设计视图的菜单栏上单击【关系】|【显示表】,即会弹出“显示表”对话框,如图3-15所示。3.3.43.3.4、建立数据库中表间关联的操作、建立数据库中表间关联的操作 图图3-14 空的空的“关系设计视图关系设计视图”在随之弹出的“显示表”对话框(如图3-14所示)中,依次选择需要对其设定关系的表对象,并单击“添加”按钮“”,使
8、得这些表对象显示在“关系设计视图”窗口内。完毕后,单击“关闭”按钮“”,关闭“显示表”对话框。在CmMIS数据库中,需要在“库存数据记录”、“柜存数据记录”和“销售数据记录”三个表间建立关联,其关联关键字段是“货号”字段。因此,需要将数据库中的上述三个表对象添加至关系窗口中。图3-15所示,即为在关系窗口中逐一添加了这三个数据表对象后的形式。图图3-153-15、进行添加表时的、进行添加表时的“关系设计视图关系设计视图”3设定各个表对象间的关联设定各个表对象间的关联 在“关系设计视图”窗口(如图3-15所示)中,可以为显示在其中的各表对象设定关联。用鼠标指向主表中的关联字段,按住鼠标左键将其拖
9、曳至从表的关联字段上放开,就会弹出“编辑关系”对话框,如图3-16所示。为了建立“库存数据记录”表中“货号”字段与“柜存数据记录”表中“货号”字段之间的联接关系,应从“库存数据记录”表中的“货号”字段,按住鼠标左键将鼠标拖曳至“柜存数据记录”表中的“货号”字段上放开。随之弹出的“编辑关系”对话框如图3-16所示。图图3-16 “编辑关系编辑关系”对话框对话框 在图3-16中可以看到主表是“库存数据记录”,相关表(即从表)是“柜存数据记录”,关系类型是一对一,不实施参照完整性(意为:不要求这两个相联接的表中记录一一对应)。然后,单击“创建”按钮“”。即可看到在“库存数据记录”的字段“货号”与“柜
10、存数据记录”的字段之间出现了一条连线,它表明所需要建立的两表间关联建立完成。按照这样的方法,可以设定这个数据库中各个表间的所有关系,如图3-17所示。图图3-17 CMMIS关系设计视图关系设计视图 4选择关联类型选择关联类型 在图3-16所示的“编辑关系”对话框中,单击“联接类型”按钮“”,即可弹出“联接属性”对话框,如图3-18所示。从图中可见,Access数据库支持三种不同类型的关联属性。这三种不同类型联接属性分别是:只包含来自两个表的联接字段相等处的行,包含所有“主表”的记录和那些联接字段相等的“从表”的记录,包括所有“从表”的记录和那些联接字段相等的“主表”的记录。应该根据实际需要从中选定一种联接属性类型。对于CMMIS这样一个实例,应该选择“只包含来自两个表的联接字段相等处的行”。如图3-18所示。图图3-183-18、“联接属性联接属性”对话框对话框 主目录主目录
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1