一、数据模型概述
计算机不能够直接处理现实世界中的事物,必须先把具体事物转换成计算机能够处理的数据,也就是建立数据模型来表示具体的人、物、活动或概念。数据模型必须满足三方面的要求:①能够比较真实地描述现实世界。②容易理解。③便于在计算机上实现。
1.数据模型的分类
根据数据抽象程度的不同,可以将数据模型分为三类:概念模型(conceptual model)、逻辑模型(logical model)和物理模型(physical model)。
(1)概念模型 概念模型也称信息模型,它是按照用户的观点和认识对现实世界的数据进行建模。概念模型是对现实世界数据的第一步抽象,同具体的DBMS无关。概念模型具有以下几个特点:①语义表达能力强。②容易理解。③容易向逻辑模型转换。常用的概念模型工具是实体-关系模型(entity-relationship model,E-R模型)。
(2)逻辑模型 逻辑模型是按照计算机系统的观点来对数据建模,是数据抽象的中间层,用于描述数据库的整体逻辑结构。逻辑模型同具体的DBMS密切相关,因此逻辑模型既要易于理解,又要便于在DBMS上实现。不同的DBMS提供不同的逻辑数据模型,传统的逻辑模型有层次模型(hierarchical model)、网状模型(network model)和关系模型(relational model)。近年来出现的逻辑模型包括面向对象模型(object-oriented model,OO模型)、XML模型和对象-关系模型(object relational model)等。
(3)物理模型 物理模型是对数据的最底层抽象,主要描述数据在计算机系统内部的表示方式和存取方法,在磁盘等存储介质上的存储结构和存取方法。物理模型是由DBMS设计决定的,而且与操作系统和计算机硬件等密切相关。物理模型的具体实现是DBMS的任务,数据库设计人员需要了解和选择物理模型,一般用户无须考虑物理层的细节。
图1-7 现实世界客观对象的抽象过程
把现实世界具体的事物转化为DBMS支持的某种数据模型,需要经过两次抽象。首先将现实世界抽象为信息世界,建立概念模型,不依赖于具体的计算机系统,与DBMS无关;然后将信息世界抽象为机器世界,建立逻辑模型和物理模型,同具体的DBMS紧密相关。该过程如图1-7所示。
建立概念模型的任务由数据库设计人员完成,从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以由数据库设计工具协助完成,从逻辑模型到物理模型的转换一般由DBMS完成。
2.数据模型的组成要素
数据模型精确地描述了系统的静态特性、动态特性和完整性约束条件,由数据结构、数据操作和完整性约束三部分组成。
(1)数据结构 数据结构描述数据库的组成对象以及对象之间的联系。也就是说,数据结构描述的内容有两类:①一类是同对象的类型、内容、性质有关的,例如关系模型中的域、属性、元组等。②一类是与对象之间的联系有关的,例如关系模型中的外码等。
数据结构描述系统的静态特性,是刻画数据模型最重要的方面。因此在数据库系统中,通常按照数据结构的类型命名数据模型,层次结构、网状结构和关系结构对应的数据模型分别命名为层次模型、网状模型和关系模型。
(2)数据操作 数据操作是对数据库中各种对象的实例允许的操作集合,包括操作和相关的操作规则。数据操作描述系统的动态特性。数据库中的数据操作主要包括查询和更新两大类,更新又分为插人、修改和删除。数据模型需要定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。
(3)数据的完整性约束条件 数据的完整性约束条件是一组完整性规则,是给定的数据库中对象及其联系所具有的制约和依存规则,用于限定符合数据模型的数据库状态以及状态的变化,以确保数据的正确、有效和相容。
数据模型应该规定本模型必须遵守的通用的完整性约束条件。例如关系模型中,任何关系必须满足实体完整性和参照完整性约束条件。
此外,数据模型还应该提供定义完整性约束条件的机制,以反映实际应用所涉及的数据必须遵守的特定的语义约束条件。例如,在医院信息系统中,专家门诊的日挂号数量不超过20个,预约挂号的提前时间不超过15天,单张处方的费用不超过500元等。