系统分析师
系统工程
信息系统基础
信息的特征:
- 客观性(主观信息+客观信息 主观信息最终要转化为客观信息)
- 普遍性(信息是普遍存在的)
- 无限性(客观世界是无限的,所以信息是无限的)
- 动态性(信息是随着时间的变化而变化)
- 相对性(不同的认识主体看待同一事物获得的信息可能是不同的)
- 依附性(任何信息必然由客观事物产生的,不存在无源信息且任何信息都需要依附于一定的载体而存在不能完全脱离物质而独立存在)
- 变换性(通过处理可以实现变换或转化,形式和内容发生变化)
- 传递性(信息在时间上传递就是存储,在空间上传递就是转移或扩散)
- 层次性(客观世界是分层次的)
- 系统性(信息可以是一个集合,可以形成信息系统)
- 转化性(信息的产生不能没有物质,信息的传递不能没有能量。有效的使用信息可以将信息转化为物质或能量)
故障管理的目标:故障检测、故障报警、故障信息管理、排错支持工具、检索/分析故障信息
adapter的设计意图是将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容二不能一起工作的那些类可以一起工作,
数据流图和功能流程图
数据流图可以了解系统功能之前的数据的流动情况
功能流图是分析各功能之间的关系和流程,检验是否识别出所有功能。
机界面设计
黄金三原则-置于用户控制之下 在定义人机交互方式时,不强迫用户采用不是必须的或者不情愿的方式来操作,允许交互的中断和撤销 当用户操作技能等级提高时,可以实现流水化的交互方式,允许用户定制交互方式, 允许用户和出现在屏幕上的对象直接进行交互
数据库设计
数据库设计过程:需求分析(数据流图,数据字典,需求说明书)、概念结构设计(E-R图)、逻辑结构设计(关系模式及二维表)、物理设计
企业信息化
- 目的:提高企业的竞争力
- 企业信息化的需求
- 战略需求:提升组织的竞争能力
- 运作需求:实现信息化战略目标、运作策略、人才培养的需要
- 技术需求:信息技术层面上对系统的完善,升级,集成
企业信息化方法
- 业务流程重构方法:彻底的,根本的重新设计流程
- 核心业务应用方法:围绕核心业务推动信息化
- 信息系统建设方法:
- 主题数据库方法:建设面向企业核心的数据库,消除信息孤岛
- 资源管理方法:为企业资源管理提供工具
- 人力资本投资方法:把一部分企业优秀员工看做事一种资本
企业信息化工程核心技术:信息技术、自动化技术、现代管理技术、制造技术
企业资源计划(ERP):财会管理、物流管理、生产控制管理、人力资源管理 打通了供应链扩展到了非制造业重心转移到财务上
- 物料需求计划(MRP)
- 制造资源计划(MRPII)--核心是物流主线是计划
- 企业资源计划(ERP)--打通了供应链扩展到了非制造业重心转移到财务上
客户关系管理(CRM)
- 目的:提高收入
- 核心思想:以客户为中心
- 主要模块:销售自动化、营销自动化、客户服务与支持、商业智能
- 价值:提高工作效率,节省开支、提高客户满意度、提高客户忠诚度
供应链管理(SCM)
- 理念:强强联合,整合与优化‘三流’,打通企业间的信息孤岛,严格的数据交换标准。
- 三流:信息流、资金流、物流
- 信息流分为:需求信息流(需方刀供方)、供应信息流(供方到需方)
商业智能(BI)
- 在线分析处理(OLAP):数据分析、只读,复杂查询、少量大型事务、批量更新、数据库设计师面向主题的、查询复杂程度高、用户是决策者分析师、多维数据模型、查询速度和分析快、例如数据仓库
- 在线事务处理(OLTP):数据处理、频繁的写入更新删除、大量小型事务、实时更新、数据库设计师面向应用、查询复杂度低、前线员工日常用户、关系模型、数据处理速度和并发性、例如在线购物和银行系统
- 数据仓库:特点--面向主题、集成的、相对稳定的(非易失的)、反应历史变化的(时变的)
- 按主题组织数据,整个企业面对一个数据仓库,查询为主,基本没有修改和删除,各个阶段信息都有,可预测未来趋势
- 数据挖掘
- 方法分类:关联分析、序列模式分析、分类分析、聚类分析
数据湖
- 定义:是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。---由原始数据输入可输出为业务数据处理以及数据分析处理
- 包含:结构化数据(表格数据)、非机构化数据(图片,视频,音频,文档等)
- 数据湖和数据仓库的区别:数据仓库仅支持数据分析处理、数据湖支持数据分析处理也支持事务处理。
计算机组成与结构
浮点数表示
- 符号位:表示正负,0表示正数,1表示负数。
- 阶码:表示指数的大小,通常用移码表示。
- 尾数:表示有效数字的大小,通常用原码表示。
浮点数特点
- 一般尾数用补码,阶码用移码
- 阶码的为数决定数的表示范围,位数越多,表示范围越大
- 尾数的位数决定数的精度,位数越多,精度越高
- 浮点数对阶计算,将阶码小的数向阶码大的数对齐,将阶是通过较小的数向较大的数对齐,对齐后,尾数相加,阶码相加
Flynn分类法
- 单指令流单数据流(SISD):这是传统的串行计算机,每个时钟周期处理一条指令和一条数据。早期的大型机、微型机和单核PC都属于这一类。
- 单指令流多数据流(SIMD):在这种体系结构中,所有处理器在单个时钟周期内使用相同的指令处理多条数据。矩阵处理器和向量流水线是典型的例子。
- 多指令流单数据流(MISD):在这种极少见的体系结构中,多个处理单元使用不同的指令独立处理同一条数据。实时容错计算机和单一信号多频滤波器可能采用这种架构。
- 多指令流多数据流(MIMD):每个处理器执行各自的指令和处理各自的数据。超级计算机、集群服务器和多核计算机都是这一类的代表。
CISC与RISC
- CISC(Complex Instruction Set Computer):复杂指令集计算机,它使用大量的指令集,包括复杂的指令,如跳转、循环、算术运算等。CISC计算机通常具有更少的指令,但每个指令可以执行更多的操作,因此可以减少程序所需的指令数量。CISC计算机的指令长度通常不固定,可以是1到多个字节。
- RISC(Reduced Instruction Set Computer):精简指令集计算机,它使用少量的指令,每个指令执行的操作相对简单。RISC计算机通常具有更长的指令长度,但每个指令可以执行的操作相对简单,因此可以减少程序所需的指令数量。RISC计算机的指令长度通常固定,可以是2或4个字节。
CISC与RISC的区别
| CISC | RISC | |
|---|---|---|
| 指令数量 | 多 | 少 |
| 指令复杂程度 | 复杂 | 简单 |
| 指令长度 | 变长,不固定 | 等长,固定 |
| 寻址方式 | 多 | 少 |
| 指令格式 | 多 | 少且规整 |
| 各种指令使用频率 | 相差很大 | 相差不大 |
| 各种指令执行时间 | 相差很大 | 相差不大 |
| 软件开发时间 | 较短 | 较长 |
| 指令周期 | 多周期为主 | 单周期为主(采用流水线技术,大部分指令在一个机器周期内完成) |
| CPU中寄存器数量 | 多 | 多(由于减少访存,增加寄存器,其余的数据放在这访问) |
| 指令并行性 | 低 | 高 |
| 可访存指令 | 不加限制 | 只有取数LOA/存数STORE指令访存(减少了访问周期) |
| 控制器实现方式 | 微程序控制 | 硬布线控制 |
| 优化编译实现 | 很难 | 较容易(依赖编译程序的优化来更有效地支持高级语言) |
| 程序源代码长度 | 较短 | 较长 |
CISC的应用场景
- 高性能计算:需要处理复杂计算和大量数据操作的场景,如服务器和高性能工作站。
- 向后兼容性要求高:需要运行大量遗留软件的系统,如某些企业级应用。
- 高级语言编译:CISC架构适合编译高级语言,因为其复杂的指令集可以映射高级语言的复杂操作。
- 特定领域的应用:如图形处理和信号处理,这些领域可能需要特定的复杂指令来加速计算。
RISC的应用场景
- 移动设备:如智能手机和平板电脑,由于有限的资源和功耗要求,RISC架构更适合。
- 嵌入式系统:如汽车电子、工业控制、医疗设备等,这些系统通常对成本和功耗有严格的要求。
- 服务器和高性能工作站:虽然CISC架构在某些高性能计算领域仍然占主导地位,但在某些情况下,RISC架构也可以提供足够的性能和成本效益。
- 云计算和数据中心:RISC架构可以提供更高的能效比,适合大规模数据中心和云计算环境。
流水线
流水线的基本概念
流水线是一种将多个操作分解为多个子操作,并让这些子操作在不同的时间点并行执行的技术。通过流水线,可以减少每个操作的总时间,从而提高整个系统的吞吐量。
流水线周期
流水线周期为执行时间最长(最耗时)的一段。流水线周期是流水线性能的重要指标之一,它决定了流水线的吞吐量和效率。
流水线执行时间
流水线执行时间是指流水线完成所有操作所需的时间。流水线执行时间可以通过以下公式计算:
流水线吞吐率
流水线吞吐率是指流水线在单位时间内完成的操作数量。流水线吞吐率可以通过以下公式计算:
流水线的加速比计算
加速比是指流水线执行时间与串行执行时间之比。加速比可以衡量流水线的效率。加速比可以通过以下公式计算:
RISC中的流水线技术
- 超流水线(Super Pipe Line)技术。它通过细化流水、增加级数来提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间。
- 超标量(Super scalar)技术。它通过内装多条流水线来同时执行多个处理,其实总频率与一般流水接近,却有更小的CPI。其实质是以空间换取时间。
- 超长指令字(Very Long Instruction Word,VLIW)技术和超标量都是20世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW则充分发挥软件的作用,而使硬件简化性能提高。
超标量流水线
超标量流水线是一种多流水线结构,其中每个流水线阶段可以并行执行多个指令。超标量流水线通过增加流水线级数和并行执行多个指令来提高性能。 超标量流水线的基本原理是将每个指令分解为多个子操作,并将这些子操作分配给不同的流水线阶段。每个流水线阶段可以并行执行多个指令,从而提高系统的吞吐量。 超标量流水线的关键在于如何调度和分配指令,以实现并行执行。这需要硬件和软件的协同工作,包括指令调度、流水线分配和资源管理等方面。
计算机组成结构
计算机组成结构的基本概念
计算机组成结构是指计算机硬件系统的组织方式,包括硬件组件、连接方式和数据流等。计算机组成结构是计算机硬件设计的基础,它决定了计算机的性能、功耗和成本等关键指标。
计算机组成结构的基本组成
计算机组成结构的基本组成包括以下几个部分:
- 中央处理器(CPU):中央处理器是计算机的核心,负责执行指令和进行计算。它包括算术逻辑单元(ALU)、寄存器组和控制单元等部分。- 存储器:存储器是计算机的内存,用于存储数据和程序。它包括随机存取存储器(RAM)和只读存储器(ROM)等部分。
- 输入输出设备:输入输出设备是计算机与外部世界进行交互的接口,包括键盘、鼠标、显示器、打印机等部分。
- 总线:总线是计算机各部分之间的通信通道,用于传输数据和指令。它包括数据总线、地址总线和控制总线等部分。
CPU的基本组成
CPU的基本组成包括以下几个部分:
- 运算器:运算器是CPU的核心,负责执行算术和逻辑运算。它包括算术逻辑单元(ALU)、累加器、乘法器、除法器等部分。
- 算术逻辑单元(ALU):算术逻辑单元是CPU的核心,负责执行算术和逻辑运算。
- 累加寄存器(AC):通用寄存器,为ALU提供操作数和存储运算结果。
- 数据缓冲寄存器(DR):写内存时,暂存指令或数据。
- 状态条件寄存器(PSW):存储运算结果的状态信息,如运算结果是否溢出、是否为零等。
- 控制器:控制器是CPU的控制单元,负责解释和执行指令。它包括指令寄存器(IR)、程序计数器(PC)、指令译码器(ID)等部分。
- 程序计数器(PC):程序计数器是CPU中的一个寄存器,用于存储下一条要执行的指令的地址。
- 指令寄存器(IR):指令寄存器是CPU中的一个寄存器,用于存储当前正在执行的指令。
- 指令译码器(ID):指令译码器是CPU中的一个单元,用于解释指令并生成控制信号。
- 时序部件:时序部件是CPU中的一个单元,用于生成时钟信号,控制指令的执行顺序。
冯诺依曼结构与哈佛结构
- 冯诺依曼结构:冯诺依曼结构是一种计算机体系结构,其中程序和数据都存储在同一个存储器中,并通过同一个总线进行传输。冯诺依曼结构的特点是程序和数据共享同一个存储器,因此可以同时进行程序执行和数据存储。
- 一般用于PC处理器,如I3 I5 I7等。
- 指令和数据共享同一个存储器,因此可以同时进行程序执行和数据存储。
- 指令和数据都通过同一个总线进行传输,因此可以同时进行指令和数据传输。
- 哈佛结构:哈佛结构是一种计算机体系结构,其中程序和数据存储在不同的存储器中,并通过不同的总线进行传输。哈佛结构的特点是程序和数据存储在不同的存储器中,因此可以同时进行程序执行和数据存储,从而提高系统的性能。
- 一般用于嵌入式系统处理器(DSP)数据信号处理器(FPGA)等。
- 指令和数据存储在不同的存储器中,因此可以同时进行程序执行和数据存储,有较高数据的吞吐量。
- 有4条总线:指令总线、数据总线、地址总线和控制总线。
嵌入式 - 芯片
- DSP(数字信号处理器):DSP是一种专门用于数字信号处理的微处理器,具有高性能、低功耗和低成本的特点。它广泛应用于通信、音频、视频等领域。
- SoC(系统级芯片):SoC是一种将多个功能模块集成在一个芯片上的系统,具有高性能、低功耗和低成本的特点。它广泛应用于通信、消费电子、汽车等领域。
- MPU(微处理器):MPU是一种通用微处理器,具有高性能、低功耗和低成本的特点。它广泛应用于个人计算机、服务器、嵌入式系统等领域。
- MCU(微控制器单元):MCU是一种集成在单一芯片上的微控制器,具有高性能、低功耗和低成本的特点。它广泛应用于消费电子、汽车、工业等领域。
存储系统 - Cache
- Cache是一种高速缓冲存储器,用于存储计算机系统中经常访问的数据和程序。Cache的工作原理是将经常访问的数据和程序存储在Cache中,以便在需要时快速访问。Cache的命中率越高,系统的性能越好。
- Cache的功能:提高CPU的输入输出的速率,突破冯诺依曼瓶颈,即CPU与内存之间的数据传输速率。
- 在计算机存储体系中,Cache是访问速度最快的存储器。
- Cache对程序员来说是透明的,程序员不需要关心Cache的存在,只需要编写程序即可。
- 使用Cache改善系统性能的依据是程序的局部性原理,即程序在执行过程中,访问的地址空间具有局部性。
- 时间局部性:如果一个指令或数据被访问,那么在不久的将来它很可能会被再次访问(程序存在的大量循环存在)。
- 空间局部性:如果一个指令或数据被访问,那么在不久的将来它附近的指令或数据很可能会被访问(程序顺序执行)。
- 工作集理论:工作集是进程运行时被频繁访问的页面集合。工作集的大小取决于进程的运行状态和系统的资源状况。
Cache与主存储器
h代表访问Cache命中的概率,t1代表访问Cache的时间,t2代表访问主存的时间,t3代表访问Cache和主存的总时间,其中(1-h)代表访问Cache未命中的概率(失效率)。
Cache的映射方式
- 直接映射:直接映射是一种简单的映射方式,它将主存中的每个块映射到Cache中的唯一一个位置。具体来说,主存中的每个块都有一个唯一的Cache行号,这个行号是通过块地址和Cache大小取模得到的。直接映射的优点是实现简单,缺点是可能会出现冲突,即多个主存块映射到同一个Cache行。
- 全关联映射:全关联映射是一种将主存中的每个块映射到Cache中的任意一个位置的映射方式。具体来说,主存中的每个块都可以映射到Cache中的任意一个位置。全关联映射的优点是不会有冲突,缺点是查找速度较慢,因为需要遍历整个Cache来查找主存块。
- 组相联映射:组相联映射是一种将主存中的每个块映射到Cache中的某个组的某个位置的映射方式。具体来说,主存中的每个块都有一个组号和一个组内地址,组号是通过块地址和组数取模得到的,组内地址是通过块地址和组内大小取模得到的。组相联映射的优点是既有直接映射的优点,也有全关联映射的优点,即不会有冲突,同时查找速度较快。
Cache的替换策略
- 先进先出(FIFO):先进先出是一种简单的替换策略,它将最早进入Cache的块替换出去。具体来说,当Cache满时,将最早进入Cache的块替换出去。FIFO的优点是实现简单,缺点是可能会替换掉经常使用的块。
- 最不经常使用(LFU):最不经常使用是一种替换策略,它将最不经常使用的块替换出去。具体来说,当Cache满时,将最不经常使用的块替换出去。LFU的优点是可能会替换掉不经常使用的块,缺点是实现复杂。
- 最近最少使用(LRU):最近最少使用是一种替换策略,它将最近最少使用的块替换出去。具体来说,当Cache满时,将最近最少使用的块替换出去。LRU的优点是可能会替换掉不经常使用的块,缺点是实现复杂。
- 随机替换(RAND):随机替换是一种替换策略,它将随机选择的块替换出去。具体来说,当Cache满时,将随机选择的块替换出去。随机替换的优点是实现简单,缺点是可能会替换掉经常使用的块。
Cache的读写过程
- 写直达(Write Through):写直达是一种写策略,它将数据同时写入Cache和主存。具体来说,当Cache中的数据被修改时,它既被标记为“已修改”,也被写入主存。写直达的优点是可以保证数据的一致性,缺点是可能会增加主存的写操作,降低系统的性能。
- 写回(Write Back):写回是一种写策略,它将数据写入Cache,而不是直接写入主存。具体来说,当Cache中的数据被修改时,它只被标记为“已修改”,而不是立即写入主存。当数据被替换出去时,它才会被写入主存。写回的优点是可以减少主存的写操作,提高系统的性能,缺点是可能会出现数据不一致的情况。
- 标记法:只写入内存,并将标志位清0,若用到此数据,需要再次调取
存储系统 - 主存编址
-
主存编址:主存编址是指将主存划分为若干个存储单元,并为每个存储单元分配一个唯一的地址。主存编址的方式有固定长度编址和可变长度编址两种。
- 进制转换
- 存储单元
- 编址内容
- 按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字。
-
固定长度编址:固定长度编址是指每个存储单元的地址长度是固定的,例如8位、16位、32位等。固定长度编址的优点是地址空间大,缺点是地址转换效率低。
-
可变长度编址:可变长度编址是指每个存储单元的地址长度是可变的,例如16位、32位、64位等。可变长度编址的优点是地址转换效率高,缺点是地址空间小。
存储系统 - 磁盘管理
磁盘的基本结构:
- 盘面(Platter):磁盘的表面,用于存储数据。
- 磁道(Track):在盘面上,从外向内划分的同心圆。
- 扇区(Sector):在磁道上,从上到下划分的扇形区域。
- 磁头(Head):用于读写数据的读写头。
- 磁道号(Track Number):表示磁道在盘面上的位置。
- 扇区号(Sector Number):表示扇区在磁道上的位置。
- 磁头号(Head Number):表示磁头的编号。
寻道时间是磁头移动到指定磁道所需的时间,等待时间是数据从磁盘旋转到磁头下所需的时间。 平均定位时间是磁头移动到指定磁道所需的时间的平均值,通常它是硬盘平均寻道时间和平均等待时间的总和。平均定位时间最能代表硬盘找到某一个数据所用的时间,数值越小,硬盘性能越好。
读取磁盘数据的时间应包括以下三个部分:
- 寻道时间:磁头移动到指定磁道所需的时间。
- 旋转延迟:磁盘旋转到指定扇区所需的时间。
- 数据传输时间:从磁盘读取数据所需的时间。
磁盘管理 - 单缓冲区与双缓冲区
- 单缓冲区:单缓冲区是指只有一个缓冲区的磁盘管理方式。在这种方式下,当磁盘读取数据时,数据首先被写入缓冲区,然后由CPU从缓冲区中读取数据。这种方式可以减少CPU的等待时间,提高系统的性能。但是,当缓冲区满时,磁盘将无法继续读取数据,导致系统性能下降。
- 双缓冲区:双缓冲区是指有两个缓冲区的磁盘管理方式。在这种方式下,当磁盘读取数据时,数据首先被写入一个缓冲区,然后由CPU从另一个缓冲区中读取数据。当第一个缓冲区满时,磁盘将数据写入第二个缓冲区,同时CPU从第一个缓冲区中读取数据。这种方式可以减少磁盘的等待时间,提高系统的性能。但是,当两个缓冲区都满时,磁盘将无法继续读取数据,导致系统性能下降。
磁盘管理 - 磁盘调度算法
- 先来先服务(FCFS):磁头按照进程请求访问磁道先后依次进行移动。按照顺序来移动。
- 最短寻道时间优先(SSTF):磁头选择与当前所在磁道位置距离最近的磁道请求作为下一次服务的对象。选择最近的磁道来移动。
- 扫描(SCAN):在磁头移动方向上选择与当前磁头所在的磁道距离最近的请求作为下一次服务的对象。像电梯一样在向上移动的时候一直移动到要访问的最高层,然后反过来移动到要访问最低层。比如移动方式:内→外→内→外,一直来回往返移动。
- 循环扫描(C-SCAN):磁头按照规定的移动方向一直移动到另一端,然后迅速回到原始位置,以此循环。比如移动方式:内→外、内→外,一直以单一方向移动。
总线
- 总线是一组能为多个部件分时共享的公共信息传送线路。
- 共享
- 分时:是指同一时刻仅允许一个部件向总线发送信息,而其余部件只能接收总线上的信息。
- 串行总线(适合长距离传输)与并行总线(适合短距离传输,不宜过长)
- 单工、半双工、全双工
- 总线带宽:总线每秒所能传输的最大字节数。
- 总线宽度:总线一次所能传输的数据位数。
总线的分类
- 数据总线:用于在CPU和RAM之间传输数据。
- 地址总线:用来指定在
- 控制总线:用于在CPU和内存之间传输控制信号。
校验码
奇偶校验码
奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。
- 奇校验码:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
- 偶校验码:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
奇偶校验,可检查1位的错误。但不可纠错。
循环冗余校验码CRC
CRC校验,可查错,但不可纠错
- CRC的编码方法是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验码(编码),以及如何从
k+r位信息码判断是否出错。 - CRC的编码规律如下:
- 把待编码的
N位有效信息表示为多项式M(X) - 把
M(X)左移K位,得到M(X)X^K,这样空出K位,以便拼装K位余数(即校验位) - 选取一个
K+1位的生成多项式G(X),对M(X)X^K进行模2除法,得到余数R(X) - 把左移
K位以后的有效信息与余数R(X)做摸2加减,拼接为CRC码,此时的CRC码共有N+K位
- 把待编码的
- 把接收到的CRC码用约定的生成多项式
G(X)去除,如果正确,则余数为0;如果每某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错序列号之间有唯一的对应关系。
什么是模2除法?
模2除法是一种二进制数的除法运算,它的运算规则如下:
- 数和除数都是二进制数。
- 除数的最高位开始,每次取与除数相同位数的部分进行除法运算。
- 被除数的这部分与除数相等,则商为1,否则商为0。
- 乘以除数,然后与被除数的这部分进行异或运算,得到新的被除数。
- 步骤2-4,直到被除数的所有位都处理完毕。
- 得到的余数就是模2除法的结果。
二进制系数多项式
对任意的二进制数都构造与其对应的一个二进制系数多项式。例如:10011B,其对应的二进制系数多项式为
| 校验码位数 | 校验码位置 | 检错 | 纠错 | 校验方法 | |
|---|---|---|---|---|---|
| 奇偶校验码 | 1位 | 一般拼接在头部 | 可查错 | 不可纠错 | 信息位中“1”的个数为奇数或偶数 |
| CRC校验码 | 生成多项式最高次幂决定 | 拼接信息位在尾部 | 可查错 | 不可纠错 | 模二除法求余数,拼接作为校验位 |
| 海明校验 | 插入在信息位中间(2^k位置) | 可查错 | 可纠错 | 分组奇偶校验 |
计算机网络
TCP/IP协议族
- TCP/IP协议族是指互联网上使用的一组协议,包括TCP、IP、UDP等协议。链接
| TCP/IP模型 | OSI七层模型 |
|---|---|
| 应用层 | 应用层 |
| 应用层 | 表达层 |
| 应用层 | 会话层 |
| 传输层 | 传输层 |
| 网络层 | 网络层 |
| 网络接口层 | 数据链路层 |
| 网络接口层 | 物理层 |
常见的网络协议:
- POP3: 110端口, 用于接收邮件
- SMTP: 25端口, 用于发送邮件
- FTP: 20端口数据/21控制端口, 用于文件传输
- HTTP: 80端口, 超文本传输协议,网页传输
- DHCP:67/68端口,IP地址自动分配
- SNMP:161端口,简单网络管理协议
- DNS:53端口,域名解析协议
- TCP: 可靠的传输协议
- UDP: 不可靠的传输协议
- ICMP: 网络控制协议,PING命令来自于这个协议
- IGMP: 组播协议
- ARP: 地址解析协议,将IP地址解析为MAC地址
- RARP: 反向地址解析协议,将MAC地址解析为IP地址
TCP和UDP的异同:
- 共同点:
- 基于IP传输协议,可以端口寻址
- 不同点:
- TCP:面向连接(连接管理)、三次握手、流量控制、差错校验和重传、IP数据报按序接收(不丢失、不重复)、可靠性强、牺牲通信量、效率低
- UDP:不可靠、无连接、错误检测功能弱、无阻塞控制、无流量控制、有助于提高传输的高速率性。不对无序IP数据报重新排序、不负责重传、不消除重复IP数据报、不对已收到的数据报进行确认、不负责建立或终止连接,这些由UDP进行通信的应用程序进行处理。
- 相关协议:
- TCP:HTTP、FTP、SMTP、Telnet、POP3
- UDP:DNS、SNMP、TFTP
DNS(域名解析协议)
域名解析过程:
- 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
- 如果没有, 就向上级域名服务器进行查找, 依次类推
- 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
- 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程
具体可描述如下:
- 主机先向本地域名服务器进行递归查询
- 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
- 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
- 本地域名服务器向顶级域名服务器进行查询
- 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
- 本地域名服务器向权限服务器进行查询
- 权限服务器告诉本地域名服务器所查询的主机的IP地址
- 本地域名服务器最后把查询结果告诉主机
上文我们提出了两个概念:递归查询和迭代查询
- 递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
- 迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
通俗地说,递归就是把一件事情交给别人,如果事情没有办完,哪怕已经办了很多,都不要把结果告诉我,我要的是你的最终结果,而不是中间结果;如果你没办完,请你找别人办完。 迭代则是我交给你一件事,你能办多少就告诉我你办了多少,然后剩下的事情就由我来办。
浏览器输入域名:HOSTS => DNS缓存 => 本地域名服务器 => 根域名服务器 => 顶级域名服务器 => 权限域名服务器 => 最终得到IP地址
主域名服务器接收到域名请求:本地缓存记录 => 区域记录 => 转发域名服务器 => 根域名服务器
DHCP(动态主机配置协议)
定义:DHCP:Dynamic Host Configuration Protocol,动态主机配置协议,是一个应用在局域网中的网络协议,它使用UDP协议工作,属于CS架构的。
理解:DHCP协议就是一个基于UDP协议工作在局域网内的网络协议,其最终的目的就是获取响应的IP地址,其中这过程中有多种分配方式,以及发送报文的格式要求等。
作用:动态分配IP地址,过程自动化,终端无需一一手工配置,配置信息统一管理(DNS,网关),IP地址有限、需要大量配置IP地址、经常移动终端。
好处:提高配置IP地址效率,减少配置工作量,减少IP地址冲突。
分配IP地址方式:
- 手工配置方式:通过网络管理员手工配置某台客户端特定的IP地址,当客户端请求分配时,DHCP服务器就将手动配置的IP地址分配给客户端。
- 自动配置方式:当DHCP客户端第一次想服务端租用到第一个IP地址后,就将这个IP地址永久分配给客户端使用。
- 动态配置方式:服务器暂时分配一个IP地址给客户端,根据租约到期或者续约租期的方式来管理分配的IP地址。
网络规划与设计
分为五步:
- 需求分析:确定需求,包括:业务需求,用户需求,应用需求,计算机平台需求,网络通信需求等。
- 通信规范分析: 确定通信规范,包括:数据格式,数据传输速率,数据传输协议等。
- 逻辑网络设计:确定逻辑网络,包括:网络拓扑结构,网络设备,网络设备的连接方式等。
- 物理网络设计:确定物理网络,包括:网络设备的位置,网络设备的连接方式,网络设备的连接方式等。
- 实施阶段:实施网络规划,包括:网络设备的安装,网络设备的配置,网络设备的测试等。
逻辑网络设计
逻辑网络设计是体现网络设计核心思想的关键阶段,在这一阶段根据需求规范和通信规范,选择一种比较适宜的网络逻辑结构,并基于该逻辑结构实施后续的资源分配规划,安全规划等内容。
利用需求分析和现有网络体系分析的结果来设计逻辑网络结构,最后得到一份逻辑网络设计文档。
逻辑网络设计工作主要包括以下内容:
- 网络结构的设计
- 物理层技术的选择
- 局域网技术的选择与应用
- 广域网技术的选择与应用
- 地址设计和命名模型
- 路由选择协议
- 网络管理
- 网络安全
- 逻辑网络设计文档
逻辑网络设计文档的输出内容包括以下几点:
- 逻辑网络设计图
- IP地址方案
- 安全管理方案
- 具体的软/硬件,广域网连接设备和基本的网络服务
- 招聘和培训网络员工的具体说明
- 对软/硬件费用,服务提供费,员工和培训的费用初步估计
物理网络设计
物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分析,运行环境等确定,确保网络的物理连接符合逻辑连接的要求。在这一阶段,网络设计者需要确定具体的软/硬件,连接设备,布线和服务的部署方案。
输入内容如下:
- 网络物理结构图和布线方案
- 设备和部件的详细列表清单
- 软硬件和安装费用的估算
- 安装日程表,详细说明服务的时间以及期限
- 安装后的测试计划
- 用户的培训计划
层次化网络设计(分层设计)
分层设计是网络规划设计的一种方式,它可以解耦,降低了耦合性。简单来说就是如果网络中有一个小的部分要修改的话,只需要修改小的部分就行了,而不需要修改整体。
分为三层:
- 核心层:负责网络的高速转发; 主要是高速数据交换,实现高速数据传输,出口路由,常用冗余机制。
- 汇聚层:负责网络中不同虚拟局域网(VLAN)和不同物理网络的数据汇聚; 网络访问策略控制,数据包处理和过滤,策略路由,广播域定义,寻址。
- 接入层:负责将终端设备连接到网络; 主要是针对用户端,实现用户接入,计费管理,MAC地址认证,MAC地址过滤,收集用户信息,可以使用集线器代替交换机。
结构:用户设备----接入层(接入交换机)----汇聚层(汇聚交换机)----核心层(核心交换机)----Internet
网络存储技术
网络存储技术主要包括以下几种:
- 直连方式存储 (Direct Attached Storage - DAS):存储设备是通过电缆(通常是SCSI接口电缆)直接到服务器。I/O请求直接发送到存储设备。这种方式是连接单独的或两台小型集群的服务器。
- 特点是初始费用可能比较低。可是这种连接方式下,对于多个服务器或多台PC的环境,每台PC或服务器单独拥有自己的存储磁盘,容量的再分配困难;对于整个环境下的存储系统管理,工作烦琐而重复,没有集中管理解决方案。所以整体的管理成本较高。
- 网络连接存储(Network Attached Storage - NAS):NAS设备通常是集成了处理器和磁盘/磁盘柜,类似于文件服务器。连接到TCP/IP网络上(可以通过LAN或WAN),通过文件存取协议(例如NFS,CIFS等)存取数据。NAS将文件存取请求转换为内部I/O请求。这种方式是将存储设备连接到基于IP的网络中,不同于DAS和SAN,服务器通过“File I/O”方式发送文件存取请求到存储设备NAS。NAS上一般安装有自己的操作系统,它将File I/O转换成Block I/O,发送到内部磁盘。
- NAS系统有较低的成本,易于实现文件共享。但由于它是采用文件请求的方式,相比块请求的设备性能差;并且NAS系统不适合于不采用文件系统进行存储管理的系统,如某些数据库。
- 存储区域网络(Storage Area Network - SAN):存储设备组成单独的网络,大多利用光纤连接,采用光纤通道协议(Fiber Channel,简称FC)。服务器和存储设备间可以任意连接,I/O请求也是直接发送到存储设备。光纤通道协议实际上解决了底层的传输协议,高层的协议仍然采用SCSI协议,所以光纤通道协议实际上可以看成是SCSI over FC。
- 服务器和存储设备之间更远的距离(光纤通道网络:10公里相比较DAS的SCSI:25米);
- 高可靠性及高性能;
- 多个服务器和存储设备之间可以任意连接
- 集中的存储设备替代多个独立的存储设备,支持存储容量共享;
- 通过相应的软件使得SAN上的存储设备表现为一个整体,因此有很高的扩展性;
- 可以通过软件集中管理和控制SAN上的存储设备,提供数据共享;
- 由于SAN通常是基于光纤通道的解决方案,需要专用的光纤通道交换机和管理软件,以SAN的初始费用比DAS和NAS高。
- IP—SAN:如果SAN是基于TCP/IP的网络,实现IP-SAN网络。这种方式是将服务器和存储设备通过专用的网络连接起来,服务器通过“Block I/O”发送数据存取请求到存储设备。最常用的是iSCSI技术,就是把SCSI命令包在TCP/IP 包中传输,即为SCSI over TCP/IP。
- 利用无所不在的以太网络,一定程度上保护了现有投资;
- IP存储超越了地理距离的限制,适合于对关键数据的远程备份;
- IP网络技术成熟,不存在互操作性问题;
- IP存储减少了配置、维护、管理的复杂度;
- IP网络已经被IT业界广泛认可-网络管理软件和服务产品可供使用;
- 千兆网的广泛使用大大提高了IP网络的性能;
- 万兆网络技术的发展,使IP存储在性能上可以超越FC存储。
总结:
- 性能上:FC性能最好,单端口可以达到2Gbps的带宽;NAS性能最差,即使采用千兆网络,通常只能30-40MBps;单千兆iSCSI可以达到60-70MBps;万兆网络下,单万兆口的速度可以超过500MBps。
- 扩展性上:FC和iSCSI采用SAN的架构,扩展性最好,在存储网络中,易于增加用户或增加存储模块。
- 应用成本上:FC的应用成本最高,需要配套的昂贵的光纤交换机(8端口光纤交换机大约3-4万元);每个服务器需要配光纤通道卡(光纤通道卡5000-1 万元);以及采用光纤介质;相比之下,iSCSI只需要普通的以太网交换机(8端口千兆交换机1000元);服务器本身带有千兆网口,即使增加一个网卡也 就是500元,采用普通的超五类线就可以,价格可以忽略不计;
- 市场定位:FC占据高端,iSCSI处于中高端,NAS和DAS处于低端
IPv6
IPv6是设计用于替代IPv4的下一代互联网协议,它的主要目标是解决IPv4地址空间耗尽的问题。IPv6的设计目标是为了提供更大的地址空间,同时保持IPv4的兼容性。
- 寻址能力方面的扩展。IPv6的地址长度为128位,地址空间增大了
2^96倍。 - 灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPv4中可变长度的选项字段。IPv6中选项部分的出现方式也有所变化,使路由器可以简单路过选项不做任何处理,加快了报文处理速度
- IPv6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量
- 提高安全性。身份认证和隐私权是IPv6的关键特性
- 支持更多的服务类型
- 允许协议继续演变,增加新的功能,使之适应未来技术的发展
IPv6地址的分类
- 单播地址:用于点对点的通信。特殊单播地址包括环回地址::1/128,相当于IPv4中的127.0.0.1,以及未指定地址::/128,相当于IPv4中的0.0.0.0。
- 组播地址:用于一点对多点的通信,即一个发送者发送信息给多个接收者。用于标识属于特定组的所有接口,发送到多播地址的数据包会被传送给该组内的所有成员。
- 任意播(泛播)地址:这种地址用于标识一组接口中的任意一个,发送到任播地址的数据包会被传送给该组中的一个接口,通常是最近的一个。
其中单播地址有分为以下几大类:
- 全球单播地址:等同于IPv4的公网地址,用于全球范围的通信。这是用于在全球范围内唯一标识设备的地址。全球单播地址的设计旨在支持基于当前供应商的集聚,同时也支持新的集聚类型,如交换局。这种地址的最显著48位被指定为全球路由前缀,且三个最显著位始终设置为001。接口标识(Interface ID)通常基于系统的MAC地址生成。用于点对点的通信。特殊单播地址包括环回地址::1/128,相当于IPv4中的127.0.0.1,以及未指定地址::/128,相当于IPv4中的0.0.0.0。
- 唯一本地地址:虽然全局唯一,但主要在本地使用,不会被路由到互联网上。这种地址的前缀始终以FD开头,L位设置为1表示本地分配。这是一种在局部范围内使用的地址,它在全球范围内是唯一的,但不会被全球路由。
- 链路本地地址:以FE80开头的自动配置地址,用于同一链路上的IPv6主机间通信。这些地址不可被路由器转发到链路外。这种类型的地址用于同一物理或逻辑链路上的设备之间通信,不会在互联网上路由传递。
从IPv4向IPv6过渡
- 双协议栈:双协议栈(Dual Stack)是指在完全过渡到IPv6之前,使一部分主机或路由器装有IPv4和IPv6两套协议栈。双协议栈主机或路由器既可以和IPv6系统通信,又可以和IPv4系统通信。
- 隧道技术:
- 当IPv6数据报要进入IPv4网络时,将IPv6数据报重新封装成IPv4数据报,即整个IPv6数据报成为IPv4数据报的数据载荷。
- 封装有IPv6数据报的IPv4数据报在IPv4网络中传输。
- 当IPv4数据报要离开IPv4网络时,再将其数据载荷(即原来的IPv6数据报)取出并转发到IPv6网络。
- 网络地址转换技术(NAT-PT):这是一种转换技术,它允许IPv6域内的设备访问IPv4网络资源。NAT64设备会将IPv6地址转换为IPv4地址,使得IPv6设备能够与IPv4设备通信。
网络接入技术
- 有线接入
- 公共交换电话网络(PSTN)
- 数字数据网络(DDN)
- 综合业务数字网(ISDN)
- 非对称数字用户线(ADSL)
- 同轴光纤技术(HFC)
- 无线接入
- IEEE 802.11标准(Wi-Fi)
- IEEE 802.15标准(蓝牙)
- 红外(IrDA)
- WAPI
- ZigBee
综合布线系统
- 工作区子系统:实现终端设备与信息插座的连接。
- 水平子系统:实现管理间与工作区子系统的连接。
- 垂直子系统:实现管理间与设备间子系统的连接。
- 管理间子系统:实现垂直与水平子系统的连接。
- 设备间子系统:一般称为中心机房,实现网络管理与信息交换。
- 进线间子系统:进线间是建筑物外部通信和信息管线的入口,连接设备间子系统与建筑群子系统。
- 建筑群子系统:实现楼内的通信接入。
物联网
物联网是指通过信息传感设备,按约定的协议,将任何物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。
物联网大致可以分成:感知层、网络层、平台层和应用层。
- 感知层——感知信息
- 作为物联网的核心,承担感知信息作用的传感器,一直是工业领域和信息技术领域发展的重点,传感器不仅感知信号、标识物体,还具有处理控制功能。感知层由各种百传感器以及传感器网关构成,包括二氧化碳浓度传感器、温度传感器、湿度传感器、二维码标签、度RFID标签和读写器、摄像头、GPS等感知终端。感知层的知作用相当于人的眼耳鼻喉和皮肤等神经末梢,它是物联网识别物体、采集信息的来源,其主要功能是识道别物体,采集信息。
- 网络层——传输信息
- 传感器感知到基础设施和物品信息后,需要通过网络传输到后台进行处理。 目前,传输信息应用的网络先进技术包括第6版互联网协议(IPv6)、新型无线通信网(3G、4G、ZIGBEE、WIFI、LoRa和NB-IoT等)、自组网技术等,正在向更快的传输速度、更宽的传输带宽、更高的频谱利用率、更智能化的接入和网络管理发展。
- 平台层——云物联网平台
- 提 供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、运维。
- 应用层——处理信息
- 物联网概念下的信息处理技术有分布式协同处理、云计算、群集智能等。
- 信息处理的目的是应用,交通物联网的信息处理是为了分析大量数据,挖掘对百姓出行和交通管理有用的信息。此外,还需要建立信息处理和发送机制体制,保证信息发送到需要的人手中。比如,把宏观的路网信息发送给管理决策人员,把局部道路通行情况发送给公众,把某条具体路段的事故信息发送给正行驶在上面的车辆,智能家居,智慧交通,环境监测等。
物联网-无线射频识别(RFID)
RFID全称是无线射频识别,它是一种非接触的自动识别技术,属于物联网的底层信息采集技术之一。完整的RFID系统包括RFID读写器、电子标签(应答器)、应用软件系统三部分。它的工作原理是读写器通过发射特定频率的无线电波能量,用以驱动电子标签内部电路,并将其内部数据送出给读写器。读写器接收到数据,并传送到应用程序做相应的处理。
RFID技术应用范围非常广泛,如电子不停车收费管理(ETC)、物流与供应链管理、集装箱管理、车辆管理、人员管理、图书管理、生产管理、金融押运管理、资产管理、钢铁行业、烟草行业、国家公共安全、证件防伪、食品安全、动物管理等多个领域。这些应用中有物联网的范畴,也有其他行业的需求。
物联网-二维码
二维码,作为一种可以存储大量信息的图形码,自诞生以来就备受关注。它可以通过智能手机等设备轻松扫描读取,快速获取信息。如今,二维码已经广泛应用于商业、物流、医疗、交通等领域。在商业领域,二维码被用于产品营销、支付结算等方面;在物流领域,二维码可以实现货物的追踪和管理;在医疗领域,二维码可以用于患者信息管理和药品追溯;在交通领域,二维码可以用于车票购买和检票等。
二维码与物联网的结合,为设备控制带来了新的可能性。通过在设备上贴上二维码标签,用户可以使用智能手机等设备扫描二维码,快速获取设备的信息,并对设备进行控制。这种方式不仅方便快捷,而且可以实现远程控制,大大提高了设备的使用效率和管理水平。 例如,在智能家居领域,用户可以通过扫描智能家电上的二维码,实现对家电的远程控制。比如,用户可以在下班前通过手机扫描二维码,打开家里的空调、热水器等设备,让家里提前变得舒适宜人。在工业领域,二维码可以用于设备的维护和管理。工作人员可以通过扫描设备上的二维码,获取设备的运行状态、维护记录等信息,并对设备进行远程诊断和维修。
云计算
云计算是一种通过互联网提供计算资源和服务的模式。它将计算资源、存储资源和应用程序等服务通过虚拟化技术整合在一起,并通过互联网提供给用户。用户可以根据需求随时获取和释放这些资源,而无需关心底层的硬件和基础设施
云计算的特点
- 虚拟化技术:云计算通过虚拟化技术将物理资源抽象为虚拟资源,使得资源的利用更加灵活和高效
- 动态可扩展:云计算可以根据用户需求动态调整资源配置,实现资源的快速扩展和缩减
- 按需部署:用户可以根据需求随时获取所需的计算资源,无需提前购买和维护硬件
- 高灵活性:云计算支持多种硬件和软件环境,兼容性强,能够满足不同用户的需求
- 高可靠性:云计算通过虚拟化技术和动态扩展功能,确保系统的高可用性和可靠性
云计算的优势
- 成本优势:云计算通过集中管理和共享资源,降低了硬件和运维成本
- 运维优势:云计算提供商通过专业的运维团队和自动化管理工具,简化了用户的运维工作
- 安全优势:云计算提供商通常具有强大的安全措施,保护用户数据的安全性和隐私性
云计算的应用场景
- 云存储:用户可以将数据存储在云端,随时随地访问和共享
- 云计算服务:云计算提供商提供各种计算和存储服务,满足不同用户的需求
- 云监控:云计算提供商提供实时监控和日志分析工具,帮助用户管理和监控应用程序的性能和安全性
数据库
- 数据:是数据库中存储的基本单位,是描述事物的符号记录。数据可以是数字、文字、图像、声音等。
- 数据库DB:是长期存储在计算机内、有组织的、可共享的大量数据的集合。
- 数据库的基本特征:
- 数据的永久性:数据库中的数据在正常情况下不会丢失。
- 数据的共享性:数据库中的数据可以被多个用户共享使用。
- 数据的冗余性:数据库中的数据可以重复存储,以减少数据丢失的风险。
- 数据的独立性:数据库中的数据可以独立于应用程序进行管理,使得数据的管理和维护更加方便。
- 数据库系统DBS:数据库系统是由数据库、数据库管理系统(DBMS)、数据库管理员(DBA)和用户组成的系统。
- 数据库:数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。
- 硬件:数据库系统需要硬件设备来存储和管理数据,如服务器、存储设备等。
- 软件:数据库系统需要软件来管理数据,如数据库管理系统(DBMS)、数据库应用程序等。
- 数据库管理员(DBA):数据库管理员是负责数据库的创建、维护、管理和优化的人员。
- 数据库管理系统DBMS:数据库管理系统是用于管理数据库的软件系统,它提供了一系列的功能,如数据定义、数据操纵、数据控制等。
数据库三层模式两级映射
- 外模式:外模式也成为子模式或用户模式,通常是模式的子集,是用户能够看见和使用的局部数据的逻辑结构和特征的描述。
- 内模式:内模式也称存储模式,一个数据库只有一个内模式,是对数据的物理结构和存储方式的描述
- 模式(概念模式):模式也称概念模式或逻辑模式,是数据库中全部数据的逻辑结构和特征的描述,是数据库中全部数据的整体逻辑结构和特征的描述,是数据库的总体结构。
数据库的两级映像功能
- 外模式/模式映像:当模式改变时,由DMA对外模式/模式映像做出改变,使外模式不必修改,因为应用程序是根据外模式编写的,外模式不变应用程序也不用修改,保证了数据与程序的逻辑独立性
- 模式/内模式映像:当数据库的存储结构改变时,由DMA对模式/内模式映像做出改变,使模式不变,从而应用程序也不需要改变。
表、视图、查询表的区别(关系的三种基本类型)
- 表:表是数据库中存储数据的物理结构,它由行和列组成,每一行代表一条记录,每一列代表一个字段。表中的数据是按照一定的规则进行组织和存储的,可以方便地进行数据的查询、插入、更新和删除操作。
- 视图:视图是一种虚拟表,它是由一个或多个表中的数据经过查询操作后生成的。视图中的数据并不是存储在数据库中,而是通过查询操作动态生成的。视图可以简化数据的查询操作,提高数据的安全性,并且可以隐藏表中的复杂结构和数据之间的关系。
- 查询表:查询表是一种临时表,它是由一个或多个表中的数据经过查询操作后生成的。查询表中的数据并不是存储在数据库中,而是通过查询操作动态生成的。查询表可以方便地进行数据的查询、插入、更新和删除操作,并且可以隐藏表中的复杂结构和数据之间的关系。
视图概述:视图是一种虚拟表,它是由一个或多个表中的数据经过查询操作后生成的。视图中的数据并不是存储在数据库中,而是通过查询操作动态生成的。视图可以简化数据的查询操作,提高数据的安全性,并且可以隐藏表中的复杂结构和数据之间的关系。视图只存定义,每次查看视图就相当于执行一次语句
视图的优点:
- 简化数据查询:视图可以将复杂的查询操作简化为简单的查询语句,使得用户可以更加方便地查询数据。
- 提高数据安全性:视图可以限制用户对数据的访问权限,只允许用户访问视图中的数据,而隐藏表中的复杂结构和数据之间的关系。
- 隐藏表结构:视图可以隐藏表中的复杂结构和数据之间的关系,使得用户可以更加方便地使用数据。
- 提高数据独立性:视图可以独立于表进行修改,当表的结构发生变化时,只需要修改视图的定义,而不需要修改应用程序的代码。
视图的缺点:
- 视图的数据是动态生成的,每次查询视图时都需要执行查询语句,可能会影响查询的性能。
- 视图的数据是依赖于表的结构和数据的,当表的结构或数据发生变化时,视图中的数据可能会发生变化。
- 视图的数据是虚拟的,不能直接进行数据的修改操作,只能通过修改表中的数据来间接修改视图中的数据。
数据库事务
数据库事务(Database Transaction)是指对数据库的一系列操作组成的逻辑工作单元。 并非任意的数据库操作序列都是数据库事务。数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(Transaction)正确可靠,必须具备四个特性:ACID。
- 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么全部完成,要么全部不完成,不可能只执行一部分。
- 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。
- 隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(Durability):持久性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。即使系统故障,数据库也能恢复到事务成功完成时的状态。
事务并发问题
- 脏读:**读取未提交数据。**一个事务读取了另一个事务尚未提交的数据。
- 不可重复读:**前后多次读取,数据内容不一致。**一个事务读取了另一个事务已经提交的数据,导致两次读取的结果不一致。
- 幻读:**当同一个查询在不同时间产生不同的结果集时,称之为幻读。**一个事务读取了另一个事务已经提交的数据,导致两次读取的结果不一致。
事务隔离级别
为了解决上面的事务并发问题,于是有了事务隔离。
- 读未提交(Read Uncommitted):最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。
- 读已提交(Read Committed):允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。
- 可重复读(Repeatable Read):对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。
- 串行化(Serializable):最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。
数据库范式
- 第一范式(1NF):数据库中的表必须满足以下条件:每一列都是不可分割的基本数据项,即列中的数据不能是另一个表的子表。第一范式是数据库设计的基础,它保证了数据库中的数据是原子性的,即每个字段都是不可再分的。
- 第二范式(2NF):在满足第一范式的基础上,数据库中的表必须满足以下条件:表中的所有非主属性完全依赖于主键,即主键可以唯一确定表中的每一行。第二范式是数据库设计的重要步骤,它保证了数据库中的数据是稳定的,即不会因为主键的变化而影响其他数据。
- 第三范式(3NF):在满足第二范式的基础上,数据库中的表必须满足以下条件:表中的所有非主属性不依赖于其他非主属性,即非主属性之间没有依赖关系。第三范式是数据库设计的最终目标,它保证了数据库中的数据是最优的,即没有冗余数据。
- BCNF(Boyce-Codd Normal Form):在满足第三范式的基础上,数据库中的表必须满足以下条件:表中的所有非主属性都完全依赖于主键,即主键可以唯一确定表中的每一行。BCNF是数据库设计的最高标准,它保证了数据库中的数据是最优的,即没有冗余数据。
- 第四范式(4NF):在满足BCNF的基础上,数据库中的表必须满足以下条件:表中的所有非主属性之间没有函数依赖关系,即非主属性之间没有依赖关系。第四范式是数据库设计的最高标准,它保证了数据库中的数据是最优的,即没有冗余数据。
- 第五范式(5NF):在满足第四范式的基础上,数据库中的表必须满足以下条件:表中的所有非主属性之间没有传递依赖关系,即非主属性之间没有传递依赖关系。第五范式是数据库设计的最高标准,它保证了数据库中的数据是最优的,即没有冗余数据。
分布式数据库
分布式数据库(Distributed Database)是一种将数据分散存储在多个物理位置上的数据库系统。分布式数据库系统具有以下特点:
- 数据分布:分布式数据库将数据分散存储在多个物理位置上,每个物理位置上的数据库称为一个节点。数据可以按照不同的规则分布,例如按照地理位置、数据类型、数据量等。
- 数据共享:分布式数据库允许多个节点共享数据,多个节点可以同时访问和操作同一份数据。数据共享可以提高数据访问的效率,减少数据冗余。
- 数据一致性:分布式数据库需要保证数据的一致性,即多个节点上的数据必须保持一致。数据一致性可以通过事务、锁、日志等技术来实现。
- 数据容错:分布式数据库需要具备容错能力,即当一个节点发生故障时,其他节点可以继续提供服务。数据容错可以通过冗余、备份、故障转移等技术来实现。
- 数据复制:分布式数据库可以将数据复制到多个节点上,以提高数据访问的效率。数据复制可以通过同步、异步等技术来实现。
分布式数据库的应用场景包括:
- 大规模数据处理:分布式数据库可以处理大规模的数据,例如互联网公司的用户数据、日志数据等。
- 高并发访问:分布式数据库可以处理高并发的访问,例如电商平台的订单系统、支付系统等。
- 数据容灾:分布式数据库可以将数据复制到多个节点上,以提高数据容灾的能力。例如,当一个数据中心发生故障时,其他数据中心可以继续提供服务。
- 数据分析:分布式数据库可以处理大规模的数据分析任务,例如大数据分析、机器学习等。
分布式数据库的挑战包括:
- 数据一致性问题:分布式数据库需要保证数据的一致性,即多个节点上的数据必须保持一致。数据一致性问题可以通过事务、锁、日志等技术来实现,但需要考虑性能和效率的问题。
- 数据容错问题:分布式数据库需要具备容错能力,即当一个节点发生故障时,其他节点可以继续提供服务。数据容错问题可以通过冗余、备份、故障转移等技术来实现,但需要考虑成本和复杂性的问题。
- 数据复制问题:分布式数据库可以将数据复制到多个节点上,以提高数据访问的效率。数据复制问题可以通过同步、异步等技术来实现,但需要考虑数据一致性和性能的问题。