数据库三级填空题(应用题)常考总结

1.数据仓库共有四个特性,分别是面向主题、集成的、非易失和随时间变化。
答疑:【答案】集成
【解析】数据仓库是一个面向主题的、集成的、非易失的,且随时间变化的数据集合,用来支持管理人员的决策。这个概念指出了数据仓库的几个重要的特性,即面向主题性、集成性、不可更新性和时间特性。

2.分布式数据库最基本的三个特征是:非集中式管理、高可用性、本地自治。
答疑:【答案】可用性
【解析】本地自治、非集中式管理以及高可用性是分布式数据库最基本的特征。

3.从功能角度数据库应用系统可以划分为表示层、业务逻辑层、数据访问层、数据持久层四个层次,其中负责向表示层直接传送数据的是业务逻辑层。
答疑:【答案】业务逻辑
【解析】表示层负责所有与用户交互的功能。业务逻辑层负责根据业务逻辑需要将表示层获取的数据进行组织后,传递给数据访问层,或将数据访问层获取的数据进行相应的加工处理后,传递给表示层用于展示,数据访问层负责与DBS系统进行交互,提取或存入应用系统所需的数据﹔数据持久层负责保存和管理应用系统数据。

4.在UML中,通信图主要用于描述对象在空间中如何交互,即除了动态交互,它也直接描述了对象是如何链接在一起的。在图中没有时间轴,而是将消息按序编号。
答疑:【答案】通信
【解析】通信图也称协作图,显示了在交互过程中各个对象之间的组织交互关系以及对象彼此之间的链接。通信图显示的是对象之间的关系,并不俱重交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。

5.在SQL Server 2008中,设要在T表上创建一个针对插入和更新操作的后触发型触发器。请补全下列语句:CREATE TRIGGER tri_T ON T AFTER INSERT,UPDATE AS ...
答疑:【答案】AFTER
【解析】使用AFTER或FOR选项定义的触发器为后触发的触发器,使用INSTEAD OF选项定义的触发器为前触发型触发器

