1、数据库原理 第1章 数据库概述,严冬梅 陈立君 张铠 饶俊 宋丽红 李玉芝 但志广,编著,1.1 计算机数据管理的发展 1.2 数据库系统结构 1.3 数据库系统 1.4 数据模型 1.5 小结,第1章 数据库概述,1.1.1 数据管理 1.1.2 数据库技术的产生和发展,1.1计算机数据管理的发展,数据 数据的定义 数据是对客观事物的符号表示 数据的种类 数字、文字、图形、图像、音频、视频等 数据的特点 数据与其语义是不可分的 数据的形式本身并不能完全表达其内容,需要经过语义解释。数据与其语义是不可分的。,1.1.1 数据管理,数据与其语义是不可分的。 例如 87是一个数据 语义1:学生某门
2、课的成绩 语义2:某人的体重 语义3:某小学生的身高 语义4:某房间的面积 (数据库原理,张三,清华大学出版社,2004年2月,20.50),1.1.1 数据管理,数据与其语义是不可分的。 学生档案中的学生记录 (李强,男,197205,天津,计算机系,1990) 语义:学生姓名、性别、出生年月、籍贯、所在院系、入学时间 解释:李明是个大学生,1972年5月出生,天津人,1990年考入计算机系 请给出另一个解释和语义,1.1.1 数据管理,数据与信息在计算机科学领域,数据是由能被计算机识别与处理的数值、字符等符号构成的集合。数据只是信息的一种特定的符号表示形式,是计算机程序进行“加工”的原料的
3、总称。信息具有广义和狭义之分。广义的信息是指反映客观事物的特征与变化的资料和消息。狭义的信息是指经过加工、整理,被接收者接收,并对其完成某项业务具有使用价值的情报资料和消息。,1.1.1 数据管理,数据与信息数据和信息的含义并不完全相同。数据是指记载下来的事实,是客观实体属性的值,而信息是一种已经被加工为特定形式的数据,是数据所表达的内容,它能使事物的不确定性减少。,1.1.1 数据管理,数据与信息数据与信息有着不可分割的联系。一方面,数据是信息的符号表示,或称载体;信息是经过加工的数据,是数据的内涵,是数据的语义解释。另一方面,信息是抽象的,不随数据设备决定的数据形式而改变;而数据的表示方式
4、却具有可选择性。,1.1.1 数据管理,数据管理是指如何对数据进行分类、组织、编码、储存、检索和维护,它是数据处理的中心问题。而数据库技术正是应数据管理任务的需要而产生的。 人工管理阶段(20世纪40年代中-50年代中) 文件系统阶段(20世纪50年代末-60年代中) 数据库系统阶段(20世纪60年代末-现在),1.1.2 数据管理技术的产生和发展,人工管理阶段(20世纪40年代中-50年代中) 产生的背景 应用需求 科学计算 硬件水平 无直接存取存储设备 软件水平 没有操作系统 处理方式 批处理,1.1.2 数据管理技术的产生和发展,人工管理阶段(20世纪40年代中-50年代中) 产生的背景
5、 应用需求 科学计算 硬件水平 无直接存取存储设备 软件水平 没有操作系统 处理方式 批处理,1.1.2 数据管理技术的产生和发展,人工管理阶段(20世纪40年代中-50年代中) 特点 数据的管理者:用户(程序员),数据不保存 数据面向的对象:某一应用程序 数据的共享程度:无共享、冗余度极大 数据的独立性:不独立,完全依赖于程序 数据的结构化:无结构 数据控制能力:应用程序自己控制,1.1.2 数据管理技术的产生和发展,1.1.2 数据管理技术的产生和发展,人工管理阶段应用程序与数据之间的对应关系,人工管理阶段(20世纪40年代中-50年代中),文件系统阶段(20世纪50年代末-60年代中)
6、产生的背景 应用需求 科学计算、管理 硬件水平 磁盘、磁鼓 软件水平 有文件系统 处理方式 联机实时处理、批处理,1.1.2 数据管理技术的产生和发展,文件系统阶段(20世纪50年代末-60年代中) 特点 数据的管理者:文件系统,数据可长期保存 数据面向的对象:某一应用程序 数据的共享程度:共享性差、冗余度大 数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序 数据的结构化:记录内有结构,整体无结构 数据控制能力:应用程序自己控制,1.1.2 数据管理技术的产生和发展,文件系统阶段数据的特点 记录内有结构。 数据的结构是靠程序定义和解释的。 数据只能是定长的。 可以间接实现数据变长要求
7、,但访问相应数据的应用程序会更加复杂。 文件间是独立的,因此数据整体无结构。 可以间接实现数据整体的有结构,但必须在应用程序中对描述数据间的联系。 数据的最小存取单位是记录。,1.1.2 数据管理技术的产生和发展,1.1.2 数据管理技术的产生和发展,文件系统阶段(20世纪50年代末-60年代中),文件系统阶段应用程序与数据之间的对应关系,数据库系统阶段(20世纪60年代末-现在) 产生背景 应用背景 大规模管理 硬件背景 大容量磁盘、磁盘阵列 软件背景 有数据库管理系统 处理方式 联机实时处理,分布处理,批处理,1.1.2 数据管理技术的产生和发展,数据库系统阶段(20世纪60年代末-现在)
8、 特点 数据的管理者:数据库管理系统 数据面向的对象:现实世界 数据的共享程度:共享性高、冗余度小 数据的独立性:具有较高的物理独立性和逻辑独立性 数据的结构化:整体结构化,用数据模型描述 数据控制能力:由专门的DBMS控制,提供数据的安全性、完整性、并发控制、恢复能力,1.1.2 数据管理技术的产生和发展,数据库系统阶段(20世纪60年代末-现在) 数据结构特点 数据结构化 数据的共享性高,冗余度低,易扩充 数据独立性高 数据由DBMS统一管理和控制,1.1.2 数据管理技术的产生和发展,数据库系统阶段:数据结构化 整体数据的结构化是数据库的主要特征之一 整体结构化 不再仅仅针对某一个应用,
9、而是面向全组织 不仅数据内部结构化,整体是结构化的,数据之间具有联系 数据库中实现的是数据的真正结构化 数据的结构用数据模型描述,无需程序定义和解释 数据可以变长 数据的最小存取单位是数据项,1.1.2 数据管理技术的产生和发展,数据库系统阶段:数据的共享性高,冗余度低,易扩充 数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。 数据共享的好处 减少数据冗余,节约存储空间 避免数据之间的不相容性与不一致性 使系统易于扩充,1.1.2 数据管理技术的产生和发展,数据库系统阶段:数据独立性高 物理独立性 指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的
10、。当数据的物理存储改变了,应用程序不用改变。 逻辑独立性 指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。 数据独立性是由DBMS的二级映像功能来保证的,1.1.2 数据管理技术的产生和发展,1.1.2 数据管理技术的产生和发展,数据库管理阶段应用程序与数据之间的对应关系,数据库系统阶段(20世纪60年代末-现在),1.2.1 数据库管理系统的定义1.2.2 数据库管理系统的功能,1.2 数据库管理系统,数据库(Database) 数据库的定义 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。 数据库的基本特
11、征 数据按一定的数据模型组织、描述和储存 可为各种用户共享 冗余度较小 数据独立性较高 易扩展,1.2.1 数据库管理系统的定义,数据库管理系统(Database Management System) DBMS的定义 是位于用户和操作系统之间的一层数据管理软件,它使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户并发使用及发生故障后的系统恢复。 DBMS的用途 科学地组织和存储数据、高效地获取和维护数据,1.2.1 数据库管理系统的定义,1.数据定义功能 DBMS提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以对数据库的结构
12、进行描述,包括:模式、外模式、内模式的定义(具体应用时如数据库、基本表、视图、索引),数据库的完整性定义,安全保密定义等。这些定义存储在数据字典中,是DBMS运行的基本依据。,1.2.2 数据库管理系统的功能,2.数据操纵功能 DBMS提供数据操纵语言(Data Manipulation Language,简称DML),实现对数据库中的数据的基本操作,如查询、插入、删除和修改。DML分为两类:宿主型和自含型。所谓宿主型是指将DML语句嵌入到某种主语言中使用;自含型是指可以单独使用DML语句,供用户交互使用。,1.2.2 数据库管理系统的功能,3.数据库的运行管理 这是DBMS的核心部分,所有数
13、据库的操作都要在这些控制程序的统一管理下进行。数据库的运行管理包括数据库在运行期间多用户环境下的并发控制(即处理多个用户同时使用某些数据可能产生的问题)、安全性检查、完整性约束条件的检查和执行、运行日志的组织管理和数据库内部维护等。,1.2.2 数据库管理系统的功能,4.数据库的建立和维护功能 数据库的建立和维护是DBMS的一个重要组成部分,它包括:数据库初始数据的输入、数据转换,数据库的转储、恢复功能,数据库的重新组织功能和性能监视、分析功能等,这些功能通常是由一些实用程序完成的。,1.2.2 数据库管理系统的功能,5.数据组织、存储和管理 数据库中需要存放多种数据,如数据字典、用户数据、存
14、取路径等。DBMS负责分门别类地组织、存储和管理这些数据,确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,以便提高存储空间利用率以及提高随机查找、顺序查找、增、删、改等操作的时间效率。,1.2.2 数据库管理系统的功能,6.数据通信功能 DBMS提供与其他软件系统进行通信的功能。例如,与操作系统的联机处理、分时处理和远程作业传输的相应接口。又如提供与其他DBMS或文件系统的接口,从而能够将该DBMS下的数据转换为其他DBMS或文件系统可以识别的数据,或者能够接收另一个DBMS或文件系统的数据。,1.2.2 数据库管理系统的功能,1.3.1 数据库系统的定义 1.3.2
15、数据库系统的组成 1.3.3 数据库系统的模式 1.3.4 数据库语言,1.3 数据库系统,数据库本身不是独立存在的,它是数据库系统的一部分,在实际应用中,人们所面对的数据库系统(Database System,简称DBS)是指带有数据库的计算机应用系统。,1.3.1 数据库系统的定义,硬件 软件 数据库管理系统(及其开发工具) 应用系统 数据库 各类人员(包括数据库管理员等),1.3.2 数据库系统的组成,1.3.2 数据库系统的组成,数据库系统对硬件资源的要求足够大的内存: 操作系统、DBMS的核心模块、 数据缓冲区、应用程序足够大的外存:磁盘或磁盘阵列(数据库)、 光盘、磁带(数据备份)
16、较高的传输能力,提高数据传送率,1.3.2 数据库系统的组成,软件支持DBMS运行的操作系统DBMS与数据库接口的高级语言应用开发工具及其编译系统(数据库的主语言)为特定应用环境开发的数据库应用系统,1.3.2 数据库系统的组成,数据库 数据是数据库的基本组成内容; 数据应按照需求进行采集并有结构地存入数据库; 数据作为一种资源是数据库系统中最稳定的部分。数据资源价值无限。,1.3.2 数据库系统的组成,人员 数据库管理员 系统分析员和数据库设计人员 应用程序员 用户,1.3.2 数据库系统的组成,数据库,应用系统,应用开发工具,操作系统,数据库管理系统,数据库管理员,用户,用户,用户,数据库
17、系统的构成,DBS开发人员,数据库管理员是一个或一组人员,是数据库的全面负责建立、维护和管理数据库系统的人员 职责 设计与定义数据库系统 监控数据库的使用和运行 数据库的转储与恢复 数据库的改进和重组 数据库的重构,1.3.2 数据库系统的组成,“型” 和“值” 的概念 型(Type):对某一类数据的结构和属性的说明 值(Value):是型的一个具体赋值 模式:数据库中全体数据的逻辑结构和特征的描述 模式仅仅涉及到型的描述,不涉及到具体的值。 同一个模式可以有很多实例(模式的一个具体值) 模式反映的是数据的结构及其关系,而实例反映的是数据库某一时刻的状态。 模式是相对稳定的,而实例是随数据更新
18、而变动的例:学生(学号,姓名,性别,系别,年龄,籍贯),1.3.3 数据库系统的模式,从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构 模式(Schema) 外模式(External Schema) 内模式(Internal Schema),1.3.3 数据库系统的三级模式结构,1.3.3 数据库系统的三级模式结构,模式(Schema,也称逻辑模式/概念模式) 数据库中全体数据的逻辑结构和特征的描述 所有用户的公共数据视图,综合了所有用户需求 一个数据库只有一个模式 模式的地位:是数据库系统模式结构的中间层 与数据的物理存储细节和硬件环境无关 与具体的应用程序
19、、开发工具及高级程序设计语言无关,1.3.3 数据库系统的三级模式结构,外模式(External Schema,也称子模式/用户模式) 数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 外模式通常是模式的子集,一个数据库可有多个外模式。 外模式是保护数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。,1.3.3 数据库系统的三级模式结构,外模式的地位:介于模式与应用之间 模式与外模式的关系:一对多 外模式通常是模式的子集 一个数据库可以有多个外
20、模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同 外模式与应用的关系:一对多 同一外模式也可以为某一用户的多个应用系统所使用 但一个应用程序只能使用一个外模式,1.3.3 数据库系统的三级模式结构,内模式( Internal Schema,也称存储模式) 是数据物理结构和存储方式的描述 是数据在数据库内部的表示方式 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储) 索引的组织方式 数据是否压缩存储 数据是否加密 数据存储记录结构的规定 一个数据库只有一个内模式,1.3.3 数据库系统的三级模
21、式结构,1.3.3 数据库系统的三级模式结构,各种人员的数据视图,不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图所示,数据库设计人员,三级模式是对数据的三个抽象级别二级映象在DBMS内部实现这三个抽象层次的联系和转换外模式模式映像模式内模式映像,1.3.3 数据库系统的三级模式结构,外模式模式映象 模式:描述的是数据的全局逻辑结构 外模式:描述的是数据的局部逻辑结构 同一个模式可以有任意多个外模式 每一个外模式,数据库系统都有一个外模式模式映象,定义外模式与模式之间的对应关系 映象定义通常包含在各自外模式的描述中 当模式改变时(如增加新的数据类型、新的数据项、新的关系等),由数据
22、库管理员对数据库外模式/模式映像作相应改变,可以使外模式保持不变。从而应用程序不必修改,保证了数据的逻辑独立性。,1.3.3 数据库系统的三级模式结构,模式内模式映象 模式内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。 数据库中模式内模式映象是唯一的 该映象定义通常包含在模式描述中 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。,1.3.3 数据库系统的三级模式结构,1. 数据描述语言(DDL) 数据描述语言(Da
23、ta Description Language,缩写为DDL)用于描述数据库中各种对象的特征,主要描述:数据的逻辑结构、数据的物理特征、逻辑数据到物理数据的映射(通常称为存储映射)和访问规则(如用户与外模式的对应关系、用户身份确认等)。 数据库三级模式均使用DDL来描述,只是内模式由内模式DDL定义,而物理数据库的详细设计由DBMS的设备介质语言来定义。,1.3.4 数据库语言,2. 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,缩写为DML),是用户与数据库系统的接口之一,是用户操作数据库中数据的工具。 使用DML可以实现数据库数据的插入、删除、
24、修改、查询、统计等操作。在设计DML时,一般要做到:描述操作准确,无二义性;功能齐全,操作能力强,用户希望使用的操作应尽量满足:语言自然、直观,容易掌握,使用方便。,1.3.4 数据库语言,3. 数据控制语言(DCL) 数据控制语言(Data Control Language,缩写为DCL),是数据库中实现数据访问权限控制以及事务管理的一类语言。例如:限制用户对某类数据的插入、删除、修改、查询等操作;或取消一些限制,当数据库操作完成时提交事务或回滚事务等。 对数据库对象操作的授权工作一般由数据对象创建者或数据库管理员完成。,1.3.4 数据库语言,4. 宿主语言 宿主语言是通常的程序设计语言(
25、如C语言)。数据库上的操作常用应用程序实现,而且应用程序还要完成许多非数据库上的操作,因此操作数据库的程序一般用宿主语言写成。 宿主语言有两种方式引用DML的命令: 通过DBMS提供的过程(或函数)引用。 将DML嵌入宿主语言中,与宿主语言一起使用。 第二种方式可能有一个预编译器处理DML,或有一个编译器既能处理宿主语言又能处理DML,并将DML语句转换成调用DBMS提供的过程(或函数)。,1.3.4 数据库语言,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。 通俗地讲数据模型就是现实世界的模拟。 数据模型应满足三方面要求 能比较真实地模拟现实世界 容易为人所理解 便于
26、在计算机上实现,1.4 数据模型,1.4.1 数据处理的三个世界 1.4.2 数据模型的要素 1.4.3 数据模型的分类,1.4 数据模型,客观对象的抽象过程-两步抽象 现实世界中的客观对象抽象为概念模型; 把概念模型转换为某一DBMS支持的数据模型。,1.4.1 数据处理的三个世界,1.4.1 数据处理的三个世界,DBMS支持的数据模型,概念模型(ER图),收集、分类、抽象,信息世界,计算机世界,现实世界中客观对象的抽象过程,现实世界,加工、转换,信息世界中的基本概念 实体(Entity) 现实世界中客观存在并可相互区分的事件或物体 可以是具体的人、事、物或抽象的概念或联系 同类型实体的集合
27、称为实体集 属性(Attribute) 实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画 属性的具体取值称为属性值,1.4.1 数据处理的三个世界,信息世界中的基本概念 码(key) 可以唯一标识实体的属性称为码 例如,图书的码为图书编号 域(domain) 属性的取值范围称为该属性的域。 例如,图书名称和作者的域为字符串集合 实体集(entity set) 实体集是具有相同属性的实体集合 例如图书馆中所有供借阅的图书就是一个图书的实体集。,1.4.1 数据处理的三个世界,信息世界中的基本概念 实体型(entity type) 实体型是对实体集的抽象描述 用实体名及其属性名集合来
28、抽象和刻画同类实体 图书(编号、书名、作者、类别、出版社、出版时间) 联系(relationship) 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。 实体内部的联系通常是指组成实体的各属性之间的联系 实体之间的联系通常是指不同实体集之间的联系,1.4.1 数据处理的三个世界,信息世界中的基本概念 两个实体型之间的联系 两个以上实体型之间的联系 单个实体型内的联系 概念模型的一种表示方法 一个实例,1.4.1 数据处理的三个世界,一对一联系(1:1) 如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一
29、对一联系,记为1:1。 例如,部门与经理,两个实体之间的联系,一对多联系(1:n) 如果对于实体集A中的每一个实体,实体集B中有n(n0)个实体与之联系;对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。 例如,部门与职工,两个实体之间的联系,多对多联系(m:n) 如果对于实体集A中的每一个实体,实体集B中有n(n0)个实体与之联系;对于实体集B中的每一个实体,实体集A中有m(m0)个实体与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。 例如,产品与零件,两个实体之间的联系,概念模型的用途 概念模型用于信息世界的建模 是
30、现实世界到机器世界的一个中间层次 是数据库设计的有力工具 数据库设计人员和用户之间进行交流的语言 对概念模型的基本要求 较强的语义表达能力 能够方便、直接地表达应用中的各种语义知识 简单、清晰、易于用户理解,概念模型,实体型,用矩形表示,矩形框内写明实体名; 属性,用椭圆形表示 联系,用菱形表示,菱形框内写明联系名,,概念模型E-R图,概念模型E-R图,两个以上实体型之间一对多联系 若实体集E1,E2,.,En存在联系,对于实体集Ej(j=1,2,.,i-1,i+1,.,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,.,Ei-1,Ei+1,.,En之间的联系是一对
31、多的,三、两个以上实体型之间的联系,实例 每个保管员工作在一个仓库中,保管着多种商品,每种商品只能存放在一个仓库中,每个仓库由多名保管员看管,两个以上实体型之间的联系,两个以上实体型间的多对多联系 实例供应商、项目、零件三个实体型:一个供应商可以供给多个项目多种零件;每个项目可以使用多个供应商供应的零件;每种零件可由不同供应商供给。,两个以上实体型之间的联系,两个以上实体型间的多对多联系,两个以上实体型之间的联系(续),一对多联系 实例职工实体型内部具有领导与被领导的联系;某一职工(干部)“领导”若干名职工;一个职工仅被另外一个职工直接领导。这是一对多的联系 一对一联系 请举例,单个实体型内的
32、联系(递归联系),单个实体型内的联系,多对多联系 请举例,联系的属性,联系的属性: 联系本身也是一种实体型,也 可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来,信息世界建模,用E-R图表示某个工厂物资管理的概念模型 实体 仓库: 仓库号、面积、电话号码 零件 :零件号、名称、规格、单价、描述 供应商:供应商号、姓名、地址、电话号码、帐号 项目:项目号、预算、开工日期 职工:职工号、姓名、年龄、职称,一个实例,实体之间的联系如下: (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。 (2)
33、一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系 (3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。 (4)供应商、项目和零件三者之间具有多对多的联系,一个实例,一个实例,1.数据结构 数据结构用于描述系统的静态特性。 数据结构是所研究的对象类型的集合。 与数据类型、内容、性质有关的对象; 与数据之间联系有关的对象。 数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,通常按照其数据结构的类型来命名数据模型。,1.4.2 数据模型的要素,2.数据操作 数据操作用于描述系统的动态特性。 数据操作是指对数
34、据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。 数据库主要有检索和更新(插入、删除、修改)两大类操作。 数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。,1.4.2 数据模型的要素,3.完整性约束条件 数据的约束条件是一组完整性规则的集合; 完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。 数据模型应该反映和规定数据模型必须遵守的基本的通用的完整性约束条件,此外还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据。,1.4.2 数据
35、模型的要素,数据模型分为两类(数据模型描述角度) (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。 (2) 逻辑模型和物理模型 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。分为层次、网状和关系模型。,1.4.3 数据模型的分类,非关系模型 层次模型(Hierarchical Model) 网状模型(Network Model) 关系模型(Relational Model) 面向对象模型(
36、Object Oriented Model) 对象关系模型(Object Relational Model),1.4.3 数据模型的分类,非关系模型数据结构的基本单位是基本层次联系。 所谓基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系。如图1-13所示。,1.4.3 数据模型的分类,数据之间联系的方式 关系模型是用“二维表”来表示数据之间的关系; 层次模型是用“树结构”来表示数据之间的关系; 网状模型是用“图结构”来表示数据之间的关系。 数据表示方式不同 关系模型只用到数据记录的内容 层次模型和网状模型要用到记录与记录之间的联系,以及它们在存储结构中的具体安排,1.4.3 数
37、据模型的分类,层次模型(Hierarchical Model) 数据结构是一棵“有向树”,即采用树形结构表示数据与数据之间的联系。 层次模型的特征是: 有且仅有一个结点没有父结点,它就是根结点; 其他结点有且仅有一个父结点。 每个结点表示一个实体型,称为记录型。一个记录型可有许多记录值,简称为记录。 结点之间的有向边表示记录之间的联系。如果要存取某一记录型的记录,可以从根结点开始,按照有向树层次逐层向下查找,查找路径就是存取路径。,1.4.3 数据模型的分类,层次数据模型的数据结构(续),一个层次模型的示例,层次模型(Hierarchical Model),层次模型的特点是记录之间的联系通过指
38、针实现 层次模型不能直接表示多对多的联系,若要表示多对多的联系,可采用如下两种方法: 方法1:冗余结点法。将两个实体的多对多的联系转换为两个一对多的联系。 方法2:虚拟结点分解法。将冗余结点转换为虚拟结点。虚拟结点是一个指引元,指向所代替的结点。该方法的优点是减少对储存空间的浪费,避免数据不一致性。该方法的缺点是改变储存位置可能引起虚拟结点中指针的修改。,层次模型,优点 层次模型的数据结构比较简单清晰 查询效率高,性能优于关系模型,不低于网状模型 层次数据模型提供了良好的完整性支持 缺点 多对多联系表示不自然 对插入和删除操作的限制多,应用程序的编写比较复杂 查询子女结点必须通过双亲结点 由于
39、结构严密,层次命令趋于程序化,层次模型的优缺点,网状模型(Network Model) 用网状结构表示实体及其之间联系的模型 网状模型(也称DBTG模型)是一个比层次模型更普遍性的数据结构,是层次模型的一个特例。网状模型可以直接描述现实世界,这是因为去掉了层次模型的两个限制,网状模型的特征是: 可以有一个以上的结点没有父结点; 网中的每一个结点代表一个记录类型,联系用链接指针来实现。,1.4.3 数据模型的分类,网状模型与层次模型的区别 网状模型允许多个结点没有双亲结点 网状模型允许结点有多个双亲结点 网状模型允许两个结点之间有多种联系(复合联系) 网状模型可以更直接地去描述现实世界 层次模型
40、实际上是网状模型的一个特例,网状模型,网状模型与层次模型的联系 网状模型和层次模型在本质上是一样的 从逻辑上看,它们都是基本层次联系的集合,用结点表示实体,用有向边表示实体间的联系。从物理结构上看,它们的每一个结点都是一个存储记录,用链接指针来实现实体之间的联系。 当存储数据时这些指针就固定下来了,检索数据时必须考虑存取路径问题;数据更新时,涉及到链接指针的调整,缺乏灵活性;系统扩充相当麻烦。网状模型中的指针更多,纵横交错,从而使数据结构更加复杂。,网状模型,优点 能够更为直接地描述现实世界,如一个结点可以有多个双亲 具有良好的性能,存取效率较高 缺点 结构比较复杂,而且随着应用环境的扩大,数
41、据库的结构就变得越来越复杂,不利于最终用户掌握 DDL、DML语言复杂,用户不容易使用,网状数据模型的优缺点,关系模型是用二维表格结构来表示实体以及实体之间联系的数据模型。 关系模型的特征是: 描述的一致性,不仅实体用关系描述,实体之间的联系也用关系描述; 可用关系直接表示多对多的联系; 关系必须是规范化的,即每个属性是不可分的数据项,不允许表中有表。 关系模型是建立在数学概念基础上的,有较强的理论基础。,1.4.3 数据模型的分类,实体及实体间的联系都用表来表示 表以文件形式存储 有的DBMS一个表对应一个操作系统文件 有的DBMS自己设计文件结构,关系数据模型的存储结构,优点 建立在严格的
42、数学概念的基础上 概念单一 实体和各类联系都用关系来表示 对数据的检索结果也是关系 关系模型的存取路径对用户透明 具有更高的数据独立性,更好的安全保密性 简化了程序员的工作和数据库开发建立的工作,关系数据模型的优缺点,缺点 存取路径对用户透明导致查询效率往往不如非关系数据模型 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度,关系数据模型的优缺点(续),本章概述了数据库系统的基本概念和基本结构。 本章首先介绍了计算机数据管理的发展,阐明了数据与信息的异同。数据管理是数据处理的中心问题。随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段。,1.5 本章小结,本章介绍了数据库管理系统和数据库系统的有关概念。数据库管理系统是位于用户和操作系统之间的一层数据管理软件。数据库系统三级模式和两层映像的系统结构保证了数据库系统中能够具有较高的逻辑独立性和物理独立性。数据库语言包括数据描述语言、数据操纵语言、数据控制语言和宿主语言。,1.5 本章小结,数据模型是数据库系统的核心和基础。本章介绍了组成数据模型的三个要素、概念模型和三种主要的数据库模型。这几种最常用的数据模型是层次模型、网状模型和关系模型。其中层次模型和网状模型统称为非关系模型。本章除了介绍层次模型、网状模型和关系模型的基本特点外,还简单介绍了面向对象数据模型。,1.5 本章小结,