系统架构师–数据库系统


数据库系统

三级模式-两级映射

  • 外模式(用户级数据库) 外模式-概念模式映射 概念模式(概念级数据库) 概念模式-内模式映射 内模式(物理级数据库)

内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节

概念模式(模式)对应数据库的表

外模式对应的是数据库里的视图

外模式-概念模式映射:如果表发生了变化,只需要修改外模式-概念模式映射,不需要改应用程序

概念模式-内模式映射:内部存储结构改变,只需要修改概念模式-内模式映射关系,不需要改应用程序

数据库设计过程

  1. 需求分析:产物:数据流图、数据字典、需求说明书
  2. 概念结构设计:ER模型 用户的数据模型,与DBMS无关的概念模型
  3. 逻辑结构设计:关系模式
  4. 物理设计

需求分析阶段的任务是:对现实世界要处理的对象进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,确定系统边界、收集支持系统目标的基础数据及其处理方法

概念结构设计阶段的工作步骤

  1. 抽象数据
  2. 设计局部视图
  3. 合并取消冲突
  4. 修改重构消除冗余

逻辑设计阶段的任务:对关系模式进一步地规范化处理、分解、合并或者增加冗余属性,提高存储效率和处理效率

逻辑设计阶段:将ER图转成数据模式(如:关系模式)然后通过规范化将其结构调整好,并做相应地优化,最后是形成用户模式

ER模型

一个实体型转换为一个关系模式:1:1联系、1:n联系、m:n联系

关系代数

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

规范化理论

函数依赖

部分函数依赖:A、B ->C , A ->C

传递函数依赖:A -> B, B -> C

价值与用途

非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常

求候选关键字
  • 将关系模式的函数依赖关系用”有向图“的方式表示 找入读为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
范式
  • 第一范式:在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式 第二范式:当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式 第三范式:当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R是第三范式 BC范式:设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因为必定包含R的某个候选码
模式分解

表格法

公式法:只适用于R拆分为两个函数依赖

并发控制

事务的4大特性:原子性、一致性、隔离性、持续性

封锁协议:

  • 一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直至事务结束才释放。可防止丢失修改 二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可以防止读”脏“数据 三级封锁协议:一级封锁协议加上事务T在读取R之前先对其加S锁,直到事务结束才释放。可防止丢失修改,还可以防止读”脏“数据与防止数据重复读 二段锁协议:可串行化的。可能发生死锁

S锁:读锁 X锁:写锁

完整性约束

  • 实体完整性约束:主键 参照完整性约束:外键 用户自定义完整性约束

复杂的约束更多的使用触发器完成的

  • 触发器

数据库安全

数据库管理系统的安全措施有3个方面

  1. 权限机制:通过权限机制,限定用户对数据的操作权限,把数据的操作限定在具有指定权限的用户范围内,以保证数据的安全。在标准SQL中定义了授权GRANT来实现权限管理
  2. 视图机制:通过建立用户视图,用户或应用程序只能通过视图来操作数据,保证了视图之外的数据的安全性
  3. 数据加密:对数据库中的数据进行加密,可以防止数据在存储和传输过程中失密

备份与恢复

分布式数据库

数据库优化

数据仓库与数据挖掘

商业智能系统(BI)主要包括数据预处理、数据仓库、数据分析和数据展现4个主要阶段

  • 数据预处理包括数据的**抽取(extraction)、转换(transformation)、加载(load)**三个过程(ETL过程) 建立数据仓库则是处理海量数据的基础 数据分析是体现系统智能的关键,一般采用OLAP(联机分析处理)和数据挖掘 数据展现则主要保证系统分析结果的可视化

在采用数据仓库技术进行数据收集时,有时会遇到一些略微不一致但可以纠正的数据,这时需要采用数据清洗技术对这些不一致的数据进行处理和纠正

数据仓库4个特点

  1. 面向主题:操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关
  2. 集成性:面向事务处理的操作型数据库通常与某些特定的应用相关,而数据仓库中的数据是在对原有分散的数据库数据进行抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息
  3. 相对稳定性:操作型数据库中的数据通常需要实时更新,数据根据需要及时发生变化。数据仓库的数据主要提供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新
  4. 反映历史变化:操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息、可以对企业的发展历程和未来趋势做出定量分析和预取

联邦数据库

反规范化

对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询速度。因此,有时为了提高某些查询或者应用的性能而破坏规范规则,即反规范化。主要方法包括:

  1. 增加冗余列
  2. 增加派生列
  3. 重新组表
  4. 分表,水平分割/垂直分割

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/290607.html

(0)
上一篇 2022年10月4日
下一篇 2022年10月4日

相关推荐

发表回复

登录后才能评论