当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2019上半年数据库系统工程师模拟题1 下午之二

2019上半年数据库系统工程师模拟题1 下午之二

作者:wx611cbc2c011022023-11-11 01:00:15
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【数据库系统工程师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2019上半年数据库系统工程师模拟题1 下午】部分试题的详解,一起来看看吧~1、阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。[说

引号
摘要:对于【数据库系统工程师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2019上半年数据库系统工程师模拟题1 下午】部分试题的详解,一起来看看吧~



1、阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。[说明]某工厂的信息管理数据库的部分关系模式如下所示:职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)关系模式的主要属性、含义及约束如表2-1所示,“职工”和“部门”的关系示例分别如表2-2和表2-3所示。表2-1 主要属性、含义及约束表2-2 “职工”关系表2-2 “部门”关系【问题1】  根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容。(6分)  Create Table 部门(部门号 CHAR(1) __(a)__,            部门名   CHAR(16),            负责人代码 CHAR(4),            任职时间 DATE, __(b)__(职工号));  Create Table 职工(职工号 CHAR(4),            姓名 CHAR(8),            年龄 NUMBER(3),            月工资 NUMBER(4),            部门号 CHAR(1),            电话 CHAR(8),            办公室 CHAR(8),            __(a)__(职工号),            __(c)__(部门号),             CHECKL(__(d)__));  Create View D_S(D,C,Totals,Averages)As,           (Select 部门号,__(e)__            from 职工            __(f)__  【问题2】  对于表2-2、表2-3所示的“职工”和“部门”关系,请指出下列各行是否可以插入,为什么?(3分)  【问题3】  在问题l定义的视图D_S上,下面那个查询或更新是允许执行的,为什么? (3分)  (1)Update D_S set=3 where D=4;  (2)Delete from D_S where C>4;  (3)Select D,Averages fromD_S where C>(Select C from D_S where D=:dept);  (4)Select D,C From D_S where Totals>10000;  (5)Select * from D_S;  【问题4】  查询每个部门中月工资最高的“职工号”的SQl查询语句如下:  Select 职工号 from 职工E  where 月工资=(Select Max(月工资)   from职工as M   where M.部门号=E.部门号)  (1)请用30字以内文字简要说明该查询语句对查询效率的影响。(3分)  (2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。(3分)  【问题5】  假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。(2分)  Select 姓名,年龄,月工资 from 职工  where 年龄>45 or 月工资<1000; 
答案:

[问题1]
 (a)NOT NULL UNIQUE
 (b)CHECK(VALUE IN('男','女'))
 (c)FOREIGN KEY(客户号) REFERENCES 客户(客户号)
[问题2]
 (d)查询一次订购(或购买)产品号为02的数量大于10的客户号
 (e)π客户号(订单?σ产品号='02'^数量>10(订单明细))
 (f)可以优化。优化的SQL语句为:
 SELECT客户号
 FROM订单
 WHERE订单号IN
 (SELECT 订单号
  FROM 订单明细
  WHERE 产品号 = '02 ' AND数量>10)
[问题3]
 (g)SUM(金额)AS总额
 (h)GROUP BY 客户.客户号
 (i)ORDER BY 总额 DESC
[问题4]
 (1)CREATE VIEW 客户产品 AS(
    SELECT 客户号,产品号
    FROM 订单,订单明细
    WHERE 订单明细.订单号=订单.订单号)
 (2)(j)NOT EXISTS 
    (k)客户号='01' AND NOT EXISTS
    (l)客户产品1.客户号=客户产品3.客户号AND客户产品2.产品号=客户产品3.产品号
[问题5]
  采用数据库管理系统的触发器机制。对产品关系定义一个触发器,在订单明细中的记录插入或更新之后,该触发器被激活,根据订单明细中订购的产品及数量,减少产品关系中对应产品的库存量。



答题解析:

[问题1]
 (a)NOT NULL UNIQUE
 (b)CHECK(VALUE IN('男','女'))
 (c)FOREIGN KEY(客户号) REFERENCES 客户(客户号)
[问题2]
 (d)查询一次订购(或购买)产品号为02的数量大于10的客户号
 (e)π客户号(订单?σ产品号='02'^数量>10(订单明细))
 (f)可以优化。优化的SQL语句为:
 SELECT客户号
 FROM订单
 WHERE订单号IN
 (SELECT 订单号
  FROM 订单明细
  WHERE 产品号 = '02 ' AND数量>10)
[问题3]
 (g)SUM(金额)AS总额
 (h)GROUP BY 客户.客户号
 (i)ORDER BY 总额 DESC
[问题4]
 (1)CREATE VIEW 客户产品 AS(
    SELECT 客户号,产品号
    FROM 订单,订单明细
    WHERE 订单明细.订单号=订单.订单号)
 (2)(j)NOT EXISTS
    (k)客户号='01' AND NOT EXISTS
    (l)客户产品1.客户号=客户产品3.客户号AND客户产品2.产品号=客户产品3.产品号
[问题5]
  采用数据库管理系统的触发器机制。对产品关系定义一个触发器,在订单明细中的记录插入或更新之后,该触发器被激活,根据订单明细中订购的产品及数量,减少产品关系中对应产品的库存量。




查看完整试题>>>


免费刷题报考资讯 机考模拟 学习群