- Access数据库应用教程(2010版)
- 邓海
- 4180字
- 2025-02-25 08:48:57
1.2 数据模型
模型是现实世界特征的模拟和抽象。例如,一组建筑设计沙盘、一架精致的航模飞机,都是具体的实物模型。数据模型是模型的一种,它是现实世界数据特征的抽象。现实世界中的具体事物必须用数据模型来抽象和表示,计算机才能处理。
数据模型应满足三个方面的要求:一是能够比较真实地模拟现实世界,二是容易被人理解,三是便于在计算机系统中实现。
1.2.1 数据的抽象过程
从现实世界中的客观事物到数据库中存储的数据是一个逐步抽象的过程,这个过程经历了现实世界、信息世界和机器世界3个阶段,在不同的阶段采用不同的数据模型。不同的数据模型是提供给用户模型化数据和信息的不同工具。通常将现实世界的事物及其联系抽象成信息世界的概念数据模型(又称概念模型),再转换成机器世界的数据模型。
现实世界是指客观存在的事物及其相互之间的联系。现实世界中的事物有着众多的特征和复杂的联系,但人们一般只选择感兴趣的一部分来描述。例如,通常用学号、姓名和班级等特征来描述和区分学生。事物可以是具体的、可见的(如学生),也可以是抽象的(如课程)。
信息世界是人们把现实世界的信息和联系,通过“符号”记录下来,然后用规范化的数据库定义语言来描述而构成的一个抽象世界。在信息世界中,不是简单地对现实世界进行符号化,而是要通过筛选、归纳、总结和命名等抽象过程产生出概念模型。概念模型的表示方法很多,目前较常用的是实体-联系模型,简称E-R模型。
机器世界是将信息世界的内容数据化后的产物。将信息世界中的概念模型,进一步地转换成为计算机上某一数据库管理系统支持的数据模型,形成便于计算机处理的数据表现形式。常见的数据模型有层次模型、网状模型、关系模型及面向对象模型。
可见,数据模型是对现实世界进行抽象和转换的结果,这一过程如图1-4所示。

图1-4 数据模型的建立
1.2.2 数据模型的三要素
数据模型是用来抽象、表示和处理现实世界中的数据和信息的工具。一般来讲,数据模型是严格定义的概念的集合,这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常由数据结构、数据操作和数据约束三部分组成。
1. 数据结构
数据结构是所研究对象、对象具有的特性及对象间联系的集合。这些对象是数据库的组成部分,如表、表中的字段、名称等。数据结构分为两类:一类是与数据类型、内容等有关的对象,另一类是与数据之间关系有关的对象。
在数据库领域中,通常按照数据结构的类型来命名数据模型,进而对数据库管理系统进行分类。常用的数据结构有层次结构、网状结构和关系结构,这3种结构的数据模型分别命名为层次模型、网状模型和关系模型。相应地,数据库分别称为层次数据库、网状数据库和关系数据库。
2. 数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库的操作主要有检索和更新(包括插入、删除和修改)两大类。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据结构是对系统静态特性的描述,而数据操作是对系统动态特性的描述。
3. 数据约束
数据约束主要描述数据结构内数据间的语法、语义联系,描述它们之间的制约与依存关系以及数据动态变化的规则,以保证数据的正确、有效与相容。例如,对于图书管理系统中读者的“读者编号”属性取值不能出现重复值,“性别”属性取值必须为“男”或“女”。
1.2.3 概念模型
概念模型是现实世界到信息世界的第一次抽象,是按用户的观点,从概念上描述客观世界复杂事物的结构以及事物之间的联系,而不管事物和联系如何在数据库中存储。概念模型并不依赖于具体的计算机系统,与具体的数据库管理系统无关。
1. E-R模型
在概念模型的表示方法中,最常用、最著名的是由P.P.S.Chen于1976年首先提出的实体-联系方法(Entity Relationship Approach,E-R方法)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型(Entity Relationship Model,E-R模型)。
E-R模型将现实世界中的客观事物及其联系转换为实体、属性和联系。
(1)实体
客观存在并可以相互区别的事物称为实体。实体既可以是具体的事物,也可以是抽象的概念。例如,一本图书、一门课程、一次借书等都称为实体。
(2)属性
实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如,学生实体可以由学号、姓名、性别、出生日期、民族和入学时间等属性组成。
属性有“型”和“值”的区分。例如,在学生实体属性中,姓名、性别、民族等是属性的型,而属性的值是其型的具体内容,如张三、男、汉族分别是姓名、性别、民族的值。
(3)实体集
具有相同属性的实体的集合称为实体集。例如,所有学生的集合、所有课程的集合、所有图书的集合等。
(4)联系
现实世界中事物内部以及事物之间是有联系的,这些联系抽象到信息世界中反映为实体内部及实体之间的各种联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
两个实体之间的联系可以分为一对一、一对多、多对多3种类型。
① 一对一联系。如果对于实体集A中的一个实体,实体集B中只有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如,一个学校有一个校长,而每个校长只在一个学校任职,则学校与校长的联系就是一对一联系。
② 一对多联系。如果对于实体集A中的一个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的一个实体,实体集A中最多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:N。例如,班级和学生之间存在一对多的联系,即每个班级可以有多个学生,而一个学生只属于一个班级。
③ 多对多联系。如果对于实体集A中的一个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的一个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B具有多对多联系,记为M:N。例如,学生和课程之间存在多对多的联系,即一个学生可以选修多门课程,而一门课程也可以有多个学生选修。
2. E-R图
E-R模型可以用E-R图来表示。其中,实体用矩形表示,属性用椭圆形表示,联系用菱形表示,实体和属性之间、联系和属性之间、联系和实体之间用直线连接,并在联系与实体之间的连线旁注明联系的类型。
例如,图书管理系统中存在读者实体和图书实体,用来描述这两个实体及它们之间的多对多联系的E-R图如图1-5所示。其中,“读者编号”属性作为读者实体的标识符(不同读者的读者编号不同),“图书编号”属性作为图书实体的标识符。联系也可以有自己的属性,如读者实体和图书实体之间的“借阅”联系可以有“借阅日期”“归还日期”等属性。

