备战软考数据库 7 数据库技术基础

0数据管理技术的发展阶段
数据管理技术的发展,与:
  1. 计算机硬件
  2. 系统软件
  3. 计算机应用的范围
有关。
数据管理技术的发展经历了4个阶段:
  1. 人工管理
  2. 文件系统
  3. 数据库
  4. 高级数据库系统
人工管理阶段特点:
  1. 数据不保存在计算机内,磁带、卡片、纸带
  2. 程序直接面向存储结构,数据的逻辑结构和物理结构没有区别
  3. 只有程序的概念,没有文件的概念
  4. 数据面向程序,一组数据对应一个程序
  5. 软件只有汇编语言,计算机主要用于科学计算
文件系统阶段特点:
  1. 计算机用于科学计算和信息管理
  2. 操作系统中的文件系统是专门管理外存的数据管理软件
  3. 数据以文件的形式长期保存在外部存储器的磁盘上
  4. 数据的逻辑结构与物理结构有了区别,程序与数据之间具有设备独立性,程序只需文件名就可与数据打交道,不必关心数据的物理位置
  5. 文件组织有多样性,有索引文件、链接文件、直接存取文件等,数据之间测联系需要通过程序去构造
  6. 数据不再属于某个特定的程序,可以重复使用,数据面向应用,数据的物理结构修改时,仍然需要修改用户的应用程序
  7. 对数据的操作以记录为单位
文件系统的缺陷:
  1. 数据冗余redundancy
  2. 数据不一致性inconsistency
  3. 数据联系弱poor data relationship
3件大事:
  1. 1968IBM推出层次模型的IMS系统
  2. 1969CODASYL组织发布DBTG报告,提出网状模型
  3. 1970IBM的E.F.Codd提出关系模型
数据库系统阶段的特点:
  1. 用数据模型表示复杂的数据结构,数据模型描述数据本身的特征,还描述数据间的联系
  2. 具有较高的数据独立性,数据的逻辑结构与物理结构之间的差别可以很大
  3. 数据库系统为用户提供了方便的用户接口
  4. 数据库系统提供了4个方面的数据控制功能:数据库的并发控制,数据库的恢复,数据的完整性,数据的安全性
  5. 增加系统的灵活性,数据的操作不一定以记录为单位,可以以数据项为单位
数据独立性:
应用程序与数据库的数据结构之间的相互独立
物理独立性:在物理结构改变时,尽量不影响整体逻辑结构、用户的逻辑结构以及应用程序
逻辑独立性:在逻辑结构改变时,尽量不影响用户的逻辑结构以及应用程序
高级数据库阶段:
  1. 分布式数据库系统DDBS
    数据库的数据物理上分布,逻辑上是一个整体
    每个场地即可以执行局部应用也可以执行全局应用
    各地的计算机由数据通信网络联系
  2. 对象数据库系统ODBS
    对象数据模型能完整地描述现实世界的数据结构,能表达数据间的嵌套、递归联系
    具有面向对象技术的封装性(数据与操作定义在一起)和继承性(继承数据结构和操作)
  3. 网络数据库系统Web DBS
  4. 新决策支持系统
    数据仓库DW:将数据库中数据按主题需要进行重新组织
    联机分析处理OLAP:对数据进行分析型处理
    数据挖掘DM:从数据库中发现知识和核心技术

1数据库的基本术语
数据:描述事务的符号记录;经过组织的比特集合。
信息:现实世界事务的存在方式或状态的反应;具有特定释义和意义的数据。
数据库DB:长期储存在计算机内的,有组织的,统一管理的,可共享的相关数据集合。数据在其中按一定的数学模型组织、描述、存储,具有较小的冗余度和较高的数据独立性和可扩展性。
数据库管理系统DBMS:位于用户和操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新和各种数据控制。
数据库系统DBS:由数据库、硬件、软件和人员构成,管理的对象是数据。
数据库管理系统的功能:
  1. 数据定义
  2. 数据操纵
  3. 数据库的运行管理
  4. 数据库的建立与维护
人员:
  1. 系统分析员和数据库设计人员,需求分析、规范说明、数据库各级模式的设计
  2. 应用程序员,编写使用数据库的应用程序
  3. 最终用户,利用接口或查询语句访问数据库
  4. 数据库管理员DBA,数据库的总体信息控制
