国二公共基础知识考点分析

公共基础知识考点分析

数据结构与算法
1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。
2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
3.线性表的定义;线性表的顺序存储结构及其插人与删除运算。
4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。
5.线性单链表、双向链表与循环链表的结构及其基本运算。
6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。
7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。

Ll算法和数据结构的基本概念
1.算法
(1)算法的基本概念
算法是指解题方案的准确而完善的描述。
a.算法的基本特征:①可行性;②确定性;③有穷性;④拥有足够的情报。
b.算法的基本要素:①算法中对数据的运算和操作:基本的运算和操作包括算术运算、逻辑运算、关系运算和数据传输;②算法的控制结构:基本的控制结构包括顺序结构、选择结构、循环结构。
c.算法设计的基本方法:①列举法;②归纳法;③递推;④递归;⑤减半递推技术;⑥回溯法。
(2)算法的复杂度
算法的复杂度主要包括时间复杂度和空间复杂度。
a.算法的时间复杂度:是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数。即:
算法的工作量=f(D)其中D是问题的规模。
b.算法的空间复杂度:一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输人的初始数据所占用的存储空间以及算法执行过程中所需要的额外空间。

2.数据结构的基本概念
数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题:
①数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;
②在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
③对各种数据结构进行的运算。
(1)数据结构的定义
①数据结构是指相互有关联的数据元素的集合。
②数据处理是指对数据集合中的各元素以各种方式进行运算,包括插人、删除、查找、更改等运算,也包括对数据元素进行分析。
③数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。
④数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。常用的存储结构有顺序、链接、

索引等存储结构。
(2)数据结构的图形表示
在数据结构的图形表示中,对于数据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点;为了进一步表示各数据元素之间的前后件关系,对于关系R中的每一个二元组,用一条有向线段从前件结点指向后件结点。
(3)线性结构与非线性结构
如果一个非空的数据结构满足下列两个条件:
①有且只有一个根结点;
②每一个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称为非线性结构。

L2线性表和线性链表
1.线性表
(1)线性表的基本概念
线性表(Linear IJist)是最简单、最常用的一种数据结构。
线性表是由n(n≥0)个数据元素al,a2,…,aD组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。
(2)线性表的顺序存储结构
线性表的顺序存储结构具有以下两个基本特点:
①线性表中所有元素所占的存储空间是连续的;
②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
(3)顺序表的插人运算
在线性表采用顺序存储结构时,如果插入运算在线性表的末尾进行,即在第n个元素之后(可以认为是在第n十1个元素之前)插入新元素,则只要在表的末尾增加一个元素即可,不需要移动表中的元素,如果要在线性表的第1个元素之前插入一个新元素,则需要移动表中所有的元素。
(4)顺序表的删除运算
在线性表采用顺序存储结构时,如果删除运算在线性表的末尾进行,即删除第n个元素,则不需要移动表中的元素;如果要删除线性表中的第1个元素,则需要移动表中所有的元素。
2.线性链表
(1)线性链表的基本概念
在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针HEAD称为头指针,当HEAD=MUI2L(或O)时称为空表。
(2)线性链表的基本运算
线性链表的运算主要有:线性链表的插人、删除、查找、合并、分解、逆转、复制、排序等。
①在线性链表中查找指定元素
在非空线性链表中寻找包含指定元素值x的前一个结点p的基本方法如下:从头指针指向的结点开始往后沿指针进行扫描,直到后面已没有结点或下一个结点的数据域为x为止。当线性链表中不存在包含元素x的结点时,则找到的P为线性链表中的最后一个结点号。
②线性链表的插入
为了在线性链表中插入一个新元素,首先要给该元素分配一个新结点,它可以从

可利用栈中取得。然后将存放新元素值的结点链接到线性链表中指定的位置。
③线性链表的删除
为了在线性链表中删除包含指定元素的结点,首先要在线性链表中找到这个结点,然后将要删除结点放回到可利用栈。
(3)循环链表及其基本运算
①在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。
②循环链表中最后一个结点的指针域不是空,而是指向表头结点。

