当前位置:文档之家› 中级数据库系统工程师下午试题分类模拟题含答案4

中级数据库系统工程师下午试题分类模拟题含答案4

中级数据库系统工程师下午试题分类模拟题4试题一[说明]某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者的信息,从而快速地提供租赁服务。

该系统具有以下功能:1.登记房主信息。

对于每名房主,系统需登记其姓名、住址和联系电话,并将这些信息写入房主信息文件。

2.登记房屋信息。

所有在系统中登记的房屋都有一个唯一的识别号(对于新增加的房屋,系统会自动为其分配一个识别号)。

除此之外,还需登记该房屋的地址、房型(如平房、带阳台的楼房、独立式住宅等)、最多能够容纳的房客数、租金及房屋状态(待租赁、已出租)。

这些信息都保存在房屋信息文件中。

一名房主可以在系统中登记多个待租赁的房屋。

3.登记租赁者信息。

所有想通过该系统租赁房屋的租赁者,必须首先在系统中登记个人信息,包括:姓名、住址、电话号码、出生年月和性别。

这些信息都保存在租赁者信息文件中。

4.租赁房屋。

已经登记在系统中的租赁者,可以得到一份系统提供的待租赁房屋列表。

一旦租赁者从中找到合适的房屋,就可以提出看房请求。

系统会安排租赁者与房主见面。

对于每次看房,系统会生成一条看房记录并将其写入看房记录文件中。

5.收取手续费。

房主登记完房屋后,系统会生成一份费用单,房主根据费用单交纳相应的费用。

6.变更房屋状态。

当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态的请求。

系统将根据房主的请求,修改房屋信息文件。

数据流图1-1给出了该系统的顶层数据流图。

