实用数据库系统开发 第八章 课后习题答案

合集下载

数据库原理及应用第八章课后习题答案

数据库原理及应用第八章课后习题答案

习题81、什么是数据库的安全性?数据库的安全性是指数据库的任何数据都不允许受到恶意的侵害或未经授权的存取或修改。

主要内涵包括三个方面:①保密性:不允许未经授权的用户存取数据。

②完整性:只允许被授权的用户修改数据。

③可用性:不应拒绝已授权的用户对数据进行存取。

2、什么是数据库的完整性?数据库的完整性是指数据库中数据的正确性和一致性。

数据库的完整性对数据库应用系统非常重要。

3、什么是数据库的完整性约束条件?为了保证数据库中的数据完整性,SQL Server设计了很多数据完整性约束:实体完整性、域完整性、参照完整性、用户定义完整性。

4、DBMS的完整性控制机制应具有哪些功能?1)数据库的完整性约束能够防止合法用户向数据库中添加不合语义的数据。

2)完整性控制机制易于理解,可以降低应用程序的复杂性,提高运行效率。

3)合理的数据完整性设计,能够兼顾数据库的完整性和系统的性能。

完善的数据库完整性,有助于尽早发现应用程序的错误。

5、DBMS在实现参照完整性时需要考虑哪些方面?强制参照完整性时,SQL Server将防止用户执行下列操作:1)在主表中没有关联的记录时,将记录添加或更改到相关表中。

2)更改主表中的值,导致相关表中生成孤立记录。

3)从主表中删除记录,但仍存在于该记录匹配的相关记录。

6、在关系系统中,当操作违反实体完整性、参照完整性和用户定义完整性约束条件时,一般是如何处理的?系统可以采用以下的策略加以处理:1)拒绝(NO ACTION)执行:不允许该操作执行,该策略一般为默认策略。

2)级联(CASCADE)操作:当删除或修改被参照表的一个元组造成了与参照表不一致,则删除或修改参照表中的所有造成不一致的元组。

3)设置为空值(SET-NULL):当删除或修改被参照表的一个元组造成了与参照表不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值。

7、数据库安全性和计算机系统的安全性有什么关系?计算机系统中,安全措施是一级一级层层设置。

(完整版)数据库课后习题及答案

(完整版)数据库课后习题及答案

第一章数据库系统概述选择题1实体-联系模型中,属性是指(C)A.客观存在的事物B.事物的具体描述C.事物的某一特征D.某一具体事件2对于现实世界中事物的特征,在E-R模型中使用(A)A属性描述B关键字描述C二维表格描述D实体描述3假设一个书店用这样一组属性描述图书(书号,书名,作者,出版社,出版日期),可以作为“键”的属性是(A)A书号B书名C作者D出版社4一名作家与他所出版过的书籍之间的联系类型是(B)A一对一B一对多C多对多D都不是5若无法确定哪个属性为某实体的键,则(A)A该实体没有键B必须增加一个属性作为该实体的键C取一个外关键字作为实体的键D该实体的所有属性构成键填空题1对于现实世界中事物的特征在E-R模型中使用属性进行描述2确定属性的两条基本原则是不可分和无关联3在描述实体集的所有属性中,可以唯一的标识每个实体的属性称为键4实体集之间联系的三种类型分别是1:1 、1:n 、和m:n5数据的完整性是指数据的正确性、有效性、相容性、和一致性简答题一、简述数据库的设计步骤答:1需求分析:对需要使用数据库系统来进行管理的现实世界中对象的业务流程、业务规则和所涉及的数据进行调查、分析和研究,充分理解现实世界中的实际问题和需求。

分析的策略:自下而上——静态需求、自上而下——动态需求2数据库概念设计:数据库概念设计是在需求分析的基础上,建立概念数据模型,用概念模型描述实际问题所涉及的数据及数据之间的联系。

3数据库逻辑设计:数据库逻辑设计是根据概念数据模型建立逻辑数据模型,逻辑数据模型是一种面向数据库系统的数据模型。

4数据库实现:依据关系模型,在数据库管理系统环境中建立数据库。

二、数据库的功能答:1提供数据定义语言,允许使用者建立新的数据库并建立数据的逻辑结构2提供数据查询语言3提供数据操纵语言4支持大量数据存储5控制并发访问三、数据库的特点答:1数据结构化。

2数据高度共享、低冗余度、易扩充3数据独立4数据由数据库管理系统统一管理和控制:(1)数据安全性(2)数据完整性(3)并发控制(4)数据库恢复第二章关系模型和关系数据库选择题1把E-R模型转换为关系模型时,A实体(“一”方)和B实体(“多”方)之间一对多联系在关系模型中是通过(A)来实现的A将A关系的关键字放入B关系中B建立新的关键字C建立新的联系D建立新的实体2关系S和关系R集合运算的结果中既包含S中元组也包含R中元组,但不包含重复元组,这种集合运算称为(A)A并运算B交运算C差运算D积运算3设有关系R1和R2,经过关系运算得到结果S,则S是一个(D)A字段B记录C数据库D关系4关系数据操作的基础是关系代数。

数据库系统与应用课后答案

数据库系统与应用课后答案

《数据库系统及应用》,戴小平,中国科技大学,2010.8 .第1 章数据库基础1.1 习题P22A.1 1.2 试述数据库、数据库系统、数据库管理系统这几个概念。

答案:B.1 数据库数据库是关于企业或组织的全部数据的集合。

数据库包含两部分:一是对数据结构的所有描述,存储于数据字典之中,二是数据数据本身,它是数据库的主体B.2 数据库系统数据库系统是指在计算机系统中引入数据库后的系统构成,由数据库、数据库管理系统、运行环境、数据库管理员和用户构成。

B.3 数据库管理系统数据库管理系统是位于用户与操作系统之间的一层数据管理软件,负责数据库管理和维护的软件系统。

A.2 1.3 试述数据管理技术的三个阶段,及其特点。

答案:B.1 手工管理阶段数据的组织和管理完全靠程序员手工完成,因此称为手工管理阶段。

这个阶段数据的管理效率很低。

C.1 特点:D.1 数据不保存。

D.2 应用程序管理数据。

D.3 数据不共享。

D.4 数据不具有独立性。

B.2 文件系统阶段在文件系统中,按一定的规则将数据组织成为一个文件,应用程序通过文件系统对文件中的数据进行存取和加工。

C.1 特点:D.1 数据可以长期保留。

D.2 数据不属于某个特定的应用程序。

D.3 文件组织形式的多样化。

D.4 数据冗余度大。

D.5 数据不一致性。

D.6 数据联系弱。

B.3 数据库系统阶段数据库技术克服了以前所有管理方式的缺点,试图提供一种完善的、更高级的数据管理方式。

它的基本思想是解决多用户数据共享的问题,实现对数据的集中统一管理,具有较高的数据独立性,并为数据提供各种保护措施。

C.1 特点:D.1 采用数据模型表示复杂的数据结构。

D.2 数据的共享性高,冗余度低,易扩充。

D.3 数据具有较高的独立性。

D.4数据由DBM统一管理和控制。

A.3 1.4什么是数据模型及其三要素?答案:数据模型就是在数据世界中对概念模型的数据描述。

数据模型的三要素:数据结构、数据操作、完整性约束A.4 1.7 大学有若干个学院,每个学院有若干个系,每个系有若干个教师,每个教师开若干门课,每门课可以由不同的教师来教;学生属于不同的班级,班级属于不同的系;每个学生可以选修若干门课,每门课可以由不同的学生来选。

数据库系统原理课后习题参考答案

数据库系统原理课后习题参考答案

答案仅供参考第一章数据库系统概述选择题B、B、A简答题1、请简述数据,数据库,数据库管理系统,数据库系统得概念。

P27数据就是描述事物得记录符号,就是指用物理符号记录下来得,可以鉴别得信息。

数据库即存储数据得仓库,严格意义上就是指长期存储在计算机中得有组织得、可共享得数据集合。

数据库管理系统就是专门用于建立与管理数据库得一套软件,介于应用程序与操作系统之间。

数据库系统就是指在计算机中引入数据库技术之后得系统,包括数据库、数据库管理系统及相关实用工具、应用程序、数据库管理员与用户。

2、请简述早数据库管理技术中,与人工管理、文件系统相比,数据库系统得优点。

数据共享性高数据冗余小易于保证数据一致性数据独立性高可以实施统一管理与控制减少了应用程序开发与维护得工作量3、请简述数据库系统得三级模式与两层映像得含义。

P31答:数据库得三级模式就是指数据库系统就是由模式、外模式与内模式三级工程得,对应了数据得三级抽象。

两层映像就是指三级模式之间得映像关系,即外模式/模式映像与模式/内模式映像。

4、请简述关系模型与网状模型、层次模型得区别。

P35使用二维表结构表示实体及实体间得联系建立在严格得数学概念得基础上概念单一,统一用关系表示实体与实体之间得联系,数据结构简单清晰,用户易懂易用存取路径对用户透明,具有更高得数据独立性、更好得安全保密性。

第二章关系数据库选择题C、C、D简答题1、请简述关系数据库得基本特征。

P48答:关系数据库得基本特征就是使用关系数据模型组织数据。

2、请简述什么就是参照完整性约束。

P55答:参照完整性约束就是指:若属性或属性组F就是基本关系R得外码,与基本关系S得主码K相对应,则对于R中每个元组在F上得取值只允许有两种可能,要么就是空值,要么与S中某个元组得主码值对应。

3、请简述关系规范化过程。

