第一章 数据库系统简介

课程:数据库设计与实践(0A102) 授课:陈丽君(Chen lijun) 来源:田浩然上传的资料/0A102 数据库设计与实践/chap01 数据库系统简介.ppt 格式:PowerPoint 97-2003 二进制格式,6.58MB,约 5432 词


一、信息、数据与知识

1.1 什么是信息

数学上:信息是确定性的度量,是两次不定性之差,与随机对立。

  • 例:32支球队猜冠军,折半查找需要 5 次(log₂32 ≈ 5)
  • 按夺冠概率高低分组,可以用更少次数找到冠军

最大熵原理:当对一个随机事件的概率分布进行预测时,预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。这种情况下,概率分布最均匀,熵最大,预测的风险最小。

  • “不要把所有的鸡蛋放在一个篮子里”——遇到不确定性时,保留各种可能性,将风险降到最小

物理上:信息是一种能量,与熵对立。

  • 热力学第一定律:热功转换
  • 热力学第二定律:熵增加
  • 热寂说
  • Maxwell 精灵(麦克斯韦妖)思想实验

1.2 信息与数据

概念定义
信息具有确定性的度量,是数据的内涵/语义解释
数据对现实世界中客观事物的符号表示;计算机中是能输入计算机并为其处理的符号序列

信息特性:无限性、共享性、创造性

联系:

  • 数据是信息的符号表示(载体)
  • 信息是数据的内涵(语义解释)
  • 数据是符号化的信息
  • 信息是语义化的数据

例:一幅黑白图像——数据是黑白点阵,信息是脸谱

1.3 信息与知识

知识:“行动的能力”,“知识就是力量”;“可以辅助我们作出决策或采取行动的有很高价值的一种信息形态”。

  • 信息可以很快地从一个地方转移到另一个地方
  • 但将知识从一个人转移给另一个人经常是很困难和很慢的

信息管理:通过收集、处理、浓缩信息以达到有效的管理 知识管理:学习型组织、知识共享(IBM Lotus)

  • 悖论:“教会徒弟,饿死师傅”

1.4 数据的认识层面

数据结构:按照逻辑关系组织起来的一批数据,按一定的存储方法把它存储在计算机中,并在这些数据上定义了一个运算的集合。

  • 逻辑结构:数据之间存在的逻辑关系(表、树、图、数组…)
  • 物理结构:数据在计算机内的存储方式(顺序方式、链接方式…)

“数据结构+算法=程序”

数据独立性:当数据的结构发生变化时,通过系统提供的映象(转换)功能,使应用程序不必改变。

  • 物理独立性:存储结构改变时,应用程序不必改变
  • 逻辑独立性:逻辑结构改变时,应用程序不必改变

数据语义:

  • 语言:形式
  • 语义:内涵
  • 例:11010819800101001——只是一串数字,其含义(身份证号/出生日期等)由语义决定

庄子与惠子濠梁之辩——“子非鱼,安知鱼之乐?“——语义的理解问题


二、数据库在信息系统中的地位

2.1 信息系统的三层结构

决策层 ←—— 决策信息 ←—— 决策支持系统
  ↑          归纳            ↑
管理层 ←—— 数  据  ←—— 数据库管理系统
  ↑         形式化           ↑
作业层 ←—— 原始信息 ←—— 信息收集系统

2.2 新趋向

应用由计算转向信息处理;数据量激增并呈多样性。

  • 数字图书馆、交互视频、人类基因组、电子商务、Web …

2.3 市场前景

四大支柱:操作系统、计算机语言、网络、数据库 两大热门:网络、数据库

“无所不在的数据管理”

  • All data in database
  • All work over SQL

2.4 课程三问

  • Why? 数据管理艺术的必然
  • What? 数据模型
  • How? 数据库模式
  • tripleV(veni, vidi, vici)——我来、我见、我征服

三、数据管理的发展阶段

3.1 数据管理的方方面面

  • 数据定义:逻辑结构、物理结构
  • 数据查询:事物自身的属性、事物之间的联系
  • 数据更新:插入、删除、修改
  • 数据约束:对客观事物的合理反映

3.2 考察要点

各阶段的技术及应用背景:

  • 计算机应用范围
  • 外存储设备
  • 数据管理软件

差别体现在:谁管理数据、数据面向谁、数据与应用的独立性

3.3 人工管理阶段(50年代中期以前)