6.在T-SQL中,提取cur1游标中倒数第5行数据的语句是FETCH ABSOLUTE -5
FROM cur1 ...
答疑:【答案】-5
【解析】游标中ABSOLUTE{  n l @nvar}参数意义为。如果n 或@car为正,返回从游标第一行开始的第n行,并将返回行变成新的当前行。如果n或rrare为负,则返回从游标最后一行开始之前的第n行,并将返回行变成新的当前行。如果n或@nver 为O,则不返回行。n必须是整数常量,并且(anrar的数据类型必须为 smallint、tinyint 或 int.

7.在SQLServer 2008中,通过对视图创建唯一聚集索引的方式可将视图的结果集保存到数据库中,这种视图被称为索引视图。
答疑:【答案】索引
【解析】在SQL Server 208中,对视图创建唯一聚集索引后,视图的结果集将存储在数据库中,就像带有聚集索引的表一样。建有唯一聚集索引的视图被称为索引视图,也称为物化视图。

8.在SQL Server 2008中,具有查询全部用户表数据权限的数据库角色是 db_datareader。
答疑:【答案】db_datareader
【解析】SQL Server固定数据库角色有:
db_owner :具有在数据库中进行全部操作的权限,包括配置、维护数据库及删除数据库。db_accessadmin:具有添加或删除数据库用户的权限。
db_securityadmin :具有管理数据库角色、角色成员以及数据库中的语句和对象的权限。db_dd1 admin:具有执行数据定义语言(DDL)的权限。
db_backupoperator:具有备份数据库、备份日志的权限。db_datareader:具有查询数据库中所有用户数据的权限。
db_datawriter:具有插入、删除和更新数据库中所有用户数据的权限。
db_dernydatareader:不允许具有查询数据库中所有用户数据的权限,等同于对所有的表和视图授予了DENY SELECT权限。
db_denydatawriter :不允许具有INSERT、DELETE和UPDATE数据库中所有用户数据的权限。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbG9uemd6aG91emhvdQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 9.设SQLServer 2008中有students数据库,在简单恢复模式下已经对其进行了完整数据库备份,且备份到了MyBK_1设备上
设此设备上仅有此次备份数据。请补全恢复此数据库的SQL语句:
restore DATABASE students FROM MyBK_1
答疑;【答案】RESTORE
【解析】在T-SQL中恢复数据库使用RESTORE DATABASE语句,恢复事务日志使用RESTORE LOG语句。

10.在分布式数据库的数据分配中,若全局数据存在多个副本,在每个物理场地中都保存一个完整的数据副本,本策略属于 全复制式
答疑:【答案】全复制
【解析】分布式数据库的数据分配有:
集中式:所有数据片段都安排在一个场地上。
分割式:所有全局数据有且只有一份,它们被分割成若干片段,每个片段被分配在一个特定场地上。
全复制式:全局数据有多个副本,每个场地上都有一个完整的数据副本。
混合式:全局数据被分为若干个数据子集,每个子集被安排在一个或者多个不同的场地上,但是每个场地未必保存所有数据。

11.在进行数据库优化时,如果采用分割表技术进行数据库模式调整,则进行 垂直分割之后得到的所有表中除了都含有主码外其余列都不相同。
答疑:【答案】垂直
【解析】表分割有水平分割和垂直分割两种方式。水平分割是根据数据行的使用特点进行分割,分割之后所得的所有表的结构都相同,而存储的数据不同。垂直分割是根据焱据列的特点进行分割,分割之后所得的所有表中除了都含有主码列外其余列都不相同。

12.设有商品表(商品号,商品名)和销售表(商品号,销售时间,销售数量),现要查询有多少种商品没有被卖出过。请补全下列语句SELECT COUNT(*) FROM商品表LEFTJOIN销售表
ON商品表.商品号=销售表.商品号
WHERE销售表.商品号 is null
答疑:【答案】IS NULL
【解析】在进行表间连接查询时,如果把舍弃的元组也保存在结果中,而在其属性上填空值(NnL),那么这种洼接就叫做外连接(oTE3 1on0)。如果只把左边关系t中要舍弃的元保留就叫做左连接(LT our2ae JonNElpEoT JoOn9),如果只把右边关系a中要舍弃的元组保留就叫做右连接(REGAT ouTEx. jo1nlelicoiT Jon)。本题中, L.PT_JoI表明使用的是左连接,因此没被卖出的商品的商品号应该为NULL,故where语句的条件是应该填写IS NULL。

13.设有如下定义游标的T-SQL语句:
DECLARE cur1 CURSOR FOR SELECT *FROM ...请补全下列从游标提取下一行数据的语句
 fetch next FROM cur1 INTO ...
答疑:【答案】FETCH NEXT
【解析】FETCH的功能是通过Transact-SQL服务器游标检索特定行,具体语法:FETCH[[NEXT |PRIOR|FIRST |LAST |ABSOLUTE {@nvar } │ RELATIVE { n / @nvar ]]
FROM] { {[GLOBAL]cursor_name} |@cursor_variab1e_name}
[INTO@variab1e_name [ ,...n ]]
参数说明:
NEXT。返回紧跟在当前行之后的数据行,并且当前行递增为结果行。如果FETOH NEXT为对游标的第一次提聊操作,则返回结果集中的第一行。NEXD为默认选项。
PRIOR。返回紧临当前行前面的数据行,并且当前行递减为结果行。如果FETOXFRIOR为对游标的第一次提取操作,则不返回任何结果并将游标当前行放置于第一行之前。FIRST:返回游标中的第一行并将其作为当前行。
LAST:返回游标中的最后一行并将其作为当前行。
ABSOLUTB 〔 n / @ncar}。如果n 或@acar为正,返回从游标第一行开始的第n行,并将返回行变成新的当前行。如果nα或 (rcar为负,则返回从游标最后一行开始之前的第n行,并将返回行变成新的当前行。如果n 或@nvar为0,则不返回任何结果。n必须是整型常量,并且@nva
的数据类型必须为sma1lint、 tinyint或int。
EBLA11E (n / kawvar):如果n或 .rrar为正,则返回当前行之后的第n行,并将近回行变成新的当前行。如果n或@anar为负,则返回前行之前的第n行,并将返回行变成新的当前行。如果n 或@awar为 O0,则返回当前行。如果对游标的第一次提取时在将ETCHFRELATVB的 n或@nvar设置为负数或О,则不返回任何结果。n必须是整型常量,
@nvar的数据类型必须为 sma1lint、 tinyint或int。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbG9uemd6aG91emhvdQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 14.设要在t1表的c1列上建立一个聚集索引。请补全下列语句
CREATE  clustered INDEX ON t1(c1)
答疑:【答案】CLUSTERED
【解析】建立索引的语法:CREATE [unique][ nonclustered|clustered] indesx索引名ON表名(要求建立索引的列名)。其中,unique关键宇表明该索引是唯一索引,nonclustered关键字表明该索引是非聚集索引,CLUSTERED关键字表明该索引是聚集索引。

15.设用户U1是某数据库中db_datareader角色中的成员,则对该数据库进行的SELECT、INSERT、DELETE和UPDATE操作中
U1有权执行的操作是 select
答疑:【答案】SELECT
【解析】db_datareader角色只具有查询数据库中所有数据的权限,因此U1用户只有权使用查询语句SELECT。

 

 

 

100套三级数据库上机试题,含有详细的析方法和思路讲解!例如:1.调用函数rwdata(),从IN.dat文件中读取10组数据(m和k值),并嵌套调用primenum函数别得出array[]数组。请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array并在屏幕上显示。最后把结果输出到文件OUT.dat中。 例如,若输入3 9,则应输出5 7 11 13 17 19 23 29 31。 注意:部程序已经给出。请勿改动主函数main()和输出数据函数rwdata()的内容。 #include <conio.h> #include <stdio.h> void rwdata(); void primenum(int m, int k, int array[]) { } main() { int m, n, array[1000]; printf("\nPlease enter two integers:"); scanf("%d%d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) printf("%d ", array[m]); printf("\n"); rwdata(); } void rwdata() { int m, n, array[1000], i; FILE *readfile, *writefile; readfile = fopen("in.dat", "r"); writefile = fopen("out.dat", "w"); for (i=0; i<10; i++) { fscanf(readfile, "%d %d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) fprintf(writefile, "%d ", array[m]); fprintf(writefile, "\n"); } fclose(readfile); fclose(writefile); } 【知识点播】素数的定义:如果一个数的正因子只有1和这个数本身,那么这个数就是素数。 【题目析】析题目可知,题中需要解决的问题就是Primenum函数的功能问题(rwdata函数功能题中已经给出),而Primenum函数的功能是求在指定数m之后的k个素数,因此本题的关键在于如何判断一个数是素数,之后就可以通过一个for循环来求得在m之后的k个素数了。 【解题思路】根据素数的定义,本题采用的算法是:首先定义一个变量Value,并把m之后的数逐个赋值给该变量;然后用2~value/2数除value,如果value能被2~value/2之中的任何一个整数整除,则value不是素数,结束循环;如果value不能被2~value/2之间的任一整数整除,则退出循环,然后判断循环变量i是否大于value/2,如果大于,则value是素数,并将value值赋给array[n],然后n++;再判断n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退出循环,否则value加1,根据以上算法继续进行。 【答案】 void primenum(int m, int k, int array[]) { int value = m+1; int half, n = 0, i; while(1) { half = value/2; for (i=2; i<=half; i++) if (value%i == 0) break; if (i > half) { array[n] = value; n++; } if (n >= k) break; value++; } } 【容错析】判断一个数m(大于1)是否素数的简单的算法:枚举2到m/2之间的整数,看能否被m整除,如果能整除,就不是素数,否则是素数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lonzgzhouzhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值