ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

软考-后篇

2021-06-18 02:02:01  阅读:679  来源: 互联网

标签:关系 结点 依赖 对象 软考 模式 后篇 二叉树


数据库

三级模式-两级映射

image-20210510153055884

概念级数据库:E-R图

物理级数据库:Mysql数据库等

数据库设计过程

image-20210511141243509

E-R模型

矩形 : 实体 如:学生 课程 老师

椭圆 : 属性 如:学号 姓名 年龄

菱形 : 联系 如:选课

E-R转关系模式

1-1: 可以转换成两个关系模式(联系归属到实体A或者B中),或者三个关系模式

1-n: 可以转换成两个关系模式(联系归属到实体B中),或者三个关系模式

m-n:转换成实体数+联系数个关系模式,如图中为4个

image-20210511142714022

关系代数

对关系中的记录进行运算,一般以选择题的形式出现

  1. 并 : 两个关系中出现的所有记录
  2. 交 : 共同拥有的记录
  3. 差 : 被减数所独有的记录
  4. 笛卡尔积 : 关系1中的每条记录与关系2中的记录进行组合,一共得到关系1*关系2条记录

image-20210511143512626

  1. 投影 : 选择列 ΠSname,Sdept 就是选择了这两列数据
  2. 选择 : 选择行 σNo0001 选择了这一行,也可以直接写数字选择对应行
  3. 连接 : 连接两个表

image-20210511143956207

函数依赖

由X可以确定唯一的Y,这称之为X决定Y,或者Y函数依赖于X

在数据库中,学号决定姓名,姓名函数依赖于学号,因为学号是唯一的,而姓名可能重名

部份依赖

设置学号和课程号为主键,然后查找姓名,而通过学号已经可以查找到学生姓名,此时则称为部分依赖

传递依赖

image-20210511145243979

此时B不能确定A,才能传递函数依赖

非规范化的错误

  1. 数据冗余 : 如表中有一个字段为专业编码,一个字段为专业名称,专业名称与专业编码意义相同
  2. 更新异常 : 更改一个字段中所有的信息系,如果漏到一两个没改,则会发生更新异常

image-20210511145841709

唯一标识元组 : 超键 候选键

超键与候选键区别在于 : 候选键消除了多余属性

如(学号,姓名)->姓别,(学号,姓名)可以称为超键,学号可以称为候选键,因为有没有姓名都可以通过学号获取性别

主键 : 将一个表中的某个字段设置为主键,有且只有一个

外键 : 其他关系中的主键,便于关联查询

求候选键

image-20210511150630516

image-20210511150801167

image-20210511150746877

入度即为箭头指向本身的数量

如果没有入度为0,则寻找中间结点,有入度也有出度的键

范式

image-20210511151339047

主属性 : 候选键中的属性

image-20210511153210701

三个都是候选键

第一范式 : 属性值都是不可分的原子值

image-20210511151702235

高级职称人数还可细分成教授和副教授,此时去掉高级职称人数,即可达到第一范式

第二范式 : 不存在部分函数依赖

image-20210511151921275

联合主键为(SNO,CNO),通过CNO(课程编码)可以查到CREDIT(学分),存在部分依赖,不满足第二范式

导致的问题 : 当没有学生选择这门课程时,因为学号为0,无法填入学分数据,当想删除部分毕业学生时,出现学分数据也被删除的情况,这是不必要的

修改方式 : 添加一个新的表字段为CNO,CREDIT,然后将CREDIT从原来的表中删去

第三范式 : 将外键取出到关系表,消除传递依赖

image-20210511152838261

由DNO可以查到DNAME和LOCATION,存在传递依赖

修改方式 : 新建一个关系表 DNO DNAME和LOCATION,将原表的DNAME和LOCATION删去

BC范式

所有的函数依赖中,左边部分为候选键

模式分解

保留函数依赖分解

如R(A,B,C) A->B B->C 如果分解成R1(A,B) R2(B,C),保留了所有依赖

​ 如果分解成R1(A,B) R3(A,C),则没有全部保留,反而多了R3这个冗余依赖

无损分解

判断依据 : 是否能还原

无算联接分解 : 通过自然联接和投影等可以还原

image-20210511170957135

列表法

公式法

并发控制-添加封锁协议

image-20210513150710071

完整性约束

  • 实体完整性约束 : 主键不能为空
  • 参照完整性约束 : 填入数据需要参照主键,会有错误提示,允许为空
  • 用户自定义完整性 : 根据用户需求自定义完整约束