L3栈和队列
1.栈及其基本运算
栈是一种特殊的线性表,在这种线性表的结构中,一端是封闭的,不允许进行插人与删除元素;另一端是开口的,允许插人与删除元素。在顺序存储结构下,对这种类型线性表的插入与删除运算是不需要移动表中其他数据元素的。
在栈中,允许插人与删除的一端称为栈顶,而不允许插人与删除的另一端称为栈底。栈是按照“先进后出”(FILO一First In LastOut)或“后进先出”(LIFO一Last In FirstOut)的原则组织数据的。栈的基本运算有三种:人栈、退栈与读栈顶元素。
2.队列及其基本运算
(1)队列(Sueue)是指允许在一端进行插入、而在另一端进行删除的线性表。队列又称为“先进先出”(FIFO一First In FirstOut)或“后进后心”(LILO一Last In Last Out)的线性表。
(2)循环队列及其运算
在实际应用中,队列的顺序存储结构一般采用循环队列的形式。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。循环队列主要有两种基本运算:人队运算与退队运算。

L4树与二叉树
1.树的基本概念
树(tree)是一种简单的非线性结构。在树这种数据结构中,所有数据元素之间的关系具有明显的层次特性。
2.二叉树的定义及其存储结构
(1)二叉树的定义
二叉树具有以下两个特点:
①非空二叉树只有一个根结点;
②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
(2)二叉树的存储结构
在计算机中,二叉树通常采用链式存储结构。在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于存储二叉树的存储结点的指针域有两个:一个用于指向该结点的左子结点的存储地址,称为左指针域;另一个用于指向该结点的右子结点的存储地址,称为右指针域。
3.二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中的所有结点。二叉树的遍历可以分为:
①前序遍历(DLR)
首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历

左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
②中序遍历(LDR)
首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
③后序遍历(LRD)
首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。

L5查找技术和排序技术
l.查找技术
查找是数据处理领域中的一个重要内容,查找的效率将直接影响到数据处理的效率。
(1)顺序查找
在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。在平均情况下,利用顺序查找法在线性表中查找一个元素,大约要与线性表中一半的元素进行比较。
(2)二分法查找
二分法查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列。对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。
2.排序技术
(1)交换类排序法
交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序法与快速排序法都属于交换类的排序方法。假设线性表的长度为D,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n一1)/2。在快速排序过程中,随着对各子表不断地进行分割,划分出的子表会越来越多,但一次又只能对一个子表进行再分割处理,需要将暂时不分割的子表记忆起来,这就要用一个栈来实现。
(2)插人类排序法
插入排序是指将无序序列中的各元素依次插入到已经有序的线性表中。在简单插人排序法中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插人排序需要n(n一1)/2次比较。
(3)选择类排序法
选择排序法的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置);然后对剩下的子表采用同样的方法,直到子表空为止。简单选择排序法在最坏情况下需要比较n(n一1)/2次。

第2章
程序设计基础
1.程序设计方法与风格。
2.结构化程序设计。
3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。

2.1程序设计方法与风格
程序设计是一门技术,需

要相应的理论、技术、方法和工具来支持。就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象的程序设计阶段。程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。要形成良好的程序设计风格,应注重和考虑这些因素:①源程序文档化;②数据说明的方法;③语句的结构;④输人和输出。

2.2结构化程序设计
 1.结构化程序设计的原则
结构化程序设计方法的主要原则可以概括为际顶向下,逐步求精,模块化,限制使用goto语句。
 2.结构化程序设计的基本结构与方法
结构化程序设计的三种基本结构分别是顺序结构、选择结构和循环结构。
在结构化程序设计的具体实施中,要注意把握如下要素:①使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑;②选用的控制结构只准许有一个入口和一个出口;③程序语句组成容易识别的块,每块只有一个人口和一个出口;④复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现;⑤语言中所没有的控制结构,应该采用前后一致的方法来模拟;⑥严格控制goto语句的使用。

2.3面向对象的程序设计
1.关于面向对象方法
面向对象方法的优点:①与人类习惯的思维方法一致;②稳定性好;③可重用性好;④易于开发大型软件产品;⑤可维护性好。
2.面向对象方法的基本概念
①面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。通常把对象的操作称为方法或服务。②属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。③对象的基本特征有:8.标识惟一性;b.分类性;c.多态性;d.封装性;e.模块独立性好。④继承是使用已有的类定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。继承分为单继承与多重继承。⑤多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。

第3章
软件工程基础
1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。
2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。
3.结构化设计方法,总体设计与详细设计。
4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
5.程序的测试,静态调试与动态调试



