Tag Archives: database

备考软考数据库 14 数据库发展趋势与新技术

重点:
  1. 对象数据库系统ODBS:OODBS面向对象数据库系统、ORDBS对象关系数据库系统
  2. 企业资源计划信息系统ERP
  3. 决策支持系统DSS:DW数据仓库、OLAP联机事务分析、DM数据挖掘
1 对象数据库
面向对象的数据类型系统
  • 基本类型:整型、浮点型、字符型、字符串、布尔、枚举
  • 复合类型(统称汇集Collection,或批量Bulk):
    行(不同类型、有序)
    数组(同类型、有序)
    列表(允许重复、排序)
    包(可重复、无排序)
    集合(无重复、无排序)
  • 引用类型:相当于指针
OODBS定义:
将面向对象的程序设计语言中所建立的对象自动保存在磁盘上的文件系统。
面向对象系统+数据库能力
OODB基本概念:
  1. 对象:一组变量、一组消息、一组方法
    对象的定义提供了OO的特征——封装性Encapsulation,是一种信息隐蔽技术,使使用者和设计者分开
    类似于ER模型中的实体
  2. 类:相似的对象进行分组成为类,类似ER模型中的实体集
    类本身也是一个对象,类对象
  3. 继承性:子类可以继承超类的结构和特性,是:是一个(is a)联系
  4. 对象标识:用于标识对象,OODB中OID必须有永久的持久性,是指针一级的数据操纵原语
  5. 对象包含:是:是一部分(is a part of)联系
ODMG ODL(对象模型的语义结构)示例:
class Person
     (extent persons key social_number)
{ attribute string social_number;
  attribute string name;
  attribute integer age;
  attribute string sex;
};
class Faculty extends Person
    (extent faculties key fno)
{ attribute string fno;
  attribute integer salary;
  relationship University works_for inverse University::staff;
  relationship Set<Coursetext> teach inverse Coursetext::teacher;
  integer num_teach() raise (noTeach);
};
Faculty是Person的子类
ODMG OQL(为ODMG对象模型制定的查询语言)示例:
SQL风格
SELECT DISTINCT C.name
FROM universities U, U.staff F,F.teach C
WHERE U.city = 'shanghai';
OQL风格
SELECT DISTINCT C.name
FROM (SELECT U  FROM universities U  WHERE U.city = 'shanghai') D1,
    (SELECT F FROM D1.staff F) D2,
    D2.teach C;
