3. 数据库系统

书写于190306-09,暂不完整,之后将会进行修改

数据库模式

三级模式-两级映射

1551878313413

数据库设计过程

1551878547547

ER模型

1551878639254

  • 实体模型转换为关系模型

    指的是ER图要转化成表

    • 如何转换呢?一般来说,如果联系是1:1的,那么最少可以转换为两个联系

    • 如果是1:n的话,最少可以转换为两个,把关系放在多个里面,比如部门对员工,因为如果把关系放在部门,则可能一个部门的员工数有多有少,会冗余,所以比较好的是把关系放在员工那里
    • 如果是m:n的话,则最少转为3个

关系代数与元组演算

关系代数

并 交 差 笛卡尔积 投影 选择 联接

  • 并交差

1551881699209

  • 笛卡尔积、投影、选择

    1551881837273

  • 联接操作

    1551882646611

规范化理论

函数依赖

如果A能确定B,那么A->B,B依赖于A,类似于函数中的y和x的关系,x确定y,y依赖x

  • 部分函数依赖

    (学号,课程号) -> 姓名,其中只有学号就能确定姓名,这个叫做部分函数依赖

  • 传递函数依赖

    A确定B,B确定C,A就能确定C

规范化理论的价值与用途

非规范化设计,可能存在的问题有数据冗余,更新异常,插入异常,删除异常,完成规范化设计,可能就会性能不行,但不完成,就会有安全问题

1551883591310

  • 数据冗余

    如图中的计算机系,1号楼为数据冗余

  • 更新异常

    因为数据冗余,所以有时候更新数据忘记更新相同的数据

  • 插入异常

  • 删除异常

  • 超键

    唯一标识元,可能有多个属性

  • 候选键

    只有一个属性

    1552135727470

  • 主键

    候选键选择一个最可以标识的属性

  • 外键

范式

完成范式后就可以解决掉之前出现的插入异常,删除异常,数据冗余的问题,但是性能就会降低,所以一般实现第3范式就行,完成高级范式的同时就一定会完成低级的范式

1552135835177

第一范式

1552135998577

第二范式

1552136537113

第三范式

1552137048136

BC范式

1552137340544

模式分解

在变成高级范式的时候,那些表要分解,那么分解的时候会出现什么问题,这个时候就得确定是否确定函数依赖了

  • 保持函数依赖

    各函数依赖除传递函数依赖外的所有值都在新的分解表里面出现了

    如A->B,B->C,A->C,那么分解成的就是AB,和BC表

    1552138135780

  • 无损分解

    • 直接推导的方式求有损分解

    1552138261721

    • 公式计算的方式计算

      1552138946759

    • 定理方式

      1552139584227

反规范技术

  • 规范化的缺点

1552143086546

  • 技术手段
    • 增加派生性冗余列
    • 增加冗余列
    • 重新组表
    • 分割表

并发控制

1552139634442

事务

  • 原子性

    比如你银行转账,你少了钱,别人多了钱,要么两个操作一起做,要么不做

  • 一致性

    A账户扣除了钱,B账户没有收到钱,加起来钱的数量变少了,两者不一致

  • 隔离性

    事务之间是独立进行的,隔离的

  • 持续性

    事务的结果影响是持续的

并发控制存在的问题

1552140578879

封锁协议

解决并发控制中的问题

1552140646308

S锁是读锁,X锁是写锁

死锁

数据库完整性约束

1552140796797

  • 实体完整性约束

    主键不可重复,不可为空

  • 参照完整性约束

    指的是外键不能随便填,只能填已经定义的外键内容,可以空

  • 用户自定义完整性约束

    比如人的高度,最高不高于3m

提高了数据可靠性,但是只能应对简单的情况,这个时候就有了触发器

1552140995263

数据库安全与数据备份

数据安全

1552141149619

数据备份与恢复

  • 冷热备份

1552141416731

  • 增量备份

    1552141725465

    1552141805135

  • 日志文件来进行备份恢复

    1552141911763

数据库故障与恢复

1552142009443

分布式数据库

分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。

数据仓库与数据挖掘

数据仓库

1552142391879

  • 特点

    • 数据仓库用于大数据统计的,数据库面向业务,面向主题是指比如我要

      统计某个主题

    • 集成的

      会按周报表,日报表这些做出来

    • 相对稳定

    • 反映历史变化

  • 抽取,清理,装载,刷新

    • 抽取,指的是从数据库中抽取数据出来
    • 清理是指清理掉冗余数据,完成数据格式的统一
    • 装载是装载到数据仓库中
    • 刷新是定期刷新
  • 数据集市

    • 是指分部门级的数据仓库来建
  • OLAP服务器

    • 联机分析服务器
  • OLAOP服务器前端工具

    • 查询工具,报表工具,分析工具
    • 数据挖掘工具
      • 找出不知道的数据

数据挖掘方法分类

1552143005042

大数据

1552143284743

  • 大数据和传统数据的分析

    1552143450157