3.1软件工程基本概念
1.软件定义与软件危机
(1)软件的定义:软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据。软件的三个要素:程序、数据和文档。
(2)软件分类:软件按功能可分为应用软件、系统软件和支撑软件(或工具软件)三大类。
(3)软件危机的定义:软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.软件工程定义与软件生命周期
(1)软件工程
定义:软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程的三个要素:方法、工具和过程。
(2)软件生命周期
定义:软件生命周期就是软件产品从提出、实现、使用维护到停止使用退役的全过程。
软件生命周期包括软件定义、软件开发及软件维护三个阶段。软件定义阶段的任务包括可行性研究与计划制定、需求分析;软件开发阶段的任务包括概要设计、详细设计、软件实现、软件测试;软件维护的任务包括软件的运行、维护和退役。
3.软件开发工具与软件开发环境
(1)软件开发工具:软件开发工具的发展是从单项工具的开发逐步向集成工具发展的,软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。
(2)软件开发环境:软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。

3.2结构化分析和设计方法
1.结构化分析方法
(1)关于结构化分析方法
结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。结构化分析的常用工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。其中最重要的工具是数据流图。
(2)结构化分析的常用工具
①数据流图是描述数据处理过程的工具,是通过对需求的理解构造出逻辑模型的图形表示,它直接支持系统的功能建模。
②数据字典是结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输人、输出、存储成分和中间计算结果有共同的理解。
(3)软件需求规格说明书
软件需求规格说明书(SRS)是需求分析阶段的最后结果,是软件开发中的重要文档之一。
①软件需求规格说明书有以下几个作用:1)便于用户、开发人员进行理解和交流;2)反映出用户问题的结构,可以作为软件开发工作的基础和依据;3)作为确认测试和验收的依据。

②软件需求规格说明书的内容:包括概述、数据描述、功能描述、性能描述、参考文献目录和附录。
③软件需求规格说明书的特点:软件需求规格说明书具有正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等特点。
2.结构化设计方法
(1)软件设计的基本概念
①软件设计的基础
软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。软件设计的基础目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。
软件设计的内容:从技术观点看,软件设计包括结构设计、数据设计J接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系。数据设计是将分析时创建的模型转化为数据结构妁定义。接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信。过程设计是把系统结构部件转换成软件的过程性描述。
软件设计的一般过程是:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。
②软件设计的基本原理
软件设计遵循软件工程的基本目标和原则。
③结构化设计方法的基本思想:将软件设计成由相对独立、单一功能的模块组成的结构。为了提高模块的独立性,应该尽量提高模块的内聚性,降低模块间的耦合性。
(2)概要设计
①概要设计的任务
概要设计的基本任务:设计软件系统结构、确定数据结构及数据库设计<编写概要设计文档、进行概要设计文档评审。软件结构设计工具——结构图(SC),也称为程序结构图。结构图是描述软件结构的图形工具。
软件设计的准则:儿提高模块独立性;LL模块规模适中;c.深度、宽度、扇出和扇人适当;dl使模块的作用域在该模块的控制域内;c.应减少模块的接冂和界面的复杂性;f.设计成单人口、单出口的模块;g.设计功能可预测的模块。
②详细设计
详细设计的任务:为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
过程设计的任务:对每个模块规定的功能以及算法的设计,给出适当的算法描述。
常见的过程设计工具有:
图形工具:程序流程图,N一S,PAD, HIPO。
表格工具:判定表。
语言工具:PDL(伪码)。
3.3软件测试及程序的调试
L软件测试
软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命期的过程,包括需求定义阶段的需求测试、编码阶段的单元测试、集