答:对于存在数据冗余、插入异常、删除异常问题得关系模式,应采取将一个关系模式分解为多个关系模式得方法进行处理。

数据库系统概论习题集第八章数据库并发控制

数据库系统概论习题集第八章数据库并发控制

数据库系统概论习题集第⼋章数据库并发控制第⼋章数据库并发控制 ⼀、选择题 1.为了防⽌⼀个⽤户的⼯作不适当地影响另⼀个⽤户,应该采取()。

A. 完整性控制B. 访问控制C. 安全性控制D. 并发控制 2. 解决并发操作带来的数据不⼀致问题普遍采⽤()技术。

A. 封锁B. 存取控制C. 恢复D. 协商 3.下列不属于并发操作带来的问题是()。

A. 丢失修改B. 不可重复读C. 死锁D. 脏读 4. DBMS普遍采⽤()⽅法来保证调度的正确性。

A. 索引B. 授权C. 封锁D. ⽇志 5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。

A. ⼀级封锁协议B. ⼆级封锁协议C. 三级封锁协议D. 零级封锁协议 6.如果事务T获得了数据项Q上的排他锁,则T对Q()。

A. 只能读不能写B. 只能写不能读C. 既可读⼜可写D. 不能读也不能写 7.设事务T1和T2,对数据库中地数据A进⾏操作,可能有如下⼏种情况,请问哪⼀种不会发⽣冲突操作()。

A. T1正在写A,T2要读A B. T1正在写A,T2也要写A C. T1正在读A,T2要写A D. T1正在读A,T2也要读A 8.如果有两个事务,同时对数据库中同⼀数据进⾏操作,不会引起冲突的操作是()。

A. ⼀个是DELETE,⼀个是SELECT B. ⼀个是SELECT,⼀个是DELETE C. 两个都是UPDATE D. 两个都是SELECT 9.在数据库系统中,死锁属于()。

A. 系统故障B. 事务故障C. 介质故障D. 程序故障 选择题答案: (1) D (2) A (3) C (4) C (5) A (6) C (7) D (8) D (9) B ⼆、简答题 1. 在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运⾏。

当多个事务并发地存取数据库时就会产⽣同时读取和/或修改同⼀数据的情况。

若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的⼀致性。

数据库原理与应用教程第四版 第八章答案

数据库原理与应用教程第四版 第八章答案

免责声明:私人学习之余整理,如有错漏,概不负责1.简述数据库设计过程。

需求分析、结构设计、行为设计、数据库实施、数据库库运行和维护2.数据库结构设计包含哪几个过程?概念结构、逻辑结构和物理机构3.需求分析中发现事实的方法有哪些?检查文档、面谈、观察业务的运转、研究、问卷调查4.数据库概念结构设计有哪些特点?丰富的语义表达能力、易于交流和理解、易于更改、易于向各种数据模型转换5.什么是数据库的逻辑结构设计?简述其设计步骤。

将概念设计产生的概念模型转换为具体的数据库管理系统支持的组织层数据模型概念结构转换为关系数据模型、对关系数据模型进行优化、设计面向用户的外模式6.把E-R模型转换为关系模式的转换规则有哪些?1)一个实体转换为一个关系模式2)1对1联系可以转换为独立的关系模式,也可以与任意一端对应的关系模式合并3)1对多联系可以转换为独立的关系模式,也可以与多端所对应的关系模式合并4)多对多联系必须转换为独立的关系模式5)三个或三个以上实体间的多元联系可以转换为一个关系模式6)具有相同主码的关系模式可以合并7.数据模型的优化包含哪些方法?1)确定各属性间的函数依赖关系2)对各个关系模式之间的书依赖进行极小化处理,消除冗余联系3)判断每个关系模式的范式,根据实际需要确定最合适的范式4)根据需求分析阶段得到的处理要求,确定是否对某些模式进行分解或合并8.合并为一个E-R图,转为符合第三范式的关系模式,说明主码外码关系模式如下(主码有下划线):职工(职工编号,姓名,性别,年龄,职务,部门)外码:部门部门(部门号,部门名,电话,地点)设备(设备号,名称,规格,价格,部门)外码:部门零件(零件号,零件名,规格,价格)厂商(厂商号,厂商名,电话,地址)生产表(厂商号,零件号,生产日期)外码:厂商号,零件号装备表(设备号,零件号,零件数量)外码:设备号,零件号9.建立描述顾客在商店的购物情况的数据库应用系统,该系统有如下要求:商店和顾客多对多,顾客每次购物有购物金额和购物日期,,每个客户每天在每个商店最多一次购物。

(完整word版)数据库原理与应用教程 何玉洁 五——八章课后习题部分答案

(完整word版)数据库原理与应用教程 何玉洁 五——八章课后习题部分答案

第五章一、试说明使用视图的好处。

答:1、简化数据查询语句2、使用户能从多角度看待同一数据3、提高了数据的安全性4、提供了一定程度的逻辑独立性二、使用视图可以加快数据的查询速度,这句话对吗?为什么?答:不对。

因为数据库管理系统在对视图进行查询时,首先检查要查询的视图是否存在,如果存在,则从数据字典中提取视图的定义,把视图的定义语句对视图语句结合起来,转换成等价的对基本表的查询,然后再执行转换后的查询,所以使用视图不可以加快数据的查询速度。

三、利用第3章建立的Student、Course和SC表,写出创建满足下述要求的视图的SQL语句。

