数据库系统
三级模式-两级映射
- 外模式(用户级数据库) 外模式-概念模式映射 概念模式(概念级数据库) 概念模式-内模式映射 内模式(物理级数据库)
内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节
概念模式(模式)对应数据库的表
外模式对应的是数据库里的视图
外模式-概念模式映射:如果表发生了变化,只需要修改外模式-概念模式映射,不需要改应用程序
概念模式-内模式映射:内部存储结构改变,只需要修改概念模式-内模式映射关系,不需要改应用程序
数据库设计过程
- 需求分析:产物:数据流图、数据字典、需求说明书
- 概念结构设计:ER模型 用户的数据模型,与DBMS无关的概念模型
- 逻辑结构设计:关系模式
- 物理设计
需求分析阶段的任务是:对现实世界要处理的对象进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,确定系统边界、收集支持系统目标的基础数据及其处理方法
概念结构设计阶段的工作步骤
- 抽象数据
- 设计局部视图
- 合并取消冲突
- 修改重构消除冗余
逻辑设计阶段的任务:对关系模式进一步地规范化处理、分解、合并或者增加冗余属性,提高存储效率和处理效率
逻辑设计阶段:将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个方面
- 权限机制:通过权限机制,限定用户对数据的操作权限,把数据的操作限定在具有指定权限的用户范围内,以保证数据的安全。在标准SQL中定义了授权GRANT来实现权限管理
- 视图机制:通过建立用户视图,用户或应用程序只能通过视图来操作数据,保证了视图之外的数据的安全性
- 数据加密:对数据库中的数据进行加密,可以防止数据在存储和传输过程中失密
备份与恢复
分布式数据库
数据库优化
数据仓库与数据挖掘
商业智能系统(BI)主要包括数据预处理、数据仓库、数据分析和数据展现4个主要阶段
- 数据预处理包括数据的**抽取(extraction)、转换(transformation)、加载(load)**三个过程(ETL过程) 建立数据仓库则是处理海量数据的基础 数据分析是体现系统智能的关键,一般采用OLAP(联机分析处理)和数据挖掘 数据展现则主要保证系统分析结果的可视化
在采用数据仓库技术进行数据收集时,有时会遇到一些略微不一致但可以纠正的数据,这时需要采用数据清洗技术对这些不一致的数据进行处理和纠正
数据仓库4个特点
- 面向主题:操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关
- 集成性:面向事务处理的操作型数据库通常与某些特定的应用相关,而数据仓库中的数据是在对原有分散的数据库数据进行抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息
- 相对稳定性:操作型数据库中的数据通常需要实时更新,数据根据需要及时发生变化。数据仓库的数据主要提供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新
- 反映历史变化:操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息、可以对企业的发展历程和未来趋势做出定量分析和预取
联邦数据库
反规范化
对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询速度。因此,有时为了提高某些查询或者应用的性能而破坏规范规则,即反规范化。主要方法包括:
- 增加冗余列
- 增加派生列
- 重新组表
- 分表,水平分割/垂直分割
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/290607.html