1 数据管理技术概述

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)

  • 管理数据库的一种软件系统
  • 主要功能包括:
    • 数据定义功能
    • 数据组织、存储、管理功能
    • 数据操纵功能
    • 数据库事务管理和运行管理
    • 数据库的建立与维护…
      Pasted image 20250228104531.png

1.5 数据库系统 (Database System)

  • 基于数据库建立的一种信息系统
  • 通常由应用程序、数据库、数据库管理系统和用户(数据库管理员、应用系统开发人员、终端用户)组成
    Pasted image 20250228104354.png

2 数据管理发展历史

Pasted image 20250228105611.png
Pasted image 20250228115159.png

2.1 手工处理阶段

  • 20世纪50年代中期以前,计算机主要用于科学计算
  • 硬件存储设备主要有磁带、卡片机、纸带机等,软件上也处于初级的阶段,没有操作系统(OS)和管理数据的工具
  • 数据处理方式是批处理,数据的组织和管理完全靠程序员手工完成
  • 特点:
    • 数据不保存
    • 没有对数据进行管理的软件系统
    • 没有文件的概念
    • 一组数据对应于一个程序,数据面向应用

2.2 文件系统阶段

  • 20世纪50年代后期到60年代中期,计算机应用领域拓宽,不仅用于科学计算,还大量用于数据管理。
  • 在文件系统阶段中,计算机外存储器有了磁盘、磁鼓等直接存取的存储设备。
  • 计算机软件的OS中己经有了专门的管理数据软件,即所谓的文件系统。
  • 文件系统的处理方式不仅有文件批处理,而且还能够联机实时处理
  • 特点
    • 数据以文件形式可长期保存下来,用户可随时对文件进行查询、修改和增删等处理
    • 文件系统可对数据的存取进行管理,程序员只与文件名打交道,不必明确数据的物理存储,大大减轻了程序员的负担。
    • 文件形式多样化,有顺序文件、倒排文件、索引文件等,因而对文件的记录可顺序访问,也可随机访问,更便于存储和查找数据。
    • 程序与数据间有一定独立性,由专门的软件即文件系统进行数据管理,程序和数据间由软件提供的存取方法进行转换,数据存储发生变化不一定影响程序的运行。
  • 缺陷:
    • 数据冗余度大
      各数据文件之间没有有机的联系,一个文件基本上对应于一个应用程序,数据不能共享。
    • 数据独立性低
      数据和程序相互依赖,一旦改变数据的逻辑结构,必须修改相应的应用程序。而应用程序发生变化,如改用另一种程序设计语言来编写程序,也需修改数据结构。
    • 数据一致性差
      由于相同数据的重复存储、各自管理,在进行更新操作时,容易造成数据的不一致性。

