三级数据库_基础知识_打印版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章计算机基础知识
1、计算机的发展阶段:经历了以下5个阶段(它们是并行关系):大型机阶段(经历四小阶段它们是取代关系)、
小型机阶段、微型机阶段、客户机/服务器阶段(对等网络与非对等网络的概念)和互联网阶段(Arpanet是在1983年第一个使用TCP/IP协议的。
在1991年6月我国第一条与国际互联网连接的专线建成它从中国科学院高能物理研究所接到美国斯坦福大学的直线加速器中心。
在1994年实现4大主干网互连(中国公用计算机互联网Chinanet、中国科学技术网Cstnet、中国教育和科研计算机网Cernet、中国金桥信息网ChinaGBN))
2、计算机种类:
按照传统的分类方法:计算机可以分为6大类:大型主机、小型计算机、个人计算机、工作站、巨型计算机、小巨型机。
按照现实的分类方法:计算机可以分为5大类:服务器、工作站、台式机、笔记本、手持设备。
3、计算机的公共配置:CPU、内存(RAM)、高速缓存(Cache)、硬盘、光驱、显示器(CRT、LCD)、操作
系统(OS)
4、计算机的指标:位数指CPU寄存器中能够保存数据的位数、速度(MIPS、MFLOPS)指CPU每秒钟处理的
指令数通常用主频来表示CPU的处理速度、容量(B、KB、MB、GB、TB)、数据传输率(Bps)、版本和可靠性(MTBF、MTTR)。
5、计算机的应用领域:科学计算、事务处理、过程控制、辅助工程、人工智能、网络应用。
(补充实例)
6、计算机系统的组成:硬件系统具有原子特性(芯片、板卡、设备、网络)与软件系统具有比特特性。
且它们具有
同步性。
7、奔腾芯片的技术特点: 奔腾32位芯片,主要用于台式机和笔记本,奔腾采用了RISC和CISC技术(技术特
点10个请看书P8)
8、安腾芯片的技术特点:安腾是64位芯片,主要用于服务器和工作站。
安腾采用简明并行指令计算(EPIC)
技术
9、主机板与插卡的组成:
(1) 主机板简称主板(mainboard)或母板(motherboard)。
由5部分组成(CPU、存储器、总线、插槽和电源)与
主板的分类
(2)网络卡又称为适配器卡代号NIC,其功能为:(见书P11)
10、软件的基本概念:软件由程序(功能实现部分)与文档(功能说明部分)组成。
软件是用户与计算机硬件系统之
间的桥梁。
11、应用软件包括:桌面应用软件、演示出版软件、浏览工具软件、管理效率软件、通信协作软件和系统维护
软件。
12、程序与文档:程序是由指令序列组成的,告诉计算计如何完成一个具体的任务。
文档是软件开发、使用和维护中的必备资料。
13、软件开发:软件的生命周期中,通常分为三大阶段,每个阶段又分若干子阶段:
⑴计划阶段:分为问题定义、可行性研究(是决定软件项目是否开发的关键)。
⑵开发阶段:在开发前期分为需求分析、总体设计、详细设计三个子阶段,在开发后期分为编码、测试两个子
阶段。
前期必须形成的文档有:软件需求说明书,软件设计规格说明书。
⑶运行阶段:主要任务是软件维护。
为了排除软件系统中仍然可能隐含的错误,扩充软件功能。
14、编程语言:(机器语言与汇编语言都依赖于具体的机器,汇编语言与高级语言都需要编译)
⑴机器语言:能被计算机直接理解和执行,速度快,但该种语言难记、难学、难懂。
⑵汇编语言:用英文助记符和十进制数代替二进制码,使机器语言变成了汇编语言。
汇编语言属于低级语言。
汇编语言要通过汇编程序把汇编语言翻译成机器语言程序计算机才能执行。
⑶高级语言:高级语言是一种面向问题或过程的语言。
它是近似于日常会话的语言。
它不但直观、易学,而且
通用性强。
高级语言要通过编译(或解释)翻译成机器语言才能执行。
15、媒体的概念与分类:
(1) 媒体的概念:信息的载体
(2)媒体的分类:传输媒体、表现媒体、表示媒体、感觉媒体
16、多媒体的基本概念:指有声有色的信息处理与利用技术。
多媒体技术可划分为偏硬件技术和偏软件技术两
部分。
17、MPC的组成:具有CD-ROM、具有A/D和D/A转换功能、具有高清晰的彩色显示器、具有数据压缩与解
压缩的硬件支持
18、多媒体的关键技术:数据压缩与解压缩技术、芯片与插卡技术、多媒体操作系统技术、多媒体数据管理技
术。
19、超文本与超媒体的概念:
(1)超文本是非线性非顺序的而传统文本是线性的顺序的。
(2)超文本概念:超文本是收集、存储和浏览离散信息以及建立和表现信息之间关系的技术。
(3)超媒体的组成:当信息载体不限于文本时,称之为超媒体。
超媒体技术是一种典型的数据管理技术,它是由
称之为结点(node)和表示结点之间联系的链(link)组成的有向图(网络),用户可以对其进行浏览、查询和修改等操作。
(4)超媒体系统的组成:编辑器、导航工具、超媒体语言
第二章数据结构算法
2.1基本概率
考点1数据结构的基本概念
1.数据
在计算机系统中,数据不仅包含了通常的数值概念,还有更广泛的含义我们把采用计算机对客观事物进行识别、存储和加工所做的描述,统称为数据。
简言之,数据就是计算机化的信息
数据的基本单位是数据元素。
数据元素可由一个或多个数据项组成。
数据项是数据的不可分割的最小单位,又称为关键码,其值能够唯一确定一个数据元素的数据项。
2.数据结构
数据结构包括3个方面的内容:数据之间的逻辑关系、数据在计算机中的存储方式,以及在这些数据上定义的运算的集合。
(l)数据的逻辑结构。
数据的逻辑结构与数据在计算机中的存储方式无关,它用来抽象地反映数据元素之间的逻辑关系。
逻辑结构可分为线性结构和非线性结构。
最常见的线性结构是线性表,最典型的非线性结构是树型结构。
(2)数据的存储结构。
数据的存储结构实现了数据的逻辑结构在计算机内的存储问题,存储结构又称为物理结构。
存储结构分为顺序存储结构与链式存储结构。
(3)数据的运算。
数据的各种逻辑结构都有相对应的运算,每一种逻辑结构都有一个运算的集合。
数据运算主要包括查找(检索)、排序、插人、更新及删除等。
考点2主要的数据存储方式
实现数据的逻辑结构到计算机存储器的映像有多种不同的方式。
顺序存储结构和链式存储结构是两种最主要的存储方式。
1.顺序存储结构
顺序存储结构是将逻辑上相邻的数据元素存储在物理上相邻的存储单元里,节点之间的关系由存储单元的相邻关系来决定,它主要用于存储线性结构的数据。
顺序存储结构的主要特点如下。
(1)由于节点之间的关系由物理上的相邻关系决定,所以节点中没有链接信息域,只有自身的信息域,存储密度大,空间利用率高。
(2)数据结构中第i个节点的存储地址乙可由下述公式计算求得:
L¬i=L¬0+(i-1)×K
L¬0为第一个节点存储地址,左为每个节点所占的存储单元数。
(3)插人、删除运算会引起相应节点的大量移动各节点的物理地址是相邻的,每一次插人、删除运算会引起相应节点物理地址的重新排列。
2.链式存储结构
链式存储结构打破了计算机存储单元的连续性,可以将逻辑上相邻的两个数据元素存放在物理上不相邻的存储单元中链式存储结构的每个节点中至少有一个节点域,来体现数据之间逻辑上的联系。
链式存储结构的主要特点包括以下几个方面。
(1)节点中除自身信自、外,还有表示链接信息的指针域,因此比顺序存储结构的存储密度小,存储空间利用率低。
(2):罗辑上相邻的节点物理上不一定相邻,可用于线性表、树、图等多种逻辑结构的存储表示。
(3)插人、删除等操作灵活方便,不需要大量移动节点,只需将节点的指针值修改即可。
考点3算法设计与分析
在计算机领域,一个算法实质上是针对所处理问题的需要,在数据的逻辑结构和存储结构的基础上施加的一种运算,它是解决特定问题的方法。
一个算法所占用的计算机资源包括时间代价和空间代价两个方面
时间代价的含义是:当问题的规模以某种单位由1增至n时,解决该问题的算法运行时所耗费的时间也以某种单位由f( 1)增至f(n),则称该算法的时间代价为f(n)。
空间代价的含义是:当问题的规模以某种单位由1增至n时,解决该问题的算法实现时所占用的空间也以某种单位由到g(1)增至g(n),则称该算法的空间代价为g(n)。
2.2线性表
线性表的逻辑结构是由n个数据元素组成的一个有限序列。
线性表中所包含元素的个数叫线性表的长度.它是可变的.可同线性表中增加或删除元素。
线性表包括顺序表、链表、散列表和串等。
线性表的基本运算有:置表空、求表长、读表元素、插人、删除及检索等操作。
考点4顺序表和一维数组
线性表的顺序存储是线性表的一种最简单的存储结构。
其存储方法是:在内存中为线性表开辟一块连续的存储空间,该存储空间所包含的存储单元数要大于或等于线性表的长度,让线性表的第一个元素存储在这个存储空间的第一个单元中,第二个元素存储在第二个单元中,其他元素依次类推。
一般情况下,若长度为n的顺序表,在任何位置土插入或删除的概率相等,元素移动的平均次数均为n/2。
考点5链表
链表分为线性链表和非线性链表二线性链表是线性表的链式存储表示,非线性链表是非线性数据结构树和图的链式存储表示。
1.线性链表
线性链表也称为单链表,其每个一节点中只包含一个指针域。
对链表进行插人、删除运算时只需改变节点中指针域的值。
(1) 在指针一P后插人指针9的关键运算步骤:
q ↑. link:=P↑.link:
p ↑. link:=q;
(2)删除指针P后继节点q的关键运算步骤:
q:=p↑. link;
p↑. link:=q↑.link;
(3)在第一个节点(或称头节点)前插人一个指针P的关键运算步骤:
p↑. link:=head;
head:二P;
(4)删除表中头节点的关键运算步骤:
head:=head↑. link:
2.双链表
在双链表中,每个节点中设置有两个指针域,分别用以指向其前驱节点和后继节点。
rlink指向节点的后继,llink指向节点的前驱,这样的结构方便向后和向前查找。
(l)若要在双链表中删除指针P所指的节点时,只需修改其前驱的rlink字段和后继的Mink字段,步骤如下:
p↑. llink↑. rlink:=p↑. rlink;
P↑T.rlink↑. llink:=P↑.llink;
(2)如果要在指针P后面插人指针q所指的新节点,只需修改P指针所指节点的rlink字段和原来后继均Ilink字段,并重新设置q所指节点的Mink和rlink值,步骤如下:
q ↑. Mink:=P:
q↑.rlink:=P↑.rlink;
P↑.rlink r. Rink:=q;
p↑.rlink:=q;
3.可利用空间表
可利用空间表的作用是管理可用于链表插人和删除的节点,当链表插人需要一个新节点时,就从可利用空间表中删除第一个节点,用这个节点去做链表插人;当从链表中删除一个节点时,就把这个节点插人到可利用空间表的第一个节点前面。
考点6栈
栈又称为堆栈,它是一种运算受限的特殊的线性表,仅允许在表的一端进行插人和删除运算,可进行运算的一端为栈顶( top),另一端为栈底( bottom)。
表中无任何元素的栈称为空栈。
由于栈的插人和删除运算仅在栈顶进行,后进栈的元素必定先被删除,所以又把栈称为“后进先出”(LIFO)表。
栈的基本操作有:
(1) push(S,X)。
往栈S中插人(或称推人)一个新的栈顶元素x,即进栈。
(2)pop(S)。
从栈S中删除(或称弹出)栈顶元素,即出栈。
(3)lop(S,X):把栈S的栈顶元素读到变量x中,栈保持不变。
(4)empty(S)。
判断栈S是否为空栈,是则返回值为真。
(5)makempty。
(S)将栈S设置为空。
栈既然是一种线性表,所以线性表的存储结构同样也适用于栈。
栈通常用顺序存储方式来存储,分配一块连续的存储区域存放栈中元素,用一个变量来指向当前栈顶。
考点7队列
队列简称为队,它也是一种运算受限的线性表,队列的限定是仅允许在表的一端进行插入,而在另一端进行删除。
进行删除操作的一端称做队列的头,进行插人操作的一端称为队列的尾.
队列的基本操作有:
(1) enq(Q, X)。
往队列口中插人一个新的队尾元素x,即人队。
(2)deq(口)从队列Q中删除队头元素,即出队。
(3 ) front口,x)将队列口的队头元素值读到变量x中,队列保持不变。
(4)empty ( Q ).判断队歹,l口是否为空,是则返回值为真。
(5)makempty(口)将队列口置为空队列。
和线性表一样、队列的存储方式也有顺序存储和链式存储两种。
顺序队列在进行人队操作时,会产生假溢出现象解决的办法是让队列首尾相连,构成一个循环队列。
考点8串
串(或字符串)是由零个或多个字符组成的有限序列。
零个字符的串是空串。
串中字符的个数就是串的长度串中的字符可以是字母、数字或其他字符。
串的存储同样也有顺序存储和链式存储两种。
顺序存储时,既可以采用非紧缩方式,也可以采用紧缩方式。
串的基本运算有连接、赋值、求长度、全等比较、求子串、找子串位置及替换等,其中找子串位置(或称模式匹配)比较重要。
2.3多维数组、稀疏矩阵和广义表
考点9多维数组的顺序存储
多维数组是一维数组的推广。
多维数组的所有元素并未排在一个线性序列里,要顺序存储多维数组就需要按一定次序把所有的元素排在一个线性序列里。
常用的排列次序有行优先顺序和列优先顺序两种。
考点10稀疏矩阵的存储
稀疏矩阵是指矩阵中含有大量的0元素。
对稀疏矩阵可进行压缩存储,即只存储其中的非0元素。
若非0元素分布是有规律的,可用顺序方法存储非0元素。
对于一般的稀疏矩阵,常见的存储方法还有不元组法和十字链表法,这里就不再介绍了。
考点11广义表的定义和存储
广义表(又称列表)是线性表的另一种推广,是由零个或多个单元素或子表所组成的有限序列。
它与线性表的区别在于:线性表中的元素都是结构上不可分的单元素,而广义表中的元素既可以是单元素,又可以是有结构的表广义表与线性表相比,具有如下3个方面的特征。
(1)广义表的元素可以是子表,而子表的元素还可以是子表。
(2)广义表可被其他广义表引用二
(3)广义表可以是递归的表,即广义表也可以是自身的一个子表。
2.4树型结构
树型结构是节点之间有分支的、层次关系的结构,它类似于自然界中的树,是一类重要的非线性结构常用的树型结构有树和二叉树。
考点12树的定义
树是树型结构的一个重要类型。
一棵树或者是没有任何节点的空树,或者是由一个或多个节点组成的有限集合T,其中:
(1)有且仅有一个称为该树根的节点。
(2)除根节点外的其余节点可分为。
M(m≥0)个互不相交的有限集71,,兀,…,T ,其中每一个集合本身又是一棵树,并且称为根的子树。
这是一个递归的定义,即在树的定义中又用到了树的概念。
这恰好显示了树的固有特性。
考点13二叉树定义
1.二叉树的定义
二叉树是一种最简单而巨重要的树型结构它或者是一棵空树,或者是一棵由一个根节点和两棵互不相交的、分别称为这个根的左子树和右子树的二叉树组成。
有两种特殊形态的二_叉树,它们是满二叉树一和完全二叉树。
2.二叉树与树的区别
尽管树和二叉树的概念之间有许多关系,但它们是两个概念二叉树不是树的特殊情况,树和二叉树之间最主要的区别是:二叉树的节点的子树要区分左子树和了。
子树,即使在节点只有一棵子树的情况下也要明确指出该子树是左子树还是右子树。
考点14树与二叉树之间的转换
1.树转换成二叉树
将一棵树转换成相应的二叉树应包括以下几个步骤:
(1)在兄弟竹点之间加条连线
(2)对每一个节点,只保留它与第一个子节点的连线,与其他子节点连线全部抹掉
(3)以树根为轴心,顺时针旋转45。
2.森林转换成二叉树
如果F={T¬1¬¬,T¬2 ,…Tm}是森林,则可按如下规则将其转换乘一棵二叉树B=(root,LB,RB,):
(1)若F为空,即m=0,则B为树。
(2)若F非空,即m≠0, 则B的跟root即为森林中的第一棵树的跟ROOT(¬¬T);B的左子树LB是从T、中根节点的子树森林F1={T11,T¬,…,T¬m}转换而成的二叉树;其右子树RB是从森林Fˊ={T¬1,T2,…Tm}转换而成的二叉树。
3.二叉树转换成森林
如果B二(root,LB,RB)是、棵二叉树,则可按如下规则转换成森林F={T¬1,T2,…Tm}:
(1)若B为空,则F为空。
(2)若B非空,则F中第一棵树T1的根ROOT(T1)即为二叉树B的根root; T1中根节点的子树森林Fl是由B的左子树LB转换而成的;F中除T1之外其余树组成的森林Fˊ={T¬1,T2,…Tm}是由B的右子树RB转换而成的。
考点15二叉树和树的周游
周游(或称遍历)是树型结构的一种重要运算,是其他运算的基础。
周游一棵树就是按一定的次序访问树中听有节点,并且每个节点仅被访问一次的过程。
1.周游二叉树
二又树的周游主要有以下3种方式。
(1)前序法(NLR)。
访问根,按前序周游左子树,按前序周游右子树。
(2)后序法(LRN)。
按后序周游左子树,按后序周游右子树,访问根。
(3)对称序法(LNR)。
按对称序周游左子树,访问根,按对称序周游右子树。
2.周游树和树林
对树和树林的周游分为按深度优先和按广度优先两种方式进行。
按深度优先方式又可分为按先根次序和按后根次序周游两种方式。
(1)先根次序周游访问第一棵树的根,按先根次序周游第一棵树的根子树,按先根次序周游其他的树。
(2)后根次序周游按后根次序周游第一棵树的子树,访问第一棵树的根,按后根次序周游其他的树。
比较一下树与一又树之间的对应关系,可以看出,按先根次序周游树正好与按前序法周游树对应的二叉树等同,后根次序周游树正好与按对称序法周游对应的二叉树等同。
按广度优先方式可以做层次次序周游,首先依次访问层数为0的节点,然后依次访问下一层的节点,直至访问完最后一层的节点。
考点16二叉树的存储和线索
l二叉树的llink一rlink法存储表示
二叉树的存储通常采用链接方式,即每个节点除存储节点自身的信息外再设置两个指针域llink和rlink,分别指向节点的左子女和右子女。
当节点的某个子女为空时,则相应的指针值为空。
再加上一个指向
树根的指针t,就构成了二叉树的存储表示。
这种存储表示法被称为llink - rlink表示法。
2.线索二叉树
在有n个节点的二叉树的且ink - rlink法存储表示中,必定有n+1个空指针域,将这些指针位置利用起来,存储节点在指定周游次序F的前驱、后继节点指针,则得到线索二叉树。
考点17哈夫曼树
哈夫曼树是树型结构的一种应用二哈夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,这种树在信息检索中经常用到。
所谓路径长度就是从一个节点到另一个节点所经过的分支总数。
树的路径长度是从树的根到每个节点的路径长度之和。
完全二叉树就是这种路径长度最短的二叉树。
节点的带权路径长度为从该节点到树根之间的路径长度与节点上权的乘积。
树的带权路径长度为树中所有叶子节点的带权路径长度之和,WPL最小的不是完全二叉树,而是权大的叶子离根最近的二叉树。
2.5“查找
查找是数据结构中一种很常用的基本运算。
查找就是在数据结构中找出满足某种条件的节点。
所给的条件可以是关键码字段的值,也可以是非关键码字段的值,本节只考虑基于关键码值的查找
考点18顺序查找
顺序查找是线性表的最简单、最基本的查找方法顺序查找的优点是对线性表节点的逻辑次序无要求,对线性表存储结构也无要求
顺序查找的缺点是速度较慢,平均检索长度与表中节点个数和n成正比,查找成功最多需比较n次,平均查找长度为(n +1 )/2次,约为表长的,半,查找失败需比较n+l次顺序查找算法的时间复杂度为O(n)。
考点19二分法查找
二分法查找是一种效率比较高的查找方法,在进行二分法查找时,线性表节点必须按关键码值排序,且线性表是以顺序存储方式存储的。
二分法查找的优点是比较次数少,查找速度快,平均检索长度小,经过{_loge n次比较就可以完成查找过程。
缺点是在查找之前要为建立有序表付出代价,同时对有序表的插人和删除都需要平均比较和移动表中的一半元素。
一般情况下,二分查找适应于数据相对固定的情况,且二分法查找只适用于线性表的顺序存储。
考点20分块查找
分块查找又称索引顺序查找,是介于线性查找和二分法查找之间的一种查找方法。
它要求把线性表分成若干块,每一块中的节点不必有序,但块与块之间必须排序,不妨设每一块中各节点的关键码都大于前一块的最大关键码值。
另外,还要求将各块中的最大关键码值组成一个有序的索引表。
满足上述条件的线性表称做分块有序表。
它的分块检索的过程分以下两步进行。
(I)先查索引表(可以用线性检索或二分法检索),确定要找的记录在哪一块。
(2)在相应的块中线性检索待查记录。
考点21散列表的存储和查找
散列存储中使用的函数称为散列(Hash)函数散列表(又称哈希表)是线性表的一种重要的存储方式和检索方法。
实现散列技术检索必须解决两个问题:一个是构造一个好的散列函数,尽可能避免冲突现象的发生;另一个是设计有效的解决冲突的方法。
1.散列函数
常用的散列函数有以下几种。
(l)除余法。
选择一个适当的正整数川通常选p为不大于散列表存储区域大刁、的最大素数),用p去除关键码值,取其余数作为地址,即h(key)二key mod p。
(2)数字分析法。
当关键码的位数比存储区域地址码位数多时,可以对关键码的各位进行分析,去掉分布不均匀的位,留下分布均匀的位作为地址。
(3)折叠法。
将关键码值从某些地方断开,分为几段,折叠相加,作为地址。
(4)中平方法。
对关键码值求平方,取中间的几位数作为地址。
2.处理冲突的方法
发生冲突是指由关键字求得的散列地址为i(O-i-m一l)的位置上已存有记录,处理冲突就是为该关健字找到另一个“空”的散列地址。
常用的处理冲突的方法有开地址法、拉链法等。
3.负载因子(装填因子)和平均检索长度
装填因子表示散列表的装满程度,定义为散列表中节点的数目除以基本区域能容纳的节点数所得的商,用a表示a越小,冲突的可能性越小,a越大,冲突的可能性越大,检索时需要比较的次数就越多。
平均检索长度依赖于散列表的装填因子。