文档内容
问鼎HR总监殿堂的《人力资源操作大全》系列
IT 项目经理考题题库(V1.0)
说明:选题个数可在9~11个间,答题时间2~2.5小时。
版本号 编制人员 编制时间 备注
V 1.0 匡光政 2003年5月7日
一、 基础IT技术部分 (每题7~8分)
说明:1、2、3、11必选,4~7可选1或不选,8~9可选1
1、某集团下属单位共800名员工,分布在15个部门,要设计一个含编号、部门、姓名、
年龄、工资5项内容的人员数据库系统,请作一数据规划。
Answer: ER图如下:
2、请编一带循环条件的程序,可分部门遍历上例中的每一条记录。
Answer:
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 ‘工资’
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、请描述数据库、表、表空间、数据文件、数据之间的关系,能用图示补充说明吗?
Answer:
数据库有两个层面,分别是逻辑层面与物理层面。其中逻辑层面主要是指表空间,物理层
面主要是指文件。
表是数据库的组成部分,它从物理位置上讲是在文件中,从逻辑上讲在表空间中。
数据存在于表中。
全国各地免费送货,货到付款,详情咨询qq:864266899(加qq请备注"操作大全")问鼎HR总监殿堂的《人力资源操作大全》系列
用图表示,补充说明如下:
4、简要列出Oracle的DDL语句。比较Oracle 数据库存储过程和触发器的异同,存储过
程有何作用?
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 ON personal_info (employee_id);
ALTER TABLE personal_info ADD salary money null ;
TRUNCATE personal_info;
DROP TABLE personal_info;
DROP database employees;
存储过程和触发器相同点
1.两者都存储在数据库中
2.两者以编译了的形式存储在数据库中
3.都使用PL/SQL语法, 触发器类似于存储的过程,可包含SQL语句和PL/SQL语句,可
调用其它的存储过程。
存储过程和触发器不同点
1. 触发器所相关表分别存储。而存储过程不用与相关的表分别存储
2. 触发器仅可在表上定义,存储过程不受这个限制。
3. 两者建立的语法不同,触发器是 create trigger …, 而存储过程是 create
procedure…
全国各地免费送货,货到付款,详情咨询qq:864266899(加qq请备注"操作大全")问鼎HR总监殿堂的《人力资源操作大全》系列
4. 调用方法不同:存储过程由用户或应用显式执行;而触发器是为一激发语句
(INSERT、UPDATE、DELETE)发出进由ORACLE隐式地触发。
存储过程的作用:
存储过程可以包括复杂的商业逻辑或多个操作过程。因为它与一般的 PL/SQL块主要的
不同是:无需在网上传送大量的源程序代码,只传送一条调用命令,这就大大降低了网络
通信的负担;而且只在刚创建时分析编译一次,每次调用直接执行编译了的代码,因此运
行速度较快。在实际开发时,对于具有共同特性的功能模块最好使用存储过程,调用时通
过使用不同的实际参数值来实现某一具体的处理。如果能充分利用存储过程来完成应用
系统的操作与处理,则可大大提高系统的运行性能。
5、一个数据库一般会设立哪些表空间?
表空间一般会设立system表空间, user表空间, index表空间, temp表空间, DRSYS表
空间,RBS表空间,Tools表空间
6、Oracle 数据库有何安全措施?简要说明。
Answer:
Oracle的安全措施有权限,角色,资源限制,用户环境文件,审计,存储设置和空间份额。
其中权限是指定的表,视图,序列,函数或包上享有特殊动作的权利。对于不同类型的对
象,有不同的对象特权。对于有些模式对象,如聚集,索引,触发器,数据库链没有相关的对象
特权,它们由系统特权控制。对于包含在某用户名的模式中的对象,该用户对这些对象自动
地具有全部对象特权,即模式的特有者对模式中的对象具有全部对象特权,这些对象的特有
者可将这些对象上的任何对象特权授权给其他用户。
角色对应现实世界, 角色(role)为相关特权的命令组,可授权给用户和角色。ORACLE
利用角色更容易地进行特权管理。ORACLE为了提供与以前版本的兼容性,预定义下列角色:
CONNENT,RESOUCE,DBA,EXP_FULL_DATABASE和IMP_FULL_DATABASE。
资源限制是设置用户资源限制的环境文件,该限制规定了用户可用的系统资源的总量。
分为两种限制:调用级和会话级限制。
用户环境文件是指资源限制的命名集,可赋给ORACLE数据库的有效的用户。利用用
户环境文件可容易地管理资源限制。要使用用户环境文件,首先应将数据库中的用户分类,
决定在数据库中全部用户类型需要多少种用户环境文件。在建立环境文件之前,要决定每一
种资源限制的值。
审计是对选定的用户动作的监控和记录。
存储设置和空间份额对用户使用磁盘空间的限制。
7、请陈述提高数据库性能的途径和方法。简要说明。
Answer:
1. 匹配所有的索引
2. 匹配尽可能多的主健
3.高级(主)的表放在等式左边,而低级(次)的表放在等式右边。
4.联合查询时,每个表尽可能跟主表都单独匹配,避免各次表之间匹配。
如:
Select B.Name ‘部门’, A.Staffcode,A.Name ‘姓名’, A.Station ‘岗位’, A.Age
‘年龄’, A.Salary ‘工资’,C.Staffcode
from staff A, Department B,Leader C
全国各地免费送货,货到付款,详情咨询qq:864266899(加qq请备注"操作大全")问鼎HR总监殿堂的《人力资源操作大全》系列
Where A.Deptcode = B.Deptcode and A.Deptcode = C.Deptcode
不要:
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 B .Deptcode = C.Deptcode
8、操作系统包含哪几个主要功能?简要说明。
Answer:
CPU管理, 对CPU进行控制管理,有多任务式的和单任务式之分
作业管理, 管理线程和进程的运行。
设备管理(输入/输出设备管理),管理键盘、鼠标、显示器的输入输出设备。
数据和文件管理,管理数据和文件。
存储管理,将数据存储到磁盘介质上或从磁盘介质上读出到CPU进行处理。
中断管理,操作系统可以响应用户或程序的中断请求,执行中断操作。
9、软件测试包含类型的测试?请按测试的顺序过程简要说明。
Answer:
测试是保证项目质量重要的一步。可以通过不同的测试方法达到目标,测试的顺序过
程是:单元测试---系统测试---容量测试(或压力测试)---集成测试---接受测试(或用户测试)
测试方法 简要说明
单元测试 程序员在写完代码后进行的测试,主要是检查程序单元是否按质
量完成
系统测试 在单元测试完成后,将各个单元联系起来进行测试,检查系统是
否满足功能需求。
容量测试 采用模拟或真实的方式加大用户量,进行测试。从性能上检验系
(或压力测试) 统是否满足性能的需求。又称压力测试。
集成测试 将系统与其他的系统一起运行,测试系统是否与其他系统兼容。
检查是否会对其他系统造成影响
接受测试 以用户使用为主导,让用户使用系统,从操作上、界面友好性等方
(或用户测试) 面,由用户确定是否接受系统,用户确认后,所有的测试完成。
10、 请给出以下程序的执行结果
#include
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=&z;
int *f=fun(x);
int g=*f;
count,,”g=”<
void swap(&a,&b);
int main()
{
int a(12),b(25);
swap(&a,&b);
cout<<”a=”<