1
数据库技术及应用
1.5.2.1 2.2.1 数据模型与概念模型
2.2.1 数据模型与概念模型

2.2.1.1 数据模型

1.数据模型内容

数据模型所描述的内容包括3个部分,即数据结构、数据操作和数据约束。

(1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和数据约束都建立在数据结构上。不同的数据结构具有不同的数据操作和数据约束。

(2)数据操作:在数据模型中,数据操作主要描述相应的数据结构上的操作类型和操作方式。

(3)数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系,数据之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。

2.数据模型分类

数据模型按不同的应用层次,可分成3种类型:概念数据模型、逻辑数据模型和物理数据模型。

(1)概念数据模型(Conceptual Data Model):简称概念模型,是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。

(2)逻辑数据模型(Logical Data Model):简称数据模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等。此模型既要面向用户,又要面向系统,主要用于数据库管理系统的实现。

(3)物理数据模型(Physical Data Model):简称物理模型,是面向计算机物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。

3.三个世界的划分

数据库系统是面向计算机的,而应用是面向现实世界的,两个世界存在着很大差异。要直接将现实世界中的语义映射到计算机世界是十分困难的,因此需要引入一个信息世界作为现实世界通向计算机实现的桥梁。

一方面,信息世界是对现实世界的抽象,从纷繁的现实世界中抽取出能反映现实本质的概念和基本关系;另一方面,信息世界中的概念和关系,要以一定的方式映射到计算机世界中去,在计算机系统上最终实现。信息世界起到了承上启下的作用。

信息模型并不依赖于具体的计算机系统,不是某一个DBMS所支持的数据模型,它是计算机内部数据的抽象表示,是概念模型。

概念模型经过抽象,转换成计算机上某一DBMS支持的数据模型。所以说,数据模型是对现实世界进行两级抽象后的结果。

在数据处理中,数据加工经历了现实世界、信息世界和计算机世界3个不同的世界,经历了两级抽象和转换。该过程如图2-2所示。

图2-2 数据抽象

●现实世界:即客观存在的世界,各种事物及事物之间的联系。一个事物可以有许多特征,通常选用人们感兴趣的以及最能表征该事物的若干特征来描述该事物。以人为例,常选用姓名、性别、年龄、籍贯等描述一个人的特征。事物间的关联是多方面的。

●信息世界:现实世界中的事物及其联系由人们的感官感知,经过人们头脑的分析、归纳、抽象,形成信息。对这些信息进行记录、整理、归类和格式化后,它们就构成了信息世界。对所研究的信息世界建立一个抽象的模型,称之为信息模型(即概念模型)。

●计算机世界:用计算机管理信息,必须对信息进行数据化,数据化后的信息称为数据,数据是能够被机器识别并处理的。数据化了的信息世界称为机器世界。

2.2.1.2 概念模型

概念模型是对信息世界的管理对象、属性及联系等信息的描述形式。按用户的观点来对数据和信息建模,用于组织信息世界的概念,表现从现实世界中抽象出来的事物以及它们之间的联系,这类模型强调其语义表达能力,概念简单、清晰,易于用户理解,它是现实世界到信息世界的抽象,是用户与数据库设计人员之间进行交流的语言。

在概念数据模型中,最常用的是实体联系方法(Entity-Relationship Approach),简称E-R方法。

(1)实体:即现实世界中存在的、可以相互区别的人或事物。一个实体集合对应于数据库中的一个表,一个实体则对应于表中的一条记录。在E-R图中,实体用矩形框表示。

(2)属性:实体具有的某一种特性,对应于数据库表中的一列。例如,学生实体具有姓名、性别等属性。

(3)联系:即实体之间存在的关系。在E-R图中,联系用菱形框表示。联系的类型可以是1∶1(1对1),1∶n(1对多),n∶m(多对多)。

在设计比较复杂的数据库应用系统时,往往需要选择多个实体,对每种实体都要画出一个E-R图,并且要画出实体之间的联系。

画E-R图的一般步骤是:先确定实体集与联系集,把参加联系的实体联系起来,然后再分别为每个实体加上实体属性。当实体和联系较多时,为了E-R图的整洁,可以省去一些属性。下面介绍如何画出系部、学生、课程3个实体的E-R图。各实体的属性如下:

系部:系编号、系名、系主任、联系电话、系所在地址。

学生:学号、姓名、性别、出生日期、所在系部、地址、电话。

课程:课程号、课程名、课程学时数、学分、开课学期、课程类别。

系部、学生和课程作为实体集,相关信息分别作为其属性。学生与课程之间的关系是多对多的关系,一个学生可以学习多门课程,一门课程又可以被多个学生学习,学生和课程间的联系可以命名为“学习”,用菱形框表示;系部和学生之间的关系为1对多的关系,一个系有多个学生,一个学生只能属于一个系,其关系命名为“属于”。这样,按照前面描述的方法就可画出三者的E-R图,如图2-3所示。

图2-3 学生选课系统E-R图