目录
数据结构
数据概念
- 数据库包含数据的逻辑结构、数据的存储结构、数据的操作
- 逻辑结构的形式定义是一个二元组,数据源数的有限集,关系的有限集
- 数据结构不同于数据类型,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系
- 抽象数据类型(ADT):数据对象+关系集+基本操作集
- 算法:有穷性,确定性,可行性,输入,输出
- 算法设计目标:正确性,可读性,健壮性,效率与存量需求
串(字符串)
- 串是零个或多个字符组成的有限序列
- 空串是任意串的子串,任意串是其自身的子串
- 串的数据对象约束为字符集
- 串的定长顺序存储表示,串的堆分配存储表示,串的块链存储表示
- 存储密度=数据元素所占存储位/实际分配的存储位
数组和广义表
- 一般采用顺序存储的方法来表示数组
- 内存结构是一维地址结构
- 广义表是线性表的一种拓展,也是数据元素的有限序列
- 广义表的定义是一个递归定义
- 广义表的重要结论:
1.广义表的元素可以是原子也可以是子表,广义表是一个多层次结构
2.广义表可以被其他广义表所共享,也可以共享其他广义表
3.广义表可以是一个递归的表
4.根据对表头和表尾的定义,任意一个非空广义表的表头可以是元组,也可以是子表,而表尾必定是广义表 - 表头:第一个元素;表尾:其余元素组成的
二叉树
- 二叉树性质:
性质1:第i层上至多2^(i-1)个结点
性质2:深度为k的二叉树至多有2^(k)-1个结点
性质3:n0=n2+1 - 满二叉树:指的是深度为k且含有2^(k)-1个结点的二叉树
- 具有n个结点的完全二叉树的深度为:[log2n]向下取整+1
- 树的带权路径长度:树中所有叶子结点的带权路径长度之和
- 赫夫曼树:最优二叉树,带权路径长度最小的二叉树
- 树的三种存储结构:双亲表示法、孩子链表表示法、树的二叉链表(孩子-兄弟)存储表示法
图
- 邻接矩阵的出度是行之和,入度是列之和
- 邻接表的出度是第i个单链表的结点个数,入度是邻接点域值是i的结点个数
- 邻接矩阵是唯一的,邻接表是不唯一的
查找
- 平均查找长度(ASL):ASL值越小,时间效率越高
- 静态查找表:顺序查找,折半查找,分块查找(索引查找
- 处理哈希表冲突的办法:开放定址法(线性探查再散列、二次探查再散列、随机探查再散列),再哈希,链地址法
排序
- 排序方法的稳定性:任意两个相等的数据,排序前后相对位置仍然一样
- 依排序策略的不同
插入排序(直接插入、折半插入、2-路插入、表插入、希尔)
交换排序(起泡排序、快速排序)
选择排序(简单选择排序、树形选择排序、堆排序)
归并排序
基数排序 - 直接插入排序:
1.设待排序对象个数为 n, 则该算法的主程序执行n-1趟。
2.最好情况下, 排序前对象已按排序码从小到大有序, 每趟只需与前面有序对象序列的最后一个对象比较1次, 移动0次对象, 总的排序码比较次数为 n-1。 - 希尔排序:改进的直接插入
1.若数据序列接近有序,则时间效率越高;
2.当n较小时,时间效率也较高。
1、总排序趟数与初始状态无关的有:(除了快速排序其他都是)
2、算法复杂度与初始状态无关的有:归并排序、选择排序
3、元素总比较次数与初始状态无关的有:选择排序
4、元素总移动次数与初始状态无关的有:归并排序
5、选择排序,归并排序的时间性能不随记录序列中关键字的分布而改变。
数据库
数据库概述
- 数据库管理的三个阶段:人工管理、文件系统、数据库系统
- 数据库系统的特点:数据结构化;共享性高,冗余度低、易扩展;独立性高;由DBMS统一管理和控制
- 数据模型是数据库的基础和核心(概念模型、逻辑模型、物理模型),逻辑模型包括层次模型、网状模型、关系模型
- 数据模型的组成要素:数据结构、数据操作、数据的完整性约束
- 数据库系统的组成:数据库、数据库管理系统、应用程序、数据库管理员
三级模式结构(模式,外模式,内模式定义)
- 模式:逻辑模式,数据库中全体数据的逻辑结构和特制的描述,所有用户的公共数据视图
一个数据库只有一个模式 - 模式的定义:数据的逻辑结构,数据之间的联系,安全性、完整性要求
- 外模式:数据库用户的局部数据的逻辑结构和特征的描述;数据库用户的数据视图;介于模式和应用之间
- 外模式的用途:保证数据库的安全性,每个用户只能看到和访问对应的外模式中的数据
- 模式和外模式的关系:一对多
- 外模式和应用的关系:一对多
- 内模式:存储模式,是数据物理结构和存储方式的描述;一个数据库只有一个内模式
- 外模式/模式映像:保证数据的逻辑独立
- 模式/内模式映像:保证数据的物理独立(是唯一的)
关系的三类完整性约束
- 实体完整性——规定关系中的所有主属性不能为空,而不仅是整体不能为空NULL的含义(不知道或者无意义的值)。
- 参照完整性——外码、参照关系、被参照关系外码取值规则:要么为空,要么等于对应参照关系的某个主码值。
- 用户定义完整性——反映某一具体应用所涉及的数据必须满足的语义要求。
- 5种基本关系操作(并、差、笛卡儿积、选择、投影)
sql
- 是结果化查询语言,集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
- sql中域的概念用数据类型来实现
- 建立索引的目的:加快查询速度
- 视图的作用:
视图能简化用户操作
视图使用户能以多种角度看待同一数据
视图对重构数据库提供了一定程度的逻辑独立性
视图能够对机密数据提供安全保护
适当的利用视图可以更清晰的表达查询
数据库安全性
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
- 数据库不安全的因素:
1.非授权用户对数据库的恶意存取和破坏
2.数据库中重要或敏感的数据被泄露
3.安全环境的脆弱性 - 用户权限定义和合法权检查机制一起组成了数据库管理系统的存取控制子系统
数据库完整性
- 数据的正确性;数据的相容性
- 实体完整性检查:检查主键码是否唯一;检查主键的各个属性是否为空
数据库参照完整性
- 外码、参照关系、被参照关系外码取值规则:要么为空,要么等于对应参照关系的某个主键码
- 参照完整性检查:对被参照表和参照表进行增删改查时可能破坏参照完整性,必须进行检查
关系数据理论
- 关系模式五部分组成:关系名,一组属性,属性到域的映射,数据依赖
- 第一范式(1NF):每个分量必须是不可分开的数据项
- 第二范式(2NF):符合1NF,并且非主属性完全依赖于码,属性完全依赖于主键。
- 第三范式(3NF):符合2NF,并且,消除传递依赖
- BC范式(BCNF):符合3NF,并且,主属性不依赖于主属性
- 关系模式可能存在的问题:数据冗余、更新异常、插入异常、删除异常
计算机组成原理
CPU(控制器)
- CPU的基本功能:指令控制、操作控制、时间控制、数据加工
- 基本组成:运算器、cache、控制器
- 控制器的基本结构:
程序计数器PC (存放下一条指令的地址)
指令寄存器(存放当前指令直到执行结束)
操作码译码器(识别指令)
控制信号产生器(发出芫成该指令的控制信号)
时序信号产生器(什幺时间发什幺控制信号) - CPU的寄存器:
累加寄存器(AC)
状态寄存器(PSW)
指令寄存器(IR)
程序计数器(PC)
地址寄存器(MAR)
数据缓冲寄存器(MDR) - 存储器的基本结构:存储体、地址译码器、地址寄存器、数据缓冲寄存器、读写控制线路
多级时序系统
- 指令周期:一条指令从取值开始,到执行完毕的时间总和
- 机器周期=CPU周期:表示指令周期中的CPU不同状态及完成的特定任务
一个CPU周期=从内存读取一个指令子的最短时间 - 时钟周期=节拍=T周期=微机主频的倒数
一个机器周期包含若干个时钟周期(节拍)
始终周期是计算机中最基本的时间单位(不能再分) - 指令周期包含机器周期包含时钟周期
- 指令的复杂程度会影响指令的平均执行速度
指令流程
- 完整的指令周期:取址周期、间址周期、执行周期、中断周期
- 取指周期:
PC送MAR送地址总线
PC+1送PC
CU发读内存命令
数据送数据总线送MDR送IR
指令送入IR
指令操作码部分OP(IR)送CU
间址周期:
指令地址码部分送MAR送地址总线
CU发读内存命令
数据送数据总线送MDR
操作数地址送入MDR
执行周期:
MDR送MAR送地址总线
CU发读内存命令
数据送数据总线送MDR送AC
操作赦送入AC - 提高访存速度:采用高速存储芯片;多体并行存储结构;采用高速缓存存储器
- 提高CPU速度:采用高速逻辑部件;采用流水技术
- 多存储体
- 指令流水线中的冲突问题:
1.结构相关:同一时钟周期争用同一逻辑部件
2.数据相关
3.控制相关:转移指令,可能转移到新的目标地址,从而发生断流(延迟转移法、转移预测法)
组合逻辑控制器与微程序控制器
控制器有两种设计方法:组合逻辑设计日微程序设计。
- 组合逻辑控制器的设计思想是采用硬布线逻辑。
首先根据指令系统,写出对应所有机器指令的全部微操作及其节拍安排;然后列出操空制信号时间表(即输入输出信号的真值表);再写出每一种操作控制信号与输入信号的逻辑表达式化简后画出相应的逻辑电路图。 - 微程序控制器的设计思想是采用存储逻辑。
首先根据指令系统孬写出对应所有机器指令的全部微操作及其节拍安排;然后列出操空制信号时间表;再根据微操作的数目,经压缩确定微指令的控制方式、下一地址形成方式、微指令格式及微指令字长,编写出全部微指令代码;完成每条指令的微程序设计后·所有微程序顺存到ROM中。