第一章 绪论
1.1 数据库系统概述
1.1.1 数据库的4个基本概念
数据
数据是数据库中存储的
基本对象
-
数据:
描述事物的符号记录称为数据
-
数据的解释:指对数据含义的说明,
数据的含义称为数据的语义,数据与其语义是不可分的
数据库(
D
a
t
a
B
a
s
e
DataBase
D
a
t
a
B
a
s
e
,
D
B
DB
D
B
)
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
概括的讲,数据库数据具有
永久存储、有组织和可共享
三个基本特点
数据库管理系统(
D
a
t
a
B
a
s
e
M
a
n
a
g
e
m
e
n
t
S
y
s
t
e
m
DataBase Management System
D
a
t
a
B
a
s
e
M
a
n
a
g
e
m
e
n
t
S
y
s
t
e
m
,
D
B
M
S
DBMS
D
B
M
S
)
数据库管理系统可以科学地组织和存储数据,高效地获取和维护数据
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
数据库管理系统
和操作系统一样是
计算机的基础软件
,也是一个大型复杂的软件系统。
它的主要功能包括以下几个方面:
- 数据定义
-
数据组织、存储和管理
-
要确定以和中国文件结构和存取方式在存储级上组织这些数据,
如何实现数据之间的联系
-
要确定以和中国文件结构和存取方式在存储级上组织这些数据,
-
数据操纵功能
-
数据库管理系统提供了
数据操纵语言
-
数据库管理系统提供了
- 数据库的事务管理和运行管理
- 数据库的建立和维护
-
其他功能
- 包括数据库管理系统与网络中其他软件系统的通信功能,与另一个数据库管理系统或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等
数据库系统(
D
a
t
a
B
a
s
e
S
y
s
t
e
m
DataBase System
D
a
t
a
B
a
s
e
S
y
s
t
e
m
,
D
B
S
DBS
D
B
S
)
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统
1.1.2 数据管理技术的产生和发展
数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。而数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和
1.1.3 数据库系统的特点
-
数据结构化
-
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别
- 所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的
- 在数据库系统中,不仅数据是整体结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个或一组数据项、一个记录或一组记录
-
-
数据的共享性高、冗余度低且易扩充
- 数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此可以被共享
-
数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性
- 由于数据面向整个系统,是由结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充
-
数据独立性高
-
数据独立性是借助数据库管理数据的一个显著优点,包括数据的
物理独立性
和
逻辑独立性
-
物理独立性是指用户的应用程序与数据库中数据的物理存储时相互独立的
-
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的
- 数据独立性是由数据库管理员系统提供的二级映像功能来保证的
-
数据独立性是借助数据库管理数据的一个显著优点,包括数据的
-
数据由数据库管理系统统一管理和控制
-
数据的安全性保护
数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏 -
数据的完整性检查
数据的完整性指数据的正确性、有效性和相容性 - 并发控制
-
数据库恢复
数据库管理系统必须具有将数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复功能
-
数据的安全性保护
综上所述,
数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复
1.2 数据模型
数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据和对数据进行操作的
数据模型是数据库系统的核心和基础
1.2.1 两类数据模型
数据模型应满足三方面要求:
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
第一类概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计
第二类中的逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现
1.2.2 概念模型
信息世界中的基本概念
-
实体
客观存在并可相互区别的事物称为实体 -
属性
实体所具有的某一特性称为属性 -
码
唯一标识实体的属性集称为码 -
实体型
具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型 -
实体集
同一类型实体的集合称为实体集 -
联系
在现实世界中,事物内部以及事物之间是由联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的来呢西通常是指组成实体的各属性之间的联系,
实体之间的联系通常是指不同实体集之间的联系
实体之间的联系有一对一、一对多和多对多等多种类型
概念模型的一种表示方法:实体—联系方法
概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示出上述信息世界中常用概念。
概念模型的表示方法很多,最常用的是
P.
P
.
S
.
C
h
e
n
P.P.S.Chen
P
.
P
.
S
.
C
h
e
n
提出的实体—联系方法。该方法用
E—
R
E—R
E
—
R
图来描述现实世界的概念模型,
E—
R
E—R
E
—
R
方法也称为
E—
R
E—R
E
—
R
模型
1.2.3 数据模型的组成要素
一般地讲,数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此
数据模型通常由数据结构、数据操作系统和数据的完整性约束条件三部分组成
- 数据结构:描述数据库的组成对象以及对象之间的联系,是对系统静态特征的描述
- 数据操作:指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
- 数据的完整性约束条件:是一组完整性规则
1.2.4 常用的数据模型
数据库领域中主要的逻辑数据模型有:
- 层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型和半结构化数据模型
其中层次模型和网状模型统称为格式化模型
数据结构、数据操作和数据完整性约束条件这三个方面的内容完整地描述了一个数据模型,
其中数据结构是刻画模型性质的最基本的方面
在格式化模型中数据结构的单位是基本层次联系。
所谓
基本层次联系
是指两个记录以及它们之间的一对多(包括一对一)的联系
图中
R
i
R_i
R
i
位于联系
L
i
j
L_{ij}
L
i
j
的始点,称为
双亲结点
,
R
j
R_j
R
j
位于联系
L
i
j
L_ij
L
i
j
的终点,称为
子女结点
1.2.5 层次模型
层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式
层次模型用树形结构来表示各类实体以及实体间的联系
层次模型的数据结构
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
- 有且只有一个结点没有双亲结点,这个结点称为根结点
- 根以外的其他结点有且只有一个双亲结点
在层次模型中,
每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系
。这就使得层次数据库系统只能处理一对多的实体联系
在层次模型中,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶节点
由图可知,
层次模型像一棵树,结点的双亲是唯一的
层次模型的一个基本特点是:
任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在
层次模型的数据操纵与完整性约束
层次模型的数据操作主要有
查询、插入、删除和更新
。进行这些操作时要满足层次模型的完整性约束条件
进行插入操作时,如果没有相应的双亲结点值就不能插入它的子女结点值。
进行删除操作时,如果删除双亲结点值,则相应的子女结点值也将被同时删除
层次模型的优缺点
优点:
- 层次模型的数据结构比较简单清晰
- 层次数据库的查询效率高。层次数据库的性能优于关系数据库,不低于网状数据库
- 层次数据模型提供了良好的完整性支持
缺点:
- 现实世界中有很多联系是非层次性的,有局限性
- 如果一个结点具有多个双亲结点等,用层次模型表示这类联系会比较复杂
- 查询子女结点必须通过双亲结点
- 由于结构严密,层次命令趋于程序化
1.2.6 网状模型
网状数据库系统采用网状模型作为数据的组织方式。
网状数据模型的典型代表是
D
B
T
G
DBTG
D
B
T
G
系统,亦称
C
O
D
A
S
Y
L
CODASYL
C
O
D
A
S
Y
L
系统
。
这是
20
20
2
0
世纪
70
70
7
0
年代数据系统语言研究会下属的数据库任务组提出的一个系统方案
网状模型的数据结构
在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:
- 允许一个以上的结点无双亲
- 一个结点可以有多于一个的双亲
网状模型是一种比层次模型更具普遍性的结构。
它去掉了层次模型的两个限制,允许结点有多个双亲结点;此外它还允许两个结点之间有多种联系(称为复合联系)
层次模型实际上是网状模型的一个特例
层次模型中子女结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一
。因此要为每个联系命名,并指出与该联系有关的双亲记录和子女记录
网状模型的数据操纵与完整性约束
网状模型一般没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统对数据操纵都加了一些限制,提供了一定的完整性约束
例如,
D
B
T
G
DBTG
D
B
T
G
在模式数据定义语言中提供了定义
D
B
T
G
DBTG
D
B
T
G
数据库完整性的若干概念和语句,主要有:
- 支持记录码的概念,码即唯一标识记录的数据项的集合
- 保证一个联系中双亲记录和子女记录之间是一对多的联系
- 可以支持双亲记录和子女记录之间的某些约束条件
网状模型的优缺点
优点:
-
能够更为直接地描述现实世界
-
具有良好的性能,存取效率较高
缺点:
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
-
网状模型的
DD
L
DDL
D
D
L
1
、
DM
L
DML
D
M
L
2
复杂,并且要嵌入某一种高级语言中。用户不易掌握,不容易使用 - 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担
1.2.7 关系模型
关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式
数据库领域当前的研究工作都是以关系方法为基础
关系模型的数据结构
关系模型是建立在严格的数学概念的基础上的
从用户观点看,关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表
相关术语:
- 关系:一个关系对应通常说的一张表,例如上图的学生登记表
- 元组:表中的一行即为一个元组
- 属性:表中的一列即为一个属性,给每个属性起一个名称即属性名
- 码:也称为码键。表中的某个属性组,它可以唯一确定一个元组,如上图的学号可以唯一确定一个学生,也就称为本关系的码
- 域:域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域
- 分量:元组中的一个属性值
-
关系模式:对关系的描述,一般表示为:
关系
名
(
属
性
1
,
属
性
2
,
⋯
,
属
性
n
)
关系名(属性1,属性2,\cdots,属性n)
关
系
名
(
属
性
1
,
属
性
2
,
⋯
,
属
性
n
)
关系模型要求关系必须是规范化的
,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,
关系的每一个分量必须是一个不可分的数据项
,也就是说,不允许表中还有表
关系模型的数据操纵与完整性约束
关系模型的数据操纵主要包括查询、插入、删除和更新数据
关系的完整性约束条件包括三大类:
- 实体完整性、参照完整性和用户定义的完整性
关系模型中的数据操作是集合操作,
操作对象和操作结果都是关系
。另一方面,
关系模型把存取路径向用户隐蔽起来
,从而大大提高了数据的独立性,提高了用户生产率
关系模型的优缺点
优点:
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上上的
- 关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系。所以其数据结构简单、清晰,用户易懂易用
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作
缺点:
- 由于存取路径对用户隐蔽,查询效率往往不如格式化数据
- 增加了开发数据库管理系统的难度
1.3 数据库系统的结构
从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的系统结构
从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户—服务器、浏览器—应用服务器/数据库服务器多层结构等。这是数据库系统外部的体系结构
1.3.1 数据库系统模式的概念
在数据模型中有“型”
(
t
y
p
e
)
(type)
(
t
y
p
e
)
和“值”
(
v
a
l
u
e
)
(value)
(
v
a
l
u
e
)
的概念
。型是指
对某一类型数据的结构和属性的说明,值是型的一个具体赋值
模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例。同一个模式可以有很多实例
模式是相对稳定的,而实例是相对变动的
,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是
虽然实际的数据库管理系统产品种类很多,但它们在体系结构上
通常都具有相同的特征,即采用三级模式结构(早期微机上的小型数据库系统除外)并提供两级映像功能
1.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由
外模式、模式和内模式
三级构成
模式
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关
一个数据库只有一个模式
数据库管理系统提供模式数据定义语言(模式
DD
L
DDL
D
D
L
)来严格地定义模式
外模式
外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式通产是模式的子集。一个数据库可以有多个外模式
数据库管理系统提供外模式数据定义语言(外模式
DD
L
DDL
D
D
L
)来严格地定义外模式
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的
内模式
内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
1.3.3 数据库的二级映像功能与数据独立性
数据库系统的三级模式是数据的三个抽象级别,它把数据的具体组织留给数据库管理系统管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式
外模式 / 模式映像
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对于每一个外模式,数据库系统都有一个外模式 / 模式映像,它定义了该外模式与模式之间的对应关系
当模式改变时,由数据库管理员对各个外模式 / 模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
模式 / 内模式映像
数据库中只有一个模式,也只有一个内模式,所以模式 / 内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系
当数据库的存储结构改变时,由数据库管理员对模式 / 内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性
在数据库的三级模式结构中
- 数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次
- 数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的外模式,也独立于具体的存储设备
- 数据库的外模式面向具体的应用程序,它定义在逻辑模式上,但独立于存储模式和存储设备
数据库的二级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改
数据与程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去
由于数据的存取由数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的维护和修改
1.4 数据库系统的组成
硬件平台及数据库
数据库系统对硬件资源有较高的要求,这些要求是:
- 足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序
- 足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的磁带左数据备份
- 要求系统有较高的通道能力,以提高数据传送率
软件
数据库系统的软件主要包括:
- 数据库管理系统
- 支持数据库管理系统运行的操作系统
- 具有与数据库接口的高级语言及其编译系统,便于开发应用程序
- 以数据库管理系统为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统
人员
-
数据库管理员
在数据库系统环境下有两类共享资源,一类是数据库,另一类是数据库管理系统软件。因此需要有专门的管理机构来监督和管理数据库系统,包括以下职责:-
决定数据库中的信息内容和结构
-
决定数据库的存储结构和存储策略
-
定义数据的安全性要求和完整性约束条件
-
监控数据库的使用和运行
-
数据库的改进和重组、重构
-
-
系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,要和用户及数据库管理员相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计 - 应用程序员
-
用户(指最终用户)
- 偶然用户
- 简单用户
- 复杂用户