网络数据库试题一、选择题:本大题共13小题;每小题2分,共26分。
在每小题给出的四个选择中,只有一项是符合题目要求的,把所选择项前的字母填在下表中对应的题号下。
1.( B)是位于用户和操作系统之间的一层数据管理软件。
数据库在建立、使用和维护时由其统一管理、统一控制。
A. DB B.DBMS C.DBS D.DBA2. SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示( D )A、零个字符B、1个字符C、多个字符D、以上都可以3.下列哪一个数据库不是SQL Server 2000的系统数据库( C )A.master数据库 B.msdb数据库C.pubs数据库 D.model数据库4.下列四项中,可以直接用于表示概念模型的是( D )。
A. 网状模型B.关系模型C.层次模型D.实体-联系(E-R)模型5.下列四项中说法不正确的是( A )A. 数据库避免了一切数据的重复B.数据库中的数据可以共享C. 数据库减少了数据冗余D.数据库具有较高的数据独立性6.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是(c )A.多对多B.一对一C.多对一D.一对多7.关系数据库中空值(NULL)相当于( d )A. 零(0)B. 空白C. 零长度的字符串D. 没有输入8.事务有多个性质,其中不包括( B )A.隔离性B. 不可撤消C.原子性D. 一致性9.一个电视经销商在表Tvtype 中维护库存的Tvs信息,下述哪条语句能显示价格最昂贵的三种电视机的信息?( C )A. select top3 cDiscription from Tvtype order by iprice ascB. select cDiscription from Tvtype where max(iprice)>3C. select top3 cDiscription from Tvtype order by iprice descD. select cDiscription max(iprice) from Tvtype order by iprice10.假如采用关系数据库系统来实现应用,在数据库设计的( d )阶段,需要将E-R 模型转换为关系数据模型。
A.概念设计B.物理设计C. 运行阶段D. 逻辑设计11.取出关系中的某些列,并消去重复的元组的关系运算称为( b )A.取列运算B. 投影运算C.连接运算D. 选择运算12.一家航空公司把一年中飞行距离(idistancetravelled)超过10000里的客户信息转移到一张称为flyersclub 的表中,他们的详细情况被记录在表flyers ( d )A. insert into flyersclub from flyers where idistancetravelled>=10000B. insert flyersclub (idistancetravelled) values from flyers where idistancetravelled>=10000into flyersclub from flyers where (idistancetravelled)values>=10000D. select * into flyersclub from flyers where idistancetravelled >=1000013. 系统死锁属于( A )A.事务故障B.程序故障C.系统故障D.介质故障二.填空题:本大题共9小题,14个填空;每空1分,共14分。
答案请写在试题中的横线上。
1.数据库系统中常用的三种数据模型有层次模型、_概念模型_________和____ ______。
2.SQL语言由数据定义语言、和组成。
3.使用命令可以增加数据库和事务日志的容量。
4.关系模式的三类完整性约束条件分别是___实体完整性约束_______、参照完整性约束和__自定义约束________。
5.如果一个关系不满足2NF,则该关系一定也不满足__________(在1NF、2NF、3NF 范围内)。
6.关键字是能唯一标识每一行的列或列的组合。
一个表可能有多个关键字,选定其中一个作为主关键字,其余的称为。
7. 索引有两种类型:和。
8.当在一个已经存放了数据的表上增加主键时,SQL Server会自动对表中的数据进行检查,以确保这些数据能够满足主键约束的要求。
问:主键约束满足唯一和两个要求。
9. 将视图v_Course重命名为v_newCourse的SQL语句是:。
三.操作题:本大题共13小题;各小题分值不等,共60分,请按要求上机操作。
销售数据库Sales中存在这样的三张表:1.客户表(Customer)按要求完成下列题目:(1)建立销售数据库Sales的以上三个表。
(3分)(2)实现各表的实体完整性要求。
(3分)(3)在Customer上基于CusName列创建非惟一索引;在Product上基于ProName 列创建惟一索引;在ProOut上基于SaleDate列创建聚集的、惟一索引。
(3分)(4)在ProOut表上设置外键,保证录入时的产品代码都在产品表中存在的。
(3分)(5)创建一规则限定只能录入大于0的值,然后将其绑定到ProOut表上Quantity列。
(3分)(6)查询销售数量超过100的产品号。
(3分)(7)创建一自定义函数sumMoney,要求能够利用该函数计算出销售金额,并进行测试,利用该函数计算出每种产品(ProNo)的销售金额。
(5分)(8)查询购买了产品号“P0002”的客户编号、客户名和电话,查询结果按客户名降序排列。
(5分)(9)在查询的基础上创建一张新表Cus,要求显示客户“C004”在2008年购买的产品号、数量。
(6分)(10)创建视图viewPro,要求显示每种产品的销售量和销售金额(6分)(11)创建存储过程p_Pro, 要求能够根据指定的客户编号,统计该客户购买每种产品的产品号、数量。
(8分)(12)创建一个触发器t_Stocks,要求当插入、更新、删除销售表(ProOut)的销售记录时,根据销售数量(Quantity)的变化,能更新产品表(Product)中相应的库存数量(Stocks) (8分)(13)备份该数据库Stu_info。
(4分)create table customer( cusno char(10) primary key,cusname char(20),address char(20) ,tel char(20))create table product( prono char(10) primary key,proname char(20),price char(20) ,stocks int)create table proout( saledate datetime ,cusno char(10),prono char(10) ,quantity int,foreign key (cusno) references customer (cusno),foreign key (prono) references product (prono),)《网络数据库》试卷参考答案一.选择题二.填空题三.操作题1.(1) 建立数据库Sales的三个表客户表(Customer)、产品表(Product)、销售表(ProOut)(2)客户表(Customer)的主键为:客户编号(CusNo)产品表(Product) 的主键为:产品编号(ProNo)销售表(ProOut) 的主键为:销售日期(SaleDate)、客户编号(CusNo)、产品编号(ProNo)(3)CREATE INDEX IX_Customer ON Customer (CusName)CREATE UNIQUE INDEX IX_Product ON Product (ProName)CREATE UNIQUE CLUSTERED INDEX IX_ProOut ON ProOut (SaleDate)(4)USE SalesGOALTER TABLE ProOutADD CONSTRAINT FK_ ProOut_ProNo FOREIGN KEY (ProNo)REFERENCES Product(ProNo)GO(5)CREATE RULE RU_ProOut as @x>0EXEC sp_bindrule RU_ProOut, 'ProOut. Quantity’(6)Select ProNofrom ProOutgroup by ProNohaving sum(Quantity)>100(7)create function sumMoney (@x Decimal,@y Decimal)returns Decimalasbeginreturn(@x*@y)endgo--测试select ,ProName, (price, sum(Quantity)) as '销售金额'from Product as P, ProOut as POwhere =group by ,ProName,price(8)select , CusName,Telfrom ProOut as p, Customer as Cwhere =’P0002’ and P . CusNo = C . CusNoorder by CusName desc(9)select CusNo, sum(Quantity)from ProOutwhere CusNo = ’C004’ and SaleDate > '2007-12-31'(10)create view viewProasselect ,sum(Quantity) as '销售量',sum(Quantity *price) as '销售金额'from Product as P, ProOut as POwhere =group by ,price(11)CREATE PROCEDURE p_Pro@ Cus No VARCHAR(8)ASSelect Cus No ,ProNo,sum(Quantity)from ProOutwhere Cus No =@ Cus Nogroup by Cus No, ProNo(12) create trigger t_Stocks on Productfor insert,delete,updateasupdate Product set Stocks = Stocks - Quantity where ProNo=(select ProNo from INSERTED)update Product set Stocks = Stocks + Quantity where ProNo=(select ProNo from DELETED)(13)方法一:使用企业管理器选中数据库Sales,右击,选“所有任务”子菜单,然后点击“备份数据库”命令,在“备份”选项中选中“数据库-完全”。