CH1-引言
文章目录
- CH1-引言
- 理论
- 重点
- 习题
- 习题
理论
DataBase System (DBS)
数据库系统应用//
✓航空业务
✓银行和金融
✓企业信息(销售、会计、人力资源)
✓电信业
✓基于Web的服务(社交媒体、在线零售、在线广告)
✓导航系统
数据库用于管理的数据集合
具有很高价值
相对庞大
常常被多个用户和应用系统访问
DBS概念
一种既方便又高效存取数据信息的途径
组成
✓有联系的数据集
✓处理数据的程序
定义(组成完善版)
数据库系统由一个互相关联的数据集和一组用以访问这些数据的程序组成。
使用方式
✓联机事务处理(online transaction processing)
✓数据分析(data analytics)
文件处理系统(file processing system)
早期,数据库应用直接构建在文件处理系统之上->应用程序直接处理文件
文件处理系统存储、组织信息弊端
数据的冗余和不一致(data redundancy and inconsistency)
数据访问困难(diffivulty in accessing data)
✓对于每个新任务需要编写新的应用程序处理
数据孤立(data isolation)
✓多个文件具有不同的格式 (比如:txt, doc, bin格式等等)->编写新的应用程序来检索
完整性问题(intrgrity problem) 一致性约束(consistency constraint)
✓完整性约束“固化”(buried)在程序代码中
✓很难通过修改程序来体现新的约束
原子性问题(atomicity problem)
✓故障会导致部分更新,使数据库处于不一致状态
并发访问异常(concurrent-access anomaly)
✓提高性能
✓可能带来不一致
安全性问题(security problem)
✓并非数据库系统的所有用户都可以访问所有数据
DBS解决上述所有弊端
数据视图
数据模型(data model)
概念
多种概念工具的集合,用于描述数据库的:
✓数据
✓数据联系
✓数据语义
✓一致性约束
分类
关系模型(relation model)
表(行列)用于表示数据和数据间的联系
eg
实体-联系(E-R)模型(entity-relationship model)
实体、联系;数据库设计
eg
基于对象的数据模型(object-based data model)
E-R模型增加了封装、对象等
半结构化数据模型(semi-structured data model)
允许在其数据定义中某些相同类型的数据项有不同的属性集
用扩展标记语言(XML)/JSON来表示半结构化数据
历史的数据模型
模型和底层实现联系->耦合度强
✓层次数据模型
✓网状数据模型
关系数据模型
表格形式table
数据抽象
数据抽象的三个层次:
屏蔽数据结构的复杂性
视图层(view level)
数据库普通用户
视图可以隐藏信息,使用户仅访问数据库的一部分,提高安全性
逻辑层(Logical level)
数据库管理员
描述存储在数据库中的数据,以及数据之间的关系,降低耦合
✓为上层应用屏蔽了复杂的底层存储细节,即物理数据独立性
eg
type instructor = record
ID : char(5);
name : char(20);
dept_name : char(20);
salary : numeric(8, 2);
end;
物理层(Physical level)
描述数据实际上是怎样存储的
实例和模式
模式(Schema )
数据库的总体设计
✓例:数据库包含客户和账户的信息以及它们的联系
✓与程序语言中的类型声明相似
✓ 物理模式: 在物理层描述数据库的设计
✓ 逻辑模式: 在逻辑层描述数据库的设计(最重要)
✓ 子模式/外模式/用户模式: 描述数据库的不同视图
✓ 物理数据独立性:应用程序不依赖于物理模式,使得物理模式可以在应用程序丝毫不受影响的情况下被轻易改变
实例(Instance )
特定时刻存储在数据库中的信息的集合
✓与变量的值相似
数据定义语言(Data-Definition Language,DDL)
用来定义数据库模式
通过一系列的DDL语句来说明数据库系统所采用的存储结构和访问方式,这种特定的DDL称作数据存储和定义(data storage and definition)
eg
create table instructor (
ID char(5),
name varchar(20),
dept_name varchar(20),
salary numeric(8,2))
一致性约束
域约束(domain constraint)
引用完整性(referential integrity)
授权(authorization)
读权限
插入权限
更新权限
删除权限
数据字典
DDL生成表模版保存在数据字典中
数据字典包含关系模型元数据 (关于数据的数据)
表信息
视图
索引
完整性约束
✓实体完整性约束(主键约束)
✓参照完整性(例如:外键)
用户授权
……
数据操纵语言 (DML)
用来查询
用户访问和操纵按照某种适当的数据模型组织起来的数据
✓DML是一种查询(query)语言
分类
过程化DML(procedural DML)
what + how
声明式DML(declarative DML)
what
SQL
广泛使用的**非过程化(声明式)**语言
eg
select name
from instructor
where instructor.ID = ‘22222’
✓允许使用嵌入式SQL,需要嵌入式SQL的预编译器
✓通过应用程序接口(e.g., ODBC/JDBC),将SQL查询发送到数据库执行,并返回查询结果到程序
数据库设计
设计数据库结构的过程:
概念设计(conceptual-design)
需求决定 – 数据库中需要记录哪些数据和它们之间的联系?
1.(主要)E-R模型来分析
2.一套算法(规范化(normalization))
将所有属性集作为输入,生成一组关系表
逻辑设计(logical-design)
确定数据库模式,找到一个好的模式
如何将概念设计阶段的数据和联系映射到数据库系统的实现数据模型中?
设计表结构、主外键、范式(3NF、BCNF)等
物理设计(physical-design)
确定数据库的物理布局
设计方法
设计数据库的规范化理论
避免信息重复
避免缺乏表达某些信息的能力
实体-联系模型 (E-R)
将数据库需求建模为实体和联系的集合
实体
区别于事情/物体,由属性集合描述
实体集eg
联系
几个实体之间的关联关系
实体-联系图(E-R图)
基于UML的符号表示
eg
数据库引擎
存储管理器+查询处理器+事务管理部件
存储管理器(storage manager)
定义
存储管理器是数据库系统中负责在数据库中存储的底层数据与应用程序、以及向系统提交的查询之间提供接口的部件
组成
权限及完整性管理器 (authorization and integrity manager)
检测是否满足完整性约束与试图访问数据的用户的权限
事务管理器 (transaction manager)
保证了即使系统发生了故障,数据库也保持在一致的(正确性)状态,并保证并发事务的执行不冲突
文件管理器 (file manager)
管理磁盘存储空间的分配,管理用于表示磁盘上所存储信息的数据结构
缓冲区管理器 (buffer manager)
关键部分,使得数据库可以处理比内存大得多大数据
缓冲区替换策略
负责管理数据结构
数据文件
存储数据库本身
数据字典:
存储数据库结构的元数据(特别是数据库模式)
索引
提供对数据项的快速访问。索引提供了指向包含特定值数据项的指针
查询处理器
SQL
DDL解释器DDL interpreter)
DML编译器(DML compiler)
DML编译器进行查询优化
查询优化(query optimization)
查询执行引擎(query evaluation engine)
事务管理部件
事务
数据库应用中完成单一逻辑功能的操作集合
事务性质ACID
A 原子性(Atomicity)
事务要么发生,要么不发生
C 一致性(Consistency)
事务操作完成后,需保证数据一致性
I 隔离性(Isolation)
事务运行期间需独占数据(锁机制)
D 持久性(Durability)
即使有系统故障,数据也要保证持久性
功能
事务管理器保证数据库在发生系统故障时也能保证数据库处于正确一致的状态
事务管理器包括并发控制管理器+恢复管理器
并发控制管理器(concurrency-control manager)
控制并发事务间的交互,保证数据库的一致性
恢复管理器(recovery manager)
负责检测系统故障、事务回滚、故障恢复(failure recovery)
数据库体系结构
数据库系统的体系结构很大程度上取决于数据库系统所运行的计算机系统
集中式
数据库运行于本地
客户-服务器(C/S)系统
两层体系结构
前端(业务逻辑)、数据后台,小型应用
三层体系结构
前端、业务逻辑、数据后台,大型应用
并行数据库系统
高端大型计算机(eg神威太湖之光)
使用多个处理器和磁盘提升处理速度和I/O速度
分布式数据库系统
跨地域、通过广域网络连接
局部自治
提高数据可用性
分布式数据存储和查询
历史//
重点
什么是数据库系统?
一个互相关联的数据集
一组用以访问这些数据的程序
什么是数据模型、数据抽象?
数据模型
多种概念工具集合,用于描述数据库的
1.数据
2.数据联系
3.数据语义
4.一致性约束
关系模型
表
实体-联系(E-R)模型
基于对象的数据模型
E-R对象封装
半结构化数据模型
历史数据模型
模型&底层实现联系 耦合度强
层次数据模型
网状数据模型
数据抽象
屏蔽数据结构的复杂性
视图层
隐藏信息使得用户仅访问数据库的一部分,提高安全性(普通用户)
逻辑层
实现物理数据独立性,即为上层应用屏蔽了复杂的底层存储细节,应用程序不依赖于物理模型
描述存储在数据库中的数据,以及数据之间的关系,降低耦合(管理员)
物理层
描述数据实际是怎样存储的
DML、DDL定义
DML
数据操纵语言,分为声明式和定义式
DDL
数据定义语言,生成的表模板保存在数据字典中
数据字典为关于数据的数据,内容包括
表信息
视图
索引
完整性约束
实体完整性约束eg主键
参照完整性约束eg外键
用户授权
……
数据库设计的过程有哪些
概念设计
需求决定-运用E-R模型
逻辑设计
确定数据库模式
将数据与联系映射到数据模型上
物理设计
确定数据库的物理布局
存储管理器与查询处理器部件包括哪些
存储管理器
1.权限及完整性管理器
2.事务管理器
3.文件管理器
4.缓冲管理器
查询处理器
1.SQL
DDL解释(parser)
DML编译(translator)
->关系代数(relational-algebra expression)
2.查询优化(optimizer)
执行方案(execution plan)
3.查询执行引擎(evaluation engine)
什么是事务?ACID特性是什么?为什么要进行事务管理?
事务
数据库应用单一逻辑功能的操作集合
ACID
A 原子性
C 一致性
I 隔离性
D 持久性
事务管理的意义
保证数据库在系统故障时也能保证数据处于正确一致的状态
数据库体系结构有哪些
集中式数据库系统
本地
客户-服务器(C/S)系统
前后端
并行数据库系统
高端大型计算机
分布式数据库系统
通过广域网连接
习题
1.7 列出文件处理系统和DBMS的四个主要区别
1.DBMS:物理和逻辑访问数据,文件:物理访问数据。都是相互关联的数据集合和一组访问数据程序组成
2.DSMS:被授权的程序可以访问存储的逻辑数据,数据可以被多个程序访问、减少数的冗余;文件:一个程序所写的数据可能不能被另外一个程序访问
3、DBMS设计为更灵活的访问数据(如,查询),文件处理系统则被设计为特定的程序访问数据(如,以编译的程序)
4、DBMS允许多个用户同时访问相同的数据。文件处理系统一般允许一个或多个程序访问不同的数据文件,只有在一个文件在两个程序都只有只读权限的时候才可以同时被两个程序并行访问。
1.8 解释物理数据独立性的概念,以及它在数据库系统中的重要性
物理数据独立性:用户的应用程序与存储在磁盘上的数据库中数据是相互独立的
理?
事务
数据库应用单一逻辑功能的操作集合
ACID
A 原子性
C 一致性
I 隔离性
D 持久性
事务管理的意义
保证数据库在系统故障时也能保证数据处于正确一致的状态
数据库体系结构有哪些
集中式数据库系统
本地
客户-服务器(C/S)系统
前后端
并行数据库系统
高端大型计算机
分布式数据库系统
通过广域网连接
习题
1.7 列出文件处理系统和DBMS的四个主要区别
1.DBMS:物理和逻辑访问数据,文件:物理访问数据。都是相互关联的数据集合和一组访问数据程序组成
2.DSMS:被授权的程序可以访问存储的逻辑数据,数据可以被多个程序访问、减少数的冗余;文件:一个程序所写的数据可能不能被另外一个程序访问
3、DBMS设计为更灵活的访问数据(如,查询),文件处理系统则被设计为特定的程序访问数据(如,以编译的程序)
4、DBMS允许多个用户同时访问相同的数据。文件处理系统一般允许一个或多个程序访问不同的数据文件,只有在一个文件在两个程序都只有只读权限的时候才可以同时被两个程序并行访问。
1.8 解释物理数据独立性的概念,以及它在数据库系统中的重要性
物理数据独立性:用户的应用程序与存储在磁盘上的数据库中数据是相互独立的
重要性:应用程序不依赖于存储在磁盘上的数据库中数据如何存储,使得物理模式可以在应用程序丝毫不受影响的情况下被轻易改变