(1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。

答:CREATE VIEW IS_S_CASSELECT Sno,Sname,Sdept,Cno,Cname,CreditFROM Student S JOIN SC ON S.Sno=SC.SnoJOIN Course C ON o=o四、利用第三题建立的视图,完成如下查询:(1)查询考试成绩大于等于90分的学生的姓名、课程号和成绩。

答:SELECT Sname,Cno,GradeFROM IS_SCWHERE Grade>=90五、修改第三题(4)定义的视图,使其查询每个学生的学号,总学分以及总的选课门数。

答:ALTER VIEW IS_CCASSELECT Sno,COUNT(Credit),COUNT(Cno)FROM SC JOIN Course C ON o=oGROUP BY Sno第六章一、关系规范化中的操作异常有哪些?它是由什么引起的?解决的方法是什么?答:操作异常:数据冗余问题、数据更新问题、数据插入问题和数据删除问题。

它是由关系模式中某些属性之间存在的“不良”的函数依赖关系一起的。

解决的方法是进行模式分解,即把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。

数据库系统原理教程课后习题及答案(第八章)

数据库系统原理教程课后习题及答案(第八章)

第8章关系查询处理和查询优化1 .试述查询优化在关系数据库系统中的重要性和可能性。

答:重要性:关系系统的查询优化既是RDBMS 实现的关键技术又是关系系统的优点所在。

它减轻了用户选择存取路径的负担。

用户只要提出“干什么”,不必指出“怎么干”。

查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化’夕做得更好。

可能性:这是因为:( l )优化器可以从数据字典中获取许多统计信息,例如关系中的元组数、关系中每个属性值的分布情况、这些属性上是否有索引、是什么索引(B +树索引还是HASH 索引或惟一索引或组合索引)等。

优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。

( 2 )如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。

在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。

( 3 )优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员一般只能考虑有限的几种可能性。

( 4 )优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。

系统的自动优化相当于使得所有人都拥有这些优化技术。

2 .对学生一课程数据库有如下的查询:SEI 王CT Cn 即ne FROM Student , Cou 拐e , SC WHERE Student . Sno = SC . Sno AND SC . Cllo = Coll 拐e . Cllo AND Stu 击nt . Sdept = ! 15 ! ; 此查询要求信息系学生选修了的所有课程名称。

试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。

答:3 .试述查询优化的一般准则。

答:下面的优化策略一般能提高查询效率:( l )选择运算应尽可能先做;( 2 )把投影运算和选择运算同时进行;( 3 )把投影同其前或其后的双目运算结合起来执行;( 4 )把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算;( 5 )找出公共子表达式;( 6 )选取合适的连接算法。

数据库系统原理与设计(第2版)课后习题详细答案

数据库系统原理与设计(第2版)课后习题详细答案

数据库系统原理与设计习题集第一章绪论一、选择题1. DBS是采用了数据库技术的计算机系统,DBS是一个集合体,包含数据库、计算机硬件、软件和( )。

A。

系统分析员B。

程序员C。

数据库管理员D。

操作员2。

数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是().A。

DBS包括DB和DBMS B。

DBMS包括DB和DBSC。

DB包括DBS和DBMS D. DBS就是DB,也就是DBMS3. 下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是().I.人工管理阶段II.文件系统阶段III.数据库阶段A. I 和II B。

只有IIC. II 和III D。

只有I4. 下列四项中,不属于数据库系统特点的是().A. 数据共享B. 数据完整性C。

数据冗余度高D。

数据独立性高5. 数据库系统的数据独立性体现在() 。

A.不会因为数据的变化而影响到应用程序B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序C。

不会因为存储策略的变化而影响存储结构D.不会因为某些存储结构的变化而影响其他的存储结构6。

描述数据库全体数据的全局逻辑结构和特性的是().A。

模式 B. 内模式C。

外模式D。

用户模式7. 要保证数据库的数据独立性,需要修改的是()。

A。

模式与外模式B。

模式与内模式C。

三层之间的两种映射D. 三层模式8。

要保证数据库的逻辑数据独立性,需要修改的是() .A。

模式与外模式的映射B。

模式与内模式之间的映射C。

模式D. 三层模式9。

用户或应用程序看到的那部分局部逻辑结构和特征的描述是(),它是模式的逻辑子集.A。

模式B. 物理模式C. 子模式D. 内模式10。

下述()不是DBA数据库管理员的职责。

A。

完整性约束说明B。

定义数据库模式C。

数据库安全D. 数据库管理系统设计选择题答案:(1)C (2)A (3)D (4) C (5) B(6) A (7)C (8) A (9) C (10)D二、简答题1.试述数据、数据库、数据库系统、数据库管理系统的概念。

数据库系统概论课后习题及参考答案

数据库系统概论课后习题及参考答案

课后作业习题数据库系统概论课程部分习题及参考答案第一章绪论教材 41页1.试述数据、数据库、数据库系统、数据库管理系统的概念;数据:描述事物的符号记录称为数据;数据的种类有文字、图形、图象、声音、正文等等;数据与其语义是不可分的;数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合;数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享;数据库系统:数据库系统 DBS是指在计算机系统中引入数据库后的系统构成;数据库系统由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员构成;数据库管理系统:数据库管理系统 DBMS是位于用户与操作系统之间的一层数据管理软件;用于科学地组织和存储数据、高效地获取和维护数据;DBMS主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能;2.使用数据库系统有什么好处使用数据库系统的好处是由数据库管理系统的特点或优点决定的;使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等;为什么有这些好处,可以结合第 5题来回答;使用数据库系统可以大大提高应用开发的效率;因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS来完成;此外,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性;数据逻辑结构的改变是 DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序;从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改;使用数据库系统可以减轻数据库系统管理人员维护系统的负担;因为 DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由DBMS执行;总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护;3.试述文件系统与数据库系统的区别和联系;文件系统与数据库系统的区别:文件系统面向某一应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制;数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力;文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件;5.试述数据库系统的特点;数据库系统的主要特点有:一、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别;二、数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用;由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充;三、数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性;数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性;四、数据由 DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据;为此, DBMS 必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复;6.数据库管理系统的主要功能有哪些①数据库定义功能;②数据存取功能;③数据库运行管理;④数据库的建立和维护功能;7.试述数据模型的概念、数据模型的作用和数据模型的三个要素;数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架;一般地讲,数据模型是严格定义的概念的集合;这些概念精确地描述系统的静态特性、动态特性和完整性约束条件;因此数据模型通常由数据结构、数据操作和完整性约束三部分组成;①数据结构:是所研究的对象类型的集合,是对系统的静态特性的描述;②数据操作:是指对数据库中各种对象型的实例值允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述;③数据的约束条件:是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容;8.试述概念模型的作用;概念模型实际上是现实世界到机器世界的一个中间层次;概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言;9.定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图 E-R图实体:客观存在并可以相互区分的事物叫实体;实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型;实体集:同型实体的集合称为实体集;属性:实体所具有的某一特性,一个实体可由若干个属性来刻画;码:唯一标识实体的属性集称为码;实体联系图: E-R图提供了表示实体型、属性和联系的方法:·实体型:用矩形表示,矩形框内写明实体名;·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型 1 : 1,1 : n或m : n;第二章关系数据库教材81页1.试述关系模型的三个组成部分;答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成;2.试述关系数据语言的特点和分类;答:关系数据语言可以分为三类:关系代数语言例如 ISBL关系演算语言元组关系演算语言例如 APLHA,QUEL 和域关系演算语言例如QBE具有关系代数和关系演算双重特点的语言例如 SQL这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用;3. 定义并理解下列术语,说明它们之间的联系与区别:1域,关系,元组,属性答:域:域是一组具有相同数据类型的值的集合;关系:在域 D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为RD1,D2,…,Dn元组:关系中的每个元素是关系中的元组;属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域;由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性 Attribute;2主码,候选码,外部码答:候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码 Candidate key;主码:若一个关系有多个候选码,则选定其中一个为主码 Primary key;外部码:设 F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码Foreign key,简称外码;基本关系 R称为参照关系Referencing relation,基本关系S称为被参照关系Referenced relation或目标关系Target relation;关系R和S可以是相同的关系;3关系模式,关系,关系数据库关系模式:关系的描述称为关系模式 Relation Schema;它可以形式化地表示为:RU,D,dom,F其中 R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合;关系:在域 D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为RD1,D2,…,Dn关系是关系模式在某一时刻的状态或内容;关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据;关系数据库:关系数据库也有型和值之分;关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式;关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库;4.试述关系模型的完整性规则;在参照完整性中,为什么外部码属性的值也可以为空什么情况下才可以为空答:关系模型的完整性规则是对关系的某种约束条件;关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性;参见教材在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定;但前提条件是该外部码属性不是其所在关系的主属性;例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空;其语义是,该学生的专业尚未确定;学生学号,姓名,性别,专业号,年龄专业专业号,专业名而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空;因为关系模型必须满足实体完整性;课程课程号,课程名,学分选修学号,课程号,成绩5.等值连接与自然连接的区别是什么答:自然连接 Natural join是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉;第三章关系数据库标准语言 SQL 教材148页1. 试述SQL语言的特点;答:1综合统一; SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体;2高度非过程化;用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成;3面向集合的操作方式;SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合;4以同一种语法结构提供两种使用方式;SQL语言既是自含式语言,又是嵌入式语言;作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用;5语言简捷,易学易用;2. 试述SQL的定义功能;答:SQL的数据定义功能包括定义表、定义视图和定义索引;SQL语言使用CREATE TABLE语句定义建立基本表,;ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表;建立索引使用CREATE INDEX语句建立索引, DROP INDEX语句删除索引表;SQL语言使用CREATE VIEW命令建立视图,DROP VIEW语句删除视图;3. 用SQL语句建立第3章习题3中的四个表;答:对于 S表:S SNO,SNAME,STATUS,CITY;建 S表CREATE TABLE SSNO CHAR3,SNAME CHAR10,STATUS CHAR2,CITY CHAR10;PPNO,PNAME,COLOR,WEIGHT;建 P表、建J表、建SPJ表略;4. 针对上题中建立的四个表试用SQL语言完成第3章习题3中的查询;答:1 求供应工程J1零件的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=‘J1';2 求供应工程J1零件P1的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=‘J1'AND PNO=‘P1';3 求供应工程J1零件为红色的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=‘J1'AND PNO INSELECT PNOFROM PWHERE COLOR=‘红';4 求没有使用天津供应商生产的红色零件的工程号JNO;略, 注意:从 J 表入手,以包含那些尚未使用任何零件的工程号;5. 针对习题3中的四个表试用SQL语言完成以下各项操作:1找出所有供应商的姓名和所在城市;2找出所有零件的名称、颜色、重量;3找出使用供应商S1所供应零件的工程号码;4找出工程项目J2使用的各种零件的名称及其数量;5找出上海厂商供应的所有零件号码;6找出使用上海产的零件的工程名称;7找出没有使用天津产的零件的工程号码;8把全部红色零件的颜色改成蓝色;9由S5供给J4的零件P6改为由S3供应,请作必要的修改;10从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;11请将 S2,J6,P4,200 插入供应情况关系;答:1 找出所有供应商的姓名和所在城市;SELECT SNAME, CITYFROM S;2 找出所有零件的名称、颜色、重量;SELECT PNAME, COLOR, WEIGHTFROM P;3 找出使用供应商S1所供应零件的工程号码; SELECT JNOFROM SPJWHERE SNO=‘S1';4 找出工程项目J2使用的各种零件的名称及其数量; SELECT ,FROM P, SPJWHERE =AND ='J2';5 找出上海厂商供应的所有零件号码;SELECT DISTINCT PNOFROM SPJWHERE SNO INSELECT SNOFROM SWHERE CITY='上海';6 找出使用上海产的零件的工程名称;SELECT JNAMEFROM J, SPJ, SWHERE J. JNO=SPJ. JNOAND SPJ. SNO=AND ='上海';7 找出没有使用天津产的零件的工程号码;略8 把全部红色零件的颜色改成蓝色;UPDATE PSET COLOR='蓝'WHERE COLOR='红' ;9 由S5供给J4的零件P6改为由S3供应,请作必要的修改;UPDATE SPJSET SNO='S3'WHERE SNO='S5' AND JNO='J4' AND PNO='P6';10 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;解析:注意删除顺序,应该先从 SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2;11 请将 S2,J6,P4,200 插入供应情况关系;INSERT INTO SPJSNO, JNO, PNO, QTYVALUES S2,J6,P4,200;6. 什么是基本表什么是视图两者的区别和联系是什么答:基本表是本身独立存在的表,在 SQL中一个关系就对应一个表;视图是从一个或几个基本表导出的表;视图本身不独立存储在数据库中,是一个虚表;即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中;视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图;7. 试述视图的优点;答: 1视图能够简化用户的操作;2视图使用户能以多种角度看待同一数据;3视图对重构数据库提供了一定程度的逻辑独立性;4视图能够对机密数据提供安全保护;8. 所有的视图是否都可以更新为什么答:不是;视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新;因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的;9. 哪类视图是可以更新的,哪类视图是不可更新的各举一例说明;答:基本表的行列子集视图一般是可更新的;如教材中的例1;若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的;如教材中的S_G视图;11. 请为三建工程项目建立一个供应情况的视图,包括供应商代码SNO、零件代码 PNO、供应数量QTY;针对该视图完成下列查询:1找出三建工程项目使用的各种零件代码及其数量;2找出供应商S1的供应情况;答:建视图:CREATE VIEW V_SPJ ASSELECT SNO, PNO, QTYFROM SPJWHERE JNO=SELECT JNOFROM JWHERE JNAME='三建';对该视图查询:1 找出三建工程项目使用的各种零件代码及其数量; SELECT PNO, QTYFROM V_SPJ;2 找出供应商S1的供应情况;SELECT PNO, QTY / S1供应三建工程的零件号和对应的数量/ FROM V_SPJWHERE SNO='S1';第五章关系数据理论教材 196页1.理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、候选码、主码、外码、全码;答:函数依赖:设 R U是一个关系模式,U是R的属性集合,X和Y是U的子集;对于R U的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同, 而在Y上的属性值不同, 则称"X函数确定Y"或"Y函数依赖于X",记作X→Y;完全函数依赖、部分函数依赖:在 RU中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖;候选码、主码:设 K为RU,F中的属性或属性组合,若K → U则K为R的候选码;若候选码多于一个,则选定其中的一个为主码;外码:关系模式 R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码;全码:整个属性组是码,称为全码 All-key;2.建立一个关于系、学生、班级、学会等诸信息的关系数据库;描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;描述学会的属性有:学会名、成立年份、地点、人数;有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生;一个系的学生住在同一宿舍区;每个学生可参加若干学会,每个学会有若干学生;学生参加某学会有一个入会年份;请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖;指出各关系的候选码、外部码,有没有全码存在答:关系模式:学生 SS,SN,SB,DN,C,SA班级 CC,CS,DN,CNUM,CDATE系 DD,DN,DA,DNUM学会 PPN,DATE1,PA,PNUM学生 --学会SPS,PN,DATE2其中, S—学号,SN—姓名,SB—出生年月,SA—宿舍区C—班号,CS—专业名,CNUM—班级人数,CDATE—入校年份D—系号,DN—系名,DA—系办公室地点,DNUM—系人数PN—学会名,DATE1—成立年月,PA—地点,PNUM—学会人数,DATE2—入会年份每个关系模式的极小函数依赖集:S:S→SN,S→SB,S→C,C→DN,DN→SAC:C→CS,C→CNUM,C→CDATE,CS→DN,CS,CDATE→CD:D→DN,DN→D,D→DA,D→DNUMP:PN→DATE1,PN→PA,PN→PNUMSP:S,PN→DATE2S中存在传递函数依赖: S→DN, S→SA, C→SAC中存在传递函数依赖:C→DNS,PN→DATE2 和CS,CDATE→C 均为SP中的函数依赖,是完全函数依赖关系候选码外部码全码S S C,DN 无C C,CS,CDATE DN 无D D和DN 无无P PN 无无SP S,PN S,PN 无4. 试举出三个多值依赖的实例;答:1关系模式MSCM,S,C中,M表示专业,S表示学生,C表示该专业的必修课;假设每个专业有多个学生,有一组必修课;设同专业内所有学生的选修的必修课相同,实例关系如下;按照语义对于M的每一个值M i,S有一个完整的集合与之对应而不问C取何值,所以M→→S;由于C与S的完全对称性,必然有M→→C成立;M S CM 1 S1 C1M 1 S1 C2M 1 S2 C1M 1 S2 C2………………2关系模式ISAI,S,A中,I表示学生兴趣小组,S表示学生,A表示某兴趣小组的活动项目;假设每个兴趣小组有多个学生,有若干活动项目;每个学生必须参加所在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加;按照语义有 I→→S,I→→A成立;3关系模式RDPR,D,P中,R表示医院的病房,D表示责任医务人员,P表示病人;假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人;按照语义有R→→D,R→→P成立;第六章数据库设计教材241页1. 试述数据库设计过程;1 需求分析2 概念结构设计3 逻辑结构设计4 数据库物理设计5 数据库实施6 数据库运行和维护这是一个完整的实际数据库及其应用系统的设计过程;不仅包括设计数据库本身,还包括数据库的实施、数据库运行和维护;设计一个完善的数据库应用系统往往是上述六个阶段的不断反复;2. 试述数据库设计过程的各个阶段上的设计描述;答:各阶段的设计要点如下:1 需求分析:准确了解与分析用户需求包括数据与处理;2 概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型;3 逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化;4 数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构包括存储结构和存取方法;5 数据库实施:设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行;6 数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改;3. 试述数据库设计过程中结构设计部分形成的数据库模式;答:数据库结构设计的不同阶段形成数据库的各级模式,即:在概念设计阶段形成独立于机器特点,独立于各个 DBMS产品的概念模式,在本篇中就是E-R图;在逻辑设计阶段将 E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后在基本表的基础上再建立必要的视图View,形成数据的外模式;在物理设计阶段,根据 DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式;概念模式是面向用户和设计人员的,属于概念模型的层次;逻辑模式、外模式、内模式是 DBMS支持的模式,属于数据模型的层次;可以在DBMS中加以描述和存储;4. 试述数据库设计的特点;答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目;其主要特点有:1 数据库建设是硬件、软件和干件技术与管理的界面的结合;2 从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构数据设计和行为处理设计密切结合起来;5. 需求分析阶段的设计目标是什么调查的内容是什么答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象组织、部门、企业等,充分了解原系统手工系统或计算机系统工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能;调查的内容是“数据”和“处理”,即获得用户对数据库的如下要求:1信息要求;指用户需要从数据库中获得信息的内容与性质;由信息要求可以导出数据要求,即在数据库中需要存储哪些数据;2处理要求;指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理;3安全性与完整性要求;6. 数据字典的内容和作用是什么答:数据字典是系统中各类数据描述的集合;数据字典的内容通常包括:数据项、数据结构、数据流、数据存储、处理过程五个部分其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构;数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容;数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善;注意,数据库设计阶段形成的数据字典与后面讲到的数据字典不同,后者是 DBMS关于数据库中数据的描述,当然两者是有联系的;7. 什么是数据库的概念结构试述其特点和设计策略;答:概念结构是信息世界的结构,即概念模型,其主要特点是:1能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求;是对现实世界的一个真实模型;2易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键;。

精编【安全生产】数据库课后题答案第八章管理SQLS的安全性

精编【安全生产】数据库课后题答案第八章管理SQLS的安全性

【安全生产】数据库课后题答案第八章管理SQLS的安全性xxxx年xx月xx日xxxxxxxx集团企业有限公司Please enter your company's name and contentv第八章SQL Server的安全性要点:SQL Server 2000两级权限管理机制登陆帐户和服务器角色数据库用户和数据库角色权限的管理第一节SQL Server 2000安全性概述作为一种数据库管理系统,SQL Server2000系统中存储了用户大量的业务数据,这些数据都是用户的商业机密。

这些商业数据必须得到安全保障。

安全性管理是数据库管理系统的一个重要组成部分。

安全性就是确保只有授权的用户才能使用数据库中的数据和执行相应的操作,安全性管理包括两个方面的内容,一是用户能否登录系统和如何登录的管理,二是用户能否使用数据库中的对象和执行相应操作的管理。

SQL Server2000提供了一套完整的安全机制。

一、认证进程和认证模式认证进程就是指当用户访问数据库系统时,系统对该用户帐号和口令的确认过程,认证的内容包括确认用户的帐号是否有效、是否能访问系统、能访问系统中的哪些数据等。

认证模式就是指系统选择何种认证进程确认用户的方式。

用户必须使用一个登录帐号,才能连接到SQL Server系统中。

SQL Server系统通过两种认证进程来确认用户的身份,这两种认证进程是:(1)WINDOWS认证进程(2)SQL Server认证进程当SQL Server在WINDOWS环境中运行时,系统管理员必须指定系统的认证模式类型。

认证模式类型有两种:(1)WINDOWS认证模式(2)混合模式WINDOWS认证模式只允许使用WINDOWS认证进程。

这时,用户不能指SQL Server的登录帐号。

混合认证模式既允许使用WINDOWS认证进程,又允许使用SQL Server认证进程。

在混合认证模式中,当某个用户希望登录SQL Server系统时,系统是采用WINDOWS认证进程还是采用SQL Server认证进程取决于该用户连接到系统的网络协议类型。

《数据库原理与应用(SQL Server 2005)》第八章数据查询课后答案

《数据库原理与应用(SQL Server 2005)》第八章数据查询课后答案

7、select top 10 productid,productname,unitprice from products
order by unitprice
8、select * from products
select categoryid, count(categoryid) as '产品数量',avg(unitprice) as '平均价格',max(unitprice) as '最高价格'
in(select supplierid from suppliers where country='USA')
17.
select e1.employeeid,stname,e2.ReportsTo from employees as e1 left join employees as e2 on e1.employeeid=e2.ReportsTo
参考答案:
select e2.employeeid,stname from employees as e1 right join employees as e2 on e1.employeeid=e2.ReportsTo
更改后的第十七题的答案:select e1.employeeid, stname ,e1.title,count(e2.reportsto) as '下属个数'
from employees as e1 left join employees as e2 on e1.employeeid=e2.ReportsTo
group by e1.employeeid,stname,e1.title
18.

数据仓库与数据挖掘教程(第2版)课后习题答案 第八章

数据仓库与数据挖掘教程(第2版)课后习题答案 第八章

第七章作业说明等价关系、等价类以及划分的定义。

等价关系:对于∀a ∈A (A 中包含一个或多个属性),A ⊆R ,x ∈U ,y ∈U ,他们的属性值相同,即fa (x )=fb (y )成立,称对象x 和y 是对属性A 的等价关系。

等价类:在U 中,对属性集A 中具有相同等价关系的元素集合成为等价关系IND (A )的等价类。

划分:在U 中对属性A 的所有等价类形成的划分表示为A={Ei | Ei=[xi]a ,i=1,2,… } 说明集合X 的上、下近似关系定义。

下近似定义:任一一个子集X ⊆U ,属性A 的等价类Ei=[x]A ,有:A-(X )=U{Ei|Ei ∈A ∧Ei ⊆X} 或A-(X )={x|[x]A ⊆X} 表示等价类Ei=[x]A 中的元素x 都属于X ,即∀x ∈A-(X ),则x 一定属于X 。

上近似定义:任一一个子集X ⊆U ,属性A 的等价类Ei=[x]A ,有:A-(X )=U{Ei|Ei ∈A ∧Ei ∩X ≠∅} 或A-(X )={x|[x]A ∩X ≠∅} 表示等价类Ei=[x]A 中的元素x 可能属于X ,即∀x ∈A-(X ),则x 可能属于X ,也可能不属于X 。

说明正域、负域和边界的定义。

全集U 可以划分为三个不相交的区域,即正域(pos ),负域(neg )和边界(bnd ): POSA(X)= A-(X )NEGA(X)=U- A-(X )BNDA(X) = A-(X )-A-(X )4.粗糙集定义:若 ,即 , 即边界为空,称X 为A 的可定义集; 否则X 为A 不可定义的,即 ,称X 为A 的Rough 集(粗糙集)确定度定义:()A U A X A X X U α----=其中U 和A X A X ---分别表示集合U 、(AX AX ---)中的元素个数5.在信息表中根据等价关系,我们可以用等价类中的一个对象(元组)来代表整个等价类,这实际上是按纵方向约简了信息表中数据。

课后习题答案第8章

课后习题答案第8章

课后习题答案第8章1. 概述第8章是XXX课程的课后习题答案,本文档将为大家提供第8章的课后习题答案,以帮助同学们复习和加深对知识点的理解。

2. 习题答案2.1 问题1问题描述:请列举出几种数据库管理系统(DBMS)的类型,并且给出它们的特点。

答案:•关系型数据库管理系统(RDBMS):以关系模型为基础的数据库管理系统,使用表格的形式来组织数据,支持SQL语言进行数据操作。

具有数据一致性、可靠性高等特点。

•非关系型数据库管理系统(NoSQL):相对于关系型数据库,NoSQL数据库采用非关系型的数据组织方式,更加适用于大规模分布式存储和处理。

具有高可扩展性、灵活性等特点。

•面向对象数据库管理系统(OODBMS):将对象概念引入数据库系统,将对象作为数据库的主要组织单位,支持面向对象的数据库操作和查询。

具有数据隐蔽性、可重用性等特点。

•XML数据库管理系统(XML-DBMS):以XML标准为基础的数据库管理系统,可以存储和管理XML格式的数据。

具有对XML数据的高效操作和查询能力。

2.2 问题2问题描述:请解释什么是数据库索引,它的作用是什么?答案:数据库索引是对数据库表中一列或多列的值进行排序的一种数据结构,它可以快速地定位到具有特定值的数据记录。

索引可以加快数据库的查询速度,减少数据扫描的时间。

具体而言,索引的作用包括:•提高数据库查询的效率:索引可以根据索引键值快速定位到数据记录,加快查询速度。

•减少磁盘I/O的需求:通过使用索引,数据库可以减少需要扫描的数据块数量,从而减少磁盘I/O的次数。

•保证数据的唯一性:索引可以设置为唯一索引,确保某一列的值在表中是唯一的。

•支持表之间的关联:通过使用外键和关联索引,数据库可以实现表之间的关联和连接操作。

2.3 问题3问题描述:请解释什么是数据库事务,它的特点是什么?答案:数据库事务是一组数据库操作的逻辑单元,它被视为一个不可分割的工作单位,要么全部执行成功,要么全部回滚。

(完整版)数据库系统基础教程第八章答案(20201128002827)

(完整版)数据库系统基础教程第八章答案(20201128002827)

Section 1Exercise 8.1.1a)CREATE VIEW RichExec ASSELECT * FROM MovieExec WHERE netWorth >= 10000000;b)CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExec, Studio WHERE MovieExec.cert# = Studio.presC#;c)CREATE VIEW ExecutiveStar (name, address, gender, birthdate, cert#, netWorth) ASSELECT , star.address, star.gender, star.birthdate, exec.cert#, Worth FROMMovieStar star, MovieExec exec WHERE = AND star.address = exec.address; Exercise 8.1.2a)SELECT name from ExecutiveStar WHERE gender = ‘ f ';b)SELECT from RichExec, StudioPres where = ;c)SELECT from ExecutiveStar, StudioPresWHERE Worth >= 50000000 ANDStudioPres.cert# = RichExec.cert#;Section 2Exercise 8.2.1The views RichExec and StudioPres are updatable; however, the StudioPres view needs to be created with a subquery.CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExec WHEREMovieExec.cert# IN (SELECT presCt# from Studio);Exercise 8.2.2a) Yes, the view is updatable.b)CREATE TRIGGER DisneyComedyInsertINSTEAD OF INSERT ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWINSERT INTO Movies(title, year, length, studioName, genre)VALUES(NewRow.title, NewRow.year, NewYear.length, ‘ Disney ', ‘ comedy' );c)CREATE TRIGGER DisneyComedyUpdateINSTEAD OF UPDATE ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE Movies SET length NewRow.lengthWHERE title = NewRow.title AND year = NEWROW.year AND studionName = ‘ DisneyA'ND genre =‘ comedy';Exercise 8.2.3a) No, the view is not updatable since it is constructed from two different relations.b)CREATE TRIGGER NewPCInsertINSTEAD OF INSERT ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROW(INSERT INTO Product VALUES(NewRow.maker, NewRow.model, ‘ pc)')(INSERT INTO PC VALUES(NewRow.model, NewRow.speed, NewRow.ram, NewRow.hd, NewRow.price));c)CREATE TRIGGER NewPCUpdateINSTEAD OF UPDATE ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE PC SET price = NewPC.price where model = NewPC.model;d)CREATE TRIGGER NewPCDeleteINSTEAD OF DELETE ON NeePCREFERENCING OLD ROW AS OldRowFOR EACH ROW(DELETE FROM Product WHERE model = OldRow.model)(DELETE FROM PC where model = OldRow.model);Section 3Exercise 8.3.1a)CREATE INDEX Name In dex on Studio( name);b)CREATE INDEX AddressI ndex on MovieExec(address);c)CREATE INDEX Genrein dex on Movies(ge nre, le ngth);Sectio n 4Exercise 8.4.1Actio n No In dex Star In dex Movie In dex Both In dexesQ1 100 4 100 4Q2 100 100 4 4I 2 4 4 6Average 2 + 98p1 + 98p2 4 + 96 p2 4 + 96 p1 6 -2 p1 -2 p2Exercise 8.4.2Q1 = SELECT * FROM Ships WHERE n ame = n; Q2 = SELECT * FROM Ships WHERE class = c; Q3 = SELECT * FROM Ships WHERE la un ched = y; I = In sertsIn dexes Acti ons No ne Name Class Launched Name &ClassName &LaunchedClass &LaunchedThree In dexesQ1 50 2 50 50 2 2 50 2Q2 1 1 2 1 2 1 2 2Q3 50 50 50 26 50 26 26 26I 2 4 4 4 6 6 6 8Average 2 + 4 + 4 + 4 + 46p1 6 - 4p1 6 - 4p1 - 6 - 44p1 - 8 - 6p1 - 48p1 - 46 p3 46p1 - -3p2 + -4p2 + 5p2 + 20p3 4p2 + 20p3 6p2 + 18p3p2 + -2 p1 2p2 + 22p3 44p348p3 -3 p2 46p3The best choice of in dexes (n ame and laun ched) has an average cost of 6p- 4 5p2 + 20p3 per operati on.Section 5Exercise 8.5.1Updates to movies that involves title or yearUPDATE MovieProd SET title = ‘ newTitle ' where title= ' oldTitle ' A;ND year = oldYear UPDATE MovieProd SET year = newYear where title= ' oldYitle ' AND year = oldYear;Update to MovieExec involving cert#DELETE FROM MovieProdWHERE (title, year) IN (SELECT title, yearFROM Movies, MovieExecWHERE cert# = oldCert# AND cert# = producerC#);INSERT INTO MovieProdSELECT title, year, nameFROM Movies, MovieExec WHERE cert# = newCert# AND cert# = producerC#;Exercise 8.5.2Insertions, deletions, and updates to the base tables Product and PC would require a modification of the materialized view.Insertions into Product with type equal to ‘ pc':INSERT INTO NewPC SELECT maker, model, speed, ram, hd, price FROM Product, PC WHERE Product.model = newModel and Product.model = PC.model;Insertions into PC:INSERT INTO NewPC SELECT maker, ‘ newModel' , ‘ newSpeed' , ‘ newRam' , ‘ newHd' , ‘ newPrice FROM Product WHERE model = ‘ newModel';Deletions from Product with type equal to ‘ pc':DELETE FROM NewPC WHERE maker = ‘deletedMaker ' AND model= 'deletedModel '; Deletions from PC:DELETE FROM NewPC WHERE model = ‘deletedModel ';Updates to PC:Update NewPC SET speed=PC.speed, ram=PC.ram, hd=PC.hd, price=PC.price FROM PC wheremodel=pc.model;Update to the attribute ‘ model' needs to be treated as a delete and an insert.Updates to Product:Any changes to a Produc t uple whose type is ne‘edpcto'be treated as a delete or aninsert, or both.Exercise 8.5.3Modifications to the base tables that would require a modification to the materialized view: inserts and deletes from Ships, deletes from class, updatetos a Class ' displace.mentDeletions from Ship:UPDATE ShipStats SETdisplaceme nt=((displaceme nt * count)-(SELECT displacementFROM ClasssesWHERE class = ‘DeletedShipClass '))/ (count T),count = count TWHEREcountry = (SELECT country FROM Classes WHERE class= 'DeletedShipClass ');Insertions into Ship:Update ShipStat SETdisplacement=((displacement*count) +(SELECT displacement FROM ClassesWHERE class= 'InsertedShipClass ')) / (count + 1),count = count + 1WHEREcountry = (SELECT country FROM Classes WHERE classes= 'InsertedShipClass);Deletes from Classes:NumRowsDeleted = SELECT count(*) FROM ships WHERE class = ‘DeletedClass ';UPDATE ShipStats SETdisplacement = (displacement * count) - (DeletedClassDisplacement *NumRowsDeleted)) / (cou nt -NumRowsDeleted), count = count -NumRowsDeleted WHERE country = ‘DeletedClassCountry ';Update to a Class ' displacement:N = SELECT count(*) FROM Ships where class = ‘UpdatedClass ';UPDATE ShipsStat SETdisplacement = ((displacement * count) + ((oldDisplacement-newDisplacement) N))/count WHEREcountry = ‘UpdatedClassCountry ';Exercise 8.5.4Queries that can be rewritten with the materialized view:Names of stars of movies produced by a certain producerSELECT starNameFROM StarsIn, Movies, MovieExecWHERE movieTitle = title AND movieYear = year AND producerC# = cert# AND name = ‘Max Bialystock '; Movies produced by a certain producerSELECT title, yearFROM Movies, MovieExecWhere producerC# = cert# AND name = ‘George L;ucas 'Names of producers that a certain star has worked withSELECT nameFROM Movies, MovieExec, StarsInWhere producerC#=cert# AND title=movieTitle AND year=movieYear AND starName='Carrie Fisher ';The number of movies produced by given producerSELECT count(*)FROM Movies, MovieExecWHERE producerC#=cert# AND name = ‘George Lucas ‘;Names of producers who also starred in their own moviesSELECT nameFROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND = starName;The number of stars that have starred in movies produced by a certain producerSELECT count(DISTINCT starName)FROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND name ‘ George Lucas '; The number of movies produced by each producerSELECT name, count(*)FROM Movies, MovieExecWHERE producerC#=cert# GROUP BY name。

