1 数据库相关概念
1.1 数据 & 信息
- 信息:可以被记录和被传播
- 数据:用于记录信息
- 数据与信息的关系
- 数据+解释 = 信息
- 数据是信息的载体
- 信息是数据的解译
1.2 数据管理
计算机系统对数据进行的操作(Data Manipulation)
- 数据管理(Data Management)
---数据库 - 数据处理(Data Processing)
---应用程序 - 数据传输(Data Transmission)
---计算机网络
数据管理的任务
- 数据存储(Data Storage)
合理组织数据,持久化存储 - 数据维护(Data Maintenance)
维护数据内容,对数据集合进行增、删、改等操作 - 数据查询(Data Query)
从数据存储中提取需要的数据 - 其它如数据安全等…
1.3 数据库
Efficient, convenient, and safe multi-user storage of massive amounts of well organized persistent data
是存储介质上的一个/组文件,不能直接使用,需通过数据库管理系统来操作
1.4 数据库管理系统 (DataBase Management System)
- 管理数据库的一种软件系统
- 主要功能包括:
- 数据定义功能
- 数据组织、存储、管理功能
- 数据操纵功能
- 数据库事务管理和运行管理
- 数据库的建立与维护…
1.5 数据库系统 (Database System)
- 基于数据库建立的一种信息系统
- 通常由应用程序、数据库、数据库管理系统和用户(数据库管理员、应用系统开发人员、终端用户)组成
2 数据管理发展历史
2.1 手工处理阶段
- 20世纪50年代中期以前,计算机主要用于科学计算
- 硬件存储设备主要有磁带、卡片机、纸带机等,软件上也处于初级的阶段,没有操作系统(OS)和管理数据的工具
- 数据处理方式是批处理,数据的组织和管理完全靠程序员手工完成
- 特点:
- 数据不保存
- 没有对数据进行管理的软件系统
- 没有文件的概念
- 一组数据对应于一个程序,数据面向应用
2.2 文件系统阶段
- 20世纪50年代后期到60年代中期,计算机应用领域拓宽,不仅用于科学计算,还大量用于数据管理。
- 在文件系统阶段中,计算机外存储器有了磁盘、磁鼓等直接存取的存储设备。
- 计算机软件的OS中己经有了专门的管理数据软件,即所谓的文件系统。
- 文件系统的处理方式不仅有文件批处理,而且还能够联机实时处理
- 特点
- 数据以文件形式可长期保存下来,用户可随时对文件进行查询、修改和增删等处理
- 文件系统可对数据的存取进行管理,程序员只与文件名打交道,不必明确数据的物理存储,大大减轻了程序员的负担。
- 文件形式多样化,有顺序文件、倒排文件、索引文件等,因而对文件的记录可顺序访问,也可随机访问,更便于存储和查找数据。
- 程序与数据间有一定独立性,由专门的软件即文件系统进行数据管理,程序和数据间由软件提供的存取方法进行转换,数据存储发生变化不一定影响程序的运行。
- 缺陷:
- 数据冗余度大
各数据文件之间没有有机的联系,一个文件基本上对应于一个应用程序,数据不能共享。 - 数据独立性低
数据和程序相互依赖,一旦改变数据的逻辑结构,必须修改相应的应用程序。而应用程序发生变化,如改用另一种程序设计语言来编写程序,也需修改数据结构。 - 数据一致性差
由于相同数据的重复存储、各自管理,在进行更新操作时,容易造成数据的不一致性。
- 数据冗余度大
2.3 数据库系统阶段
- 60年代后期,计算机应用于管理的规模更加庞大,数据量急剧增加
- 硬件方面出现了大容量磁盘,使计算机联机存取大量数据成为可能
- 硬件价格下降,而软件价格上升,使开发和维护系统软件的成本增加
- 文件系统的数据管理方法已无法适应开发应用系统的需要
- 为解决多用户、多个应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统
- 特点
- 数据结构化
- 在文件系统阶段,只考虑了同一文件记录内部数据项之间的联系,而不同文件的记录之间是没有联系的,也就是说,从整体上看数据是无结构的。
- 在数据库中,实现了整体数据的结构化。按照某种数据模型,将各种数据组织到一个结构化的数据库中,整个应用环境内的数据不是一盘散沙,可表示出数据之间的有机关联。
- 在数据库中,描述数据的时候,不仅要描述数据本身,还要描述数据之间的联系。数据之间的联系通过存取路径来实现,把相关的数据有机地组织在一起。
- 数据共享
- 数据库中的数据是考虑所有用户的数据需求、面向整个系统组织的,而不是面向某个具体应用的。因此数据库中包含了所有用户的数据成分,但每个用户通常只用到其中一部分数据。不同用户所使用的数据可以重叠,同一部分数据也可为多用户共享
- 在数据库方式下,用户不是自建文件,而是取自数据库中的某个子集,它并非独立存在,而是靠DBMS从数据库中映射出来的,所以叫做逻辑文件。如图所示,用户使用的是逻辑文件,因此尽管一个数据可能出现在不同的逻辑文件中,但实际上的物理存储只可能出现一次,减少了数据冗余。
- 数据库中的数据是考虑所有用户的数据需求、面向整个系统组织的,而不是面向某个具体应用的。因此数据库中包含了所有用户的数据成分,但每个用户通常只用到其中一部分数据。不同用户所使用的数据可以重叠,同一部分数据也可为多用户共享
- 数据独立性
- 数据独立性是指数据库中的数据与应用程序之间不存在依赖关系,而是相互独立的。
- 包括物理独立性和逻辑独立性
- 物理独立性
是指修改数据库的物理存储模式而不必重写应用程序的能力。有时为了提高系统的性能等原因,偶尔会在数据库的物理层做一些修改(比如将数据从光盘上挪到磁盘上),物理独立性可以使应用程序不受影响。 - 逻辑数据独立性
是指修改数据库的逻辑模式而不必重写应用程序的能力。当数据库的逻辑结构发生了变化,逻辑层就需要做一些修改,但可以控制这种修改带来的影响,尽量使应用程序保持稳定
- 物理独立性
- 方便的用户接口
- 通过标准化的非过程式语言SQL,很方便的操纵数据库:数据定义语言(DDL)数据查询语言(DQL)数据操纵语言(DML)数据控制语言(DCL),综合统一,处理数据库所有事务
- 交互式和嵌入式相结合
- 独立使用:联机交互的方式,直接操作数据库
- 嵌入式:可以嵌入到高级编程语言中,使得应用程序能够操作数据库
- 统一的数据管理与控制功能
- 数据的完整性
数据的完整性指数据的正确性、有效性和相容性。实际上,是指数据库中的数据应与现实世界中的实际情况相符。为了保证DB的正确性,要使用数据库系统提供的存取方法设计一些完整性规则,对数据值进行校验
- 数据的安全性
- 并发控制
当多个用户同时存取、修改DB中的数据时,可能会发生相互干扰,使DB中数据的完整性受到破坏,而导致数据的不一致性。DB的并发控制防止了这种现象的发生,提高了DB的利用率
- 数据的完整性
- 数据结构化
3 数据库结构
3.1 数据库模式结构
- 模式(Schema)
- 数据库逻辑结构和特征的描述
- 反映的是数据的结构及其联系,是数据库创建的时候建立的
- 模式是相对稳定的
- 模式的一个实例(Instance)
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
- 用户使用数据库就是按照模式所描述的结构,在模式的实例中存取数据
三级模式结构
外模式--用户层
- 外模式(也称子模式或用户模式)
- 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
- 外模式是基于数据视图(View)实现。视图(View)是与某一应用有关的数据的逻辑表示
- 外模式的地位:介于模式与应用之间
- 模式与外模式的关系:一对多
- 外模式通常是模式的子集
- 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
- 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同
- 外模式与应用的关系:一对多
- 同一外模式也可以为某一用户的多个应用系统所使用,
- 但一个应用程序只能使用一个外模式。
- 外模式的用途
- 保证数据库安全性和数据独立性的一个有力措施
- 每个用户只能看见和访问所对应的外模式中的数据
模式(概念模式)--逻辑层
- 模式(也称概念模式)
- 数据库中全体数据的逻辑结构和特征的描述
- 所有用户的公共数据视图,综合了所有用户的需求
- 一个数据库只有一个模式
- 模式的地位:是数据库系统模式结构的中间层
- 与数据的物理存储细节和硬件环境无关
- 与具体的应用程序、开发工具及高级程序设计语言无关
- 模式的定义
- 数据的逻辑结构(数据项的名字、类型、取值范围等)
- 数据之间的联系
- 数据有关的安全性、完整性要求等
内模式--物理层
- 内模式(也称存储模式)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
- 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储等等)
- 索引的组织方式
- 数据是否压缩存储
- 数据是否加密
- 数据存储记录结构的规定
- 一个数据库只有一个内模式
二级映像
- 三级模式是对数据的三个抽象级别
- 二级映象在DBMS内部实现这三个抽象层次的联系和转换
外模式/ 模式映象
- 将外模式映射为概念模式,从而支持数据概念视图向外部视图的转换。
- 便于用户观察和使用数据
- 实现手段:数据视图(View) (在后面章节中会介绍)
- 作用:保证数据的逻辑独立性
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
模式 / 内模式映象
- 定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在物理文件内部是如何表示的
- 便于计算机存储和处理
- 作用:保证数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储介质),数据库管理员修改模式/内模式映象,使模式保持不变,应用程序不受影响。保证了数据与程序的物理独立性。
3.2 数据库功能结构
数据库管理系统运行着很多例程来完成数据管理功能
查询处理器
- 查询分析,首先对查询语句进行扫描,词法分析和语法分析.
- 查询检查,对合法的查询语句进行语义检查,检查通过后便把SQL查询语句转换成内部表示
- 查询优化,每个查询都会有许多可供选择的执行策略和操作算法,查询优化就是选择一个高效执行的查询处理策略.
- 查询执行,根据查询优化器得到的执行策略生成查询执行计划,由代码生成器执行这个查询计划的代码,然后加以执行,送回查询结果.
存储管理器
根据查询执行层的操作指令,在数据存储器中完成数据的增删改查操作
安全管理器保障数据的安全可靠
-
访问认证(攻不破)
-
权限控制(不越权)
-
数据保护(看不懂)
-
审计机制(赖不掉)
-
安全测试(信得过)
-
外围级防御
- 决定哪些用户可以访问数据库
- 安全认证、防火墙、入侵检测
-
访问级防御
- 控制允许哪些用户有权访问某些数据或包含它的系统
- 安全配置策略、访问控制、审计
-
数据级防御
- 预防和应对发生在数据库本身的安全隐患
- 数据加密、隐私保护
3.3 数据库体系结构
数据库的组件构成和相互之间的交互作用
集中式 (Centralized)
早期的数据库结构
客户端不运行程序
数据管理和业务处理都由中央服务器负责
客户-服务器式 (Client-Serve, CS)
客户端运行应用程序
数据库部署于中心服务器
通常采用单体数据库结构
分布式 (Distributed)
当数据规模巨大,
单体数据库无法处理时,
可以使用并行、分布式架构
扩展容量和处理能力,提升可用性
并行式 (Parallel)
云数据库
使数据库成为社会/行业的信息基础设施
实现更灵活的资源调度和管理






















