软考知识点
[TOC]
嵌入式SQL
嵌入式SQL中通过主变量实现主语言和SQL语言间进行参数传递; SQL语句的执行状态通过sqlca,传递给主语言来进行流程控制; 对于返回结果为多条记录的sql语句,通过游标来由主语言逐条处理。
执行类型分析和检查:分析程序的类型系统,并检查程序是否违反类型规则(程序中变量和表达式的类型),
编译的过程:
- 词法分析,将源代码分解为由单词组成的符号流的过程。
- 语法分析,语法分析,根据语法规则检查符号流的正确性,并生成语法树的过程
- 语义分析,检查程序的语义是否正确,并进行类型检查,是否符合语言规范
- 中间代码生成,根据语法树生成中间代码的过程,中间代码是一种抽象的机器代码与目标机器无关。
DFA能识别什么? ![[asserts/Pasted image 20240515104903.png]]
主存主要采用动态随机存储器DRAM Cache采用静态随机存储器SRAM EEPROM是电擦除可编程的只读存储器
![[asserts/Pasted image 20240515105946.png]]
入侵检测技术 海明码 系统页面大小为
虚拟内存
逻辑地址为 0001110100010110 逻辑地址内存分两部分:虚拟页号+页内偏移
- 虚拟页号:虚拟页号逻辑地址的最高位部分
- 页内偏移:逻辑地址的低位部分,
先根据页大小计算 页内地址长度需要多少位来表示 页大小为4K 4*2^10=2^12 低12位为页内偏移,页内地址 剩下的为页号 ![[asserts/Pasted image 20240522125000.png]]
进程管理
数据结和算法
- 广义表的长度:广义表中原子或子表的数量,
- 广义表 {{a,b,c}} 中只有一个子表 {a,b,c},因此它的长度为 1。
- {a,{b,c,d}} 中,它包含一个原子和一个子表,因此该广义表的长度为 2
- 广义表的深度:观察表中所包含括号的层数间接得到
二叉树
- 堆: 通常是完全二叉树
- 最大堆:父节点的值比子节点要大
- 最小堆:父节点的值比子节点小 总结点 = 度为0 + 度为1 + 度为2(叶子节点-1) 叶子节点度为0
在二叉树中,总结点的数量等于度为0的结点数加度为1的结点数加度为2的结点数。已知二叉树中有70个叶子结点和80个度为1的结点,由于叶子结点的度数为0,度为2的结点数等于叶子结点数减1,即个。
排序
![[asserts/Pasted image 20240522134301.png]]
数据库
数据库设计
![[asserts/Pasted image 20240522141345.png]] 模式:数据库的逻辑结构和数据组织方式 外模式:数据库系统的最外层,用户与数据库系统交互的接口,不同的用户或应用程序可以有不同的外模式。 内模式:数据库系统的最内层,描述了数据在物理介质上的存储结构和存取方法
- 数据在磁盘上的存储结构
- 存储记录的格式和排列
- 索引,数据压缩等技术
数据的独立性:
- 物理独立性:数据库的内模式发生改变时,数据的逻辑结构不变
- 数据独立性:外模式和模式之间的映射 数据的独立性是由DBMS的二级映像功能来保证的。数据的独立性包括数据的物理独立性和数据的逻辑独立性。数据的物理独立性是指当数据库的内模式发生改变时,数据的逻辑结构不变。为了保证应用程序能够正确执行,需要通过修改概念模式/内模式之间的映像。数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确执行,需要修改外模式/概念模式之间的映像。
关系泛式
几种泛式
泛式 | 概念 | 判断方法 |
---|---|---|
1NF | 每一个属性都是不可分割的原子值 | 每一个字段仅包含一个值 每一列都是原子的,不能包含子表或数组 |
2NF | 每一个非主属性完全依赖于主键(消除部分依赖) | - 满足1NF - 非主属性完全依赖与整个主键,而不是主键的一部分 - 若存在部分依赖(某些非主属性依赖主键的一部分) 分解为更小的表 |
3NF | 不存在非主属性对候选码的传递依赖 | 满足2NF 没有非主属性通过另一个非主属性,间接依赖主键 存在传递依赖,则需要将其分解我更小的表 |
BCNF | 没有传递依赖和部分依赖, | 每一个属性(或属性组合)若能决定其他属性,则该属性(或属性组合)是候选键 |
4NF | 没有多值依赖 | 满足3NF 确保关系中没有多值依赖(即一个属性集的值集合与另一个属性集的值集合相互独立) |
- 1NF:消除重复组,确保每个属性值是原子的。
- 2NF:在1NF的基础上,消除部分依赖,确保每个非主属性完全依赖于主键。
- 3NF:在2NF的基础上,消除传递依赖,确保每个非主属性直接依赖于主键。
- BCNF:在3NF的基础上,消除非候选键的决定因素,确保每个决定因素都是候选键。
- 4NF:在BCNF的基础上,消除多值依赖,确保没有多值依赖。
关系代数
- 选择(Selection, σ):从关系中选出满足特定条件的元组。
- 记号:σ条件(关系)
- 示例:σage > 30(Employees)
- 投影(Projection, π):从关系中选出特定的属性列,去除重复的元组。
- 记号:π属性列表(关系)
- 示例:πname, age(Employees)
- 并(Union, ∪):合并两个关系,包含所有在两个关系中的元组,去除重复。
- 记号:R ∪ S
- 差(Difference, −):获取属于第一个关系但不属于第二个关系的元组。
- 记号:R − S
- 笛卡尔积(Cartesian Product, ×):将两个关系中的每一个元组合并形成一个新的元组。
- 记号:R × S
- 连接(Join, ⨝):根据特定条件将两个关系中的元组合并形成一个新的元组。
- 记号:R ⨝条件 S
- 自然连接(Natural Join, ⨝):在两个关系中查找相同属性名的列,并自动进行连接。
- 记号:R ⨝ S
- 除(Division, ÷):在关系中查找那些在另一个关系中的所有元组都有匹配的元组。
- 记号:R ÷ S
关系元组演算
常用的查询语言:域关系演算 元祖关系演算,关系代数 公式和符号的意思:
- 元组变量表示关系中的元组 如
T ∈ R
表示元组T
属于关系R
,T.A = T.B
表示元组T
的属性A
等于属性B
。 - 逻辑运算符 ∧(和)、∨或、¬ 非
- 绑定变量 在公式中被量词绑定的变量 比如,
∃T (T ∈ R ∧ T.A = 5)
中,T
是绑定变量。 - 示例
|
|
域关系演算
|
|
0.1 分布式系统
CAP分布式系统的基本原理代表三个关键属性:一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)
五个答题考点:
- 数据库概念结构设计
- 关系理论 泛式和主键候选键 函数依赖 三泛式 四泛式 泛式分解
- SQL相关
- 事务的概念、锁死、并发
- 数据备份和故障恢复 数据库日志文件
0.2 信息安全
- 主动攻击
- 攻击者干扰系统或网络的正常运行,通过修改、破坏或伪造数据,获取未授权的访问权限或恶意操作
- 拒绝服务攻击 DDOS DOS: 攻击者通过发送大量请求,消耗系统资源,使系统无法正常提供服务
- 中间人攻击MITM:
- sql注入
- 钓鱼攻击
- 被动攻击
- 不干扰系统的正常运行,隐蔽性,无破坏性,信息收集
- 流量分析,窃听,被动扫描 中国自主研发的3G通信标准是 TD-SCDMA
宏病毒一般感染 doc 为扩展名的文件
数字信封技术:
- 生成对称密钥
- 数据加密
- 对称密钥加密
- 传输加密数据和加密密钥
- 对称密钥解密
- 数据解密
计算机病毒:
- 文件型病毒 感染可执行文件
- 引导型病毒 影响软盘或硬盘的引导扇区
- 目录型病毒 修改硬盘上的所有文件的地址
- 宏病毒 使用某些程序创建出来的文本文档,数据库,电子表格等文件 防火墙的工作层次:
- 工作层次高,效率低,安全性高
- 受保护程度:从高到低 内网 DMZ 外网
0.3 项目管理
无主程序员组:适合开发小型项目 创新型项目, 确定性比较小的项目
ISO软件质量模型:
软件质量的6大特性:功能性、可靠性、易用性、效率、维护性、可移植性
软件质量的27个子特性:
功能性:适合性、准确性、互操作性、安全性、功能性的依从性
可靠性:成熟性、容错性、可恢复性、可靠性的依从性
易用性:易理解、易学习、易操作、吸引性、可使用性的依从性
效率:时间特性、资源特性、效率的依从性
维护性:易分析性、稳定性、易变更性、易测试性、可维护性的依从性
可移植性:适应性、易安装型、遵循性易替换性、可移植性的依从性
RUP:统一软件开发过程
- 角色、活动、制品和工作流4种重要的模型元素 统一过程模型:
- 关键特点:迭代和增量开发 基于用例的需求驱动 架构驱动 风险驱动
- 阶段
- 初始阶段
- 细化阶段
- 构建阶段
- 移交阶段
传统工程模型:
- 瀑布模型是最早出现的过程模型,它将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品,主要的阶段包括需求分析、系统设计、详细设计、编码、单元测试、集成测试、系统测试、系统提交等。
- v模型是对瀑布模型的一种改进模型,由于其模型构图形似字母v,所以又称为软件测试的V模型。V模型中,增加了测试环节的回溯验证,一般情况下,单元测试所对应的是详细设计环节;集成测试对应概要设计环节;系统测试对应需求分析环节;验收测试对应用户原始需求。
- 原型化模型:。原型化模型首先是建造一个快速原型,在充分了解和确认后,在原型基础上开发出用户满意的产品。
- 螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
- 增量模型:把软件产品作为一系列的增量构建来设计,编码,集成和测试,可以在增量开发过程中逐步理解需求
软件设计:
- 概要设计阶段
- 详细设计阶段 结构化设计方法:
- 概要设计阶段:软件体系结构的设计,数据设计和接口设计
- 详细设计阶段:数据结构和算法的设计 面相对象的设计方法:
- 概要设计阶段:体系结构设计,初步的类设计、数据设计,结构设计
- 详细设计阶段:构件设计
数据流图:
- 建模的时候应遵循自顶向下,从抽象到具体的建模思想。
- 描述数据的处理流程
- 底层数据流图描述了系统的输入输出
- 加工描述了数据流的转换
软件工程方法:进行软件开发,涉及到方法、工具和过程等要素。 项目风险:风险的优先级根据风险暴露 指标来表示,=风险影响(当风险发生时造成的损失) * 风险概率(风险发生的可能性)
- 项目风险:预算,进度,人员资源以及客户相关的问题
- 技术风险:设计,实现,对接,测试和维护未提
- 业务风险:建立一个无人想要的优秀产品风险,失去预算,人员承诺的风险
- 商业风险:市场风险,策略风险,管理风险和预算风险
UML图: 统一建模语言
- 用例图 描述系统的功能需求以及系统与外部用户之间的交互
- 类图 描述系统中的类及其属性、方法和类之间的关系
- 对象图:描述系统在某一时刻的对象实例及其关系
- 序列图:描述对象之间的交互顺序,强调时间顺序
- 活动图:类似于流程图
- 状态图:描述对象状态变化以及时间如何导致状态的转换
- 组件图:描述系统 的物理组件以及相互关系
- 部署图:描述系统在物理硬件上的部署结构 干货!14种uml图类型及示例 (boardmix.cn)

