Access 2010数据库基础教程
上QQ阅读APP看书,第一时间看更新

1.1.2 数据模型及关系数据库

1.数据模型

模型(model)是现实世界特征的模拟和抽象。在数据库技术中,用数据模型(data model)这个工具来抽象、表示和处理现实世界中的数据和信息。数据模型包括数据库数据的结构部分、操作部分和约束条件。

现实世界中的客观事物是相互联系的:一方面,某一事物内部的诸因素和属性根据一定的组织原则相互具有联系,构成一个相对独立的系统;另一方面,某一事物同时也作为一个更大系统的一个因素或一种属性而存在,并与系统的其他因素或属性发生联系。客观事物的这种普遍联系性决定了作为事物属性记录符号的数据与数据之间也存在着一定的联系性。具有联系性的相关数据总是按照一定的组织关系排列,从而构成一定的结构,对这种结构的描述就是数据模型。

从理论上讲,数据模型是指反映客观事物及客观事物间联系的数据组织的结构和形式。客观事物是千变万化的,各种客观事物的数据模型也是千差万别的,但也有其共性。常用的数据模型有层次模型、网状模型和关系模型3种。

(1)层次模型

层次模型(hierarchical model)表示数据间的从属关系结构,是一种以记录某一事物的类型为根结点的有向树结构。层次模型像一棵倒置的树,根结点在上,层次最高;子结点在下,逐层排列。这种用树形结构表示数据之间联系的模型也称树结构。层次模型的特点是仅有一个无双亲的根结点;根结点以外的子结点,向上仅有一个父结点,向下有若干子结点。

层次模型表示的是从根结点到子结点的一个结点对多个结点,或从子结点到父结点的多个结点对一个结点的数据间的联系,如图1-3所示。

图1-3 层次模型

(2)网状模型

网状模型(network model)是层次模型的扩展,表示多个从属关系的层次结构,呈现一种交叉关系的网络结构,如图1-4所示。网状模型是以记录为结点的网络结构,用网状数据结构表示实体与实体之间的联系。网状模型的特点是:可以有一个以上的结点无双亲,至少有一个结点有多于一个的双亲。因此,层次模型是网状模型的特殊形式,网状模型可以表示较复杂的数据结构,即可以表示数据间的纵向关系与横向关系。这种数据模型在概念上、结构上都比较复杂,操作上也有很多不便。

图1-4 网状模型

(3)关系模型

关系模型(relational model)是用二维表的形式表示实体和实体间联系的数据模型。在二维表中每一列称为字段,字段是最基本的单位不可再分,每一列数据项是同属性的,各列的顺序是任意的;每一行称为记录,由一个事物的诸多属性项构成,记录的顺序可以是任意的。不允许有相同的字段名,也不允许有相同的记录行。

2.关系数据库

关系数据库(relation database)是若干依照关系模型设计的数据表文件的集合。也就是说,关系数据库是由若干完成关系模型设计的二维表组成的。一个二维表为一个数据表,数据表包含数据及数据间的关系。

一个关系数据库由若干数据表组成,数据表又由若干记录组成,而每一个记录是由若干以字段属性加以分类的数据项组成的。表1-1所示的学生表就是一个关系模型,它包括以下概念。

(1)关系名

通常,将一个没有重复行、重复列的二维表看成一个关系,每一个关系都有一个关系名。如表1-1“学生表”和表1-2“选课成绩表”就代表两个关系,“学生表”及“选课成绩表”为各自的关系名。可见,一个关系就是一个二维表,每个关系有一个关系名。

表1-2 选课成绩表

(2)元组

二维表的每一行在关系中称为元组。在Access中,一个元组对应表中的一个记录。

(3)属性

二维表的每一列在关系中称为属性,每个属性都有一个属性名,属性值则是各个元组属性的取值。在Access中,一个属性对应表中的一个字段,属性名对应字段名,属性值对应各个记录的字段值。

(4)域

属性的取值范围称为域。域作为属性值的集合,其类型与范围具体由属性的性质及其所表示的意义确定。表1-1中“性别”属性的域是{男,女}。同一属性只能在相同域中取值。

(5)关键字

关键字也称“码”。二维表中的某个属性,若它的值能唯一地标识一个元组,则称该属性为候选码。若一个关系有多个候选码,则选定其中一个为主码,这个属性称为主属性。

(6)关系模式

对关系的描述称为关系模式,其格式为:关系名(属性名1,属性名2,…,属性名n)。关系既可以用二维表格描述,也可以用数学形式的关系模式来描述。一个关系模式对应一个关系的数据结构,也就是表的数据结构,如:表名(字段名1,字段名2,…,字段名n)。

关系的特点如下:

①关系必须规范化。规范化是指关系模型中的每一个关系模式都必须满足一定的要求。最基本的要求是每个属性必须是不可分割的数据单元,即表中不能再包含表。

②在同一个关系中不能出现相同的属性名。在Access中不允许一个表中有相同的字段名。

③关系中不允许有完全相同的元组,即冗余。在Access的一个表中不能有两个完全相同的记录。

④在一个关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。日常生活中常见到的“排名不分先后”正反映这种意义。

⑤在一个关系中列的次序无关紧要。任意交换两列的位置不影响数据的实际含义。例如,工资单里奖金和基本工资哪一项在前面都不重要,重要的是实际数额。