1、数据库系统工程师-SQL 操作与应用及答案解析(总分:75.00,做题时间:90 分钟)一、试题 1(总题数:1,分数:15.00)说明某网上订书系统的 E-R图(已消除了不必要的冗余)如图 3-1所示(图中没有标出主码)。图中实体的说明如表 3-25所示,相关属性说明如表 3-26所示。(分数:15.00)_二、试题 2(总题数:1,分数:15.00)说明某公司信息管理系统的需求分析和部分关系模式设计的结果描述如下。(1) 公司有多个部门,每个部门有一名负责人、一间办公室、一部电话和多名职员,每个职员最多属于一个部门,负责人也是一名公司职员。(2) 公司职员的月工资大于等于 1000元且小于
2、等于 8000元。(3) 数据库的部分关系模式设计如下。职员(职员号,职员姓名,月工资,部门号,办公室,电话)部门(部门号,部门名,负责人代码,任职时间)(4) “职员”和“部门”的关系示例分别如表 3-27和表 3-28所示。(分数:15.00)_三、试题 3(总题数:1,分数:15.00)说明甲公司的经营销售业务目前是手工处理的,随着业务量的增长,准备采用关系数据库对销售信息进行管理。经销业务的手工处理主要涉及以下 3种表格:订单、客户表和产品表,如图 3-2所示。为了用计算机管理销售信息,甲公司提出应达到以下要求:产品的单价发生变化时,应及时修改产品表中的单价数据;客户购货计价采用订货时
3、的单价;订货后,即使单价发生变化,计算用的单价也不变。在设计数据库时,经销部的王先生建立了如图 3-3所示的数据模型。(分数:15.00)_四、试题 4(总题数:1,分数:15.00)说明某运动会管理系统的数据库部分关系模式如下所示。运动员(运动员编号,姓名,性别,年龄,队名)项目(项目编号,项目名,比赛时间,比赛场地)参赛(项目编号,运动员编号,成绩,积分)1. 以下是创建运动员关系的 SQL语句,运动员编号唯一识别每名运动员,且不能为空。请将空缺部分补充完整。CREATE TABLE 运动员(运动员编号 CHAR(6) (a) ,姓名 VARCHAR(40), 性别 CHAR(2),年龄
4、number(2),队名 CHAR(20),(b) );(分数:15.00)_五、试题 5(总题数:1,分数:15.00)说明某学校教务管理系统的数据库部分关系模式如下所示。学生(学号,姓名,性别,年龄,学院名,专业)课程(课程号,课程名称,学时,学分)选修(课程号,学号,成绩)1. 以下是创建选修关系的 SQL语句。课程号唯一标识每一门课程,且不能为空;学号唯一识别每一名学生,且不能为空。请将空缺部分补充完整。CREATE TABLE 选修( 学号 CHAR(8) NOT NULL,课程号 CHAR(6) NOT NULL,成绩 REAL, (a) , (b) , (c) ;(分数:15.0
5、0)_数据库系统工程师-SQL 操作与应用答案解析(总分:75.00,做题时间:90 分钟)一、试题 1(总题数:1,分数:15.00)说明某网上订书系统的 E-R图(已消除了不必要的冗余)如图 3-1所示(图中没有标出主码)。图中实体的说明如表 3-25所示,相关属性说明如表 3-26所示。(分数:15.00)_正确答案:(Customers(cid,cname,adderss,cardnum),主键:cidOrders(ordernum,orderdate,cid),主键:ordemum,外键:cidBooks(bid,title,author,qty_in_stock,year_publ
6、icshed,price),主键:bidOrderlist(bid,oNemum,qty,ship_date),其中 bid和 ordemum是主键,也是键码注:以上 4个关系模式和每个模式中的属性可按任意次序书写)解析:_正确答案:(1)PRIMARYKEY(cid)(2) UNIQUE(cardnum) (注:(1)和(2)的次序可互换)解析:_正确答案:(3)not in (4) C(5) C.ordemum)解析:二、试题 2(总题数:1,分数:15.00)说明某公司信息管理系统的需求分析和部分关系模式设计的结果描述如下。(1) 公司有多个部门,每个部门有一名负责人、一间办公室、一部电
7、话和多名职员,每个职员最多属于一个部门,负责人也是一名公司职员。(2) 公司职员的月工资大于等于 1000元且小于等于 8000元。(3) 数据库的部分关系模式设计如下。职员(职员号,职员姓名,月工资,部门号,办公室,电话)部门(部门号,部门名,负责人代码,任职时间)(4) “职员”和“部门”的关系示例分别如表 3-27和表 3-28所示。(分数:15.00)_正确答案:(1)主键:职员号 外键:部门号(2)主键:部门号,或部门名 外键:负责人代码)解析:_正确答案:(a) PRIMARYKEY(b) FOREIGN KEY(部门号),REFERENCES 部门(c) Count(*),Sum
8、(月工资).Avg(月工资)(d) GROUP by 部门号 HAVING count(*)解析:_正确答案:(1)该行不能插入“职员”关系,它违反了用户定义完整性中月工资的取值范围必须大于等于1000元,小于等于 8000元(2) 该行不能插入“职员”关系,因为职员号“60802”在表 3-27中已存在,违反了实体完整性中主键必须唯一区分关系中的每一个属性(3) 该行可以插入“职员”关系,尽管部门号、电话和办公室为空,但是它表示该职员没有分配到某个部门)解析:_正确答案:(“职员”关系模式主要的问题如下数据冗余问题。因为某部门的职员人数有多少,其办公室和电话将要重复存入多少数据修改不一致问题
9、。因为某部门的办公室变了可能会导致某些职员的修改了,某些职员的未修改将关系模式修改为:职员(职员号,职员姓名,月工资,部门号)部门(部门号,部门名,负责人代码,任职时间,办公室,电话)解析:三、试题 3(总题数:1,分数:15.00)说明甲公司的经营销售业务目前是手工处理的,随着业务量的增长,准备采用关系数据库对销售信息进行管理。经销业务的手工处理主要涉及以下 3种表格:订单、客户表和产品表,如图 3-2所示。为了用计算机管理销售信息,甲公司提出应达到以下要求:产品的单价发生变化时,应及时修改产品表中的单价数据;客户购货计价采用订货时的单价;订货后,即使单价发生变化,计算用的单价也不变。在设计
10、数据库时,经销部的王先生建立了如图 3-3所示的数据模型。(分数:15.00)_正确答案:(如图 3-4所示)解析:_正确答案:(1)由于数据库中没有记录订货时产品的单价,也没有记录订货的总金额,因此一旦产品单价发生变化,那么计算用的单价就是变化后的单价了(2) 在 OrderDetail中增加一个数据项:订货时的单价(或者在 Order中增加一个数据项:总金额)解析:_正确答案:(OrderNo,ProductNo)解析:_正确答案:(1)A 或 ASA(2) NOT EXIST)解析:四、试题 4(总题数:1,分数:15.00)说明某运动会管理系统的数据库部分关系模式如下所示。运动员(运动
11、员编号,姓名,性别,年龄,队名)项目(项目编号,项目名,比赛时间,比赛场地)参赛(项目编号,运动员编号,成绩,积分)1. 以下是创建运动员关系的 SQL语句,运动员编号唯一识别每名运动员,且不能为空。请将空缺部分补充完整。CREATE TABLE 运动员(运动员编号 CHAR(6) (a) ,姓名 VARCHAR(40), 性别 CHAR(2),年龄 number(2),队名 CHAR(20),(b) );(分数:15.00)_正确答案:(a) NOTNULL(b) PRIMARY KEY 运动员编号或其他等价形式)解析:_正确答案:(1)(c) COUNT(*)(2) (d) 参赛,项目(e
12、) 参赛.项目编号=项目.项目编号(f)参赛.运动员编号=100576 注:(e)和(f)的答案位置可互换(3) (g) 运动员(h) EXISTS 或 运动员编号 IN(i) * 或 运动员编号 或 项目编号 或 成绩 或以上 3个列名的任意组合:若(h)填入“运动员编号 IN”,则(i)应填入“运动员编号”(j) 参赛.运动员编号=运动员.运动员编号(4) (k) SUM(积分)(l) 参赛(m) GROUP BY 运动员编号)解析:_正确答案:(n) CREATE VIEW(o) 运动员、项目、参赛 (注:3 项位置可交换)解析:五、试题 5(总题数:1,分数:15.00)说明某学校教务
13、管理系统的数据库部分关系模式如下所示。学生(学号,姓名,性别,年龄,学院名,专业)课程(课程号,课程名称,学时,学分)选修(课程号,学号,成绩)1. 以下是创建选修关系的 SQL语句。课程号唯一标识每一门课程,且不能为空;学号唯一识别每一名学生,且不能为空。请将空缺部分补充完整。CREATE TABLE 选修( 学号 CHAR(8) NOT NULL,课程号 CHAR(6) NOT NULL,成绩 REAL, (a) , (b) , (c) ;(分数:15.00)_正确答案:(a) PRIMARY KEY(学号,课程号)(b) FOREIGN KEY(学号)REFERENCES 学生(学号)(
14、c) FOREIGN KEY(课程号)REFERENCES 课程(课程号) 注:(a)(c)答案位置可互换)解析:_正确答案:(d) NOTEXISTS(e) NOT EXISTS(f) 学生.学号=选修,学号 AND 选修.课程号=课程.课程号(2) (g) COUNT(*)(3) (h) 学号,COUNT(课程号),SUM(成绩),AVG(成绩)(i) 选修(j)GROUP BY 学号)解析:_正确答案:(k) AS(l) 学生,选修,课程,教师(m) 学生.学号=选修.学号(n) 课程.课程号=教师.课程号或选修.课程号=教师.课程号,注:(m)和(n)的答案位置可互换(o) WITH CHECK OPTION)解析: