1、二级公共基础知识总结请认真背诵该资料,至少要看三遍,划横线和方框的都是重点!第一章 数据结构与算法1.1 算法算法 :是指解题方案的准确而完整的描述。算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。算法的特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,包括合理的执行时间的含义;(4)拥有足够的情报。算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。指令系统:一个计算机系统能执行的所有指令的集合。基本运算包括:算术运算、逻辑运算、关系运算、数据传输。算法的控制
2、结构: 顺序结构、选择结构、循环结构 。算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。算法复杂度: 算法时间复杂度 和 算法空间复杂度 。 两个之间没有联系的。算法时间复杂度 是指执行算法所需要的计算工作量。算法空间复杂度 是指执行这个算法所需要的内存空间。1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即 数据的逻辑结构 ;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即 数据的存储结构 ;(3)对各种数据结构进行的运算。数据结构是指相互有关联的数据元素的集合。数据的存储结构有顺序、链接、索引等。线性结构
3、条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。非线性结构:不满足线性结构条件的数据结构。1 3 线性表及其顺序存储结构线性表 是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。在复杂线性表中,由若干项数据元素组成的数据元素称为 记录 ,而由多个记录构成的线性表又称为 文件 。线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。1 4 栈和队列栈 是限定在一端进行插入与删除的线性表。1、先进后出 FILO;1、支持子程序调用;2、
4、具有记忆功能;3、可以不用顺序存放数据;4、只能够在 top 首部进行操作,bottom 是绝对不动的;5、栈的存放数据的个数为 num = (bottom top)+1;队列 是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。1、Rear 指针指向队尾,front 指针指向队头。3、先进先出 FIFO,或者是后进后出 LILO2、循环队列里面的个数计算方法:A、rear front 的时候, num = rear front;B、rear 箭头表示控制流,菱形表示逻辑条件 。34 软件测试软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规
5、定的需求或是弄清预期结果与实际结果之间的差别。软件测试的目的:发现错误而执行程序的过程。软件测试方法: 静态测试 和 动态测试 。静态测试:包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。动态测试:是基本计算机的测试,主要包括白盒测试方法和黑盒测试方法。白盒测试:在程序内部进行,主要用于完成软件内部 CAO 作的验证。主要方法有逻辑覆盖、基 本基路径测试。黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错,用于软件确认。白盒主要方法: 1、逻辑覆盖测试 2、基本路径测试。黑盒主要方法: 1 等价类划分法、2 边界值
6、分析法、3 错误推测法、 4 因果图。软件测试过程一般按 4 个步骤进行(要背先后顺序):单元测试、集成测试、验收测试(确认测试)和系统测试。35 程序的调试程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。软件调试可分表静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的设计手段,动态调试是辅助静态调试。调试方法有:(1)强行排错法;(2 )回溯法;(3)原因排除法。第四章 数据库设计基础41 数据库系统的基本概念数据 :实际上就是描述事物的符号记录。数据的特点:有一定的结构,有型与值之分,如整型、实型、字符型等。数据库 :长期存储在计算机内部的、有组织
7、、可共享的数据的集合。数据库存放数据是按数据所提供的数据模式存放的具有集成与共享的特点。数据库管理系统 :一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。数据库管理系统提供以下的数据语言:(1)数据定义语言:负责数据的模式定义与数据的物理存取构建;(2)数据操纵语言:负责数据的操纵,如查询与增、删、改等;(3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言 )宿主型语言(一般可嵌入某些宿主语言中) 。数据库管理员:对数据库进行规划、设计、维护、监
8、视等的专业管理人员。数据库系统 :由数据库(数据) 、数据库管理系统(软件) 、数据库管理员(人员) 、硬件平台(硬 件) 、软件平台(软件)五个部分构成的运行实体。DBS 是最大的包括其他所有的。数据库应用系统 :由数据库系统、应用软件及应用界面三者组成。数据库发展的三个阶段:人工管理阶段、文件系统阶段、数据库管理阶段。数据库系统阶段的基本特点:1、数据的集成性 、2、数据的高共享性与低冗余性 、3、数据独立性(物理独立性与逻辑独立性) 、数据统一管理与控制。数据库系统的三级模式:(1 )概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图;(2 )外模式 :也称子模式与用户模
9、式。是用户的数据视图,也就是用户所见到的数据模式;(3 )内模式 :又称物理模式,它给出了数据库物理存储结构与物理存取方法。一个数据库只有一个内模式,可以有多个外模式。数据库系统的两级映射:(1)概念模式到内模式的映射;(2)外模式到概念模式的映射。4.2 数据模型数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。E-R 模型的基本概念(1) 实体 :现实世界中的事物;(2) 属性 :事物的特性;(3) 联系 :现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联
10、系。E-R 模型的图示法:(1)实体集表示法; (2 )属性表法; (3)联系表示法。E-R 模型的: 矩形表示实体;椭圆表示矩形;棱形表示联系。关系模型采用二维表来表示,简称 表 ,由表框架及表的元组组成。1、 一个二维表就是一个关系 。2、在二维表中凡能唯一标识元组的最小属性称为 键或码 。具有唯一性。3、元组就是二维表中一行,属性就是二维表表中一列。4、从所有侯选健中选取一个作为用户使用的键称 主键 。5、表 A 中的某属性是某表 B 的键,则称该属性集为 A 的 外键或外码。6、分量是不可以再分的。以上六点非常重要。关系中的数据约束:(1)实体完整性约束:约束关系的主键中属性值不能为空
11、值;(2)参照完全性约束:是关系之间的基本约束;(3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。4.3 关系代数关系数据库系统的特点之一是它建立在数据理论的基础之上,有很多数据理论可以表示关系模型的数据操作,其中最为著名的是关系代数与关系演算。关系模型的基本运算:(1) 插入 (2) 删除 (3)修改 (4) 查询(包括投影、选择、笛卡尔积)两个表的运算一般会考到:投影、链接、选择、笛卡尔积、交、并当中的一个。4.4 数据库设计与管理数据库设计是数据应用的核心 。数据库设计的两种方法:(1)面向数据:以信息需求为主,兼顾处理需求;(2)面向过程:以处理需求为主,兼顾信息需求。数据
12、库的生命周期 :需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。需求分析常用结构析方法和面向对象的方法 。结构化分析(简称 SA)方法用自顶向下、逐层分解的方式分析系统。用数据流图表达数据和处理过程的关系。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。数据字典 是各类数据描述的集合,包括 5 个部分:数据项、数据结构、数据流(可以是数据项,也可以是数据结构) 、数据存储、处理过程。数据库概念设计的目的是分析数据内在语义关系 。公共基础补充知识点1、 一个数据结构的逻辑结构根据需要可以有多个存储结构。存储结构的不同
13、,会造成处理的效率不同。2、程序设计方法和技术的发展经过了结构化程序设计和面向对象设计两个阶段。3、当今程序设计的风格是“清晰第一,效率第二” 。4、程序可以没有输入,但是一定要有输出。5、结构化程序设计遵循:自顶向下,逐步求精,模块化,限制使用 goto 语句(常考) 。6、面向对象的基本特点:标志唯一性,分类性,多态性,封装性,模块独立性。尤其重要的是多态性和封装性。没有类比性。7、多态性:统一操作可以是不同对象的行为。同样的消息被不同的对象接收时可导致不同的动作的现象。8、封装性:从外面看不到对象的内部,只能看到对象的外部特性。9、类:是具有共同属性、共同方法的对象的集合。描述了属于该对
14、象类型的所有对象的性质,而一个对象则是对应类的一个实例。 (常考)10、消息:是指对象间的相互合作的协作机制,是一个对象与另一个对象之间的传递的消息。11 继承:是指使用已有的类定义作为基础建立新类的定义技术。继承分为单继承和多继承。12、面向对象中,类的实例叫做对象。13、源程序文档化要求程序应该加上注释。注释一般为序言性注释和功能性注释。14、面向对象方法和技术是以 对象 为核心。软件工程基础1、 软件工程的核心思想是把软件当作一个工程产品来处理。2、 软件开发的三个阶段以及每个阶段的任务:定义阶段 开发阶段 维护阶段这个表请大家抽时间背下。软件开发的三个阶段,每个阶段的工程。3、 软件开
15、发方法包括分析方法,设计方法,程序设计方法。4、 结构化方法包括结构化分析方法,结构化设计方法,结构化编程方法。5、 结构化分析方法在软件需求分析阶段的应用。6、 结构化分析常用的工具中最重要的工具是数据流图。 表示加工, 表示数据流, 表示数据存储(数据源) 表示源和潭 。7、 软件规格说明书(SRS)是需求分析阶段的最后结果,是软件开发文档重要的文档之一。8、 软件设计要求高耦合性和低内聚性是考试的重点,要知道什么是耦合,什么是内聚。9、 软件测试和程序调试的区别。软件测试的过程涵盖了整个软件生命周期。目的是为了发现错误而执行程序的过程。10、从是否要执行被测试软件的角度,软件测试分为 静
16、态测试和动态测试 。11、从功能上划分,软件测试分为 白盒测试和黑盒测试 。12、白盒测试是检查内部成分,方法有:逻辑覆盖测试方法,基本路径测试。13、黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。方法有:等价类划分法,边界值划分法,错误推测法。14、程序调试的任务:诊断和改正程序中错误,它和软件测试不同,调试主要在 开发阶段 。15、软件调试方法:强制排错法,回朔法,原因排除法。16、软件维护不属于软件生命周期开发阶段的任务。17、软件进行了程序调试后还要进行测试。18、软件工程的主要思想是:强调在软件开发过程中需要应用工程化的原则。19、软件设计中,不属于过程设计工具的是:DF
17、D 图。20、结构化分析常见的工具:DFD 图,DD(数据字典) ,判定树,判定表 。21、程序和软件是不同的,软件是 程序、数据与相关文档 的集合。22、软件的开发、运行对计算机系统具有依赖性。23、软件工程的三要素:工具、过程、方法。24、软件生命周期中,能够准确确定软件系统必须做什么和必须具备哪些功能的阶段是:需求分析 。可 行 性 研 究 初 步项 目 计 划需 求分 析概 要设 计详 细分 析实 现 测 试 使 用 维 护 退 役25、数据流图只含有数据流,不含有控制流。数据流图用于抽象描述一个软件的逻辑模型。26、数据流的类型有两种:事务型和变换型。在很多软件应用中,存在某种作业数
18、据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流叫做事务型数据流。27、程序流程图中的箭头代表的是:控制流。28、在结构化方法中,软件功能分解属于总体设计阶段。29、内聚型中内聚性最强的是:功能内聚。30、检查软件产品是否符合需求定义的过程是:确认测试。31、软件危机:泛指在计算机软件的开发和维护过程中遇到的一系列严重的问题。32、Jackson 方法是一种面向数据结构的结构化方法。33、软件开发环境是全面支持软件开发全过程的软件开发工具集合。34、软件需求是指用户对目标软件系统在功能、行为、性能设计约束等方面的期望。35、为每一个模块确定实现算法和局部数据结构的是
19、 详细设计 阶段的任务。数据库设计基础1、 关系运算是考试的重点,考的多的是并和笛卡尔积。不改变属性但减少元组个数的是并。投影也是比较喜欢考的,一般的意思是从 4、5 个列中选出 2、3 个。笛卡尔积则是会增加元组的个数。2、 E-R 图中,矩形、菱形、椭圆形等代表的意思是考试的重点。3、 数据库系统中,数据的物理结构不一定要和逻辑结构一致。4、 数据库技术的根本目标是解决数据的 共享问题 。5、 数据库系统中,用户所见的数据模式为:外模式。6、 数据库设计的四个阶段是: 需求分析、概念设计、逻辑设计和物理设计 。7、 两个实体间的关系是:一对一,多对多,一对多等,这种题目根据具体的题目分析。
20、(常考题目)8、 数据库 DB,数据库系统 DBS,数据库管理系统 DBMS 之间的关系:DBS 包含 DB 和DBMS。9、 数据库系统的核心: 数据库管理系统 。10、数据独立性:是指数据与程序的互不依赖性。他包括数据的物理独立性和逻辑独立性。物理独立性是数据的物理结构(包括存储结构、存取方式)的改变,不影响数据库的逻辑结构。11、数据的逻辑独立性是指数据库总体逻辑结构的改变,不需要相应修改应用程序。12、用树形结构表示实体之间联系的模型是:层次模型。13、数据库系统中修改数据模式、增加新的数据类型、改变数据间的联系等,不需要相应修改应用程序这一特点是 逻辑独立性 。14、不涉及具体的硬件环境和平台,也与具体的软件环境无关的模式是:概念模型。15、用户数据是建立在 外模式 的框架上的。16、给出数据的全局逻辑结构到数据的物理存储结构间的对应关系的映射是:概念模式到内模式的映射。17、网状模型:不加任何的限制的无向图。18、不准关系应用不存在的元组的约束是:参照完整性约束。19、数据库设计包括两个方面的设计内容,它们是:概念设计和逻辑设计。20、数据库设计中的主流方法是:面向数据的设计方法。