1.3 数据描述与数据模型
数据库中存储和管理的数据都来自于客观事物,要把现实世界中的客观事物抽象为能用计算机存储和处理的数据需要一个转换过程。这个转换过程通常可分为三个阶段,涉及三个世界,即现实世界、信息世界及机器世界。
1.3.1 数据转换中的三个世界
(1) 现实世界
现实世界中存在着各种各样的事物及事物之间的联系。现实世界中的事物都有一定的特征,人们正是通过这些特征来区分事物。另外,一个事物可以有很多特征,人们通常都是选用感兴趣的以及最能表示该事物的若干特征来描述该事物。例如,人们常用学号、姓名、性别、出生日期、专业等来描述一个学生的特征,有了这些特征,就能很容易地把不同的学生区分开。
世界上各种事物虽然千差万别,但都是息息相关的,也就是说,它们之间都是相互关联的。事物间的关联也是多方面的,人们仅选择那些感兴趣的关联,而没有必要选择所有的关联,如在学生管理系统中可选择“学生和选修课程”这种感兴趣的关联。
(2) 信息世界
现实世界中的事物及事物之间的联系由人们的感官感知,如果经过人们的头脑分析、归纳、抽象,最后符号化,便形成了信息。对信息进行记录、归纳、整理、归类和格式化后就构成了信息世界。
(3) 机器世界
信息世界中的信息再经过组织且以某种结构形式存储在计算机中,便形成了所谓的机器世界,机器世界又称为数据世界。
从现实世界到信息世界再到机器世界,事物被一层层抽象、加工、符号化和逻辑化,那么如何对现实世界和信息世界进行抽象,答案就是使用模型,即用模型的概念对现实世界存在的客观事物及事物之间的关系进行抽象,再对信息世界中的信息进行抽象、组织,使其能以某种结构形式存储在计算机中,被计算机管理和使用。常用的模型一般分为两类,一类是基于现实世界的事物及联系的概念模型;另一类是基于计算机进行数据处理的数据模型。图1.9展示了现实世界中的客观事物抽象为能用计算机存储和处理的数据的三个阶段及抽象过程。
图1.9 模型的应用层次
1.3.2 实体—联系模型
概念模型反映了信息从现实世界到信息世界的转化,它不涉及计算机软硬件的具体细节,而注重于符号表达和用户的理解能力。包括面向对象模型、实体—联系模型等。人们最常使用的概念模型是“实体—联系模型”,简称为E—R模型。在E—R模型中,事物用实体来表示,事物的特征用属性来表示,事物之间的关系用联系来描述。
(1) 实体
客观存在并且可以相互区别的“事物”称为实体。实体既可以是可触及的对象,如一个学生、一本书等;也可以是抽象的事件,如学生选课、一次借书活动等。
(2) 属性
属性是指实体某一方面的特征。例如学生的学号、姓名、性别、出生日期等。属性有“型”和“值”之分。“型”为属性名,如学号、姓名、性别、出生日期等都是属性名;“值”为属性的具体内容,如40501002、赵子博、男、1989年2月3日。这些属性值的集合则表示了一个学生实体。
(3) 实体型
可以表述一个实体类型的若干个属性所组成的集合称为实体型。实体型通常用实体名和属性名集合来表示。例如,学生(学号,姓名,性别,出生日期)就是一个实体型。
(4) 实体集
实体集是相“类似”的实体组成的一个集合,如某学校所有的学生、某单位所有的汽车等。
(5) 联系
现实世界中,事物内部以及事物之间存在着联系,这些联系同样也要抽象和反映到信息世界中来,在信息世界中,联系被抽象为实体型内部的联系和实体型之间的联系。
实体型内部的联系通常是指实体的各属性之间的联系;实体型之间的联系通常是指不同实体集之间的联系。两个实体型之间的联系可以分为三类:
① 一对一联系(1:1)
实体集A中的一个实体与实体集B中的一个实体相对应,反之,实体集B中的一个实体也与实体集A中的一个实体相对应。例如,班级与班长,观众与座位,病人与病床。
② 一对多联系(1:n)
实体集A中的一个实体可以与实体集B中的多个实体相对应,而实体集B中的一个实体只与实体集A中的一个实体相对应。例如,班级与学生,公司与员工。
③ 多对多联系(m:n)
实体集A中的一个实体可以与实体集B中的多个实体相对应,而实体集B中的一个实体也可以与实体集A中的多个实体相对应。例如,学生与课程,教师与学生。
(6) E—R模型图
对于实体—联系模型,可以采用图形(称为E—R图)来描述实体、属性和联系3个要素。具体的作图方法是:
① 用矩形框表示实体,并在框内写上实体的名字;
② 用菱形框表示实体间的联系;
③ 用椭圆框表示实体或联系的属性,并在框内标明属性的名称;
④ 用线段连接菱形框与矩形,并在线段上注明联系的类型(1:1、1:n、m:n)。
图1.10所示的E—R图描述了学生管理系统的实体—联系模型。
图1.10 学生管理系统的实体—联系模型图
1.3.3 数据模型
数据模型反映了信息从信息世界到机器世界的转换,是指设计数据库系统时,用图或表的形式描述计算机中数据的逻辑结构,以及信息在存储器上的具体组织。常见的数据模型有层次模型、网状模型以及关系模型。
(1) 层次模型
利用树型结构表示实体及其之间联系的模型称为层次模型,该模型体现实体间的一对多联系。图1.11是一个层次模型的例子,表示大学、学院、系之间的联系。
图1.11 层次模型示意图
支持层次数据模型的数据库管理系统称为层次数据库管理系统,在这种系统中建立的数据库是层次数据库。层次模型的数据库管理系统是最早出现的数据库管理系统,典型代表软件是IBM公司的IMS(Information Management System)系统。
(2) 网状模型
利用网状结构表示实体及其之间联系的模型称为网状模型,该模型体现实体间的多对多联系,具有很大的灵活性。图1.12是一个网状模型的例子,表示某汽车制造厂中技术员、图纸、工人、工件之间的联系。
图1.12 网状模型示意图
支持网状数据模型的数据库管理系统称为网状数据库管理系统。在这种系统中建立的数据库是网状数据库。网状数据库管理系统也是较早出现的数据库管理系统。
在以上两种数据模型中,各实体之间的联系是用指针实现的。其优点是查询速度快。但是当实体集和实体集中实体的数目都较多时,众多的指针使管理工作变得相当复杂,对用户来说,使用和维护都比较麻烦。
(3) 关系模型
用二维表格描述实体及实体间的联系,数学上把这种二维表格的数据形式称为关系,因此把利用二维表来表示实体及实体间联系的模型称为关系模型。
在关系模型中,无论是实体,还是实体间的联系,都统一用二维表格描述。图1.13就是一个关系模型的例子。
图1.13 关系模型示意图
支持关系数据模型的数据库管理系统称为关系数据库管理系统(RDBMS),如微软公司推出的Visual FoxPro(以下简称为VFP)系统。使用关系数据库管理系统建立的数据库是关系型数据库。
由于关系模型结构简单,但描述能力强,还有严格的数学理论基础,因此,基于关系模型的数据库是当今使用最为广泛的数据库。
实际的数据处理过程中,为了将现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,提倡先将现实世界的事物及联系抽象成信息世界的概念模型(如E—R模型),然后再抽象成计算机世界的数据模型(如关系模型)。但是在实际数据库应用过程中,很多设计者往往跨越概念模型的描述,而直接进入数据模型的描述。