首页 2011年全国计算机等级考试

2011年全国计算机等级考试

举报
开通vip

2011年全国计算机等级考试2011年全国计算机等级考试 2011年全国计算机等级考试 第一章 数据结构与算法 考点1:算法 1.​ 算法的时间复杂度是指算法执行过程中所需要的基本运算次数。 2.​ 算法的空间复杂度是指算法执行过程中所需要的存储空间。 3.​ 算法通常由两种基本要素组成,一是对数据对象的运算和操作,二是算法的控制结构。 4.​ 在同一个问题规模下,如果算法执行所需的基本运算次数取决于某一特定输入时,可以用平均性态和最坏情况复杂性两种方法来分析算法的工作量。 5.​ 算法设计基本方法主要有列举法、归纳法、递推、递归和减半递推技...

2011年全国计算机等级考试
2011年全国计算机等级考试 2011年全国计算机等级考试 第一章 数据结构与算法 考点1:算法 1.​ 算法的时间复杂度是指算法执行过程中所需要的基本运算次数。 2.​ 算法的空间复杂度是指算法执行过程中所需要的存储空间。 3.​ 算法通常由两种基本要素组成,一是对数据对象的运算和操作,二是算法的控制结构。 4.​ 在同一个问题规模下,如果算法执行所需的基本运算次数取决于某一特定输入时,可以用平均性态和最坏情况复杂性两种方法来分析算法的工作量。 5.​ 算法设计基本方法主要有列举法、归纳法、递推、递归和减半递推技术。 考点2:数据结构的基本概念 1.​ 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般说来,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同的。 2.​ 所谓数据处理,是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析。 3.​ 数据结构是指相互有关联的数据元素的集合。 4.​ 数据元素之间的任何关系都可以用前驱和后继关系来描述。 5.​ 在数据结构中,没有前驱的结点称为根结点,没有后继的结点称为终端结点(也称为叶子结点)。数据结构中除了根结点与终端结点外的其他结点一般称为内部结点。 6.​ 在数据结构中,结点及结点间的相互关系是数据的逻辑结构。数据结构按逻辑关系的不同,通常可分为线性结构和非线性结构两类。 7.​ 一个非空的数据结构满足以下两点:有且只有一个根结点;每一个结点最多有一个前驱,也最多有一个后继,则称该数据结构为线性结构,线性结构又称线性表。线性结构与非线性结构都可以是空的数据结构,一个空的数据结构究竟属于线性结构还是非线性结构,根据具体情况来确定。 考点3:线性表及其顺序存储结构 1.​ 给定一个有n个元素的线性表,若采用顺序存储结构,则在等概率前提下,向其插入一个元素需要移动的元素个数平均为n/2。 2.​ 在稍微复杂的线性表中,一个数据元素可以由若干个数据项组成,在这种情况下,常把数据元素称为记录。 3.​ 在计算机中存放线性表,一种最简单的方法是顺序存储。即在顺序存储结构中,线性表中的每一个数据元素在计算机存储空间中的存储地址由该元素在线性表中的位置序号唯一确定的。 4.​ 在程序设计语言中,通常定义一个一维数组来表示线性表的顺序存储空间。 考点4:栈和队列 1.​ 栈是一种特殊的线性表,其插入与删除运算都只能在线性表的一段进行。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈是按照“先进后出”或“后进先出”的原则组织数据的,由此可知,栈具有记忆功能。 2.​ 栈的基本运算有三种:入栈、退栈与读栈顶元素。入栈运算是指在栈顶位置插入一个新元素,栈顶指针进一。退栈元素是指取出栈顶元素并将该元素赋给一个指定的变量,栈顶指针退一。读栈顶元素是指将栈顶元素赋给一个指定的变量,这个运算不删除栈顶元素,所以栈顶指针不会改变。 3.​ 队列是指允许在一端进行插入,而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素。允许删除的一端称为队头,通常也用一个排头指针(front)指向队头元素的前一个位置。队列又称为“先进先出”或“后进后出”的线性表。 4.​ 往队列的队尾插入一个元素称为入队运算,队尾指针就进一。从队列的排头删除一个元素称为退队元素,排头指针就进一。与栈类似,在程序设计语言中,用一维数组作为队列的顺序存储空间。 5.​ 根据数据结构对队列先进先出的定义,打印作业应该存放在队列中。 6.​ 递归算法一般需要利用栈实现。 7.​ 对长度为n的线性表进行插入一个新元素或删除一个已有的元素时,在最坏情况下所需要的比较次数为n。 8.​ 在一个容量为25的循环队列中,若头指针front=16,尾指针rear=9,则该循环队列中共有18个元素。因为,从队头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。 考点5:线性链表 1.​ 线性链表是链式存储结构,在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定。 2.​ 链式存储方式既可用于表示线性结构,也可用于表示非线性结构。在用链式结构表示较复杂的非线性结构时,其指针域的个数要多一些。 3.​ 在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放数据元素的指针,称为指针域。其中指针用于指向该结点的后一个结点(即前驱或后继)。 4.​ 数据结构分为逻辑结构与物理结构(存储结构),线性链表属于物理结构(存储结构)。 5.​ 在线性单链表中,每一个结点只有一个指针域,由这个指针只能找到后继结点,但不能找到前驱结点。线性双向链表每个结点设置两个指针,一个称为左指针,用以指向其前驱结点,另一个称为右指针,用以指向其后继结点。与单向链表相比,双向链表的优点之一是更容易访问相邻结点。 6.​ 在实际应用中,带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,这种带链的栈称为可利用栈。 7.​ 为了要在线性链表中插入一个新元素,首先要给该元素分配一个新结点用于存储该元素的值。新结点可以从可利用栈中取得。 8.​ 在线性链表中删除一个元素后,只需改变被删除元素所在结点的前一个结点的指针域即可。由于可用栈是用于收集计算机中所有的空闲结点,因此,当从线性链表中删除一个元素后,该元素的存储结点就变为空闲,应将该空闲结点送回到可用栈。 9.​ 在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结点,而线性单链表做不到这一点。另外,由于在循环链表中设置了一个表头结点,因此任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。 考点6:树与二叉树 1.​ 二叉树的遍历是指不重复地访问二叉树中所有结点,二叉树是一种非线性结构。在先左后右的原则下,根据访问根结点的次序,可将二叉树的遍历分为三种:前序遍历、中序遍历、后续遍历,是一个递归的过程。 2.​ 前序遍历首先访问根结点,然后遍历左子树,最后遍历右子树;在遍历左、右子树时,仍然采用前序遍历的方法。中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树,在遍历左、右子树时,仍然采用中序遍历的方法。后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点,在遍历左、右子树时,仍然采用后序遍历的方法。 3.​ 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。 4.​ 在树结构中,一个结点所拥有的后继个数称为该结点的度。在树中,所有结点中的最大的度称为树的度。(设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为8。设一个二叉树中有3个叶子节点,有8个度为1的结点,则该二叉树中的结点数为13。) 5.​ 所谓完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。更确切地说,如果从根结点起,对二叉树的结点自上而下、自左至右用自然数进行连续编码,则深度为m、且有n个结点的二叉树,当且仅当其每一个结点都与深度为m的满二叉树中编号从1到n的结点一一对应时,称之为完全二叉树。(设一棵完全二叉树共有739个结点,则在该二叉树中有370(739+1后除2)个叶子结点)。 对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现;对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p+1。 由满二叉树与完全二叉树的特点可以看出,满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。完全二叉树具有以下两个性质: (1)具有n个结点的完全二叉树的深度为【log2n】+1。 (2)设完全二叉树共有n个结点。如果从根结点开始,按层序(每一层从左到右)用自然数1,2,…,n给结点进行编号,则对于编号为k(k=1,2,…,n)的结点有以下结论: ①若k=1,则该结点为根结点,它没有父节点;若k>1,则该结点的父结点编号为INT(k/2)。 ②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。 ③若2k+1≤n,则编号为k结点的右子结点编号为2k+1;否则该结点无右子结点。 6.​ 设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后续遍历结果为DEBFCA。 考点7:查找技术 1.​ 二分法查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)。 设有序线性表的长度为n,设待查元素为x,则二分法查找(也称对分查找)的方法如下: ​ 将x与线性表的中间项进行比较; ​ 若中间项的值等于x,则 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 查到,查找结束; ​ 若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找; ​ 若x大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找。 反复进行这个过程一直进行到查找成功或子表长度为0(说明线性表中没有这个元素)为止。显然,当有序线性表为顺序存储时才能采用二分查找,并且,二分查找的效率要比顺序查找高得多。对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。 2.​ 顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法如下:从线性表中的第一个元素开始,依次将线性表中的元素与被查元素进行比较,若相等则表示找到(即查找成功);若线性表中所有的元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。 在长度为n的线性表中查找一个表中不存在的元素,需要的比较次数为n。 对于大的线性表来说,顺序查找的效率是很低的。虽然顺序查找的效率不高,但在下列两种情况下也只能采用顺序查找: ​ 如果线性表为无序表(即表中元素的排列是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找。 ​ 即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。 考点8:排序技术 1.​ 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。一般要小于此复杂度。 冒泡排序法的基本过程如下: 首先,从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序。显然,在扫面过程中,不读地将两相邻元素中的大者往后移动,最后就将线性表中的最大者换到表的最后,这也是线性表中最大元素应有的位置。 然后,从后到前扫描剩下的线性表,同样,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,后面的元素小于前面的元素,则将它们互换,这样就又消去了一个逆序。显然,在扫描过程中,不断地将两相邻元素中的小者往前移动,最后就将剩下线性表中的最小者换到了表的最前面,这也是线性表中最小元素应有的位置。 对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时的线性表已经变为有序。在上述排序过程中,对线性表的每一次来回扫描后,都将其中的最大者沉到了表的底部,最小者像气泡一样冒到表的前头。且冒泡排序又称下沉排序。 2.​ 堆排序的方法对于规模较小的线性表并不合适,但对于较大规模的线性表来说是很有效的。在最坏情况下,堆排序需要比较的次数为O(nlog2n),堆排序的时间复杂度最小。 在堆排序的过程中,调整建堆时,总是将根结点值与左、右子树的根结点值进行比较,若不满足堆的条件,则将左、右子树根结点值中的大者与根结点值进行交换。这个调整过程一直做到所有子树均为堆为止。 有了调整建堆的算法后,就可以将一个无序序列建成为堆。假设无序序列H(1:n)以完全二叉树表示。从完全二叉树的最后一个非叶子结点(即第n/2个元素)开始,直到根结点(即第一个元素)为止,对每一个结点进行调整建堆,最后就可以得到与该序列对应的堆。 堆排序的方法如下: ​ 首先将一个无序序列建成堆。 ​ 然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。不考虑已经换到最后的那个元素,只考虑前n-1个元素构成的子序列,显然,该子序列已不是堆,但左、右子树仍为堆,可以将该子序列调整为堆。反复执行此步骤,直到剩下的子序列为空为止。 3.​ 快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此称之为快速排序法。快速排序法可以实现通过一次交换而消除多个逆序。 快速排序法的基本思想如下:从线性表中选取一个元素,设为T,将线性表后面小于T的元素移到前面,而前面大于T的元素移到后面,结果就将线性表分成了两部分(称为两个子表),T插入到其分界线的位置处,这个过程称为线性表的分割。通过对线性表的一次分割,就以T为分界线,将线性表分成了前后两个子表,且前面子表中的所有元素均不大于T,而后面子表中的所有元素均不小于T。 如果对于分割后各子表再按上述原则进行分割,且这种分割过程可一直做下去,直到所有子表为空,则此时线性表就变成有序表。可知,快速排序法的关键是对线性表进行分割,以及对各分割出的子表再进行分割,在对线性表或子表进行实际分割时,可按如下步骤进行:首先,在表的第一个、中间一个与最后一个元素中选取中项,设为P(k),并将P(k)赋给T,再将表中的第一个元素移到P(k)的位置上。然后设置两个指针i和j分别指向表的起始与最后的位置。 4.​ 在简单插入排序法中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n-1)/2次比较。 5.​ 选择类排序法主要有简单选择排序法和堆排序法; 6.​ 交换类排序法主要有冒泡排序法和快速排序法; 7.​ 插入类排序法主要有简单插入排序法和希尔排序法。 第二章 程序设计基础 考点1:程序设计方法与风格 1.程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思维。程序是由人编写的,为了测试与维护程序,往往还要阅读和跟踪程序,因此程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的,可读性要好。著名的“清晰第一,效率第二”这一论点已成为当今主导的程序设计风格。 2.源程序文档化时应考虑:符号名的命名、程序注释和视觉组织。 (1)注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述内容可以包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。 (2)符号名的命名:符号名的命名应具有一定的实际含义,以便于理解程序功能。 (3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。 3.在编写程序时,开发者需要注意数据说明的风格,以便使程序中的数据说明更易于理解和维护。应注意和把握以下三点:数据说明的次序 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 化、说明语句中变量安排有序化、使用注释来说明复杂数据的结构。 4.编写的程序应该简单易懂,语句构造应该简单直接,不能为了提高效率而把语句复杂化。应注意以下内容: ​ 在一行内只写一条语句; ​ 程序编写应优先考虑清晰性; ​ 除非对效率有特殊要求,程序编写要做到清晰第一,效率第二; ​ 首先要保证程序正确,然后才要求提高速度; ​ 避免使用临时变量而使程序的可读性下降; ​ 避免不必要的转移;尽可能使用库函数; ​ 避免采用复杂的条件语句; ​ 尽量减少使用“否定”条件的条件语句; ​ 数据结构要有利于程序的简化; ​ 要模块化,使模块功能尽可能单一化; ​ 利用信息隐蔽,确保每一个模块的独立性; ​ 从数据出发去构造程序;不好的程序不要修补,要重新编写。 5.无论是批处理的输入和输出方式,还是交互式的输入和输出方式,在设计和编程时都应该考虑以下原则: ​ 对所有的输入数据都要检验数据的合法性; ​ 检查输入项的各种重要组合的合理性; ​ 输入格式要简单,以使得输入的步骤和操作尽可能的简单; ​ 输入数据时,应允许使用自由格式; ​ 应使用默认值; ​ 输入一批数据时,最好使用输入结束标志; ​ 在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息; ​ 当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输出加注释,并设计输出报表格式。 考点2:结构化程序设计 1.程序的易读性是结构化程序设计最重要的特点。 2.按照结构化设计方法设计的程序具有以下特点: (1)程序易于理解、使用和维护,程序员采用结构化编写方法,便于控制、降低程序的复杂性,因此容易编写程序。便于验证程序的正确性,结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以确保程序的正确性,程序容易阅读并被人理解,便于用户使用和维护。 (2)提高编程工作的效率,降低了软件开发成本。由于结构化编程方法能够把错误控制到最低限度,因此能够减少调试和查错的时间。结构化是由一些为数不多的基本结构模块组成,这些模块甚至可以由机器自动生成,从而极大地减轻了编程工作量。 结构化程序设计选用的每个控制结构只允许有一个入口和一个出口。 3.​ 结构化程序设计的三种基本逻辑结构为顺序结构、选择结构和重复结构。 (1)顺序结构是一种简单的程序设计,它是最基本最常用的结构。 (2)选择结构又称为分支结构,包括简单分支和多分支选择结构,这种结构可以根据设定的条件,判断应该选择哪一条分支来执行相应的语句系列。 (3)循环结构是根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段,利用循环结构可节约大量的程序行。在程序设计语言中,循环结构包括当型循环结构和直到型循环结构。 ​ 当型循环结构:先判断条件后执行循环体。 ​ 直到型循环结构:先执行循环体后判断条件。 4.​ 结构化程序设计方法的主要原则是自顶而下,逐步求精,模块化,限制使用GOTO语句。 (1)自顶而下:程序设计时,应先考虑整体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层目标开始设计,逐步使问题具体化。 (2)逐步求精:对于复杂问题,应考虑设计一些子目标作为过渡,逐步细化。 (3)模块化:把一个复杂的问题分解成若干稍微简单的问题,把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,我们把每一个小目标称为一个模块。模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。 (4)限制使用GOTO语句:滥用GOTO语句确实有害,应尽量避免;并非完全避免使用GOTO语句,有些地方使用GOTO语句会使程序流程更清楚、效率更高。我们争论的焦点不应该放在是否取消用GOTO语句上,关键是是否能提高程序清晰性。 5.​ 结构化程序设计的一种基本方法是逐步求精法。对于复杂问题,应考虑设计一些子目标作为过渡,逐步细化,使复杂问题变得简单,从而有利于问题的解决。 考点3:面向对象的程序设计 1.模块是指执行某一特定任务(也可以是实现某一特定的抽象数据类型)的数据结构和程序代码。一个模块有它的外部特征和内部特征。外部特征包括模块的接口(即它的输入/输出参数,引用的全局变量和它需调用的其他模块)和模块的功能;内部特征包括模块的局部数据和实现该模块的程序代码。调用一个模块时只需知道它的外部特征即可,而不必了解其内部特征。 模块化是指将一个待开发的软件分解成若干个小的简单的部分——模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题的“分而治之”的原则,模块化的目的是使程序的结构清晰,模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。模块的功能尽量单一,且各模块之间的联系尽量少。 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,以增加程序的可读性。 2.结构化设计方法是基于模块化、自顶而下细化、结构化程序设计等程序设计技术基础而发展而来的,是一种面向数据流的设计方法。 在结构化程序设计的具体实施中要注意把握以下要素: (1)使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑; (2)选用的控制结构只准许有一个入口和一个出口; (3)程序语句组成容易识别的块,每块只有一个入口和一个出口; (4)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现; (5)语言中没有的控制结构,应该采用前后一致的方法来模拟; (6)严格控制GOTO语句的使用。 3.模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。所以说,在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小。 4.信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽是通过对象的封装性来实现。封装是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装目的是使对象的使用者和生产者分离,使对象定义和实现分开。 信息隐蔽的概念与模块独立性直接相关。耦合是指模块之间联系的紧密程度,耦合度越高则模块的独立性越差。 5.类是一组具有相同属性和相同操作的对象的集合。一个类的每个对象都是这个类的一个实例(instance)。在分析和设计时,我们通常把注意力集中在类上,而不是具体的对象。我们也不必为每个对象逐个定义,只需对类做出定义,而对类的属性的不同赋值即可得到该类的对象实例。 有些类之间存在一般和特殊的关系,即一些类是某个类的特殊情况,某个类是某些类的一般情况。即特殊类是一种一般类。特殊类是一般类的子类,一般类是特殊类的父类。通常把一个类和这个类的所有对象称为“类及对象”或对象类。 6.在面向对象方法中,继承是类间的一种基本关系,是在某个类的层次关联中不同的类共享属性和操作的一种机制。一个子类只有唯一的一个父亲,这种继承称为单一继承。一个子类也可以有多个父类,它可以从多个父类中继承特性,这种继承称为多重继承。 7.在面向对象方法中,消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务,一个消息通常包括接受对象名,调用的操作名和适当的参数。消息只告诉接收对象需要完成什么操作,但并不指示接受者怎样完成操作。消息完全由接受者解释,接受者独立决定采用什么方法来完成所需的操作。 8.面向对象的程序设计方法中涉及到的对象是系统中用来描述客观事物的实体,是构成系统的一个基本单位,由一组表示其静态特征的属性及其可执行的一组操作(操作是对象的动态属性)组成,是属性与方法的封装体,对象间的通讯是靠消息来传递的。继承是面向对象的方法的主要特征。广义地说,继承是指能够直接获得已经具有的性质和特征,而不必重复定义它们。但并不是所有的对象都必须有继承性。 9.在面向对象方法学中,有对象模型、动态模型和功能模型。 (1)对象模型:是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。 (2)动态模型:即事件跟踪图及状态图,确定事件,建立事件跟踪表。 (3)功能模型:功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况,直接反映了用户对目标系统要求。 10.对象有三种成分:标识、属性和方法(或操作)。每个对象都有自己的属性值,表示该对象的状态。对象中的属性只能够通过该对象所提供的操作来存取或修改。操作也称为方法或服务,它规定了对象的行为,表示对象所提供的服务。 面向对象技术的特点:可重用性、可维护性、表示方法的一致性。 11.对象根据所接受的消息而做出相应动作,同样的消息被不同的对象接受时会导致完全不同的行为,这种现象叫多态性。在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发给父类对象,又可以发给子类对象。也就是说,多态性是指同一操作作用于不同的对象可以有不同的解释,产生不同的执行结果。 12.传统的程序设计语言中,把过程调用与目标代码的连接(即调用哪个过程)放在程序运行前进行称为静态绑定,而动态绑定则是把这种连接推迟到运行时才进行。在一般与特殊关系中,子类是父类的一个特例,所以父类对象可以出现的地方,也允许其子类对象出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法连接,即动态绑定。 第三章 软件工程基础 考点1:软件工程基本概念 1.软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可跟踪性和可互操作性且满足用户需求的产品。 软件工程是计算机软件的一个重要分支和研究方向。软件工程的理论和技术性研究的主要内容包括软件开发技术和软件工程管理。 (1)软件开发技术:软件开发技术包括软件开发方法、开发过程、开发工具和软件工程环境,其中软件开发方法是主体内容。 (2)软件工程管理:软件工程管理是软件按工程化生产时的重要环节,它要求按照预先制定的 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 、进度和预算执行,以实现预期的经济效益和社会效益。主要包括:软件管理学、软件工程经济学、软件心理学等内容。 2.计算机软件是计算机系统中与硬件相互依存的重要部分,它是包括程序、数据及相关文档的完整集合。广义地说,所有使用软件的技能也属于软件的范畴,软件分系统软件和应用软件两种。软件由程序和数据以及相关的文档组成。 (1)程序时软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 (2)数据是使程序能正常操纵信息的数据结构。 (3)文档是与程序开发、维护和使用有关的图文资料。 3.任何一个软件产品或软件系统都要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程,我们把软件的这一全过程称为软件生存周期。主要包括:软件定义、软件开发和软件运行维护三个阶段。 (1)软件定义阶段主要解决的问题是待开发的软件要“做什么”,也就是要确定软件的处理对象,软件与外界的接口,软件的功能和性能,界面以及有关的约束和限制。软件定义阶段通常可分为系统分析、软件项目计划、需求分析等阶段。需求分析阶段的任务是确定待开发软件的功能、性能、数据、界面等要求,从而确定系统的逻辑模型。 (2)软件开发阶段主要解决的问题是该软件“怎么做”,包括数据结构和软件结构的设计,算法设计、编写程序,测试,最后得到可交付使用的软件。软件开发阶段通常可分成软件设计、编码、测试等阶段。 (3)软件开发阶段结束后,软件即可交付使用,在整个使用期间,都可能因为某种原因而修改软件,这便是软件维护。 4.软件工程的3个要素是方法、工具和工程。 (1)方法是完成软件工程项目的技术手段。 (2)工具支持软件的开发、管理、文档生成。 (3)过程支持软件开发的各个环节的控制、管理。 5.软件开发环境是全面支持软件开发全过程的软件工具集合。 6.瀑布模型(Waterfall Mode)突出的缺点是不适应用户需求的变动。 7.在编写程序时,应使程序正确、可靠、可测试、可维护、可扩充,程序结构应有助于读者理解。 8.根据ISO9000定义,软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。 (1)软件工程过程是指为了获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。一般包含以下4种基本活动: ​ P(plan):软件的规格说明。主要确认软件的功能及其运行时间的限制。 ​ D(do):软件开发。产生满足规格说明的软件。 ​ C(check):软件确认。主要确认软件能否满足客户提出的要求。 ​ A(action):软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。 (2)从软件开发的观点看,软件工程过程是使用适当的资源,为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。 9.我们将软件产品的从提出、实现、使用维护到停止使用甚至退役的过程称为软件生命周期。软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。 10.软件工程的原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 (1)抽象:抽象是人类在认识复杂问题的过程中所使用的最有力的思维工具,它抽取出事物的本质特性而暂时不考虑它的细节。采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。 (2)信息隐蔽:信息隐蔽是开发整体程序结构时使用的规则,即将每个程序的成分隐蔽或封装在一个单一的涉及模块中,使模块接口尽可能简单。 (3)模块化:模块时程序中相对独立的特定子功能,并且与其他模块之间的联系简单。 (4)局部化:局部化就是希望每个模块都是高内聚低耦合,有助于控制解的复杂性。 (5)确定性:软件开发过程中所有的概念表达应是确定的、无歧义且规范的。 (6)一致性:包括程序、数据和文档的整个软件系统的各个模块应使用已知的概念、符号和术语;程序内外部接口应保持一致,系统规格说明与系统行为应保持一致。 (7)完备性:软件系统完全实现系统所需功能,不丢失任何重要部分。 (8)可验证性:系统分解应遵循容易检查、测评、评审的原则,以确保系统的正确性。 考点2:结构化分析方法 1.结构化方法目前已经成为系统的、成熟的软件开发方法之一。主要包括结构化分析方法、结构化设计方法和结构化编程方法,其核心和基础是结构化程序设计理论。结构化分析常用工具有数据流程图(DFD)、数据字典(DD)、判定树和判定表。数据字典是结构化分析方法的核心,它对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。数据字典把不同的需求文档和分析模型紧密地结合在一起,与各模型的图形表示配合,能清楚地表达数据处理的要求。 2.数据流程图(DFD)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。 数据流程图由一些特定的图符构成,主要有加工、数据存储、源和潭和数据流等4种合法图符。在数据流程图中,→表示数据流;0表示加工;=表示文件;□表示源、潭,是系统和环境的接口,属系统之外的实体。↘↗表示存储。带有名字的箭头表示表示数据的流向,沿箭头方向传送数据的通道,一般在箭头旁边标注数据流名。 需求分析常用工具是数据流程图(DFD)。 数据流程图的步骤如下: (1)从外到里:先画系统的输入输出,然后画系统的内部。 (2)自顶向下:顺序完成顶层、中间层、底层数据流程图。 (3)逐层分解。 顶层主要描述软件的作用范围,对总体功能、输入、输出进行抽象描述,并反映软件和系统、环境的关系。 3.Jackson设计方法是由英国的M. Jackson提出的,它是一种典型的面向数据结构的设计方法,以数据结构作为设计的基础,根据输入/输出数据结构导出程序的结构,适合用于规模不大的数据处理系统。 4.总体设计主要包括总体布局、设计原则、模块结构设计、数据存储设计、系统配置 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 等。软件功能分解属于总体设计的阶段。 5.需求分析阶段的工作,可以概括为四个方面:需求获取,需求分析,编写需求规格说明书,以及需求评审。 (1)需求获取:其目的是确定对目标系统的各方面需求。主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的全过程。 (2)需求分析:对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。 (3)编写需求规格说明书:需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发过程的依据。 (4)需求评审:是需求分析的最后一步,对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整性和有效性。 6.软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。编写软件需求规格说明书是确保软件质量的有力措施,软件需求规格说明书是一份在软件生命周期中至关重要的文件。其特点即衡量其质量好坏的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 : (1)正确性:体现待开发系统的真是要求。 (2)无歧义性:对每一个需求只有一种解释,其陈述具有唯一性。 (3)完整性:包括全部有意义的需求,功能、性能、设计、约束及属性或外部接口等方面的需求。 (4)可验证性:描述的每一个需求都是可验证的,即存在有限代价的有效过程验证确认。 (5)一致性:各个需求的描述不矛盾。 (6)可理解性:需求说明书必须简明易懂,尽量少包含计算机的概念和术语,以便用户和软件人员都能接受它。 (7)可修改性:SRS的结构风格在需求有必要改变时是易于实现的。 (8)可跟踪性:每一个需求的来源、流向是清晰的,当产生和改变文件编制时,可以方便地引证每一个需求。 7.常见的需求分析方法有: (1)结构化分析方法,主要包括:面向数据流的结构化分析(structured analysis,SA)方法,面向数据结构的Jackson方法,面向数据结构的结构化数据系统开发方法(DSSD)。 (2)面向对象分析方法OOA(Object-Oriented Analysis)。面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 8.(1)数据描述是对软件系统所必须解决的问题做出的详细说明。 (2)功能描述中描述了为解决用户问题所需要的每一项功能的过程细节。对每一项功能要给出处理说明和在设计时需要考虑的限制条件。 (3)在性能描述中说明系统应达到的性能和应该满足的限制条件,检测的方法和标准,预期的软件响应和可能需要考虑的特殊问题。 (4)参考文献目录中应包括与该软件有关的全部参考文献,其中包括前期的其它文档、技术参考资料、产品目录手册以及标准等。 (5)附录部分包括一些补充资料。如列表数据、算法的详细说明、框图、图表和其他材料。 考点3:结构化设计方法 1.常用的软件结构设计工具是结构图(SC,structure chart),也称程序结构图。使用结构图描述软件系统的层次和分块结构关系,它反映了整个系统的功能实现以及模块与模块之间的联系与通讯,是未来程序中的控制层次体系。结构图是描述软件结构的图形工具。 在结构图中模块用一个矩形表示,矩形内注明模块的功能和名字;箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步表明传递的信息是数据还是控制信息,则可用带实心圆的箭头表示传输的是控制信息,用带空心圆的箭头表示传递的是数据。 2.为了使模块尽可能独立,模块分解时应满足信息隐蔽原则。尽量使模块的内聚度高,模块间的耦合度低。模块的大小适中(通常一个模块以50~100个语句行最为适宜)。 耦合是指模块之间联系的紧密程度,耦合度越高则模块的独立性越差。内聚是指模块内部各元素之间的联系的紧密程度。例如一个完成多个功能的模块的内聚度就比完成单一功能的模块的内聚度低。内聚度越低模块的独立性越差。因此,模块独立就是希望每个模块都是高内聚低耦合的。耦合和内聚是评价模块独立性的两个主要标准,其中内聚反映了模块内各成分之间的联系。 3.内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚是从功能角度来衡量模块内各成分之间联系的。模块的内聚通常分为7种,下面按内聚度从低到高的次序依次: (1)偶然内聚:如果一个模块完成一组任务,这组任务彼此间即使有关系,其关系也是很松散的,这个模块属于偶然内聚。 (2)逻辑内聚:如果一个模块完成逻辑上相关的一组任务,这个模块时逻辑内聚的。例如,产生与类型无关的全部输出的模块。 (3)瞬时内聚:如果一个模块所包含的任务必须在同一时间间隔内执行,这个模块属于瞬时内聚。例如初始化模块。 (4)过程内聚:如果一个模块的处理元素是相关的,而且必须按特定的次序执行,这个模块属于过程内聚。 (5)通信内聚:如果一个模块的所有处理元素集中在一个数据结构的区域上,该模块属于通信内聚。例如,一个模块中的所有处理元素使用同一输入数据。 (6)顺序内聚:如果一个模块的处理元素是相关的,而且必须顺序执行,这个模块属于顺序内聚。 (7)功能内聚:如果一个模块完成一个单一的功能,模块中的各部分在此目标下协同工作,而且都是为完成这一功能而不可缺少的,那么这个模块是功能内聚的 4.耦合是指模块之间联系的紧密程度。耦合度越高则模块的独立性越差。两个模块之间的耦合方式通常有如下7种。按它们的耦合度从低到高的次序依次如下: (1)非直接耦合:是指两个模块没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,则称这两个模块为非直接耦合。其独立性最强。 (2)数据耦合:若一模块访问另一模块,被访问模块的输入输出都是数据项参数,即两模块间通过数据参数交换信息,则这两个模块为数据耦合。 (3)标记耦合:若两个以上的模块都需要其余某一数据结构子结构时,不使用其余全局变量的方式,而是用记录传递的方式,即两模块间通过数据结构交换信息。 (4)控制耦合:若一模块明显地把开关量、名字等信息送入另一个模块,控制另一模块的功能,则为控制耦合。 (5)外部耦合:一组模块都访问同一全局简单变量(而不是同一全局数据结构),且不通过参数表传递全局变量的信息,称为外部耦合。 (6)公共耦合:若一组模块都访问同一全局数据结构,则它们之间的耦合称为公共耦合。 (7)内容耦合:如一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。 5.典型的数据流类型有两种:变换型和事务型。 (1)变换型。变换型是指信息沿输入通路进入系统,同时由外部形式变换为内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。变换型数据处理问题的工作过程大致分为三步,即取得数据、变换数据和输出数据。相应于取得数据、变换数据、输出数据的过程,变换型系统结构图由输入、中心变换和输出三个部分组成。 (2)事务型,在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。事务型数据流的特点是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元(事务处理中心),然后给出结果。这类数据流归为特殊的一类,称为事务型数据流。在一个事务型数据流中,事务中心接收数据,分析每个事务以确定它的类型,根据事务类型选取一条活动通路。 在事务型数据流系统结构图中,事务中心模块按所接受的事务类型,选择某一事务处理模块执行,各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。 6.面向数据流的结构设计的步骤如下: (1)分析、确认数据流程图的类型,区分是事务型还是变换型。 (2)说明数据流的边界。 (3)把数据流程图映射为程序结构。对于事务流区分事务中心和数据接收通路,将它映射成事务结构。对于变换流,区分输出与输入分支,并将其映射成变换结构。 (4)根据设计准则对产生的结构进行细化和求精。 7.将变换型映射成结构图,称为变换分析。 8.一个模块的扇入是指直接调用该模块的上级模块个数。一个模块的扇出是指该模块直接调用的下级模块的个数。扇入大表示模块的复用程度高,扇出大表示模块的复杂度高。好的软件设计结构通常顶层高扇出,中间扇出较少,底层高扇入。 9.模块的作用域(作用范围)是指受该模块内一个判定影响的所有模块的集合。模块的控制域(控制范围)是指该模块本身以及被该模块直接或间接调用的所有模块的集合。在设计时,模块的作用域应在控制域之间,作用域应是控制域的子集,作用域最好是做出判定的模块本身以及它的直属下级模块(直接调用的模块)。 10.详细设计的任务是为每个模块设计其实现的细节。详细设计的方法主要是结构化程序设计(SP,structure programming)。结构化程序设计主要是决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具,可分为三类:图形工具、表格工具、语言工具。 常用的图形描述工具有程序流程图、盒图和问题分析图。 典型的语言描述工具是PDL(program design language)。PDL是一种设计性的软件语言,用PDL描述的总体结构和一般的高级程序语言很相似,它包括数据说明部分和过程部分,也可带注解等成分,是一种混合语言。但是它与高级程序语言不同,PDL程序是不可执行的。PDL是一种非形式化语言,其控制结构的描述是确定的,但控制结构内部的描述语法是不确定的,它可以根据不同的应用领域和不同的设计层次灵活选用其描述方式,甚至可用自然语言描述。 11.按照结构化程序设计的要求,程序流程图构成的任何程序描述都应属于以下几种类型: (1)顺序型:几个连续的加工步骤依次排列构成。 (2)选择型:由某个逻辑判断式的取值决定选择两个加工中的一个。 (3)先判断型循环:先判断循环控制条件是否成立,成立则执行循环体语句。 (4)后判断型循环:重复执行某些特定的加工,直到控制条件成立。 (5)多分支选择型:列举多种加工情况,根据控制变量的取值,选择执行其中之一。 考点4:软件测试 1.软件测试的目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。 2.程序员应避免测试自己的程序,程序设计机构不应测试自己的程序。测试用例和调试用例未必一致,一个程序经调试改正错误后,一般还要再进行测试。软件测试的基本准则: (1)所有测试都应追溯到需求; (2)严格执行测试计划,排除测试的随意性; (3)充分注意测试中的群集现象; (4)程序员应避免检查自己的程序; (5)穷举测试不可能; (6)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。 3.黑盒测试是根据规格说明所规定的功能采设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑盒测试技术有等价类划分、边值分析、错误猜测等。白盒测试是把程序看成装在一只透明的白盒子里,测试者完全了解程序的结构和处理过程。白盒测试方法一般适用于单元测试,黑盒测试一般适用于集成测试和确认测试。 4.软件测试的方法和技术是多种多样的,对于软件测试方法和技术,可以从不同角度进行分类。从是否需要执行被测软件的角度,可以分为静态测试和动态测试方法。若按照功能划分则可以分为白盒测试和黑盒测试方法。 静态测试包括代码检查、静态结构分析、代码质量度量等。静态测试可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。或者说,是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 5.确认测试的任务是检查软件的功能,性能及其他特征是否与用户的需求一致,它是以需求规格说明书(即需求规约)作为依据的测试。确认测试通常采用黑盒测试。 确认测试首先测试程序是否满足需求规格说明书所列的各项要求等。如果一个软件是为某个客户定制的,那么最后由客户来实施验收测试,以便客户确认该软件是他所需要的。 6.软件测试过程一般分4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。 (1)单元测试:是对软件设计的最小单位——单位(程序单元)进行正确性检验的测试。 (2)集成测试:是测试和组装软件的过程。它是把模块在按照设计要求组装起来的同时进行测试,主要目的是发现与接口有关的错误。 (3)确认测试:任务是验证软件的功能和性能及其他特性是否满足了需求规格说明书中确定的各种需求。以及软件配置是否完全、正确。 (4)系统测试:是将通过测试确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试。系统测试的具体测试一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。 考点5:程序的调试 1.软件的调试是在进行了成功的测试之后才开始的工作。其任务是进一步诊断和改正程序中潜在的错误。调试有两部分组成:确定错误的确切性质和位置、修改程序(设计、编码)。测试的目的是暴露错误,评价程序的可靠性。 2.程序调试的基本步骤为: (1)错误定位:从错误的外部表现形式入手,研究有关部分的程序,确定程序中出错位置,找出错误的内在原因。确定错误位置占据了软件调试绝大部分的工作量。 (2)修改设计和代码,以排除错误。 (3)进行回归测试,防止引进新的错误。 3.软件调试方法主要有强行排错法、回溯法和原因排除法。 (1)强行排错法:该方法是传统的调试方法,其过程为:设置断点,程序暂停,观察程序状态,继续运行程序。这种方法效率较低,但使用较多。 (2)回溯法:该方法适用于小规模程序的排错,往往能把错误范围缩小到程序中的一小段的代码,仔细分析这段代码不难确定出错的准确位置。但随着源代码行数的增加,潜在的回溯路径数目很多,回溯会变得很复杂,而且实现这种回溯的开销大。 (3)原因排除法:是通过演绎和归纳,以及二分法来实现的。 第四章 数据库设计基础 考点1:数据库系统的基本概念 1.在数据库系统及数据库应用系统中数据已占有主体地位,程序已退居附属地位。在数据库系统中需要对数据进行集中、统一的管理,以达到数据被多个应用程序共享的目标。数据库是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。 数据库系统(DBS,Database System)不是一个独立的系统,它由如下几部分组成:数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台包括硬件平台(硬件)和软件平台(软件)。这5个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。 2.数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统。 3.数据库系统的主要目的是尽量减少和避免数据的冗余。数据库存放数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构以建立数据间内在联系与复杂的关系。数据库中的数据具有“集成”、“共享”的特点,亦即是数据库集中了各种应用的数据,进行统一的构造与存储,而使它们可被不同应用程序所使用。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一数据在系统的不同副本处有不同的值。 4.数据库管理系统是数据库系统的核心,它主要有以下6个方面的功能。数据模式定义;数据存取的物理构建;数据操纵;数据的完整性、安全性;数据库的开发控制与故障恢复;数据的服务。 5.目前流行的DBMS均为关系数据库系统,比如Oracle、Sybase的Power Buider及IBM的DB2、微软的SQLServer等,它们均为严格意义上的DBMS。另外有一些小型的数据库,如微软的Visual FoxPro和Access等,它们只具备数据库管理系统的一些简单功能,不是严格意义上的DBMS系统。 6.数据(data)实际上就是描述事物的符号记录。计算机的数据一般分为临时性数据和持久性数据两部分。软件中的数据是有一定结构的,首先,数据有型
本文档为【2011年全国计算机等级考试】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_802520
暂无简介~
格式:doc
大小:98KB
软件:Word
页数:0
分类:理学
上传时间:2011-09-16
浏览量:8