数据库管理员的职责:
  1. 定义模式
  2. 定义内模式
  3. 与用户联络
  4. 定义安全性规则
  5. 定义完整性规则
  6. 数据库的转储和恢复
DBA的重要工具:
  1. 实用程序utilities
  2. 数据字典DD
DBS的全局结构:
  1. 数据库用户:
    DBA
    专业用户
    应用程序员
    终端用户
  2. DBMS的查询处理器:
    DDL解释器:解释DDL语句,将定义登录到数据字典
    DML编译器:对DML语句进行优化,转化成查询求值引擎能执行的低层指令
    嵌入式DML预编译器:嵌入在主语言中的DML处理成规范的过程性调用形式
    查询执行引擎:执行有DML编译器产生的低层指令
  3. DBMS的存储管理器:
    权限和完整性管理器
    事务管理器
    文件管理器
    缓冲区管理器
  4. 磁盘存储器中的数据结构:
    数据文件
    数据字典
    索引
    统计数据
    日志
应用程序的演变:
  1. 交互式SQL直接访问数据库
  2. 主语言+嵌入式SQL方式编写应用程序
  3. 主语言+ODBC函数+嵌入式SQL方式编写应用程序
  4. 4GL+事件和函数+嵌入式SQL方式编写应用程序
DBS结构的分类:
集中式数据库系统 centralized DBS
  • 数据和数据的管理都是集中的,运行在单个计算机系统中
客户/服务器数据库体系结构 C/S DBS
某些任务在服务器上执行,另一些人物在客户机上执行
数据库系统的功能分前端和后端
  • 前端:
    图形用户界面、表格生成和处理等工具
  • 后端:
    存取结构、查询计算和优化、并发控制和故障恢复
前端和后端之间通过SQL或APP来接口
数据库服务器一般可分为:
  1. 事务服务器/查询服务器
    提供接口供客户发出执行一个动作的请求,响应客户请求,将执行结果返回给用户
  2. 数据服务器
    使得用用户可以与服务器交互,以文件或页面为单位地对数据进行读取或更新
并行数据库系统 parallel DBS
并行体系结构的数据库系统由多个物理上连在一起的CPU组成,分为:
  1. 共享内存式多处理器
    多个CPU共享单个内存和公共磁盘接口
  2. 无共享并行体系结构
    多个CPU各自有自己的内存和磁盘
并形数据库的四种结构:
  1. 共享内存型
  2. 共享磁盘型
  3. 无共享型
  4. 层次型
分布式数据库系统
分为:
  1. 物理上分布、逻辑上集中
    把数据模式(全局数据模式)按数据来源和用途,合理地分布在系统多个节点上
  2. 物理上和逻辑上都分布
    存在两种模式:每个节点本身的数据模式和本节点共享的其他节点上有关数据模式。
    节点之间的数据共享由双方协商确定
Web数据库
利用浏览器作为用户输入接口,输入所需要的数据,浏览器将这些数据传给网站,网站对数据进行处理,并将操作结果传回给浏览器。

2 数据描述
 
数据描述(从事务的特性到计算机中的具体表示)的三个阶段:
  1. 概念设计中的数据描述
  2. 逻辑设计中的数据描述
  3. 物理存储介质中的数据描述
概念设计中的数据描述:根据用户需求设计数据库的概念结构
  1. 实体:客观存在的可以相互区别的事务
  2. 实体集:性质相同的同类实体的集合
  3. 属性:实体的特性
  4. 实体标识符:能唯一标识实体的属性或属性集
逻辑设计中的数据描述:根据概念结构设计数据库的逻辑结构
  1. 字段(数据项):标记实体属性的命名单位
  2. 记录:字段的有序集合,完整描述一个实体的字段集
  3. 文件:同一类记录的集合
  4. 关键码(键):能唯一标识文件中每个记录的字段或字段集
每个概念都有类型和值,类型是概念的内涵,值是概念的外延,类型和值一起称为记录
数据描述有两种形式:
  1. 物理描述:数据在存储设备上的存储方式
  2. 逻辑描述:程序员或用户用以操作的数据形式