2.3 数据库系统阶段

  • 60年代后期,计算机应用于管理的规模更加庞大,数据量急剧增加
  • 硬件方面出现了大容量磁盘,使计算机联机存取大量数据成为可能
  • 硬件价格下降,而软件价格上升,使开发和维护系统软件的成本增加
  • 文件系统的数据管理方法已无法适应开发应用系统的需要
  • 为解决多用户、多个应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统
  • 特点
    • 数据结构化
      • 在文件系统阶段,只考虑了同一文件记录内部数据项之间的联系,而不同文件的记录之间是没有联系的,也就是说,从整体上看数据是无结构的。
      • 在数据库中,实现了整体数据的结构化。按照某种数据模型,将各种数据组织到一个结构化的数据库中,整个应用环境内的数据不是一盘散沙,可表示出数据之间的有机关联。
      • 在数据库中,描述数据的时候,不仅要描述数据本身,还要描述数据之间的联系。数据之间的联系通过存取路径来实现,把相关的数据有机地组织在一起。
        Pasted image 20250228105951.png
    • 数据共享
      • 数据库中的数据是考虑所有用户的数据需求、面向整个系统组织的,而不是面向某个具体应用的。因此数据库中包含了所有用户的数据成分,但每个用户通常只用到其中一部分数据。不同用户所使用的数据可以重叠,同一部分数据也可为多用户共享
        Pasted image 20250228110056.png
      • 在数据库方式下,用户不是自建文件,而是取自数据库中的某个子集,它并非独立存在,而是靠DBMS从数据库中映射出来的,所以叫做逻辑文件。如图所示,用户使用的是逻辑文件,因此尽管一个数据可能出现在不同的逻辑文件中,但实际上的物理存储只可能出现一次,减少了数据冗余。
        Pasted image 20250228110043.png
    • 数据独立性
      • 数据独立性是指数据库中的数据与应用程序之间不存在依赖关系,而是相互独立的。
      • 包括物理独立性和逻辑独立性
        • 物理独立性
          是指修改数据库的物理存储模式而不必重写应用程序的能力。有时为了提高系统的性能等原因,偶尔会在数据库的物理层做一些修改(比如将数据从光盘上挪到磁盘上),物理独立性可以使应用程序不受影响。
        • 逻辑数据独立性
          是指修改数据库的逻辑模式而不必重写应用程序的能力。当数据库的逻辑结构发生了变化,逻辑层就需要做一些修改,但可以控制这种修改带来的影响,尽量使应用程序保持稳定
    • 方便的用户接口
      • 通过标准化的非过程式语言SQL,很方便的操纵数据库:数据定义语言(DDL)数据查询语言(DQL)数据操纵语言(DML)数据控制语言(DCL),综合统一,处理数据库所有事务
      • 交互式和嵌入式相结合
        • 独立使用:联机交互的方式,直接操作数据库
        • 嵌入式:可以嵌入到高级编程语言中,使得应用程序能够操作数据库
    • 统一的数据管理与控制功能
      • 数据的完整性
        数据的完整性指数据的正确性、有效性和相容性。实际上,是指数据库中的数据应与现实世界中的实际情况相符。为了保证DB的正确性,要使用数据库系统提供的存取方法设计一些完整性规则,对数据值进行校验
        Pasted image 20250228115139.png
      • 数据的安全性
        Pasted image 20250228111052.png
      • 并发控制
        当多个用户同时存取、修改DB中的数据时,可能会发生相互干扰,使DB中数据的完整性受到破坏,而导致数据的不一致性。DB的并发控制防止了这种现象的发生,提高了DB的利用率
        Pasted image 20250228115125.png

3 数据库结构

3.1 数据库模式结构

  • 模式(Schema)
    • 数据库逻辑结构和特征的描述
    • 反映的是数据的结构及其联系,是数据库创建的时候建立的
    • 模式是相对稳定的
      Pasted image 20250228112036.png
  • 模式的一个实例(Instance)
    • 模式的一个具体值
    • 反映数据库某一时刻的状态
    • 同一个模式可以有很多实例
    • 实例随数据库中的数据的更新而变动
      Pasted image 20250228112046.png
  • 用户使用数据库就是按照模式所描述的结构,在模式的实例中存取数据
三级模式结构

Pasted image 20250228112203.png

外模式--用户层
  • 外模式(也称子模式或用户模式)
    • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
    • 外模式是基于数据视图(View)实现。视图(View)是与某一应用有关的数据的逻辑表示
  • 外模式的地位:介于模式与应用之间
    • 模式与外模式的关系:一对多
    • 外模式通常是模式的子集
    • 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
    • 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同
  • 外模式与应用的关系:一对多
    • 同一外模式也可以为某一用户的多个应用系统所使用,
    • 但一个应用程序只能使用一个外模式。
  • 外模式的用途
    • 保证数据库安全性和数据独立性的一个有力措施
    • 每个用户只能看见和访问所对应的外模式中的数据
      Pasted image 20250228112527.png
