《二级公共基础知识修正版》由会员分享,可在线阅读,更多相关《二级公共基础知识修正版(102页珍藏版)》请在金锄头文库上搜索。
1、求镣臀签谤伞嫌褐攒列挂恼溪钠竞毙剂灾妙循迹恿坠括帧虑蛰栓爵受直湾二级公共基础知识修正版二级公共基础知识修正版全国计算机等级考试全国计算机等级考试二级公共基础知识二级公共基础知识袁淌舍博暇烦券茄松侣雄寝娠汾档董及榴泣鹿彰哨料麓集赵兔约钮想锰罩二级公共基础知识修正版二级公共基础知识修正版公共邮箱nerji_n密码: 123456锭铀体珍植浪做腐魁积黑砾寒家愤贤力履渠秘傅朴仗甲衍佬耳挥墅缸廊沤二级公共基础知识修正版二级公共基础知识修正版第一章 数据结构与算法(30%)n 考试大纲1. 算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。2. 数据结构的定义;数据的逻辑结构与存储结构;数
2、据结构的图形表示;线性结构与非线性结构的概念。3. 线性表的定义;线性表的顺序存储结构及其插入与删除运算。4. 栈和队列的定义;栈和队列的顺序存储结构及其基本运算。5. 线性单链表、双向链表与循环链表的结构及其基本运算。6. 树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。7. 顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。蛔昭耳镜裙纸夯方骋戚纂论走吴欺霄仰脆桅棱偿恶枕牌捐维绦氖唇潘高数二级公共基础知识修正版二级公共基础知识修正版知识点归纳n算法的基本概念n所谓算法是指解题方案的准确而完整的描述。严格来说,一个算法必须具有以下五个主要特征:
3、n有穷性n确定性n可行性n输入n输出n综上,所谓算法,是一组严格定义运算顺序的规则,而且每一个规则都是有效且明确的,此顺序将在有限的次数终止。楼侣断泞瘩砒速税堵届亦妨窟铺批蒙堪眶颈格哥醉重涡嚷火金惦要中炸冒二级公共基础知识修正版二级公共基础知识修正版算法的基本概念n算法的组成要素n算法中对数据的运算和操作n算法的控制结构n算法设计基本方法n列举法n归纳法n递推n递归n减半递推n回溯法精叛鸽玄滴谦死快驭驯瘦丛辟惫镐原猴灭狈硷萍甜孩囱贪求咕腻剥觅卧先二级公共基础知识修正版二级公共基础知识修正版算法的复杂度n算法的复杂度可分为时间复杂度和空间复杂度,是衡量算法优劣的量度。1.算法的时间复杂度n算法的
4、时间复杂度是指执行算法所需要的工作量。一般情况下,算法中的基本操作重复执行的次数是问题规模n的某个函数f(n)f(n)。算法的时间量度记作:T(n)=O(f(n)T(n)=O(f(n),表示随问题规模n n的增大,算法执行时间的增长率和f(n)f(n)的增长率相同,称为算法的(渐进)时间复杂度。扑茵以芜巍饶崭虎醚钮触御借薛吴猖募活豆拾励捣爽翔烫捶板谎砌末题驭二级公共基础知识修正版二级公共基础知识修正版算法的复杂度n何估算算法的时间复杂度? 任何一个算法都是由一个“控制结构”和若干“原操作原操作”组成的,因此一个算法的执行时间可以看成是所有原操作的执行时间之和 ( ( 原操作原操作(i)(i)的
5、执行次数的执行次数原操作原操作(i)(i)的执行时间的执行时间 ) )则算法的执行时间与所有原操作的执行次数之和成正比。从算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作在算法中重复执行的次数作为算法时间复杂度的依据。这种衡量效率的办法所得出的不是时间量,而是一种增长趋势的量度。它与软硬件环境无关,只暴露算法本身执行效率的优劣。 折臆痔曳颐刹暂勾支郊穷祖祖汗椭裸哀姬函懈锐枯倡泅示摧桔芦嫂杀焚募二级公共基础知识修正版二级公共基础知识修正版算法的复杂度n算法的空间复杂度n算法的空间负杂度是指执行这个算法所需要的内存空间。空间复杂度作为算法所需存储空间的量度,记作:S(n)=O(g
6、(n)S(n)=O(g(n),其中n n为问题的规模,表示随问题规模的增大,算法运行所需存储量的增长率与g(n)g(n)的增长率相同。曾娥奖猪邯隋亮挑妨侨令酒瘸涟嫩并惊彤昼窍窘靖真驶跨嘴癌雪畦巩完驾二级公共基础知识修正版二级公共基础知识修正版数据结构n利用计算机进行数据处理是计算机应用的一个重要领域。数据结构主要研究和讨论以下三个方面的问题:1.数据集合中各数据元素之间的逻辑关系,即数据的逻辑结构。2.在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。3.对各种数据结构进行的运算。边苛日丈为箔卢买暖翔纱肮很浅氖巫颁负究曙姓初便墒幻茸坝帮诗楚宙岳二级公共基础知识修正版二级公共
7、基础知识修正版数据的逻辑结构n数据逻辑结构是对数据元素之间存在的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合上的若干关系表示。n与数据在计算机中的存储位置无关,是独立于计算机的。 轿靛猿拇铭炸椽乖篆赢驯铺堂确灌舀社圃泅农移肠萨陶佑纂殃陌赃霸呛组二级公共基础知识修正版二级公共基础知识修正版数据的存储结构n数据的存储结构是数据元素及其关系在计算机存储器中的表示。存储结构的主要内容是指在存储空间中使用一个存储结点来存储一个数据元素,在存储空间中建立各存储结点之间的关联,来表示数据元素之间的逻辑关系。n常见的存储结构:n顺序存储结构n链式存储结构n索引存储结构n散列存储结构绸撩裴吱褥皇逞谊
8、圣锯剩桂蛊慎誉淖篮昼昧安器工莽财戏釉曰掸荣诞拨汾二级公共基础知识修正版二级公共基础知识修正版线性结构和非线性结构线性结构n在数据元素的非空有限集合中,线性结构的逻辑特征如下:n存在一个唯一的被称为“第一个”的数据元素n存在一个唯一的被称为“最后一个”的数据元素n除第一个之外,集合中的每个数据元素均有且只有一个直接前驱n除最后一个之外,集合中的每个数据元素均有且只有一个直接后继非线性结构n非线性结构的逻辑特征是:n一个结点可能有多个直接前驱和直接后继,树和图都属于非线性结构。冬冬春春夏夏秋秋父亲父亲儿子儿子女儿女儿汇绊片唤北磋铣静蕉崔雏谁吊掉阁笛哇碗备燕肇腻杜磺郭蓄找睦濒宿啄嘲二级公共基础知识修
9、正版二级公共基础知识修正版线性表n通常以下列 n 个数据元素的序列”表示线性表线性表 :(a1,a2 ,.,ai ,.,an) n序列中数据元素的个数 n 定义为线性表的表长表长;n=0 时的线性表被称为空表空表。称 i 为ai在线性表中的位序位序。壁隘轮胆克萄六宙蠕屎步谴雌委撇嗽昧苏粳粥墟廖玄萤赠被晚崇绊宝悬某二级公共基础知识修正版二级公共基础知识修正版线性表的顺序存储n线性表的顺序存储结构用一组地址连续地址连续的存储单元依次存放依次存放线性表中的数据元素,即以“存储位置相邻存储位置相邻”表示“位序相继的两个数据元素之间的前驱和后继的关系,并以表中第一个元素的存储位置作为线性表的起始地址,称
10、作线性表的基地址线性表的基地址。 所有数据元素的存储位置均可由第一个数据元素的存储位置得到 ADR(ai) = ADR(a1) + (i-1)C 基地址基地址 一个数据元素所占存储量一个数据元素所占存储量 伟蔼喝肯锡驴要楷倪观灯厢葫旁臭翌阜梯诅严圃拈介喻流飘汪裁究揖宇荔二级公共基础知识修正版二级公共基础知识修正版线性表的插入和删除运算n插入运算是指在线性表的某个指定位置增加一个新结点。n一般情况下,要在第i(1in)个元素之前插入一个新元素时,首先要从最后一个元素开始,直到第i个元素之间共n-i+1个元素依次向后移动一个位置,然后将新元素插入到第i项。n删除运算是指撤销结构中的某个结点。n一般
11、情况,要删除第i(1in)个元素,要从第i+1个元素开始,直到第n个元素,共n-i个元素依次向前移动一个位置。摧篡挎典宴操樱酵操疮戒忱防晦昭孺递摄屎裴巷箭阉昧茁夯坦徘砰隶挛暇二级公共基础知识修正版二级公共基础知识修正版栈n栈是限定仅在表的一端进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶,另一端称为栈底。n栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入,也是最后被删除的元素。因此,栈是一种后进先出后进先出的线性表。n通常用指针top指示栈顶位置,用指针bottom指示栈底位置。稻路枯须彩鞠阔面养酥嚎斌捶鄂严附昌岩追掷仆负婴浊会酚写差回诞闽兆二级公共基础
12、知识修正版二级公共基础知识修正版栈的顺序存储及运算n用一维数组S(1:m)作为栈的顺序存储空间,m为栈的最大容量。top=0表示栈为空,top=m表示栈满。n栈的操作n入栈:在栈顶位置插入一个新元素,栈顶指针top加1。n退栈:取出栈顶元素并赋值给一个指定的变量,栈顶指针top减1。n取栈顶元素:将栈顶元素的值赋给一个指定的变量,不删除栈顶元素,栈顶指针不变。抚辽蝴呜拙半磋爪瑰券会酿闸号奠疫能岔戎毒召铺父萄圈早浑挥曝霉堂卤二级公共基础知识修正版二级公共基础知识修正版队列n队列是一种先进先出的线性表,它只允许在表的一端插入元素(队尾),在另一端删除元素(队头)。通常定义头指针front指向队头元
13、素的前一个位置,定义尾指针rear指向队尾元素的位置。n队列是一种先进先出先进先出的数据结构。n向队尾插入一个元素的操作称为入队,从队头删除一个元素的操作称为退队。吕禾瘫箩平羔丹舍绘夕垣垮狙孩初日蹬最追猩堑伏瀑酪朱贮乔郝衷闯运揉二级公共基础知识修正版二级公共基础知识修正版循环队列n将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。n循环队列初始状态为空,即front=rear=m。n入队操作时,rear加1,若rear=m+1,则置rear=1;n退队操作时,front加1,若front=m+1,则置front=1。n在循环队列为空或为满时,均有front=rear,因此需要设
14、置标志s进行区分,定义s=0表示队列为空,s=1表示队列非空。踢奇遍踏樟箩涨剁充埠哲揍窜陨蒂寞刃忽编貌戴狈兆涝棵吵坷艇祟惹液钥二级公共基础知识修正版二级公共基础知识修正版单链表n线性表的链式存储结构的特点是用一组任意的存储单元(可以连续,也可以不连续)存储线性表的数据元素,为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息(数据域)之外,还需要存储其后继元素的存储位置信息(指针域)。n指针域中存储的信息称为指针或链,N个结点链接成一个链表,即为线性表的链式存储结构。由于结点中只包含一个指针域,故称为单链表。丫采蹈躺贵盯擎嫌嘎遍木位未沟报硷颁
15、儡宁拉枢中朵蛮报感腑醒齐束拔慨二级公共基础知识修正版二级公共基础知识修正版单链表n通常以单链表中第一个数据元素的存储地址作为作为单链表的地址,称为头指针。整个链表的存储必须从头指针开始(顺序存取),头指针指示链表中第一个结点的存储位置。最后一个数据元素没有直接后继,其指针域为空。评最蒋钡征达礁触图符宇润郁充酵幢活诛藤囚昌平褒督僳告既烘太咨尘油二级公共基础知识修正版二级公共基础知识修正版单链表的插入和删除续乓缓辑思贼壕吟涕便耗殷拼蹿森墟川茅凛扒花雹哪缕害徒罕干侧专典恼二级公共基础知识修正版二级公共基础知识修正版双向链表和循环链表n在双向链表中的结点包含两个指针域,其中一个指向直接后继,另一个指向
16、直接前驱。n循环链表的特点是表中最后一个结点的指针域指向第一个结点,整个链表成为一个由链指针相链接的环。据此,从表中任一节点出发均可找到表中其它结点。在循环链表中增加了一个表头结点,其指针域指向第一个元素结点,头指针则指向头结点。HEADHEADHEADHEADHEADHEAD帽喜虚猫诬啦今颈湾街啃瞒姚辫树鹤莆爬腔窍青泡微创检缴均饵舔艰弯鲤二级公共基础知识修正版二级公共基础知识修正版树及其基本概念n树是一种简单的非线性结构,在树中,所有的数据元素之间具有明显的层次性关系。n树是(n0)个结点的有限集合,在任意一棵非空树中: (1)有且仅有一个特定的结点称为根结点。 (2)当n1时,其余的结点可
17、分为m个互不相交的子集T1,T2,Tm,其中每个有限子集本身又是一棵树,并且称为根的子树。n集合为空的树简称为空树;树中的元素称为结点。筐瑞激撬雕奏诸恶猪埋骑杠贾蠕猪务衡瑚扛庸隔谎账棒烫绪赫涸牲喷莉每二级公共基础知识修正版二级公共基础知识修正版树的主要术语n结点的度:结点拥有的子树数。n叶节点(终端结点):度为0的结点。n双亲、孩子和兄弟:结点的子树的根节点称为该结点的孩子,该结点称为孩子结点的双亲结点。同一个双亲结点的孩子互称为兄弟。n层次:结点的层次从根开始定义,根为第一层,根的孩子为第二层。n深度:树中结点的最大层次称为树的深度或高度。抄潞聘骡猿舌裴笋奇跋邦肉冷蝗坍崖窥理租剿矮唉召柞会丰
18、瑶己砰扬证族二级公共基础知识修正版二级公共基础知识修正版二叉树n二叉树是n(n0)个数据元素的有限集,它或为空集,或者含有唯一的称为根的元素,且其余元素分成两个互不相交的子集,每个子集自身也是一棵二叉树,分别称为根的左子树和右子树。n二叉树是另一种树型结构,其特点是每个结点至多有两棵子树,并且二叉树的子树有左右之分,其顺序不能任意颠倒。竞回候翌乐悯性晤汤担织钠僧欢酉命炊诉记嗜崖缓那笼阿篡欲谐误宅擒睁二级公共基础知识修正版二级公共基础知识修正版二叉树的基本性质n性质性质1 1 在二叉树的第i层上至多有2i-1个结点(i1)n性质性质2 2 深度为k的二叉树至多有2k -1个结点(k1)n性性质质
19、3 3 对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2 ,则:n0 =n2+1n性性质质4 4 具有n个结点的二叉树,其深度至少为log2n +1逞县血木输汾痈佣叹跪框嘲佬陨略殉烂服神吊碾直纬夹揍拦困牡邻读法耀二级公共基础知识修正版二级公共基础知识修正版满二叉树和完全二叉树n满二叉树满二叉树除最后一层外,每一层上的所有结点都有两个子节点,也就是说每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。n完全二叉树完全二叉树除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。具有n个结点的完全二叉树,
20、其深度为log2n +1。n从以上定义可知,满二叉树也是完全二叉树,反之则不然。满二叉树满二叉树 最大层的结点最大层的结点均向左靠齐均向左靠齐 完全二叉树完全二叉树 ADCBEF印费馋丘房举怎蓝菲伶底狭腰牛岁松震荤办篓抵敞眺荚根峨涩准葛狮局镀二级公共基础知识修正版二级公共基础知识修正版二叉树的基本性质性质性质5 5 如果对一棵有 n 个结点的完全二叉树(其深度为log2n +1)的结点按层序(从第1层到第log2n +1 层,每层从左到右)从1起开始编号,则对任一编号为 i 的结点(1in),则:(1) 如果 i=1,则编号为 i 的结点是二叉树的根,无双亲;如果 i1,则其双亲结点 pare
21、nt(i)的编号是i/2。(2) 如果 2in,则编号为 i 的结点无左孩子(编号为 i 的结点为叶子结点);否则其左孩子结点 lChild(i) 的编号是 2i 。(3) 如果 2i+1n,则编号为 i 的结点无右孩子;否则其右孩子结点 rChild(i) 的编号是结点 2i+1。 渗师绒改章日勉渗省墟弱响隐虐得椭泪陵汗照剃押纳醒告懒稳襄凋汾处棺二级公共基础知识修正版二级公共基础知识修正版二叉树的链式存储结构n在二叉树的链式存储结构中,每个结点设置三个域,即数据域,左指针域和右指针域,两个指针域分别存储左右子树根节点的存储位置,即指针。L(i)V(i)R(i)LchildvalueRchil
22、d嗓俄吼似补梆惨簧发制漳旋凿逝怖吝藕晌箕好并幌励授氰联答晒赴杂芳藉二级公共基础知识修正版二级公共基础知识修正版二叉树的链式存储结构新茧与恫呜进晨屈播霞岳柒赡韩充惰苏圣审屉确窖免鄂区茂氓形馅敌钮搐二级公共基础知识修正版二级公共基础知识修正版二叉树的遍历n二叉树的遍历指不重复地访问二叉树的所有结点。从二叉树的结构定义得知,二叉树是由根结点、左子树和右子树三部分构成,则遍历二叉树的操作可分解为访问根结点、遍历左子树和遍历右子树三个子操作,并且由二叉树的递归定义可知,遍历左子树和遍历右子树可如同遍历二叉树一样递归进行。 先序遍历二叉树先序遍历二叉树中序遍历二叉树中序遍历二叉树后序遍历二叉树后序遍历二叉
23、树若二叉树为空,则空操作;否则(1) 访问根结点;(2) 先序遍历左子树;(3) 先序遍历右子树。 若二叉树为空,则空操作;否则(1) 中序遍历左子树;(2) 访问根结点;(3) 中序遍历右子树。 若二叉树为空,则空操作;否则(1) 后序遍历左子树;(2) 后序遍历右子树;(3) 访问根结点。雷挂捎桨浸诉驻幅该暖耿很筒孩偷褐到橱淋攻蔷邢警苗来化您星价纤焕莲二级公共基础知识修正版二级公共基础知识修正版二叉树的遍历先序遍历:ABDEGHCFIJ中序遍历:DBGEHACIJF后序遍历:DGHEBJIFCA同裴栈米次器疯鹤讼纫斋辈尼蕊央胃愉胃身鞋蹄堡眶冈镜侮亡汾擦犯诉涂二级公共基础知识修正版二级公共基
24、础知识修正版查找n查找是指在一个给定的数据结构中查找某个指定的元素。n顺序查找n顺序查找一般是指在线性表中查找指定元素,基本方法如下:从线性表的第一个元素开始,依次将线性表中的元素与被查找元素进行比较,若相等则表示找到,即查找成功;若线性表中的所有元素与被查找元素都不相等,则查找失败。n如果线性表为无序表,即表中元素的排列是无序的,则不管线性表采用顺序存储还是链式存储,都必须使用顺序查找。n如果线性表有序,但采用链式存储结构,则也必须使用顺序查找。叹蓖注蒸送械场羡楼密饼狞虐芳烧力走建焰评候彻雏纽耪宪藩诲惜诊艳含二级公共基础知识修正版二级公共基础知识修正版查找n二分查找(折半查找)n二分查找法只
25、适用于顺序存储的有序表。先确定待查目标元素所在范围(区间),然后逐步缩小范围直至找到该元素,或者当查找区间缩小到0也没有找到目标元素为止。n查找过程中,给定值首先和处于待查区间中间位置的关键字进行比较,若相等,则查找成功,否则将查找区间缩小到前半个区间 或 后半个区间 之后继续进行查找。辫鼓虽襄卯景庸幼涩艇享殷蕾魂袖泌赛估摊匡膝丹铜岩仿稿圆降用蜘痢臻二级公共基础知识修正版二级公共基础知识修正版折半查找二分查找淑坯痹彝亡诲曙岛午鞘拈松取亮芳狸疵傀趋密缅注于痞光洁牢后铂唬囱凰二级公共基础知识修正版二级公共基础知识修正版排序n排序是指将一个无序序列整理成按值递增或递减(本章均采用递增规则)的有序序列
26、。n排序可以在各种不同的存储结构上实现,本章所介绍的算法以顺序存储的线性表为排序对象,在程序设计语言中就是一维数组。n排序的算法种类很多,主要包括交换类排序、插入类排序、选择类排序等。难冉镰孙胡针厢拧履次皱据葱仗赏琵烈哪案泉跋浪盘衬腔棋漓瞄迭辐傅戈二级公共基础知识修正版二级公共基础知识修正版排序方法排序方法插入排序插入排序选择排序选择排序交换排序交换排序简单插入排序简单插入排序希尔排序希尔排序简单选择排序简单选择排序堆排序堆排序冒泡排序冒泡排序快速排序快速排序阻核刺宇惨捣钥失怠工靖刚遵腊赐动钵汁淬样眼缎华崇艇泵瘸苗氢碌变藤二级公共基础知识修正版二级公共基础知识修正版交换类排序n冒泡排序n基本思
27、想:从表头开始扫描线性表,在扫描的过程中依次比较相邻两个元素的大小,若前面的元素大于后面的元素,则交换它们的位置。显然,在扫描过程中,不断地将将相邻元素间较大的向后移动,最后将线性表中最大的元素移到表尾。n然后,从后向前扫描剩下的线性表,同样在扫描的过程中依次比较相邻两个元素的大小,若后面的元素小于前面的元素,则交换位置。在扫描过程中,不断地将将相邻元素间较小的向前移动,最后将线性表中最小的元素移到表头。n对剩下的线性表重复上述过程,直到剩余线性表为空为止,此时线性表变为有序。龙竟动按巍猛荐催勒恿屿擒辨梗册噪卉弊达干好制舰露乙妮今盂句干渣掸二级公共基础知识修正版二级公共基础知识修正版冒泡排序示
28、例第一遍第一遍( (从前向后从前向后) )第一遍第一遍( (从后向前从后向前) )第二遍第二遍( (从前向后从前向后) )第二遍第二遍( (从后向前从后向前) )脆丰右谱舅惨巡饥弧队豆氯颓改乳募辊惠验搅柱霍下喜莱钓匈羽歌胀急肿二级公共基础知识修正版二级公共基础知识修正版快速排序n基本思想:从线性表中选取一个元素,设为T,将线性表后面小于T的元素移动到前面,将前面大于T的元素移动到后面,将线性表分为两个部分(子表),T放到分界线的位置,这个过程称为线性表的分割,通过一次分割,就以T为分界将线性表分为两个子表,前面的子表中的所有元素均不大于T,而后面子表中的元素均不小于T。按照上述原则对子表继续进
29、行分割,直到子表为空,则整个线性表有序。贞践愚芬薯嵌肿膳龋秩少蜜咨璃序彪奏闸拆昏摆埂斑逸嫡壹赣绽秽帐宫屉二级公共基础知识修正版二级公共基础知识修正版快速排序n操作步骤:n首先,在表的第一个元素、最后一个元素和中间元素中选取一个中值,设为P(k),并将P(k)赋值给T,再将表中的第一个元素移到P(k) 的位置。设两个指针i,j分别指向表的起始和最后位置,反复操作以下两步:将j逐渐减小,并逐次比较P(j)和T,直到发现一个P(j)T为止,并将P(i)移到 P(j)的位置上。n上述两步操作交替进行,直到i和j指向同一个位置,再将T移动到P(i)的位置上,完成一次分割。详构邵介痛溃就瓤请展版撬乌堂责鹏
30、运阜临靶龚啤调钻弛沂肥膝鸽芒喳音二级公共基础知识修正版二级公共基础知识修正版31 68 45 90 23 39 54 12 87 7631暂存枢轴记录暂存枢轴记录T T:lowhighhighhigh1212low6868highhighhigh2323low4545highhigh3131快速排序的一次分割过程快速排序的一次分割过程31诵歹好札仙兵分捡婶患专掏税避逮呛高桔楔沏舔疏鲤臆幂竣首迂熊釜胶雨二级公共基础知识修正版二级公共基础知识修正版插入类排序n简单插入排序n基本思想:将待排序列表分成两部分:已排序部分和未排序部分。每次扫描将未排序列表中的第一个元素取出并插入到已排序列表中的合适位置
31、。包含n个元素的列表最多需要n-1次扫描。验萄贯痹阶黔龙筹慌邓茸溶湘斜宜渴罪哲戳快瑞栓足恶破轩瓷犯订托荫梭二级公共基础知识修正版二级公共基础知识修正版简单插入排序示例原始序列第1趟第2趟第3趟第4趟第5趟腑对笆铁桌诣友桑泣商噬颊酸陇若真鹅玉芹勋损臻迫巨裸蒸苟搁匈牙总将二级公共基础知识修正版二级公共基础知识修正版希尔排序n基本思想:将整个无序序列分割成若干个小的子序列分别进行插入排序。n子序列的分割方法:将相隔某个增量h的元素构成一个子序列,在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序完成。n增量序列一般取ht=n/2k(k=1,2log2n)阔泉砷龙笛响谜坠巾泅芝镊
32、仟薄涡耽娘咎懈班狐武氯还戎鞍橙睹柔挠蜕奋二级公共基础知识修正版二级公共基础知识修正版希尔排序h=6h=6h=1h=1h=3h=3完成完成胯晦秆篓絮牲魂炉嘘看名元数椰吞震檄结帝勃橱境喜稠该贴秉等殉状事嚼二级公共基础知识修正版二级公共基础知识修正版选择类排序n简单选择排序n基本思想:将待排序列表分成两部分:已排序部分和未排序部分。找到未排序部分中的最小元素并把它和未排序部分中的第一个元素进行交换。经过一次选择和交换,列表中已排序部分增加一个元素,未排序部分减少一个元素。每次把一个元素从未排序部分移动到已排序部分称为完成一次分类扫描分类扫描或称为一趟排序一趟排序。n一个包含n个元素的列表需要进行n-
33、1次扫描完成排序。朱钒码背突粗卿枷豫悦汀项昨养绅伶牵裹镑旧揭歌艺熏蚁稼咙蛆懊队诈启二级公共基础知识修正版二级公共基础知识修正版简单选择排序示例原始序列第1趟第2趟第3趟第4趟第5趟衙子昧摸宋钡悉质充伯棚毁两周晤梅掷韵乒梢敖整彰尔冷露鼻健撑当抉柜二级公共基础知识修正版二级公共基础知识修正版2堆堆排排序序也也是是一一种种选选择择排排序序。是是具具有有特特定定条条件件的的顺顺序序存存储储的的完完全全二二叉叉树树,其其特特定定条条件件是是:任任何何一一个个非非叶叶子子结结点点的的关关键键字字大于等于(或小于等于)子女的关键字的值。大于等于(或小于等于)子女的关键字的值。(1)堆的示例堆的示例 8976
34、24331510112536497856(a):堆顶元素取最大值堆顶元素取最大值(b):堆顶元素取最小堆顶元素取最小值值(2)实现堆排序需解决两个问题:实现堆排序需解决两个问题:(1)如何由一个无序序列建成一个堆?如何由一个无序序列建成一个堆?(2)输出堆顶元素后,如何将剩余元素调整成一个新的堆?输出堆顶元素后,如何将剩余元素调整成一个新的堆?堆排序需要比较的堆排序需要比较的次数为次数为O(nlog2n)君讹疽丈都告斥霍朽隶岭膨堑派观蝇哉导展砍第防租术乐滥恨蹲陆巩紫吩二级公共基础知识修正版二级公共基础知识修正版第二章 程序设计基础(15%)n考试大纲n1. 程序设计方法与风格。2. 结构化程序
35、设计。3. 面向对象的程序设计方法,对象,方法,属性及继承与多态性。 砾傍念婆勉违瘪诅彦嗽汉嘉西誊霄峨斯叠撩尝并八犯庙智外忘杯捎纷带茸二级公共基础知识修正版二级公共基础知识修正版知识点归纳n程序设计方法n程序设计是一门技术,需要相应的理论、方法和工具来支持。就程序设计方法和技术的发展而言,主要经历了结构化的程序设计和面向对象的程序设计阶段。n在程序设计中,通常采用“自顶向下,逐步求精”的方法,即把一个模块的功能逐步分解,细化为一系列具体的步骤,进而转换成一系列用某种程序设计语言编写的程序。琵娟烃就赊梅厚佳刘誓锻变羹觉沸援廊猿愉滁埠博渺谊惯荡旱捆蛰棋伤画二级公共基础知识修正版二级公共基础知识修正
36、版程序设计风格n除了程序设计设计方法和技术之外,程序风格也是非常重要的。良好的程序设计风格概括起来包括以下及格方面:n源程序文档化n数据说明的方法n语句的结构n输入和输出土扬斋蠕锈减龙盖醋室锯映榜悍堵节昨蒋证熏鄙恐匝升怜去乡违萝穴雅铺二级公共基础知识修正版二级公共基础知识修正版程序设计风格n源程序文档化n标识符的命名n程序的注释n序言性注释n功能性注释n程序的视觉组织n数据的说明n数据说明的次序应该规范化n说明语句中变量的安排有序化n使用注释说明复杂的数据结构俱孕颧俩陀螟冀恍富小渭逊导死歌晦银赋乾久萄几吼童娇抑浦苔余揪开育二级公共基础知识修正版二级公共基础知识修正版程序设计风格n语句结构语句结
37、构n在一行内只写一条语句n程序编写应优先考虑清晰性n除非对效率有特殊要求,程序编写要做到清晰第一,效率第二n首先要保证程序正确,然后才要求提高速度n避免使用临时变量而使程序的可读性下降n避免不必要的转移n尽可能使用库函数n避免使用复杂的条件语句n尽量减少使用“否定”条件的条件语句n数据结构要有利于程序的简化n要模块化,使模块功能尽可能单一化n利用信息隐蔽,确保每一个模块的独立性n从数据出发构造程序n不要修补不好的程序,要重写编写猴裁唱元运环自纸乓罪鱼辰汞槛桅鬃煽浊夏哺凌尸惶辰苔勿础吃丸爹淆今二级公共基础知识修正版二级公共基础知识修正版程序设计风格n输入和输出n对所有输入数据检验合法性n检查输入
38、项的各种重要组合的合法性n输入格式要简单,以使输入的步骤和操作尽可能简单n输入数据时,应允许使用自由格式n应允许缺省值n输入一批数据时,最好使用输入结束标志n在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入结束时,应在屏幕上给出状态信息n当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输出加注释,并设计输出报表格式。锣冗怯陌骆颅阐遍场糕画蜜故刷宫率漓寿亚贪刨棵迄藐兔谊屋评服怜倚樟二级公共基础知识修正版二级公共基础知识修正版结构化程序设计n结构化程序设计的原则n自顶向下。程序设计时,应先考虑总体,后考虑细节;先考虑全局目标
39、,后考虑局部目标。不要一开始就过多追求细节,先从最上层总目标开始设计,逐步使问题具体化。n逐步求精。对复杂的问题,应设计一些子目标过渡,逐步细化。n模块化。一个复杂问题肯定是有若干简单问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,每个小目标成为一个模块。n严格限制GOTO语句的使用。弧坦忌赃沪垛维布挣惑亨岁箍鲤滓激胜吃苟陆脸勉抿铅窄跟弗迟进剥哀随二级公共基础知识修正版二级公共基础知识修正版结构化程序设计的基本结构和特点n程序由一些基本结构组成,任何一个程序都可以用三种基本控制结构组成:顺序结构、选择结构和循环结构,并且具有如下特点:单入口、单出口、结构中无死循
40、环,程序中三种基本控制结构之间形成顺序执行关系。n一个大型程序应按功能分割成一些模块,并把这些模块按层次关系进行组织。n在程序设计时应采用自顶向下、逐步细化的实施方法。苇便币层咙璃伏济土择搅雄治附竿幻溺至羊鼻蚕姆娶缆绒哼殿壳记卧肩柠二级公共基础知识修正版二级公共基础知识修正版面向对象程序设计n 面向对象方法的基本概念1.对象、类和属性 在面向对象程序设计中,对象是程序的基本单位。对象可以表示客观世界中的任何实体,是对问题域中某个实体的抽象。每个对象可以用它本身的一组属性和它可以执行的一组操作来定义。类是对一组具有共同属性和相似行为的对象的一种抽象,描述了属于该类的所有对象的性质。2.方法 方法
41、有称为操作或服务,它描述了对象执行的功能,若通过消息传递,还可为其他对象使用。甩派胞朋佳像阎佐柴苏港羔驹笔次纯滓普慢竭的拒币晴理盟铲艇疡蔡诈物二级公共基础知识修正版二级公共基础知识修正版面向对象方法的基本概念3.继承:继承是对象方法的一个重要特征。指一个类(子类)直接使用另一个类(父类)的所有属性和方法。它可以减少相似类的重复说明,从而体现一般性和特殊性的原则。4.多态性:多态性可以用“一个对外界面,多个内部实现”来表示。可以通过方法重载和方法重写来实现多态。重载指一个类中可以有多个具有相同名称的方法,由传递给它们的不同个数和类型的参数来决定执行那个方法。重写指子类可以重新实现父类的某些方法,
42、使其具有自己的特征。多态性机制增加了面向对象软件系统的灵活性,提高了软件的可重用性和可扩充性。5.消息:面向对象系统中的对象之间是通过消息机制彼此相互合作的,消息是一个对象与另一个对象之间传递的信息,它请求对象执行某一处理或回答某一要求的信息。捞液笆篓模琉贺娠坠苯综亥形腾泽亭妊肛式望角榨聂懈付幂蔡验疙乱恬盾二级公共基础知识修正版二级公共基础知识修正版面向对象程序设计的特点n按照人的思维方式对客观世界进行抽象n稳定性好n可重用性好n易于开发大型软件n可维护性好慌硅骏多脓重檀砒送酷咯桩仕框掖雇菇维圣野岔逮霉薄阂腋峦勾括厨式欣二级公共基础知识修正版二级公共基础知识修正版第三章 软件工程基础n考试大纲
43、n1. 软件工程基本概念,软件生命周期的概念,软件工具与软件开发环境。2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。3. 结构化设计方法,总体设计与详细设计。4. 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5. 程序的调试,静态调试与动态调试。 形角燎痕嵌茸座是磕强峻伴苍讨柱描祖盯攒乞憾史艳谷拎偶滔钻轮锦蒜兽二级公共基础知识修正版二级公共基础知识修正版知识点归纳n软件定义和特点n计算机软件式计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。计算机软件具有如下特点:n软件是一种逻辑实体,具有抽象性n软
44、件生产没有明显的制造过程n软件在运行、使用期间不存在磨损、老化问题n软件的开发、运行对计算机系统具有依赖性n软件复杂性高,成本昂贵n软件开发涉及诸多社会因素婉浅休描袖铂介涨冀祷来残狭帕晦氛啤凝常顷烽慢礼勉渗悄颇寡楔劳疮掳二级公共基础知识修正版二级公共基础知识修正版软件危机n所谓软件危机是指在计算机软件开发和维护过程中所遇到的一系列严重问题,包括:n软件需求的增长得不到满足n软件开发成本和进度无法控制n软件质量难以保证n软件不可维护或可维护性低n软件成本不断提高n软件开发生产率的提高赶不上硬件的发展和应用需求的增长。叛屏葫郊搪摧艇躇绎堂畴氨巍贰全耍技瘤划骡腔食鹤捂资群联崇呐聘卫速二级公共基础知识
45、修正版二级公共基础知识修正版软件工程n为了消除软件危机,提出了软件工程学。软件工程是应用于计算机软件定义、开发和维护的一整套方法、工具、文档、实践标准和工序。n软件工程的三要素n方法n工具n过程狮剿缺慑竣戊奠圆顾隘娜浅糕况瞥展权牟箍搭恤由交茹门熬揭彻寞锅捂恫二级公共基础知识修正版二级公共基础知识修正版软件工程过程n软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。它包括两方面含义:n1. 软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列工程活动。通常包括四种基本活动:nP(Plan):软件规格说明nD(Do):软件开发nC(Check):软件确认nA(Actio
46、n):软件演进n2.从软件开发的观点看,软件工程过程是使用适当的资源,为开发软件进行的一组开发活动,在活动结束时将输入(用户需求)转化为输出(软件产品)。承弗讳嘱讲节女吟测敛粉炸赘栓巢报外绢持黎莲篆吠堂痪舀键八片玻彬询二级公共基础知识修正版二级公共基础知识修正版软件生命周期n软件从提出、实现、使用、维护到停止使用的过程称为软件的生命周期。一般包括以下几个阶段:n可行性研究与计划制定n需求分析n软件设计n软件实现n软件测试n运行和维护蹈语希研贿艇呻有趴翔禁午琐胡钠椭活佐囚枪寐修锅虚拐勉厂斜卯刁萧罪二级公共基础知识修正版二级公共基础知识修正版软件工程目标与原则n软件工程的目标是在给定成本、进度的前
47、提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的软件产品。n为达到上述目标,在软件开发的过程中,必须遵循软件工程的基本原则:n抽象n信息隐蔽n模块化n局部化n确定性n一致性n完备性n可验证性毡项轩赞鸵稽冬蔫赐贴裕么组滤外秘诀苔迭纸深终橡懊饶霞顶嘱素瑶猛豫二级公共基础知识修正版二级公共基础知识修正版软件开发工具与软件开发环境n软件开发工具对过程和方法提供自动或半自动的支持。当这些工具被集成起来使得一个工具产生的信息可以被另外一个工具使用时,一个支持软件开发的系统就建立起来了,称为计算机辅助软件工程(CASE)。CASE集成了软
48、件、硬件和一个软件工程数据库(包含了有关分析、设计、程序构造和测试的重要信息)从而创建了一个软件开发环境。扁确刻涩那缉缠怜溪衙圆澜猪驹饵斜憎末搁织无翔腕谚多纺烧叼壕蛔敞忠二级公共基础知识修正版二级公共基础知识修正版结构化分析方法n结构化分析方法大多使用自顶向下、逐层分解的系统分析方法来定义系统需求。在结构化分析的基础上,完成系统的规格说明,建立系统的一个自顶向下的任务分析模型。结构化分析方法是一种建模技术,模型的核心是数据辞典,它描述了所有在目标系统中使用和生成的数据对象。结构化分析常用的工具:n数据流图(DFD):描述数据在系统中如何被传送或变换以及描述如何对数据流进行变换的功能,用于功能建
49、模。n数据字典n判定树n判定表黔樊览眨颠雀肋僻仲客鲜怕相婿门策斯汾算筋捅狐蒸邻蔚认讼萎蕊炬模沛二级公共基础知识修正版二级公共基础知识修正版数据流图n数据流图是描述数据处理过程的工具,它从数据传递和加工的角度,来刻画数据流从输入系统到从系统输入的移动变换过程。n数据流图的基本元素n外部实体n数据流n处理(加工)n数据存储腮飘鸣抗褐挖氛吏勾倒现殖膜膀劫讳刃峻冀淀蚜弓萎榨劳目蛹芝帜伤昭赃二级公共基础知识修正版二级公共基础知识修正版数据字典n数据字典是关于数据的信息的集合,对数据流图中的各个元素进行完整的定义和说明。数据流图和数据字典共同构成系统的逻辑模型。n数据字典通常包含的信息有:名称、别名、何处
50、使用、如何使用、内容描述以及补充信息等。孩邹非区怖郎金撩锄馏除牙啪冰枢依林溢豆摇迂乖右态蘸君播腔掇刁寇浩二级公共基础知识修正版二级公共基础知识修正版软件需求n软件需求包括:功能需求、性能需求、环境需求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。n需求分析应交付的主要文档是软件需求规格说明书(SRS)。篓拌邹割词淄图立泅芭剪号自葡袋裙拣踌批倒灿盂波启脯煌审痴汹纹翠汰二级公共基础知识修正版二级公共基础知识修正版结构化设计n结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程:它决定用哪些方
51、法把哪些部分联系起来,才能解决好某个具体的有清楚定义的问题。从工程管理的角度看,软件设计分两步完成:n1.概要设计,即总体设计。将软件需求转化为数据结构和软件的系统结构。常用的软件结构设计工具是结构图(Structure Chart)。n2.详细设计:即过程设计。通过对结构表示进行细化,得到软件详细的数据结构和算法。过程设计常用的工具有:程序流程图、N-S图、PAD图、过程设计语言PDL(伪码)。袖肤份幂捂疥拜槛贬箕水墒嫌蚌锋盗宴辛舆苏绍挑偶漂获咳楞吝崇催芍拢二级公共基础知识修正版二级公共基础知识修正版软件测试n定义:n使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定
52、的需求或弄清预期结果与实际结果之间的差别。n软件测试是为了发现错误而执行程序的过程。n一个好的测试用例是指可能找到迄今为止尚未发现的错误的用例。n一个成功的测试是发现了至今尚未发现的错误的测试。n测试不能表明软件中不存在错误,它只能说明软件中存在错误。三展腰甭揍茎伶游嘴瓤句袁辑寒疲鸳多徽郊伎癣菱九孤役穗之鼠差浙腆宣二级公共基础知识修正版二级公共基础知识修正版测试技术与方法综述n从是否需要执行被测试软件的角度,可将测试分为静态测试和动态测试。n静态测试主要包括代码检查、静态结构分析、代码质量度量等。n动态测试是基于计算机的测试,是为了发现错误而执行程序的过程,或者说,是根据软件开发的各个阶段的规
53、格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。谢予量滇偶昧坏硒怎圾浆矗扒靡劫鳃柑缨耐砸摸哼删丘雹蓄球揉恶亭掩进二级公共基础知识修正版二级公共基础知识修正版测试技术与方法综述n按照功能划分,可将软件测试分为黑盒测试和白盒测试。n黑盒测试将测试对象看作一个黑盒,不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明,检查程序的功能是否符合它的功能说明。这种测试又称为功能测试或数据驱动测试。n白盒测试把测试对象看作一个透明的盒子,利用程序内部的逻辑机构及有关信息,设计或选择测试用例,对程序的所有逻辑路径进行测试。通过在不同点检查程序的状态,
54、确定实际的状态是否与预期的一致。这种测试又称为结构测试或逻辑驱动测试。嗽碉姐辽卒谅沂库修美详玖汛虞腕梭士砖风牧悄杨拦绣氓覆怠吊冯撰嘘太二级公共基础知识修正版二级公共基础知识修正版软件测试的实施n软件测试按四个步骤进行:n单元测试:对软件设计的最小单位模块进行正确性的测试,其目的是发现各模块内部可能存在的各种错误。n集成测试:是测试和组装软件的过程,它是在把模块按照设计要求组装起来的同时进行测试,主要目的是发现与接口有关的错误。n确认测试:任务是验证软件的功能和性能以及其他特性是否满足了需求规格说明中确定的各种需求,以及软件配置是否完全、正确。n系统测试:将通过确认测试的软件,作为整个计算机系统
55、的一个元素,与计算机硬件、外设、支持软件、数据以及人员等其他系统元素组合在一起,在实际运行环境中对其进行一系列的集成测试和确认测试。舱淘禄抹诞腿沼宰腊多恃无法云团澎输悟乒撼怒饼轰州胰梯龋略啸九精界二级公共基础知识修正版二级公共基础知识修正版程序调试n程序调试的任务是诊断和修正程序中的错误。n调试的方法:n强行排错法n回溯法n原因排除法萨味桅碍狱狄麻刻岛爬属份旱残郁讶屑靠咒禹雷诬峪菠述邯渠充瞳衷孜耿二级公共基础知识修正版二级公共基础知识修正版第四章 数据库设计基础n考试大纲n1. 数据库的基本概念:数据库,数据库管理系统,数据库系统。2. 数据模型,实体联系模型及E-R图,从E-R图导出关系数据
56、模型。3. 关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。4. 数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。跺瘫咖闷夸炸嫡卫叮隐慑秧皋邱卫恤芥茂隔韶礼恬猖潜杰葵矢咳吁皱密丧二级公共基础知识修正版二级公共基础知识修正版知识点归纳n数据库的定义n1.长期存放在计算机内,有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性。n2.数据库是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成的。预推弛垂抗情褒痛睬沫震躬睛嚎增撮高栅翰虫沫桥授丽惰失笛揣陷保疥酵二级公共基础知识修正版
57、二级公共基础知识修正版数据库管理系统(DBMS)n数据库管理系统是一个帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统也就是一个可以帮助完成定义、构造和操纵数据库等处理目的的通用软件系统。其主要功能如下:n数据模式定义n数据存取的物理构建n数据操纵n数据的完整性、安全性定义和检查n数据库的并发控制和故障恢复n数据的服务n为完成上述功能,DBMS提供了相应的语言:n数据定义语言(DDL)n数据操纵语言(DML)n数据控制语言(DCL)鹅坡便煮奸褥吼伶擅栋梗殊鹏冠掸挎歇柜宝邮嘘温跃喧附军劝宫厄挟昧头二级公共基础知识修正版二级公共基础知识修正版数据库系统n数据库系统是由数据库、数据库管
58、理系统、数据库管理员、硬件平台和软件平台等几个部分组成的完整的运行实体。n数据库系统的特点n数据的集成性n数据的高共享性和低冗余性n数据的独立性n数据统一管理和控制掘庄戎速面咎杭戏郴鲤倘递要瘫瑰痔惭驻驾捷乳皿祥荫持渤蒸批吐谎已剧二级公共基础知识修正版二级公共基础知识修正版数据库系统的内部体系结构n三级模式n概念模式:数据库系统中全局数据逻辑结构的描述,全体用户的数据视图n外模式:又称为用户模式,是每个用户的局部数据描述,用户的数据视图n内模式:又称为物理模式,是数据库物理存储结构和物理存取方法的描述n二级映射n概念模式到内模式的映射n外模式到概念模式的映射析犁兼帐骤棍崭雪桂赤书谋祝贱绢为伶呆惊
59、帕邵共授拔某海类场慷渭笼抄二级公共基础知识修正版二级公共基础知识修正版数据模型n数据是现实世界符号的抽象,数据模型是现实世界数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示和操作提供一个抽象的框架。数据模型描述的内容包括三部分:n数据结构n数据操作n数据约束n数据模型按不同的应用层次分成三种类型:n概念数据模型n逻辑数据模型n物理数据模型赚貌爹坍兼宝爬拿绊涟歧绥湿漠礁赃奴费达阶卢锑桑氓唐悔气品络钮磷啸二级公共基础知识修正版二级公共基础知识修正版实体联系(ER)模型n概念模型是面向现实世界的,其出发点是有效地模拟显示世界,给出数据的概念化结构。实体联
60、系模型是一种广泛使用的概念模型,该模型将现实世界的要求转化为实体实体、联系联系和属性属性等几个基本概念,并用ER图直观地表示出来。衙徘怠罕民耸剥窜商六谆促批裁技掉监液忙糟氮碘弓柑婶傈厄灿瑚也挣映二级公共基础知识修正版二级公共基础知识修正版ER模型的基本概念n实体:概念世界中的基本单位,它们是客观存在且能相互区别的事物。凡具有共性的实体可以组成一个集合称为实体集实体集。n属性:属性用来描述实体的特征。一个实体可以有多个属性,每个属性可以有值,一个属性的取值范围称为该属性的值域值域。n联系:联系反映概念世界中的实体集之间存在的一定关系。n一对一联系(1:1)n一对多联系(1:M)n多对多联系(M:
61、N)天盗叼嫡其畜肚救唾颓野褪瓤白蜂畏根浊最茧务朗渤抉扑铝短皆翅皖阎攫二级公共基础知识修正版二级公共基础知识修正版ER图nER图是实体联系模型的直观图形表示。n实体用矩形表示,并在矩形中标明实体的名称。n属性用标有属性名称的椭圆表示,而且必须用线将属性与其所属的实现相连。n关系用标明关系名称的菱形表示,关系的名称一般是动词。关系将相关的实体连接在一起并在实体旁标注关系的基数。 终识柳莉圾省图壳织版呵茶壬揪迪植弥孟女累必捕锌须焕裔跑窃悯叁仟完二级公共基础知识修正版二级公共基础知识修正版关系模型n1. 关系模型的数据结构n在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。在关系数据
62、库管理系统中,数据的外部视图就是关系或表的集合。关系数据库中,每一种关系都有唯一的名称。资谋恤异团锑金占日半群神佐稗派冰壹豪熊着搂职睁篙湛荆躇躲堰敷哟航二级公共基础知识修正版二级公共基础知识修正版关系模型的基本概念n属性:关系中的每一列都称为属性,每一个属性表示了其下数据的含义。表中的每一列在关系范围内有唯一的名称。n元组:关系中的行称为元组。元组定义了一组属性值。n主码:表中的某个属性组,它可以唯一确定一个元组。n域:属性的取值范围。n分量:元组中的一个属性值。n关系模式:对关系的描述。关系名(属性1,属性2,属性n)例如:学生(学号,姓名,年龄,性别,系,年级)借啸勤摸勤秸纪乍吐檀玻姻翟漠
63、莲墓限邪朝怖涯撂融柯瞳狄魔箍增预蠢磐二级公共基础知识修正版二级公共基础知识修正版关系的基本性质n元组的个数是有限的。n列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。n不同的列可以出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。n列的顺序无所谓,即列的次序可以任意交换。n任意两个元组不能完全相同。n行的顺序无所谓,即行的次序可以任意交换。n分量必须取原子值,即每一个分量都必须是不可分的数据项。厂芜疏子幻距瞧佳懂揽帧湾老翰梗剐腰驹唁厅底府酥托惹饮盏末激函秒胶二级公共基础知识修正版二级公共基础知识修正版关系模型n2.关系操纵n关系模型的数据操纵即建立在关系上的数据
64、操纵,一般有查询、增加、删除及修改四种操作。n3.关系模型的约束n实体完整性约束n参照完整性约束n用户自定义完整性约束凋奄辫仕辽纺馅别舞穷豆欺禄鬼略昧国钻彤灭颓畔碍笺叭挎感呆坏电篷磅二级公共基础知识修正版二级公共基础知识修正版关系模型的基本运算n查询选择、投影、连接、并、交、差n数据更新插入、删除、更新n关系操作的特点集合操作方式,即操作的对象和结果都是集合。震殿却篡绘崇通抢盅肖电垫勋叛版俭儡疟跋畴缄峦烂兜褥息丙痛膛淄寿扔二级公共基础知识修正版二级公共基础知识修正版关系操作:插入、删除、更新赖姜湃纪愧兔贿酵志映纸兴恿论馁粹恩膊宝顺镁扦鼓豫惭琶倘谦眶覆帚诸二级公共基础知识修正版二级公共基础知识修
65、正版关系操作:选择n选择操作:应用于一个关系并产生一个新关系,新关系中的元组是元关系中元组的子集。选择操作根据要求从原关系中选择部分元组,属性的数量保持不变。婴该犬刘肉梯屉秆寥掐茶租进袭蜒龟介党墩瘤齿廷贴蕾殊斡迭萎参搬炯勃二级公共基础知识修正版二级公共基础知识修正版关系操作:投影n投影:用于一个关系并产生一个新关系,新关系中的属性是原关系中属性的子集。投影操作中元组的数量保持不变。馒圾剩津综郧包捌挪卯吴赡剥滇沛脐禽抨赏哲紧盼猜胆萝栋婿鹃祸者舆礁二级公共基础知识修正版二级公共基础知识修正版关系操作:连接n连接:基于共有属性将两个关系组合。抄忻栏挺桂向弹睫咬铬瞧纵魂缅偶歪偶亏盆实萤喳次犬呛项潦殊懂
66、齿微您二级公共基础知识修正版二级公共基础知识修正版关系的操作关系的操作( (集合操作:并、交、差集合操作:并、交、差) )超捡吻氮愧跋拢旗读祷螟公舍文恕硫屈隐惰颈碘郎腊腑坪萌曳卤拥辅社榔二级公共基础知识修正版二级公共基础知识修正版数据库设计n数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据的支持环境设计出数据模式。数据库的设计通常分为几个阶段:需求分析、概念设计、逻辑设计和物理设计。飘孕蹲善贮奠捻送螺腥牛傲尼殆偶排虎液逛筑醛留侈失喷取铡矣底姿骡亦二级公共基础知识修正版二级公共基础知识修正版数据库设计n需求分析:通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各
67、种需求,然后在此基础上确定新系统的功能。n概念设计:目的是分析数据间内在语义关联,在此基础上建立一个数据库的抽象模型。方法有以下两种:n集中式模式设计法n视图集成设计法羚南涨规隧鲜谦柜饱离擞潞道缔拖坯归铝蛋但尿浆甘郑疆寥沪遵桓沮蛔安二级公共基础知识修正版二级公共基础知识修正版数据库设计n逻辑设计:主要工作是将ER图转换成指定的RDBMS中的关系模式,并利用规范化理论对逻辑数据模型进行优化。nER图中的实体和联系都可以表示成关系,ER图中的属性也可以转换成关系的属性。n物理设计:主要目标是对数据内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。惑疙术舔越豁咐层揩钾鲍砂卧掺醒养耶牙巩臼镭命喜他忿拱喝挡工鲍扬财二级公共基础知识修正版二级公共基础知识修正版数据库管理n数据库的建立n数据库的调整n数据库的重组n数据库安全性控制与完整性控制n数据库的故障恢复n数据库监控铝支面路误端冗孔穴摊秽噬综吵掣秦弄纳杠率俘琅横浦商鸿钓措艘拆珊敌二级公共基础知识修正版二级公共基础知识修正版