第一章 数据库系统简介
课程:数据库设计与实践(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年代后期开始)
背景:
- 计算机管理的数据量大、关系复杂、共享性要求强
- 外存有了大容量磁盘、光盘
- 软件价格上升、硬件价格下降,编制和维护成本相对增加
数据库观点:数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象。
数据库系统的五大特点:
-
面向全组织的复杂数据结构
- 支持全企业的应用而不是某一个应用
- 数据反映了客观事物间的本质联系
- 这是与文件系统的根本差别(文件系统只是记录内部有结构,记录之间是线性序列、无联系)
-
数据冗余度小,易扩充
- 数据集中管理、共享,冗余度小
- 节省存储空间、减少存取时间、避免不相容和不一致性
- 每个应用选用数据库的一个子集,新应用只需重新选取或加少量数据
-
较高的数据和程序独立性
- 数据库的定义和描述从应用程序中分离出去
- 数据描述分级(全局逻辑、局部逻辑、存储)
- 用户不必考虑存取路径等细节,简化了应用程序
-
统一的数据控制功能
- 安全性控制(Security):用户标识与鉴定、存取控制
- 完整性控制(Integrity):正确性、有效性、相容性;约束条件定义和检查
- 并发控制(Concurrency):多用户并发操作协调,封锁机制
- 恢复控制(Recovery):从故障中恢复到一致状态,冗余机制
-
数据共享程度高
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 的主要功能
- 数据库定义功能(DDL):描述外模式、模式、内模式;模式翻译程序将源模式翻译成目标模式存入数据字典
- 数据存取功能(DML):检索、插入、修改、删除
- 宿主型:嵌入高级语言(预编译/增强编译)
- 自含型:交互式命令(解释执行)
- 数据库运行管理:并发控制、存取控制、完整性检查、日志管理、事务管理和恢复
- 数据组织存储和管理:用户数据、索引、数据字典的组织存储
- 数据库的建立和维护功能:数据装入、转换、卸出、转储、恢复、性能监视分析
6.7 DBMS 的运行过程(12步)
- 用户向 DBMS 发出调用数据库数据的命令
- DBMS 进行语法检查、语义检查、存取权限检查,决定是否执行
- DBMS 执行查询优化,把命令转换为单记录存取操作序列
- 执行存取操作序列(反复执行以下各步)
- DBMS 首先在缓冲区内查找记录,若找到转10,否则转6
- DBMS 查看存储模式,决定从哪个文件存取哪个物理记录
- DBMS 向操作系统发出读取记录的命令
- 操作系统执行读取数据的命令
- 操作系统将数据从存储区送到系统缓冲区
- DBMS 根据用户命令和数据字典导出用户要的数据格式
- DBMS 将数据记录从系统缓冲区传送到用户工作区
- 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 数据库
- 面向对象数据库
关联笔记
- 相关数据库教材笔记(待补充)
- 《数据库设计与实践》第0章 - 课程引言与数据库基础(chap00 课程引言)
- 下一章:《数据库设计与实践》第2章 - ER模型(待处理)