成测试以及后期的确认测试、系统测试、验证软件是否合格、能否交付用户使用等。
(1)软件测试的吕的
软件测试是为了发现错误而执行程序的过程:
一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;
一个成功的测试是发现了至今尚未发现的错误的测试。
(2)软件测试的准则
软件测试过程中应遵循以下准则:①所有测试都应追溯到需求;②严格执行测试计划,排除测试的随意性;③充分注意测试中的群集现象;④程序员应避免检查自己的程序;⑤穷举测试不可能;⑥妥善保存测试计划、测试用例、出错统计和最终分析报告。
(3)软件测试技术与方法综述
①软件测试从是否要执行被测试软件的角度可以分为静态测试和动态测试。
②软件测试按照功能划分可分为白盒测试和黑盒测试方法。
白盒测试:白盒测试又称结构测试或逻辑驱动测试,是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作符合设计规范要求。
白盒测试的基本原则:1)保证所测模块中每一独立路径至少执行一次;2)保证所测模块所有判断的每一分支至少执行一次;3)保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;4)验证所有内部数据结构的有效性。
白盒测试的主要方法:1)逻辑覆盖测试方法:逻辑覆盖是泛指一系列以程序内部的逻辑结构为基础的测试用例设计技术。逻辑覆盖测试方法有语句覆盖、路径覆盖、判定覆盖、条件覆羞以及判断一条件覆盖。2)基本路径测试:基本路径测试的思想和步骤是,根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。
黑盒测试:黑盒测试也称功能测试或数据驱动测试,是对软件已经实现的功能是否满足需求进行测试和验证。
黑盒测试的方法:1)等价类划分法:将程序的所有可能的输人数据划分成若干部分(即若干等价类),然后从每个等价类中选取数据作为测试用例。2)边界值分析法:边界分析法是对各种输入、输出范围的边界情况设计测试用例的方法。3)错误推测法:靠经验和直觉推测程序书可能存在的各种错误,从而有针对性地编写检查这些错误的例子的方法。
(4)软件测试的实施
软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。
①单元测试:单元测试是对软件设计的最小单位——模块进行正确性检验的测试。主要目的是发现各模块内部可能存在的各种错误。
②集成测试:集成测试是把模块在按

照设计要求组装起来的同时进行测试,主要目的是发现与接口有关的错误。
③确认测试:确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中确定的各种需求,以及软件配置是否完全、正确。
④系统测试:系统测试是将通过测试确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素组合在一起,在实际运行环境下对计算机系统进行一系列的集成测试和确认测试。
2.程序的调试
程序调试的任务是诊断和改正程序中的错误,它与软件测试不同,软件测试是尽可能多地发现软件中的错误。软件测试贯穿整个软件生命期,调试主要在开发阶段。
(1)基本概念
①程序调试的基本步骤:第1步:错误定位;第2步:修改设计和代码,以排除错误;第3步:进行回归测试,防止引进新的错误。
②程序调试的原则
确定错误的性质和位置时应该注意的事项有:分析思考与错误征兆相关的信息;避开死胡同;只把调试工具当作辅助手段来用;避免用试探法,最多只能把它当作最后手段。
修改错误时应遵循如下原则:在出现错误的地方,还可能有别的错误;不应只修改了错误的征兆或表现而没有修改错误本身;注意修正一个错误的同时有可能会引人新的错误;修改错误的过程将迫使人们暂时回到程序设计阶段;修改源代码程序,不要改变目标代码。
(2)软件调试方法
主要的软件调试方法有强行排错法、回溯法和原因排除法。其中强行排错法是传统的调试方法,回溯法适合于小规模程序的排错,原因排除法是通过演绎和归纳,以及二分法来实现的。

第4章
数据库设计基础
1.数据库的基本概念:数据库,数据库管理系统,数据库系统。
2.数据模型,实体联系模型及E一R图,从E一R图导出关系数据模型。
3.关系代数运算,包括集合运算及选择、投影、连接运算、数据库规范化理论。
4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。

4.1数据库系统的基本概念
数据、数据库、数据管理系统
(1)数据:数据实际上就是描述事物的符号记录。数据分为临时性数据和永久性数据。
(2)数据库(DB):数据库是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可以被各个应用程序所共享。
(3)数据库管理系统(DBMS):数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库管理系统是数据库系统的核心。
(4)数据库管理员(DBA)

:对数据库进行规划、维护、监视等的专业人员。主要工作:数据库设计、数据库维护和改善系统性能,提高系统效率。
(5)数据库系统(DBS):由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一(硬件平台)和系统平台之二(软件平台)组成。
(6)数据库应用系统(DBAS):数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成。
2.数据库系统的发展
数据管理发展至今经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
3.数据库系统的基本特点
(1)数据的集成性。(2)数据的高共享性与低冗余性。(3)数据独立性。(4)数据统一管理与控制。
4.数据库系统的内部结构体系
数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式与外部级模式,二级映射则分别是概念级到内部级的映射以及外部级到概念级的映射。这种三级模式与二级映射构成了数据库系统内部的抽象结构体系。
(1)数据库系统的三级模式:数据库系统提供概念模式、外模式和内模式三级数据模式。
(2)数据库的两级映射:数据库的两级映射是指概念模式到内模式的映射和外模式到概念模式的映射。