背景:

  • 计算机主要用于科学计算
  • 数据量小、结构简单(高阶方程、曲线拟合等)
  • 外存为顺序存取设备(磁带、卡片、纸带,没有磁盘等直接存取设备)
  • 没有操作系统,没有数据管理软件

特点:

  • 用户完全负责数据管理工作(组织、存储结构、存取方法、I/O等)
  • 数据完全面向特定的应用程序,数据不保存,用完就撤走
  • 数据与程序没有独立性

磁带特点:廉价存放大容量数据;但顺序访问——“需要1%的数据,要访问100%“

3.4 文件系统阶段(50年代后期—60年代中期)

背景:

  • 计算机不但用于科学计算,还用于管理
  • 外存有了磁盘、磁鼓等直接存取设备(DASD)
  • 产生了操作系统

功能:文件存储空间管理、目录管理、文件读写管理、文件保护、操作接口

进步:

  • 系统提供一定的数据管理功能(索引文件、链接文件、直接存取文件、倒排文件等)
  • 支持增删改查等基本操作,用户不必考虑物理细节
  • 数据存取基本上以记录为单位
  • 数据与程序有一定的独立性(逻辑结构与存储结构由系统转换)

四大缺陷:

缺陷说明
独立性差数据的逻辑结构改变必须修改应用程序;文件系统只负责存储,不理解数据语义
共享性差、冗余度大数据面向应用,即使部分数据相同也必须建各自文件;数据分散、格式不一;多副本导致不一致性
查询困难记录之间无联系,应用自己编程实现,每个查询都重新编码
完整性难于维护如性别必须是男/女、员工工资不能超过经理、每门课选修人数不超过100等约束都需应用自己维护

示例:高校中劳资科、房产科、学籍科、人事科各有一份学生/职工数据,重复严重,且难以保持一致

3.5 数据库系统阶段(60年代后期开始)

背景:

  • 计算机管理的数据量大、关系复杂、共享性要求强
  • 外存有了大容量磁盘、光盘
  • 软件价格上升、硬件价格下降,编制和维护成本相对增加

数据库观点:数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象。

数据库系统的五大特点:

  1. 面向全组织的复杂数据结构

    • 支持全企业的应用而不是某一个应用
    • 数据反映了客观事物间的本质联系
    • 这是与文件系统的根本差别(文件系统只是记录内部有结构,记录之间是线性序列、无联系)
  2. 数据冗余度小,易扩充

    • 数据集中管理、共享,冗余度小
    • 节省存储空间、减少存取时间、避免不相容和不一致性
    • 每个应用选用数据库的一个子集,新应用只需重新选取或加少量数据
  3. 较高的数据和程序独立性

    • 数据库的定义和描述从应用程序中分离出去
    • 数据描述分级(全局逻辑、局部逻辑、存储)
    • 用户不必考虑存取路径等细节,简化了应用程序
  4. 统一的数据控制功能

    • 安全性控制(Security):用户标识与鉴定、存取控制
    • 完整性控制(Integrity):正确性、有效性、相容性;约束条件定义和检查
    • 并发控制(Concurrency):多用户并发操作协调,封锁机制
    • 恢复控制(Recovery):从故障中恢复到一致状态,冗余机制
  5. 数据共享程度高

3.6 青铜世纪 vs 黄金世纪对比

青铜世纪(文件系统):

  • 查询”供应红色零件给北京的工程的供应商姓名”:需要 ScanFile(P) → ScanFile(J) → ScanFile(SPJ) → ScanFile(S) 四次扫描
  • 维护”不允许供应不存在的零件”:每次 InsertFile(SPJ) 都要先 ScanFile(P) 检查

黄金世纪(数据库系统):

  • 查询:用 SQL 声明式提出查询要求,由系统完成查询过程
  • 维护:用 CREATE TABLE 定义完整性约束(如 FOREIGN KEY),系统自动检查

3.7 软件发展趋势

软件开发正由编码向集成转变:

  • 机器与汇编语言(1950)
  • 编译语言(1960)
  • 子程序
  • 数据库服务(1985)
  • 特定域对象库(1990)
  • 预定义的结构及解决方案、商用对象库(2000)
  • 域标准、组件

“上帝说:要有光”——生产力水平+普遍需求,是产生系统软件的推动因素


四、数据模型

4.1 三个世界

现实世界 → 信息世界 → 计算机世界

信息世界的作用:

  • 是现实世界通向计算机实现的桥梁
  • 一方面是对现实世界的抽象(抽取反映本质的概念和关系)
  • 另一方面要能映射到计算机世界中实现

