Access 2013 数据库管理与应用从新手到高手
上QQ阅读APP看书,第一时间看更新

1.3 关系模型

关系模型对数据库的理论和实践产生很大的影响,并且比层次和网状模型有明显的优点,成为当今市场的主流。若要深入学习Access 2013相关内容,则了解及掌握关系模型理论是非常必要的。

1.3.1 关系型数据库

关系数据库(Relational DataBase,RDB)是基于关系模型的数据库。在计算机中,关系数据库是数据和数据库对象的集合。

1.Access数据库结构

Access数据库是一个典型的关系数据库,是由数据表和数据表之间的关联组成的。其中数据表通常是一个由行和列组成的二维表,每一个数据表分别说明数据库中某一特定的方面或部分的对象及其属性。

数据表中的行通常叫做记录或元组,它代表众多具有相同属性的对象中的一个;数据库表中的列通常叫做字段或属性,它代表相应数据库表中存储对象的共有的属性。

在【库存信息】表中,主要通过产品的类型、特性等内容,来存储相关信息。其中,每条记录代表一个产品的完整信息,每一个字段代表产品的属性。这样就组成了一个相对独立于其他数据表之外的产品信息表。

另外,用户在该数据表中进行添加、删除或修改记录等操作时,不会影响到数据库中其他的数据表内容。

2.实体及实例集

实体是客观世界中存在的且可互相区分的事物。实体可以是人也可以是实物,也可以是抽象概念。例如:职工、学生、教师、课程等都是实体。

同一类实体的所有实例就构成该对象的实体集。实体集是实体的集合,由该集合中实体的结构或形式表示,而实例则是实体集中的某个特例。例如,【产品编号】为A3-3的产品内容,则是【库存信息】表实体集中的一个实例,通过其属性值表示。

通常实体集中有多个实体实例。例如,数据库中存储的产品的各个信息,是“库存信息”实体集中的实例。

在实体集中,包含有多个实例。而对数据库来说,则该数据表,有许多记录内容。因此,一个实例也可以看作数据库中的一条记录。

3.表及特性

数据库将关系术语作为表的同义词,所以表也叫关系,可以永久地保存其内容。

而在Access数据库中,通过数据的表视图可以清楚、直观地看到数据的实体关系,并且简化了数据库设计的任务。

一般情况下,数据表具有下列特征。

表被看作由行和列组成的二维结构。

表的每一行(记录)都代表实体集中的单一实体的具体值。

表的每一列(字段)都代表一种属性,每一列的名称都不相同。

每一行与列相交处(单元格)都代表一个单一数据值。

列中的所有值都必须遵循相同的数据格式(数据类型)。

每一列都有值的具体范围,被称为属性域。

在数据表中,用户可以随意调整行和列的顺序。

每个表都必须具有唯一地标识每一行的属性和属性组合。

4.键

键(key)是关系中用来标识行的一列或者多列。键可以是唯一(Unique)的,也可以不唯一(NonUnique)。下表中描述了关系数据库中,一些关于键的内容。

1.3.2 关系类型

在关系模型中,实体和实体间的联系都是用关系表示的。也就是说,二维表格中既存放着实体本身的数据,又存放着实体间的联系。关系不但可以表示实体间一对多的联系,也可以通过建立关系间的关联,表示多对多的联系。

1.一对一关系

如果对于实体集A中的每一个实例,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。

例如,在【库存信息】表中,【产品编号】字段与【出货单明细】表中,【产品编号】字段之间的内容是单一的,并且产品与产品编号之间具有一对一联系。

2.一对多关系

如果实体集A中的每一个实例,实体集B中有n个实例(n≥0)与之联系。反之,对于实体集B中的每一个实体,实体集A中至多只有一个实例与之联系,则称实体集A与实体集B具有一对多联系,记为1:n

例如,在【出货单】表中的【客户ID】字段的多个编号,可以在【客户信息】表的【客户】字段中找到相对应的内容。

3.多对多关系

如果实体集A中的每一个实例与实体集B中有n个实例(n≥0)与之联系。反之,对于实体集B中的每一个实例,实体集A中也有m个实例(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n

例如,在【借阅记录】表中每本书对应的读者不相同,而在【读者信息】表中每位读者对应的书籍也不相同。因此,两个数据表之间,则具有多对多关系。

1.3.3 关系代数

关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。它用于对关系的运算,进行表达式查询。

关系运算符有4类:集合运算符,专门的关系运算符,算术比较符和逻辑运算符。

根据运算符的不同,关系代数运算可分为传统的集合运算和专门的关系运算。

1.传统的集合运算

传统的集合运算是从关系的水平方向进行的,主要包括:并、交、差及广义笛卡儿积。

并(Union) 关系RS的并记作:RUS={tR V tS}

差(Difference) 关系RS的差记作:R-S={tRtS}

交(Intersection) 关系RS的交记作:RS={tRtS}

广义笛卡儿积(Extended Cartesian Product) 两个分别为n目和m目的关系RS的广义笛卡儿积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若RK1个元组,SK2个元组。则RS的广义笛卡儿积有(KK2)个元组。记作:R×S={ trts | trRtsS}

2.专门的关系运算

专门的关系运算可以从关系的水平方向进行运算,又可以从关系的垂直方向运算。下面我们来介绍常见的3种方法。

❏选择运算

选择是从关系中查找符合指定条件行的操作。以逻辑表达式为选择条件,将筛选满足表达式的所有记录。选择操作的结果构成关系的一个子集,是关系中的部分行,其关系模式不变。选择操作是从二维表中选择若干行的操作。

❏投影运算

投影是从关系数据表中,选取若干个属性的操作。而所选择的若干属性,将形成一个新的关系数据表,其关系模式中属性个数由用户来确定,或者排列顺序不同,同时也可能减少某些元组。因为排除了一些属性后,特别是排除了关系中关键字属性后,所选属性可能有相同值,出现相同的元组,而关系中必须排除相同元组,从而有可能减少某些元组。

❏连接运算

连接是将两个或者两个以上的关系数据表的若干属性,拼接成一个新的关系模式的操作。对应的新关系中,包含满足连接条件的所有行。连接过程是通过连接条件来控制的,连接条件中将出现两个关系数据表中的公共属性名,或者具有相同语义、可比的属性。