数据库系统 第1章绪论
内容
1.1 数据库系统概述
1.2 数据模型
1.3 数据库系统结构
1.4 数据库系统的组成
第1章 绪论
1.1数据库系统概述
1.1.1四个基本概念
一、数据
定义:描述事物的符号记录称为数据。
数据的含义称为数据的语义,数据与其语义是不可分的。
记录——是计算机中表示和存储数据的一种格式或一种方法。
二、数据库(DataBase)
定义:长期储存在计算机内、有组织的、可共享的大量数据的集合
基本特征
-
数据按照一定的数据模型组织、描述和储存
-
具有较小的冗余度
-
较高的数据独立性
-
易扩展性
-
可共享
-
永久存储、有组织、可共享
三、数据库管理系统(DataBase Management System,DBMS)
定义:位于用户和操作系统之间的一层数据管理软件,计算机的基础软件
主要功能
-
数据定义功能:提供数据定义语言(Data Definition Language,DDL)
定义数据库中的数据对象 -
数据组织、存储和管理:
-
分类组织、存储和管理各种数据
-
确定组织数据的文件结构和存取方式
-
实现数据之间的联系
-
提供多种存取方法提高存取效率
-
-
数据操纵功能:提供数据操纵语言(Data Manipulation Language,DML),实现对数据库的基本操作 (查询、插入、删除和修改)
-
数据库的事务管理和运行管理:
- 数据库在建立、运行和维护时由DBMS统一管理和控制
保证数据的安全性、完整性、多用户对数据的并发使用
发生故障后的系统恢复
- 数据库在建立、运行和维护时由DBMS统一管理和控制
-
数据库的建立和维护功能
-
数据库初始数据装载转换
-
数据库转储
-
介质故障恢复
-
数据库的重组织
-
性能监视分析等
-
-
其他功能
- DBMS与网络中其它软件系统的通信
两个DBMS系统的数据转换
异构数据库之间的互访和互操作
- DBMS与网络中其它软件系统的通信
四、数据库系统(DataBase System,DBS)
定义:数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统
构成
-
数据库
-
数据库管理系统(及其开发工具)
-
应用系统
-
数据库管理员
数据库管理员:专门协助的人员(数据库的建立使用和维护)
1.1.2数据管理技术的产生和发展
数据管理?
对数据进行分类、组织、编码、存储、检索和维护
数据处理的中心问题
数据管理技术的发展过程(三个阶段)
人工管理阶段
-
时期:20世纪50年代
-
产生背景
-
特点
-
数据不保存
-
数据由用户(程序员)进行管理
-
应用程序管理数据
-
数据不共享
-
数据不具有独立性:数据完全依赖于应用程序
-
文件系统阶段
-
时期:20世纪50年代末–60年代中期
-
特点
-
数据可以长期保存
-
由文件系统管理数据
-
数据共享性差、冗余度大(相较于人工管理系统而言,文件系统可共享但是共享性仍然很差)
-
数据独立性差(相较于人工管理系统而言,文件系统可共享但是共享性仍然很差)
-
数据库系统阶段(20世纪60年代末–现在)
-
特点
-
数据由数据库管理系统(DBMS)管理
-
面向一个现实世界(一个部门、企业、跨国组织等)
-
共享性高、冗余度小
-
具有高度的物理独立性和一定的逻辑独立性
-
整体结构化,用数据模型描述
-
数据控制能力——由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力
-
1.1.3数据库系统的特点
引入例子
采用文件系统实现学籍管理
采用数据库系统实现学籍管理
几个特点
数据结构化(数据库系统与文件系统的本质区别)
-
数据库系统实现整体数据的结构化
-
整体结构化:数据库中的数据不再仅仅针对一个应用,而是面向整个组织或者企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的
数据共享性高、冗余度低且易扩充
-
数据共享可以大大减少数据冗余,节约存储空间
-
数据共享可以避免数据之间的不相容性与不一致性
-
DBS弹性大,易于扩充
数据独立性高(数据独立性是借助数据库管理的一个显著优点,是由数据库管理系统提供的二级映像功能来保证的),包括:
-
物理独立性:用户的应用程序与数据库的物理结构是相互独立的。当数据的物理存储改变了,应用程序不用改变。
-
逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
数据由DBMS统一管理和控制
-
(1)数据的安全性(Security)保护
- 保护数据,以防止不合法的使用造成的数据的泄密和破坏。
-
(2)数据的完整性(Integrity)检查
- 将数据控制在有效的范围内,或保证数据之间满足一定的关系。
-
(3)并发(Concurrency)控制
- 对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
-
(4)数据库恢复(Recovery)
- 将数据库从错误状态恢复到某一已知的正确状态。
1.2数据模型
定义:数据模型是对现实世界数据特征的抽象,数据模型是用来描述数据、组织数据和对数据进行操作的,是现实数据的模拟。
数据模型是数据库系统的核心和基础。
需满足要求
能够比较真实地模拟现实世界
容易为人所理解
便于在计算机上实现
步骤——客观对象的抽象过程—两步抽象
现实世界中的客观对象抽象为概念模型;(现实世界抽象为信息世界)
把概念模型转换为某一DBMS支持的数据模型。(信息世界抽象为机器世界)
1.2.1分类——两类数据模型——根据模型应用的不同目的分类
1.2.2概念模型(也称信息模型)
定义:概念模型也称为信息模型,按用户的观点对数据和信息建模,主要用于数据库设计
信息世界中的基本概念
-
实体(entity):客观存在并可相互区别的事物
-
属性(attribute):实体所具有的某一特性
-
码(key):唯一标识实体的属性
-
域(Domain):属性的取值范围称为该属性的域
-
实体型(entity type):用实体名及其属性名集合来抽象和刻画同类实体
-
实体集(entity set):同一类型的实体的集合称为实体集
-
联系(relationship):事物内部和事物之间的联系
-
实体间的联系
把参与联系的实体型的数目称为联系的度-
两个实体型之间的联系:
联系度为2-
一对一
1:1-
实体集A<——>实体集B:至多有一个与之对应,反之亦然
-
eg:一个班级只有一个班长,班长只在一个班级中任职
-
-
一对多 1:n
-
实体集A——实体集B=1:n,n≥0,反之亦然
-
eg:一个班级中有若干学生,每个学生只在一个班级中学习
-
-
多对多
n:m-
实体集A——实体集B=m:n,m≥0,n≥0
-
eg:课程与学生的联系——一门课程可以若干学生选修,一个学生可以选修若干课程
-
-
-
两个以上(n个)的实体型之间的联系
联系度为n-
一对一
-
一对多
-
多对多
-
eg:见教材P216
-
课程——教师——参考书
- 若一门课程可有多个老师讲授,使用若干参考书,而每个老师只能讲授一门课程,一本参考书仅供一门课程参考,则课程与教师、参考书之间的联系(讲授)是一对多
-
供应商——项目——零件
- 多对多
-
-
-
单个实体型之间的联系:同一实体集内的各实体之间联系
-
一对一
-
一对多
-
多对多
-
eg:职工实体型内部之间有职工和领导——1:n
-
-
-
实体内部的联系:组成实体的各属性之间的联系
-
概念模型的一种表示方法——实体-联系方法:
实体联系图(Entity Relationship Model,E-R图)
E-R图提供了表示实体型、属性和联系的方法。
-
实体:矩形表示
-
属性:椭圆形表示,
-
联系:菱形表示
逻辑模型和物理模型
逻辑模型:按计算机系统的观点对数据建模,主要用于数据库管理锡通的实现
主要包括最常用的数据模型——
-
非关系模型
-
层次模型
-
网状模型
-
-
关系模型
-
面向对象数据模型
-
对象关系数据模型
-
半结构化数据模型
物理模型:对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
1.2.3数据模型的组成元素
数据结构(静态特性)
数据结构描述数据库的组成对象以及对象之间的联系,是所描述的对象类型的集合
数据操作(动态特性)
数据操作是指对数据库中的各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据模型对操作的定义
-
操作的确切含义
-
操作符号
-
操作规则(如优先级)
-
实现操作的语言
查询和更新(插入、删除、修改)两大类操作
数据操作是对系统动态特性的描述
数据的完整性约束条件
数据的完整性约束是保证数据的正确、有效和相容一组完整性规则
一组完整性规则的集合。
完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容
1.2.4最常用的数据模型
非关系模型
1.2.5层次模型
-
层次模型是数据库中出现的最早的数据模型
-
层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
-
层次模型用树形结构来表示各类实体以及实体间的联系
-
层次模型的数据结构
-
层次模型的两个条件:
-
- 有且只有一个结点没有双亲结点,这个结点称为根结点
-
- 根以外的其它结点有且只有一个双亲结点
-
-
几个术语:
-
根结点
-
双亲结点
-
兄弟结点
-
叶结点
-
* eg
-
多对多联系在层次模型中的表示
-
用层次模型间接表示多对多联系
-
方法
- 将多对多联系分解成一对多联系
-
分解方法
-
冗余结点法
-
虚拟结点法
-
-
-
层次模型的完整性约束条件
-
无相应的双亲结点值就不能插入子女结点值
-
如果删除双亲结点值,则相应的子女结点值也被同时删除
-
更新操作时,应更新所有相应记录,以保证数据的一致性
-
-
层次数据模型的存储结构
-
邻接法
-
按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序
-
-
链接法
-
用指针来反映数据之间的层次联系
-
子女-兄弟链接法
-
层次序列链接法
-
-
-
层次模型的特点
-
每个记录类型可以定义一个排序字段,也称为码字段
-
优点
-
层次模型的数据结构比较简单清晰
-
层次数据库的查询效率高
-
提供了良好的完整性支持
-
-
缺点
-
只能直接处理一对多的实体联系,不能直接处理多对多联系
-
结点的双亲是唯一的,不适合多个双亲结点等,难表示
-
查询子女结点必须通过双亲结点,没有一个子女记录值能够脱离双亲记录值而独立存在
-
任何记录值只有按其路径查看时,才能显出它的全部意义
-
由于结构严密,层次命令趋于程序化
-
-
-
1.2.6网状模型
-
网状数据库系统采用网状模型作为数据的组织方式
-
典型代表是DBTG(DataBase Task Group,数据任务组)系统:
-
亦称CODASYL(Conference On Data System Language,数据系统语言研究会)系统
-
70年代由DBTG提出的一个系统方案
-
奠定了数据库系统的基本概念、方法和技术
-
-
把满足这两个条件的基本层次联系集合称为网状模型
-
- 允许一个以上的结点无双亲;
-
- 一个结点可以有多于一个的双亲。
-
-
层次模型是网状模型的特例
-
表示方法
- 实体型:用记录类型描述
每个结点表示一个记录类型(实体)
- 实体型:用记录类型描述
属性:用字段描述
每个记录类型可包含若干个字段
联系:用结点之间的连线表示记录类型(实体)之
间的一对多的父子联系
-
eg
-
多对多联系在网状模型中的表示
-
用网状模型间接表示多对多联系
-
方法:
- 将多对多联系直接分解成一对多联系
-
-
网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束
-
码:唯一标识记录的数据项的集合
-
一个联系中双亲记录与子女记录之间是一对多联系
-
支持双亲记录和子女记录之间某些约束条件
-
-
网状数据模型的存储结构
-
关键
- 实现记录之间的联系
-
常用方法
-
单向链接
-
双向链接
-
向首链接
-
环状链接
-
-
-
优缺点
-
优点
-
能够更为直接地描述现实世界,如一个结点可以有多个双亲
-
具有良好的性能,存取效率较高
-
-
缺点
-
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
-
DDL、DML语言复杂,用户不容易使用
-
DDL(Data Definition Language)数据定义语言:
- 适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.
-
DML(Data Manipulation Language)数据操纵语言:
- 适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等.
-
-
-
网状模型与层次模型的区别
-
网状模型允许多个结点没有双亲结点
-
网状模型允许结点有多个双亲结点
-
网状模型允许两个结点之间有多种联系(复合联系)
-
网状模型可以更直接地去描述现实世界
-
层次模型实际上是网状模型的一个特例
1.2.7关系模型
关系数据库系统采用关系模型作为数据的组织方式
在用户观点下,关系模型由一组关系组成,每个关系的数据结构是一张规范的二维表
eg:
几个术语
-
关系(Relation)
- 一个关系对应通常说的一张表
-
元组(Tuple)
- 表中的一行即为一个元组
-
属性(Attribute)
- 表中的一列即为一个属性,给每一个属性起一个名称即属性名
-
主码(Key)
- 表中的某个属性组,它可以唯一确定一个元组。
-
域(Domain)
- 属性的取值范围。
-
分量
- 元组中的一个属性值。
-
关系模式
- 对关系的描述
-
关系名(属性1,属性2,…,属性n)
-
术语对比
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项
不允许表中还有表
关系数据模型的操纵与完整性约束
-
数据操作是集合操作,操作对象和操作结果都是关系
-
查询
-
插入
-
删除
-
更新
-
-
数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合
-
存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
-
关系的完整性约束条件
-
实体完整性
-
参照完整性
-
用户定义的完整性
-
关系数据模型的存储结构
-
实体及实体间的联系都用表来表示
-
表以文件形式存储
-
有的DBMS一个表对应一个操作系统文件
-
有的DBMS自己设计文件结构
-
优缺点
-
优点
-
建立在严格的数学概念的基础上
-
概念单一
-
实体和各类联系都用关系来表示
-
对数据的检索结果也是关系
-
-
关系模型的存取路径对用户透明
-
具有更高的数据独立性,更好的安全保密性
-
简化了程序员的工作和数据库开发建立的工作
-
-
-
缺点
-
存取路径对用户透明导致查询效率往往不如非关系数据模型
-
为提高性能,必须对用户的查询请求进行优化增加了开发DBMS的难度
-
面向对象数据模型
半结构化数据模型
1.3 数据库系统的结构
从数据库最终用户角度看(数据库系统外部的体系结构)
单用户结构
主从式结构
分布式结构
客户/服务器
浏览器/应用服务器/数据库服务器多层结构等
从数据库管理系统角度看
数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
1.3.1 数据库系统模式的概念
“型” 和“值” 的概念
型(Type)
- 对某一类数据的结构和属性的说明
值(Value)
- 是型的一个具体赋值
模式(Schema)
数据库逻辑结构和特征的描述
是型的描述
反映的是数据的结构及其联系
模式是相对稳定的
实例(Instance)
是模式的一个具体值
反映数据库某一时刻的状态
同一个模式可以有很多实例
实例随数据库中的数据的更新而变动
实际的数据库管理系统在体系结构上通常具有相同的特征,即采用三级模式结构,并提供两级映像功能
1.3.2 数据库系统的三级模式结构
三级模式
模式(Schema)(也称逻辑模式)
-
数据库中全体数据的逻辑结构和特征的描述
-
所有用户的公共数据视图,综合了所有用户的需求
-
一个数据库只有一个模式
-
模式的地位:是数据库系统模式结构的中间层
-
与数据的物理存储细节和硬件环境无关
-
与具体的应用程序、开发工具及高级程序设计语言无关
-
-
模式的定义
-
数据的逻辑结构(数据项的名字、类型、取值范围等)
-
数据之间的联系
-
数据有关的安全性、完整性要求
-
-
DBMS提供模式数据定义语言(DDL模式)来严格定义模式
外模式(External Schema)(也称子模式或用户模式)
-
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
-
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
-
外模式的地位:介于模式与应用之间
-
模式与外模式的关系:一对多
-
外模式通常是模式的子集
-
一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
-
对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同
-
-
外模式与应用的关系:一对多
-
同一外模式也可以为某一用户的多个应用系统所使用
-
但一个应用程序只能使用一个外模式
-
-
-
外模式的用途
-
保证数据库安全性的一个有力措施
-
每个用户只能看见和访问所对应的外模式中的数据
-
内模式(Internal Schema) (也称存储模式)
-
是数据物理结构和存储方式的描述
-
是数据在数据库内部的表示方式
-
记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储)
-
索引的组织方式
-
数据是否压缩存储
-
数据是否加密
-
数据存储记录结构的规定
-
-
一个数据库只有一个内模式
1.3.3 数据库的二级映像功能与数据独立性
三级模式是对数据的三个抽象级别
二级映象在DBMS内部实现这三个抽象层次的联系和转换
外模式/模式映像
-
模式:描述的是数据的全局逻辑结构
-
外模式:描述的是数据的局部逻辑结构
-
同一个模式可以有任意多个外模式
-
每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
-
映象定义通常包含在各自外模式的描述中
-
保证数据的逻辑独立性
-
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
-
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
-
内模式/模式映像
-
内模式/模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。
- 例如,说明逻辑记录和字段在内部是如何表示的
-
数据库中模式/内模式映象是唯一的
-
该映象定义通常包含在模式描述中
-
保证数据的物理独立性
- 当存储结构改变时数据库管理员修改有关的内模式/模式映像,使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
数据的独立性
-
数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去
-
数据的存取由DBMS管理
-
用户不必考虑存取路径等细节
-
简化了应用程序的编制
-
大大减少了应用程序的维护和修改
-
几个特点
-
数据库模式
-
即全局逻辑结构是数据库的中心与关键
-
独立于数据库的其他层次
-
设计数据库模式结构时应首先确定数据库的逻辑模式
-
-
数据库的内模式
-
依赖于它的全局逻辑结构
-
独立于数据库的用户视图,即外模式
-
独立于具体的存储设备
-
将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率
-
-
数据库的外模式
-
面向具体的应用程序
-
定义在逻辑模式之上
-
独立于存储模式和存储设备
-
当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动
-
设计外模式时应充分考虑到应用的扩充性
-
-
特定的应用程序
-
在外模式描述的数据结构上编制的
-
依赖于特定的外模式
-
与数据库的模式和存储结构独立
-
不同的应用程序有时可以共用同一个外模式
-
-
数据库的二级映像
-
保证了数据库外模式的稳定性
-
从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改
-
-
数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去
-
数据的存取由DBMS管理
-
用户不必考虑存取路径等细节
-
简化了应用程序的编制
-
大大减少了应用程序的维护和修改
-
1.4 数据库系统的组成
组成部分
数据库
数据库管理系统(及其开发工具)
应用系统
数据库管理员
各部分内容包括
硬件平台及数据库
数据库系统对硬件资源的要求
-
(1) 足够大的内存,要能存放
-
操作系统
-
DBMS的核心模块
-
数据缓冲区
-
应用程序
-
-
(2) 足够大的外存
* 磁盘或磁盘阵列
* 数据库
* 光盘、磁带
* 数据备份
- (3) 较高的通道能力,提高数据传送率
软件——主要包括
DBMS
支持DBMS运行的操作系统
与数据库接口的高级语言及其编译系统
以DBMS为核心的应用开发工具
为特定应用环境开发的数据库应用系统
人员——主要包括
数据库管理员(DataBase Administrator,DBA)——职责
-
1.决定数据库中的信息内容和结构
-
2.决定数据库的存储结构和存取策略
-
3.定义数据的安全性要求和完整性约束条件
-
4.监控数据库的使用和运行
-
周期性转储数据库
-
数据文件
-
日志文件
-
-
系统故障恢复
-
介质故障恢复
-
监视审计文件
-
-
- 数据库的改进和重组
-
性能监控和调优
-
定期对数据库进行重组织,以提高系统的性能
-
需求增加和改变时,数据库须需要重构造
系统分析员和数据库设计人员
-
系统分析员
-
负责应用系统的需求分析和规范说明
-
与用户及DBA协商,确定系统的硬软件配置
-
参与数据库系统的概要设计
-
-
数据库设计人员
-
参加用户需求调查和系统分析
-
确定数据库中的数据
-
设计数据库各级模式
-
应用程序员
-
设计和编写应用系统的程序模块
-
进行调试和安装
用户
-
用户是指最终用户(End User)。最终用户通过应用系统的用户接口使用数据库。
-
- 偶然用户
-
不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息
-
企业或组织机构的高中级管理人员
-
- 简单用户
-
主要工作是查询和更新数据库
-
银行的职员、机票预定人员、旅馆总台服务员
-
- 复杂用户
-
工程师、科学家、经济学家、科技工作者等
-
直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序