数据库系统结构

三级模式

外模式:有多少个用户就有多少个 外部视图 用户看到的或使用到的那部分数据
概念模式:全局只有一个 全体数据的逻辑结构
内模式:内部视图 存储记录的类型、存储域
两级映像: 外模式映像 内模式映像

独立性

逻辑独立性: 模式改变时,数据库管理员对各个外模式/模式的映像做相应的改编,可以使外模式保持不变
物理独立性: 存储结构改变了,由数据库管理员对模式/内模式映像做相应的改变可以使模式保持不变

聚簇索引

主文件基于非主码的字段排序存储

数据模型

概念模型

E-R模型(Entity-Relation 实体联系)

基本数据模型

用于DBMS实现
1、层次模型
2、网状模型
3、关系模型
4、面向对象模型
数据结构\数据操作\数据约束条件
1、实体完整性
2、参照完整性
3、用户定义完整性

关系型数据库

概念

1、关系: 二维表
2、元组: 一行数据 记录
3、属性: 一列 字段
4、域: 取值范围
5、关键字: 主键 一列或者多列组成
6、关系模式: 对关系的描述

关系代数

集合运算符

并、差、交、笛卡尔积

专门的关系运算符

选择(选择行)、投影(选择列)、连接

自然连接

会去除重复属性列

等值连接

包含重复属性列

外连接

建立在自然连接之上,包含左外、右外、完全外连接

函数依赖

概念

设R(U)是在属性U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中的任意两个元组在X上的属性值相等,那么在Y上的属性值也相等,则称“X函数确定Y”或“Y函数依赖于X”,记做X->Y。X称为这个函数依赖的决定属性组,也称为决定因素

依赖分类

当X->Y且Y⊈X则称X->Y是非平凡函数依赖
当X->Y且Y⊆X则称X->Y是平凡函数依赖
完全函数依赖、部分函数依赖、传递依赖

Armstrong公理

A1自反律: Y⊆X⊆U 则 X->Y
A2增广律:若X->Y为F所蕴含,且Z⊆U,则XZ->YZ为F所蕴含
A3传递律: 若X->Y,Y->Z为F所蕴含则X->Z为F所蕴含
合并规则: 若X->Y, X->Z则X->YZ
伪传递规则: 若X->Y,WY->Z,则XW->Z
分解规则: 若X->Y, Z⊆Y则X->Z

超键

主键+额外属性

主键

能确定唯一的一组元组

候选键

不含有多余属性的超键

外键

在当前关系模式不属于主键在其他关系模式中属于主键

主属性

包含于任何一个主键中

非主属性

与主属性相反

全码

该关系模式只有一个包含了全部属性的主键

规范化

关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式的规范化程度

1NF

关系模式R的每一个分量是不可再分的数据项
缺陷: 冗余较大、修改异常、插入异常、删除异常

2NF

关系模式R属于1NF,且每一个非主属性完全依赖主键

3NF

当2NF消除了非主属性对码的传递函数依赖

BCNF

每个依赖的决定因素必定包含某个候选键
缺陷: 插入异常、删除异常、数据冗余大、修改复杂

无损连接判断

超过两个关系用表格法,否则先求交集,然后根据交集看能否推出其余属性

数据库设计&需求分析

规划阶段: 建立数据库的必要性、可行性
需求分析: 收集需求,理解需求,产生需求规格说明书、数据字典
概念设计: 建立概念模型,E-R图
逻辑设计: 建立逻辑模型,关系模式
物理设计: 建立物理模型,依赖DBMS

需求分析目标

通过调查研究,了解用户的数据和处理要求,并按照一定格式整理成需求规格说明书

方法

充分了解原系统(手工、计算机)工作概况
详细调查待开发系统的组织/部门/企业等
明确用户的各种需求
确定新系统的功能(注意今后的扩充和改变)

重点

数据和处理
1、数据库需要哪些数据
2、数据处理要求
3、安全性与完整性要求

数据字典内容

数据项、数据流、数据存储、数据加工(待处理过程)
加工描述方法: 结构化语言、判定书、判定表

概念设计

在需求说明书的基础上,按照特定的方法将它们抽象为一个不依赖于任何DBMS的数据模型,即概念模型

局部E-R模式设计

