对于现实世界中的具体事物,计算机无法直接存储和处理,需要采用数据模型对事物特征进行描述和转换,然后按照一定的方式组织和处理。 数据模型是数据处理的关键和重要基础 ,是对现实世界数据特征的抽象(表示)。数据库系统用数据模型才能实现数据处理。
数据模型(Data Model) 是数据结构和特征的抽象描述(表示),用于对现实世界中的事物特征信息的抽象、表示和处理。DBMS对数据的所有操作都是建立在某种数据模型基础上的。计算机代替人的脑力劳动主要通过数据处理的方法。数据模型用于描述数据的结构特征、存储和操作,将具体事物及其之间的联系转换为计算机处理的数据,将现实世界中事物特征的信息(实体及联系)转换成数据。其转换过程,如图1-6所示。
知识拓展
数据模型与现实及机器世界的关系
1)现实世界。以客观现实世界的事物(实体)及其联系的特征描述(信息)。
2)信息世界。利用特定数据模型实现对具体事物的抽象描述(表示),即以用户的观点对信息和数据进行建模(概念模型,即实体联系图)。
3)机器世界。主要描述数据在机器系统内部的表示、存储方式和存储方法,是面向计算机系统的对数据最底层的抽象(表示)。
图1-6 数据抽象转换过程
数据模型是对数据严格定义的一组结构、操作规则和约束的集合,描述了系统的静态特性、动态特性和完整性约束条件。 数据模型由数据结构、数据操作和数据约束三要素 组成,如图1-7所示。
图1-7 数据模型的组成要素
1) 数据结构 。数据结构是实体(事物)及其之间联系的表示方法。各种数据模型都以某种数据结构存取及处理数据,主要描述系统的静态特性,是所研究的对象类型的集合。其对象是数据库的组成部分, 描述内容包括两类 :一是同数据类型、内容、性质有关的对象,如关系模型中的域、属性(列)、关系等;二是与数据之间的联系有关的对象。 数据结构用于 描述数据模型特性及构成。在数据库系统中,通常按照其数据结构的类型命名数据模型,如将关系结构的数据模型命名为关系模型。
2) 数据操作 。数据操作是对数据库中的各种对象(型)的实例(值)允许执行的操作的集合,包括操作及其有关规则要求。对数据库的操作(逻辑处理)实际上是对具体数据模型规定的操作,包括操作符、含义和规则等,用于描述系统的动态特性,如数据查询操作的命令语句、功能含义和语法格式。
3) 数据约束 。数据约束也称为 完整性约束 ,是一组数据约束条件规则(条件和要求)的集合,是给定的数据模型中的数据及其联系所具有的制约和依存规则,用于限定符合数据模型的数据库状态及其变化,以保证数据处理的正确有效。
数据模型按应用层次分成三类 :概念数据模型、逻辑数据模型、物理数据模型。
1) 概念数据模型(Conceptual Data Model) 。简称 概念模型 ,也称 信息模型 ,是对现实世界中问题域内事务(特性)的描述,是以数据库用户观点实现世界的模型(图形表示方式)。该模型主要用于描述事物的概念化结构,使数据库的设计人员在设计初期避开计算机系统及DBMS具体技术问题,以图形化方式表示事物(实体)数据特征(属性)及其之间的联系等。最常用的是实体联系模型(E-R图)。
2) 逻辑数据模型(Logical Data Model) 。简称 逻辑模型 ,能以系统的观点对数据建模,是直接面向数据库的逻辑结构,是对客观现实世界的第二层抽象,是具体的DBMS所支持的数据模型,如关系模型(二维表结构)等。逻辑模型既要面向用户,又要面向系统,主要用于DBMS实现,是对概念模型的进一步分解和细化。逻辑模型描述系统“做什么”及执行顺序。
3) 物理数据模型(Physical Data Model) 。简称 物理模型 ,是对真实数据库的描述。 数据库中的对象包括表、视图、字段、数据类型、长度、主键、外键、索引、默认值。概念模型中的对象转换成物理模型的对象, 如存储位置、结构、方式、方法或索引等,同具体DBMS、操作系统和硬件有关。逻辑模型的实现都对应物理模型。
概念模型是现实世界(事物特征)到信息世界的第一层抽象,是数据库设计人员与用户之间的交流工具,只需要考虑领域实体属性和关系,要求语义表达能力强、简单清晰且易于理解。
(1)实体的有关概念
1) 实体(Entity) 是现实世界中各种不同的事物或活动,如一个学生、课程、商品、图书等。
2) 实体集(Entity Set) 是同一类实体的集合,如一个班级的全体同学、一批货物中的商品等。
3) 实体型(Entity Type) 是对同类实体的共同特征和性质的抽象表示,如学生(学号,姓名,性别,出生年月,所在院系,入学时间)。对于同一实体,根据不同的认识和侧重,可以抽取不同的特征或实体型。
4) 实体值(Entity Value) 是符合实体型定义的、某个具体实体的描述(取值)。
实体、实体集、实体型、实体值等概念有时很难区分, 常统称为实体 ,可根据内容知其含义。
【案例1-4】 大学教师的实体型 ,可用教师(工号,系部编号,教师姓名,性别,年龄,职称,所在院系)表示,例如,教师周凯的具体数据(X312,X3215,周凯,男,43,教授,信息学院网络工程)就是一个实体值。实体指的是现实世界中的具体对象(事物或活动)。在表1-1中,第一行规定了客户的实体型,从第2行开始的各行是该实体型的取值。
表1-1 大学教师数据表
(2)联系的有关概念
1) 联系(Relationship) 是指现实世界中事物(实体)内部以及事物之间的联系,如学生与课程之间的选课关系、学生与图书之间的借阅关系和学生之间的同学关系。
2) 联系集(Relationship Set) 是同类联系的集合,如一个班级同学的所有选课、学生与图书之间的所有借阅、某学生所有的同学、一次展销会上的全部订单等。
3) 联系型(Relationship Type) 是对同类联系共有特征的抽象定义(抽象表示)。
4) 联系值(Relationship Value) 是对同类联系型定义的、某个联系的具体描述(值)。
联系、联系集、联系型、联系值等概念 常统称为联系 ,只有研究具体联系时才分别讨论。
【案例1-5】 对于学生的“借阅”联系,联系型可以包括卡号、ISBN、是否续借、借书日期、还书日期等属性,其中卡号和ISBN分别对应“图书卡”实体和“图书”实体。表1-2中的第一行为借阅联系的型,其后各行为借阅联系型的值(借阅记录)。
表1-2 学生图书借阅表
(3)属性、键和域
1) 属性(Attribute) 是描述实体或联系的特征(性)。一个实体或联系通常具有多个特征,需要多个属性(列)进行描述。实体选择的属性由实际应用需要决定,并不唯一。例如,人事部门、财务部门都使用职工实体,但所涉及的属性不同,人事部门侧重的是工号、姓名、性别、出生日期、职务、职称、工龄等属性,而财务部门侧重的是工号、姓名、基本工资、岗位津贴、内部津贴、交通补助等属性。
知识拓展
数据库键的作用及特性
2) 键(Key) 也称 码、关键字、关键码 ,是区别实体的唯一标识,如学号、工号、商品编号等。一个实体可能具有多个键。例如,职工工号和身份证号均可作为键。
主属性(Main Attribute) 是实体(关系)中用于键的属性,否则称为 非主属性 。如职工实体中,工号为主属性,其余为非主属性。
3) 域(Domain) 是实体中属性的取值范围,如性别属性域为(男,女)。
(4)实体型之间联系的分类
实体型之间的联系按照其中实体的个数可分为三种:单个实体型内的联系、两个实体型之间的联系和两个以上实体型之间的联系。在此三种情况中,按照两个实体型中的实体个数的对应关系,均可分类为一对一联系、一对多联系、多对多联系三种类型。
1)一对一联系。若实体集 A 中的每一个实体,在实体集 B 中至多有一个(或没有)实体与之联系,反之亦然,则这两个实体集之间的联系为 一对一联系 , 简记为1:1 。如学生与其身份证。
2)一对多联系。若实体集 A 的任一实体,在实体集 B 中有 n 个实体( n ≥0)与之联系,反之,对实体集 B 中的任一实体,在实体集 A 中至多有一个实体与之联系,则这两个实体集之间存在 一对多 联系, 简记为1: n 。如一个学生选修多门课程。
3)多对多联系。若实体集 A 的任一实体,在实体集 B 中有 n 个实体( n ≥0)与之联系,反之,对实体集 B 中的任一实体,在实体集 A 中也有 m 个实体( m ≥0)与之联系,则这两个实体集之间存在 多对多联系 , 简记为 m : n 。
【案例1-6】 高校学生与所选课程之间为多对多联系,每个学生允许选修多门课程,每门课程允许多个学生选修。表1-3为学生数据表,表1-4为课程数据表,图1-8为多对多选课联系。
表1-3 学生数据表
表1-4 课程数据表
图1-8 学生与课程选课联系图
由图1-8可知每个学生选修的课程及每门课程由哪些学生所选修。
1976年,美籍华人Peter Pin-Shan Chen提出 实体联系模型(Entity Relationship Model) ,也称 E-R模型 或 E-R图(实体-联系方法) ,是描述现实世界中事物及其联系的概念模型。该模型提供了表示实体类型、属性和联系的方法,是数据库设计者与普通用户进行数据建模和交流沟通的有效工具,在应用软件研发等方面极为重要。其 特点 为简单易用、直观易懂。
知识拓展
E-R模型的主要作用
(1)E-R模型的构成要素
E-R模型 是一种用E-R图表示实体及其联系的方法。E-R图包含 四种基本元素 :矩形、菱形、椭圆形和连线。 矩形 表示实体,矩形框内写上实体名; 菱形◇ 表示联系,菱形框内写上联系名; 椭圆形 表示属性,椭圆形框内写上属性名; 连线 ——表示实体、联系与属性之间的所属关系或实体与联系之间的相连关系。
(2)实体联系的E-R图表示
两个实体之间的三种联系 包括一对一、一对多和多对多,对应的E-R图如图1-9所示。为了表示的简洁性,并没有对每个实体画出其属性及属性实体间的连线。
图1-9 三种联系的E-R图
如果联系的两个实体均来自同一个实体型,则对应的E-R图如图1-10所示。
图1-10 三种联系的单实体的E-R图
实际上,经常出现多个实体相互联系的情况。如客户在网购中,涉及客户、购物网站和商品三者之间的关系,客户通过购物网站购买商品,其中的每两个实体间都是多对多的联系。一个客户可以购买多种商品,每种商品可以被不同的客户购买。每个客户都可以到不同的购物网站购物,每个购物网站都可以为不同的客户服务。每个购物网站都可以出售多种商品,每种商品都可由不同的购物网站销售。网购联系对应的E-R图如图1-11所示。
图1-11 网购联系的E-R图
(3)E-R模型应用案例
在实际的数据库系统设计过程中,首先要进行需求分析,确定存储哪些数据、建立哪些应用和操作;然后根据需求分析所确定的数据进行更高层的抽象,这时需要引入E-R图描述实体之间的联系。下面以电子商务(网络购物)应用为例介绍E-R图的用法。
【案例1-7】 电子商务(网络购物)应用建立E-R图的过程 。对某购物网站的运营情况调研,可以及时进行业务数据的整理分析。客户的一次购物活动为:先到某个购物网站(加盟的商家)订购某种商品,得到商家开出的(电子)订货单;客户凭订货单上的“金额”到金融机构(网银等)交款,获得“交款”确认;客户可凭此提醒商家发货,商家见到“交款”确认后发给快递公司提货单;快递公司凭提货单取货(库房)并送货。网络购物过程的E-R图如图1-12所示。
图1-12 网络购物过程的E-R图
网站上的商家可以通过加盟的多家购物网站进行运营,各购物网站需要涉及金融机构、客户、购物网站、商家、库房、快递、货物(商品)、收款单、订货单、加盟、提货单、送货等实体和联系,其中前面7个为实体,后面5个为联系。
说明: 上述“订货单”联系的购物网站和客户是多对多联系,每个购物网站都可以为多个客户服务,每个客户都可以到不同的购物网站订购不同的货物。“收款单”联系的客户和金融机构也是多对多联系,每个金融机构都可以为多个客户服务,每个客户都可以到不同金融机构交款。同样,“提货单”联系的购物网站和库房也是多对多联系,库房可为各网站服务,购物网站可凭提货单取货。
知识拓展
E-R图的主要实际应用
数据库系统中主要的逻辑模型有层次模型、网状模型、关系模型和面向对象模型四种类型。层次模型是20世纪60年代最早出现的数据模型, 关系模型的应用最广泛,也最重要 。
(1)层次模型的结构
层次模型(Hierarchical Model) 用树形结构表示现实世界中的实体及其之间的联系,有且只有一个无双亲的根节点,其余节点为其子节点。除根节点外,每个节点都有且仅有一个 父节点 (也称 双亲节点 ),可以没有,也可以有一个或多个子节点。没有子节点的节点被称为叶。每个节点都表示一个记录类型,即概念模型中的一个实体型,每对节点的父子联系为一对多联系,只有一个子节点时为一对一联系。图1-13所示为企业组织层次结构的层次模型。企业集团为根节点,有多个分公司,分公司1有两个子节点(部门),部门1又有两个子节点(车间),车间是叶。
(2)层次模型的优缺点
层次模型的优点 :当现实世界中的实体之间的联系自然呈现为层次关系(一对多的联系)时,表示一对多时结构简单清晰;层次结构查询效率高,主要是DBMS指针效率高。 层次模型的主要缺点 包括:表示多对多的联系时比较复杂;查询子节点时必须通过双亲节点,从而影响效率。由于现实世界中事物之间的联系更多地表现为非层次关系,用层次模型表示非树形结构很不方便,因此产生了网状模型。
图1-13 企业组织层次结构的层次模型
(1)网状模型的结构
网状模型(Network Model) 是对层次模型的扩展,允许一个以上的节点无双亲,同时也允许一个节点可以有多于一个的双亲。图1-14所示是几个企业和生产零件的网状模型。
图1-14 网状模型示例
在网状模型中,父子节点的联系同样隐含为一对多的联系,每个节点代表一种记录型,对应概念模型中的一种实体型。
(2)网状模型的优缺点
网状模型的优点 包括:可直接表示现实世界,如一个节点有多个双亲的情况;性能良好,有较高的存取效率。 主要缺点 包括:结构复杂,用户掌握难;数据定义和操作需嵌入高级语言,掌握难度大。
知识拓展
网状模型的主要局限性
关系模型由美国IBM公司的研究员E.F.Codd率先提出,数据库关系方法和关系数据库理论的研究为数据库技术的快速发展奠定了重要基础。 关系模型在业务数据处理方面的应用非常广泛 。
(1)关系模型的概念
关系模型(Relational Model) 的每个关系对应一个二维表,其中的每个实体及其之间的联系都可直接转换为对应的二维表形式。每个二维表称为一个 关系 ,其中 关系的型 就是二维表的表头,除此之外的表中的每行(表体)称为 关系的值 。二维表中的每一行称为一个 记录 (或 元组 ),关系型的每一项称为 属性 (或字段),每列的名称也称为 属性名 (或 字段名 )。
【案例1-8】 数码商品的关系示例如表1-5所示。该关系的型为(商品ID,商品名称,价格,品牌,型号,颜色,生产商,产地),关系的元组(行)数为5,关系的属性(列)数为8,其中第一列的属性名为“商品ID”。属性的取值范围称为属性的域,如价格属性的域为货币型数,商品名称的域为字符型。
表1-5 数码商品的关系示例
(2)联系的关系表应用
关系模型可以用“二维表”简单表示实体及其联系,对应某个关系,包括相联系的各实体的键。如表1-3、表1-4和图1-8所示的学生、课程及选课联系,对应的关系模型包含三个关系,即学生关系、课程关系和选课关系。选课联系所对应的关系如表1-6所示,这里对选课联系增加了“成绩”属性,其语义是学生选修课程的成绩。
表1-6 选课联系的关系表
*(3)数据库的元关系
在以关系模型为数据库逻辑结构建立的数据库系统中,所有数据及其结构(关系定义)都以关系(二维表)的形式定义和保存。为了区别于一般的保存数据的关系,将保存关系定义的关系(结构)称为该 数据库的元关系(元数据、系统数据、数据字典等) ,其提供了数据库中所有关系的模式(即关系的型)。元关系是在用户建立数据库应用系统时,是由DBMS根据该数据库中每个关系的模式自动定义(保存数据表结构备用)的。学生选课关系模型的元关系(结构)如表1-7所示。
特别理解
序号、属性名和类型区别
表1-7 学生选课关系模型的元关系
知识拓展
关系模型中的查询和更新
(4)关系模型中的查询和更新
在关系数据库中,进行业务数据的查询和更新运算非常方便,在每个关系(二维表)和相关的若干个关系上都可进行。相关关系是依靠关系之间共同使用的相同属性实现的(以键保持记录一一对应),其相同属性被称为 连接属性 或 关联属性 。
(5)关系模型的优缺点
关系模型的优点 如下。
1)有较坚实的数学理论基础。关系模型与非关系模型不同,它建立在严格的数学基础之上,已经形成一系列完整的关系代数和集合论理论基础。
2)数据结构简单,易懂且应用广。关系模型实体及其之间的联系都由关系表示,既表示数据的存储,也表示数据之间的联系。从用户角度,模型中数据的逻辑结构是一个二维表,符合用户使用数据的习惯且直观,便于实现。各关系可作为一个文件保存,业务数据应用广泛。
3)查询与处理便捷。在关系模型中,数据处理更便捷,一次可操作所有满足条件的记录。
4)数据安全性好,有利于提高数据库系统的安全可靠性,具有高安全机制且数据存取路径清晰。
5)数据独立性高。关系模型中,用户对数据的操作不涉及其存储位置,而且数据库同应用程序各自相互独立运行,便于简化数据库系统的开发与维护。
关系模型的缺点:一是关系型数据库管理系统RDBMS提供了较高的数据独立性和非过程化的查询功能,致使系统负载较重,直接影响查询速度和效率;二是RDBMS实现复杂,由于其效率较低,需对关系模型进行查询优化,其工作繁杂且实现难度较大;三是关系模型无法有效处理复杂的特殊数据。
知识拓展
关系模型的主要局限性
【案例1-9】 关系模型在空间数据表示的局限性 。空间数据是指面向地理学及其相关对象的数据,主要包括地球表面、地质、大气等数据。其特点是数据量庞大、数据对象和空间数据模型复杂等。关系模型仅针对常用的简单对象,无法表示空间数据。
关系模型用单一的二维表结构很难实现对空间复杂对象的描述,无法有效地管理各种复杂地理等对象。为了解决空间数据存储与管理问题,产生了空间数据库或专用数据库。
* 4.面向对象模型的特点
面向对象模型(Object-Oriented Model,OOM) 是以面向对象方法描述实体的逻辑组织、对象间限制、联系的模型。将客观事物都模型化为一个对象,每个对象都有一个唯一标识。共享同样属性和方法集的所有对象构成一个对象类(简称类),一个具体对象则是某类的一个实例。将面向对象建模能力和关系数据库功能结合,使面向对象的关系数据库技术成为一个研究方向。
(1)面向对象的基本思想
面向对象的基本思想 是指:主要通过对问题域的自然分割,以更接近人的思维方式建立问题域的模型,并进行结构模拟和行为模拟,从而使设计的软件尽可能直接表现出问题的求解过程。
面向对象方法 以接近人类的思维方式,将客观世界的实体模型转化为对象。每一种对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系构成各种不同的系统,即“万物一切皆对象”。其基本方法是将系统工程中的模块和构件视为问题空间的一个对象(类)。
(2)面向对象方法的基本特性及技术
知识拓展
面向对象的特性及核心技术
面向对象方法的特性 主要包括抽象性、封装性、继承性和多态性等。 面向对象数据模型的核心技术 主要包括分类、概括、聚集、联合和消息。
为了更进一步地加深理解上述四种模型,从产生时间、数据结构、数据联系和语言类型等方面进行对比,如表1-8所示。
表1-8 四种逻辑数据模型的对比
讨论思考:
1)什么是数据模型?数据模型的组成要素是什么?
2)E-R图的基本构件有哪些?对系统设计有什么作用?
3)数据模型的种类有哪些?各自有什么特点?
微课视频
课程视频1.3