1、IT系统分析员、软件开发员考题题库(V1.0) 说明:选题个数可在9~11个间,答题时间80分钟~120分钟。 版本号 编制人员 编制时间 备注 V 1.0 匡光政 2023年5月7日 一、 基础IT技术部分 (每题8~10分) 说明:1、2、3、4、5、14必选,6~13可选2或不选 1、 某集团下属单位共800名员工,分布在15个部门,要设计一个含部门、姓名、岗位、年龄、工资、部门领导6项内容的人员数据库系统,请用ER图作一数据规划。 Answer: ER图如下: 2、 请编一带循环条件的程序,可分部门遍历上例中的每一条记录。 A
2、nswer: Declare cursor cur_Department Select Deptcode from Department order by deptcode Fetch cur_Department into @Deptcode While @@Fetch_status= 0 Begin Select B.Name ‘部门’, A.Name ‘姓名’, A.Station ‘岗位’, A.Age ‘年龄’, A.Salary ‘工资’, (select staffname from staff where staff.staffcode = b.staffcod
3、e ) 部门领导 from staff A, Department B Where A.Deptcode = @Deptcode and A.Deptcode = B.Deptcode Fetch next cur_Department into @Deptcode End Close cursor cur_Department Deallocate cursor cur_Department 3、 在编写SQL语句时为了提高性能,与数据库索引匹配时应注意哪些?举例说明。 Answer: 1. 匹配所有的索引 2. 匹配尽也许多的主健 3.高级(主)
4、的表放在等式左边,而低档(次)的表放在等式右边。 4.联合查询时,每个表尽也许跟主表都单独匹配,避免各次表之间匹配。 如: Select B.Name ‘部门’, A.Staffcode,A.Name ‘姓名’, A.Station ‘岗位’, A.Age ‘年龄’, A.Salary ‘工资’,C.Staffcode from staff A, Department B,Leader C Where A.Deptcode = B.Deptcode and A.Deptcode = C.Deptcode 不要: Select B.Name ‘部门’, A.Staffcode,
5、A.Name ‘姓名’, A.Station ‘岗位’, A.Age ‘年龄’, A.Salary ‘工资’,C.Staffcode from staff A, Department B,Leader C Where A.Deptcode = B.Deptcode and B.Deptcode = C.Deptcode 4、 软件测试包含哪些类型的测试?请按测试的顺序过程简要说明。 Answer: 测试是保证项目质量重要的一步。可以通过不同的测试方法达成目的,测试的顺序过程是:单元测试---系统测试---容量测试(或压力测试)---集成测试---接受测试(或用户测试) 测试
6、方法 简要说明 单元测试 程序员在写完代码后进行的测试,重要是检查程序单元是否按质量完毕 系统测试 在单元测试完毕后,将各个单元联系起来进行测试,检查系统是否满足功能需求。 容量测试 (或压力测试) 采用模拟或真实的方式加大用户量,进行测试。从性能上检查系统是否满足性能的需求。又称压力测试。 集成测试 将系统与其他的系统一起运营,测试系统是否与其他系统兼容。检查是否会对其他系统导致影响 接受测试 (或用户测试) 以用户使用为主导,让用户使用系统,从操作上、界面和谐性等方面,由用户拟定是否接受系统,用户确认后,所有的测试完毕。 5、 用你最熟悉的一种编程语言,编写
7、冒泡排序法程序。 点评: 这个问题的回答很多,下面以两种为例。 Answer1: (以JAVA为例) class BubbleSort { public static void sort(int[] a) { int i; int j; for (i = 0 ; i < a.length; i++) { /* move the largest number up */ for (j = 0 ; j < a.length - i - 1; j++) { if (a[j] > a[j+1]
8、) ArrayUtil.swap(a, j, j + 1); } } } } public class BubbleSortTest { public static void main(String[] args) { int[] a = ArrayUtil.randomIntArray(20, 100); System.out.println(Arrays.asList(a)); BubbleSort.sort(a); System.out.println(A
9、rrays.asList(a)); } } Answer2: (以SQL为例) procedure Bubble_Sort(var L:List); var i,j:position; begin 1 for i:=First(L) to Last(L)-1 do 2 for j:=First(L) to Last(L)-i do 3 if L[j]>L[j+1] then 4 swap(L[j],L[j+1]); //互换L[j]和L[j+1] end; 6、 请陈述提高数据库性能的途径和方法。 点评:可以从很多方
10、面回答,只要答出三点以上,就可以算对。 Answer: 1.在设计方面,适当采用关系模型的设计,关系模式的设计是关系模型设计的灵魂。可以避免数据冗余,保证数据库的完整性。关系模型的设计直接决定着数据库的性能。 2.在数据类型方面,要采用合适的数据类型。在建表时选择保存数据所需的最小存储长度的数据类型是一个非常好的方法。例如,当需要整数时,使用整数类型而不是实数或浮点数(后两者需要花费更多的时间来解决)。 3.数据解决和运算,多采用存储过程,存储过程是预编译后的程序,在数据库端运营,可以提高数据库的解决速度。 4.在Tempdb方面,根据数据的解决量,加大Tempdb的大小,可以提高数
11、据库的性能。 5.在索引方面,根据查询条件决定是否使用索引,索引对查询速度的影响是巨大的,索引可以加快查询速度,也可以大大减慢查询速度。 6.在数据库的连接方面,采用连接池的技术可以,加快连接速度,共享连接资源。 7.在游标方面,应根据需要,采用对的的游标,不可用太多的游标。由于游标消耗数据库很大的资源。 8.数据库的参数配置方面,要根据需求,配置不同的参数,例如:存储过程的运营内存空间大小,高速缓存是否打开等。 7、 请描述数据库系统中数据库、表、表空间、文献、数据之间的关系,能用图示补充说明吗?一个数据库系统一般会设立哪些表空间?会有哪些类型文献? Answer: 数据库
12、有两个层面,分别是逻辑层面与物理层面。其中逻辑层面重要是指表空间,物理层面重要是指文献。 表是数据库的组成部分,它从物理位置上讲是在文献中,从逻辑上讲在表空间中。 数据存在于表中。 用图表达,补充说明如下: 表空间一般会设立system表空间, user表空间, index表空间, temp表空间, 文献会有数据文献(Data files)、重置日记文献(redo log files)、控制文献(control files)、密码文献(password)、起始参数档(initialization parameter files)等类型文献。 8、 简要列出Orac
13、le的DDL语句。 Answer: DDL是数据定义语言,oracle 的DDL有:创建是用CREATE, 删除是用DROP, 修改ALTER ,清空表中的记录TRUNCATE,授权GRANT,回收权限REVOKE。。 下面简要列出: Ø CREATE DATABASE employees ; Ø CREATE TABLE personal_info (first_name char(20) not null, last_name char(20) not null, employee_id int not null) ; Ø CREATE INDEX index_name
14、ON personal_info (employee_id); Ø ALTER TABLE personal_info ADD salary money null ; Ø TRUNCATE personal_info; Ø DROP TABLE personal_info; Ø DROP database employees; 9、 比较Oracle 数据库存储过程和触发器的异同,存储过程有何作用? Answer: 相同点 1. 两者都存储在数据库中 2. 两者以编译了的形式存储在数据库中 3. 都使用PL/SQL语法, 触发器类似于存储的过程,可包含SQL语句和PL/
15、SQL语句,可调用其它的存储过程。 不同点 1. 触发器所相关表分别存储。而存储过程不用与相关的表分别存储 2. 触发器仅可在表上定义,存储过程不受这个限制。 3. 两者建立的语法不同,触发器是 create trigger …, 而存储过程是 create procedure… 4. 调用方法不同:存储过程由用户或应用显式执行;而触发器是为一激发语句 (INSERT、UPDATE、DELETE)发出进由ORACLE隐式地触发。 存储过程的作用: 存储过程可以涉及复杂的商业逻辑或多个操作过程。由于它与一般的PL/SQL块重要的不同是:无需在网上传送大量的源程序代码,只传送
16、一条调用命令,这就大大减少了网络通信的承担;并且只在刚创建时分析编译一次,每次调用直接执行编译了的代码,因此运营速度较快。在实际开发时,对于具有共同特性的功能模块最佳使用存储过程,调用时通过使用不同的实际参数值来实现某一具体的解决。假如能充足运用存储过程来完毕应用系统的操作与解决,则可大大提高系统的运营性能。 10、 IT系统的安全领域有哪些?常用的安全技术(措施)有哪些? Answer: IT系统的安全领域有物理安全、网络安全、系统安全、用户安全、应用安全、数据安全。常用的安全技术是隧道技术、病毒防护、防火墙技术、身份认证、加密技术、入侵检测、容灾与数据备份。 11、 Ora
17、cle 数据库有何安全措施?简要说明。 Answer: Oracle的安全措施有权限,角色,资源限制,用户环境文献,审计,存储设立和空间份额。 其中权限是指定的表,视图,序列,函数或包上享有特殊动作的权利。对于不同类型的对象,有不同的对象特权。对于有些模式对象,如聚集,索引,触发器,数据库链没有相关的对象特权,它们由系统特权控制。对于包含在某用户名的模式中的对象,该用户对这些对象自动地具有所有对象特权,即模式的特有者对模式中的对象具有所有对象特权,这些对象的特有者可将这些对象上的任何对象特权授权给其他用户。 角色相应现实世界, 角色(role)为相关特权的命令组,可授权给用户和角色。O
18、RACLE运用角色更容易地进行特权管理。ORACLE为了提供与以前版本的兼容性,预定义下列角色:CONNENT,RESOUCE,DBA,EXP_FULL_DATABASE和IMP_FULL_DATABASE。 资源限制是设立用户资源限制的环境文献,该限制规定了用户可用的系统资源的总量。分为两种限制:调用级和会话级限制。 用户环境文献是指资源限制的命名集,可赋给ORACLE数据库的有效的用户。运用用户环境文献可容易地管理资源限制。要使用用户环境文献,一方面应将数据库中的用户分类,决定在数据库中所有用户类型需要多少种用户环境文献。在建立环境文献之前,要决定每一种资源限制的值。 审
19、计是对选定的用户动作的监控和记录。
存储设立和空间份额对用户使用磁盘空间的限制。
12、 操作系统包含哪几个重要功能?简要说明。
Answer:
Ø CPU管理, 对CPU进行控制管理,有多任务式的和单任务式之分
Ø 作业管理, 管理线程和进程的运营。
Ø 输入/输出管理,管理键盘、鼠标、显示器的输入输出设备。
Ø 数据和文献管理,管理数据和文献。
Ø 存储管理,将数据存储到磁盘介质上或从磁盘介质上读出到CPU进行解决。
Ø 中断管理,操作系统可以响应用户或程序的中断请求,执行中断操作。
13、 请给出以下程序的执行结果
#include
20、 int main() { int var(10); int *pointer; pointer=&var; *pointer=*pointer + 5; cout<<”var=”< int*fun(int*y) { return y; } int main() { int z=5; int *x=&