对应关系:
  1. 属性与字段
  2. 实体与记录
  3. 实体标识符和键
  4. 实体集与文件
数据联系的描述:
联系:实体间的相互关系,有一元联系、二元联系、三元联系等
二元联系有如下类型:
  1. 一对一:1:1
  2. 一对多:1:N
  3. 多对多:N:M

3数据模型
模型:对现实世界特征的模拟和抽象
数据模型:描述数据库的结构和语义
ANSI定义了4种模型:
  1. 概念数据模型:表达用户观点的DB全局逻辑结构
  2. 逻辑数据模型:表达计算机实现观点的DB全局逻辑结构
  3. 外部数据模型:表达用户观点的DB局部逻辑结构
  4. 内部数据模型:表达DB的物理结构
数据抽象的过程(数据库的设计过程):
  1. 根据用户需求,设计数据库的概念模型
  2. 根据转换规则,把概念模型转换成数据库的逻辑模型
  3. 根据用户的业务特点,设计不同的外部模型
  4. 数据库实现时,根据逻辑模型设计内部模型
  • 1为DB的概念设计
  • 2、3为DB的逻辑设计
  • 4为DB的物理设计
概念模型的特点:
  1. 表达了DB的整体逻辑结构,企业管理人员对企业组织的全面概述
  2. 从用户需求的观点出发,对数据建模
  3. 独立于硬件和软件
  4. 数据库设计人员与用户之间进行交流的工具
常见的有实体联系模型,E-R模型
逻辑模型的特点:
  1. 表达了DB的整体逻辑结构,设计人员对企业组织数据库的全面概述
  2. 从数据库实现的观念点出发,对数据建模
  3. 硬件独立,软件依赖
  4. 数据库设计人员与应用程序员之间进行交流的工具
常见的有层次模型、网状模型、关系模型
外部模型的特点:
  1. 是逻辑模型的一个逻辑子集
  2. 硬件独立,软件依赖
  3. 反映了用户使用数据库的观点
内部模型(物理模型)描述了:
  1. 数据在磁盘或磁带上的存储方式(文件的结构)
  2. 存取设备(外存的空间分配)
  3. 存取方法(主索引和辅助索引)
数据模型的三要素
  1. 数据结构:
    所研究的对象类型的集合,对系统静态特征的描述
  2. 数据操作:
    对数据库中各种对象(型)的实例(值)允许执行的操作及操作规则的集合
  3. 数据的约束条件:
    完整性规则的集合,应用数据必须遵循的语义约束条件。
E-R模型
E-R模型的三个主要概念:
  1. 实体
    现实世界中可以区别于其他对象的“事件”或“物体”
    实体集是具有相同属性实体的集合
  2. 联系
    实体内部的联系:反映数据在同一记录内部各字段间的联系
    实体集之间的联系:1:1,1:n,m:n
  3. 属性
    实体某方面的特性,分为简单属性和复合属性,或单值属性和多值属性,NULL属性,派生属性
E-R方法
用实体-联系的方法来从现实世界中抽象出实体和实体间的联系,构成E-R图。
E-R图中的主要构件:
  • 矩形:实体集
  • 菱形:联系集
  • 椭圆:属性
  • 线段:连接属性和实体
  • 双椭圆:多值属性
  • 虚椭圆:派生属性
  • 双线:一个实体全部参与到联系中
  • 下划线:主码