电大数据库系统及应用形考册第8章习题与参考答案

电大数据库系统及应用形考册第8章习题与参考答案

电大数据库系统及应用形考册第8章习题与参考答案一.单项选择题1.在数据库设计中,将E-R图转换为关系数据模型是下述哪个阶段完成的工作(C)。

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段A.只需包含m端关系模式的主码即可B.只需包含n端关系模式的主码即可C.至少包含m端和n端关系模式的主码D.必须添加新的属性作为主码3.在将局部E-R图合并为全局E-R图时,可能会产生一些冲突。

下列冲突中不属于合并E-R图冲突的是(B)。

A.结构冲突B.语法冲突C.属性冲突D.命名冲突A.一对一B.一对多C.多对一D.多对多A.实体A和实体B分别对应一个关系模式,且外码放在实体B的关系模式中B.实体A和实体B分别对应一个关系模式,且外码放在实体A的关系模式中C.为实体A和实体B设计一个关系模式,该关系模式包含两个实体的全部属性6.设有描述图书出版情况的关系模式:出版(书号,出版日期,印刷数量),设一本书可以被出版多次,每次出版都有一个印刷数量。

该关系模式的主码是(B)。

A.书号B.(书号,出版日期)C.(书号,印刷数量)D.(书号,出版日期,印刷数量)7.在数据库设计中,进行用户子模式设计是下述哪个阶段要完成的工作(C)。