模式(概念模式)--逻辑层
  • 模式(也称概念模式)
    • 数据库中全体数据的逻辑结构和特征的描述
    • 所有用户的公共数据视图,综合了所有用户的需求
  • 一个数据库只有一个模式
  • 模式的地位:是数据库系统模式结构的中间层
    • 与数据的物理存储细节和硬件环境无关
    • 与具体的应用程序、开发工具及高级程序设计语言无关
  • 模式的定义
    • 数据的逻辑结构(数据项的名字、类型、取值范围等)
    • 数据之间的联系
    • 数据有关的安全性、完整性要求等
      Pasted image 20250228112517.png
内模式--物理层
  • 内模式(也称存储模式)
    • 是数据物理结构和存储方式的描述
    • 是数据在数据库内部的表示方式
      • 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储等等)
      • 索引的组织方式
      • 数据是否压缩存储
      • 数据是否加密
      • 数据存储记录结构的规定
  • 一个数据库只有一个内模式
    Pasted image 20250228112537.png
二级映像
  • 三级模式是对数据的三个抽象级别
  • 二级映象在DBMS内部实现这三个抽象层次的联系和转换
    Pasted image 20250228113535.png
外模式/ 模式映象
  • 将外模式映射为概念模式,从而支持数据概念视图向外部视图的转换。
  • 便于用户观察和使用数据
  • 实现手段:数据视图(View) (在后面章节中会介绍)
  • 作用:保证数据的逻辑独立性
    当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
    应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性
模式 / 内模式映象
  • 定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在物理文件内部是如何表示的
  • 便于计算机存储和处理
  • 作用:保证数据的物理独立性
    当数据库的存储结构改变了(例如选用了另一种存储介质),数据库管理员修改模式/内模式映象,使模式保持不变,应用程序不受影响。保证了数据与程序的物理独立性

3.2 数据库功能结构

数据库管理系统运行着很多例程来完成数据管理功能

查询处理器
  1. 查询分析,首先对查询语句进行扫描,词法分析和语法分析.
  2. 查询检查,对合法的查询语句进行语义检查,检查通过后便把SQL查询语句转换成内部表示
  3. 查询优化,每个查询都会有许多可供选择的执行策略和操作算法,查询优化就是选择一个高效执行的查询处理策略.
  4. 查询执行,根据查询优化器得到的执行策略生成查询执行计划,由代码生成器执行这个查询计划的代码,然后加以执行,送回查询结果.
存储管理器

根据查询执行层的操作指令,在数据存储器中完成数据的增删改查操作
Pasted image 20250228114539.png

安全管理器保障数据的安全可靠
  • 访问认证(攻不破)

  • 权限控制(不越权)

  • 数据保护(看不懂)

  • 审计机制(赖不掉)

  • 安全测试(信得过)

  • 外围级防御

    • 决定哪些用户可以访问数据库
    • 安全认证、防火墙、入侵检测
  • 访问级防御

    • 控制允许哪些用户有权访问某些数据或包含它的系统
    • 安全配置策略、访问控制、审计
  • 数据级防御

    • 预防和应对发生在数据库本身的安全隐患
    • 数据加密、隐私保护

3.3 数据库体系结构

数据库的组件构成和相互之间的交互作用

集中式 (Centralized)

早期的数据库结构
客户端不运行程序
数据管理和业务处理都由中央服务器负责
Pasted image 20250228114124.png

客户-服务器式 (Client-Serve, CS)

客户端运行应用程序
数据库部署于中心服务器
通常采用单体数据库结构
Pasted image 20250228114155.png

分布式 (Distributed)

当数据规模巨大,
单体数据库无法处理时,
可以使用并行、分布式架构
扩展容量和处理能力,提升可用性
Pasted image 20250228114222.png

并行式 (Parallel)

Pasted image 20250228114250.png

云数据库

使数据库成为社会/行业的信息基础设施
实现更灵活的资源调度和管理
Pasted image 20250228114736.png

Built with MDFriday ❤️