图1-5 读者实体和图书实体及其联系的E-R图
1.2.4 数据模型
E-R模型只能说明实体间语义的联系,只有在转换成数据模型后才能在数据库中表示。选择适当的数据模型是建立数据库的前提和基础,每一个数据库管理系统都是基于某种数据模型的。
1. 层次模型
层次模型用树形结构表示实体及实体之间的联系,类似于Windows操作系统中的文件夹,可以形象、直观地表示一对多联系,但是无法直接描述事物之间复杂的多对多联系。
在这种模型中,数据被组织成由“根”开始的“树”,每个实体由“根”开始沿着不同的分支放在不同的层次上。“树”中的每一个结点代表一个实体类型,连线则表示它们之间的联系。其特点是:有且仅有一个根结点,其他结点仅有一个父结点。结点之间的关系是父结点与子结点的关系,即一对多的关系。
在现实世界中,许多实体间的联系本身就是自然的层次关系,如一个单位的行政机构、一个家庭的世代关系等。
层次模型的优点主要有:模型本身比较简单,实体间联系是固定的,模型提供了良好的完整性支持。
层次模型的缺点主要有:现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,用层次模型来表示这类联系只能通过引入冗余数据(易产生不一致性)或创建非自然的数据组织(引入虚拟结点)来解决;对插入和删除操作的限制比较多;查询子结点必须通过父结点;由于结构严密,层次命令趋于程序化。
2. 网状模型
网状模型以网状结构表示实体与实体之间的联系。网状模型中的每一个结点代表一个记录类型(实体),每个记录类型可包含若干个字段(实体的属性),结点间的连线表示记录类型(实体)之间一对多的联系。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系。网状模型的特点是:允许一个以上的结点无双亲;一个结点可以有多于一个的双亲。
网状模型的优点主要有:能更为直接地描述现实世界,具有良好的性能,存取效率较高。
网状模型的缺点主要有:结构比较复杂,用户不容易使用。由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。
3. 关系模型
关系模型以二维表结构来表示实体以及实体之间的联系,是一个“二维表框架”组成的集合,可以描述一对一、一对多和多对多的联系。
关系模型是目前比较流行的一种数据模型。Access就是一种支持关系模型的关系数据库管理系统。无论是实体还是实体之间的联系,在关系模型里面都用一张二维表来表示。
关系模型与非关系模型不同,它建立在严格的数学概念的基础上;数据结构比较简单,用户比较容易理解;具有很高的数据独立性。所以,关系模型诞生以后发展迅速,深受用户的喜爱。
4. 面向对象模型
面向对象模型出现于20世纪80年代中期,它采用面向对象的方法来描述现实世界中的实体以及实体之间的联系。面向对象的方法就是以接近人类思维方式的思想,将客观世界的一切实体(可以是真实的,也可以是无形的)模型化为对象。
在面向对象模型中,最基本的概念是对象(Object)和类(Class)。对象是现实世界实体的模型化,每个对象都有一个唯一的标识符,都具有属性(用于描述对象的特征)和方法(用于描述对象的行为)。类是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供了抽象的描述。类与对象的关系就像模具与产品之间的关系一样,一个属于某类的对象称为该类的一个实例。一个类从其类层次中的直接或间接祖先那里继承所有的属性和方法。这样,在已有类的基础上定义新类时,只需定义特殊的属性和方法即可,而不必重复定义父类已有的东西,这有利于实现可扩充性。
面向对象模型建立在关系模型和面向对象设计方法之上,吸收了关系模型的简洁性和面向对象方法的封装性,具备许多优良性能,还能处理多媒体数据,已成为目前数据库中最有前途和生命力的发展方向。