数据库经典笔试题总结知识讲解
数据库经典笔试题总结.txt和英俊的男人握握手,和深刻的男人谈谈心,和成功的男人多交流,和普通的男人过日子。数据库经典笔试题总结
面试穿什么着装合适,这里找答案!
1,范式
7大范式:1NF, 2NF,3NF,BCNF,4NF,5NF,6NF
什么叫normalization?Denormalization?
Normalization是数据库规范化,denormalization是数据库逆规范化。
在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数据库规范化"。目的:减少数据库中数据冗余,增进数据的一致性。
范式概念:
1)1NF:目标就是表中每列都不可分割;
2)2NF:目标就是表中的每行都是有标识的。前提是满足了1NF. 当关键字为单field时,一定满足2NF。当关键字为组合field时(即超过一个field),不能存在组合关键字中有某个字段能够决定非关键字段的某部分。非主field非部分依赖于主field,即非关键字段必须完全依赖于一组组合关键字,而不是组合关键字的某一部分。
3)3NF:目标是一个table里面所有的列不依赖于另外一个table里面非关键的列。前提是满足了2NF,不存在某个非关键字段决定另外一个非关键字段。即:不存在传递依赖(关键字x->非关键属性y->非关键属性z)
4)BCNF:前提是满足了2NF,不存在某个非关键字段决定另外一个非关键字段。也不存在某个关键字段决定另外一个关键字段。即:在3NF基础上,加上约束:不存在某个关键字段决定另外一个关键字段。
1 第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。
2 第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如图3-2 员工信息
表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
3 第三范式(3NF)
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。
例子:
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。
例如,如下的数据库表是符合第一范式的:字段1 字段2 字段3 字段4
而这样的数据库表是不符合第一范式的:字段1 字段2 字段3 字段4 字段31字段32
很显然,在当前的任何关系数据库管理系统(S)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些S不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的S中设计出不符合第一范式的数据库都是不可能的。
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
假定选课关系表为Ss(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下决定关系:
(学号, 课程名称) → (姓名, 年龄, 成绩, 学分)
这个数据库表不满足第二范式,因为存在如下决定关系:
(课程名称) → (学分)
(学号) → (姓名, 年龄)
即存在组合关键字中的字段决定非关键字的情况。
由于不符合2NF,这个选课关系表会存在如下问题:1) 数据冗余:同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了门课程,姓名和年龄就重复了-1次。2) 更新异常:若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况。3) 插入异常:假设要开设一门新的课程,暂时还没有人选修。由于还没有"学号"关键字,课程名称和学分也无法记录入数据库。4) 删除异常:假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课程名称和学分信息也被删除了。很显然,这也会导致插入异常。
把选课关系表Ss改为如下三个表:
学生:Sn(学号, 姓名, 年龄);
课程:s(课程名称, 学分);
选课关系:Ss(学号, 课程名称, 成绩)。
这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常。
另外,所有单关键字的数据库表都符合第二范式,因为不可能存在组合关键字。
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → → "的决定关系,则传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:关键字段→非关键字段x → 非关键字段y
假定学生关系表为Sn(学号, 姓名, 年龄, 所在[]学院[], 学院地点, 学院电话),关键字为单一关键字"学号",因为存在如下决定关系:
(学号) → (姓名, 年龄, 所在[]学院[], 学院[]地点, []学院[]电话)
这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:
(学号) → (所在[]学院[]) → ([]学院[]地点, []学院[]电话)
即存在非关键字段"[]学院[]地点"、"[]学院[]电话"对关键字段"学号"的传递函数依赖。
它也会存在数据冗余、更新异常、插入异常和删除异常的情况,读者可自行分析得知。
把学生关系表分为如下两个表:
学生:(学号, 姓名, 年龄, 所在[]学院[]);
[]学院[]:([]学院[], 地点, 电话)。
这样的数据库表是符合第三范式的,消除了数据冗余、更新异常、插入异常和删除异常。鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BCNF.
假设仓库管理关系表为Ssanag(仓库, 存储物品, 管理员, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:(仓库, 存储物品) →(管理员, 数量)
(管理员, 存储物品) → (仓库, 数量)
所以,(仓库, 存储物品)和(管理员, 存储物品)都是Ssanag的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系:(仓库) → (管理员)
(管理员) → (仓库)
即存在关键字段决定关键字段的情况,所以其不符合BCNF范式。它会出现如下异常情况:1) 删除异常:当仓库被清空后,所有"存储物品"和"数量"信息被删除的同时,"仓库"和"管理员"信息也被删除了。2) 插入异常:当仓库没有存储任何物品时,无法给仓库分配管理员。
3) 更新异常:如果仓库换了管理员,则表中所有行的管理员都要修改。
把仓库管理关系表分解为二个关系表:
仓库管理:Ssanag(仓库, 管理员);
仓库:Ss(仓库, 存储物品, 数量)。
这样的数据库表是符合BCNF范式的,消除了删除异常、插入异常和更新异常。
简言之数据库五大范式:
第一范式:对于表中的每一行,必须且仅仅有唯一的行值.在一行中的每一列仅有唯一的值并且具有原子性.
(第一范式是通过把重复的组放到每个独立的表中,把这些表通过一对多关联联系起来这种方式来消除重复组的)
第二范式:第二范式要求非主键列是主键的子集,非主键列活动必须完全依赖整个主键。主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。一旦创建,主键无法改变,外键关联一个表的主键。主外键关联意味着一对多的关系.(第二范式处理冗余数据的删除问题。当某张表中的信息依赖于该表中其它的不是主键部分的列的时候,通常会违反第二范式)
第三范式:第三范式要求非主键列互不依赖.(第三范式规则查找以消除没有直接依赖于第一
范式和第二范式形成的表的主键的属性。我们为没有与表的主键关联的所有信息建立了一张新表。每张新表保存了来自源表的信息和它们所依赖的主键)
第四范式:第四范式禁止主键列和非主键列一对多关系不受约束
第五范式:第五范式将表分割成尽可能小的块,为了排除在表中所有的冗余。
面试穿什么着装合适,这里找答案!
2,索引:
什么叫 revised key index?
反键索引是B*Tree索引的一个分支,它的设计是为了运用在某些特定的环境下的。Oracle 推出它的主要目的就是为了降低在并行服务器(Oracle Parallel Server)环境下索引叶块的争用。当B*Tree索引中有一列是由递增的序列号产生的话,那么这些索引信息基本上分布在同一个叶块,当用户修改或访问相似的列时,索引块很容易产生争用。反向索引中的索引码将会被分布到各个索引块中,减少了争用.
例子:有一个字段id,他的值落在一个很小的区间,比如从9000-9999,如果建b-tree索引,那么值过于紧密,反键的原理是把值取反,那么id的区间就从0009-9999,区间就被放大,这个时候通过索引来查找数据效率会比较高(oracle这么说的)。
好处是:解决了树的倾斜问题,而且可以解决在大量IO操作的情况下,防止硬盘在某个区域操作过于频繁,引起"热点"问题。
树的分支:因为索引一般是按树这个数据结构来组织,所以有很多分支,把不同类别或范围的数据存放在分支里,在符合条件的分支里查询比在全表查询效率高很多。
树的倾斜:树的某个分支过与庞大,而其他分支内容却很少,这样的索引非常不健康的,查询速度也很慢,如上面的示例数据,都在10000-20000 的分支,而20000-30000或者以上的分支是空的。反转后把这些数据均匀分布到不同的分支,可以使索引更加健康,也更有效率。
热点问题:由于系统在表数据的增删改查的同时,同时要承担索引开支,而这主要是硬盘的IO操作,如果树是倾斜的,而且数据的增加是按一定顺序增长的,这种情况会导致硬盘对某一固定区域操作频繁,会出现热点问题,而且出现瓶颈。
Oracle五种索引:
1)b*tree index:几乎所有的关系型数据库中都有b*tree类型索引,也是被最多使用的。其树结构与二叉树比较类似,根据rid快速定位所访问的行。 B-Tree索引是基于二叉树的,由分支块(branch block)和叶块(leaf block)组成。在树结构中,位于最底层底块被称为叶块,包含每个被索引列的值和行所对应的rowid。在叶节点的上面是分支块,用来导航结构,包含了索引列(关键字)范围和另一索引块的地址。
2)反向索引:反转了b*tree索引码中的字节,是索引条目分配更均匀,多用于并行服务器
环境下,用于减少索引叶的竞争。反向索引又一个缺点就是不能在所有使用常规索引的地方使用。在范围搜索中其不能被使用。
3)降序索引:8i中新出现的索引类型,针对逆向排序的查询。
4)位图索引:使用位图来管理与数据行的对应关系,多用于OLAP系统。位图索引最好用于低cardinality列(即列的唯一值除以行数为一个很小的值,接近零),例如又一个“性别”列,列值有“Male”,“Female”,“Null”等3种,但一共有300万条记录,那么3/3000000约等于0,这种情况下最适合用位图索引。位图以一种压缩格式存放,因此占用的磁盘空间比B-Tree索引要小得多。
5)函数索引:这种索引中保存了数据列基于function返回的值,在select * from table where function(column)=value这种类型的语句中起作用。基于函数的索引也是8i以来的新产物,它有索引计算列的能力,它易于使用并且提供计算好的值,在不修改应用程序的逻辑上提高了查询性能。使用基于函数的索引有几个先决条件:
(1)必须拥有QUERY REWRITE(本模式下)或GLOBAL QUERY REWRITE(其他模式下)权限。
(2)必须使用基于成本的优化器,基于规则的优化器将被忽略。
(3)必须设置以下两个系统参数:
QUERY_REWRITE_ENABLED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED
可以通过alter system set,alter session set在系统级或线程级设置,也可以通过在init.ora添加实现。
五种索引的创建:
(1)*Tree索引。
Create index indexname on tablename(columnname[columnname...])
(2)反向索引。
Create index indexname on tablename(columnname[columnname...]) reverse
(3)降序索引。
Create index indexname on tablename(columnname DESC[columnname...])
(4)位图索引。
excel期末知识点总结
1.文件的建立与打开: office图表新建新工作簿确定 打开 2.文件的保存与加密保存: office图表保存 xls 准备加密文档输入密码确定再次输入并确定 3.强制换行:alt+enter 4.删除与清除:删除整个单元格,清除格式、内容、批注 5.填充序列: 等差等比: 在单元格中输入起始值开始填充序列选择等差等比、行列输入步长值、终止值 文字序列: 在单元格输入文字序列 office按钮 excel选项常用编辑自定义序列选中刚才输入的文字序列导入确定6.复制移动: 移动覆盖左键拖拽 复制移动覆盖 ctrl+左键拖拽 移动插入 shift+左键拖拽 复制移动插入 ctrl+shift+左键拖拽 7.插入行列:选中要插入数量的行或列右键插入 8.为行、列、单元格命名: 先选中要命名的区域在左上角的名称框内输入名字 直观,快速选定 如何删除名称:公式名称管理器选中删除 9.批注:单击单元格审阅新建批注 10.科学计数法: >=12位用科计表示 123456789012=1.234567E+11 1.A3=R3C1 R为行C为列 C1 C2 C3 R1 R2 R3A3 2.数组运算Ctrl+Shift+Enter 3.将某一函数,作为另一函数的参数调用。最多可以嵌套七层 COUNT(参数1,参数2,…)功能:求一系列数据中数值型数据的个数。 COUNTA(参数1,参数2,…)功能:求“非空”单元格的个数。 COUNTBLANK(参数1,参数2,…)功能:求“空”单元格的个数。 COUNTIF功能:求符合条件的单元格数 4.四舍五入函数ROUND(number, num_digits) =ROUND(1234.567,2)=1234.57 =ROUND(1234.567,1)=1234.6 =ROUND(1234.567,0)=1235 =ROUND(1234.567,-1)=1230 =ROUND(1234.567,-2)=1200 负的往左,正的往右
空间数据库重点知识
矢量数据结构:通过记录坐标的方式来表达点、线、面等地理实体。 矢量数据结构的主要特点:定位明显和属性隐含。 结构:Spaghetti(面条)结构和拓扑矢量数据结构。 只有像拓扑结构这样的数据结构才是“矢量”数据结构。 拓扑矢量数据结构的特点是:1、一个多边形和另一个多边形之间没有空间 坐标的重复,这样就消除了重复线;2、拓扑信息与空间坐标分别存储,有利于进行近邻、包含和相连等查询操作;3、拓扑表必须在一开始就创建,这要花费一定的时间和空间;4、一些简单的操作比如图形显示比较慢,因为图形显示需要的是空间坐标而非拓扑结构。 栅格数据模型是将连续的空间离散化,将地理区域的平面表象按一定分解力作行和列的规则划分,形成大小均匀紧密相邻的网格阵列。 空间数据引擎(SDE):是用来解决如何在关系数据库中存储空间的数据,实现真正的数据库方式管理空间数据,建立空间数据服务器的方法。 工作原理:SDE客户端发出请求,由SDE服务端处理这个请求,转换成DBMS 能处理的请求事物,由DBMS处理完相应的请求,SDE服务端再将处理的结果实时反馈给GIS的客户端。客户通过空间数据引擎将自己的数据交给大型关系型DBMS,由DBMS统一管理,同样,客户可以通过空间数据引擎从关系型DBMS 中获取其它类型的GIS数据,并转换成客户端可以使用的方式。 空间数据引擎的作用: (1)与空间数据库联合,为任何支持的用户提供空间数据服务。 (2)提供开放的数据访问,通过TCP/IP横跨任何同构或异构网格,支持分布式的GIS系统。 (3)SDE对外提供了空间几个对象模型,用户可以在此模型基础之上建立空间几何对象,并对这些几何对象进行操作。 (4)快速的数据提取和分析。 (5)SDE提供了连续DBMS数据库的接口,其他的一切涉及与DBMS数据库进行交互的操作都是在此基础之上完成的。 (6)与空间数据库联合可以管理海量空间信息。 (7)无缝的数据管理,实现空间数据与属性数据统一存储。 (8)并发访问。 空间数据是对空间事物的描述,实质上就是指以地球表面空间位置为参照,用来 描述空间实体的位置、形状、大小及其分布特征诸多方面的数据。 数据库是长期储存在计算机内的、有组织的、可共享的数据集合。 空间数据特征:时空特征、多维特征、多尺度性、海量数据特征。
java开发常见笔试题(数据库篇)
一.根据下列员工信息表和部门信息表完成以下SQL查询 (表1 emp_xiangyoulu 员工信息表) (表2 dept_xiangyoulu) 1.查询所有员工信息 Select * from emp_xianyoulu; 2.查看所有部门信息 Select * from dept_xiangyoulu; 3:查看公司工资排名的第2-5名(分页查询rownum ) select * from( select rownum rn,ename,sal from emp_xiangyoulu order by sal desc) where rn between 2 and 5;--->错! 伪列rownum和排序order by 同时出现时,先生成伪列号,再按条件排序--->导致rn对应的序号在排序之前就定了,查出的结果和预期不符;; SELECT ROWNUM rn,e.* FROM ( SELECT * FROM emp_xiangyoulu ORDER BY sal desc) e WHERE rn BETWEEN 2 AND 5;--->错! "RN": 标识符无效,伪列号不能直接当成一般属性直接用; select rownum,e.* from( select * from emp_xiangyoulu order by sal desc)e where rownum between 2 and 5;--->错! 不报错,但查询结果为0条,原因同上; select * from( select rownum,e.* from( select * from emp_xiangyoulu order by sal desc)e)
数据库复习题汇总
单元练习 一单项选择题 1.文件系统与数据库系统相比较,其缺陷主要表现在数据联系弱、数据冗余和()。 A.数据存储低 B.处理速度慢 C.数据不一致 D.操作烦琐 2.数据的存储结构与数据逻辑结构之间的独立性称为数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 数据存储结构:即内模式。 数据逻辑结构:即模式 用户视图:即外模式 3.在数据库系统中,对数据操作的最小单位是()。 A.字节 B.数拯项 C.记录 D.字符 4.数据的逻辑结构与用户视图之间的独立性称为数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 5.下述各项中,属于数据库系统的特点的是()。 A.存储量大 B.存取速度快 C.数据共享 D.操作方便 6.在数据库系统中,模式/内模式映像用于解决数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 7.在数据库系统中,模式/外模式映像用于解决数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 8.数据库结构的描述,称为()。 A.数据库模型 B.数据库 C.数据库管理系统 D.数据字典 数据库模型有层次模型网状和关系模型 9.数据库中全体数据的逻辑结构描述称为( A. 存储模式 B.内模式 C.外模式 D.模式 10.保证数摇库中数摇及语义的正确性和有效性,是数据库的()。 A.完全性 B.准确性 C.完整性 D.共享性 11.在数据库系统中,数据独立性是指()。 A.用户与计算机系统的独立性 B.数据库与il?算机的独立性 C.数据勺应用程序的独立性 D.用户与数摇库的独立性 12.结构数据模型的三个组成部分是数据结构、数据操作和()。 A.数据安全性控制 B.数摇一致性规则 C.数^]^完整性约束 D.数摇处理逻辑 13.在数据操纵语言(DML)的基本功能中,不包括的是()。 A.插入新数据 B.描述数据库结构 C.对数据库中数据排序 D.删除数据库中数据 14.控制数摇库整体结构、负责数据库物理结构和逻辑结构的注义打修改的人员是()。 A.系统分析员 B.应用程序员 C.专业用户 D.数据库管理员 15.K列关于数据库系统正确的叙述是()。 A.数据库系统比文件系统存储数据量大 B.数据库系统中数据存储没有冗余 C.数据库系统中数据存储冗余较小 D.数据库系统比文件系统存取速度快 16.在数据库中,发生数据不一致现象的根本原因是()。 A.数据存储量太大 B.数摇安全性差 C.数据相互关系复杂 D.数据冗余 17.层次型、网状型和关系型数据模型的划分根据是()。 A.数据之间联系方式 B.数据之间联系的复杂程度
经典数据结构面试题(含答案)
.栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是__________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________
数据库笔试面试题汇总
1、什么是第三范式(第一范式,第二范式。。。) 2、请说出delete,truncate,drop 的区别 3、怎么样查询特殊字符,如通配符%与_ 4、如何插入单引号到数据库表中 5、怎么获得今天是星期几,还关于其它日期函数用法 6、知道出生日期,如何求年龄? 7、求上个月月底的日期 8、数据库类型中Varchar和char的区别是? 9、已知两张表:人员表(person) 和部门表(depart),表结构如下: 10、数据库Teacher 属性:name,tid,desc,表Student属性:name,sid,related_tid ,desc 查询 所属老师名称为”\like” 的全部学生。 11、设有一个关系表Student (学号stu_id,姓名stu_name,系名stu_dept,课程号 stu_courseid,成绩 grade) 11.1 查询至少选修了四门课程的学生的学号、姓名及平均成绩的select语句? 11.2 将选修课程数小于5的学生名字后面增加一个#号 12、用一条sql语句实现下面结果:怎么把这样一个表Testcol: 13、有两个表T_STU表和T_CLASS表和一个序列sequence序列,T_STU表里有如下字段:........ 13.1 查询入学年龄在18-20的女生或者未输入性别的,实际年龄小的要排在后面 13.2 查询班级名称、学生姓名、性别、缴费(要求显示单位:元),相同班级的要放在一起,姓名根 据字典顺序排列。 13.3 查询各班名称和人数 13.4 查询各班名称和人数,但人数必须不少于2,人数多的放在前面 13.5 查询1980年出生的有哪些学生。 13.6 查询男生和女生人数,没有输入性别的当作男 13.7 查询没有人员的班级 13.8 查询入学年龄在20以上的同学信息 13.9 查询班级平均入学年龄在20及以上的班级 13.10 有工资表salary(e_id,e_date,e_money),求本月发了2笔以上工资的员工信息。 14、有部门表、人员表、工资表。表名和字段名,如下: 14.1 查询:人员名称、部门名称、个人总工资 14.2 查询所有部门的总工资 14.3 查询2008年8月份各部门工资最高的员工信息:部门名称、员工姓名、员工总工资 15、表warehousestorage 数据库笔试面试题汇总
java期末考试知识点总结
java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。
(整理)SQLServer数据库基本知识点.
SQL Server 数据库基本知识点一、数据类型
二、常用语句 (用到的数据库Northwind) 查询语句 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询Customers 表中公司名称为“Alfreds Futterkiste”的ContactName字段和Address字段。 SELECT ContactName, Address FROM Customers WHERE CompanyName='Alfreds Futterkiste' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示Customers表中所有列的数据: SELECT * FROM Customers 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT ContactName, Address FROM Customers 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 as 列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT ContactName as 联系人名称, Address as地址 FROM Customers 4、删除重复行
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 SELECT DISTINCT(Country) FROM Customers 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM Customers SELECT TOP 20 PERCENT * FROM Customers (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在Orders和Customers表中同时存在CustomerID列,在查询两个表中的CustomerID时应 使用下面语句格式加以限定: select * from Orders,Customers where Orders.CustomerID =Customers.CustomerID 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名 表名别名 select * from Orders as a,Customers as b where a.CustomerID =b.CustomerID SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: select * from Customers where CustomerID in (select CustomerID from Orders where EmployeeID=4) 此例中,将SELECT返回的结果集合给予一别名CustomerID,然后再从中检索数据。 (三) 使用WHERE子句设置查询条件 WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:select CustomerID from Orders where EmployeeID=4
数据库笔试题目大全+很有用的
姓名:日期: 1、事务是什么? 2、oracle中truncate和delete命令有何区别? 3、Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(1 0)类型的字段中,其存储长度及类型有何区别? 4、参见如下表结构 出版社: 出版社代码char(2), 出版社名称varchar2(32) 图书: 图书编号char(8),
图书名称varchar2(128), 出版社代码char(2), 作者代号char(4), 图书简介varchar2(128) 作者: 作者代号char(4), 作者名称varchar2(10), 性别char(1), 年龄number(3), 文学方向varchar2(64) 获奖名单: 获奖日期date, 获奖人员char(4) 编写SQL语句,找出“作者”库中没有出现在“获奖名单”库中所有作者信息的SQL语句(提示:使用not in、not exists以及外关联三种方法,并说明哪种方法最优。
5、Oracle数据库表存在伪列rowid,请利用rowid编写一个SQL语句,从以下记录中找到唯一记录,并将其flag列更新为Y No name sex flag 1 张三 1 N 1 张三 1 N 1 张三 1 N 6、Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理? 7、见第四题“获奖名单”表,写出SQL语句,查询出在上一个月获奖的人员。
8、见第四题“图书”表,在表上对图书名称、出版社代码、作者代号创建了组合索引,请问在执行如下语句时会不会利用到索引。 Select * from 图书where 图书名称=?xxxx? Select * from 图书where 图书名称=?xxxx?and 出版社代码=?bb? Select * from 图书where 图书名称=?xxxx?and 作者代号=?ddd? Select * from 图书where 出版社代码=?yyy? 9、编写一个简单的Oracle存储过程,输出参数必须有一个是结果集。 专家对本试卷的分析: 第一,这张笔试卷从题目的考点上来看,属于基础知识类的; 第二,从难度上分析属于中等; 第三,从题目的设置上来看,该公司的主要用意是考察笔试者的工作经验和项目经验,尽管是基础知识,但是只要没做过开发工作,想回答上来并不容易;
大学数据库考试复习总结计划试卷试题带答案.doc
2019 数据库期末复习内容 1.选择题 ( 1)(数据库)是存储在计算机内结构化的数据的集合 ( 2)下述关于数据系统正确的描述是(数据库系统减少了数据冗余)。 ( 3)数据库( DB)、与数据库系统( DBS)和数据库管理系统(DBMS)之间的关系是(DBS 包含 DB 和 DBMS )。( 4)数据库管理系统的工作不包括(为定义的确据库提供操作系统)。 ( 5)用于对现实世界进行描述的工具是(数据模型)。 ( 6)在数据库的三级模式结构中,描述数据库中全局逻辑结构和特征的是(模式)。 ( 7) E-R图用来建立数据库的(概念模型)。 ( 8)下列模型中不能直接描述实体间多对多的联系的是(关系模型)。 ( 9)数据模型的三个要素是(数据结构、数据操作、完整性约束) ( 10)数据库的设计人员和用户之间沟通信息的桥梁是(实体联系图)。 (11)数据的独立性分为(逻辑独立性和物理独立性)。 (12)数据库通常是根据(数据模型)来分类的。 ( 13)关系数据库系统能实现专门的关系运算,包括(选择、投影、连接、除)。 (14)在关系模型中,下述关于关键字的说法正确的是(可以由一个或多个其值能唯一标识该关系模式中任何元组 的属性组成)。 ( 15)被称为关系的两个不变性,由关系数据库系统自动支持的是(实体完整性和参照完整性)。 ( 16)在关系中不能出现相同元组的约束是通过(主码)来实现。 ( 17)下列数据模型中,数据独立性最高的是(关系模型). (18)规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:每一属 性都是(不可分解的)。 (19)关系数据库规范化是为解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入的。 ( 20)在关系数据库中,任何二元关系模式的最高范式必定是(BCNF) ( 21)若属性X 函数依赖于属性Y 时,则属性X 与属性 Y 之间的关系是(多对一)。 ( 22)设有关系模式:部门(部门代码,部门名称,部门成员,部门经理)由于其中(部门成员)属性存在, 使该关系不属于第一范式。 ( 23)若关系模式R 中的属性都是主属性,则R 最高属于(3NF)。 ( 24)若要彻底消除插入异常和删除异常,关系模式最低要属于(BCNF)。 ( 25)关系模式分解的无损连接和保持函数依赖两个特性之间的联系是(没有必然联系)。 ( 26)关系模式中数据依赖的存在,可能会导致成立蕴涵后者数据插入异常,这是指(该插入的数据未被插入)。( 27)设要对关系模式R(学号,姓名,课程代码,课程名,课程成绩)进行分解,将其规范化到3NF,下列( B)是正确的规范化结果。(学号,姓名)R2(课程代码,课程名)R3 (学号,课程代码,课程成绩) ( 28)有如下关系R(是 BCNF)。 ( 29)对用户访问数据库的权限加以限定是为了保护数据库的(安全性)。 ( 30)下面(可移植性)不是数据库系统必须提供的数据控制功能。 ( 31)数据库系统中,对存取权限定义为(授权)。 ( 32)在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据,在授权的定义中,数据对象的(范围越小),授权子系统就越灵活。 ( 33)数据库安全性遭到破坏的情况属于(非法用户读取数据库中的数据)。 ( 34)数据库的(完整性)是指数据的正确性和相容性。 ( 35)数据完整性保护中的约束条件是指(值的约束和结构的约束)。 ( 36)实体完整性和参照完整性属于(静态关系约束)。 ( 37)数据类型、取值范围、空值约束属于(静态列级约束)。
高一期末知识点总结
高一期末知识点总结 第一篇:宇宙与地球 专题1 地球在宇宙中的位置 A 1、天体的概念 2、最基本的天体共同的特征 3、主要天体的特征(恒星、星云、行星、卫星、彗星、流星体) 4、天体系统的层次 5、太阳系的中心天体 6、河外星云的成员 7、宇宙年 8、太阳系八大行星按距离太阳远近的名称 9、八大行星的共同特点 10、距离地球最近的恒星 11、太阳辐射的形式 12、太阳结构(外层、内层) 13、太阳大气的主要特征 14、各层主要的太阳活动的标志 15、太阳活动的主要标志 16、太阳活动的周期 17、太阳对地球的影响
18、八大行星的分类 19、地球成为有生命存有的天体的条件 专题2 地球的伙伴——月球B 20、月球的环境特点 21、月球的地形特点 22、月球公转周期、自转周期、方向 23、地球的天然卫星 24、熟悉月相的名称、各月相的出现的农历时间 25、月相循环一个周期的时间、名称 26、日食、月食出现的原因 27、日食、月食时,月球、地球、太阳的三者位置 28、日食、月食出现时的月相情况 29、潮、汐的概念 30、潮、汐出现的原因(不必展开阐述) 31、理解潮汐随月球而不是太阳的出没而出现潮起潮落的现象的原因 32、连续两次涨潮的时间间隔 33、大潮、小潮出现的月相农历时间 34、潮汐与人类的关系 专题3 人类对太空的探索A 35、太空探索的意义、太空探索的历程 专题4 地球的运动C
36、地球自转的方向、周期、一个周期所需的时间、速度 37、地轴北端的指向 38、恒星日与太阳日的区别(时间、参照物、成因) 39、南、北两极上空所观察到的地球自转的方向 40、什么是地方时、区时、北京时间 41、时区划分的方法 42、国际日期变更线两侧日期的变化 43、地球表面作水平运动的物体发生偏向的的规律(南、北半球、赤道的区别) 44、地球公转的方向、周期、速度 45、黄赤交角的度数 46、太阳直射点在赤道、北回归线、南回归线上的日期、节气 47、正午太阳高度角在纬度和季节上变化的规律 48、晨昏线的区分 49、昼夜长短在纬度和季节上变化的规律极昼、极夜现象 50、天文角度、传统上、气候上四季的划分 第二篇岩石与地貌 专题5 板块运动B 1、用于解释地壳运动的三大学说的名称 2、六大板块的名称 3、板块构造学说的主要观点
信息技术基础知识点汇总
第一章 信息与信息技术知识点 【知识梳理】 二、信息的基本特征 1.传递性;2.共享性;3.依附性和可处理性;4.价值相对性;5.时效性;6.真伪性。 [自学探究] 1.什么是信息技术 ● 信息技术是指有关信息的收集、识别、提取、变换、存储、处理、检索、检测、分析和利用等的 技术。 ● 信息技术是指利用电子计算机和现代通讯手段获取、传递、存储、处理、显示信息和分配信息的 技术。 ● 我国有些专家学者认为,信息技术是指研究信息如何产生、获取、传输、变换、识别和应用的科 学技术。 2 3 4.信息技术的发展趋势 1.多元化;2.网络化;3.多媒体化;4.智能化;5.虚拟化 5.信息技术的影响 (1)信息技术产生的积极影响。 ①对社会发展的影响;②对科技进步的影响;③对人们生活与学习的影响。 (2)信息技术可能带来的一些消极影响。 ①信息泛滥;②信息污染;③信息犯罪;④对身心健康带来的不良影响 6.迎接信息社会的挑战 (1)培养良好的信息意识;(2)积极主动地学习和使用现代信息技术,提高信息处理能力;(3)养成健康使用信息技术的习惯;(4)遵守信息法规。 知识补充: 计算机系统的组成:(由硬件和软件组成) 硬件组成: 运算器 控制器 存储器ROM 、RAM 、软盘、 硬盘、光盘 输入设备键盘、鼠标、扫描仪、手写笔、触摸屏 CPU (中央处理器)
输出设备显示器、打印机、绘图仪、音箱 软件系统: 第二章信息获取知识点 【知识梳理】 1.获取信息的基本过程(P18) 2.信息来源示例(P20):亲自探究事物本身、与他人交流、检索媒体 3.采集信息的方法(P20):亲自探究事物本身、与他人交流、检索媒体 4.采集信息的工具(P20):扫描仪、照相机、摄像机、录音设备、计算机 文字.txt Windows系统自带 .doc 使用WORD创建的格式化文本,用于一般的图文排版 .html 用超文本标记语言编写生成的文件格式,用于网页制作 .pdf 便携式文档格式,由ADOBE公司开发用于电子文档、出版等方面 图形图象.jpg 静态图象压缩的国际标准(JPEG) .gif 支持透明背景图象,文件很小,主要应用在网络上.bmp 文件几乎不压缩,占用空间大 动画.gif 主要用于网络 .swf FLASH制作的动画,缩放不失真、文件体积小,广泛应用于网络 音频.wav 该格式记录声音的波形,质量非常高 .mp3 音频压缩的国际标准,声音失真小、文件小,网络下载歌曲多采用此格式 .midi 数字音乐/电子合成乐器的统一国际标准 视频.avi 用来保存电影、电视等各种影象信息.mpg 运动图象压缩算法的国际标准 .mov 用于保存音频和视频信息 .rm 一种流式音频、视频文件格式 6.常用下载工具(P29):网际快车(flashget)、web迅雷、网络蚂蚁、cuteftp、影音传送带等。 7.网络信息检索的方法(P25 表2-7):直接访问网页、使用搜索引擎、查询在线数据库 8.目录类搜索引擎和全文搜索引擎的区别(P26): 确定信息需求确定信息来源采集信息保存信息
SQL Server数据库笔试题和答案
一单词解释(2分/个) 34分 Data 数据Database 数据库RDBMS 关系数据库管理系统GRANT 授权 REVOKE 取消权限DENY 拒绝权限DECLARE 定义变量PROCEDURE存储过程 事务Transaction 触发器TRIGGER 继续continue 唯一unqiue 主键primary key 标识列identity 外键foreign key 检查check 约束constraint 二编写SQL语句(5分/题) 50分(包含笔试题问题和解答答案) 1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话Create table stu (学号int , 姓名varchar(8), 年龄int, 性别varchar(4), 家庭地址varchar(50), 联系电话int ); 2) 修改学生表的结构,添加一列信息,学历 Alter table stu add 学历varchar(6); 3) 修改学生表的结构,删除一列信息,家庭住址 Alter table stu drop column 家庭地址 4) 向学生表添加如下信息: 学号姓名年龄性别联系电话学历 1A22男123456小学 2B21男119中学 3C23男110高中 4D18女114大学 Insert into stu values(1,’A’,22,’男’,123456,’小学’) Insert into stu values(2,’B’,21,’男’,119,’中学’) Insert into stu va lues(3,’C’,23,’男’,110,’高中’) Insert into stu values(4,’D’,18,’女’,114,’大学’) 5) 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专” Update stu set 学历=’大专’ where 联系电话like ‘11%’ 6) 删除学生表的数据,姓名以C开头,性别为‘男’的记录删除 Delect from stu where 性别=’男’ and 姓名like ‘c%’ 7) 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来
数据库原理与应用期末复习总结含试题及其答案
数据库原理综合习题答案 1.1名词解释 (1) DB:即数据库(Database),是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。 (2) DBMS:即数据库管理系统(Database Management System),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。 (3) DBS:即数据库系统(Database System),是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。 (4) 1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,那么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。 (5) 1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。 (6) M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。 (7) 数据模型:模型是对现实世界的抽象。在数据库技术中,表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为两种类型:概念数据模型和结构数据模型。 (6) 概念数据模型:是独门于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。 (9) 结构数据模型:是直接面向数据库的逻辑结构,是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,所以称为“结构数据模型”。结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。它主要有:层次、网状、关系三种模型。 (10) 层次模型:用树型结构表示实体类型及实体间联系的数据模型。 (11) 网状模型:用有向图结构表示实体类型及实体间联系的数据模型。 (12) 关系模型:是目前最流行的数据库模型。其主要特征是用二维表格结构表达实体集,用外鍵表示实体间联系。关系模型是由若干个关系模式组成的集合。 (13) 概念模式:是数据库中全部数据的整体逻辑结构的描述。它由若干个概念记录类型组成。概念模式不仅要描述概念记录类型,还要描述记录间的联系、操作、数据的完整性、安全性等要求。 (14) 外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。 (15) 内模式:是数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组成方式,以及数据控制方面的细节。 (16) 模式/内模式映象:这个映象存在于概念级和内部级之间,用于定义概念模式和内模式间的对应性,即概念记录和内部记录间的对应性。此映象一般在内模式中描述。 (17) 外模式/模式映象:这人映象存在于外部级和概念级之间,用于定义外模式和概念模式间的对应性,即外部记录和内部记录间的对应性。此映象都是在外模式中描述。 (18) 数据独立性:在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。 (19) 物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对模式的修改尽量不影响概念模式。
大学数据结构期末知识点重点总结
第一章概论 1.数据结构描述的是按照一定逻辑关系组织起来的待处理数据元素的表示及相关操作,涉及数据的逻辑结构、存储结构和运算 2.数据的逻辑结构是从具体问题抽象出来的数学模型,反映了事物的组成结构及事物之间的逻辑关系 可以用一组数据(结点集合K)以及这些数据之间的一组二元关系(关系集合R)来表示:(K, R) 结点集K是由有限个结点组成的集合,每一个结点代表一个数据或一组有明确结构的数据 关系集R是定义在集合K上的一组关系,其中每个关系r(r∈R)都是K×K上的二元关系 3.数据类型 a.基本数据类型 整数类型(integer)、实数类型(real)、布尔类型(boolean)、字符类型(char)、指针类型(pointer)b.复合数据类型 复合类型是由基本数据类型组合而成的数据类型;复合数据类型本身,又可参与定义结构更为复杂的结点类型 4.数据结构的分类:线性结构(一对一)、树型结构(一对多)、图结构(多对多) 5.四种基本存储映射方法:顺序、链接、索引、散列 6.算法的特性:通用性、有效性、确定性、有穷性 7.算法分析:目的是从解决同一个问题的不同算法中选择比较适合的一种,或者对原始算法进行改造、加工、使其优化 8.渐进算法分析 a.大Ο分析法:上限,表明最坏情况 b.Ω分析法:下限,表明最好情况 c.Θ分析法:当上限和下限相同时,表明平均情况 第二章线性表 1.线性结构的基本特征 a.集合中必存在唯一的一个“第一元素” b.集合中必存在唯一的一个“最后元素” c.除最后元素之外,均有唯一的后继 d.除第一元素之外,均有唯一的前驱 2.线性结构的基本特点:均匀性、有序性 3.顺序表 a.主要特性:元素的类型相同;元素顺序地存储在连续存储空间中,每一个元素唯一的索引值;使用常数作为向量长度 b. 线性表中任意元素的存储位置:Loc(ki) = Loc(k0) + i * L(设每个元素需占用L个存储单元) c. 线性表的优缺点: 优点:逻辑结构与存储结构一致;属于随机存取方式,即查找每个元素所花时间基本一样 缺点:空间难以扩充 d.检索:ASL=【Ο(1)】 e.插入:插入前检查是否满了,插入时插入处后的表需要复制【Ο(n)】 f.删除:删除前检查是否是空的,删除时直接覆盖就行了【Ο(n)】 4.链表 4.1单链表 a.特点:逻辑顺序与物理顺序有可能不一致;属于顺序存取的存储结构,即存取每个数据元素所花费的时间不相等 b.带头结点的怎么判定空表:head和tail指向单链表的头结点 c.链表的插入(q->next=p->next; p->next=q;)【Ο(n)】 d.链表的删除(q=p->next; p->next = q->next; delete q;)【Ο(n)】 e.不足:next仅指向后继,不能有效找到前驱 4.2双链表 a.增加前驱指针,弥补单链表的不足 b.带头结点的怎么判定空表:head和tail指向单链表的头结点 c.插入:(q->next = p->next; q->prev = p; p->next = q; q->next->prev = q;) d.删除:(p->prev->next = p->next; p->next->prev = p->prev; p->prev = p->next = NULL; delete p;) 4.3顺序表和链表的比较 4.3.1主要优点 a.顺序表的主要优点 没用使用指针,不用花费附加开销;线性表元素的读访问非常简洁便利 b.链表的主要优点 无需事先了解线性表的长度;允许线性表的长度有很大变化;能够适应经常插入删除内部元素的情况 4.3.2应用场合的选择 a.不宜使用顺序表的场合 经常插入删除时,不宜使用顺序表;线性表的最大长度也是一个重要因素 b.不宜使用链表的场合 当不经常插入删除时,不应选择链表;当指针的存储开销与整个结点内容所占空间相比其比例较大时,应该慎重选择 第三章栈与队列 1.栈 a.栈是一种限定仅在一端进行插入和删除操作的线性表;其特点后进先出;插入:入栈(压栈);删除:出栈(退栈);插入、删除一端被称为栈顶(浮动),另一端称为栈底(固定);实现分为顺序栈和链式栈两种 b.应用: 1)数制转换 while (N) { N%8入栈; N=N/8;} while (栈非空){ 出栈; 输出;} 2)括号匹配检验 不匹配情况:各类括号数量不同;嵌套关系不正确 算法: 逐一处理表达式中的每个字符ch: ch=非括号:不做任何处理 ch=左括号:入栈 ch=右括号:if (栈空) return false else { 出栈,检查匹配情况, if (不匹配) return false } 如果结束后,栈非空,返回false 3)表达式求值 3.1中缀表达式: 计算规则:先括号内,再括号外;同层按照优先级,即先乘*、除/,后加+、减-;相同优先级依据结合律,左结合律即为先左后右 3.2后缀表达式: <表达式> ::= <项><项> + | <项><项>-|<项> <项> ::= <因子><因子> * |<因子><因子>/|<因子> <因子> ::= <常数> ?<常数> ::= <数字>|<数字><常数> <数字> ∷= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 3.3中缀表达式转换为后缀表达式 InfixExp为中缀表达式,PostfixExp为后缀表 达式 初始化操作数栈OP,运算符栈OPND; OPND.push('#'); 读取InfixExp表达式的一项 操作数:直接输出到PostfixExp中; 操作符: 当‘(’:入OPND; 当‘)’:OPND此时若空,则出错;OPND若 非空,栈中元素依次弹出,输入PostfixExpz 中,直到遇到‘(’为止;若为‘(’,弹出即 可 当‘四则运算符’:循环(当栈非空且栈顶不是 ‘(’&& 当前运算符优先级>栈顶运算符优先 级),反复弹出栈顶运算符并输入到 PostfixExp中,再将当前运算符压入栈 3.4后缀表达式求值 初始化操作数栈OP; while (表达式没有处理完) { item = 读取表达式一项; 操作数:入栈OP; 运算符:退出两个操作数, 计算,并将结果入栈} c.递归使用的场合:定义是递归的;数据结构是 递归的;解决问题的方法是递归的 2.队列 a.若线性表的插入操作在一端进行,删除操作 在另一端进行,则称此线性表为队列 b.循环队列判断队满对空: 队空:front==rear;队满: (rear+1)%n==front 第五章二叉树 1.概念 a. 一个结点的子树的个数称为度数 b.二叉树的高度定义为二叉树中层数最大的叶 结点的层数加1 c.二叉树的深度定义为二叉树中层数最大的叶 结点的层数 d.如果一棵二叉树的任何结点,或者是树叶, 或者恰有两棵非空子树,则此二叉树称作满二 叉树 e.如果一颗二叉树最多只有最下面的两层结点 度数可以小于2;最下面一层的结点都集中在 该层最左边的位置上,则称此二叉树为完全二 叉树 f.当二叉树里出现空的子树时,就增加新的、特 殊的结点——空树叶组成扩充二叉树,扩充二 叉树是满二叉树 外部路径长度E:从扩充的二叉树的根到每个 外部结点(新增的空树叶)的路径长度之和 内部路径长度I:扩充的二叉树中从根到每个内 部结点(原来二叉树结点)的路径长度之和 2.性质 a. 二叉树的第i层(根为第0层,i≥0)最多有 2^i个结点 b. 深度为k的二叉树至多有2k+1-1个结点 c. 任何一颗二叉树,度为0的结点比度为2的 结点多一个。n0 = n2 + 1 d. 满二叉树定理:非空满二叉树树叶数等于其 分支结点数加1 e. 满二叉树定理推论:一个非空二叉树的空子 树(指针)数目等于其结点数加1 f. 有n个结点(n>0)的完全二叉树的高度为 ?log2(n+1)?,深度为?log2(n+1)?? g. 对于具有n个结点的完全二叉树,结点按层 次由左到右编号,则有: 1) 如果i = 0为根结点;如果i>0,其父结点 编号是(i-1)/2 2) 当2i+1