一
1.1、计算机硬件基础知识
运算器
运算:算术+逻辑
组成:算术逻辑单元ALU
累加寄存器AC--工作区
数据缓冲寄存器DR--中转站
状态条件寄存器PSW---状态
控制器
指令寄存器IR //指令
程序计数器PC //将要执行的下一条指令的地址
地址寄存器AR
指令译码器ID
总线的分类
数据总线DB //双向
地址总线AB //单向,宽度决定CPU的最大寻址能力
控制总线CB //单条单向,总体双向
1.2、计算机体系结构与存储系统
1
流水线技术
Tn=执行一条指令所需时间+(n-1)*流水线周期
(流水线周期:子任务中执行时间最长的时间)
吞吐率:实际 最大=1/流水线周期
高速缓存cache
调和CPU速度和内存存取速度之间的差异
地址映像:
1、直接映像
主存地址:主存区号+区內块号+块内地址
2、全相联映像
主存地址:主存块号+块内地址
3、组相联映像
公式:
主存地址位数=区号+组号+主存块号+块内地址
cache地址位数=组号+组内块号+块内地址
虚拟存储器实际上是一种逻辑存储器
相联存储器是一种按内容访问的存储器
2
编址的相关计算
内存是按字节编址的!!!!!!1Byte=8bit
输入输出技术:
1、无条件传送 //外设总是准备好的
2、程序查询方式 //需查询外设状态
3、中断方式 //准备好后,向CPU发出中断请求
以上三种方式都需要CPU的参与
4、DMA方式(直接内存存取方式) //不需要cpu参与 由DMA硬件直接执行
5、通道方式和外围处理机方式
1.3、安全性、可靠性与系统性能评测基础知识
对称加密技术
代表算法:
1、DES //移位和替换
2、3DES //56位
3、RC-5
4、IDEA //128位
5、AES
非对称加密技术--适用少量数据
加密模型
认证模型(加密密钥私有)-- RSA ,可确认发送者的真实身份
信息摘要算法--hash函数(MD2、4、5)不能推出原文 128位 // SHA-1 160位
数字签名--非对称加密算法(一对多)
数字加密模型--对称加密算法(多对一)
计算机可靠性
串联系统:R=R1*R2*······*Rn
并联系统:R=1-(1- R1)(1- R2)····(1- Rn)
1.4、逻辑运算
逻辑与AND:同真为真
逻辑或OR:同假为假
逻辑异或:相异为真,相同为假
逻辑非NOT:取反
二、程序语言基础
程序语言概述:
低级语言--机器语言、汇编语言
高级语言--各类应用程序语言(java、c、c++、python。。。。)
解释程序--立即执行(边解释边执行)
编译程序--分为两个阶段(源程序---目标程序,执行目标程序)
程序语言的控制成分:顺序结构、选择结构、循环结构(初始化,循环体,循环条件)
编译过程:
词法分析--单词
语法分析--语法规则
语义分析--类型分析和检查
中间代码生成--后缀式(逆波兰式)、四元式(三地址码)、树
代码优化
目标代码生成--与具体机器密切相关
表达式:
中缀表达式:运算符在中间---(a+b)*c-d
前缀表达式(波兰式):运算符在前面---//-*+abcd
后缀表达式(逆波兰式)运算符在后面----ab+c*d-
三、数据结构与算法
3.1、线性表
顺序存储(顺序表)
链式存储(链表)//只能按顺序访问元素,不能随机存取
1、单链表
2、循环链表
3、双链表
栈---后进先出
1、顺序栈
2、链栈:用链表存储栈中元素
队列--先进先出
1、顺序队列
2、循环队列
3、链队列(链式存储)
串--有限序列,取值范围受限的线性表
1、顺序存储
2、链式存储
3.2、数组和矩阵
数组--一般不做插入和删除,适合采用顺序存储结构
矩阵--压缩存储问题
1、对称矩阵--存储空间:n(n+1)/2
2、三对角矩阵(只有主对角线及左右两边位非零元素)
3、稀疏矩阵--非零元素远远少于零元素的个数(三元组表示)
3.3、树与二叉树
二叉树的总结点:n=n1+2n2+1
从而推出===> n0=n2+1
完全二叉树--性质:
1、具有n个节点的完全二叉树的深度为INT(log2^n)+1 //INT--取整
2、若i=1,则该节点为根结点,无双亲;若i>1,则该节点的双亲节点为 INT(i/2)
3、若2<=n,则该节点的左孩子编号为2i,若2i>n。无左孩子。
4、若2i+1<=n,则该节点的右孩子编号为2i+1,若2i+1>n,无右孩子。
二叉查找树---左小右大
二叉树的存储结构:
1、顺序存储
2、链式存储(二叉链表、三叉链表。。。)
二叉树的遍历
中序遍历法:(左、根、右)
前序遍历法(根左右)
后序遍历法(左右根)
层序遍历法(从上到下,从左到右)
最优二叉树--哈夫曼树
带权路径长度最短的树
3.4、图
图G由 V有限的非空顶点和E顶点表示的边组成
有向图(有方向,尖括号)
无向图(无方向,圆括号)
含有n个顶点的无向完全图共有n(n-1)/2条边
有n个顶点的有向完全图中弧的数目为n(n-1)
存储结构
1、邻接矩阵表示法
2、邻接链表表示法
3、有向图的逆邻接表、带权值的网的邻接链表表示法
3.5、排序算法
1、直接插入排序:按顺序插入,并依次比较,小的放前面,其余后移
2、冒泡排序:依次比较,顺序不对交换位置;多次执行,直至顺序正确为止
3、简单选择排序:每次找出最小值,与最前面的数字交换位置;按这个规则,依次进行。
4、希尔排序(缩小增量排序):先选择增量,分成若干子序列,再进行直接插入排序;多次进行直至顺序正确为止(增量为1)
5、快速排序:从后往前依次与第一位进行比较,小的将换位置,大的不动;分成枢轴左边均比它小,右边均比它大;再在各部分之间进行快速排序,直至顺序正确
6、堆排序:左大右小
大顶堆:大的在上
小顶堆:小的在上
7、归并排序:两两一组,组内排序后,两两归并,依次类推
3.6、查找算法
1、顺序查找:从一端离开始,依次比较----查找效率低,但简单且适用面广
2、折半查找(二分查找):从中间开始,比较大小之后选择从哪边开始查找,要求表按顺序存储,且关键字有序排列---效率比顺序高,适用于表不易变动,且经常查找(折半查找断定树)
3、树表查找:二叉查找树--动态查找表(左小右大)
4、索引顺序查找(分块查找):将表分成若干块,索引表中记录最大关键字及起始地址
5、哈希查找:通过哈希函数将关键字与地址相关联
哈希冲突的处理:
1)开放定址法:
线性探测再散列--有冲突就往后挪
二次探测再散列
2)链地址法:
3.7、图的相关算法
生成树与最小生成树
1、普里姆算法:以顶点为主
2、克鲁斯卡尔算法:以边为主
求单源点的最短路径算法--迪杰斯特拉算法
四、操作系统基础知识
4.1、进程管理
操作系统的4个特征:并发性、共享性、虚拟性、不确定性
五大功能:进程管理、文件管理、存储管理、设备管理、作业管理
信号量机制(P、V操作)
P、V操作成对出现
P操作:if ((S=S-1)>=0) 继续执行本进程 else 挂起本进程,转到另一个进程
V操作:if ((S=S+1)>0) 不唤醒队列中的等待进程,继续执行本进程 else 唤醒队列中的等待进程,同时继续执行本进程
生产者消费者问题
死锁
系统中共有n个进程共享同一类资源,当每个进程都需要k个资源时,至少需要M=(k-1)*n+1个资源才不会发生死锁
银行家算法:还需要的资源数与还剩下的资源数进行比较
4.2、存储管理
逻辑地址:虚拟地址、相对地址
物理地址(绝对地址):主存中真实存在的地址
地址重定位:逻辑地址转换为物理地址
1、静态重定位:程序未运行前已完成变换,执行期间不再发生变化
2、动态重定位:程序运行期间完成变换
分区存储管理
1、固定分区:系统生成时已分好,分区大小可以不等
2、可变分区:
最佳适应算法:选最接近的--容易产生碎片
最差适应算法:选最大的--不易产生碎片
首次适应算法:从主存的地位地址开始找
循环首次适应算法:从刚分配完的空白区开始找
3、可重定位分区:分配好的区域可以移动--地址会发生变化
分页存储管理---页的大小相等
1、纯分页管理:页表确定页号和块号
2、块表:保存当前访问频率高的少数活动页及相关信息
3、两级页表机制:
分段存储管理--段表(段号+段内地址)
段页式存储管理--先分段,再分页
同时有段表和页表
段表:段号、页表始址、页表长度
页表:页号、物理块号
逻辑地址:段号、页号、页内地址
物理地址:块号、页内地址
虚拟存储管理
实现的三种方式:
1、请求分页系统
2、请求分段系统
3、请求段页式系统
页面置换算法
1、最佳置换算法
2、先进先出置换算法FIFO
3、最近最少未使用算法LRU
4、最近未用置换算法NUR
4.3、设备管理
I/O设备管理软件:--分层
中断处理程序
设备驱动程序
与设备无关的系统软件
用户级软件
设备管理采用的相关技术
通道技术
DMA技术
spooling技术:缓和 CPU的高速性和I/O设备的低速性之间的矛盾
磁盘调度算法:读取磁盘数据的时间=寻道时间+旋转延迟+数据传输时间
1、移臂调度算法:
先来先服务
最短寻道时间有限
扫描算法(类似电梯调度)
单向扫描调度算法
2、旋转调度算法:
4.4、文件管理和作业管理
文件的目录结构:
一级目录结构--不允许重名,查找速度慢,不能实现文件共享
二级目录结构--由主文件目录和用户目录组成
多级目录结构--windows系统,及UNIX系统
绝对路径--文件路径的全称
相对路径--相对于当前工作目录而言,前面没有\
文件存储空间的管理
1、空闲区表
2、位示图:0--空闲,1--占用
3、空闲块链
4、成组连接法
作业调度算法:
1、先来先服务
2、短作业优先
3、响应比高优先:响应比=作业响应时间/作业执行时间 //响应比=(作业等待时间+作业执行时间)/作业执行时间==1+等待/执行
4、优先级调度算法
5、均衡调度算法
五、计算机网络
5.1、计算机网络概述与网络硬件基础
计算机网络的分类:
局域网LAN:10-1000m左右
广域网:1千米以上
城域网:
网络互连设备:
1、中继器--扩展局域网网段的长度(最多使用4个)
2、集线器--无源不对信号做任何处理,
数据链路层设备:
1、网桥--过滤帧
2、交换机--端口交换、帧交换、信元交换(多端口)--MAC地址
网络层设备:
1、路由器--选择路径-- IP地址
2、三层交换机:--一次路由,多次交换
应用层设备: 网关--进行协议转换
5.2、网络的协议与标准
OSI参考模型
七层:从下到上
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP协议簇:
五个特性:
1、逻辑编址
2、路由选择
3、域名解析
4、错误检测与流量控制
TCP/IP模型,从下往上
网络接口层:IEEE 802.3、FDDI、IEEE802.5、ARCnet、PPP
网际层:IP(无连接,不可靠)、ICMP(通告网络故障、通告网络拥堵、协助解决故障)、ARP( IP--->物理地址)、RARP(物理地址--->IP地址)
传输层: TCP(可靠的、面向连接的、全双工、低速) UDP(不可靠、无连接、高速)
应用层:FTP:数据20,控制21 DHCP:67
Telnet:23(远程登录) SNMP:161,162
SMTP:25(简单邮件传输)
HTTP:80 DNS:53
POP3:110
5.3、internet基础知识
域名:计算机主机名.本地名.组名.最高层域名
UPL格式:协议://主机.域名【:端口号】/路径/文件名
IP地址--分类:
最高位 网络号 主机地址
A类:0(0~127)共有2^7-2个网络号;最多有2^24-2个主机地址
B类:10(128~191)2^14-2 2^16-2
C类:110(192~223)2^21-2 2^8-2
D类:1110(224~239)
E类:1111(240~255)
子网掩码--区分网络号和主机号(网络号用1表示,主机号用0表示)
IPV6地址空间为128位,共16字节
5.4、信息安全与网络安全
网络攻击的分类:
1、主动攻击--会对消息篡改,产生虚假的数据源
篡改消息
伪造
重放
拒绝服务 DOS
2、被动攻击:--不对消息进行篡改
窃听
流量分析(通信量分析)
安全的分类:
1、物理安全
2、网络安全
3、系统安全
4、应用安全
防火墙技术
1、包过滤防火墙(网络层和数据链路层,效率高,安全性低)
2、应用代理网关防火墙(处理速度非常慢,效率低,安全性高)
3、状态检测技术防火墙
入侵检测与防御
1、入侵检测系统IDS
2、入侵防护系统IPS
六、数据库技术
数据库系统的三级模式结构
1、物理层 内模式 索引/存储文件
(模式/内模式映像)
2、逻辑层 模式 基本表
(外模式/模式映像)
3、视图层 外模式 视图
E-R模型
属性:
简单属性--不可再分
复合属性--可细分为更小的部分
单值属性
多值属性--多个值
NULL属性--无意义或不知道
派生属性--可从其他属性得来
弱实体:一个实体的存在必须以另一个实体为前提
特殊化:某些实体一方面具有一些共性
七、
7.1、关系数据库
字段:列
元组:行
几元关系:元数(属性的个数、列数)为几,就是几元关系
关系的完整性约束
实体完整性:主属性不为空
参照完整性:
用户定义完整性:约束条件
7.2、关系运算
关系运算
等值连接
自然连接--一种特殊的等值连接 //去除重复属性值
笛卡尔积:相乘,不去除重复值(✖️)
除:找出相同的属性列,再找统一行中其他属性列的值,再找值相同的
外连接:
1)左外连接:取出左侧关系中与右侧关系中任一元组都不匹配的元组
2)右外连接:取出右侧关系中与左侧关系中任一元组都不匹配的元组(右侧为准,左侧填充)
3)全外连接:分别求出左右外连接的结果,求并集
7.3、元组演算、域演算与查询优化
元组演算---变量以元组为单位
表达式的运算:存在--只要有一个即可;任意--全部都得满足条件
域演算---类似元组演算
查询优化:
笛卡尔积,连接运算是最耗费时间和空间的!!!
7.4、规范化
1NF:每一个分量都不可再分
存在的问题:数据冗余、更新异常、插入异常、删除异常
2NF:每一个非主属性完全依赖于码---存在传递函数依赖 //消除了非主属性对码的部分函数依赖
存在的问题:数据冗余、
3NF:消除了非主属性对码的传递函数依赖 //存在主属性对码的部分函数依赖
BCNF:消除了主属性对码的部分函数依赖和传递函数依赖
4NF:限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖
7.5、Armstrong公理系统
推理规则:
1、自反律(大集合可以决定其子集)
2、增广律
3、传递律
4、合并规则(左边属性一致,右边可以合并)
5、伪传递规则
6、分解规则
候选码的求解方法:
L:仅出现在左边 ---必为任一候选码的成员//一定是
R:仅出现在右边 ---不是任一候选码的成员//一定不是
LR:左右都出现 ---必为任一候选码的成员//有可能是,也有可能不是
NLR:左右都不出现 //左右都没出现,一定是
最小函数依赖集
1、所有函数依赖的右侧只有一个属性
2、没有冗余的函数依赖
3、所有函数依赖的左侧没有冗余的属性
模式分解
无损连接:U1交U2->U1- U2属于F的闭包 或者 U1交U2->U2- U1属于F的闭包
保持函数依赖:看分解以后是否丢失函数依赖集中的任一函数依赖
八、SQL
8.1、概述和数据库定义
表的创建、修改和删除---- CREATE ALTER DROP
实体完整性约束:PRIMARY KEY //放在最后面要把属性用括号括起来,多个主码写在最后
参照完整性约束:FOREIGN KEY REFERENCES 表名(属性名)//多个外码写多行,不能写在一起
属性值上的约束
UNIQUE:取值唯一
CHECK:限制列中值的取值范围
NOT NULL UNIQUE:唯一且不为空,可与PRIMARY KEY 互换
索引的创建和删除--内模式、物理层
视图:组成视图的属性列名或者全部指定,或者都不写
WITH CHECK OPTION
8.2、数据操作
数据操作:Select查询 Update更新 Delete删除 Insert插入
Select基本结构
子查询/嵌套查询( EXISTS存在 | NOT EXISTS 不存在)
IN 前面有属性,内部查询中应该有属性 EXISTS前面没有属性
聚集函数
AVG()//平均
MIN()//最小
MAX()//最大
SUM()//求和
COUNT()//计数
分组查询
GROUP BY子句
对元组进行分组,此时聚集函数只用于每个分组
HAVING子句
GROUP BY后可添加,用于进一步条件限制
字符串操作--- LIKE来进行匹配
集合操作:
UNION 并--去掉重复行
UNION ALL 不去掉重复行
INTERSECT 交
EXCEPT 差
外连接--连接条件用 ON
LEFT JOIN 左外连接
RIGHT JOIN 右外连接
FULL JOIN 全外连接
INSERT INTO 表名 VALUES(值1,值2.。。)
DELETE FROM 表名 WHERE 条件表达式 //只删除表中数据
UPDATE 表名 SET 列名=新值 WHERE 条件表达式
8.3、授权与触发器
授权GRANT
GRANT 权限 ON TABLE/DATABASE 表名/数据库名
TO 用户/PUblIC
【 WITH GRANT OPTION】 //表示获得了这个权限的用户可以将权限赋给其他用户
收回权限REVOKE
REVOKE 权限 ON TABLE/DATABASE 表名/数据库名
FROM 用户/PUblIC
【 RESTRICT(指定) | CASCADE(级联)】
触发器---不能调用
创建触发器时需指定:
1、名称
2、定义触发器的表
3、触发事件
4、触发条件
5、触发动作
语句:
CREATE TRIGGER 触发器名称 【BEFORE |AFTER】
【DELETE | INSERT | UPDATE OF 列名】 //触发事件
ON 表名
【REFERENCING 〈临时视图名〉】
【FOR EACH ROW(行级触发器) | FOR EACH STATEMENT(语句级触发器)】
【WHEN〈触发条件〉】 //触发条件:当什么条件满足时,执行下面的触发动作
BEGIN
〈触发动作〉 //需要数据库做什么
END 【触发器名称】
8.4、嵌入式SQL与存储过程
嵌入式SQL //EXEC SQL
1、向主语言传递SQL语句执行的状态信息的方式-- SQLCA(SQL通信区)
2、提供参数--主变量(共享变量)
3、游标--通过移动游标指针来决定获取哪一条记录 //CURSOR + SELECT语句
存储过程--一组为了完成特定功能的SQL语句集合, //运行比单个的SQL语句块要快 可嵌套
PROCEDURE
九、非关系型数据库No SQL
ACID理论
原子性:要么都做,要么都不做
一致性:数据不会因事务的执行而遭受破坏
隔离性:不被其他事务干扰
持久性:一旦提交,对数据库的改变是永久的
CAP理论---最多三选二
一致性:
可用性:
分区容忍性:
BASE理论:
BA:基本可用
S:软状态,"无连接的"
E:最终一致性
十、系统开发和运行知识
白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
黑盒测试
PERT图与关键路径
PERT图 //有向图
关键活动:最早开始时间==最晚开始时间的活动
关键路径:由关键活动串联起来的路径,可有多条
松弛时间=最晚开始时间-最早开始时间
求关键路径:
1、找出开始节点到结束节点之间的所有路径
2、计算路径所经历的时间
3、时间总和最长的就是关键路径
第二种:依次找出最早开始时间和最晚开始时间,两者相等的节点串联起来即为关键路径
(正推--加最大的,反推--用最小的减)
十一、数据库
联系向关系模式的转换
一对一联系:可以形成独立的关系模式;也可以放到任一相关实体里面
一对多联系:可以形成独立的关系模式;也可以将联系归并到两个实体中的多方
多对多联系:只能转换成一个独立的关系模式
十二、事务管理
12.1、事务
事务是一个操作序列,这些操作"要么都做,要么都不做"
事务开始: BEGIN TRANSACTION
事务结束:END TRANSACTION
事务提交:COMMIT //修改的操作永久保留
事务回滚:ROLLBACK //撤销修改的操作 ,不能在COMMIT之后使用
事务的特性:原子性(要么都做,要么都不做)、一致性((数据平衡)、隔离性(不被干扰)、持久性(改变永恒) --(ACID)
12.2、数据库的并发控制
事务调度
1、串行调度:多个事务依次执行,一个全部完成才执行下一个 //一般不会出现问题
2、并行调度:利用分时的方法同时处理多个事务 //有可能会出现错误
3、可恢复调度:
判断并发调度是否正确:看结果是否与任意一个串行调度的结果一致, 一致则正确,否则不正确
并发操作带来的问题:
1、丢失修改:两事务对同一数据进行修改,导致修改被覆盖
2、不可重复读:两次读取同一数据的结果不一致
3、读脏数据:某事务读取的数据是其他事务修改后的值
可串行性是并发事务正确性的准则。
并发控制技术
1、排它锁(X锁):写锁 --不允许其他事务读取和修改
2、共享锁(S锁):读锁 --允许其他事务读取,不允许修改
封锁协议:
1、一级封锁协议:--解决丢失修改
2、二级封锁协议:--解决读脏数据
3、三级封锁协议:--解决不可重复读
两段锁协议(2PL)
两段锁是可串行化的充分条件,但不是必要条件
可串行化是判断事务并发执行正确性的准则!!!!
两段锁协议也可能产生死锁
事务的隔离级别:--从低到高
1、READ UNCOMMITTED(读未提交)
2、READ COMMITTED(读已提交,可避免读脏数据)
3、REPEATABLE READ (可重复度, 可避免读脏数据,不可重复度)
4、SERIALIZABLE (串行化, 可避免读脏数据、不可重复度、幻读)
幻读:查询得到的结果条数不同
每个事务自己执行自己的代码,读写都在本事务中进行,依据本事务的操作过程。
12.3、数据库的备份与恢复
系统故障的种类 策略
1、事务故障--事务本身 UNDO
2、系统故障--硬件故障 UNDO+ REDO
3、介质故障--存储介质发生故障 UNDO+ REDO
数据库备份
1、静态转储(不允许修改)和动态转储(转储期间允许修改)
2、海量转储(所有)和增量转储(部分)
3、日志文件
4、数据库镜像/备份 --介质故障
数据库恢复
1、撤销事务(UNDO):未完成事务撤销(反向扫描)
2、重做事务(REDO):已提交事务重做(正向扫描)
检查点机制(CHECKPOINT)
检查点后提交的事务-- REDO
检查点后未提交的事务-- UNDO
十三、云计算与大数据处理
云计算:按需访问
关键特征:广泛的网络接入、可测量的服务、多租户、按需自服务、快速的弹性和可扩展性、资源池化
其他:虚拟化技术、可靠性高、性价比高
分类:
按部署模式和应用范围:
1、公有云
2、社区云
3、私有云
4、混合云
按服务层次和类型:
1、基础设施即服务IaaS //服务器、网络、存储等基础设施
2、平台即服务PaaS //软件开发测试管理的环境
3、软件即服务SaaS //应用软件
云关键技术:虚拟化技术、分布式数据存储、并行计算
大数据特征:多样性、速度、大量、价值、真实性(5V)
处理流程:数据采集、数据分析、数据解释
中级数据库系统工程师上午试题知识点
于 2023-05-23 13:38:11 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)