4.2 数据模型定义

数据模型是数据库系统中用于提供信息表示和操作手段的形式构架。

两大类:

  • 概念数据模型:按用户观点建模,强调语义表达能力,如 E-R 模型、ODL
  • 结构数据模型:从计算机实现观点建模,有严格形式化定义,如层次、网状、关系、面向对象模型

4.3 结构数据模型的三要素

要素描述
数据结构静态特性——组成数据库的对象类型(数据本身+数据之间的联系);一般按数据结构类型命名数据模型
数据操作动态特性——检索和更新(增删改);定义操作含义、符号、规则、语言
数据约束条件完整性规则集合——规定数据库状态及变化的条件,保证数据正确有效相容

4.4 结构数据模型示例

层次模型

  • 用树结构表示实体之间联系
  • 节点代表实体型,连线表示一对多联系
  • 特性:只有一个根节点;其他节点有且仅有一个父节点
  • 优点:结构简单,易于实现
  • 缺点:只支持二元一对多联系、只允许一种联系、子结点存取只能通过父结点、插入删除复杂(父结点删除导致子结点丢失)
  • 代表:IBM IMS(1969)
  • 存储方式:邻接法、子女-兄弟指引元法、层次序列法

网状模型

  • 满足:可有一个以上节点无父节点;至少有一个节点有多于一个的父节点
  • 有向边表示一对多联系
  • 优点:表达联系种类丰富、性能好、存取效率高
  • 缺点:结构复杂、语言复杂
  • 代表:DBTG报告(CODASYL 下属 DBTG 组,1969)

关系模型

  • 用二维表来表示实体及其相互联系
  • 优点:简单直观、非过程化数据请求、数据独立性高、坚实的理论基础
  • 缺点:效率相对较低

对象模型

  • 用嵌套表表示复杂实体
  • “我的类型我定义”

4.5 数据模型的评价标准

表达能力、用户友好性、性能效率

下一个轮回?XML、图数据库(基于关系模型,面向特殊领域)


五、数据库模式

5.1 元数据(meta-data)

描述数据的数据——描述数据的含义和性质,以便更好地理解、管理和使用数据。

  • 例1:数据是”1, 1, 2, 3, 5, 8, 13……”,元数据说明这是斐波那契数列
  • 例2:图书馆中的书籍是数据,标题、作者、关键词、ISBN号是元数据

模式:数据的抽象,数据的描述 数据字典:系统目录,存取和管理数据的依据

HTML vs XML:HTML 是数据的显示格式(供人浏览);XML 是数据的内容说明(自描述,机器处理)

5.2 实例与模式

型与值的区别:

  • 型是相对稳定的
  • 值是随时间不断变化的

例:class person { string name; string address; }; person TOM;

  • person 是型,TOM 是变量,TOM 在某时刻的值是实例

5.3 三级模式结构

由 CODASYL 提出,三级模式之间有两级映象:

外模式1  外模式2  外模式3
    \      |      /     ← 外模式/模式映象
     \     |     /
        模式
          |           ← 模式/内模式映象
       内模式
模式别称定义
外模式 (Sub-Schema)用户数据视图数据的局部逻辑结构,模式的子集
模式 (Schema)公共数据视图全体数据的全局逻辑结构和特性的描述
内模式 (Storage Schema)存储模式数据的物理结构及存储方式

5.4 两级映象与数据独立性

外模式/模式映象:

  • 定义外模式和模式之间的对应关系
  • 模式改变时,修改映象使外模式保持不变 → 逻辑独立性

模式/内模式映象:

  • 定义逻辑结构与存储结构之间的对应关系
  • 存储结构改变时,修改映象使模式保持不变 → 物理独立性

六、数据库系统构成

6.1 基本概念

  • 数据库(DB):数据的集合,由 DBMS 统一管理,多用户共享
  • 数据库管理系统(DBMS):系统软件,对数据库进行统一管理和控制
  • 数据库系统(DBS):带有数据库的整个计算机系统,包括硬件、软件、数据、人员

6.2 数据库系统的主要成分

硬件:

  • 大内存(OS + DBMS核心 + 系统缓冲区 + 用户工作区)
  • 大容量直接存取外存设备
  • 备份磁带

软件:OS、DBMS、高级语言编译系统及接口、应用开发工具、应用系统