扩充的E-R模型:
弱实体:一个实体的存在必须以另一实体为前提,则这类实体被称为弱实体。
特殊化和普遍化:超类、子类,重叠特殊化、部分特殊化
用特殊化圆圈和连线的方式表示超类、子类关系.
特殊化圆圈内带“U”表示特殊化,"d"表示不相交特殊化,“O”表示重叠特殊化
双线表示全部特殊化,单线表示部分特殊化。
双竖边矩形:子类
层次模型
采用树型结构表示数据与数据间的联系。
每个节点表示一个记录类型(实体),记录之间的联系用节点之间的连线表示,根节以外的所有节点均有且只有一个双亲节点。
层次模型不能直接表示多对多的联系,需采用1冗余节点方法或2虚拟节点分解法
网状模型
用网络结构表示数据与数据之间的联系。
每个节点表示一个记录类型(实体),记录之间的联系用节点之间的连线表示,允许一个以上的节点无双亲,一个节点可以有多个双亲。
关系模型
用表格结构表达实体集,以及实体集之间的联系。
是由若干个关系模式组成的集合。
一个关系模式相当于一个记录型,对应于程序设计语言中的类型定义的概念。
关系是一个实例,也是一张表,对应于程序设计语言中的变量的概念。
关系模型中的常见术语:
  • 关系:一个关系R对应于一张二维表
  • 属性:二维表中的一列成为属性 A1,A2...为属性名
  • 关系模式:对关系的描述,记为R(A1,A2...)
  • 元组:二维表中的一行
  • 主码:其值能惟一地标识元组的一个或多个属性,成为主码或关键字
  • 域:属性A1,A2...的取值范围
  • 分量:元组中的一个属性值

4数据库的体系结构
一般采用三级模式和两级映像结构
三级:外部级、概念集、内部级
数据库的三级模式结构(数据抽象的三个级别)(DBTG->ANSI):
  1. 概念级/概念模式/逻辑模型:全局性的数据视图
    数据库中全部数据的逻辑结构和特征的描述
    由若干个概念记录类型组成,只涉及到行的描述,不涉及具体的值,描述记录键的联系、操作以及数据完整性、安全性等要求
    概念模式的一个具体值称为模式的一个实例
    不涉及存储结构和访问技术等细节
    定义语言:模式DDL
  2. 外部级/外模式/外模型:单个用户所能看到的数据视图
    用户与数据库系统的接口,用户用到的那部分数据的描述
    定义语言:外模式DDL
  3. 内部级/内模式/内模型:物理存储数据视图
    数据物理结构的存储方式的描述,数据在数据库内部的表示方式
    定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节
    不涉及物理记录,也不涉及设备的约束

    定义语言:内模式DDL

数据库的两级映像
  1. 模式/内模式映像
    概念级和内部级之间,实现概念模式到内模式的相互转换
  2. 外模式/模式映像
    外部级和概念级之间,实现外模式到概念模式之间的相互转换

两级数据独立性:

物理数据独立性:数据库的内模式要修改,数据库的物理结构有所改变时,只要对外模式/内模式映像作出相应的修改
逻辑数据独立性:数据库的概念模式要修改,例如增加记录类型或增加数据项,只要对外模式/概念模式映像作出相应的修改

5数据库管理系统
DBMS的工作模式:
  1. 接收应用程序的数据请求和处理请求
  2. 将用户的数据请求转换成复杂的机器代码
  3. 实现对数据库的操作
  4. 从对数据库的操作中接收查询结果
  5. 对查询结果进行处理
  6. 将处理结果返回给用户
DBMS的功能
  1. 数据定义
    提供数据定义语言DDL,用户可以对数据库的结构进行描述(三级结构、两级映像),定义数据库的完整性、安全保密等。
  2. 数据库操作
    提供数据操纵语言DML,实现对数据库中数据的基本操作(检索和更新(插入、修改、删除))。
    DML分两类:宿主型和自含型(过程性和非过程性)
    过程性:做什么+怎么做,层次、网状
    非过程性:做什么,关系
  3. 数据库运行管理
    在运行期间对多用户环境下的并发控制、安全性检查和存取控制、完整性检查和执行、运行日志和组织管理以及事务管理和自动恢复等。
  4. 数据组织、存储和管理
    分类组织、存储和管理各种数据,包括数据字典DD、用户数据和存取路径等
  5. 数据库的建立和维护
    除时间里、数据转换、数据库的转储和回复、数据库的重组和重构、性能检测和分析等
  6. 其他功能
    例如与网络中其他软件系统的通讯功能等