4.2数据模型、关系代数及数据库设计与管理
1.数据模型
(1)数据模型的基本概念
数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供了一个抽象的框架。数据模型所描述的内容有三个部分:数据结构、数据操作和数据约束。数据模型按不同的应用层次分为:概念数据模型、逻辑数据模型和物理数据模型三种。
(2)E一R模型
①E一R模型的3个基本概念
实体:现实世界中的事物可以抽象为实体,实体是概念世界中的基本单位,它们是客观存在的且又能够相互区分的事物。将具有共性的实体组织成一个集合,称之为实体集。
属性:现实世界中的事物均有一些特性,这些特性可以用属性来表示。
联系:现实世界中事物间的关联称为联系。
E一R模型由实体、联系、属性三者组成。
实体与实体之间的联系:一对一(121)、一对多(1:m)和多对多(m : n)三种。
②E一R模型三个基本概念之间的联接关系
实体集(联系)与属性间的联接关系:实体以及它的所有属性构成了实体的一个完整描述。实体和隶属于它的属性之间可以建立这么一层联接关系。实体有型和值之别,一个实体的所有属性构成了这个实体的型,实体中属性值的集合(即元组)则构成了这个实体的值。相同型的实体构成实

体集。
实体(集)与联系间的联接关系:实体集间可以通过联系建立联接关系。
③E一R模型的图示法
E一R模型中用矩形表示实体集,用椭圆表示属性,用菱形表示联系,用无向线段表示实体集(联系)与属性、实体集与联系间的联接关系。
(3)基本的数据模型
数据发展过程中产生过三种基本的数据模型:层次模型、网状模型和关系模型。其中层次模型的基本结构是树形结构。网状模型的基本结构是一个不加任何限制条件的无向图。关系模型的基本结构是一张二维表。
(4)关系模型
①关系的数据结构
关系模型采用二维表来表示。二维表由表框架和表的元组组成。表框架由多个命名的表属性组成。每个属性有一个取值范围称为值域。二维表中的每一行数据称为元组。
键(或码):在二维表中能唯一标识元组的最小属性集。
候选键(或候选码):一个二维表中所有的键(或码)。
主键(或主码):从二维表的所有候选键中选取一个作为用户使用的键。主键简称键。
外键(或外码◇表A的某属性集是表B的键,则称该属性集为A的外键。
②关系操纵
关系模型的数据操纵是建立在关系上的数据操纵,一般有数据查询(基本单位是元组分量)、数据删除(基本单位是元组)、数据插人(基本单位是元组)和数据修改(基本单位是元组分量)四种操作。
③关系中的数据约束
关系模型中提供实体完整性约束、参照完整性约束和用户完整性约束三种数据约束。
2.关系代数
(1)关系模型的基本操作
关系是由若干个不同的元组所组成,因此关系可视为元组的集合。n元关系是一个n元有序组的集合。关系模型有插人、删除、修改和查询4种操作。
(2)关系模型的基本运算
由于操作是对关系的运算,而关系是有序组的集合,因此可以将操作看成是集合的运算。
①插入:设需在关系R中插人若干个元组,待插人的元组组成关系R′,则插入操作可用集合“并”运算表示为:RUR′。
②删除:设需在关系R中删除若干个元组,待删除的元组组成关系R′,则删除操作可用集合“差”运算表示为:R一R′。
③修改:修改关系R内的元组内容可用下面的方法实现:a.设待修改的元组构成关系R′,则先做删除操作,得R一R′;b.设修改后的元组构成关系R″,此时将其插人即得到结果
④查询:用于查询的3个操作无法用传统的集合运算表示,需引人一些新的运算。
a.投影(Projection)运算:对于关系内的域指定可引人新的运算叫投影运算。投影运算是一个一元运算,一个关系通过投影运算后仍为一个关系R′。
b.选择(Selection)

运算:选择运算也是一个一元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所组成。设关系的逻辑条件为F,则R满足F的选择运算可写成为:QF(R)。
c.笛卡尔积(Cartesian Product)运算:对于两个关系的合并操作可以用笛卡尔积表示。设有D元关系R及m元关系S,它们分别有p、〔1个元组,则关系R与S经笛卡尔积记为RXS,该关系是一个D屮m元关系,元组个数是PX9,由R与S的有序组组合而成。
(3)关系代数中的扩充运算
①交运算:关系R和S经交运算后所得到的关系是由那些既在R内、又在S内的有序组所组成,记为:R交S。
②除运算:如果将笛卡尔积运算看作是乘运算,那么除运算就是它的逆运算。当关系T一R×S时,则可将除运算写为:T—~R一S或T/R一S其中,S称为T除以R的商。
③连接运算:连接运算又可称为8一连接运算,这是一种二元运算,通过它可以将两个关系合并成一个关系。
3.数据库设计与管理
(1)数据库设计概述
数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境设计出数据模式。在数据库设计中有两种方法:——种是以信息需求为主,兼顾处理需求的面向数据的方法;另一种是以处理需求为主,兼顾信息需求的面向过程的方法。
数据库设计目前一般采用生命周期法,将数据库应用系统的开发分解为需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段和进一步修改阶段来完成。在数据库设计中主要采用需求分析、概念设计、逻辑设计、物理设计四个阶段。
(2)数据库设计的需求分析
需求分析阶段的任务是通过详细调查现实试界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。需求分析调查的是用户对数据库的如下要求:①信息要求:指用户需要从数据库中获得信息的内容与性质;②处理要求:指用户要完成什么处理功能,对处理的响应时间有何要求,处理的方式是批处理还是联机处理;③安全性和完整性的要求。
在实际开展需求分析阶段工作时,有两点需要特别注意:
第一在需求分析阶段,一个重要而困难的任务就是收集将来应用所涉及的数据。
第二必须强调用户的参与,这是数据库应用系统设计的特点。
(3)数据库概念设计
①数据库概念设计概述
数据库概念设计的方法有以下两种:8.集中式模式设计法:集中式模式设计法是一种统一的模式设计方法,它根据需求由一个统~—机构或人员设计一个综合的全局模式;卜

视图集成设计法:这种方法是将一个单位分解成若干个部分,先对每个部分作局部模式设计,建立各个部分的视图,然后以各个视图为基础进行集成。
②数据库概念设计的过程
数据库概念设计的过程分为以下三个步骤:
第1步:选择局部应用;
第2步:视图设计:一般有三种设计顺序:自顶向下(从一般到具体)、自底向上(从具体到一般)、由内向外(从最基本和最明显的对象扩充到非一般、不明显的其他对象);
第3步:视图集成:将所有的局部视图统一与合并成一个完整的数据模式。
(4)数据库的逻辑设计
①从E一R图向关系模式转换
数据库逻辑设计的主要工作是将E一R图转换成指定RDBMS中的关系模式。实体集也可以转换关系。
由E一R图转换成关系模型时会遇到以下一些问题:al命名与属性域的处理;卜非原子属性的处理;c.罗系的转换。
②逻辑模式规范化及调整、实现
a.规范化:在逻辑设计中还需对关系做规范化验证;b.RDBMS:对逻辑模式进行调整以满足RDBMS的性能、存储空间等要求,同时对模式做满足RDBMS限制条件的修改,它们包括如下内容:调整性能以减少连接运算;调整关系大小,使每个关系数量保持在合理水平,从而提高存取效率;尽量采用快照,若在应用中仅需某固定时刻的值,此时可用快照将某时刻值固定,并定期更新,此种方法可以显著提高查询速度。
③关系视图设计
关系视图能提供数据逻辑独立性,适应用户对数据的不同需求并且具有一定的数据保密功能。
(5)数据库的物理设计
数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。
(6)数据库管理
①数据库的建立。包括两部分的内容:数据模式的建立和数据加载。
②数据库的调整。在数据库建立并经一段时间运行后往往会产生一些不适应的情况,此时需要对其作出调整。
③数据库的重组。数据库在经过一定的时间运行后,其性能会逐步下降,下降的原因主要是由于不断的修改、删除和插人所造成的,这时需要对数据库进行重新整理,重新调整存储空间,这种工作叫数据库的重组。
④数据库安全性控制与完整性控制。数据库安全性控制和完整性控制的目的是保证数据库数据的正确性、一致性,不被没有授权的用户访问和修改。
⑤数据库的故障恢复。一旦数据库中的数据遭到破坏,需要及时进行恢复。
⑥数据库监控。DBA需随时观察数据库的动态变化,并在发生错误、故障或产生不适应情况时随时采取措施;同时还需要监视数据库的性能变化,在必要

时对数据库进行调整。

相关文档
最新文档