触发器

复杂的约束通过编写触发器来解决

数据库安全

image-20210513151345694

数据备份

image-20210513151613467

image-20210513151959739

数据库故障

image-20210513152415981

数据仓库与数据挖掘

image-20210513152559096

数据仓库 : 从数据源(数据库,日志等等)中抽取出某个主题(如:每月流水),然后进行存储分析

数据集市 : 部门级的数据仓库

OLAP服务器 : 联机分析处理器

image-20210513153052007

反规范化

image-20210513153513737

image-20210513153525888

大数据

对海量数据进行处理的技术

数据要求 : 数据量极大 速度快 多样性 具有价值

image-20210513154055439

image-20210513154138730

计算机网络

OSI/RM七层模型

image-20210513154302621

注意点 : 广播只能在局域网中传递,而局域网一般是1.2层

网络技术标准与协议

image-20210513155438886

TCP 三次握手

image-20210513155843435

DHCP协议

动态分配IP地址

image-20210513160141072

DNS协议

域名解析协议

image-20210513160513696

image-20210513160946897

答案选A ,根域名服务器在接受讯问后,直接返回结果,中介域名服务器被询问后去授权域名服务器中查询

计算机网络分类

按分布范围分 : 局域网 城域网 广域网 因特网

按拓扑结构分 : 总线型 星形 环形

image-20210513161238302

办公室一般使用星形,中心节点为交换机

网络规划与设计

image-20210513161457742

分层设计

image-20210513161940958

子网划分

子网掩码 : 将ip地址转化成2进制,如果是B类地址,则前面两个字节(16位,2B)置为1,然后划分多少个子网则将对应位数置为1,如27个子网(32>27),所以将网络号后5位置为1,再转化成十进制,即为子网掩码

image-20210513164648811

C类子网一共有24个网络号,现在将20位作为主机号,所以将4位拿出来划分,2的4次方为16

特殊含义的IP地址

image-20210520165806790

网络接入技术

image-20210520170913112

信息安全

信息系统安全属性

image-20210520171128038

对称加密技术

加密解密密钥相同

如压缩包加密

image-20210520172043114

image-20210520172100546

非对称加密技术

公钥加密私钥解密 或者 私钥加密公钥解密

image-20210520172021968

缺陷 : 加密速度慢

信息摘要

一段信息的特征信息

单向散列函数(单向hash函数),固定长度的散列值

信息可以得出摘要,摘要不能还原成信息

image-20210520174052514

数字签名

image-20210520174453577

如AB传递数据,此时A的数字签名应当用A的私钥加密,因为使用A的公钥可以解密,证明是A发出来的

数字签名没有保密职能,公钥谁都有

对摘要进行数字签名

数字信封与PGP

image-20210520174928848

PGP

image-20210520175029714

练习题

image-20210520201418345

网络安全

image-20210520201754844

防火墙

image-20210520204422864

网络攻击

image-20210520204100184

数据结构与算法

数组

数组偏移量计算

一维 : n-m

三维 : a mnk aijo 偏移量 iXnk+jXk+o

稀疏数组

第一行

m n k 代表行 列 个数

h i j a[h] [i]位置的数维 j

数据结构

线性表

顺序表

image-20210521001146416

连续的存储空间

链表

image-20210521001217260

指针与数据,指针存放存储空间地址,上图为循环列表

线性存储与链式存储的性能对比

image-20210521001443704

队列(FIFO)

栈(FILO)

双端队列

数据可从两端输入,但只有一端输出

广义表

image-20210521002444863

长度 : 元素的个数(子表当成元素计算)

深度 : 括号层数

head操作 : 第一个表元素

tail操作 : 除了第一个表元素以外的所有表元素

结点的度

结点所拥有的子结点数量

树的度

结点度数最高的数

叶子节点

没有子结点的结点

层次

树的层数

二叉树

image-20210521003206606

完全二叉树 : 从左边开始计算,左子节点排满

image-20210521003345136

二叉树遍历

前序遍历(根左右)

中序遍历(左根右)

后续遍历(左右根)

树与二叉树转换

image-20210521004640974

查找二叉树

左结点都比根节点小,右结点都比根结点大

最优二叉树(哈夫曼树)

树的路径长度 : 连接结点的线段数

权 : 末尾结点的值

带权路径长度 : 权乘以路径长度

树的代价 : 所有带权路径之和

**构建哈夫曼树 **: 不断取权值最小的两个值进行构建子树