A.需求分析阶段B.概念结构设计阶段C.逻辑结构设计阶段D.物理结构设计阶段二.填空题1.数据库设计分为五个阶段,包括(需求分析)、概念设计、(逻辑设计)、(物理设计)、数据库实施和运行维护。

2.需求分析阶段的主要目的是回答(“干什么”)问题。

3.(系统需求说明书)是需求分析阶段的重要成果,它的主要内容就是画出(数据流图),建立数据字典和编写加工说明。

4.将局部E-R图集成为全局E-R图时,可能存在三类冲突,分别是(属性冲突)、(命名冲突)和(结构冲突)。

5.物理结构设计中一个重要的考虑就是确定数据记录的存储方式。

常用的存储方式有:(顺序存储)、(散列存储)和(聚簇存储)。

三.简答题1.数据库设计分为哪几个阶段?每个阶段的主要工作是什么。

(完整版)数据库系统基础教程第八章答案

(完整版)数据库系统基础教程第八章答案

Section 1Exercise 8.1.1a)CREATE VIEW RichExec ASSELECT * FROM MovieExec WHERE netWorth >= 10000000;b)CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExec, Studio WHERE MovieExec.cert# = Studio.presC#;c)CREATE VIEW ExecutiveStar (name, address, gender, birthdate, cert#, netWorth) AS SELECT , star.address, star.gender, star.birthdate, exec.cert#, WorthFROM MovieStar star, MovieExec exec WHERE = ANDstar.address = exec.address;Exercise 8.1.2a)SELECT name from ExecutiveStar WHERE gender = ‘f’;b)SELECT from RichExec, StudioPres where = ;c)SELECT from ExecutiveStar, StudioPresWHERE Worth >= 50000000 ANDStudioPres.cert# = RichExec.cert#;Section 2Exercise 8.2.1The views RichExec and StudioPres are updatable; however, the StudioPres view needs to be created with a subquery.CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExecWHERE MovieExec.cert# IN (SELECT presCt# from Studio);Exercise 8.2.2a) Yes, the view is updatable.b)CREATE TRIGGER DisneyComedyInsertINSTEAD OF INSERT ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWINSERT INTO Movies(title, year, length, studioName, genre)VALUES(NewRow.title, NewRow.year, NewYear.length, ‘Disney’, ‘comedy’);c)CREATE TRIGGER DisneyComedyUpdateINSTEAD OF UPDATE ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE Movies SET length NewRow.lengthWHERE title = NewRow.title AND year = NEWROW.year ANDstudionName = ‘Disney’ AND genre = ‘comedy’;Exercise 8.2.3a) No, the view is not updatable since it is constructed from two different relations.b)CREATE TRIGGER NewPCInsertINSTEAD OF INSERT ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROW(INSERT INTO Product VALUES(NewRow.maker, NewRow.model, ‘pc’))(INSERT INTO PC VALUES(NewRow.model, NewRow.speed, NewRow.ram, NewRow.hd, NewRow.price));c)CREATE TRIGGER NewPCUpdateINSTEAD OF UPDATE ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE PC SET price = NewPC.price where model = NewPC.model;d)CREATE TRIGGER NewPCDeleteINSTEAD OF DELETE ON NeePCREFERENCING OLD ROW AS OldRowFOR EACH ROW(DELETE FROM Product WHERE model = OldRow.model)(DELETE FROM PC where model = OldRow.model);Section 3Exercise 8.3.1a)CREATE INDEX NameIndex on Studio(name);b)CREATE INDEX AddressIndex on MovieExec(address);c)CREATE INDEX GenreIndex on Movies(genre, length);Section 4Exercise 8.4.1Exercise 8.4.2Q1 = SELECT * FROM Ships WHERE name = n;Q2 = SELECT * FROM Ships WHERE class = c;Q3 = SELECT * FROM Ships WHERE launched = y;I = InsertsIndexesNone Name Class Launched Name & Name & Class & ThreeSection 5Exercise 8.5.1Updates to movies that involves title or yearUPDATE MovieProd SET title = ‘newTitle’ where title=’oldTitle’ AND year = oldYear; UPDATE MovieProd SET year = newYear where title=’oldYitle’ AND year = oldYear;Update to MovieExec involving cert#DELETE FROM MovieProdWHERE (title, year) IN (SELECT title, yearFROM Movies, MovieExecWHERE cert# = oldCert# AND cert# = producerC#);INSERT INTO MovieProdSELECT title, year, nameFROM Movies, MovieExecWHERE cert# = newCert# AND cert# = producerC#;Exercise 8.5.2Insertions, deletions, and updates to the base tables Product and PC would require a modification of the materialized view.Insertions into Product with type equal to ‘pc’:INSERT INTO NewPCSELECT maker, model, speed, ram, hd, price FROM Product, PC WHEREProduct.model = newModel and Product.model = PC.model;Insertions into PC:INSERT INTO NewPCSELECT maker, ‘newModel’, ‘newSpeed’, ‘newRam’, ‘newHd’, ‘newPrice’FROM Product WHERE model = ‘newModel’;Deletions from Product with type equal to ‘pc’:DELETE FROM NewPC WHERE maker = ‘deletedMaker’ AND model=’deletedModel’; Deletions from PC:DELETE FROM NewPC WHERE model = ‘deletedModel’;Updates to PC:Update NewPC SET speed=PC.speed, ram=PC.ram, hd=PC.hd, price=PC.price FROM PC where model=pc.model;Update to the attribute ‘model’ needs to be treated as a delete and an insert. Updates to Product:Any changes to a Product tuple whose type is ‘pc’ need to be treated as a delete or an insert, or both.Exercise 8.5.3Modifications to the base tables that would require a modification to the materialized view: inserts and deletes from Ships, deletes from class, updates to a Class’ displacement. Deletions from Ship:UPDATE ShipStats SETdisplacement=((displacement * count) –(SELECT displacementFROM ClasssesWHERE class = ‘DeletedShipClass’)) / (count – 1),count = count – 1WHEREcountry = (SELECT country FROM C lasses WHERE class=’DeletedShipClass’); Insertions into Ship:Update ShipStat SETdisplacement=((displacement*count) +(SELECT displacement FROM ClassesWHERE class=’InsertedShipClass’)) / (count + 1),count = count + 1WHEREcountry = (SELECT country FROM Classes WHERE classes=’InsertedShipClass); Deletes from Classes:NumRowsDeleted = SELECT count(*) FROM ships WHERE class = ‘DeletedClass’; UPDATE ShipStats SETdisplacement = (displacement * count) - (DeletedClassDisplacement *NumRowsDeleted)) / (count – NumRowsDeleted),count = count – NumRowsDeletedWHERE country = ‘DeletedClassCountry’;Update to a Class’ displacement:N = SELECT count(*) FROM Ships where class = ‘UpdatedClass’;UPDATE ShipsStat SETdisplacement = ((displacement * count) + ((oldDisplacement – newDisplacement) * N))/countWHEREc ountry = ‘UpdatedClassCountry’;Exercise 8.5.4Queries that can be rewritten with the materialized view:Names of stars of movies produced by a certain producerSELECT starNameFROM StarsIn, Movies, MovieExecWHERE movieTitle = title AND movieYear = year AND producerC# = cert# AND name = ‘Max Bialystock’;Movies produced by a certain producerSELECT title, yearFROM Movies, MovieExecWhere produce rC# = cert# AND name = ‘George Lucas’;Names of producers that a certain star has worked withSELECT nameFROM Movies, MovieExec, StarsInWhere producerC#=cert# AND title=movieTitle AND year=movieYear AND starName=’Carrie Fisher’;The number of movies produced by given producerSELECT count(*)FROM Movies, MovieExecWHER E producerC#=cert# AND name = ‘George Lucas‘;Names of producers who also starred in their own moviesSELECT nameFROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND = starName;The number of stars that have starred in movies produced by a certain producer SELECT count(DISTINCT starName)FROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND n ame ‘George Lucas’;The number of movies produced by each producerSELECT name, count(*)FROM Movies, MovieExecWHERE producerC#=cert# GROUP BY name。