对象关系数据库系统ORDBS:
在传统的关系数据模型基础上,提供元组、数组、集合一类丰富的数据类型以及处理欣的数据类型的操作的能力,并且具有继承性和对象标识等面向对象特点,这样的数据模型称为”对象关系数据模型“。
数据类型定义:
  1. 行:(v1,v2,...,vn)
  2. 数组:array[v1,v2,...,vn
  3. 列表:list(v1,v2,...,vn
  4. 多集:multiset(v1,v2,...,vn) (即包bag)
  5. 集合:set(v1,v2,..,vn)
继承性:类型级继承性和表级继承性
  • 类型级继承性:
CREATE TYPE Person ( name varchar(10), social_number char(18));
CREATE TYPE Student UNDER Person (degree varchar(10), department varchar(20));
Student类将继承超类的name和social_number两个属性
  • 表级继承性:
CREATE TABLE people OF Person
CREATE TABLE students OF Student UNDER people
people为超表,students为子表,子表继承了超表的全部属性                                                                                                     引用类型的定义:
创建类型时定义
  • 定义方式: 属性名 ref (类型名)
  • 或者: 属性名 setof (ref (类型名))
CREATE TYPE Faculty UNDER Person
        (fno char(10),
          salary integer,
          works_for ref (University),
          teach setof (ref(Courses)));
创建表时定义:
  • 引用类型的属性名 WITH OPTIONS SCOPE 表名
CREATE TABLE universities OF University
       (president WITH OPTIONS SCOPE faculities,
         staff WITH OPTIONS SCOPE faculties);
两种方式:
  1. 用表的主键实现对表中元组的引用
  2. 表中元组有一个元组标识符作为隐含属性,对元组的引用就是引用这个元组标识符
ORDB的查询语句:对SQL语句进行扩展
2 ERP
定义:建立在信息技术的基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台
发展过程:基本MRP,闭环MRP,MRPII,ERP
ERP系统中,数据库结构好坏直接影响系统的运行效率
3 DW
传统数据库用于事务处理,操作型处理
数据仓库用于决策分析,分析型处理
DW的特点:
  1. 面向主题的:面向主题进行组织的
  2. 数据是集成的:根据决策分析的要求,将分散各处的原数据进行抽取、筛选、清理及综合等集成工作
  3. 数据是相对稳定的:涉及的数据操作主要是数据查询,一般情况下并不进行修改操作
  4. 数据是反映历史变化的:进行分析处理时不进行数据更新操作
  5. 数据量大
  6. 对软、硬件要求高
DW体系结构:
  1. 企业数据仓库
  2. 操作型数据存储区
  3. 数据集市
DW的数据组织结构
  1. 当前基本数据层
  2. 历史基本数据层
  3. 轻度综合数据层
  4. 高度综合数据层
DW的结构由元数据来组织,主要有管理元数据和用户元数据
粒度与分割:
保存数据的详细程度和级别称为粒度,越详细则粒度越小级别越低
DW的多维数据模型:数据有维和事实构成
  • 模型有:
  • 星型:一个大量而无冗余的表加若干含较少数据的维表,每个维表有一个一维标识符与事实发生联系
  • 雪花型:在星型的基础上,对维表进行细分称若干个更小的事实表
  • 事实星座模型:多个事实表,之间共享维表
DW的设计原则:面向主题、数据驱动、原型法
2 数据仓库的数据模式:
具有为数据分析而设计的模式,使用OLAP工具进行联机分析处理。
数据通常是多维数据,包括多维属性和量度属性。
包含多维数据的表称为事实表,通常很大。
维属性通常是一些短的标识,作为参照其他表的外码。
更复杂的数据仓库设计可能含有多级维表。这种模式被称为雪花模式。
复杂的数据仓库设计可能含有不止一个事实表。
3 数据仓库的体系结构:
  1. 底层为数据仓库服务器:通常为一个关系数据库系统
  2. 中间层为OLAP服务器:关系型OLAP,或多维OLAP服务器
  3. 顶层为前端工具:查询、报表工具、分析工具和数据挖掘工具等
3 数据挖掘
数据挖掘:从大量的、不完全的、有噪声的、模糊哦以及随机的实际数据中提取隐含在其中的、人们不知道的、但又潜在有用的信息和知识的过程。
数据挖掘的分类:
按所挖掘的数据库种类分为:
  • 关系型数据库的数据挖掘
  • 数据仓库的数据挖掘
  • 面向对象数据库的挖掘
  • 空间数据库的挖掘
  • 正文数据库和多媒体数据库的数据挖掘
按所发现知识类别分为:
  • 关联规则
  • 特征描述
  • 分类分析
  • 聚类分析
  • 趋势分析
  • 偏差分析
按所发现的知识抽象层次分为:
  • 一般化知识
  • 初级知识
  • 多层次知识
常用技术:
  • 人工神经网络
  • 决策树
  • 遗传算法
  • 近邻算法
  • 规则推导
数据挖掘技术的应用过程:
  • 确定挖掘对象
  • 准备数据
  • 建立模型
  • 数据挖掘
  • 结果分析
  • 知识应用

备考软考数据库 13 网络环境下的数据库

重点:
1 分布式数据库的定义和优缺点
2 分布式数据库的体系结构
3 分布式数据库的查询优化
4 分布式数据库的管理方法
5 WWW技术与数据库技术的结合
6 ,XML
1.分布式数据库(Distributed DataBase System)定义和优缺点
定义:物理上分散逻辑上集中的数据库系统
组成:
  1. 分布式数据库(DDB)
  2. 分布式数据库管理系统(DDBMS)
特点:
  1. 物理分布
  2. 逻辑整体
  3. 场地自治:应用程序可直接使用本节点的数据,通过局部数据模式
  4. 场地之间的协作
  5. 数据独立性
  6. 集中与自治相结合的控制机制
  7. 增加适当冗余度
  8. 事务管理分布
优点:
  1. 灵活的体系结构
  2. 分布式的管理和控制机构
  3. 经济性能优越
  4. 系统可靠性、可用性高
  5. 局部应用的速度快
  6. 可扩展性好
缺点:
  1. 开销大
  2. 复杂的存取结构
  3. 安全性、保密性难
分类:
  1. 同构同质DDBS:各个场地都采用同一类型的数据模型,用同样的DBMS
  2. 同构异质DDBS:同一类型数据模型,不同的DBMS
  3. 异构DDBS:不同数据模型,不同DBMS
2. 分布式数据库的体系结构
存储:先数据分片再数据分配
  1. 数据分片
    关系:
      S(SNO,SNAME,AGE,SEX)
      SC(SNO,CNO,GRAGE)
    1水平分片:
      元组划分为不相交的子集,通过对全局关系进行选择Select获得
    DEFINE FRAGMENT SHF1
        AS SELECT * FROM S  WHERE SEX = "M";
    DEFINE FRAGMENT SHF2
        AS SELECT * FROM   S  WHERE  SEX = "F";
    2垂直分片:
      属性集划分为若干子集,在子集上做投影Project可获得全局关系,要求:每个子集都包含全局的键,全局的属性都至少属于一个子集
    DEFINE FRAGMENT SVF1
        AS SELECT SNO,AGE,SEX FROM S;
    DEFINE FRAGMENT SVF2
        AS SELECT SNO,SNAME FROM S;
    3导出分片:选择条件是别的表里的属性
    DEFINE FRAGMENT SHF3
        AS SELECT * FROM SC
            WHERE SNO IN
            (SELECT SNO FROM S WHERE SEX = "M");
    4混合分片:上三种的混合
    DEFINE FRAGMENT SHF1
        AS SELECT SNO,SNAME FROM SHF1
    DEFINE FRAGMENT SHF2
        AS SELECT * FROM SVF1 WHERE SEX = "M"
    划分要求:完备性、可重构性、不相交性(垂直分片的键除外)
  2. 数据分配(数据分布)
    方式:集中式、分割式、全复制式、混合式
6层模式的体系结构:
  • 全局外模式
  • 全局概念模式
  • 分片模式
  • 分配模式
  • 局部概念模式
  • 局部内模式
  • 局部数据库
6层模式的特征:
  1. 数据分片与数据分配概念的分离
  2. 数据冗余的显式控制
  3. 局部DBMS的独立性
分布透明性:
  • 全局外模式-逻辑数据独立性-全局概念模式
  • 全局概念模式-分片透明性-分片模式
  • 分片模式-位置透明性-分配模式
  • 分配模式-局部数据模型透明性-局部概念模式
  • 局部概念模式-物理数据独立性-局部内模式
  • 局部数据库
  1. 分片透明性:用户编写程序只需对全局关系进行操作,不许知道分片以及场地
  2. 位置透明性:用户编写程序时必须指明分片,但无需指明场地
  3. 局部数据模型透明性:用户编写程序时必须指明分片以及场地,但无需了解场地使用的是何种数据模型
  4. 复制透明性:部分数据有多个副本,用户不需要知道这些副本的所在
DDBS组成:
  1. DB:LDB,GDB
  2. DD:LDD,GDD
  3. DBMS:LDBMS,GDBMS
  4. 用户:全局用户,局部用户
  5. DBA:全局DBA,局部DBA
DDBMS功能:
  1. 接受用户请求
  2. 访问网络数据字典DD
  3. 分布式处理
  4. 通信接口功能:用户和局部DBMS之间的协调
  5. 进程移植(异构型系统中)
DDBMS模块:
  1. 查询处理模块
  2. 完整性处理模块
  3. 调度处理模块
  4. 可靠性处理模块
3 分布式数据库的查询优化

查询代价的估算方法

  • 集中式DBS中:QC=CPU代价+I/O代价
  • 分布式DBS中:QC=CPU代价+I/O代价+通信代价
  • 通信代价 = C0+C1X,其中C0,C1为系统相关的常量,X为传输数据量
联接策略:
  1. 基于半联接的优化策略
  2. 基于联接的优化策略
基于半联接的优化策略:
  • 思想:网络中只传输参与联接的数据
  • 例:场地1有R关系,场地2有S关系,若在场地2要计算S join R,半联接程序如下:
    1 场地2计算S在公共关系B上的投影ΠB(S)
    2 把ΠB(S)传输给场地1, 
    3 场地1计算R' = R join ΠB(S)
    4 把R'传输给场地2
    5 场地2执行R' join S
基于联接的优化策略:
  • 两个关系在同一场地:循环嵌套、排序扫描
  • 两个关系在不同场地:整体传输、按需传输
4 分布式数据库的管理方法
分布事务管理
分布式数据库中事务一样具有ACID:原子性、一致性、隔离性和耐久性
还需有额外几个特性:
  1. 执行特性:各个子事务直接的协调
  2. 操作特性:在存取操作之外增加通信原语,协调各个子事务之间的数据传输
  3. 控制报文:
分布式数据库的故障:
  • 事务故障:错误输入输出等
  • 系统故障:死循环、缓冲满等
  • 介质故障:磁盘损坏等
  • 网络故障:节点故障、通信故障、报文故障
事务故障的恢复和恢复原则
  • 日志+档案库+检查点
  • 恢复原则:
    1孤立和逐步退出事务原则
    2成功结束事务原则
    3夭折事务原则
两阶段提交协议:
  • 系统包括协调负责者和参与者,协调者有权提交或撤销事务
    1协调者要求所有参与者准备提交(PREPARE)
    2协调者根据参与者的回答进行决定:
    只要有一个参与者撤销事务(ABORT),则协调者全局撤销
    只有所有参与者都同意提交事务(READY),协调者才全局提交(COMMIT)
三阶段提交协议:
  • 前两部与两阶段提交协议一样
  • 若有参与者ABORT则进入第三阶段
5 WWW技术与数据库技术的结合
WWW与数据库的交互方法:
  1. CGi 公共网关接口: 浏览器—WEB服务器—CGI—数据库
    缺点:无状态管理功能,效率低
  2. JDBC:java的数据库访问API
  3. API
动态Web网页和开发:
  • 动态信息包括:1动态数据 2动态页面 3动态内容
  • 动态网页的特点:交互性、自动更新、个性化
  • 构建技术:CGI、ASP、JSP、Servlet、PHP
6XML
可扩展标记语言,优点:可扩充性、灵活性、自描述性、环境无关性
模板驱动:<SelectStmt></SelectStmt>中嵌入SQL语句,生成文件时其中内容有SQL查询结果替代
数据模型:表格、对象

 

备考软考数据库 12 数据库系统运行与管理

基本不考
重点:
  1. DBS运行计划
  2. DBS运行与维护
  3. DB管理
  4. 性能调整
  5. 用户支持
1 DBS的运行计划

数据库系统的运行计划包括4个部分:

  • 确定运行策略:包括正常运行策略和非正常运行策略
    正常运行策略:物理环境、人员、安全性、备份和恢复
    非正常运行策略:突发事件的应对策略、高负载状态的应对策略
  • 确定数据库系统监控对象和方式:对象为系统性能、系统故障、系统安全
    性能监控:资源占用率、事务响应时间、事务量等
    故障监控:事务故障、系统故障、介质故障
    安全监控:入侵、用户访问、病毒监控
    监控方式:系统、应用程序两种方式
  • 确定数据库系统报警对象和方式
    监控对象:
    1数据库对象状态
    2数据库运行效率
    3主机运行效率
    4网络运行效率
    5应用系统运行效率
  • 确定数据库的管理计划
2 DBS运行与维护
新旧系统的转换:三类
  1. 异构数据库系统之间的转换:中间文件
  2. 同构数据库系统不同版本之间的转换:导入、导出工具
  3. 同一数据库系统在不同主机平台之间的迁移:导入、导出工具
不同类型数据的迁移策略:
  1. 静态历史数据
  2. 半静态数据
  3. 动态数据
监控数据的收集和分析:

  • 收集方法:抽样或事件驱动方法
数据库的日常维护工作:
  • 数据库重构
  • 视图的维护
  • 文档的维护
数据库系统运行标准:DBS运行期间各项指标的基线(benchmark)
  1. 系统响应时间:单次业务完成所需时间
  2. 对象大小:表空间的使用率
  3. 命中率:Cache命中率
  4. 主机运行情况:CPU空闲率
3 DB的管理:
  • 数据字典管理
  • 完整性维护
  • 物理结构管理
  • 备份和恢复
  • 并发控制和死锁管理
  • 安全性管理
  • 数据库管理员的职责管理
4 性能调整
  1. 瓶颈的定位:提高瓶颈的速度将直接影响整个系统的效率
  2. SQL语句的性能优化:
    减少多表查询
    减少物化视图
    嵌套时采用不相关子查询
    只检索需要的列
    WHERE中用IN代替OR
    用UNION ALL而非UNION
    经常使用COMMIT
  3. 表设计的评价:
    不一定要求全部模式都达到BCNF
    合并频繁访问即联接的两个表
    将表中频繁访问的部分字段单独做表
    很少更新的表引入物化视图
  4. 索引的改进:
    查询是瓶颈:增加索引
    更新是瓶颈:减少索引
    选择正确索引的类型
    每个关系上只允许一个聚集索引
  5. 物理分配和磁盘I/O的改进
  6. 设备增强
  7. 数据库性能优化
5用户支持
用户分为三类:应用开发人员、数据库管理员、终端用户
培训方式:数据库原厂商对应用开发人员和DBA培训、应用开发人员对DBA进行培训、DBA对终端用户进行培训

备考软考数据库 11 数据库设计

数据库系统生存期:

  1. 规划:
    系统调查
    可行性分析
    确定数据库系统的总目标和制定项目开发计划
  2. 需求分析:
    分析用户活动,产生业务流程图
    确定系统范围,产生系统关联图
    分析用户活动涉及的数据,产生数据流
    分析系统数据,产生数据字典
  3. 设计
    数据库结构的设计:概念设计、逻辑设计、物理设计
    应用程序设计
  4. 实现
    定义数据库结构
    数据装载
    编制与调试应用程序
  5. 测试
    对数据库的结构以及使用进行测试
    对数据库的并发控制、恢复、安全性、完整性措施进行测试
    对应用程序进行测试
    数据库的试运行和确认测试
  6. 运行维护
    数据库的转储和恢复
    数据库安全性、完整性控制
    数据库性能的监督、分析和改进
    数据库的重组质和重构造
概念设计方法论:
  1. 自顶而下:首先定义全局概念结构框架,然后逐步细化
  2. 自底而上:首先定义各局部应用的概念结构,然后集成起来
  3. 逐步扩张:首先定义核心业务的概念结构,然后扩充
  4. 混合策略:自顶而下和自底而上的结合
数据抽象的三种方法:
  1. 分类(Classification):
    定义一类概念作为现实世界中一组对象的类型
    抽象的是对象值和类型之间is a member of的语义
    ER模型中对应于实体值和实体类型
  2. 聚集(Aggregation):
    定义每一类型的组成部分
    抽象了对象内部类型和成分之间is a part of的语义
    ER模型中对应于若干属性聚集成一个实体类型
  3. 概括(Generalization):
    定义类型之间的子集联系
    抽象了类型之间is a subset of的语义
    ER模型中对应于子类能继承超类上定义的所有抽象
ER模型的基本元素:
  1. 实体(Entity):
    实体:一个数据对象,应用中可以区分的客观存在
    实体集:同一类实体的集合
    实体类型:对实体集中实体的定义
    ER模型中实体用方框表示,方框内注明实体命名
  2. 联系(Relationship):
    联系:一个或多个实体之间的关联关系
    联系集:同一类联系构成的集合
    联系类型:对联系集中联系的定义
    ER模型中用菱形框表示,用线段将其与相关实体连接起来
  3. 属性(Attribute):
    属性是实体的某一特性,实体的属性中,能够唯一标识实体的属性或属性集称为“实体标识符”
    属性可取的值的范围称为属性域
    联系也可能有属性,但是只做描述用
属性的分类:

  • 简单属性和复合属性
    简单属性是不可再分割的属性:性别、年龄
    复合属性是可以再分解为其他属性的属性:地址
  • 单值属性和多值属性
    单值属性指同一实体的该属性只可有一个取值:年龄
    多值属性指同一实体的该属性可以有多个取值:学位
  • 存储属性和派生属性
    可以从其他属性值推导出值的属性称为派生属性:实发工资=工资-扣费
    存储属性是实际存储在数据库中的属性
  • 多值属性的变换方法:
    将原本的多值属性用几个新的单值属性来表示:将销售价格拆分为批发价格和零售价格
    将原本的多值属性用一个新的实体类型表示:新的弱实体与原本实体之间为1:N关系
联系的设计:
  • 一个联系涉及到的实体集个数称为该联系的元数或度数
  • 联系类型的约束限制了参与联系的实体的数目,分为基数约束和参与约束
  1. 基数约束
    可能的映射基数有:1:1,1:N,M:N,M:1四种
    要对映射基数更精确的描述时用"0...3","1...*"这样的形式描述
  2. 参与约束
    如果实体集E中的每个实体都参与联系集R中至少一个联系,则称实体集E全部参与联系集R,ER图中用双线边表示,一般很少这么画。
ER模型的操作:
  • 分裂:
    水平分裂(老师实体集拆分成男老师、女老师两个实体集)
    垂直分裂(把经常变化的属性组成一个实体类型,剩余的构成另一个)
    实体集以外,联系也可以分裂
  • 合并:
    分裂的逆操作,注意合并是否合法
  • 增删
采用ER模型的数据库概念设计步骤:
  1. 设计局部ER模型
    确定局部结构范围
    实体定义
    联系定义
    属性分配
  2. 设计全局ER模型
    确定公共实体类型
    局部ER模型的合并
    消除冲突
  3. 全局ER模型的优化
    实体类型的合并
    冗余属性的消除
    冗余联系的消除
增强的ER模型
  1. 弱实体:以另外一个实体的存在为前提的实体称为弱实体,ER图中用双矩形框表示
    与弱实体之间的联系在ER图中用双菱形框表示
  2. 子类与超类关系:
    从子类到超类的过程为概括
    从超类到子类的过程为抽象
    若超类中的每个实体必须是特化的某个子类的成员则,ER图中用双线将超类实体与小圆圈相连
    若超类中的实体可以不属于任何一个子类,则ER图中用单线连接超类实体和小圆圈
    小圆圈内标注d表示不相交,标注o表示可相交
ER图转换为关系模式集的算法:
  1. 实体类型的转换,将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符为关系模式的主键
  2. 实体联系的转换,应情况不同而定:
    一元、二元联系:
    1:1联系,在一个关系模式中加入另外一个关系模式的键和联系类型的属性
    1:N联系:在N端实体类型转换成的关系模式中加入1端实体类型的键和联系类型的属性
    M:N联系:将联系也转换成关系模式,属性为两个实体类型的键和联系类型的属性,其键为两个实体键的组合
    三元联系:
    1:1:1情况:在三个实体类型转换成的3个关系模式的任意一个中加入另外两个关系模式的键和联系类型的属性
    1:1:N情况:在N端加入
    P:M:N情况:将联系类型转换成关系模式
统一建模语言UML
ER图中术语与UML类图中术语的对应:
  • 实体集(Entity Set)——类(Class)
  • 实体(Entity)——对象(Object)
  • 联系(Relationship)——关联(Association)
  • 联系元数——关联元数(Degree)
  • 实体基数(Cardinality)——重数(Multiplicity)
类被表示为由以下3个部分构成的方框:

  1. 类的名称
  2. 该类的单个对象的属性
  3. 可以应用到这些对象的操作
UML基本不考

备战软考数据库 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
授权与视图:
视图:给用户提供个性化数据库模型的一种手段,视图可以隐藏用户不需要看见的数据。
获得某种授权的用户可能被允许将此授权传递给其他用户。
可以授予银行职员访问借贷视图,但不授权其访问数据表。
角色:
在数据库中建立一个角色集,如同授权每一个单个用户权限一样,可将权限授予角色。
审计追踪:
是记录对数据所有更改的日志。