2 DBMS的特征
  1. 数据结构化且统一管理
    结构化:体现在用数据模型表示数据结构
  2. 有较高的数据独立性
    数据独立性指数据与程序独立,将数据的定义从程序中分离出去,由DBMS负责数据的存储,应用程序关心的知识数据的逻辑结构,无需了解数据在磁盘上的数据库中的存储形式。物理独立性、逻辑独立性
    物理独立性:数据库的内模式发生改变时,数据的逻辑结构不变
    逻辑独立性:应用程序与数据库的逻辑结构是相互独立的
  3. 数据控制功能,包括:
    数据库的安全性保护,防止不合法的使用所造成的数据泄露、更改或破坏
    数据的完整性:数据库的正确性和相容性,防止合法用户使用数据库时向数据库加入不符合语义的数据
    并发控制:协调并发事务的执行,保证数据库的完整性不受破坏,避免用户得不到正确的数据
    故障恢复:在故障引起数据库当前状态不一致后,将数据库恢复到某个正确状态或一致状态,原理是建立冗余数

6 数据库的控制功能
事务管理
事务的定义:
  • 事务:一个操作序列,构成单一逻辑工作单元的操作集合,事务是数据库环境中不可分割的逻辑工作单位。
事务的4个特性(ACID):
  1. 原子性:要么都做,要么都不做
    由DBMS的事务管理子系统实现
  2. 一致性:事务执行的结果必须保证数据库从某个一致性状态变到另一个一致性状态
    由DBMS的完整性子系统执行测试任务
  3. 隔离性:事务相互隔离,多个事务并发执行时,一个事务结束之前别的事务无法看到起
    由DBMS的并发控制子系统实现
  4. 持久性:一旦事务成功提交,操作将永久有效
    由DBMS的恢复管理子系统实现
SQL中的事务定义语句:
  1. BEGIN TRANSACTION 事务开始
  2. COMMIT 事务提交,成功
  3. ROLLBACK 事务滚回,失败
数据库的恢复
故障的种类:
  1. 事务故障
  2. 系统故障
  3. 介质故障
  4. 计算机病毒
故障的恢复方法:
基本原理:建立数据冗余(重复存储)
方法:建立数据转储和登记日志文件
转储分类:
  1. 动态转储:转储期间允许数据库读写或任何修改
  2. 静态转储:转储期间不允许数据库读写或任何修改
或者:
  1. 海量转储
  2. 增量转储
建立日志数据库:
记录事务的开始、结束标志,记录事务对数据库的每一次插入、删除和修改前后的值,写到日志库中,以便有案可查。
事务恢复的步骤:
  1. 扫描日志文件,查找该事务的更新操作
  2. 对事务的更新操作执行逆操作
  3. 查找该事务的其他更新操作,作同样处理
  4. 如此直至事务的开始标志
数据库故障处理方式:
灾难性事故:装入最近义词复制的数据库备份到新的磁盘,利用日志库执行REDO已提交的事务
物理性颇外:利用日志库UNDO所有不可靠的修改,利用日志库执行REDO已提交的、但对数据库的更新可能还留在内存缓冲区的事务
检查点技术:采用检查点方法实现REDO、UNDO的处理
在DBS运行时,DBMS定时设置检查点,在检查点时刻才真正把对DB的修改写到磁盘,并在日志文件中写入一条检查点记录
检查点方法的恢复算法:
  1. 根据日志文件建立事务重做队列和事务撤销队列
    正向扫描日志文件,找出故障发生前已提交的事务,将其事务标记记入重做队列
    找出故障发生时尚未完成的事务,将其事务标记加入到撤销队列
  2. 对重做队列中的事务进行REDO处理,对撤销队列中的事务进行UNDO处理
    REDO方法:正向扫描日志文件,根据重做队列的记录对每一个重做事务重新实施更新操作
    UNDO方法:反向扫描日志文件,根据撤销队列的记录对每一个撤销事务的更新执行逆操作
并发控制:
  • 并发操作:多用户系统中,多用户同时对同一数据进行操作
  • 并发concurrent指的是在单处理机上,利用分时方法实行多个事务同时做
DBMS的并发控制子系统,负责协调并发事务的执行,保证数据库的完整性,同时避免用户得到不正确的数据。
并发操作通常会带来的问题:
  1. 丢失更新
  2. 不可重复读
  3. 读脏数据