(完整版)数据库系统基础教程第八章答案

(完整版)数据库系统基础教程第八章答案

Section 1Exercise 8.1.1a)CREATE VIEW RichExec ASSELECT * FROM MovieExec WHERE netWorth >= 10000000;b)CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExec, Studio WHERE MovieExec.cert# = Studio.presC#;c)CREATE VIEW ExecutiveStar (name, address, gender, birthdate, cert#, netWorth) AS SELECT , star.address, star.gender, star.birthdate, exec.cert#, WorthFROM MovieStar star, MovieExec exec WHERE = ANDstar.address = exec.address;Exercise 8.1.2a)SELECT name from ExecutiveStar WHERE gender = ‘f’;b)SELECT from RichExec, StudioPres where = ; c)SELECT from ExecutiveStar, StudioPresWHERE Worth >= 50000000 ANDStudioPres.cert# = RichExec.cert#;Section 2Exercise 8.2.1The views RichExec and StudioPres are updatable; however, the StudioPres view needs to be created with a subquery.CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExec WHERE MovieExec.cert# IN (SELECT presCt# from Studio);Exercise 8.2.2a) Yes, the view is updatable.b)CREATE TRIGGER DisneyComedyInsertINSTEAD OF INSERT ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWINSERT INTO Movies(title, year, length, studioName, genre)VALUES(NewRow.title, NewRow.year, NewYear.length, ‘Disney’, ‘comedy’);c)CREATE TRIGGER DisneyComedyUpdateINSTEAD OF UPDATE ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE Movies SET length NewRow.lengthWHERE title = NewRow.title AND year = NEWROW.year ANDstudionName = ‘Disney’ AND genre = ‘comedy’;Exercise 8.2.3a) No, the view is not updatable since it is constructed from two different relations.b)CREATE TRIGGER NewPCInsertINSTEAD OF INSERT ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROW(INSERT INTO Product VALUES(NewRow.maker, NewRow.model, ‘pc’))(INSERT INTO PC VALUES(NewRow.model, NewRow.speed, NewRow.ram, NewRow.hd, NewRow.price));c)CREATE TRIGGER NewPCUpdateINSTEAD OF UPDATE ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE PC SET price = NewPC.price where model = NewPC.model;d)CREATE TRIGGER NewPCDeleteINSTEAD OF DELETE ON NeePCREFERENCING OLD ROW AS OldRowFOR EACH ROW(DELETE FROM Product WHERE model = OldRow.model)(DELETE FROM PC where model = OldRow.model);Section 3Exercise 8.3.1a)CREATE INDEX NameIndex on Studio(name);b)CREATE INDEX AddressIndex on MovieExec(address);c)CREATE INDEX GenreIndex on Movies(genre, length);Section 4Exercise 8.4.1Action No Index Star Index Movie Index Both Indexes Q110041004Q210010044I2446 Average 2 + 98p1 + 98p2 4 + 96 p2 4 + 96 p1 6 – 2 p1 – 2 p2 Exercise 8.4.2Q1 = SELECT * FROM Ships WHERE name = n;Q2 = SELECT * FROM Ships WHERE class = c;Q3 = SELECT * FROM Ships WHERE launched = y;I = InsertsIndexes Actions None Name Class Launched Name &ClassName &LaunchedClass &LaunchedThreeIndexesQ1502505022502 Q21121212 2 Q35050502650262626 I24446668Average 2 +48p1 -p2 +48p34 +46 p3- 2 p1- 3 p24 +46p1 -2p2 +46p34 + 46p1- 3p2 +22p36 - 4p1- 4p2 +44p36 - 4p1 -5p2 + 20p36 - 44p1 -4p2 + 20p38 - 6p1 -6p2 + 18p3The best choice of indexes (name and launched) has an average cost of 6 - 4p1 - 5p2 + 20p3 per operation.Section 5Exercise 8.5.1Updates to movies that involves title or yearUPDATE MovieProd SET title = ‘newTitle’ where title=’oldTitle’ AND year = oldYear; UPDATE MovieProd SET year = newYear where title=’oldYitle’ AND year = oldYear; Update to MovieExec involving cert#DELETE FROM MovieProdWHERE (title, year) IN (SELECT title, yearFROM Movies, MovieExecWHERE cert# = oldCert# AND cert# = producerC#);INSERT INTO MovieProdSELECT title, year, nameFROM Movies, MovieExecWHERE cert# = newCert# AND cert# = producerC#;Exercise 8.5.2Insertions, deletions, and updates to the base tables Product and PC would require a modification of the materialized view.Insertions into Product with type equal to ‘pc’:INSERT INTO NewPCSELECT maker, model, speed, ram, hd, price FROM Product, PC WHEREProduct.model = newModel and Product.model = PC.model;Insertions into PC:INSERT INTO NewPCSELECT maker, ‘newModel’, ‘newSpeed’, ‘newRam’, ‘newHd’, ‘newPrice’FROM Product WHERE model = ‘newModel’;Deletions from Product with type equal to ‘pc’:DELETE FROM NewPC WHERE maker = ‘deletedMaker’ ANDmodel=’deletedModel’;Deletions from PC:DELETE FROM NewPC WHERE model = ‘deletedModel’;Updates to PC:Update NewPC SET speed=PC.speed, ram=PC.ram, hd=PC.hd, price=PC.price FROM PC where model=pc.model;Update to the attribute ‘model’ needs to be treated as a delete and an insert. Updates to Product:Any changes to a Product tuple whose type is ‘pc’ need to be treated as a delete or an insert, or both.Exercise 8.5.3Modifications to the base tables that would require a modification to the materialized view: inserts and deletes from Ships, deletes from class, updates to a Class’ displacement. Deletions from Ship:UPDATE ShipStats SETdisplacement=((displacement * count) –(SELECT displacementFROM ClasssesWHERE class = ‘DeletedShipClass’)) / (count – 1),count = count – 1WHEREcountry = (SELECT country FROM Classes WHERE class=’DeletedShipClass’); Insertions into Ship:Update ShipStat SETdisplacement=((displacement*count) +(SELECT displacement FROM ClassesWHERE class=’InsertedShipClass’)) / (count + 1),count = count + 1WHEREcountry = (SELECT country FROM Classes WHERE classes=’InsertedShipClass); Deletes from Classes:NumRowsDeleted = SELECT count(*) FROM ships WHERE class = ‘DeletedClass’; UPDATE ShipStats SETdisplacement = (displacement * count) - (DeletedClassDisplacement *NumRowsDeleted)) / (count – NumRowsDeleted),count = count – NumRowsDeletedWHERE country = ‘DeletedClassCountry’;Update to a Class’ displacement:N = SELECT count(*) FROM Ships where class = ‘UpdatedClass’;UPDATE ShipsStat SETdisplacement = ((displacement * count) + ((oldDisplacement – newDisplacement) * N))/countWHEREcountry = ‘UpdatedClassCountry’;Exercise 8.5.4Queries that can be rewritten with the materialized view:Names of stars of movies produced by a certain producerSELECT starNameFROM StarsIn, Movies, MovieExecWHERE movieTitle = title AND movieYear = year AND producerC# = cert# AND name = ‘Max Bialystock’;Movies produced by a certain producerSELECT title, yearFROM Movies, MovieExecWhere producerC# = cert# AND name = ‘George Lucas’;Names of producers that a certain star has worked withSELECT nameFROM Movies, MovieExec, StarsInWhere producerC#=cert# AND title=movieTitle AND year=movieYear AND starName=’Carrie Fisher’;The number of movies produced by given producerSELECT count(*)FROM Movies, MovieExecWHERE producerC#=cert# AND name = ‘George Lucas‘;Names of producers who also starred in their own moviesSELECT nameFROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND = starName;The number of stars that have starred in movies produced by a certain producer SELECT count(DISTINCT starName)FROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND name ‘George Lucas’;The number of movies produced by each producerSELECT name, count(*)FROM Movies, MovieExecWHERE producerC#=cert# GROUP BY name。