线索二叉树

将叶子结点的左节点指向前驱结点,右结点指向后继结点

平衡二叉树

任何结点的左右子树深度为0,1,-1 左结点减右结点(有值为1,为0)

image-20210521105326055

​ 无向图 有向图

完全图

image-20210521105419669

图的存储-邻接矩阵

image-20210521110200302

图的存储-邻接表

image-20210521110345674

拓扑排序

image-20210521110900721

最小生成树

普里姆算法 : 选取一个初始结点,设为红点集,找到距离最短的蓝点集的结点,将其纳入红点集

克鲁斯凯尔算法 : 按顺序依次选择最小的线段(可选择多段),不形成环路即可

算法

image-20210521111724288

时间复杂度

散列表

HASH

排序

image-20210521182537718

image-20210522160618221

直接插入排序

在已经排好序的数组中,插入新的数,速度较慢

希尔排序

image-20210522153314265

image-20210522153556922

原理 : 当直接插入排序的数较少时,速度较快

直接选择排序

image-20210522154208395

堆排序

image-20210522154357981

冒泡排序

快速排序

image-20210522155908281

选择一个基准,将比基准小的值放在前面,比基准大的值放在后面,再对分类号的两部分值进行快速排序,重复此步骤可以获得排序好的数组

基数排序

根据个位十位百位千位的依次进行多次排序 ,如123,146 中123的个位为3,所以放在新数组的第三个,146放在第6个,全部排好后,进行收集(去掉空格)

编译原理

image-20210522165350439

表达式

image-20210522165704001

构建树,然后根据遍历方式不同,获得不同的表达式

函数调用

image-20210522165813301

程序语言的计算

image-20210522165948401

法律法规

image-20210522172057601

image-20210522172210796

image-20210522172551219

标准分类

image-20210522173550835

多媒体基础

媒体种类

image-20210524133047604

计算问题

image-20210524133226462

数据压缩

image-20210524135124245

软件工程

image-20210524135502932

image-20210524140840388

瀑布模型(SDLG)

image-20210524140743444

适用场景 :需求明确,二次开发,结构化模型代表

螺旋模型

image-20210524141526128

特征:由多个模型组合而成

适用场景:风险驱动模型

V模型

image-20210524141833839

特征:提前编写文档,提前写验收测试文档,测试贯穿始终

使用场景:

喷泉模型

img

特点:第一个面向对象的模型

RAD

特点:快速构建系统

构建组装模型

image-20210524142450484

特点:将软件开发过程中的各个功能,做成构件,存在构件库

优点:提高复用性,可靠性增加

敏捷开发方法

image-20210524143019348

信息系统开发方法

image-20210524151545944

结构化方法使用越来越少,因为流程固定且不灵活

结构化设计

image-20210524175918504

内聚耦合

image-20210524181511626

高内聚,低耦合

软件测试

image-20210524181651699

设计测试用例

image-20210524182502531

黑盒测试

不需要清楚程序模块内部结构,仅对接口进行测试

  • 边界值:略小于区间,略大于区间,左右端点,如0-150,边界值为-1,0,150,151
  • 等价类划分:每个可能性取一个值进行测试
  • 错误推测:根据经验对可能发生错误的地方进行测试
  • 因果图:

白盒测试

通过程序内部结构来设计测试用例

  • 语句覆盖:设计测试用例将所有语句执行一次(但会出现部分路径未测试到)
  • 判定覆盖:所有的判定(真假分支)进行覆盖测试
  • 条件覆盖:对每个条件的分支进行测试
  • 路径覆盖:最高级别测试,覆盖所有路径

测试阶段

image-20210524200217020

MaCabe复杂度

V(G)= m - n + 2

m:有向弧

n:节点数

系统的运行与维护

可维护性

  • 易(可)分析性:代码理解比较容易 代码维护
  • 易(可)改变性:代码修改难度应该较低
  • 稳定性
  • 易(可)测试性:修改后应该容易测试

维护类型

  • 改正性维护:修改bug
  • 适应性维护:如操作系统升级,然后软件运行出现问题,进行修改,或者适应数据
  • 完善性维护:在系统运行过程中,想要扩充功能和,改善性能
  • 预防性维护:现在不进行维护,可能将来会出现问题

软件过程改进-CMMI

CMM:软件成熟度模型

CMMI:从CMM继承改进而来

等级划分

一级:所有没有通过CMMI的软件

image-20210524235315929

系统开发基础

项目管理

时间管理