锁:是一个与数据项相关的变量,对可能应用于该数据项上的操作而言,锁描述了该数据项的状态。
封锁技术:
  • 排他锁(写锁X)Exclusive Lock:
    事务T对数据对象A上X锁,则只允许T读取和修改A,其他事务都无法对A上任何类型锁
    申请X锁操作:XFIND R
    解除X锁操作:XRELEASE R,合并到COMMIT、ROLLBACK操作中
  • 共享锁(读锁S)Shared Lock:
    事务T对数据对象A上S锁,则只允许T读取A但不可修改A,其他事务只能再对A上S锁
    申请S锁操作:SFIND R
    升级和写操作:UPDX R
    解除S锁操作:SRELEASE R
封锁的相容矩阵:
T2   T1 X S -
X N N Y
S N Y Y
- Y Y Y
封锁的粒度:
  • 封锁对象的大小(属性、元组、关系、索引表等)
  • 需要处理大量元组的用户事务可以以关系为封锁单元
  • 只需要处理少量元组的用户事务可以以元组为封锁单元
封锁协议:
在运用封锁机制时,还需要约定一些规则,称为协议。
协议是系统中所有事务都必须遵守的章程,这些章程是对事务可能执行的基本操作次序的一种限制。
三级封锁协议:
  1. 一级封锁协议:
    事务T在修改数据R之前必须对其加X锁
    解决丢失更新问题
  2. 二级封锁协议:
    在一级封锁协议基础上,事务T在读数据R之前还必须先对其加S锁,读完后可释放S锁
    解决丢失更新问题

    解决读脏数据问题

  3. 三级封锁协议:在一级封锁协议基础上,事务T在读数据R之前还必须先对其加S锁,事务完成后可释放S锁
    解决所有三个问题
封锁带来的问题:
  • 活锁Live Lock:某个事务永远处于等待状态,得不到封锁的机会
    解决方法是先来先服务策略,也可有优先级
  • 饿死Starvation:一个事务序列,每个事务都申请对某数据项加S锁,且每个事务在授权加锁后一小段时间内释放封锁,此事一个事务T欲在该事务上加X锁,永远轮不上机会
    解决方法是,授权T加锁条件
    不存在在数据项Q上持有X锁的其他事务
    不存在等待对数据项Q加锁且优先于T申请加锁的事务
  • 死锁Dead Lock:两个以上事务分别请求封锁对方已封锁的数据,导致长期等待而无法继续下去的现象
    解决方法有二,
    要求每个事务在开始执行时封锁它所使用的所有数据
    对数据项强加一个封锁顺序,同时要求所有事务职能按该顺序封锁数据项
用事务等待图的形式测试系统中是否存在死锁
  • 无环等待图:未进入死锁状态
  • 有环等待图:进入死锁状态
并发操作的调度Schedule:
调度:事务的执行次序
串行调度:多个事务依次执行
并发调度:利用分时的方法同时处理多个事务
并发调度的可串行性:
  • 当多个事务的并发结果与某一次序串行地执行这些事务的结果相同时,称为可串行化的调度。
  • 可串行性是并发事务的正确性原则。
两段封锁协议Two Phase Locking:
  • 所有事务必须分两个阶段对数据项加锁和解锁
  • 扩展阶段:在对任何一个数据进行读写操作之前,事务必须获得对该数据的封锁
  • 收缩阶段:在释放一个封锁之后,事务不再获得任何其他封锁
事务不可嵌套:当且仅当当前没有事务在运行时,程序才能执行BEGIN TRANSACTION操作
数据的完整性:
安全性违规:
  • 未经授权读取数据
  • 未经授权修改数据
  • 未经授权破坏数据
数据库安全性:数据库不受恶意访问
数据库安全措施的几个层次:
  1. 数据库系统层次
  2. 操作系统层次
  3. 网络层次
  4. 物理层次
  5. 人员层次
授权:
  • read
  • insert
  • update
  • delete
  • index
  • resource
  • alteration
  • drop
授权与视图:
视图:给用户提供个性化数据库模型的一种手段,视图可以隐藏用户不需要看见的数据。
获得某种授权的用户可能被允许将此授权传递给其他用户。
可以授予银行职员访问借贷视图,但不授权其访问数据表。
角色:
在数据库中建立一个角色集,如同授权每一个单个用户权限一样,可将权限授予角色。
审计追踪:
是记录对数据所有更改的日志。

Leave a Reply

Your email address will not be published. Required fields are marked *