数据库原理与应用系列第八章习题(含答案)

数据库原理与应用系列第八章习题(含答案)

第八章习题(答案)班级:学号: 姓名:1.填空题(1)SQL Server 有两种安全认证模式,即___WINDOWS_______________安全认证模式和______混合______安全认证模式。

(2)SQL SERVER安装好以后,只有2个已经创建的用户:___SA_______和BULTIN/administrators,它们都是超级用户,对数据库拥有一切权限。

(3)数据库的完整性是指数据的___正确性___和___相容性____。

(4)按数据库状态,数据转储分为动态转储和静态转储。

(5)按数据转储方式,数据转储分为海量转储和增量转储。

2.单选题(1)日志文件用于记录( D )。

A、程序运行过程B、数据操作C、程序运行结果D、对数据的更新操作(2)SQL的COMMIT语句的主要作用是( C )。

A、终止程序B、中断程序C、事务提交D、事务回退(3)SQL的ROLLBACK语句的主要作用是( D )。

A、终止程序B、中断程序C、事务提交D、事务回退(4)在数据库系统中,对存取权限的定义称为(B)。

A、命令B、授权C、定义D、审计(5)设有两个事务T1,T2,其并发操作如下表所示,下面评价正确的是(C )。

A、该操作不存在问题B、该操作丢失修改C、该操作不能重复读D、该操作读“脏”数据(6)设有两个事务T1,T2,其并发操作如下表所示,下面评价正确的是(B )。