数据:

  • 目标数据(数据本身)
  • 描述数据(对数据的说明信息)

6.3 用户分类

用户类型职责
最终用户通过应用系统的用户接口使用数据库
应用程序员基于外模式编写应用程序
系统分析员需求分析和规范定义,确定软硬件配置,参与数据库模式设计
数据库管理员(DBA)负责数据库的全面管理和控制

6.4 DBA 职责

建库方面:确定模式、外模式、存储结构、存取策略;负责数据的整理和装入

用库方面:

  • 定义完整性约束条件
  • 规定数据的保密级别和用户权限
  • 监督和控制数据库的运行情况
  • 制定后援和恢复策略,负责故障恢复

改进方面:

  • 监督分析系统性能(空间利用率、处理效率)
  • 数据库重组织(物理上重组织以提高性能)
  • 数据库重构造(设计上较大改动,修改模式和内模式)
  • AutoAdmin(自动管理)

6.5 DBMS 的层次结构

应用层            ← 语言翻译处理层(DDL/DML/查询计算引擎,关系视图接口)
                    ↓
数据存取层        ← 事务、日志、封锁、存取路径,单元组接口
                    ↓
数据存储层        ← 缓冲区,数据页操作
                    ↓
操作系统          ← 物理文件读写
                    ↓
数据文件、数据字典、索引、统计数据

6.6 DBMS 的主要功能

  1. 数据库定义功能(DDL):描述外模式、模式、内模式;模式翻译程序将源模式翻译成目标模式存入数据字典
  2. 数据存取功能(DML):检索、插入、修改、删除
    • 宿主型:嵌入高级语言(预编译/增强编译)
    • 自含型:交互式命令(解释执行)
  3. 数据库运行管理:并发控制、存取控制、完整性检查、日志管理、事务管理和恢复
  4. 数据组织存储和管理:用户数据、索引、数据字典的组织存储
  5. 数据库的建立和维护功能:数据装入、转换、卸出、转储、恢复、性能监视分析

6.7 DBMS 的运行过程(12步)

  1. 用户向 DBMS 发出调用数据库数据的命令
  2. DBMS 进行语法检查、语义检查、存取权限检查,决定是否执行
  3. DBMS 执行查询优化,把命令转换为单记录存取操作序列
  4. 执行存取操作序列(反复执行以下各步)
  5. DBMS 首先在缓冲区内查找记录,若找到转10,否则转6
  6. DBMS 查看存储模式,决定从哪个文件存取哪个物理记录
  7. DBMS 向操作系统发出读取记录的命令
  8. 操作系统执行读取数据的命令
  9. 操作系统将数据从存储区送到系统缓冲区
  10. DBMS 根据用户命令和数据字典导出用户要的数据格式
  11. DBMS 将数据记录从系统缓冲区传送到用户工作区
  12. DBMS 将执行状态信息返回给用户

七、数据库新方向

7.1 新的数据模型

  • 面向对象数据库及对象-关系数据库
  • XML 数据库
  • 图数据库

7.2 新的体系结构

  • 并行数据库
  • Very Large Database(VLDB)
  • 分布式数据库
  • 网络+数据库:对等数据库
  • 数据流管理系统(DSMS)

7.3 新的数据库应用

商业智能:从事务型操作向分析型操作

  • 决策支持、数据仓库、数据挖掘、OLAP

信息集成:“turn the Web into database”、各式信息门户

7.4 特种数据库

类型特点
移动数据库+嵌入式数据库分布式数据库扩展;传感网络、手机、汽车、PDA;移动=数据库+无线网络(偶尔断连);嵌入=面向特定应用的模块化可定制数据库
主动数据库事件驱动(而非命令驱动);实时监控、信息推送、大规模触发器、复杂事件处理
演绎数据库AI + 数据库;事实+推理规则;递归查询
时态数据库管理历史性信息;数据仓库的前驱
模糊数据库处理模糊对象(高矮胖瘦好恶优劣);模糊数学(L.A.Zadeh);模糊隶属函数
实时数据库工厂过程控制、证券交易、雷达跟踪;基于优先级调度事务
概率数据库处理不确定数据
主存数据库数据全部放内存
闪存数据库基于 SSD 的优化

7.5 领域数据库

  • 生物数据库(序列、图、高维数据…)
  • 空间数据库(几何数据、空间查询)
  • 多媒体数据库
  • 天文数据库(虚拟天文台)
  • CAD 数据库
  • 面向对象数据库

关联笔记