软件设计师——Week 3

2018-09-25  Tuesday:

 Chapter 7  数据库技术基础

7.1 基本概念

1、数据库系统(DBS):数据库(DB)、硬件、软件、人员(DBA)

2、数据库管理系统(DBMS)的功能:

  • 数据定义(DDL):对数据库的结构进行定义,包括外模式、模式、内模式
  • 数据库操作(DML):检索、插入、修改、删除
  • 数据库运行管理:日志的组织管理、事务管理、自动恢复
  • 数据的组织、存储、管理:
  • 数据库的建立和维护

3、DBMS分为:关系型数据库系统、面向对象的数据库系统、对象关系数据库系统

4、数据库系统的体系结构:

  • 集中式数据库系统
  • 客户端/服务器体系结构
  • 并行数据库系统
  • 分布式数据库系统

6、三级模式结构(三级模式和两级映像)

软件设计师——Week 3_第1张图片

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、并、差、广义笛卡儿积、投影、选择

下面的运算结果,可以很清楚的得到结果

软件设计师——Week 3_第2张图片

7.3.3 扩展的关系代数运算

1、交

2、连接(\theta连接、等值连接、自然连接)

下面展示的是自然连接

 

软件设计师——Week 3_第3张图片

3、除法的解释

软件设计师——Week 3_第4张图片

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、二叉树:

软件设计师——Week 3_第5张图片

3、二叉树的遍历:

  • 先序遍历:根节点-左子树-右子树
  • 中序遍历:根节点的左子树-根节点-右子树
  • 后序遍历:左子树-右子树-根节点

软件设计师——Week 3_第6张图片

4、线索二叉树、哈夫曼编码、树和森林

8.4 图

1、图的遍历:深度优先搜索、广度优先搜索

8.5 查找

1、查找的方法:顺序查找、折半查找、分块查找(索引顺序查找)、

2、动态查找表:二叉排序树、平衡二叉树、B_树

3、哈希表

8.6 排序

1、插入排序、冒泡排序、简单排序、希尔排序、快速排序、堆排序、归并排序、基数排序

软件设计师——Week 3_第7张图片

 

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、数据库设计的步骤:用户需求分析、概念设计、逻辑设计、需求设计

 

 

 

第一遍 终于乱七八糟的过完了,,,下一阶段就是开始做题,然后进行 题目向书本的过滤了~~

 

你可能感兴趣的:(softwaredesign)