A、该操作不存在问题B、该操作丢失修改C、该操作不能重复读D、该操作读“脏”数据(7)A、该操作不存在问题B、该操作丢失修改C、该操作不能重复读D、该操作读“脏”数据(8)若事务T对数据对象A加上S锁,则( C )A、事务T可以读A和修改A,其他事务只能再对A加S锁,而不能加X锁B、事务T可以读A但不能修改A,其他事务能对A加S锁和X锁C、事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁D、事务T可以读A和修改A,其他事务能对A加S锁和X锁(9)若事务T对数据对象A加上X锁,则( C )A、事务T可以读A和修改A,其他事务不能对A加X锁B、事务T可以修改A,其他事务不能对A加X锁C、事务T可以读A和修改A,其他事务都不能再对A加任何类型的锁D、事务T修改A,其他事务都不能再对A加任何类型的锁(10)数据库中的封锁机制是( C )的主要方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章教材jxsk8.1.1.1CREATE PROCEDURE Pro_Qsinf@Sno_in char(8)=’S2’,@Sname_out char(8) output,@Age_out int output,@Dept_out char(10) outputAs select @Sname_out=Sname,@Age_out=age,@Dept_out=deptFrom Student where sno=@Sno_inGO8.1.1.2USE jxskdeclare @Sno_in char(8),@Sname_out nvarchar(255),@Age_out int,@Dept_out nvarchar(255)exec Pro_Qsinf default,@Sname_out output,@Age_out output,@Dept_out outputprint @Sname_outprint @Age_outprint @Dept_outselect @Sno_in='S4'exec Pro_Qsinf @Sno_in,@Sname_out output,@Age_out output,@Dept_out outputprint @Sname_outprint @Age_outprint @Dept_outGo8.1.2.1USE jxskCREATE Procedure Pro_Qscore@Sname_in nvarchar(255),@Cname_in nvarchar(255),@Score_out float outputAs select @Score_out=Score from Student,Course,SCwhere Student.Sno=SC.Sno and o=o and Sname=@Sname_in and Cname=@Cname_in8.1.2.2USE jxskdeclare @Sname_in nvarchar(255),@Cname_in nvarchar(255),@Score_out floatselect @Sname_in='李思'select @Cname_in='程序设计'exec Pro_Qscore @Sname_in,@Cname_in,@Score_out outputprint Rtrim(@Sname_in)+'='+Ltrim(str(@Score_out))Go8.2.1CREATE PROCEDURE Pro_Qsinf@Sno_in char(2)='S2',@Sname_out char(8) output,@Age_out tinyint output,@Dept_out char(10) outputAs select @Sname_out=Sname,@Age_out=age,@Dept_out=deptfrom Student where sno=@Sno_inGO8.2.2Alter Procedure Pro_Qsinf@Sno_in char(2)='S1',@Sname_out char(8) output,@Sex_out char(2) output,@Dept_out char(10) outputASSelect @Sname_out=Sname,@Sex_out=Sex,@Dept_out=Deptfrom Student where Sno=@Sno_inGo8.3.2USE jxskDrop procedure Pro_QscoreGO习题Jiaoxuedb1.CREATE Procedure Pro_Qstuin@Sname_in char(8),@Cname_out char(8),@Score_out float,@Tname_out char(8) output AS select @Cname_out=Cname,@Score_out=Score,@Tname_out=Tnamefrom Student,Course,SC,Teacherwhere Student.Sno=SC.Sno and o=oand Sname=@Sname_inGO2.Create Procedure Pro_Qexage@Dept_in char(8),@Maxage_out float(8),@Minage_out float(8) outputAS select @Maxage_out=max(Age),@Minage_out=min(Age) from Studentwhere Dept=@Dept_inGO3.CREATE Procedure Pro_Qscore@Sname_in char(8),@Cname_in char(8),@Score_out float outputAs select @Score_out=Score from Student,Course,SCwhere Student.Sno=SC.Sno and o=oand Sname=@Sname_in and Cname=@Cname_inGO4.CREATE Procedure Pro_Qcount@Prof_in char(8),@count_out tinyint outputAs select @count_out=count(Tno) from Teacherwhere Prof=@Prof_ingroup by Profdeclare @Prof_in char(8),@count_out tinyintselect @Prof_in='副教授'exec Pro_Qcount @Prof_in,@count_out outputprint Rtrim(@Prof_in)+'='+Ltrim(str(@count_out))GO5.CREATE Procedure Pro_Qtdata@Prof_in char(8),@count_out tinyint,@Avgage_out int,@Avgsal_out float,@Maxsal_out float outputAs select @count_out=count(Tno),@Avgage_out=avg(Age),@Avgsal_out=avg(Sal),@Maxsal_out=max( Sal) from Teacherwhere Prof=@Prof_ingroup by ProfGO6.CREATE Procedure Pro_Qdept@dept_in char(16) ,@tcount_out int,@tavgage_out int,@scount_out int As select @tcount_out=count(Tno),@tavgage_out=avg(Teacher.Age),@scount_out=count(Sno) from Teacher,Studentwhere Teacher.Dept=@dept_in and Teacher.Dept=Student.Deptgroup by Teacher.DeptGO7.CREATE Procedure Pro_Qsc@Cname_in char(8),@Sname_out char(8),@dept_out char(16),@score_out float As select @Sname_out=Sname,@dept_out=Dept,@score_out=Score from Student,SC,Coursewhere o=o and SC.Sno=Student.Sno and Cname=@Cname_in GOdeclare @Cname_in char(8),@Sname_out char(8),@dept_out char(16),@score_out float select @Cname_in='程序设计'exec Pro_Qsc @Sname_out,@dept_out,@score_outprint Rtrim(@Cname_in)+' '+Ltrim(str(@Sname_out))+' '+Ltrim(str(@dept_out))+' '+Ltrim(str(@score_out))GO8.use jiaoxuedbCREATE Procedure Pro_Qstc@tname_in char(8),@cname_in char(8),@tcname_out char(8),@thour_out int,@ccount_out int,@avgscore_out int,@maxscore_out intas select @cname_out =Cname,@thour_out=sum(Chour),@ccount_out=count(Sno),@avgscore_out=avg(Score),@m axscore=max(Score)from Course,SC,TCwhere Tname=@tname_in,Cname=@cname_ingroup by CnoGOdeclare @tname_in char(8),@cname_in char(8),@tcname_out char(8),@thour_out int,@ccount_out int,@avgscore_out int,@maxscore_out intselect @tname_in='赵策'select @cname_in='计算机网络'exec Pro_Qstc @tname_in, @cname_in, @tcname_out, @thour_out, @ccount_out, @avgscore_out, @maxscore_outprint Rtrim(@tname_in)+' '+Ltrim(@cname_in)+' '+Ltrim(@tcname_out)+' '+Ltrim(@thour_out)+' '+Ltrim(@ccount_out)+' '+Ltrim(@avgscore_out)+''+Ltrim(@maxscore_out)GO8.Drop Procedure Pro_QstuinGO9.Drop Procedure Pro_QscoreDrop Procedure Pro_QcountGO。

相关文档
最新文档