ACCESS中表间建立"关系"有什么好处?

如题所述

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

在关系数据库中,关系能防止冗余的数据。例如,如果正在设计一个数据库来跟踪有关书的信息,而每本书的信息(如书名、出版日期和出版商)都保存在一个名为 titles 的表中。同时还有一些想保存的有关出版商的信息,例如出版商的电话号码、地址和邮政编码。如果将所有这些信息都保存在 titles 表中,则对于某个出版商出版的每本书,出版商的电话号码将是重复的。

一个更好的解决方案是,单独在一个名为 publishers 的表中只保存一次出版商信息。然后在 titles 表中设置指针,以引用 publishers 表中的项。

若要确保数据同步,可以在 titles 表和 publishers 表之间强制引用完整性。引用完整性关系能确保某个表中的信息与另一个表中的信息相匹配。例如,titles 表中的每个书名必须和 publishers 表的特定出版商相关联。不能在数据库中添加数据库中不存在的出版商的书名。

为更好地理解表关系,请参见:

表关系类型

引用完整性概述
表关系类型
关系是通过匹配键列中的数据而工作的,而键列通常是两个表中具有相同名称的列。在大多数情况下,关系将一个表中为每个行提供唯一标识符的主键与另一个表中外键内的项相匹配。例如,通过在 titles 表的 title_id 列(主键)和 sales 表的 title_id 列(外键)之间创建一个关系,可以使销售额与特定的销售书名相关联。

表与表之间存在三种类型的关系。所创建的关系类型取决于相关联的列是如何定义的。

一对多关系

多对多关系

一对一关系
一对多关系
一对多关系是最常见的关系类型。在这种关系类型中,表 A 中的行可以在表 B 中有许多匹配行,但是表 B 中的行只能在表 A 中有一个匹配行。例如,publishers 表和 titles 表是一对多的关系:每一个出版商可出版许多书,但每一本书只能有一个出版商。

如果在相关列中只有一列是主键或具有唯一约束,则创建的是一对多关系。

一对多关系中的主键方由一个键 符号表示。关系中的外键方由一个无穷大 符号表示。

多对多关系
在多对多关系中,表 A 中的一行可与表 B 中的多行相匹配,反之亦然。通过定义称为连接表的第三方表创建这样的关系,该连接表的主键包括表 A 和表 B 中的外键。例如,authors 表和 titles 表是多对多关系,该关系通过从这些表中的每个表与 titleauthors 表的一对多关系定义。titleauthors 表的主键由 au_id 列(authors 表的主键)和 title_id 列(titles 表的主键)组成。

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

这种关系不常见,因为这种方式的大部分相关信息都在一个表中。使用一对一关系可以是为了:

分割一个含有许多列的表。

出于安全考虑而隔离表的某一部分。

存储可以很容易删除的临时数据,只需删除表即可删除这些数据。

存储只应用于主表子集的信息。
一对一关系的主键方由键 符号表示。外键方也由键 符号表示。

引用完整性概述
引用完整性是一种规则系统,这些规则可确保相关表中各行间关系的有效性,并确保不会意外删除或更改相关的数据。

在强制引用完整性时必须遵循以下规则:

如果在相关表的主键中不存在某个值,则不能在相关表的外键列中输入该值。但是,可以在外键列中输入空值。例如,在 employee 表中没有包括某职员,则不能指明分配给该职员的工作,但是可在 employee 表的 job_id 列输入空值来指明没有给该职员分配工作。

如果在相关表中存在与某行匹配的行,则不能从主表中删除该行。例如,如果在 employee 表中给多个职员分配了由 jobs 表中某行所代表的工作时,则不能删除该行。

当主表的某行有相关行时,则不能更改主键值。例如,如果将 jobs 表中的一项工作分配给某职员,则不能从 employee 表中删除该职员。
当满足下述所有条件时,可以设置引用完整性:

主表中相匹配的列是主键或具有唯一约束 。

相关列具有相同的数据类型和长度。

两个表属于同一个数据库。
数据库关系图中的已强制关系和未强制关系
在数据库关系图中创建关系线将在相关表上创建外键约束,从而自动强制引用完整性。在数据库关系图中,已强制关系用实线表示。例如:

在关系图中,未强制关系用虚线表示,这种关系的外键约束被禁用。例如:

根据数据库的功能,对于某些情况(例如在 INSERT 和 UPDATE 事务处理过程中)可设置选项以禁用外键约束。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-28
建立表间关系主要是为了方便连接两个表或多个表,以便一次能查找到多个相关数据。
为什么将多个数据置于多个不同的表中呢?一是为了减少数据冗余,二是为了保证数据的完整和正确。
将数据分割成多个表的依据是什么呢?主要是数据库的第一(1NF)、第二(2NF)、第三(3NF)和BC范式(BCNF)。本回答被提问者和网友采纳
第2个回答  2020-12-20

ACCESS中表间建立"关系"有什么好处?
可以在数据库关系图中的表间创建关系以显示某个表中的列如何链接到另一表中的列。在关系数据库中,关系能防止冗余的数据。例如,如果正在设计一个数据库来跟踪有关书的信息,而每本书的信息(如书名、出版日期和出版商)都保存在一个名为 titles 的表中。同时还有一些想保存的有关出版商的信息,例...

access中表的关系有什么用的啊!?
最佳答案 关系型数据库中,建立表间关系保证数据的完整和正确是这样的,比如你的表中有一万条数据,这个有一个字段是性别,如果不用关系直接填性别就是要填上一万个字符串“男或者女”,如果你一不小输成别的字符串,那么这个记录就出错了,就会出现“非男或者女”的字符在这个字段上,然而如果你用一个子表储存男或...

表关系在access2007中的作用是什么?
Access 里面, 你要是先把 表关系设置好, 那么以后建多表查询的时候,就很方便。例如你有4个表 学校表(学校ID , 学校名...)系表(系ID, 学校ID, 系名...)班级表(班级ID, 系ID, 班级名...)学生表(学生ID, 班级ID,姓名,性别...)如果你表建好了,但是不在Access里面建关系 然后你在 A...

在ACCESS 2007中,为什么要建立表间关系?表之间有哪几种关系?
表关系包括:一对一、一对多、多对多。表关系的作用:在 Access 数据库中为每个主题都设置了不同的表后,必须告诉 Access 如何将这些信息组合到一起。该过程的第一步是定义表间的关系,然后可以创建查询、窗体或报表,以便同时显示来自多个表中的信息。

ACCESS中表和数据库的关系?
Access是一款数据库应用的开发工具软件,其开发对象主要是Microsoft JET数据库和Microsoft SQLServer数据库。由于在Office 97及以前的版本中,Microsoft JET 3.51及以前版本的数据库引擎是随Access一起安装和发布的,JET数据库与Access就有了天生的血缘关系,并且Access对JET数据库做了很多地扩充。Windows操作...

Access怎么建立数据表间的关系?
1、用来进行数据分析:access有强大的数据处理、统计分析能力,利用access的查询功能,可以方便地进行各类汇总、平均等统计。并可灵活设置统计的条件。比如在统计分析上万条记录、十几万条记录及以上的数据时速度快且操作方便,这一点是Excel无法与之相比的。这一点体现在:会用access,提高了工作效率和工作...

access2010中表和数据库的关系是
一个数据库可以包含多张表格,每一张表格对应着一组数据,而多张表格之间可以通过关系进行连接,从而实现各种数据处理操作。在Access2010中,表是数据库中一组相关数据的有组织的集合。表是数据库的基础,它包含着所有存储在Access数据库中的信息。提供强大的数据管理技术,能够极大地提高数据处理的效率和...

一个关于ACCESS的问题
access数据库是一种关系型数据库,各个表的数据之间有一对一,一对多,多对多,三种关系,决定于数据之间的关系,具体在建立表或查询时 1. 如果表之间的数据关系是一对一 姓名与员工编号,一个员工只有一个编号,一个编号对应一个员工 2. 一对多 客户对订单号,一个客户可能有多个订单,但一个订单只对应一...

access数据库怎么建立表关系呢?
在 Access 中定义关系时,相关字段无需同名,但必须具有相同的数据类型,除非主键为自动编号字段。创建一对多或一对一关系时,需要在“关系”视图中设置。多对多关系则通过建立连接表来实现,该表包含两个相关表的主键作为外键。引用完整性规则确保相关表记录之间的关系有效,允许设置级联更新和删除以保持...

access建立关联的作用
应该是关系吧!表间建立关系的作用是通过实施参照完整性,自动进行数据更新。打个比方,表A的学号和表B的学号建立关系,当表A学号的某个数据更改了,表B对应的学号会自动更改。

相似回答