1、计算机周期
时钟周期:也称为振荡周期,定义为时钟频率的倒数。是计算机最基本的最小的时间单位。
指令周期:从主存取一条指令的时间
机械周期:也称CPU周期,指完成一个基本操作(取指、读存储器、写存储器等)所需要的时间。通常用内存中读取一个指令字的最短时间来规定CPU周期。
总线周期:CPU完成一次内存访问(读写)或接口操作所需要的时间。
一个总线周期通常由n个时钟周期组成;但一个指令周期中可能包含有一个或几个总线周期,也可能一个总线周期都没有,这取决于该指令的功能。
2、流水线计算
流水线周期:工序中最长的那段执行时间
流水线计算公式:第一条指令执行时间+(指令条数-1)*流水线周期
流水线吞吐率:指单位时间内流水线完成的的任务数量或输出的结果数量
TP=指令条数/流水线执行时间
流水线的加速比:完成同一批任务,不使用流水线所用的时间与使用流水线所用时间之比
S=不适用流水线执行时间/使用流水线执行时间
3、I/O接口
I/O:即输入/输出,指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出
I/O接口功能:
- 数据缓冲:主机和外设工作速度匹配
- 错误或状态检测:反馈设备各种错误、状态信息
- 控制和定时:接收从控制总线发来的控制信号、时钟信号
- 数据格式转换:串并、并串等格式转换
- 与主机和设备通信:实现主机-I/O接口-I/O设备间通信
4、系统总线
分类:数据总线、地址总线、控制总线
总线:连接多个部件的信息传输线,是各部件共享的传输介质。
特点:在某一时刻,只允许有一个部件向总线上信息传送可以串行和并行。
计算机使用总线结构便于增减外设,同时减少信息传输线的条数。但相对于专线结构,其实际上也降低了信息传输的并行性、信息的传输速度。
系统总线也称内总线,直接影响系统性能。主要标准有ISA、EISA、PCI
外部总线简称外总线,标准有七八十种。主要标准有RS-232C、SCSI、USB、IEEE-1394
5、算术表达式
中缀表达式:运算符位于操作数中间 2+3 *7
后缀表达式:运算符在操作数后面 2 3 7 *+
前缀表达式:运算符位于操作数前面+2*3 7
后缀表达式计算规则:从左到右遍历表达式的每个数字和符号,遇到数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果
栈:是一种线性数据结构,数据像碗一样一层层堆起来,数据“后进先出”。
中缀表达式转后缀表达式的计算
直接转换法---从最内层括号开始运算并转换,数字在前,符号在后
利用表达式树法---表达式树的树叶是操作数,其他节点为操作符,根节点为优先级最低且靠右的操作符,不含括号。
树是一种非线性数据结构,存储的是具有“一对多”关系的数据元素的集合。
结点的度:结点拥有的子分支数
树的度:树内各节点中最大的度
完全二叉树(不满二叉树):深度为K,有n个结点的二叉树,并且其每个结点都与深度为K的满二叉树中编号从1至n的结点一一对应。
满二叉树:二叉树的层数为K,且结点总数是(2的K次幂)-1
二叉树的遍历:顺着一条搜索路径访问二叉树中的结点,每个节点均被访问一次,且只被访问一次。最后得到一个线性排列
先序遍历:左根右
中序遍历:根左右
后序遍历:左右根
6、数据结构---队列
队列:是一种线性数据结构,数据排成一队,在头部删除旧数据,在尾部添加新数据,数据“先进先出”
offer():入队操作,添加元素
poll():出队操作,返回队列首元素并删除
peek():出队操作,获取队列首元素不删除
isEmpty():判断队列是否为空。
7、数据结构---串
串:又叫字符串,是一种特殊的线性数据结构,它的数据元素是字符。
串的存储方式:顺序存储、链式存储
线性表,又称线性存储结构,是最简单的一种存储结构,专门用来存储逻辑关系为“一对一”的数据
8、查找算法
顺序查找,从一端开始逐个比较
分块查找,又称为索引顺序查找,是折半查找和顺序查找的改进,适合于节点动态变化的情况。
特点:块内元素可以无序,块之间必须有序、第n块中任意元素都必须小于第n+1块中任意元素。
二分查找,关键字先排序,以找兼职为中心一分为二,先与中间值比较;再根据比较结果,选择在左段或者右端比较。
特点:元素值有序、顺序存储
哈希表查找,散列查找,根据关键码值而直接进行访问的数据结构。
在理想情况下,每个关键字通过散列函数计算出来的地址都不同。如果两个关键字key1!=key2 ,但却有f(key1)=f(key2),这种现象称为冲突。出现冲突会造成查找错误。可以通过精心设计散列函数让冲突尽可能减少,但不能完全避免。
常见的散列函数构造方法:
- 直接定址f(x)=ax+b
- 数字分析法
- 平方取中法
- 折叠法
- 除留余数法
- 随机数法f(x)=random(x)
数据存储方式:
- 顺序存储:在一组地址连续的存储区域依次存放数据
访问:指针直接访问
特点:查找快、增删慢、适用内存
- 链接存储:不要求逻辑上相邻的结点在物理位置上相邻
访问:指针逐个找
特点:查找慢、增删快、适用内存
- 索引存储:通过结点索引引导来确定结点存储地址
访问:直接寻址
特点:查找快、占用空间大、适用内外存交互
- 散列存储:根据结点关键字直接算出存储地址(映射)
特点:查找快、适用内外存交互
9、排序算法
冒泡排序;比较相邻的2个元素
快速排序:选一个中间元素,比它小的放左边大的放右边,然后从A组和B组中重复上述操作,直到A组和B组再无法分解。
选择排序:找到最小元素放在首位,在剩下元素中找最小元素,放到第二位。重复上述操作
插入排序:将一个元素插入到已经排好序的有序表中。适用于数据量小,后者有部分数据已经排好,且排好的部分越大越好的情形。
希尔排序:又称缩小增量排序,插入排序的改进,对较大规模且无序的情况下,效率也较高。将大数据分组成若干个小规模数据,然后适用插入排序。
堆排序:将堆顶元素逐个拉下来,后面元素顶上去。按顺序拉下来的元素就形成了一定顺序。
归并排序:分而治之,将全部数据分为若干小份,完成小份排序后再合并。
计数排序:数列元素都是整数,且最大值和最小值相差不大时,排序效率最高。
桶排序:数列元素范围大,或者不是整数时采用
基数排序:先按个位数大小排序,再按十位数大小排序,再按百位数大小排序...
稳定:如果a原来在b前面,而a=b,排序之后a仍然在b前面
不稳定:如果a原来在b前面,而a=b,排序之后a可能会在b的后面
时间复杂度:对排序数据总的操作次数
空间复杂度:指算法在计算机内执行时所需存储空间的度量,是数据规模n的函数。
10、网络模型
OSI模型特性:分层体系结构
分层优点:每层作为独立子系统,互相独立,灵活性强,结构可分割,便于实现和维护。
- 应用层:提供应用程序间通信
- 表示层:处理数据格式、数据加密等
- 会话层:建立、维护和管理会话
- 传输层:建立主机端到端连接
- 网络层:寻址和路由选择
- 数据链路层:提供介质访问、链路管理等
- 物理层:比特流传输
TCP/IP
11、生物特征认证
生物特征认证:指通过计算机利用人体固有生物特征或行为鉴别个人身份。
生物特征认证技术:人体特征转换为数字形式存储到计算机中,通过匹配算法完成验证和识别个人身份
人脸识别、指纹识别、虹膜识别】掌静脉识别、声纹识别、步态识别、笔迹识别
12、加密算法
凯撒密码,主要是换位和置换
特点:数据安全基于算法保密
1949年香农发表著名的论文《保密系统的通信理论》
对称密钥体制(私钥密码体制)
典型算法:DES、IDEA、AES等
DES数据加密标准。由IBM公司研制。是分组加密算法,支持64比特明文块加密,其密钥长度为56比特。1997年被破解。
3DES:美国国家标准技术研究所NIST在1999年启用,作为过渡期国家标准,同时开始征集AES算法。
AES高级加密标准。由两位比利时密码学家共同设计,于2001年发布
IDEA国际数据加密算法,明文和密文分组都是64比特,密钥长度为128比特。主要用于PGP。
秘钥分配问题、秘钥管理问题、无法认证源
公钥密码体制(非对称密码体制)公钥密码使得发送和接收端无秘钥传输的保密传输成为可能
典型算法:RSA、ELGamal及椭圆曲线密码
RSA非对称算法,由Ronald Rivest、Adi Shamir\Leonard Adleman三人共同在1977年公开发布
ELGamal:基于迪菲-赫尔曼密钥交换的非对称加密算法
椭圆曲线密码算法:主要用于比特币加密
密钥分发方便、密钥保管量少、支持数字签名
杂凑算法
MD5消息摘要算法
SHA1安全散列算法1
13、系统机密性
机密性:确保信息不暴露给未授权的实体或进程
- 加密encryption
- 认证authentication
- 授权authorization
14、恶意代码
恶意代码:违背目标系统安全策略的程序代码
被动触发:
计算机病毒(复制):一组具有自我复制传播能力的程序代码
特征:
- 隐蔽性:附加在正常软件或文档中
- 传染性:能进行自我复制(区别普通程序)
- 潜伏性:触发条件满足才执行(如某日)
- 破坏性:危害程度取决于设计者
类型:
引导型病毒:磁盘杀手病毒、AntiExe病毒
宏病毒:word宏病毒(批处理程序命令)
多态病毒:逃避静态特征扫描,需启发式杀毒
隐藏病毒:隐藏文件大小和时间、加密等。
文档:Melissa梅丽莎病毒
邮件:爱虫病毒、求职信病毒
照片:库尔尼科娃
网页:NIMDA病毒
特洛伊木马Troian horse(潜伏):具有伪装能力、隐藏执行非法功能的恶意程序
特征:
本地特洛伊木马:只运行在本地,盗用多用户口令
网络特洛伊木马:远程木马控制端+木马肉鸡
类型:
文件捆绑法:将木马捆绑到常用软件包中
邮件附件:将木马程序伪装成邮件附件
Web网页:木马程序隐藏在HTML文件中
红色代码、广外女生、冰河、RootKit
间谍软件Spyware(刺探):在用户不知情时安装的软件,执行用户非期望的功能
特征:弹出广告、浏览器重定向、记录击键、浏览习惯、窃取用户隐私
2345浏览器、2345压缩软件;驱动精灵、驱动人生弹广告等
逻辑炸弹Logic Bombs(危机):依附在其他软件中,具有触发执行破坏能力的程序代码
特征:计数器触发、时间触发、文件触发、特定用户访问触发等
主动:
陷门(非授权访问)特权:允许用户避开系统安全机制而访问系统的代码
软件开发商为调试和维护系统而设定的功能
网络蠕虫Worms(传播):具有自我复制和传播能力、可独立自动运行的恶意程序
特征:通过有漏洞的网络主机节点传播
类型:
随机扫描:IP段随机扫描Slammer蠕虫
顺序扫描:所在网段扫描W32.Blaster
选择性扫描:有选择性去扫描感染目标主机
僵尸网络Botnets(傀儡):攻击者将僵尸程序植入主机,进而操控受害机执行恶意活动的网络
构建方式:远程漏洞攻击;弱口令扫描入侵;邮件附件;恶意文档;文件共享;
早期:类蠕虫病毒主动扫描+远程漏洞攻击
目前:网页挂马(主流)
细菌(消耗):具有自我复制功能的独立程序。
通过复制本身来消耗系统CPU、内存和磁盘资源
15、知识产权归属
知识产权:是指民事主体对智力劳动成果依法享有的专有权利
商标权:
《商标法》
专利权:
《专利法》
16、数据传输方式
- CPU:程序查询(CPU主动、轮询外设、原理简单、CPU效率低)
- 程序中断(外设主动、耗时)
- DMAC:DMA方式,速度快、SPU不参与、DMAC临时接管
- I/O通道:类似DMA方式,CPU干预更少
DMA直接存储器访问
17、调度算法
资源分配
18、内存管理
程序(进程)在逻辑上被分成软工大小相同的页面,每个页面可以离散保存到不同主存块中。
页式存储,解决内存利用率不高程序分解为页page离散保存到主存中。
优化:根据局部性原理,可能会频繁访问x号逻辑页面
措施:将X号逻辑所对应页面项,拷贝到快表中TLB,以提高逻辑号转换主块页号的速度。
TLB旁路转换缓冲或者转换检测缓冲区,类似cache的硬件。
内存映射:将逻辑地址映射到物理地址
当物理内存用尽后,Windows才会启用分页文件。
页表需要连续存放,当页表很大时,需要占用多个连续页框
无需整个页表城主内存
可以按需要将页面调入内存,缺页中断。
多级页表,把内存分成区块来管理,将原来的映射关系改成区块索引和区块内偏移。多级页表只保存使用中的区块,可以大大减少页表项数。
19、线程
进程是最小的分配资源单位。
线程是最小的执行单位,是进程任务的实际执行者,进程中通常包含了多个不同运行的线程。
线程基本独立拥有系统资源,只占用运行中必不可少的一点资源。
线程必须依赖进程才能运行
线程与同属一个进程的其他线程共享进程所拥有的全部资源;
一个线程可以创建和撤销另一个线程;
同一个进程的多个线程可以并发执行。
共享:地址空间、全局变量、打开文件、子进程、闹铃、信号及信号服务程序、记账信息
独享:程序计数器、寄存器、栈、状态字
20、内存模型
内栈空间(高地址)
栈区:函数被调用时压入栈,结束时销毁
动态链接库:程序运行期间,加载和卸载
堆区:程序员释放/系统回收
全局数据区:可读写
常量区:只读
程序代牧区:只读
保留区(低地址)
21、函数
函数是一段具有独立功能的程序代码,是程序模块的主要成分。
22、编程语言
23、软件生命周期
软件生命周期由软件定义、软件开发、和运行维护三个时期组成。
阶段:需求分析---软件设计---程序编码---软件测试---运行维护
常用软件开发模型:瀑布模型、原型模型、增量模型、螺旋模型、V模型等。
24、软件需求分析
任务:确定待开发软件的功能、性能、数据和界面等要求
步骤:确定系统综合要求、分析系统数据要求、导出系统逻辑模型、修正项目开发计划、开发演示约束。
25、数据流图
数据流图,又称数据流程图DFD,是一种便于用户理解、分析系统数据流程的图形工具。摆脱了系统物理内容,精确地在逻辑上描述系统功能、输入、输出和数据存储等,是系统逻辑模型重要组成部分。
数据流:由一组固定成分的数据组成,表示数据流向。每个数据流都必须有名字(除流入和流出)
加工:描述了输入数据流到输出数据流之间的变换。每个加工都有名字和编号(分层DFD的层次和图,属于子加工)
数据存储:表示存储的数据。每个数据存储都有名称。
外部实体:存在于软件系统之外的人员或组织。指出系统所需数据的发源地和所产生数据的归宿地。
例:
26、UML图
UML统一建模语言:是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。具有严格的语法和语义规范,采用一组图形符号来描述软件模型,是软件建模的重要工具。可以建立需求模型、逻辑模型、设计模型和实现模型等。
作用:
为软件系统建立可视化模型
为软件系统建立构件(模型---多种语言代码)
为软件系统建立文档
三个主要模型:
- 功能模型:从用户的角度展示系统的功能,包括用例图(谁使用系统,用系统可以做什么?)
- 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图等。
- 动态模型:展现系的内部行为,包括时序图(序列图),活动图,状态图等。
静态图:用例图,类图,对象图,包图,构件图,部署图
动态图:状态图,活动图,协作图,序列图
27、FTP协议
FTP文件传输协议,用来在计算机之间传输文件。
FTP服务匿名FTP用户名是anonymous,密码通常是guest或者使用者E-maill地址。出于安全目的,多数匿名FTP服务器不允许上传、修改和删除操作。
FTP在客户端与服务器内部建立两条TCP连接:
- 21端口负责控制连接,主要用于传输命令和参数
- 2端口负责数据连接,主要用于传送文件
推荐使用被动模式,在同一局域网内可以使用主动模式
安全性:客户端通常配置本地防火墙,服务器20端口很难连接到指定端口
连通性:NAT网络时需配置局域网端口映射。
SFTP,数据传输必须通过安全通道SSH进行(基于网络协议SSH安全外壳)的协议
FTPS是为FTP添加传输层安全TLS和安全套接层SSL加密协议支持的扩展协议
TFPT简单文件传输协议,是TCP/IP协议簇中,基于UDP协议用来在客户端与服务器之间简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
28、DNS协议
29、邮件协议
域名解析流程:先检查本机缓存配置+hosts解析
30、网络安全防护
注入攻击
第一代防火墙:包过滤防火墙
第二代防火墙:应用代理网关防火墙
第三代防火墙:状态检测技术防火墙
防火墙功能:过滤数据包、访问控制、审计和报警、地址转换NAT、代理
31、数据库模式
SQL分类:
- DDL数据定义语言create、drop、alter
- DML数据操纵语句insert、delecte、update、select
- DCL数据控制语句grant、revoke
数据库系统三级模式两级映像
两级映像保障数据的逻辑独立性和物理独立性
外模式---(映像)---模式---(映像)---内模式,保持数据独立性
视图(虚表):并不独立存储在数据库中,数据库存放视图定义,不存放对应数据
索引:特殊的查询表
物理级数据库(内模式)是客观存在的,是进行数据库操作的基础;
概念级数据库是物理数据库的一种逻辑、抽象的描述(即模式);
用户级数据库是用户与数据库的接口,是概念级数据库的一个子集(外模式)。
改变内模式,只需要修改模式、内模式映像(物理独立性);
改变概念模式(逻辑结构),只需要修改外模式、模式映像(逻辑独立性)。
32、数据库模型
网状模型(有向图,1961),对现实的抽象(多对多)
特点:存取效率高;数据结构复杂、维护开发困难
代表:DBTG系统模型
层次模型(树,1966),是网络结构的特例(1对多)
特点:以树形拓扑存储和查询、高效率、高可用性;被大型银行、保险等行业广泛使用
代表:IBM的IMS,使用DL/1语言
关系模型,关系代数的抽象
目前最流行的数据库,结构简单,实体关系被映射为二维表;操作方便,但查询效率低,使用结构化查询语言sql语言
1970年埃德·加·弗兰克·科德,关系数据库之父,1981年图灵奖
33、完整性约束
约束:对一个表中的操作的限制
关系模型的完整性规则:是对关系的某种约束条件
实体:客观存在的物体
元组:表中每行就是一个元组
属性:实体的某个特征
码:能唯一显示实体的属性集
候选码:属性组能唯一标识实体,而其子集不能
主属性:候选码的所有属性
非主属性:不在候选码内的所有属性
主码:从所有候选码中选择一个作为主码
外码:定义两表关系,常为其他关系模式主键。
元组约束:可设置不同属性间取值的相互约束条件
列级约束既可以在列定义时声明,也可以在列定义后声明
34、数据库关系运算
X---笛卡尔积
列数:R列数+S行数
行数:R行数*S行数
例如:
无条件连接:笛卡尔积(没有实际意义)
有条件连接:
对笛卡尔积结构进行选择操作;
等值连接:对笛卡尔积操作进行操作;
自然连接:对笛卡尔积在公共属性上的等值连接,去掉重复项
投影,除去相同的;
除法:同时从水平和垂直方向进行运算。
象集(假设x为某属性或属性集):
选择行:找出X在表中行的集合R
选择列:找出X集合R中不包含X的列的集合C
35、SQL语句
1974年由Boyce和Chamberlin提出,是关系数据库中最普遍使用的语言,是一种通用的、功能强大的关系数据库的标准语言。
互交式(自含式)SQL:作为独立语言在终端互交
嵌入式SQL:嵌入到高级语言程序中。
ANSI(美国国家标准机构)SQL:对ANSI SQL进行修改后在1992年采用的标准SQL-92或SQL2;
SQL-99标准,也称SQL3标准,语法更复杂,可读性更强。
内连接:查询的表能匹配上的记录都显示
外连接:主表数据无条件显示,副表匹配不上显示null。
36、数据库事务
数据库事务,是一个数据库操作序列,具有ACID属性;是数据库操作的基本逻辑单位;也是恢复和并发控制的基本单位;一个程序可包含多个事务。
作用:数据保障机制;简化了编程模型,使我们不必去考虑应用访问数据库时可能存在的潜在错误和并发问题。
begin 事务 #开始事务
commit 事务#提交事务
rollback事务#回滚事务
- 原子性Atomicity,特点:事务全部操作
- 一致性Consistency,特点:合法数据才能(受关系约束和函数约束)入库
- 隔离性Lsolation,特点:多事务并发执行时,相互之间不影响。
- 持久性Durability,特点:某事务提交后,对数据的改变是永久性的,不会被回滚。
【一致性是其他三个特性的目的】
37、SQL授权销权(DCL)
grant,把指定权限分配给特定用户,如果用户不存在则创建
grant 权限 on 数据库名.表名 to 用户[WITH GRANT OPTION]
revoke,回收授于用户的权限
revoke 权限 on 数据库名.表名 from 用户[CASCADE|RESTRICT(默认)]
特权只能由授予特权的用户撤销,或者通过CASCADE(级联)操作
38、触发器
由数据库事件(INSERT、UPDATAE和DELETE)来自动触发某个操作
创建触发器
在一个表上最多建立6个触发器
for each row行级触发器(sql影响1行就触发1次)
for each statement 语句级触发器(默认,1条sql触发一次)
修改触发器
需要对每一行数据做处理,使用行级触发器
语句执行完成后,做该语句的后续业务处理,用语句触发器
删除触发器
一个事务可以包含多条DML、1条DDL或1条DCL
事务:一般定义在程序中;是由用户定义的数据库操作序列,可包含存储过程;
存储过程(可以理解为数据库函数):存储在数据库中,可接收和输出参数;编译后运行,可包含多条语句或事务;
触发器:存储器在数据库中,和表关联的特殊存储过程;会自动执行
39、数据库关系理论
数据依赖:各属性之间的互相依赖、相互制约的联系
函数依赖(语义完整性约束),不能表示属性值之间的一对多联系 ;是多值依赖的特例;
平凡依赖
非平凡依赖
完全函数依赖
局部函数依赖
传递依赖
多值依赖(属性值冗余),多值依赖是连接依赖的特例;函数依赖不能表示属性值之间的一对多联系,属性之间有些虽然没有直接关系,但存在间接关系,这种关系称为多值依赖
连接依赖:R所有属性在实例上分别投影,投影结果进行连接运算后,结果仍然等于实例本身;
40、属性闭包
Armstrong公理 函数依赖公理
41、数据库范式
数据库范式(范式Normal Form:规则)
1NF 属性不可再分
2NF 非主属性完全依赖于主键
3NF 非主属性直接依赖于主键
BCNF巴斯克德范式 消除3NF主属性依赖(3.5NF)
4NF 消除3NF多值依赖(在满足第三范式前提下,消除主属性的依赖;建议表只有1个候选键)需求>性能>表结构
所有主属性对每一个不包含它的候选键,也是完全函数依赖
42、存储过程
存储在数据库中,一组为了完成特定功能的SQL语句集。接收参数输入,是“数据库函数”;
支持数据库调用和程序调用
1、创建存储过程
CREATE procedure 名称 (IN|OUT|INOUT 参数名 参数数据类型)
BEGIN
执行语句
END
默认IN参数,只用于传入
传出参数OUT,可以改变,并可返回
INOUT同时支持传入和返回
2、调用存储过程
call 存储过程(参数1,参数2)
3、修改存储过程
将CREATE改成ALTER
4、删除存储过程
将CREATE改成DROP
变量declare和常量define,条件语句if then else,循环语句while、repeat,游标cursor
特点:
能完成较复杂判断和运算
可编程能力强,灵活
SQL编程代码可重复使用
执行速度较快
节省网络开销
增强数据安全性
存储过程VS触发器
存储过程是一组存储在数据库中的SQL语句,支持重复调用。触发器是一种特殊的非用户直接调用的存储过程,只在数据修改时触发。
用户可以使用Execute或Exec语句来调用存储过程,无法直接调用触发器。触发相关事件时,会自动执行触发器。
存储过程支持输入参数,触发器中不支持
存储过程可以返回值,触发器不行。
可在存储过程中使用事务,触发器内不允许事务。触发器中可以调用存储过程。
43、数据库恢复
建立数据冗余:数据转存和建立日志文件
数据库CPU使用率高 单位时间CPU资源=查询执行的平均成本✖单位时间执行的查询数量
大量慢SQL占用CPU资源,拖垮了数据库,常表现为:查询数据量过大,全表扫描、锁抢占甚至死锁、复杂查询等;
QPS过高,本质上是数据库承载的流量过大。
44、数据库锁
锁粒度(精度程度)划分
45、封锁协议
并发带来数据不一致性,需由数据库提供隔离机制
严重性:修改丢失>脏读>不可重复读>幻读
数据库锁协议,在保证事务一致性的前提下,尽可能提高并发性。
封锁协议:对数据加锁类型,加锁时间和释放时间的规则描述
两段锁协议:对任何数据进行读写前,都必须先加锁;释放某个锁以后,不再去尝试获取其他锁。
“两段”(两阶段):一是获得锁;二是释放锁
串行调度,不允许事务并发,所以事务排队,一个接着一个串行执行。事务调度没有交叉
两端锁是可串行化的充分非必要条件。
46、并发调度
调度:一个或多个事务的主要操作按时间排序的一个序列。
可串行调度:事务并发调度的执行结果与某个串行调度的执行结果等价。
等价前提:保证对同一数据对象的读写操作和写写操作相对位置不变可串行调度
按不同顺序串行调度,结果可能不同,但数据仍然保持一致性状态。
47、数据库设计
需求分析---概念结构设计---逻辑结构设计---物理结构设计---数据库实施---数据库运维
48、数据字典
定义:是各类数据描述的集合,是对数据的描述(元数据),而非数据本身。
内容:包括数据项、数据结构、数据流、数据存储和处理过程5个部分
至少应包含每个字段的数据类型,每个表的主键和外键等。
作用:数据字典和数据流图共同构成系统的逻辑模型。
没有数据流图,数据字典难以发挥作用
没有数据字典,数据流图就不严格。
49、ER模型
实体:(可以相互区分的)具体的人事务或抽象概念
属性:实体的某个特征
域:属性的取值范围
元或度:属性的个数
元组:记录,关系表中的每个元素
分量:元组中的一个属性值
码-键:唯一标识实体的属性集,是实体集的性质
一元联系:也称递归联系,即同一个实体的实例之间的联系
二元联系:两个不同实体的实例之间的联系
三元联系:三个不同实体的实例之间的联系
...
联系的元数:一个联系涉及到的实体个数,称为该联系的元数或度数。
联系的属性:联系也可以有附加的属性
50、大数据
具有数据量巨大、来源多样、生成极快且多变等特征,且难以使用传统数据体系结构有效处理的,包含大量数据集的数据
其本质是获取数据价值
大数据的价值在于通过加工实现数据增值。
特征:多样性、速度、数量、真实性
大数据技术:是使得大数据中蕴含的价值得以挖掘和展现的一系列技术与方法,包括数据采集、预处理、存储、分析挖掘、可视化等相关技术
大数据应用:是对特定的大数据集、集成应用大数据系列技术与方法,获得有价值信息的过程。
51、数据仓库
产生原因:数据库面向日常事务处理,不适合进行分析处理
基本特征:
面向主题:按需求将不同平台数据源按设定主题进行划分整合。
集成性(最重要且复杂):数据是在原分散数据库抽取、清理基础上,消除源数据的不一致性得到
不可更新(相对稳定性):数据长期保留,主要操作是查询,以及定期加载和刷新。分析处理时不更新
随时间变化(动态性):定期刷新。周期性抽取数据,转换后集成到仓库中;超期或无用时删除。
OLTP联机事务处理,是传统关系型数据库的主要应用,主要是基本、日常的事务处理,如:银行交易。特征:快速响应。前台数据立刻处理,快速给出结果
OLAP联机分析处理,是数据仓库系统的主要应用,支持复杂分析操作,侧重决策支持,并且提供直观易懂的查询结果。
52、分布式数据库DDBS
定义:是地理上分散,管理上集中的数据管理系统
特性:分散与集中相统一。
特点:数据集中控制性、数据独立性、数据冗余可控性、场地自治性、存取有效性。
53、并行计算
定义:云计算下把海量数据分布到多个结点上,将计算并行化,利用多机的计算资源,加快数据处理的速度。
特点:
常选择低成本且易扩展的低端服务器;
节点硬件失效和软件出错是常态,采用错误检测和恢复机制,无须人工干预;
将处理向数据迁移。计算节点优先处理本地数据,无法处理时才就近寻找其他可用节点;
面向顺序式大规模数据的磁盘访问处理;
程序员无须处理细节,系统框架自动完成;但需定义任务:实现Map函数和Reduce函数
支持无缝扩展,性能可随节点数增长保持近似线性的增长
MapReduce最早是由Google公司研究提出的一种面向大规模数据处理的并行计算模型和方法。是经典的大数据并行处理技术。
54、补充
MVCC,多版本并发控制协议,提供了一种解决读写冲突的无锁并发控制,读不会阻塞写,写不会阻塞读。
检查点之后:已提交的事务需要重做REDO
未提交的事务需要撤销UNDO
检查点之前:已提交的事务无需处理