南京理工大学数据库系统基础教程试题和答案.docx
- 文档编号:24218355
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:43
- 大小:196.94KB
南京理工大学数据库系统基础教程试题和答案.docx
《南京理工大学数据库系统基础教程试题和答案.docx》由会员分享,可在线阅读,更多相关《南京理工大学数据库系统基础教程试题和答案.docx(43页珍藏版)》请在冰豆网上搜索。
南京理工大学数据库系统基础教程试题和答案
一、选择题60(选择一个最合适的答案,在答题纸上涂黑)
1.一个事务中的一组更新操作是一个整体,要么全部执行,要么全部不执行。
这是事务的:
A.原子性B.一致性C.隔离性D.持久性
2.在数据库的三级模式结构中,描述一个数据库中全体数据的全局逻辑结构和特性的是:
A.外模式B.模式C.存储模式D.模式
3.关于联系的多重性,下面哪种说法不正确?
A.一个多对多的联系中允许多对一的情形。
B.一个多对多的联系中允许一对一的情形。
C.一个多对一的联系中允许一对一的情形。
D.一个多对一的联系中允许多对多的情形。
4.考虑学校里的"学生"和"课程"之间的联系,该联系的多重性应该是:
A.一对一B.多对一C.一对多D.多对多
5.下面哪种约束要求一组属性在同一实体集任意两个不同实体上的取值不同。
A.键(key)约束。
B.单值约束。
C.参照完整性。
D.域(domain)约束
6.关系模型要求各元组的每个分量的值必须是原子性的。
对原子性,下面哪种解释不正确:
A.每个属性都没有部结构。
B.每个属性都不可再分解。
C.各属性值应属于某种基本数据类型。
D.属性值不允许为NULL。
7.对于一个关系的属性(列)集合和元组(行)集合,下面哪种说法不正确:
A.改变属性的排列次序不影响该关系。
B.改变元组的排列次序不影响该关系。
C.改变元组的排列次序会改变该关系。
D.关系的模式包括其名称及其属性集合。
8.若R是实体集R1与R2间的一个多对多联系,将其转换为关系R',哪种说法不正确:
A.R'属性应包括R1与R2的所有属性。
B.R'属性应包括R1与R2的键属性。
C.R1与R2的键属性共同构成R'的键。
D.R'的属性应包括R自身定义的属性。
9.关于函数依赖的判断,下面哪种说法不正确?
A.若任意两元组在属性A上一致,在B上也一致,则有A→B成立。
B.若任意两元组在属性A上一致,在B上不一致,则A→B不成立。
C.若任意两元组在属性A上不可能一致,则不管在B上是否一致,有A→B成立。
D.若任意两元组在属性A上不可能一致,则A→B不成立。
10.若某关系R的属性集A函数决定R中所有其它属性,则A为关系R的一个:
A.键。
B.主键。
C.超键。
D.外键。
11.当且仅当函数依赖A→BC,则有A→B和A→C。
此规则是
A.分解/合并规则。
B.平凡依赖规则。
C.传递规则。
D.增长规则。
12.对于某关系R的某个属性集A,下面哪种说法不正确:
A.若属性集A是R的键,则闭包A+是R中所有属性集合。
B.若闭包A+是R中所有属性集合,则属性集A是R的键。
C.若闭包A+是R中所有属性集合,则属性集A是R的超键。
D.当且仅当属性集A是R的超键,闭包A+是R中所有属性集合。
13.某关系R(A,B,C,D)有函数依赖A→B,BC→D,D→A,R总共有几个超键?
A.3B.4C.6D.7
14.某关系R(A,B,C,D)有函数依赖A→B,BC→D,D→A,下面哪个函数依赖不蕴含于已知依赖?
A.D→BB.AC→BDC.BC→ADD.BD→AC
15.某关系R(A,B,C,D)有函数依赖A→B,BC→D,D→A,该关系若违背BCNF,则应分解成几个关系才能满足BCNF:
A.符合BCNF,无需分解B.2个关系C.3个关系D.4个关系
16.关系product(prodid,prodname,type,factory)表示所销售的每一种商品的货号、品名、种类及生产厂家,一种商品有唯一货号。
该关系所满足下列最高式是:
A2NF。
B3NF。
CBCNF。
D4NF。
17.关系prodsales(salesman,prodid,prodname,quantity,amount)表示销售员销售商品情况:
销售员、货号、品名、销售数量及销售金额。
一名销售员可销售多种商品,一种商品可由多名销售员销售。
该关系违背下列最低式是:
A.1NF。
B.2NF。
C.3NF。
D.BCNF。
18.关系代数运算中,下面哪种计算可等价表示为其它几种计算的复合形式:
A.投影∏B.选择σC.笛卡尔积×D.自然连接∞
19.设有关系R(A,B,C)和S(C,D,E),其元组如下所示:
πB,E(R∞A=DS)的值是:
20.在学生选课表studentcourse(stdno,courseno,grade)中,查询选修3号课程、且成绩在70和80分之间的学生的学号(stdno)及其成绩(grade)。
实现该功能的SQL语句是:
A.SELECTstdno,gradeFROMstudentcourse
WHEREcourseno='3'ANDBETWEEN70 B.SELECTstdno,gradeFROMstudentcourse WHEREcourseno='3'ANDgradeBETWEEN70AND80; C.SELECTstdno,gradeFROMstudentcourse WHEREcourseno='3'ANDgradeBETWEEN70,80; D.SELECTstdno,gradeFROMstudentcourse WHEREcourseno='3'ANDgradeIN(70,80); 21.已知关系R和S: Select*FromR Wherea<>ALL(SelectbFromS) 结果是; 22.学生成绩表R如下 R. No Score 1 2 3 4 5 6 7 8 77 84 92 82 63 72 NULL 47 Select(score/10)*10asScoreLevel,count(no)asnum FromR Groupby(score/10)*10 OrderbyScoreLeveldesc; 结果是: 23.关于视图view,下面哪种说法不正确? A.基于一条Select语句可定义一个视图。 B.CreateViewviewNameAS...命令可定义视图。 C.查询视图与查询表在语法上是一样的。 D.Select语句中的From子句中视图和表不能同时出现。 24.关系R如下 R. No a 1 2 3 2 NULL 7 Select*FromRWherea>no*2OR(a>no*2)isUnknown 结果为 25.已知关系如下 Selectempname,amount FromsalesmanNaturalLeftOuterJoinsalesorder; 结果为: 26.关于表的主键约束,下面哪种说法不正确: A.select命令不可能违背主键约束。 B.insert命令可能违背主键约束。 C.delete命令不可能违背主键约束。 D.update命令不可能违背主键约束。 27.关于数据库表中的外键,下面哪种说法不正确: A.表R1到R2有外键,R2到R1同时也能定义外键。 B.同一个表中属性A1到主键属性之间也能定义外键。 C.外键所关联的双方属性应属同种数据类型。 D.一个外键只能在单个属性上定义。 28.在并发性事务环境中,事务1先读取某行数据,随后事务2修改了此行数据并提交,造成事务1再读此行时先后结果不一致。 这种现象被称为: A.(DirtyReads)脏读B.(Non-repeatableReads)不可重复读 C.(PhantomRows)幻像行D.事务冲突。 29.关于事务控制,下面哪种说法不正确? A.Commit提交当前事务,并结束当前事务。 B.Rollback退回当前事务,取消本事务已做的数据更新,并结束当前事务。 C.Commit提交当前事务,并释放本事务施加的锁。 D.Rollback退回当前事务,继续持有本事务施加的锁。 30.下面哪一种指令能为用户授权,使其能以一定的权限访问特定的数据库对象。 A.GrantB.RevokeC.CommitD.Privilege 二、综合题40 一个简化的图书馆信息管理系统。 系统需求如下: 1.图书馆有若干管理员librarian,各自有员工号empid、name、号idno等属性。 2.图书馆中备有若干种图书booktype,每种图书有ISBN、名称title、publisher、作者writers、价格price等属性,每种图书有唯一的ISBN号,同种图书可购入多本。 3.每一本图书book有唯一标记bookid和种类booktype。 4.读者reader在办理借书证后方可借阅。 一个读者有唯一的借书证号cardno,还有name、号idno、住址address、注销标记logoff等。 读者在注销之前,须归还所有已借图书或报失。 5.需处理以下基本业务: ①借书: 在某时刻某读者通过某管理员借阅某一本书。 ②还书: 在某时刻通过某管理员归还某一本书。 ③报失: 在某时刻某读者向某管理员报失某一本书;报失之后该书不能再借。 每一次还书和报失记录都须对应某一次借书记录,且可由不同管理员处理。 按次序回答下列问题: 1.用E/R图建立该系统的数据库模型。 为每个实体集确定键属性,并确定每个联系的多重性。 (8) 2.由E/R模型建立该系统的关系模式,并确定每个关系的主键和可能的外键。 注意各关系中的函数依赖和多值依赖,并使你的关系能符合更高式。 (8) 3.基于以上关系模式,用关系代数表示下面计算: (6) 1)计算“清华大学”出版的图书名称及作者。 2)计算借书证号为“A00345”的读者未归还的图书名称。 3)计算未处理过借书手续的管理员的员工号及其。 4.使用SQL语言实现上述计算,并使输出结果不重复。 (6) 5.使用SQL语言完成下面的计算: (12) 1)增加借书记录: 借书证号为'A00345',通过管理员'E0035'于当前日期借到图书'B00124'。 (提示: today(*)函数返回当前日期) 2)还书记录: 通过管理员'E0034'于当前日期归还图书'B00124'。 (提示: 还书无需确认借书证) 3)计算借书证号为“A00345”的读者已借超过30天而未还的图书数量。 (提示: days(d1,d2)函数返回从日期d1到d2的天数) 4)计算借书次数最多的读者的和号。 (注意使用视图) 5)计算所有图书的ISBN、书名、借阅次数,并按借阅次数从大到小排列。 (注意使用外连接) 参考答案 1.ER图(一些非键属性未列出) 2.关系模型 Librarian(empid,name,idno) Reader(cardno,name,idno,address) Booktype(isbn,title,publisher,writers,price) Book(bookid,isbn) Record(recid,brwempid,cardno,bookid,borrowdate,end,enddate,endempid) 3.关系代数运算 1)计算“清华大学”出版的图书名称及作者 πtitle,writers(σpublisher=’清华大学’Booktype) 2)计算借书证号为“A00345”的读者未归还的图书名称 πtitle(σcardno=’A00345’ANDend=NULL(Record∞Book∞Booktype)) 3)计算未处理过借书手续的管理员的员工号及其。 πempid,name(Librarian)-πempid,name(Librarian∞brwempid=empidRecord) 4.SQL运算 1)计算“清华大学”出版的图书名称及作者 Selecttitle,writersFromBooktypeWherepublisher=’清华大学’; 2)计算借书证号为“A00345”的读者未归还的图书名称 Selecttitle FromRecordNaturalJoinBookNaturalJoinBooktype Wherecardno=’A00345’AND"end"ISNULL; 3)计算未处理过借书手续的管理员的员工号及其。 Selectempid,name FromLibrarian WhereempidNOTIN(SelectbrwempidFromRecord); 5.SQL 1)增加借书记录: 借书证号为'A00345',通过管理员'E0035'于当前日期借到图书'B00124'。 (提示: today(*)函数返回当前日期) insertintorecord(brwempid,cardno,bookid,borrowdate) values('E0035','A00345','B00124',today(*)); 2)还书记录: 通过管理员'E0034'于当前日期归还图书'B00124'。 (提示: 还书无需确认借书证) updaterecordset"end"=1,enddate=today(*),endempid='E0034' whererecid= (selectrecidfromrecordwherebookid='B00124'and"end"ISNULL); 3)计算借书证号为“A00345”的读者已借超过30天而未还的图书数量。 (提示: days(d1,d2)函数返回从日期d1到d2的天数) SelectCount(recid) FromRecord Wherecardno='A00345'AND"end"ISNULL ANDdays(borrowdate,today(*))>30; 4)计算借书次数最多的读者的和号。 (注意使用视图) Createviewbrwtimesas selectcardno,count(recid)astimes fromrecord groupbycardno selectname,idno fromreadernaturaljoinbrwtimes wheretimes=(selectmax(times)frombrwtimes); 5)计算所有图书的ISBN、书名、借阅次数,并按借阅次数从大到小排列。 (注意使用外连接) Selectbook.isbn,title,count(recid)astimes FrombookLeftOuterJoinrecordNaturalJoinbooktype Groupbybook.isbn,title OrderbytimesDESC; 第3章介绍关系数据模型,关系模型是什么,如何设计规的关系模型。 目的: 由一个数据库的E/R模型,产生符合一定规的关系模型。 Customer(custid,name,prov,city,phone,unit) Product(prodid,factory,type,spec,price,desc) Salesman(empid,idno,name,gender,phone,deptid) Department(deptid,name,headerid) Salesorder(orderno,signdate,empid,custid) Salesitem(orderno,lineno,prodid,singlecost,quantity) 报考及复试资格审查: 时间: 4月10日(本校应届毕业生考生),4月11日(其他考生),地点: 报考学院(系); 体检时间: 时间: 4月11日8: 30-16: 00。 体检当日饮食必须清淡,地点: 我校医院; 笔试: 时间: 12日8: 30-11: 30(需携带2B铅笔及橡皮),地点: 第四教学楼; 面试: 时间: 12日下午及13日,由各学院安排。 复试由笔试、面试组成,包括外语听力及口语测试,复试总成绩为300分,其中笔试150分、面试及实践(实验)能力测试100分,外语听力30分及口语20分。 数据库系统的世界(概述) 什么是数据库 数据库管理系统 2.数据库建模 数据模型 信息模型(概念模型): E/R模型,ODL模型等 基本数据模型: 层次模型,网状模型,关系模型等 实体/联系图 属性attribute: 联系relationship: 对约束建模 有哪些重要的约束种类? 键key 单值single-value 参照完整性referenceinte 关系数据模型 关系的等价表示法 改变列次序,不改变关系的含义。 改变行次序,不改变关系的含义。 从E/R图到关系设计 实体集到关系的转换 E/R联系到关系的转换 处理弱实体集 函数依赖 函数依赖是如何定义的? 若关系R的任意两个元组在属性A1、A2、…、An上一致(即有相同分量值),则这两个元组在属性B上也一致,则称属性A1A2…An函数决定B,或称B函数依赖于A1A2…An。 判断函数依赖的三种情形 如果任意两元组在属性A上一致,在B上也一致,则有A→B成立。 如果任意两元组在属性A上一致,在B上不一致,则A→B不成立。 如果任意两元组在属性A上不可能一致,则不管在B上是否一致,有A→B成立。 关系的键 如何用函数依赖定义键key? 定义: 对于关系R,若属性集合{A1,A2,…,An}满足下列条件,则该属性集合是R的一个键key: 1.A1,A2,…,An函数决定R中所有其他属性。 (超键) 2.{A1,A2,…,An}的任何真子集都不能函数决定R中所有其他属性。 (最小化) 超键 什么是超键superkey? 键的超集supersetofkey。 即包含键的属性集合。 可函数决定关系中所有属性的属性集合。 每个键都是超键。 一个关系的属性全集超键。 每个超键都是键吗? 不是。 函数依赖规则 有哪些重要的函数依赖规则? 分解/合并(Splitting/combining)规则 平凡依赖(TrivialDependance)规则 传递(Transitivy)规则 计算属性的闭包 如何计算属性的闭包? 给定函数依赖集S和属性集A={A1,A2,…An},如何计算A+? 1将X初始化为{A1,A2,…,An},闭包最小集合。 2遍历S中的每个函数依赖,对于每个依赖式: B1B2…Bm→C 如果B1、B2、…、Bm都在X中,而C不在X中,则把C加入X中。 3重复第2步,直到遍历完S中所有函数依赖,而没有新属性能加入到X中。 4最终属性集X即为属性集A在函数依赖集S下的闭包A+。 例3.28: P90设有关系R(A,B,C,D,E,F)与函数依赖集 S: {AB→C,BC→AD,D→E,CF→B} 求: {A,B}+ 解: X (1)={A,B},由AB→C,得: X (2)={A,B,C},由BC→AD,得: X(3)={A,B,C,D},由D→E,得: X(4)={A,B,C,D,E}={A,B}+ 属性闭包计算有何用途? 假设关系R上已有一个依赖集S,另有一个函数依赖A1A2…An→B,该依赖是否蕴含于S? 判断方法: 计算{A1,A2,…,An}+。 若B在{A1,A2,…An}+中,则函数依赖A1A2…An→B蕴含于S中。 若B不在{A1,A2,…An}+中,则函数依赖A1A2…An→B不蕴含于S中。 属性的闭包和键之间有何关系? 对于一个关系R,当且仅当A1,A2,…,An是R的超键时,{A1,A2,…,An}+是R的所有属性的集合。 3.6.1已知关系模式R(A,B,C,D)有函数依赖AB→C,C→D,D→A (a)求蕴含于给定函数依赖的所有完全非平凡函数依赖。 (b)求R的所有键。 (c)求R的所有超键(不包括键)。 解: (a)根据所有属性集合的闭包,计算所有可能的函数依赖。 {A}+={A} {B}+={B} {C}+={C,D,A}C→AD {D}+={D,A} {A,B}+={A,B,C,D}AB→CD {A,C}+={A,C,D}AC→D {A,D}+={A,D} {B,C}+={B,C,D,A}BC→AD {B,D}+={B,D,A,C}BD→AC {C,D}+={C,D,A}CD→A {A,B,C}+={A,B,C,D}ABC→D {A,B,D}+={A,B,D,C}ABD→C {A,C,D}+={A,C,D} {B,C,D}+={B,C,D,A}BCD→A (b)所有的键: {A,B},{B,C},{B,D} (c)所有的超键(不包括键): {A,B,C},{A,B,D},{B,C,D},{A,B,C,D} 关系数据库模式设计 BC式 若关系模式R的每个分量均是不可再分的数据项,则R满足第一式,又记作: R∈1NF。 BC式如何定义? 关系模式R满足BC式,当且仅当若非平凡函数依赖A1A2…An→B1B2…Bm在关系R中成立,则{A1,A2,…,An}是R的超键。 关系R满足BC式的两种情形 关系R中不存在非平凡函数依赖。 (只有平凡函数依赖) 每个非平凡函数依赖的左面包含某个键(即左面是超键)。 关系R违背BC式的唯一情形 关系R中至少存在一个非平凡函数依赖,其左面不是超键。 分解为BC式 分解策略: 消除违背BCNF的函数依赖 1找一个违背BCNF的非平凡函数依赖A1A2…An→B1B2…Bm。 2把关系R分解成两个关系: R1(A1,A2,…,An,B1,B2,…,Bm)。 R2(A1,A2,…,An,所有其它属性),若不满足BC式,则再分解。 例如: R(学号,课号,成绩,系号,系主任)不满足BCNF。 1非平凡函数依赖: 学号→系号,系主任成立 2R分解为: R1(学号,系号,系主任) R2(学号,课号,成绩) 3非平凡函数依赖: 系号→系主任成立 4R1继续分解为: R11(系号,系主任) R12(学号,系号) 第三式 关系模式R满足3NF,当且仅当若非平凡函数依赖A1A2…An→B在关系R中成立,则{A1,A2,…,An}是R的超键,或者B是某个键的组成部份(键属性)。 结论: 一个关系模式总可以分解为满足3NF的模式,且所有的函数依赖都可得到保持。 第二式 第二式(2NF): 要求每个非键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京理工大学 数据库 系统 基础教程 试题 答案