2018-09-25 Tuesday:
Chapter 7 数据库技术基础
7.1 基本概念
1、数据库系统(DBS):数据库(DB)、硬件、软件、人员(DBA)
2、数据库管理系统(DBMS)的功能:
- 数据定义(DDL):对数据库的结构进行定义,包括外模式、模式、内模式
- 数据库操作(DML):检索、插入、修改、删除
- 数据库运行管理:日志的组织管理、事务管理、自动恢复
- 数据的组织、存储、管理:
- 数据库的建立和维护
3、DBMS分为:关系型数据库系统、面向对象的数据库系统、对象关系数据库系统
4、数据库系统的体系结构:
- 集中式数据库系统
- 客户端/服务器体系结构
- 并行数据库系统
- 分布式数据库系统
6、三级模式结构(三级模式和两级映像)
7、大数据
- 大量化(Volume)
- 多样化(Variety)
- 价值密度低(Value)
- 快速化(Velocity)
7.2 数据模型
1、概念数据模型:现实世界到信息世界的第一抽象E-R模型
2、基本数据模型:现实世界的数据特征的抽象,层次模型、网状模型、关系模型、面向对象模型
3、数据模型的三要素:数据结构(静态描述)、数据操作、数据的约束条件
4、E-R模型:实体、联系、属性、E-R方法
5、层次模型: 采用树型结构表示数据和数据间的联系
6、网状模型:采用网络结构表示数据与数据间的联系的数据模型
7、关系模型:实际上就是表格的形式
7.3 关系代数
7.3.1 关系数据库的基本概念
1、属性、域、笛卡儿积
2、关系:目与度、候选码、主码
3、主属性:包含再任何候选码中的称为主属性
4、外码:是另外的关系的码 称为外码
5、全码:关系模型的所有的属性组是这个关系模型的候选码----全码
6、关系的三种类型:基本关系、查询表、视图表
7、关系数据库模式
8、完整性约束:实体完整性、参照完整性、用户定义完整性
7.3.2 五种基本关系代数运算
1、并、差、广义笛卡儿积、投影、选择
下面的运算结果,可以很清楚的得到结果
7.3.3 扩展的关系代数运算
1、交
2、连接(连接、等值连接、自然连接)
下面展示的是自然连接
3、除法的解释
4、广义投影:在投影的过程中可以进行一系列的算术的运算
5、外连接 (如果存在没有的信息的话,就直接写入空值,这样的防止能够比较少的丢失信息)
(1)左外连接
(2)右外连接
(3)全外连接
7.4 关系数据库SQL语音简介
- 数据查询:SELECT
- 数据定义:CREATE、DROP、ALTER
- 数据操纵:INSERT、UPDATE、DELETE
- 数据控制:GRANT、REVORK
7.5 关系数据库的规范化
1、函数依赖
2、规范化
3、模式分解及分解应具有的特性
7.6 数据库的控制功能
7.6.1 事务管理
1、BEGIN TRANSACTION:事务开始
2、COMMIT:事务提交
3、ROLLBACK:事务回滚
4、ACID:atomicity 原子性 consistency一致性 isolation隔离性 durability 持久性
7.6.2 数据库的备份与回复
1、故障类型:内部故障、系统故障、介质故障、计算机病毒
2、备份方法:静态存储和动态存储、海量存储和增量存储、日志文件
3、恢复的3步骤:反向扫描日志、对事物的更新执行逆操作、继续反向扫描日志文件
4、数据库镜像:复制数据会降低系统的运行效率
7.6.3 并发控制
1、下面就是并发操作带来数据的不一致性问题:丢失更新、不可重复读、读脏数据
2、并发控制技术:
(1)封锁:排它锁(只允许加在书对象上的失误进行读取和修改,其他的事物都不能加X锁)、共享锁 (共享锁还加在上面的时候,不能对这个数据对象进行修改)
(2)三级封锁协议:一级封锁协议、二级封锁协议、三级封锁协议
(3)活锁与死锁:活锁:一个事务的封锁请求一直都没有得到响应,所谓死锁就是指事务分别清酒对方封锁对方已经封锁的数据,导致了长期等待而无法进行
(4)并发调度的可串行性
(5)两段封锁协议:
(6)封锁粒度:封锁对象的大小称为封锁的粒度
Chapter 8 数据结构
8.1 线性结构
8.1.1 线性表
1、两种存储结构:顺序存储、链式存储
2、顺序存储:逻辑上相邻物理的存储位置上也是相邻的
3、链式存储:地址上并不要求是连续的
8.1.2 栈和队列
1、栈:LIFO、顺序存储(容量有限)、链式存储
2、队列:FIFO、循环队列
8.1.3 串
是一种特殊的线性表,其数据元素是字符
1、空串、空格串(空格也要计算在内)、子串、串相等(长度相等,并且对应的字符也相等)、串比较(相当于字符串比较)
2、串的基本操作:顺序存储、链式存储
3、串的模式匹配
- 朴素的模式匹配算法:福斯算法
- 改进的模式匹配算法:KMP
8.2 数据、矩阵、广义表
1、数组:数组的顺序存储(一般定义了数据元素的个数,和元素之间的关系,也就不再发生改变)
2、矩阵:特殊矩阵、稀疏矩阵
8.2.3 广义表
8.3 树
1、双亲、节点的度、叶子节点、内部节点、节点的层次、树的高度
2、二叉树:
3、二叉树的遍历:
- 先序遍历:根节点-左子树-右子树
- 中序遍历:根节点的左子树-根节点-右子树
- 后序遍历:左子树-右子树-根节点
4、线索二叉树、哈夫曼编码、树和森林
8.4 图
1、图的遍历:深度优先搜索、广度优先搜索
8.5 查找
1、查找的方法:顺序查找、折半查找、分块查找(索引顺序查找)、
2、动态查找表:二叉排序树、平衡二叉树、B_树
3、哈希表
8.6 排序
1、插入排序、冒泡排序、简单排序、希尔排序、快速排序、堆排序、归并排序、基数排序
Chapter 9 算法设计与分析
9.1 算法设计与分析的基本概念
1、五个重要的特性:有穷性、确定性、可行性、输入、输出
2、算法分析:正确性、可靠性、简单性、易理解性-----------时间复杂度、空间复杂度
3、算法的表示方法:自然语言、流程图、程序设计语言、伪代码
9.2 算法分析基础
1、时间复杂度
2、渐进符号
3、递归式
9.3 分治法
1、分治法的思想就是:将大问题进行分解、求解、合并
9.4 动态规划法
9.5 贪心法
9.6回溯法
9.7 其他算法
1、分支限界法
2、概率算法
3、近似算法
Chapter 10 面向对象技术
1、面向对象=对象+分类+集成+消息通讯
- 对象:属性、行为
- 消息:消息传递机制
- 类:对象是类的实例
- 继承:父类子类之间共享数据和方法的机制
- 多态:不同的对象收到同样的消息,可以产生不同的动作,这就是多态
- 动态绑定:就是一个把过程调用和响应调用所执行的代码加以结合的过程
2、面向对象的分析
- 认定对象
- 组织对象
- 对象间的相互作用
3、面向对象的程序设计
- 类:我们首先是应该对对象进行抽象得到类,但是当设计的时候,首先面对的就是类
- 继承和类层次结构:考虑的是实体特征之间的关联的相似性部分
- 对象、消息传递和方法:
- 对象自身的引用:
- 重置
- 类属类:可以看作是类的模板
- 无实例的类:由于存在继承的关系,所以在较高层次下,是存在抽象的类,也就是没有实例
4、面向对象的测试
一般来说分以下四个层次进行测试:
- 算法层
- 类层
- 模板层
- 系统层
10.2 UML
1、结构事物、行为实物、分组事物、注释事物
2、关系:依赖、关联、繁华、实现
3、图:
- 类图:对象、接口‘协作和他们之间的关系
- 对象图:
- 用例图:
- 交互图
- 状态图:
- 活动图
- 构件图
- 组合结构图
- 部署图
- 包图
4、设计模式
- 要素:模式名称、问题、解决方案、效果
Chapter 11 标准化和软件知识产权基础
Chapter 12 软件系统分析与设计
几项最主要的点:
- 结构化分析与设计
- 数据库分析与设计
- 面向对象分析与设计
- 算法设计与C程序实现
- 面向对象的程序设计与实现
12.1 结构化分析与设计
12.2数据库分许与设计
1、数据库设计的步骤:用户需求分析、概念设计、逻辑设计、需求设计
第一遍 终于乱七八糟的过完了,,,下一阶段就是开始做题,然后进行 题目向书本的过滤了~~