数据库作业答案-整理ppt课件.ppt_第1页
数据库作业答案-整理ppt课件.ppt_第2页
数据库作业答案-整理ppt课件.ppt_第3页
数据库作业答案-整理ppt课件.ppt_第4页
数据库作业答案-整理ppt课件.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

这里是幅标题这里是副标题 数据库作业答案 助教2015 01 推荐阅读书目 OraclePL SQL最佳实践 机械工业出版社 数据挖掘概念与技术 韩家炜 机械工业出版社 BuildingtheDataWarehouse W H Inmon 2 第一章 1 8列出文件处理系统和DBMS的四个主要区别 3 第一章 1 9解释物理数据独立性的概念 以及它在数据库系统中的重要性 物理数据独立性 物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的 即 数据在磁盘上怎样存储由DBMS管理 用户程序不需要了解 应用程序要处理的只是数据的逻辑结构 这样当数据的物理存储改变了 应用程序不用改变 重要性 实现应用程序与存储在磁盘上的数据相分离 应用程序不依赖与物理模式 不随物理模式的改变而改变 4 第二章 2 9考虑图2 15所示银行数据库系统 a 适当的主码是什么 branch branch name branch city assets customer customer name customer street customer city loan loan number branch name amount borrower customer name loan number account account number branch name balance depositor customer name account number b 给出你选择的主码 确定适当的外码 loan branch namereferencesbranchaccount branch namereferencesbranchborrower customer namereferencescustomerloan numberreferencesloandepositor customer namereferencescustomeraccount numberreferencesaccount 5 第二章 2 10考虑图2 8所示advisor关系 advisor的主码是s id 假设一个学生可以有多位指导老师 那么s id还是advisor关系的主码吗 如果不是 advisor的主码会是什么呢 答案 不能 s id不再是advisor的主码 因为可能存在多个元组有着相同的s id 此时s id不能用来区别不同的元组 advisor的主码应该是s id i id 2 11解释术语关系和关系模型在意义上的区别答案 关系模式 relationschema 是一种定义类型 关系 relation 是这种类型的一个实例2 12考虑图2 14所示关系数据库 给出关系代数表达式来表示下列每一个查询 a 找出为 FirstBankCorporation 工作的所有员工姓名 b 找出为 FirstBankCorporation 工作的所有员工的姓名和居住城市c 找出为 FirstBankCorporation 工作且挣钱超过10000美元的所有员工的姓名 街道地址和居住城市 6 第二章 答案 2 13考虑2 15所示银行数据库 对于下列每个查询 给出一个关系代数表达式 a 找出贷款额度超过10000美元的所有贷款号b 找出所有这样的存款人姓名 他拥有一个存款额大于6000美元的账户c 找出所有这样的存款人的姓名 他在 Uptown 支行拥有一个存款额大于6000美元的账户 7 第二章 答案 a loan number amount 10000 loan b customer name balance 6000 depositor account c customer name branch name Uptown balance 6000 depositor account 8 第三章 3 11使用大学模式 用SQL写出如下查询 a 找出所有至少选修了一门Comp Sci 课程的学生姓名 保证结果中没有重复的姓名b 找出所有没有选修在2009年春季之前开设的任何课程的学生的ID和姓名c 找出每个系老师的最高工资值 可以假设每个系至少有一位老师d 从前述查询所计算出的每个系最高工资中选出最低值答案 a selectnamefromstudentnaturaljointakesnaturaljoincoursewherecourse dept Comp Sci b selectid namefromstudentexceptselectid namefromstudentnaturaljointakeswhereyear 2009 C selectdept max salary frominstructorgroupbydept d selectmin maxsalary from selectdept max salary asmaxsalaryfrominstructorgroupbydept 9 第三章 3 12使用大学模式 用SQL写出如下查询 a 创建一门课程 CS 001 其名称为 WeeklySeminar 学分为0b 创建该课程在2009年秋季的一个课程段 sec id为1c 让Comp Sci 系的每个学生选修上述课程段d 删除名为Chavez的学生选修上述课程段的信息e 删除课程CS 001 如果在运行此删除语句之前 没有先删除这门课的授课信息 课程段 会发生什么事 f 删除课程名称中包含 database 的任意课程的任意课程段所对应的所有takes元组 在课程名的匹配中忽略大小写答案 a insertintocoursevalues CS 001 WeeklySeminar Comp Sci 0 b insertintosectionvalues CS 001 1 Autumn 2009 null null null C insertintotakesselectid CS 001 1 Autumn 2009 nullfromstudentwheredeptname Comp Sci 10 第三章 d deletefromtakeswherecourseid CS 001 andsectionid 1andyear 2009andsemester Autumn andidin selectidfromstudentwherename Chavez e deletefromcoursewherecourse id CS 001 会出现违反外键规则 因为section有外键指向course 如果直接从course删除CS 001的信息 此时section中关于CS 001的字段在course中找不到关联 f deletefromtakeswherecourseidin selectcourseidfromcoursewherelower title like database 3 13写出对应于图3 18中模式的SQLDDL 在数据类型上做合理的假设 确保声明主码和外码 11 第三章 3 13写出对应于图3 18中模式的SQLDDL 在数据类型上做合理的假设 确保声明主码和外码 答案 createtableperson driver idvarchar 50 namevarchar 50 addressvarchar 50 primarykey driver id createtablecar licensevarchar 50 modelvarchar 50 yearinteger primarykey license createtableaccident report numberinteger datedate locationvarchar 50 primarykey report number createtableowns driver idvarchar 50 licensevarchar 50 primarykey driver id license foriegnkey driver id referencespersonforiegnkey license referencescar createtableparticipated report numberinteger licensevarchar 50 driver idvarchar 50 damage amountinteger primarykey report number license foriegnkey license referencescarforiegnkey report number referencesaccident 12 第三章 3 14考虑图3 18中的保险公司数据库 其中加下划线的是主码 对这个关系数据库构造如下的SQL查询 a 找出在 JohnSmith 的车有关的交通事故的数量b 对事故报告编号为 AR2197 中的车牌是 AABB2000 的车辆损坏保险费用更新到3000美元答案 a selectcount fromaccidentwhereexits select fromparticipated owns personwhereowns driver id person driver idandperson name JohnSmith andowns license participated licenseandaccident report number participated report number b updateparticipatedsetdamage amount 3000wherereport number AR2197 andlicense AABB2000 13 第三章 3 15考虑图3 19中的银行数据库 其中加下划线的是主码 对这个关系数据库构造如下的SQL查询 a 找出在 Brooklyn 的所有支行都有账户的所有客户b 找出银行的所有贷款额的总和c 找出总资产至少比位于Brooklyn的某一家支行要多的所有支行名字答案 a withbranchcountas selectcount fromBranchWherebranch city Brooklyn selectcustomer namefromcustomercwherebranchcount selectcount distinctbranch name from customernaturaljoindepositornaturaljoinaccountnaturaljoinbranch asdwhered customer name c customre name b selectsum amount fromloanc selectbranch namefrombranchwhereassets some selectassetsfrombranchwherebranch city Brooklyn 14 第四章 4 12对于图4 11中的数据库 写出一个查询来找到那些没有经理的雇员 注意一个雇员可能只是没有列出其经理 或者可能有null经理 使用外连接书写查询 然后不用外连接再重写查询 答案 使用外连接 selectemployee namefromemployeenaturalleftouterjoinmanageswheremanager nameisnull 不使用外连接 selectemplyee namefromemployeewherenotexists selectemployee namefrommanageswheremanages employee name emplyee employee nameandmanages manager nameisnotnull 15 第四章 4 12对于图4 11中的数据库 写出一个查询来找到那些没有经理的雇员 注意一个雇员可能只是没有列出其经理 或者可能有null经理 使用外连接书写查询 然后不用外连接再重写查询 答案 使用外连接 selectemployee namefromemployeenaturalleftouterjoinmanageswheremanager nameisnull 不使用外连接 selectemplyee namefromemployeewherenotexists selectemployee namefrommanageswheremanages employee name emplyee employee nameandmanages manager nameisnotnull 16 第四章 4 13在什么情况下 查询select fromstudentnaturalfullouterjointakesnaturalfullouterjoincourse将包含在属性titles上取空值的元组 答案 情况一 course元组中存在title属性为null的元组情况二 存在一个学生 没有上任何课 即takes里面没有此学生的ID 4 14给定学生每年修到的学分总数 如何定义视图tot credits year num credits 答案 createviewtot credits year num credits as selectyear sum credits fromtakesnaturaljoincoursegroupbyyear 17 第六章 6 10a name student takes course id dept name Comp Sci course b ID name student ID name year10000 works employee d person name employee works company e company name company city company name SmallBankCorporation company 6 12a instrcnt 1 course id section id year semester count asinstrcnt teaches b course id section id year semester IDother ID takes takes1 ID2 course id section id year semester takes 18 第七章 7 20 a author name address URL book ISBN title year price customer email name address phone publisher name address phone URL shopping basket basket id warehouse code address phone 7 20 b c 19 第八章 8 6因为A BC 所以有A B和A C 因为A B和B D 所以A D 因为A CD和CD E 所以A E 又因为A A 所以综上有A ABCDE 因为E A 所以由传递性E ABCDE 因为CD E 同理有CD ABCDE 因为B D和BC CD 所以BC ABCDE还有C C D D BD D 所以F的闭包有BD B BD D C C D D BD BD B D B B B BDR的候选码为A BC CD E 8 27由result B 以及F中的类似 形式的FDs 发现满足 result的是B B和B D 所以result B D 所以B B D 8 30 1 无损连接分解 维持数据库的正确性 2 保持依赖分解 快速检查更新的正确性 3 最小化重复信息 尽可能地使用最小的空8 31因为BCNF并不总是保持依赖的 有些情况下BCNF的分解会妨碍对某些函数依赖的高效检查 BCNF也可能会保留一些冗余 所以有时候也会选择其它范式 比如3NF 20 第十四章 14 12原子性 原子性的用途在于保证程序执行的步骤集合作为一个单一的 不可分割的单元出现 使事务不可分割 要么执行其全部内容 要么不执行 隔离性 该特性确保事务正常执行而不被来自并发执行的数据库语句所干扰 持久性 持久性使得事务的操作在系统崩溃后也是持久的 一致性 一致性要求一个事物作为原子从一个一致的数据库状态开始独立地运行 且事务结束时数据库也必须再次是一致的 14 13 1 活动状态 部分提交状态 提交状态事务开始执行 执行完最后一条语句 并成功完成输出 2 活动状态 部分提交状态 失败状态 中止状态事务开始执行 执行完最后一条语句 发生硬件或逻辑故障使其无法输出 正常执行不能继续 事务回滚到初始状态 3 活动状态 失败状态 中止状态事务开始执行 在执行语句操作中发生硬件或逻辑错误 正常的执行不能继续 事务回滚到初始状态 21 第十四章 14 14串行调度是指一次执行一个事务 每个事务仅当前一个事务执行完成后才开始 同一时刻内只有一件事务处于执行中 可串行化调度是指 在并发执行中 通过保证所执行的任何调度的效果都与没有并发执行的调度效果一样 使得调度在结果

温馨提示

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

评论

0/150

提交评论