2010-2011-1数据库试卷+答案【A】.doc_第1页
2010-2011-1数据库试卷+答案【A】.doc_第2页
2010-2011-1数据库试卷+答案【A】.doc_第3页
2010-2011-1数据库试卷+答案【A】.doc_第4页
2010-2011-1数据库试卷+答案【A】.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江科技学院考试试卷 专业班级 学号 姓名 装订线 浙江科技学院200 -200 学年第 学期考试试卷 卷 考试科目 数据库系统原理 考试方式 闭 完成时限 1.5小时 拟题人 俞坚 审核人 批准人 2011 年 1 月 6 日 信息学院 院 08 年级 计算机 专业题序一二三四五六七八九十总分加分人复核人得分1888166141668签名345056708692100命题:得分一、选择题。在题后括号内,填上正确答案代号。(本大题共9小题,每小题2分,共18分)1、( A )依sno降序cno升序查询学生选课表sc中所有记录的正确查询语句是Aselect * from sc order by sno desc, cno;Bselect * from sc order by sno , cno desc;Cselect * from sc order by sno asc, cno desc;Dselect * from sc order by sno , cno ;2、( B )在学生选课表sc(sno,cno,grade)中,不正确的分组查询语句是Aselect cno from sc group by cnoBselect cno,sno from sc group by cnoCselect cno,count(sno) from sc group by cnoDselect cno,sno from sc group by cno,sno3、( D )在学生选课表sc(sno,cno,grade)中,查找每门课平均成绩为90分及以上的元组 Aselect cno,avg(grade) from sc group by cno where avg(grade)=90 ;Bselect cno,avg(grade) from sc having avg(grade)=90 ;Cselect cno,avg(grade) from sc where avg(grade)=90 ;Dselect cno,avg(grade) from sc group by cno having avg(grade)=90 ;4、( A )学生表S(sno,sname,ssex,sage,sdept)与学生选课表SC(sno,cno,grade)的自然连接查询是: Aselect s.*,o,sc.grade from s,sc where s.sno=sc.sno; Bselect s.*,sc.* from s,sc where s.sno=sc.sno; Cselect s.*,sc.sno,o,sc.grade from s,sc where s.sno=sc.sno; Dselect s.sno,sname,ssex,sage,sdept,sc.sno,o,sc.grade from s,sc where s.sno=sc.sno;5、若事务T1已经给数据A加上了共享锁,则事务T2( A )A. 只能再对A加共享锁B. 只能再对A加排他锁C. 可以对A加共享锁,也可以对A加排他锁D. 不能再给A加任何锁6、向以C#为主码的课程关系C(C#,CNAME,TEACHEER)插入一条记录的SQL语句为:insert into c(CNAME,TEACHEER) values(操作系统,王老师),此插入操作( A ) A、违背了实体完整性 B、违背了参照完整性C、能成功执行 D、违背了用户自定义完整性7、在数据库中存储的是( C )。 A数据 B数据模型 C数据及数据之间的联系 D信息8、以下关于数据库工作单元与源程序工作单元之间的通信说法不正确的是( D )A. 向主语言传递SQL语句的的执行状态信息,使主语言能够据此信息控制程序流程,主要用SQL通信区实现。 p238B. 主语言向SQL语句提供参数,主要用主变量实现。C. 将SQL语句查询数据库的结果交主语言处理,主要用主变量和游标实现。D. 将主语言的处理结果交SQL语句处理,主要用主变量和游标实现。9. 关系规范化中的插入异常是指( B )A. 不该插入的数据被插入B. 应该插入的数据没插入C. 插入了没有用的数据D. 插入了错误的数据得分二、填空题。在题中“ ”处填上答案。(本大题共8小题,总计8分)1、 在关系数据模型中,实体及实体间的联系都用 关系 来表示。【P30】2、 关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。【P44】3、 规范化的关系简称为范式。【P45】4、 在SQL中域的概念用数据类型来实现。5、 如果关系模式R是1NF,且每个非主属性 部分 函数依赖于候选键,那么称R是第二范式的模式。6、 需求分析的重点是调查、收集与分析用户在数据管理中的数据需求、 处理 需求、安全性与完整性需求。7、 数据库的并发操作通常会带来三个问题:丢失更新、 读脏数据12 、不可重复读。8、 系统执行CREATE TABLE语句后,就在数据库中建立一个新的空的 表5 ,并将表的定义及有关约束条件存放在数据字典6中。得分三、判断题。认为正确在题中“( )”中处填上V。认为不正确在题中“( )”中处填上X,并简略说明原因。(本大题共4小题,总计8分)1. ( X )破坏事务的隔离性特性不会产生数据的不一致性问题。【会产生丢失修改等数据不一致性问题】【增加】2. ( X )E-R图向数据模型转换时,多对多联系既可以转换为一个独立的关系模式,也可以与某一端的关系模式合并。【只能转换为一个独立的关系模式】3. ( X )学生(学号,姓名,性别,年龄,入校毕业年份)是规范化的关系。【P29】【关系的每个分量必须是一个不可分割的数据项。也就是说,不允许表中还有表。】4. ( X )在学生选课表SC(sno,cno,grade)中,同时选修了a号与b号课程同学学号的查询语句为select sno from sc where cno=a and cno=b。【如此写法永远没有满足条件的元组】得分四、(本大题共16分)假设有下面两个关系模式: 教师(职工号,姓名,性别,年龄,职称,工资,系号),其中职工号为主码,姓名要求非空,年龄要求在1250,工资不低于2000;系(系号,系名,系主任,电话),其中系号为主码,请回答下列问题:1、 (6分)用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:(1) 定义每个关系模式的实体完整性;(2) 定义外码,并要求当删除系表中的某条记录时系统能自动将教师表中对应的系号置为空;(3) 定义教师关系模式的自定义完整性。答:Drop table D cascade constraint;/* 在oracle中,如没有cascade constraint,提示表中的唯一/主键被外键引用错误*/create table D( dno char(8) primary key, dname char(20) , dean char(20), tel char(20);Drop table T;create table T (no char(6) primary key,name char(16) not null,sex char(2),age integer check(age 12 and age1000) ,dno char(8) references D(dno) on delete set null);delete from D;insert into d values(1,计算机系,candy,24);insert into d values(2,信电系,trancy,25);insert into d values(3,软件工程系,sarah,23);insert into d values(4,电子系,n4,36);insert into d values(5,化工系,李明,36);delete from t;insert into t values(1001,t1,f,45,教授,6500,1);insert into t values(1002,t2,m,41,教授,6000,1);insert into t values(1003,t3,m,35,付教授,5000,2);insert into t values(1004,t4,m,35,付教授,5000,5);commit;验证:删除系表d记录(1,计算机系,candy,24);Delete from d where dno=1;/*教师表t中外码为1记录的外码被自动置成了空值*/2、 (4分)试用关系代数完成下列操作1) 查询男教师的职工号与姓名;答:no,name(sex=男(T))2) 查询化工系教师的职工号与姓名;答:no,name(dno(dname=化工系(D)) no,name,dno(T) )3、 (6分)试用SQL语言完成下列操作1) 查询系主任名为李明所在系的教师职工号、姓名、年龄;答:select no,name,age from T where dno in (select dno from D where dean=李明 )2) 查询各类职称教师的平均工资;答:select title,avg(salary) from T group by title; 3) 查询计算机系教师的平均年龄;答:select avg(age) from T where dno in (select dno from D where dname=计算机系 ); 或select avg(age) from T ,d where t.dno=d.dno and d.dname=计算机系;得分五、(本题共6分)在学生表student(sid, sname, sage)上建立触发器UpdateOrInsert_student用以实现如下功能:当向学生表插入或修改学生记录时,如果学生的年龄大于30则触发器自动将年龄改为30。drop table student;create table student ( sid number(4) primary key, sname varchar(20), sage number(4);Create or replace trigger UpdateOrInsert_student before update or insert -表示触发器在触发事件执行前被激活 on student for each row begin if (:new.sage=30) then :new.sage:=30; -;不能少 end if; end;delete from student;insert into student values(1001,candy,24);insert into student values(1002,trancy,25);insert into student values(1003,sarah,23);insert into student values(1004,n4,36);update student set sage=38 where sid=1001;commit;得分六、(本题共14分)有关供应商、图书及学生的E-R图为:供应商号书号书名供应商名供应商课程供应 1 n作者图书 m借阅供应商地址 日期性别学号 n学生年龄姓名供应商号是供应商的主码;书号是图书的主码;学号是学生的主码。如果将E-R图转换为如下关系模式:1、 学生(学号、姓名、性别、年龄)2、 图书借阅供应(学号、书号、书名、作者、日期、供应商号,供应商名,供应商地址)请回答以下问题:1、 (2分)“学生”及“图书借阅供应”关系模式的主码分别是什么?答:学生” 的主码:学号;“图书借阅供应”的主码:学号、书号。2、 (4分)给出“学生”及“图书借阅供应”关系模式中属性间的函数依赖关系图。答:学生(略)图书借阅供应姓名:学号性别日期年龄书号书名作者供应商号3、 (4分)“学生”及“图书借阅供应”关系模式是否满足第3NF?为什么? 答:不满足。 存在部分及传递函数依赖。4、 (4分)将不满足3NF的关系模式规范为第3NF。答:(略)得分七、(本题共16分)根据以下需求,回答后述问题。1) 医院里只有医生可以开处方单,每个医生可以开多张处方,每张处方只能由一个医生开。处方单的属性有:处方单号(为主码)、开单日期。医生的属性有:职工号(为主码)、姓名、性别、年龄。2) 一张处方单对应一个病人,但每个病人可能有多张处方单。病人的属性有:病历号、姓名、性别、年龄、主要疾病(一种)。3) 一张处方单包含很多明细行,每行描述了客户使用的一种药品,一种药品可以出现在一张处方的多个明细行中。明细行的属性有:行号、药品代码、药品名称、摘要、数量、剂量。4) 药品的属性有:药品代码、药品名称、用途。5) 每种药品有多个供应商,每个供应商可能供应多种药品。供应商的属性有:供应商编号、供应商名称、地址。问题:1、 创建该系统的ER图;(8分)答:职工号年龄姓名供应商编号性别 1病历号 供应商名称姓名开单日期 n 供应商对应2病人 1 n 处方单号地址 性别开1处方单医生 1 m 主要疾病年龄供应5包含3摘要 n n 用途药品明细行 n 1数量包含4药品名称剂量药品代码行号 2、 给出相应的关系模式;(8分)答:医 生(职工号、姓名、性别、年龄)处方单(处方单号、开单日期、病历号、职工号)(1、2)病 人(病历号、姓名、性别、年龄、主要疾病)明细行(行号、摘要、数量、剂量、药品代码、处方单号)(3、4)药 品(药品代码、药品名称、用途)供应商(供应商编号、供应商名称、地址)供应(药品代码、供应商编号)(5)(少一联系描述扣一分,少一实体描述扣一分)得分八、(本题共6分)在oracle下,试图实现从账户2转10000元钱到账户1功能的操作步骤如下:1、 创建账户表:在PL/SQL Develop的SQL窗口中执行以下创建账户表语句create table account( accountno NUMBER(4) constraint PK_EMP primary key, accountname VARCHAR2(10), total NUMBER(7,2) );2、 在PL/SQL Develop的SQL窗口中,创建以下存储过程用以实现转账功能Create ORREPLACE procedure transfer(inaccount in number ,outaccount in number,amount in number )/*inaccount为转入账户,outaccount 为转出账户,amount 为转出数量*/Is /*或as*/ totalDeposit number(7,2);Begin Select total into totalDeposit from account where accountno=outaccount; If totaldeposit is null then dbms_output.put_line(转出账户的存款为空,转出账户为:|outaccount);Rollback; Return; End if; If totaldeposit set serveroutput onSQL exec transfer(1,2,10000)请问:1)(2分)exec transfer(1,2,10000)的输出结果是什么?结果:转出账户余额不足,余额为:9000转出额为:10000PL/SQL procedure successfully completed2)(2分)set serveroutput on语句的作用是什么? -打开服务器输出3)(2分)能否将Create ORREPLACE procedure transfer(inaccount in number ,outaccount i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论