防卫式程序设计:
是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤销错误状态,恢复到一个已知的正确状态中去,其实现策略包括错误检测、破坏估计和错误恢复三个方面。
双机容错技术:
是一种软硬件结合的容错应用方案。该方案是由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成。
双机容错系统采用“心跳”方法保证主系统与备用系统的联系。所谓心跳,是指主从系统之间相互按照一定的时间间隔发送通信信号,表明各自系统当前的运行状态。一旦心跳信号表明主机系统发生故障,或者备用系统无法收到主系统的心跳信号,则系统的高可用性管理软件认为主系统发生故障,立即将系统资源转移到备用系统上,备用系统替代主系统工作,以保证系统正常运行和网络服务不间断。
工作模式:双机热备模式;双机互相备份模式;双机双工模式。
集群技术:
将多台计算机组织起来进行协同工作,它是提高系统可用性和可靠性的一种技术。在集群系统中,每台计算机均承担部分计算任务和容错任务,当其中一台计算机出现故障时,系统使用集群软件将这台计算机从系统中隔离出去,通过各计算机之间的负载均衡机制完成新的负载分担,同时向系统管理人员发出警报。集群系统通过功能整合和故障过渡,实现了系统的高可用性和可靠性。
特点:可伸缩性、高可用性、可管理性、高性价比、高透明性。
分类:高性能计算集群、负载均衡集群、高可用性集群。
负载均衡:
是集群系统中的一项重要技术,可以提高集群系统的整体处理能力,也提高了系统的可靠性,最终目的是加快集群系统的响应速度,提高客户端访问的成功概率。集群的最大特点是多个节点的并行和共同工作,如何让所有节点承受的负荷平均,不出现局部过大负载或过轻负载的情况,是负载均衡的重要目的。
比较常见的负载均衡实现技术主要有以下几种:
1、基于特定软件的负载均衡,很多网络协议都支持重定向功能,例如,基于HTTP重定向服务,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新定位到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
2、基于DNS的负载均衡属于传输层负载均衡技术,其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端访问引导不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
3、基于NAT的负载均衡,将一个外部IP地址映射为多个内部的IP地址,对每次连接需求动态地转换为一个内部节点的地址,将外部连接请求引到转换得到地址的那个节点,从而达到负载均衡的目的。
4、反向代理负载均衡,来自Internet上的连接请求以反向代理的方式动态地发送内部网络上的多个节点进行处理,从而达到负载均衡。
项目管理:
进度管理:
PERT( 项目评估与评审技术)图是一种图形化的网络模型,描述一个项目中任务和任务之间的关系,每个节点表示一个任务,通常包括任务编号、名称、开始和结束时间、持续时间和松弛时间。
Gantt图是一种简单的水平条形图,它以一个日历为基准描述项目任务,横向坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间、结束时间,线段的长度表示完成该任务所需的时间。
PERT图主要描述不同任务之间的依赖关系;Gantt图主要描述不同任务之间的重叠关系。
关键路径:
项目的最短工期,但是从开始到结束时间最长的路径。进度网络图中可能有多条关键路径,因为活动会发生变化,因此关键路径也在不断变化中。
关键活动:关键路径上的活动,最早开始时间=最晚开始时间
每个节点活动会有如下几个时间:
1、最早开始时间(ES),某项活动能够开始的最早时间。
2、最早结束时间(EF),某项活动能够完成的最早时间。EF=ES+工期
3、最迟结束时间(LF),为了使项目按时完成,某项活动必须完成的最迟时间
4、最迟开始时间(LS),为了使项目按时完成,某项活动必须开始的最迟时间。LS=LF-工期
计算公式:自由浮动时间=紧后活动最早开始时间的最小值-本活动的最早完成时间
总浮动时间 | 自由浮动时间 | |
概念 | 不延误项目总工期,路径上活动可推迟的时间 | 不影响任何紧后活动最早开始日期下,某活动可推迟的时间 |
公式 | LS-ES=LF-EF(关键路径-本路径时间) | 紧后活动最早开始时间的最小值-本活动的最终完成时间 |
适用范围 | 针对路径,路径上所有活动公用,用完就不再有 | 针对单个活动 |
备注 | 关键路径,总时差一般为0 | 关键路径上的活动没有自由时差;活动为唯一紧后活动的没有自由时差。 |
数据库系统(必备)
不规范带来的四大问题:
数据库设计:
需求分析:即分析数据存储的要求和边界,产出物有数据流图、数据字典、需求说明书。
概念设计:在需求分析阶段 产生的需求说明书的基础上,按照特定的方法将他们抽象为一个不依赖于任何DBMS的数据模型,即概念模型。概念模型的表现形式即ER 模型。
逻辑设计:主要任务是将概念设计阶段好的ER图转换为 与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(如,关系模式)
物理设计:是对给定的逻辑模型选取一个最适合应用环境的物理结构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。
水平分割:联想水平分片,根据一列或多列数据的值把数据行(水平记录)放到两个独立的表中。
垂直分割:是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力(称为场地自治),它可以执行局部应用,同时,每个节点也能通过网络通信子系统执行全局应用。
并发控制:
事务的ACID特性:原子性、一致性、隔离性、持久性
丢失更新:事务1对数据A进行修改并写回,事务2也对A进行修改并写回,此时事务2写回的数据会覆盖事务1写回的数据,就丢失事务1对A的更新。即对数据A的更新会被覆盖
不可重复读:事务2读A,而后事务1对数据A进行了修改并写回,此时若事务2再读A,发现数据不对。即一个事务重复读A两次,会发现数据A有误。
读脏数据:事务1对数据A进行修改后,事务2读数据A,而后事务1回滚,数据A恢复了原来的值,那么事务2对数据A做的事情是无效的,读到了脏数据。
封锁协议:
X锁是排他锁(写锁)。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。
S锁是共享锁(读锁)。若事务T对数据对象A加上S锁,则只允许T读取A,但不能修改A,其他事务只能再对A加S锁(也即能读不能修改),直到T释放A上的S锁。
丢失更新加锁:一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放
读脏数据加锁:二级封锁协议,一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。
不可重复读加锁:三级封锁协议,一级封锁协议加上事务T在读取数据R之前先对其加S锁,知道事务结束才释放。
数据库性能优化:硬件升级、数据库设计、索引优化、查询优化
数据库的完整性约束:实体完整性、参照完整性、用户定义完整性、触发器。
数据库的安全性:
用户标识和鉴别:最外层的安全保护措施,可以使用用户账户、口令和随机数检验等方式
存取控制(数据授权):对用户进行授权,包括操作类型(例如:查找、更新或删除等)和数据对象的权限
密码存储和传输:对远程终端信息用密码传输
视图的保护:通过视图的方式获取授权
审计:使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来。
视图的概念以及优缺点:
视图是从一个或多个表导出的表。视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。