23设计 Access2003数据表对象之间的关联 ◆在数据库应用系统中,一个数据库中常常包含 若干个数据表,用以存放不同类别的数据集合 而这些数据集合存放于同一个数据库中,是由 于 存在着相互联接的关系。这种数据 集合间的相互联接称之为关联。在关系数据库 的实现中,主要存在两种关联:一对一的关联 和一对多的关联。 ◆ Access2003是一个关系型数据库管理系统,上 述两种关联是通过设定数据库中表对象的关联 来实现的。 ◆数据表关联的目的是为了实现关系联接运算, 即将两个数据表中的相关记录联接形成一个新 关系中的一条记录,这个新关系称为关联数据 表 主目录
2.3 设计Access 2003数据表对象之间的关联 在数据库应用系统中,一个数据库中常常包含 若干个数据表,用以存放不同类别的数据集合。 而这些数据集合存放于同一个数据库中,是由 于它们之间存在着相互联接的关系。这种数据 集合间的相互联接称之为关联。在关系数据库 的实现中,主要存在两种关联:一对一的关联 和一对多的关联。 Access 2003是一个关系型数据库管理系统,上 述两种关联是通过设定数据库中表对象的关联 来实现的。 数据表关联的目的是为了实现关系联接运算, 即将两个数据表中的相关记录联接形成一个新 关系中的一条记录,这个新关系称为关联数据 表。 主目录
23设计 Access2003数据表对象之间的关联 23.1一对一关联 02.3.2一对多关联 23.3子数据表 234建立数据库中表间关联的操作
2.3 设计Access 2003数据表对象之间的关联 2.3.1 一对一关联 2.3.2 一对多关联 2.3.3 子数据表 2.3.4 建立数据库中表间关联的操作
231一对一关联 对一关联是指两个数据表对象中的各条记 录之间存在这样一种对应的关系,只有当 两个数据表中某一条记录的联接关键字段 值相等时,两个数据表中的这一条记录才 能联接成为关联数据表中的一条记录。 对一关联要求两个关联数据表中的联接关 键字段分别是这两个数据表的主关键字段
一对一关联是指两个数据表对象中的各条记 录之间存在这样一种对应的关系,只有当 两个数据表中某一条记录的联接关键字段 值相等时,两个数据表中的这一条记录才 能联接成为关联数据表中的一条记录。一 对一关联要求两个关联数据表中的联接关 键字段分别是这两个数据表的主关键字段。 2.3.1 一对一关联
23.1一对一关联 可以 GrocerMIS为例讨论关联的意义。在“库存数 据记录”表中,“货号”字段中的数据必须互不 相同,用以表示不同的商品。只有在“库存数据 记录”表中存在的商品才可以通过“商品上柜数 据录入”操作,使其添加到“柜存数据记录”表 中,且在“柜存数据记录”表中的同一商品的货 号必须与“库存数据记录”表中的货号相同,如 此方能保证各种査询和统计数据的正确性。这就 表示“库存数据记录”表中的记录与“柜存数据 记录”表中的记录必须是一对一的关联,且“库 存数据记录”表称为主表,“柜存数据记录”表 称为从表,而两个数据表间的联接关键字是“货 字段
2.3.1 一对一关联 可以GrocerMIS为例讨论关联的意义。在“库存数 据记录”表中,“货号”字段中的数据必须互不 相同,用以表示不同的商品。只有在“库存数据 记录”表中存在的商品才可以通过“商品上柜数 据录入”操作,使其添加到“柜存数据记录”表 中,且在“柜存数据记录”表中的同一商品的货 号必须与“库存数据记录”表中的货号相同,如 此方能保证各种查询和统计数据的正确性。这就 表示“库存数据记录”表中的记录与“柜存数据 记录”表中的记录必须是一对一的关联,且“库 存数据记录”表称为主表,“柜存数据记录”表 称为从表,而两个数据表间的联接关键字是“货 号”字段
Q232-对多关联 ◆一对多关联不同于一对一关联,它不要求两个 关联数据表中的联接关键字段分别是这两个数 据表的主关键字段,这意味着联接关键字段值 相等的记录可能不只一条。如此一来,一对多 关联就存在两种不同的形式。第一种一对多关 联形式为,取主表中的所有记录,并逐一从从 表中选取那些与主表中联接关键字段值相等的 记录,联接形成关联数据表中的一条记录。第 种一对多关联形式为,取从表中的所有记录 并逐一从主表中选取那些与从表中联接关键字 段值相等的记录,联接形成关联数据表中的 条记录
2.3.2 一对多关联 一对多关联不同于一对一关联,它不要求两个 关联数据表中的联接关键字段分别是这两个数 据表的主关键字段,这意味着联接关键字段值 相等的记录可能不只一条。如此一来,一对多 关联就存在两种不同的形式。第一种一对多关 联形式为,取主表中的所有记录,并逐一从从 表中选取那些与主表中联接关键字段值相等的 记录,联接形成关联数据表中的一条记录。第 二种一对多关联形式为,取从表中的所有记录, 并逐一从主表中选取那些与从表中联接关键字 段值相等的记录,联接形成关联数据表中的一 条记录
232一对多关联 ◆可以 GrocerMIS为例讨论第一种一对多关联的 形式。在“柜存数据记录”表和“销售数据记 录”表之间存在着一对多的关联,“柜存数据 记录”表中记录的商品可以分多次售出。因此, 在“柜存数据记录”表中同一商品将在“销售 数据记录”表中被记录多次。这就表示“柜存 数据记录”表中的记录与“销售数据记录”表 中的记录实际是一对多的关联,且“柜存数据 记录”表是主表,“销售数据记录”表是从表, 两个数据表间的联接关键字是“货号”字段。 在以此形成的关联数据表中,一些“柜存数据 记录”表中的记录将重复记录几次,重复记录 的次数取决于一件商品的销售次数
2.3.2 一对多关联 可以GrocerMIS为例讨论第一种一对多关联的 形式。在“柜存数据记录”表和“销售数据记 录”表之间存在着一对多的关联,“柜存数据 记录”表中记录的商品可以分多次售出。因此, 在“柜存数据记录”表中同一商品将在“销售 数据记录”表中被记录多次。这就表示“柜存 数据记录”表中的记录与“销售数据记录”表 中的记录实际是一对多的关联,且“柜存数据 记录”表是主表,“销售数据记录”表是从表, 两个数据表间的联接关键字是“货号”字段。 在以此形成的关联数据表中,一些“柜存数据 记录”表中的记录将重复记录几次,重复记录 的次数取决于一件商品的销售次数
233子数据表 ◆ Access2003数据表对象支持子数据表。所谓子 数据表,是指在一个数据表视图中显示已与其 建立关联的数据表视图 ◆在建有关联的主数据表视图上,每一条记录左 端均有一个关联标记“口”。在未显示子数据 表时,关联标记“”内为一个“+”号,此时 单击某以记录的关联标记“口”,即可显示该 记录对应的子数据表记录数据,而该记录左端 的关联标记“口”内成为一个“2号。 ◆若需展开所有记录的子数据表数据,可以在数 据库设计视图的菜单栏工单击【格式】【子数 据表】【全部展开】。若需将所有展开的子数 据表折叠,可以在数据库设计视图的菜单栏上
2.3.3 子数据表 Access 2003数据表对象支持子数据表。所谓子 数据表,是指在一个数据表视图中显示已与其 建立关联的数据表视图。 在建有关联的主数据表视图上,每一条记录左 端均有一个关联标记“□”。在未显示子数据 表时,关联标记“□”内为一个“+”号,此时 单击某以记录的关联标记“□”,即可显示该 记录对应的子数据表记录数据,而该记录左端 的关联标记“□”内成为一个“-”号。 若需展开所有记录的子数据表数据,可以在数 据库设计视图的菜单栏上单击【格式】|【子数 据表】|【全部展开】。若需将所有展开的子数 据表折叠,可以在数据库设计视图的菜单栏上 单击【格式】|【子数据表】|【全部折叠】
23.3子数据表 翻库存数据记录:表 回区 货号货名规格计量单位进货单价库存数量进货日期收货人供货商 0202绿野香花生2506 50 1102004-1015程 江汉副食批发 规格 计量单位 销售单价 柜存数量 上柜日期 上柜人 营业员 卜绿野香花生250 1.50 200-10-15李倩如 销售序列号货名 规格 计量单位销售单价 销售数量 销售日期 肖售人员 13837绿野香花生250G 1.50 2004-10-15钟舒宁 13839绿野香花生250G 2004-10-15钟舒宁 米(自动编号 210 0.75 402004-10-15程盡 江汉副食批发 规格 计量单位销售单价柜存数量上柜日期「上柜人 营业员 125G 2004-10-15李倩如 +0204洽洽茶瓜子茶色 袋袋袋袋 80200410-15程鑫 江汉副食批发 0205烤馒锅巴125G 200410-15张大宏 康师傅江岸分 货名。规格。计量单位销售单价柜存数量 上柜日期 上柜人 营业员 4-10-15张大 钟舒宁 销售序列号货名规格计量单位销售单价 销售数量销售日期 销售人员 米【(自动编号 0206旺旺小小酥精装袋 00200-1015李倩如 尚利公司 +0208 大九制语梅大包装袋 262041815程鑫江汉副食批发| 记录:[4 1D小米共有记录数:2
2.3.3 子数据表
2.3.4建立数据库中表间关联的操作 ◆1.选定需要建立关联的表对象 ◆单击常用工具栏中的“关系”工具按钮“” (或在数据库设计视图菜单栏上单击【工具】 【关系】),随即出现如图2-17所示的“关系 设计视图”窗口。若已定义了一些关系,该窗 口内会显示这些关系;若尚未定义任何关系, 该窗口内没有任何内容;若需定义新的关系, 可在该窗口内单击鼠标右键,在随即弹出的快 捷菜单中单击【显示表】,也可在关系设计视 图的菜单栏上单击【关系】【显示表】,即会 弹出“显示表”对话框
2.3.4 建立数据库中表间关联的操作 1.选定需要建立关联的表对象 单击常用工具栏中的“关系”工具按钮“” (或在数据库设计视图菜单栏上单击【工具】| 【关系】),随即出现如图2-17所示的“关系 设计视图”窗口。若已定义了一些关系,该窗 口内会显示这些关系;若尚未定义任何关系, 该窗口内没有任何内容;若需定义新的关系, 可在该窗口内单击鼠标右键,在随即弹出的快 捷菜单中单击【显示表】,也可在关系设计视 图的菜单栏上单击【关系】|【显示表】,即会 弹出“显示表”对话框
1.选定需要建立关联的表对象 ◆在 GrocerMIS数据库中,需要在“库存数据记录” “柜存数据记录”和“销售数据记录”三个表间建立 关联,其关联关键字段是“货号”字段。因此,需要 将数据库中的上述三个表对象添加至关系窗 图所示,即为在关系窗口中逐一添加了这三个数据表 对象后的形式。 关系 库存数据 柜存数据 显示表 销售数据 货号 货号 销告序号表查询两者都有 货名 货名 货号 添加 规格 规格 货名 供货商名单 「关闭c 计量单位 计量单位 规格 柜存数据记录 进货单价 销售单价 计量单位库存数据记录 库存数据记录〔导入〕 库存数据记录〔链接〕 收货人员名单 售货人员名单 肖售数据记录 销售业绩汇总表 画
1.选定需要建立关联的表对象 在GrocerMIS数据库中,需要在“库存数据记录”、 “柜存数据记录”和“销售数据记录”三个表间建立 关联,其关联关键字段是“货号”字段。因此,需要 将数据库中的上述三个表对象添加至关系窗口中。如 图所示,即为在关系窗口中逐一添加了这三个数据表 对象后的形式