2015计算机三级《数据库技术》练习题和答案
A.在一个数据库中可以定义多个内模式,可利用不同的内模式来描述特定用户对数据的物理存储需求
B.外模式是用户与数据库系统的接口,用户可通过外模式来访问数据,在一个数据库中只能定义一个外模式
C.三级模式结构提供了数据独立性,即当数据的逻辑结构和存储结构发生变化时,应用程序不受影响
D.数据独立性使得数据的定义和描述与应用程序相分离,简化了数据库应用程序的开发,但增加了用户维护数据的代价
参考答案:C
参考解析:A选项中内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,一个数据库只有一个内模式。B选项中外模式可以有多个,其是应用程序或用户与数据库通信的接口,不同的用户访问同一个数据库对应多个外模式。D选项中数据与程序之间的独立性,使数据定义与描述分离,所有数据的存取由DBMS管理,用户不必考虑存取细节,所以减少了应用程序的维护。
3[单选题] 在数据库应用系统生命周期中,系统设计完成后就进入到系统实现与部署阶段。下列关于数据库应用系统实现与部署阶段工作的说法,错误的是( )。
A.此阶段会根据数据库逻辑结构和物理结构设计方案以及项目选择的数据库管理系统,编写相关脚本生成数据库结构
B.此阶段会将用户原有数据按照新的数据结构导人到新系统中
C.此阶段会进行应用系统编码和编码测试,编码测试可以使用白盒测试方法也可以使用黑盒测试方法
D.此阶段如果发现系统的功能、性能不满足用户需求,应尽快进行系统升级工作
参考答案:D
参考解析:系统的实现阶段主要是系统编码和测试,针对系统的功能和性能不足对系统进行升级是运行维护阶段的工作。
4[单选题] 关于并行数据库,下列说法错误的是( )。
A.层次结构可以分为两层,顶层是无共享结构,底层是共享内存或共享磁盘结构
B.无共享结构通过最小化共享资源来降低资源竞争,因此具有很高的可扩展性,适合于OLTP应用
C.并行数据库系统经常通过负载均衡的方法来提高数据库系统的业务吞吐率
D.并行数据库系统的主要目的是实现场地自治和数据全局透明共享
参考答案:D
参考解析:并行数据库系统的主要目的是通过高速通信介质连接多个可独立处理的单元以并行执行的方式完成对数据库系统的互联查询、内部查询及各种内部操作。分布式数据库系统的主要目的才是实现场地自治和数据全局透明共享。
5[单选题]设在SQLServer 2008某数据库中建有如下会员卡表:
CREATE TABLE Table_Card(
CardID char(4)PRJMARY KEY,
StartDate datetime NOT NULL,
Score int NOT NULL DEFAULT 0,
State int NOT NULL CHECK(State in(0,1,2))
)
现表中无数据,某用户对此表依次进行了如下操作:
Ⅰ.INSERT INTO Table_Card
VALUES(ˊ1001ˊ,ˊ2012-1-1 12:30:01ˊ,154,0)
Ⅱ.INSERT INTOTable_Card(CardID,StartDate,State)
VALUES(ˊ1002ˊ, ˊ2012-1-1 12:30:02ˊ,1)
Ⅲ.INSERTINTO Table_Card
VALUES(ˊ1003 ˊ,ˊ2012-1-1 12:30:03ˊ,172,2)
IV.INSERT INTO Table_Card
VALUES(ˊ1004 ˊ,ˊ2012-1-1 12:30:04ˊ,135,3)
Ⅴ.UPDATE Table Card SETState=3 WHERE CardID=ˊ1001ˊ
Ⅵ.UPDATE Table Card SETState=1 WHERE CardID=ˊ1004ˊ
以上操作对Table_Card表数据产生影响的是( )。
A.仅Ⅰ、Ⅱ和ⅢB.仅Ⅰ、Ⅴ和ⅥC.仅Ⅰ、Ⅱ、Ⅲ和ⅥD.仅Ⅲ、Ⅳ、Ⅴ和Ⅵ
参考答案:A
参考解析:Ⅳ中插人字段的第四个字段“3”不满足“CHECK(State in(0,1,2))”的条件,因此插入不成功。V中更新第四个字段“State=3”同样不满足“CHECK(State in(0,1,2))”的条件,更新失败。Ⅵ中
因为没有“CardlD=ˊ1004ˊ”的记录,所以更新失败。
6[单选题] 数据库镜像有很多优点,但不包括( )。
A.数据库镜像提供完整或接近完整的数据冗余,增强数据保护功能
B.发生灾难时,数据库镜像可快速使数据库的备用副本提供服务
C.数据库镜像可以降低应用成本
D.提高生产数据库在升级期间的可用性
参考答案:C
参考解析:数据库镜像是一种简单的策,具有下列优点:①增强数据保护功能。数据库镜像提供完整或接近完整的数据冗余,具体取决于运行模式是高安全性模式还是高性能模式;②提高数据库的可用性。发生灾难时,在具有自动故障转移功能的高安全性模式下,自动故障转移可快速使数据库的备用副本在线(而不会丢失数据)。在其他运行模式下,数据库管理员可以选择强制服务(可能丢失数据),以替代数据库的备用副本;③提高生产数据库在升级期间的可用性。因为数据库镜像技术需要额外存放数据的空间,所以会增加应用成本。
7[填空题] 设在SQL Server 2008某数据库中有按如下格式定义的存储过程首部:
CREATE PROC Pl@X int,@Y int,@Z int output AS…
请补全下列调用该存储过程的语句。
DECLARE@S int
EXEC Pl 20,30,@S【7】
参考解析:
output
【解析】存储过程是SQL语句和可选控制流语句的预编译集合,它用一个名字存储一个处理单元。创建存储过程为:
CREATE Procedure过程名([参数1,参数2,…])
AS;
默认的参数全为输入参数,如果包含输出参数,在相应的参数后面加0utput标识。如:
CREATE Procedure过程名([参数1,参数2 0utput,…])
AS;
执行存储过程时则调用EXEC存储过程名参数名1,参数名2 0utput,执行存储过程的参数与CREATE时的参数对应。
8[填空题] 设某数据库中作者表(作者号、城市)和出版商表(出版商号,城市)。请补全如下查询语句,使该查询语句能查询出在作者表里而不在出版商表中的城市。
SELECT城市FROM作者表作者
【9】
(SELECT城市FROM出版商表)
参考解析:
WHERE作者.城市NOT IN要查询有作者但是没有出版社的结果集,可以采用子查询手段,即从作者表中查询城市,且城市不在出版社所在的城市。这时我们可以用NOT IN来实现,NOT IN的结果集是在外查询中存在,但是在内查询中不存在的记录。
9[填空题] 数据库系统出现故障是不可避免的。当数据库系统出现事务故障和系统故障时需使用数据库的【12】文件进行恢复。
参考解析:日志
【解析】数据库出现事务故障和系统故障时,需要使用数据库的日志文件进行恢复。
10[简答题] 设在SQL Server 2008某数据库中有商品表和销售表,两个表的定义如下:
CREATE TABLE商品表(
商品号char(10)PRIMARY KEY,
商品名varchar(40),
类别varchar(20),
进货单价int)
CREATE TABLE销售表(
商品号char(10),
销售时间datetime,
销售数量int,
销售单价int,
PRIMARY KEY(商品号,销售时问))
下面是一个用户定义的多语句表值函数,它接受类别作为输入参数,返回该类别下的每种商品在2012年的销售总利润,并将结果按照销售总利润的降序输出。请补全该函数定义代码。(10分)
CREATE FUNCTION f_Profit(@lb char(10))【1】@ProfitTable【2】(商品号char(10),总利润int)
AS
BEGIN
INSERT INTO@ProfitTable
【3】
【4】
END
参考解析:
【解题思路】
用户定义的多语句表值函数的命令格式为:
CREATE FUNCTION[schema_name.]function name
([{@parameter_name[AS][type_schema_name.]parameter_data_type
[=default]}
[….n]
]
)
RETURNS@return_variable TABLE
[WITH[[,]…n]]
[AS]
BEGIN
function_body
RETURN
END
[;]
::=
({
J}
[][,…n]
)
题目要求返回指定类别下的每种商品在2012年的销售总利润,并且将结果按照销售总利润的降序输出。采用复合SQL语句的格式,先查出指定类别的所有商品号:SELECT商品号FROM商品表WHERE类别=@lb,其中@lb为函数的传人参数,然后在销售表中用GROUP BY对商品号进行分组,并采用SUM计算每个分组的总和。
【参考答案】
第一空:RETURNS
第一空:table
第三空:SELECT a.商品号,SUM(销售数量*(销售单价一进货单价))AS总利润FROM销售表a JOIN商品表b ON a.商品号=b.商品号WHERE a.商品号IN(SELECT商品号FROM商品表WHERE类别=@lb)GROUP BY a.商品号0RDER BY总利润DESC
第四空:RETURN@ProfitTable