确定局部视图范围、识别实体及其标识、确定实体间联系、分配实体及联系属性

冲突

属性冲突、结构冲突、同一实体在不同ER图中属性个数和排列次序不同、同名异义、异名同义

逻辑设计

E-R图的实体转换为关系
E-R图的属性转换为关系的属性
E-R图的关键字转换为关系的关键字

复合属性转换

1、将每个分量属性作为复合属性所在实体的属性
2、将复合属性本身作为所在实体的属性

多值属性

1、将多值属性与所在实体的主键一起组成一个新的关系
2、将多值属性提升为一个实体,通常为弱实体

派生属性

可由其他属性计算得到,一般不转换派生属性

BLOB属性

容量比较大,将BLOB属性与关系的主键独立为一个关系模式

联系

1:1联系: 转换为一个独立的关系模式或者与任意一端对应的关系模式合并
1:n联系: 转换为一个独立的关系模式或与n端对应的关系模式合并
n:m联系: 转换为一个独立的关系模式
多元联系: 转换为一个独立的关系模式

物理设计

1、设计存储记录结构
2、确定数据存储安排
3、设计访问方法
4、进行完整性和安全性分析与设计
5、数据库程序设计

反规范化

1、增加冗余列: 用来避免连接操作
2、增加派生列: 在查询时减少计算量,从而加快查询速度
3、重新组表: 如果许多用户需要查看两个表连接出来的数据结果,则把这 两个表重新组成一个表来减少连接而提高性能
4、分割表:
(1)水平分割: 根据一列或多列数据的值把数据行放到独立的表中,适用场景: 1)表很大 2)表中数据本来就有独立性 3)需要把数据存放到多个介质上
(2)垂直分割: 把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中,可以使得数据行变小,减少I/O次数 缺点:要管理冗余列,查询所有数据需要连接操作

事务管理

通常以BEGIN TRANSACTION开始 以COMMIT或ROLLBACK结束

ACID

原子性(Atomicity): 要么全做要么全不做
一致性(Consistency): 从一个一致性状态变到另一个一致性状态
隔离性(Isolation): 不能被其他事务干扰
持续性(Durability): 一旦提交,改变就是永久性的。

丢失更新

T1事务更新了数据但是T2没有同步

读脏数据

当T1将数据写回后T2读了数据后T1执行了ROLLBACK而T2没有同步

不可重复读

当T1读取数据后T2更改数据并写回,T1再执行同样操作得不到原来的数据

排他型锁(X锁)

X锁只允许一个事务独锁某个数据,具有排他性

共享锁(S锁)

允许并发读,但不允许修改,即允许其他事务加S锁但不允许在所有S锁解除之前加X锁

一级封锁

修改数据之前加X锁,直到事务结束才释放
防止丢失修改

二级封锁

一级封锁协议+读取数据前加S锁,读完后释放S锁
防止丢失修改,还可以防止读脏数据

三级封锁

一级封锁协议+读取数据前加S锁,直到事务结束才释放
防止丢失修改,还可防止读脏数据与防止数据重复读

两段锁协议

分为封锁阶段(扩展)和释放阶段(收缩)。封锁阶段只能加锁、释放阶段只能解锁
可串行化,可能发生死锁

分布式数据库

特点

1、数据的分布性
2、统一性
3、透明性:
(1)分片透明性是分布透明性的最高层次
(2)位置透明性是分布透明性的下一层次
(3)局部数据模型(逻辑透明)

优点(和集中性数据库比)

1、坚固性好
2、可扩充性好
3、可改善性能
4、自治性好

问题

1、异构数据库的集成问题
2、如果数据库设计得不好,数据分布不合理,以致远距离访问过多,尤其是分布连接操作过多,不但不能改善性能,反而会使性能降低。

故障恢复

故障

1、事务故障
2、系统故障
3、介质故障
4、计算机病毒

恢复

1、事务故障恢复: 系统去做
(1)反向扫描日志,查找该事务的更新操作
(2)对该事务的更新操作执行逆操作
(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理
(4)如此处理下去,直至读到此事务的开始标记,事务故障恢复完毕
2、系统故障恢复
(1)正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做(Redo)队列,同时找出故障发生时尚未完成的事务,将其事务标识记入撤销队列(Undo)队列。
(2)对撤销队列中的各个事务进行撤销处理: 反向扫描日志文件,对每个Undo事务的更新操作执行逆操作
(3)对重做队列中的各个事务进行重做处理: 正向扫描日志文件,对每个重做事务重新执行日志文件登记的操作。
3、介质故障恢复
(1)装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态
(2)从故障点开始反向读日志文件,找出已提交事务标识将其记入重做队列
(3)从起始点开始正向阅读日志文件,根据重做队列中的记录,重做所有已完成事务,将数据库恢复至故障前某一时刻的一致状态
4、具有检查点的恢复技术。
检查点记录的内容可包括:
①建立检查点时刻所有正在执行的事务清单
②这些事务最近一个日志记录的地址
检查点恢复步骤如下:
(1)从重新开始的文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录
(2)由该检查点记录得到检查点建立时所有正在执行的事务清单队列(A)
(3)建立重做队列® 和撤销队列(U) 把A队放入U队中,R队为空

备份

冷备份、热备份
完全、增量、差异

数据仓库

面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策

实现方法

1、自顶向下法
2、自底向上法
3、联合方法(混合法)

数据挖掘

寻找数据之间的规律

流程

1、了解用户需求
2、建立数据挖掘数据库
3、分析数据
4、调整数据
5、模型化
6、评价和解释

方式

1、关联分析
2、序列分析
3、分类分析
4、聚类分析
5、预测
6、时间序列

NOSQL数据库

关系型数据库的缺点

1、不满足高并发读写需求
2、不满足海量数据的高效率读写
3、不满足高扩展性和可用性

集群缺陷

1、复杂性:集群配置、部署、管理
2、延迟性:主数据库压力较大时,会产生较大的延迟。主备切换时需要人工参与
3、扩容性:集群中增加新机器时,对整个数据重新分区,非常复杂。

NoSQL特点

1、灵活的可扩展性
2、灵活的数据模型
3、与云计算结合

CAP理论

C(Consistency)一致性: 更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,与ACID的C完全不同
A(Availability)可用性: 服务一直可用,而且是正常响应时间
P(Partition tolerance)分区容错性: 分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务
CA: 优先保证一致性和可用性,放弃分区容错。缺点: 不再是分布式系统
CP: 优先保证一致性和分区容错性,放弃可用性。缺点: 牺牲用户体验
AP: 优先保证可用性和分区容错性,放弃一致性。缺点: 全局数据不一致。

BASE理论

BasicallyAvailable(基本可用)
Soft state(软状态)
Eventuallyconsistent(最终一致性)

键值数据库(Key-value)

键可以使一个字符串对象,值可以是整形、字符型、数组、列表、集合等。
相关产品: Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
优点: 扩展性好、灵活性好、大量写操作时性能高
缺点: 无法存储结构化信息,条件查询效率低

列族数据库

相关产品: BigTable、Hbase、Cassandra、HadoopDB、GreenPlum、PNUTS
HBASE:通过列族、列限定符、行键、时间戳获取唯一一条数据
优点: 查找速度快、可扩展性强、容易进行分布式扩展、复杂性低
缺点: 功能较少、大都不支持强事务一致性

文档数据库

MongoDB、CouchDB、Terrastore、ThruDB、RavenDB、SisoDB、CloudKit、Perserver、Jackrabbit
优点: 水平扩展性良好,并发性良好,灵活性高,复杂性低,数据结构灵活,既可以根据键来构建索引,也可以根据内容构建索引
缺点: 缺乏统一的查询语法

图形数据库

Neo4J、OrientDB、InfoGrid、Infinite Graph、GraphDB
数据模型: 图结构
典型应用: 专门用于处理具有高度相关联关系的数据,比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题
优点: 灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱
缺点: 复杂性高,只能支持一定的数据规模

系统架构师(软考)----数据库基础相关推荐

  1. 歪理邪说理论之2012年系统架构师软考成绩

    歪理邪说理论之2012年系统架构师软考成绩 2012年下半年计算机技术与软件专业技术资格(水平)考试成绩于今天元月11日星期五下午公布了. 成绩查询网址: http://www.rkb.gov.cn/ ...

  2. 【转载】我是如何通过高级系统架构师软考的?(值得参考一下)

    最近打算考个软考的架构师,所以参考一下.如下为转载文章: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今年的系 ...

  3. 2015年系统架构师软考案例分析考点

    1.软件的质量属性 质量属性效用包括:性能.安全性.可用性.可修改性. 2.系统架构风险.敏感点和权衡点 2.1 系统架构风险:架构设计中潜在的.存在问题的架构决策所带来的隐患. 2.2 系统架构敏感 ...

  4. 系统架构师(软考)------网络互联模型与常见的网络协议

    OSI/RM七层模型 口诀:巫(物理层)术(数据链路层)忘(网络层)传(传输层)会(会话层)飚(表现层)鹰(应用层) 物理层 二进制传输 RS232 V.35 RJ-45 FDDI 数据链路层 两个子 ...

  5. 软考笔记(一)高级系统架构师/分析师:计算机系统基础

    目录 软考官网 报名通道 软考架构师笔记(一):计算机系统基础 软考架构师笔记(二):计算机网络基础与信息安全 软考架构师笔记(三):操作系统基础 软考架构师笔记(四):企业信息化与系统规划 软考架构 ...

  6. 软考笔记(二)高级系统架构师/分析师:计算机网络基础与信息安全

    目录 软考官网 报名通道 软考架构师笔记(一):计算机系统基础 软考架构师笔记(二):计算机网络基础与信息安全 软考架构师笔记(三):操作系统基础 软考架构师笔记(四):企业信息化与系统规划 软考架构 ...

  7. 最新JavaEE系统架构师学习路线之基础篇

    大纲: 第1阶段(Java程序员) - Java语言基础 第2阶段(Java初级软件工程师) - JSP.Servlet.HTML.CSS.JS.Bootstrap.XML.AJAX.MySQL.SQ ...

  8. JavaEE系统架构师学习路线之基础篇

    大纲: 第1阶段(Java程序员) - Java语言基础 第2阶段(Java初级软件工程师) - JSP.Servlet.HTML.CSS.JS.Bootstrap.XML.AJAX.MySQL.SQ ...

  9. 2019最新《JavaEE系统架构师学习路线之基础篇》

    下载地址:百度网盘 大纲: 第1阶段(Java程序员) - Java语言基础 第2阶段(Java初级软件工程师) - JSP.Servlet.HTML.CSS.JS.Bootstrap.XML.AJA ...

最新文章

  1. 解题报告:luogu P2272 [ZJOI2007]最大半连通子图(tarjan缩点、递推DP、hash、set判重)
  2. Android获取当前位置的三种方式及其使用方法
  3. 单步调试学习NgRx createSelector 工具函数的使用方式
  4. IOS之storyBoard的storyboard_reference的使用
  5. 为什么不敢和别人竞争_内心很脆弱,不敢和人竞争。该怎么办?
  6. 基于SignalR的站点有连接数限制问题及解决方案
  7. mybatis开启二级缓存和懒加载,类型别名,类都简称
  8. 3.OSPF协议及链路状态算法
  9. C语言 打印数组为什么要用循环
  10. 工控行业学什么编程语言比较好_机器人学中最流行的10种编程语言
  11. iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码
  12. 2021世界燕窝展|上海滋补品展谈孕期燕窝六问
  13. java报销系统的参考文献_java毕业设计_springboot框架的企业报销管理与实现
  14. 使用坚果云收件箱,更加方便高效地收文件
  15. 在JS中 onclick=return false; return false是什么意思
  16. 融云server API 接口
  17. EST时间和EDT时间
  18. (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  19. java actor akka_Akka框架简介
  20. 微信小游戏制作坦克大战(九)切换场景,游戏重新开始

热门文章

  1. Objective-C语言简介
  2. Windows Server 2008简体中文语言包体验
  3. 人工智能时代下机器的未来
  4. 参数不匹配; <匿名OnClickListener>无法转换为Context
  5. JS DOM innerHTML outerHTML - Kaiqisan
  6. 2017计算机二级下半年,下半年全国计算机二级office题库及答案
  7. 机器学习——K近邻算法及乳腺癌检测分类
  8. POWERBI|行级别权限
  9. google play支付提示“此版本的应用程序未配置为通过Google Play结算。有关详情,请访问帮助中心。”
  10. Java多态的理解和应用