2010级软工数据库期中考试

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、问答题(15分)1,数据库数据的三个基本特点是什么?(3分)教材第4面:永久存储、有组织、可共享2,数据库系统的数据独立性包括哪几个方面?这些方面具体是什么含义?(5分)教材第10面:数据独立性包括数据的物理独立性和数据的逻辑独立性。物理独立性是指数据库在磁盘上怎样存储数据是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,当数据的物理存储改变时,应用程序不用改变。数据的逻辑独立性是指当数据的逻辑结构改变时,用户程序也可以不变。3,通过角色来实现将一组权限授予一个用户的步骤是怎么样的?(4分)教材第142面:(1)角色的创建(2)给角色授权(3)将一个角色赋予用户4,当出现破坏参考完整性的操作时,DBMS可以采取哪些策略进行处理?(3分)教材第155面:(1)拒绝执行(2)级联操作(3)设置为空值二、设计题(15分)某医院想设计数据库系统进行管理住院情况。其中科室有科名,地址,电话等信息;病房有病房号,床位号,所属科室名等信息;医生有工作证号,姓名,职称,所属科室名等信息;病人有病历号,姓名,性别,主管医生,病房号等信息。现有如下规定:一个科室有多个病房、多个医生一个病房只能属于一个科室一个医生只能属于一个科室,但可以负责多个病人的诊治一个病人的主管医生只有一个请根据以上描述用E-R图画出该医院住院情况概念模型主要的问题:无中生有,设想病房和病人间的联系三、综合应用题(70分)有一个学生管理数据库,包括以下四个关系模式Student(Sno,Sname,Ssex);Course(Cno,Cname,Ccredit);SC(Sno,Cno,mark);学生表Student由学号Sno,姓名Sname,性别Ssex组成;课程表Course由课程号Cno,课程名Cname和学分数Ccredit组成;成绩表SC由学号Sno,课程号Cno和分数mark组成1,请使用关系代数完成以下查询(只写表达式):(1)查询选修过”数据库”课程的同学的学号和姓名(4分)(2)查询“李强”同学没有学过的课程的课程号(4分)(3)查询选修过课程号为C01和C03的同学的学号和姓名(4分)(4)查询每位同学都修过的课程的课程号(4分)(5)查询修过的所有课程的分数都大于等于60分的同学的学号和姓名(4分)2,某图书馆数据库LIBDB,里面有3张表,分别为读者表Reader,书籍表Book和借书表Record,这几张表的各属性及说明如下读者表Reader属性名类型及长度说明读者号RnoChar(10)主键姓名RnameChar(8)非空联系电话TelCHAR(11)书籍表Book属性名类型及长度说明书籍号BnoChar(12)主键书名SnameChar(20)非空ISBN编号ISBNChar(20)非空作者AuthorChar(20)注:同一本书的多个副本是ISBN编号相同,而书籍号不同借书表Record属性名类型及长度说明借书流水号RnoChar(20)主键读者号RnameChar(10)非空书籍号BnoChar(12)非空借书时间borrowtimedatetime非空还书时间returntimedatetime空值表示未还(1)使用SQL语句创建这3张表,并为这3张表添加相应的完整性约束(15分)CREATETABLEReader(Rnochar(10)PRIMARYKEY,Rnamechar(8)NOTNULL,Telchar(11))CREATETABLEBook(Bnochar(12)PRIMARYKEY,Snamechar(20)NOTNULL,ISBNchar(20)NOTNULL,Authorchar(20))CREATETABLERecord(Rnochar(20)PRIMARYKEY,Rnamechar(10)NOTNULL,Bnochar(12)NOTNULL,BorrowtimeDATETIMENOTNULL,ReturntimeDATETIME,FOREIGNKEY(Rname)REFERENCESReader(Rno),FOREIGNKEY(Bno)REFERENCESBook(Bno))()利用SQL语句,将一个名叫读者号为‘R123’的读者在年月日所借的书籍号为R0033的信息加入到借书表中区,借书流水号为(分)/*insertintoReadervalues('R123','HEHE','13333333333');insertintoBookvalues('R0033','计算机','13333333333','fefe');*/INSERTINTORecordVALUES('0003332228','R123','R0033','2012-04-18',NULL)或者INSERTINTORecord(Rno,Rname,Bno,Borrowtime)VALUES(‘’,’R0033’,’R123’,’-04-18’)主要考察,一个属性为空时,怎么样往表内插入一条记录()查询所有书名中含有“软件”这两个字的书名(5分)SelectsnameFrombookWheresnamelike'%软件%'()查询读者号是‘R123’的读者所有借过的书的书名(分)SelectsnameFromBook,RecordWhereBook.Bno=Record.BnoandRname='R123';()查询借书最多没有还的读者的姓名和借书数量(分)selectReader.Rname,numfromReader,(selectRname,COUNT(*)asnumfromRecordwherereturntimeisnullgroupbyRname)asawhereReader.Rno=a.RnameANDa.num=all(selectCOUNT(*)fromRecordwherereturntimeisnullgroupbyRname)()查询读者号是‘R123’和‘R122’的读者都借阅过的书的书名(分)同一本书可能有不同副本,判断是否同一本书是看ISBN,不是看书籍号(6,7,8三题都是这样)很多同学以书籍号作为判断是否同一本书的唯一标识,把题目简化了。这样的同学一律也给全分,分的题目给了分。(),(),(8)都是这个要求/*以ISBN为准*/SelectSnameFromBookWhereISBNIN(SELECTISBNFROMBook,RecordWherebook.bno=Record.BnoandRname=‘R123’)AndISBNIN(SELECTISBNFROMBook,RecordWherebook.bno=Record.BnoandRname=‘R122’)/*以bno为准*/SelectSnameFromBookWherebnoIN(SELECTbnoFROMBook,RecordWherebook.bno=Record.BnoandRname=‘R123’)AndbnoIN(SELECTbnoFROMBook,RecordWherebook.bno=Record.BnoandRname=‘R123’)()查询至少借阅过读者号是‘R123’的读者所有借过的书的读者的姓名和电话(分)/*以ISBN为准*/SelectRname,TELFromReaderWhereNOTEXISTS(SELECTISBNFROMBook,RecordBWherebook.bno=B.BnoandB.Rname='R123'EXCEPTSELECTISBNFROMBook,RecordBWherebook.bno=B.BnoandB.Rname=Reader.Rno)/*以bno为准*/selectRname,TELfromReaderwherenotexists(SELECT*FROMRecordAwhereNOTEXISTS(select*fromRecordBwhereB.Rname='R123'andB.bno=a.bnoandReader.Rno=B.Rname))(8)查询年度被借阅次数做多的书的书名和作者(分)/*以ISBN为准*/SelectSname,AuthorFromBookWhereISBNin(SELECTISBNFROMRecord,BookWHERERecord.bno=Book.Bnoandyear(borrowtime)=2011GROUPBYISBNHavingcount(*)=all(selectcount(*)FROMRecord,BookWHERERecord.bno=Book.Bnoandyear(borrowtime)=2011GROUPBYISBN))/*以bno为准*/SelectSname,AuthorFromBookWhereBNOin(SELECTBNOFROMRecord,BookWHERERecord.bno=Book.Bnoandyear(borrowtime)=2011GROUPBYBNOHavingcount(*)=all(selectcount(*)FROMRecord,BookWHERERecord.bno=Book.Bnoandyear(borrowtime)=2011GROUPBYBNO))

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功