1、【问题1】使用[【说明】中给出的词汇,将数据流图1-1中(1)~(4)处的数据流补充完整。

试题二阅读下列说明,回答下列问题。

[说明]某大型集团公司的数据库的部分关系模式如下:员工表:EMP(Eno, Ename, Age, Sex, Title),各属性分别表示员工工号、姓名、年龄、性别和职称级别,其中性别取值为“男”“女”;公司表:COMPANY(Cno, Cname, City),各属性分别表示公司编号、名称和所在城市;工作表:WORKS(Eno, Cno, Salary),各属性分别表示职工工号、工作的公司编号和工资。

有关关系模式的属性及相关说明如下:2允许一个员工在多家公司工作,使用身份证号作为工号值。

3工资不能低于1500元。

根据以上描述,回答下列问题:2、请将下面创建工作关系的SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及工资不能低于1500元的约束。

CREATE TABLE WORKS (Eno CHAR(10) (a) ,Cno CHAR(4) (b) ,Salary int (c) ,PRIMARY KEY (d) ,);3、(1)创建女员工信息的视图FemaleEMP,属性有Eno、Ename、Cno、Cname和Salary,请将下面SQL语句的空缺部分补充完整。

CREATE (e)ASSELECT EMP.Eno, Ename, o, Cname, SalaryFROM EMP, COMPANY, WORKSWHERE (f) ;(2)员工的工资由职称级别的修改自动调整,需要用触发器来实现员工工资的自动维护,函数float Salary_value(char(10)Eno)依据员工号计算员工新的工资。

请将下面SQL语句的空缺部分补充完整。

CREATE (g) Salary TRG AFTER (h) ON EMPREFERENCING new row AS nrowFOR EACH ROWBEGINUPDATE WORKSSET (i)WHERE (j) ;END4、请将下面SQL语句的空缺部分补充完整。

(1)查询员工最多的公司编号和公司名称。

SELECT o, CnameFROM COMPANY, WORKSWHERE o=oGROUP BY (k)HAVING (l) (SELECT COUNT(*)FROM WORKSGROUP BY Cno);(2)查询所有不在“中国银行北京分行”工作的员工工号和姓名。

SELECT Eno, EnameFROM EMPWHERE Eno (m) (SELECT EnoFROM (n)WHERE (o)AND Cname='中国银行北京分行');试题三假设某商业集团数据库中有一关系模式R如下:R(商店编号,商品编号,数量,部门编号,负责人)如果规定:①每个商店的每种商品只在一个部门销售。

②每个商店的每个部门只有一个负责人。

③每个商店的每种商品只有一个库存数量。

试回答下列问题:5、根据上述规定,写出关系模式R的基本函数依赖。

6、找出关系模式R的候选键。

7、关系模式R最高已经达到第几范式?为什么?8、如果R不属于3NF,请将R分解成3NF模式集。

试题四[说明]设某商业集团为仓库存储商品设计了三个基本表:仓库STORE(S#,SNAME,SADDR),其属性是仓库编号、仓库名称和地址。

存储SG(S#,C#,QUANTITY),其属性是仓库编号、商品编号和数量。

商品GOODS(C#,GNAME,PRICE.,其属性是商品编号、商品名称和单价。

现检索仓库名称为“莘庄”的仓库里存储的商品的编号和名称。

9、[问题1]试写出相应的关系代数表达式、元组表达式、关系逻辑规则和SELECT语句。

10、[问题2]在基本表中,检索存储全部种类商品的仓库的编号及名称。

试写出相应的关系代数表达式、元组表达式、关系逻辑规则和SELECT语句。

11、[问题3]在基本表中,检索每个仓库存储商品的总价值。

试写出相应的SELECT语句。

要求显示(S#,SUM_VALUE.,其属性为仓库编号及该库存储商品的总价值。

12、[问题4]在基本表中,写一个断言,规定每个仓库存储商品的单价为1万元以上的商品种类最多为20种。

试题五[说明]某停车场有多个入口和出口,车辆进入时从入口处由系统查询可用的停车位,从出口驶出时系统将其刚使用的车位标记为空车位。

假设实现停车场管理的伪指令如下表1所示:根据上述描述,在入口处的伪代码程序为:x=Get13;IF x=NULL THEN return 0;Writ(x,1);13、[问题1]若两辆车在不同的入口处同时执行上述代码,会出现什么问题? (100字以内描述)14、[问题1]为保证入口处伪代码正确地并发执行,引入共享锁指令SLock(T)和独占锁指令XLock(T)对表T进行加锁;Upgrade(T)对表T所加的共享锁升级为独占锁;解锁指令 Unlock(T)对表T进行解锁。

(1)请修改上述入口处的伪代码程序,使其满足2PL协议。

(2)满足2PL协议的入口处的伪代码程序,在并发执行时是否会产生死锁?若是,给出一个产生死锁的调度。

15、[问题3]若停车位表的关系模式为:park(parkno,isused),其中parkno为停车位号,isused为停车位标志,0为空,1为非空。

下面是用E-SQL实现的查询空车位的函数Get(),请补全空缺处的代码。

SET TRANSACTION ISOLATION LEVEL SERIALIZABLEEXEC SQL DECLARE getblk CURSOR FOR(a) ;EXEC SQL OPEN getblk;EXEC SQL FETCH getblk INTO:Hparkno;//Hparkno为已声明的主变量IF SQLCA.sqlcode=100 THENEXEC SQL CLOSE getblk; Return NULL;ELSE(b) ;END IF答案:试题一1、(1)费用单 (2)待租赁房屋列表 (3)看房请求 (4)变更房屋状态请求试题二2、(a)REFERENCES EMP(Eno)(b)REFERENCES COMPANY(Cno)(c)CHECK(Salary>=1500)(d)(Eno, Cno)[解析] 本题考查SQL语句的应用。

此类题目要求考生掌握SQL语句的基本语法和结构,认真阅读题目给出的关系模式,针对题目的要求具体分析并解答。

本试题已经给出了3个关系模式,需要分析每个实体的属性特征及实体之间的联系,补充完整SQL语句。

由题目说明可知,Eno和Cno两个属性组合是WORKS关系表的主键,所以在PRIMARY KEY后填的应该是(Eno, Cno)组合;Eno和Cno分别作为外键引用到EMP和COMPANY关系表的主键,因此需要用REFERENCES对这两个属性进行外键约束:由“工资不能低于1500元”的要求,可知需要限制账户余额属性值的范围,通过CHECK约束来实现。

从上述分析可知,完整的SQL语句如下:CREATE TABLE WORKS (Eno CHAR(10) REFERENCES EMP(Eno),Cno CHAR(4) REFERENCES COMPANY(Cno),Salary int CHEKCK (Salary >=1500),PRIMARY KEY (Eno, Cno),);3、(1)(e)VIEW FemaleEMP(Eno, Ename, Cno, Cname, Salary)(f)EMP.Eno=WORKS.Eno AND o=o AND Sex='女'(2)(g)TRIGGER(h)UPDATE(i)Salary=Salary_value(nrow.Eno)(j)WORKS.Eno=nrow.Eno[解析] (1)创建视图需要通过CREATE VIEW语句来实现,由题目可知视图的属性有(Eno, Ename, Cno, Cname, Salary);通过公共属性列Eno和Cno对使用的三个基本表进行连接;由于只创建女员工的试图,所以还要在WHERE后加入“Sex='女'”的条件。

从上分析可见,完整的SQL语句如下: CREATE VIEW FemaleEMP (Eno, Ename, Cno, Cname, Salary)ASSELECT EMP.Eno, Ename, o, Cname, Salary。

相关主题