Gantt

不能清晰地描述任务间的依赖关系

  • 最短工期:最长的路径

image-20210525000411927

风险管理

损失和伤害的可能性

  • 风险曝光率 : 风险出现可能性概率*损失

面向对象(OOA)

image-20210525000845587

设计原则

image-20210525001507487

UML

image-20210525002402115

部署图:软件部署在硬件的哪个结点关系

用例图:小人操作

设计模式

image-20210525003142005

分类

image-20210525003540379

创建型模式
  • 抽象工厂模式:提供一个接口,可以创建一系列相关或者相互依赖的对象,无需指定对应的类
  • 构建器模式:如构建一个复杂的类,需要多个不同对象,可以将对象封装起来,再根据不同对象的需求创建对应的实例
  • 工厂方法模式:定义一个创建对象的接口,可以在运行的时候再由子类选择想要实例化的对象,延迟了子类实例化的过程
  • 原型模式:克隆模型,通过拷贝原型创建新的对象,可以提高效率,节约资源
  • 单例模式:保证一个类只有一个实例,如浏览器打开多个网页,但主窗口只有一个
结构型模式
  • 适配器模式:将一个类的接口转换成用户希望得到的接口,使不相容的接口可以协同工作 转换接口

  • 桥接模式:有时候一个功能的实现其继承树深度非常高,这个时候可以将其抽象与实现分离开,形成两个继承树,提高效率image-20210525004731563

  • 组合模式:将对象组合成树型结构,以此表示“部分-整体”的层次结构,特点为“树型目录结构

  • 装饰模式:动态地为一个对象添加一些额外的职责,如咖啡中加糖加奶加冰等,一层层叠加

  • 外观模式:定义一个高层接口,将子系统中的一系列接口进行一个统一的处理操作,让操作变简单

  • 享元模式:提供大量的对象共享的方法

  • 代理模式:为其他对象提供一种代理以控制对象的访问

行为型模式
  • 职责链模式:单个请求者,多个处理者,将接收者串联成一条链,以此判断是否能处理,能处理就返回给发送者消息,如财务管理中,500元部门经理可以批准,不必传到ceo

image-20210525005638217

  • 命令模式:将请求封装成对象,记录请求日志,支持撤销操作
  • 解释器模式:定义一种语言的文法表示,从而定义一个解释器,依靠解释器来解释语言中的句子
  • 迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,不需要暴露内部结构,类似集合
  • 中介者模式:用一个中间对象来封装对象间的交互,降低耦合
  • 备忘录模式:捕获对象中的内部状态并保存,从而可以在后续进行恢复
  • 观察者模式:定义对象中的以一种一对多关系,当一个对象的状态发生改变时,所有依赖与它的对象得到通知并自动更新,类似前端开发中改变数据,视图发生改变
  • 状态模式:允许一个对象内部状态改变时改变其行为,如将不同等级的会员折扣写成不同的类,用户改变等级时,折扣力度发生变化,特点:状态变成类
  • 策略模式:将算法封装起来,可以根据需求进行替换,活动方案替换改变灵活
  • 模板方法模式:定义算法骨架,使得子类可以根据需求改变某些步骤
  • 访问者模式:作用于对象中各个元素的操作,在不改变元素的前提下定义对于这些元素的一些新操作

数据流图(DFD)

基本概念

image-20210525231358144

数据字典

image-20210525232126105

数据流图平衡原则

父图与子图的平衡

顶层数据流图中的每个数据流都应该在子图中出现

子图内平衡

只有输入或者输出是不正确的

绘制错误

黑洞

奇迹

父子图不平衡

数据库设计

数据库设计过程

image-20210526001042996

实体间的联系

1:1

1:n

m:n

E-R图向关系模型的转换

UML图

用例图

image-20210527152954277

include:包含关系

extend:扩展关系

类图与对象图

image-20210527153606668

image-20210527153718745

顺序图

image-20210527153827160

特点:按时间顺序执行

活动图

image-20210527154105468

状态图

image-20210527154322460

通信图

image-20210527154700523

顺序图的另一种表达,但是时间没有强调得那么准确

数据结构问题

分治法

image-20210527165153881

分治法常见用法:递归查找,二分查找

回溯法

image-20210527165921337

贪心法

image-20210527170312601

动态规划法

image-20210527171822089

特点:查表

标签:关系,结点,依赖,对象,软考,模式,后篇,二叉树
来源: https://www.cnblogs.com/cwtjyy/p/14897973.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有