数据库系统原理04735课后习题参考答案.doc_第1页
数据库系统原理04735课后习题参考答案.doc_第2页
数据库系统原理04735课后习题参考答案.doc_第3页
数据库系统原理04735课后习题参考答案.doc_第4页
数据库系统原理04735课后习题参考答案.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

精品文档数据库系统原理课后习题第一章. 数据库系统基本概念1.1. 名词解释DBDB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。DBMS是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。联系是实体间的相互关系。联系的元数与一个联系有关的实体集个数。:联系如果实体集E1中每个实体至多和实体集E2中一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“:”。:N联系如果实体集E1中的每个实体可以与实体集E2中的任意个(个或多个)实体有联系,而E2中的每个实体至多和E1中的一个实体有联系,那么称E1对E2的联系是一对多联系,记作:“:N ”。M:N联系如果实体集E中的每个实体可以与实体集E2中的任意个(个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记作“M:N”。数据模型在数据库技术中,我们用数据模型的概念描述数据库的结构和语义,对现实世界的数据进行抽象。根据数据抽象级别定义了四种模型:概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。概念模型表达用户需求观点的数据全局逻辑结构的模型。逻辑模型表达计算机实现观点的DB全局逻辑结构的模型。主要有层次、网状、关系模型等三种。外部模型表达用户使用观点的DB局部逻辑结构的模型。内部模型表达DB物理结构的模型。层次模型用树型(层次)结构表示实体类型及实体间联系的数据模型。网状模型用有向图结构表示实体类型及实体间联系的数据模型。关系模型是由若干个关系模式组成的集合。关系模式相当于记录类型,它的实例是关系,每个关系实际上是一张二维表格。外模式用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个外部记录类型组成。逻辑模式是数据库中全部数据的整体逻辑结构的描述。它由若干个逻辑记录类型组成,还包含记录间联系、数据的完整性、安全性等要求。内模式是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织形式,以及数据控制方面的细节。外模式/逻辑模式映像存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性,一般放在外模式中描述。逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性,一般放在内模式中描述。数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时,尽可能不修改应用程序。分物理数据独立性和逻辑数据独立性两个级别。物理数据独立性对内模式修改时,对逻辑模式/内模式像作相应修改,可以尽量不影响逻辑模式。逻辑数据独立性逻辑模式修改时,对外模式/逻辑模式映像作相应修改,可以使外模式和应用程序保持不变。主语言在数据库技术中,用于编写应用程序的高级程序设计语言。DDL数据定义语言。DBMS提供DDL定义数据库的三级结构、两级映像,定义数据的完整性约束、保密限制等约束。DML数据操纵语言。DBMS提供DML实现对数据的操作。基本的数据操作有两类:检索(查询)、更新(插入、删除、修改)。分为过程性DML和非过程DML两种。过程性DML是指用户编程时,不仅需要指出“做什么”(需要什么样的数据),还需要指出“怎么做”(怎样获得这些数据)。如层次、网状的DML。非过程性DML用户编程时,只需要指出“做什么”,不需要提出“怎么做”。如关系型DML。DD数据库系统中存放三级结构定义的数据库。它还存放数据库运行时的统计信息。DD系统管理DD的子系统。1.2. 人工管理阶段的数据管理有哪些特点?1) 数据不保存在计算机里2) 没有专门的软件进行对数据库管理3) 只有程序概念,没有文件概念4) 数据面向程序1.3. 文件系统阶段的数据管理有哪些特点?1) 数据以文件形式长期存储在外部存储器的磁盘上2) 数据的逻辑结构和物理结构有了区别,但比较简单3) 文件组织多样化,有了索引文件、链接文件和直接存取文件等4) 数据不再属于某个特定程序,可重复使用,即数据面向应用5) 对数据的操作以记录为单位1.4. 文件系统阶段的数据管理有哪些缺陷?请举例说明?1) 数据冗余、数据不一致、数据联系弱2) 比如建立了职工档案、职工工资和职工保健三个文件,职工的电话在三个文件中重复出现,即数据冗余。1.5. 数据管理的数据库阶段产生的标志是哪三件事情?1) 1968年IBM公司推出层次模型IMS系统2) 1969年美国CO组织发布了报告3) 1970年IBM公司的E .F.Codd连续发表论文,提出关系模型1.6. 数据库阶段的数据管理有哪些特色?1) 采用了数据模型表示复杂的数据结构2) 有较高的数据独立性3) 数据库系统提供了方便的用户接口4) 数据库系统提供了四个方面的数据控制功能:数据库的恢复、数据的并发控制、数据的完整性、数据完全性。5) 增加了系统的灵活性:对数据的操作不一定以记录为单位,可以以数据项为单位。1.7. 高级数据库阶段有哪些技术?面向对象的概念建模、开放数据库互联技术1.8. 逻辑记录与物理记录,逻辑文件与物理文件有哪些联系和区别?数据描述有两种形式:物理数据描述和逻辑物理描述。物理数据描述是指数据在存储设备上的描述,物理数据是存储在物理设备上的数据,物理记录和物理文件都是用来描述存储数据的细节。逻辑数据描述是用户或程序员以操作的数据形式的描述,逻辑记录和逻辑文件都是用户观点的数据描述。1.9. 数据抽象过程有哪些步骤?1) 根据用户的需求,设计数据的概念模型。2) 根据转换原则,把概念模式转换成逻辑模型。3) 根据用户的业务特点,设计不同的外部模型,供程序员使用。4) 根据逻辑模型设计内部模型,实现数据库。1.10. 概念模型、逻辑模型、外部模型、内部模型各具有哪些特点?概念模型:表达了数据的整体逻辑结构,它是系统用户对整个应用程序涉及数据的全面描述。从用户的需求的观点,对数据建模。独立于硬件和软件。它是数据库设计人员和用户之间的交流工具。逻辑模型:表达了数据库的整体逻辑结构,它是设计人员对整个应用程序系统项目数据库的全面描述。从数据库实现的观点,对数据建模。独立于硬件,但依赖软件DBMS。它是数据库设计人员和应用程序员的交流工具。外部模型:逻辑模型的一个逻辑子集,独立于硬件,但依赖软件,反映了用户使用数据库的观点。内部模型:是数据库最底层抽象,它描述数据在外存上存储方式、存储设备和存储方法。与硬件和软件关系密切。1.11. 试叙述层次、网状和关系三种逻辑模型的区别层次模型:用树型结构表示,较复杂,表示1:N,记录间联系用指针实现,过程性DML;网状模型:用向图结构表示,较复杂,表示1:N/M:N,记录间联系用指针实现,过程性DML;关系模型:用关系模式集合表示,较简单,表示1:N/M:N,记录间联系用关键码实现,非过程性DML;1.12. 外部模型使数据库系统有哪些优点?简化了用户观点;有助于数据库的安全保护;外部模型是对概念模型的支持 ;1.13. 数据独立性和数据联系这两个概念有什么区别?数据独立性是指应用程序和数据之间相互独立,不受影响。数据联系是指同一记录内部各字段间的联系,以及和记录之间的联系。1.14. 试叙述用户、DB的三级模式结构、磁盘上的物理文件之间有些什么联系和不同?在用户到数据库之间,DB的数据结构有三个层次:外部模型、逻辑模型、内部模型。这三个层次要用DB的数据定义语言定义后的内容是外模式、逻辑模式、内模式。用户使用DB的数据操纵语句实际上是对外模式的外部记录进行操作,而不是数据库的内部记录值;逻辑模式提供了连接内外模式的中间观点,使得两级中任何一级的改变都不受另一级的牵制,逻辑模式不涉及到存储结构、访问技术等细节。内模式并不涉及物理设备的约束,那一部分由操作系统完成。如磁盘读写数据的操作。1.15. 试述DBMS的工作模式和主要功能。DBMS的工作模式:1) 接受应用程序的数据请求和处理请求2) 将用户的数据请求转换成复杂的机器代码3) 实现对数据库的操作4) 从对数据库的操作中接受查询结果5) 对查询结果进行处理6) 将处理结果返回用户DBMS主要功能:数据库的定义功能数据库的操纵功能数据库的保护功能数据库的维护功能数据字典1.16. 什么是DB的系统缓冲区?其作用是什么?DBMS为应用程序在内存中开辟的一个DB的系统缓冲区。用于数据的传输和格式的转换。1.17. DBS由哪几部分组成?它有哪些系统软件?其中DD有什么作用?DBS由DB、硬件、软件、DBA组成它有DBM、OS、各种主语言和应用开发软件等系统软件DD是用来存放三级数据结构定义的数据库,用来存储数据运行时的统计信息。1.18. 什么是DBA?DBA应具有什么素质?DBA的职责是什么?DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。DBA需具有下来素质:熟悉全部数据的性质和用途、对所有用户需求的了解、对系统性能的熟悉度、兼有系统分析员和运筹学专家的知识和品质。DBA的职责:定义模式、定义内模式、与用户的联络、定义安全性规则,对用户访问数据库授权、定义完整性规则,监督数据库的运行、数据库的转储和恢复工作。1.19. 试对DBS的全局结构作详细解释。用户、DBMS(查询处理器、存储管理器)、磁盘存储器1.20. 从模块结构观察,DBMS由哪些部分组成?查询处理器、存储管理器1.21. 使用DBS的用户有哪几类?DBA、专业用户、程序员、终端用户1.22. DBMS的查询处理器和存储管理器分别由哪几部分组成?查询处理器:DDL解释器、DML编译器、嵌入式DML预编译器、查询求值引擎存储管理器:权限和完整性管理器、事务管理器、文件管理器、缓冲区管理器1.23. 磁盘存储器中有哪五类主要的数据结构?1) 数据文件:存储数据库管理的用户数据自身。2) 数据字典:存储三级结构的描述。3) 索引:为提高查询速度而设置的逻辑排序手段。4) 统计数据:存储DBS运行时统计分析的数据。5) 日志:存储DBS运行时对DB的操作情况。1.24. DBS能产生哪些效益?灵活性、简易性、面向用户、加快应用程序的开发速度、维护方便、标准化第二章. 数据库设计和ER模型2.1 名词解释数据库工程数据库应用系统的开发是一项软件工程,但又有自己的特点。数据库系统生存期数据库应用系统从规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。实体是一个数据对象,指应用中可以区别的客观存在的事物。实体集同一类实体构成的集合。实体类型是对实体集中实体的定义。实体标识符在一个实体中,能够唯一标识实体的属性或属性集合。联系表示一个或多个实体间的关联关系。联系集同一类联系构成的集合。联系类型对联系集中联系的定义。属性实体的某一特性。简单属性不可再分隔的属性。复合属性可再分解为其它属性的属性。单值属性同一实体的属性只能取一个值。多值属性同一实体的属性可能取多个值。存储属性需要把属性值存入数据库的属性。派生属性不需要把属性值存入数据库,属性值可以从其它属性值推导出的属性。联系元数(度数)指一个联系涉及的实体集个数。映射基数实体集E1和E2之间有二元联系,则参与一个联系中的实体的个数称为映射基数。完全参与如果实体集中的每个实体都参与联系集R的至少一个联系中,称实体集E完全参与。部分参与如果实体集中的只有部分实体参与联系集R的联系中,称实体集E部分参与。关系模型用二维表格表示实体集,用关键码表示实体间的联系的数据模型。关系模式关系模型中的记录类型。关系实例是一个属性集相同的元组的集合。(关系)属性关系模型中的字段。(关系)域关系模型中字段的取值范围。(关系)元组关系模型中的记录。超键在关系中能唯一标识元组的属性集,称为关系模式的超键。候选键不含有多余属性的超键。主键用户选作元组标识的候选键。外键如果模式R中的属性K是其它模式的主键,则K在模式R中称为外键。实体完整性规则要求关系中元组在组成主键的属性上不能有空值,否则就起不到唯一标识元组的作用了。参照完整性规则如果属性集K是关系模式R1的主键,同时也是关系模式R2的外键,那么在R2中,K的取值只允许有两种可能,或者为空值,或者等于R1关系中的某个主键值。弱实体如一个实体对另一个实体(强实体)具有很强的依赖联系,而且该实体主键的一部分或全部从其强实体中获得,则该实体为弱实体。子类实体当较低层次上的实体类型表达了与之联系的较高层次上的实体类型的特殊情况时,就称较低层次上的实体类型为子类实体。超类实体当较低层次上的实体类型表达了与之联系的较高层次上的实体类型的特殊情况时,就称较低层次上的实体类型为子类实体。2.2 数据库设计的规划阶段应做哪些事情?1) 系统调查。画出应用单位组织结构图。2) 可行性分析。从技术、经济、效益、法律等各方面可行性进行分析,写出可行性分析报告,组织专家讨论。3) 确定数据库系统的总目标,对应用单位的工作流程进行优化,制订项目开发计划。获得决策部门批准后,正式进入数据库系统开发。2.3 数据库设计的需求分析阶段工作主要由哪四步组成?1) 分析用户活动,产生业务流程图2) 确定系统范围,产生系统关联图3) 分析业务活动所涉及的数据,产生数据流图4) 分析系统数据,产生数据字典2.4 在数据库设计中,为什么要有概念设计这一阶段?使设计人员从用户的观点看待数据和处理需求、约束,产生反映用户观点的概念模型。将概念模设计从设计过程中独立开来,可以使数据库设计各阶段任务单一化,减少复杂度,便于组织管理,能较好地适应各种变化,转换成关系模式。2.5 试述概念设计的主要步骤?1) 进行数据抽象(聚集和概括方法),设计局部概念模型2) 将局部概念模型综合成全局概念模型(消除冲突)3) 评审(用户、DBA和开发人员评审)2.6 逻辑设计的目的是什么?试述逻辑设计阶段主要步骤及内容逻辑设计的目的是将概念模型转换成与所选用的具体机器上所支持的数据模型相符合的逻辑模型。逻辑设计阶段主要步骤:1) 将概念模型转换成逻辑模型2) 设计外模式3) 设计应用程序和数据库接口4) 评价模型(定量分析:处理频率、数据容量、性能测量)5) 修正模型2.7 什么是数据库结构的物理设计?试述其具体步骤。物理设计是对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程。数据库的物理结构主要指数据库存储记录格式、存储记录安排、存取方法。具体步骤:1) 存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。2) 确定数据存放位置:可以把经常同时访问的数据组合在一起。3) 存取方法设计:存取路径分为主存取路径与辅存取路径,前者用于主键检索,后者用于辅助键检索。4) 安全性和完整性考虑。5) 程序设计。2.8 数据库实现阶段主要有哪几件事情?1) 定义数据结构2) 数据装载:人工(刷选数据、转换数据格式、输入数据、校验数据)和计算机装载(筛选数据、输入数据、效验数据、转换数据、综合数据)3) 编制和调试应用程序4) 数据库试运行。2.9 数据库系统投入运行后,有哪些维护工作?1) 数据库的转储和恢复。2) 数据库的安全性、完整性控制。3) 数据库性能的监督、分析、改进。4) 数据库的重组织和重构造。2.10 在概念设计中,如何把多值属性变换成系统容易实现的形式?将原来的多值属性用几个新的单值属性表示。将原来的多值属性用一个新的实体类型表示。2.11 对联系类型有哪两种约束?试详细解释?联系类型的约束限制了参与联系的实体数目,有技术约束和参数约束。技术约束表示了一个联系的实体的个数约束,通过映射基数来表达,有1:1,1:N,M:N,M:1四种。参与约束表示了实体集中是部分实体还是全部实体参与联系集中的联系。有部分参与和完全参与两种。2.12 采用ER模型的数据库概念设计有哪些主要的步骤?1) 设计局部ER模型(确定局部结构范围、定义实体、定义联系、分配属性)2) 设计全局ER模型(确定公共实体类型、合并局部ER模型、消除冲突)3) 全局ER模型优化(合并实体类型、消除冗余属性、消除冗余联系)2.13 在关系模型中,关系具有哪些性质1) 关系中的每个属性值都是不可分解的。2) 关系中不允许出现重复组。3) 由于关系是一个集合,因此不考虑元祖间的顺序,即没有行序。4) 元祖的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。2.14 为什么关系中的元组没有先后顺序?且不允许有重复的元组?因为关系是一个元祖的集合,而元祖在集合中的顺序无关紧要,即没有行序。集合中的元素不允许重复出现,因此关系中的元组不能重复,可以用键来标识唯一的元组。2.15 参照完整性规则使用时,有哪些变通?试举例说明。1) 外键和相应的主键可以不同名,只要定义在相同的值域上即可。2) R1和R2可以是同一个关系模式,此时表示同一个关系中不同元组间的联系。3) 外键值是否允许为空,视具体情况而定。商店名商店编号地址2.16 商店1 M 销售N 聘用N 商品职工业绩性别价格规格商品名规格商品名职工名职工号商品编号商品名性别 商店(商店编号,店名,地址)商品(商品编号,商品名,规格,价格)职工(职工号,职工名,性别,业绩,商店编号)销售(销售单号,商店编号1,商品编号) 2.17 略2.18 略2.19 ER图转换成关系模式集的具体思想是什么?1) 实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标示符即为关系模式的键。2) 联系类型的转换:二元联系类型的转换:a) 如果实体间联系是1:1:1,在任意一个实体模型中加入另两个实体的主键作为外键。b) 如果实体间联系是1:1:N,在多方实体模式中加入两个1方的主键作为外键。c) 如果实体间联系是1:M:N,把联系类型转换为关系模式,其属性为M和N方实体类型的键(作为外键)加上联系类型的属性,而主键为M和N方主键的组合。d) 如果实体间联系是M:N:P, 其属性为三方实体类型的键(作为外键)加上联系类型的属性,而主键为三方主键的组合。2.20 采用ER模型的数据库逻辑设计有哪些步骤?导出初始化关系模式集、规范化处理、模式评价、模式修正、设计子模式。2.21 略2.22 图略仓库(仓库号,仓库名,地址,负责人)业务员(业务员编号,姓名,性别)商店(店号,店面,地址)商品(品号,品名,价格,规格)收银员(工号,姓名,性别,年龄,店号)经理(经理编号,姓名,性别,店号,工号)供应(供应单号,仓库号,店号,经手人)销售(销售单号,商品号,店号,经手人)进货(进货单号,商品号,业务员编号)2.23 略2.24 图略行车人员(驾驶执照号,姓名,地址,电话,邮编)车辆(机动车牌照号,型号,生产日期,制造厂)处罚方法(处罚编号,警告,处罚,暂扣驾驶执照)违章(违章编号,驾驶执照号,机动车牌照号,处罚编号)第三章. 关系模式设计理论3.1. 函数依赖设有关系模式R(U),X,Y是属性集U的子集,只要r是R有当前关系,对r中的任意两个元组t和s,都有tXsX蕴含tYsY,那么就称函数依赖(FD)XY在关系模式R(U)中成立。平凡的函数依赖对于FD XY,如果YX,那么该FD就是平凡的FD。函数依赖集F的闭包F+设F为函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合。属性集X的闭包X+设F是属性集U上的FD集,X是U的子集,那么属性集X的闭包是一个从F集使用FD推理规则推出的所有满足XA的属性A的集合。函数依赖的逻辑蕴涵设F是关系模式R上成立的函数依赖集合,XY是一个FD,如果对于R的每一个满足F的关系r也满足XY,那么称F逻辑蕴涵XY。函数依赖集的等价如果关系模式R(U)上的两个函数依赖集F和G,有F+G+,则称F和G是等价的函数依赖集。最小依赖集满足下面三个条件的函数依赖集G:G中每个FD的右边都是单属性;G中没有冗余的FD。即G中不存在这样的函数依赖XY,使得GXY与G等价;G中每个FD的左边没有冗余的属性。即G中不存在这样的函数依赖XY,X有一个真子集W,使得GXYUWY与G等价。无损分解设R是一个关系模式,F是R上的一个FD集,R分解成数据库模式。如果对R中满足F的每一个关系r,都有r在数据库中的各关系模式Ri上投影连接后仍为r,则称该数据库模式相对于F是无损分解的。泛关系假设在定义无损分解时,先假设存在泛关系r的情况下,再去谈论分解。Chase过程P79。保持函数依赖P80。1NF关系模式的每一个关系的属性值都是不可分的原子值。2NF关系模式是1NF,且每一个非主属性都完全函数依赖于候选键。3NF关系模式是1NF,且每一个非主属性都不传递依赖于候选键。BCNF关系模式是1NF,且每一个属性都不传递依赖于候选键。MVDP88。平凡的MVD对于属性集U上的MVD XY,如果YX或XYU。则此MVD是平凡的MVD。4NF设D是关系模式R上成立的FD和MVD的集合。如果D中每个非平凡的MVD XY的左部都是R的超键。3.2. 试解释下面两个“数据冗余”的概念:文件系统中不可避免的“数据冗余”关系数据库设计中应尽量避免的“数据冗余”文件系统中的“数据冗余”:由于在文件之间缺乏联系,造成每个应用程序都有相应的文件,有可能同样的数据在不同文件中重复存储。关系数据库设计中的“数据冗余”:数据库某一关系中多个元组大量重复存储同样的属性。3.3. 关系模式的非形式化设计准则有哪几条?这些准则对数据库设计有什么帮助?1) 尽可能指包含直接联系的属性,不要包含间接联系的属性。2) 尽可能使得相应关系中不出现插入、删除、修改异常现象。3) 尽可能使得相应关系中避免放置经常为空值的属性。4) 尽可能使得关系的等值连接在主键和外键的属性上进行,并保证以后不会产生额外的元组。3.4. 对函数依赖XY的定义加以扩充,X和Y可以为空属性集,用表示, 那么X,Y,的含义是什么?1) 一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2, 由t1X=t2X必有t1=t2。即X表示空属性函数依赖于X。这是任何关系中都存在的。2) )Y表示Y函数依赖于空属性。由此可知该关系中所有元组中Y属性的值均相同。3) 表示空属性函数依赖于空属性。这也是任何关系中都存在的。3.7已知关系模式R(ABC),F=AB,BC,求F+。(有43个FD)F+=,A,B,C,AB,BC,AC,AB,ABA,ABB,ABC,ABBC,ABAB,ABABC,BC,BCC,BCB,BCBC,AC,ACC,ACA,ACAC,ABC,ABCA,ABCB,ABCC,ABCBC,ABCAB,ABCABC3.16什么是寄生元组?什么是悬挂元组?各是怎么产生的?在泛关系模式分解成数据库模式时,泛关系r在数据库模式中的每一个模式上投影再连接起来,比原关系r多出来的元组是寄生元组。在无泛关系模式下,对两个关系进行自然连接中被丢失的元组,被称为悬挂元组。3.18试解释数据库“丢失信息”与“未丢失信息”两个概念。有什么区别?分解后是否表示一样的信息,如不一样就是丢失信息,否则就是未丢失信息。 后面题目省略第四章. 关系运算4.1. 无限关系无组数量无限多的关系。无穷验证验证一个公式时,必须对关系中所有元组进行验证。 4.10教师关系T(T#,TNAME,TITLE)课程关系C(C#,CNAME,T#)学生关系S(S#,SNAME,AGE,SEX)选课关系SC(S#,C#,SCORE)1) 检索年龄小于17岁的女学生的学号和姓名。S#,SNAME(age17sex=女(S)2) 检索男学生所学课程的课程号和成绩 C#,score(sex=男S.S#=SC.S#(SCC)3) 检索男学生所学课程的任课教师的工号和姓名t#,tname(sex=男 (SSCCT)4) 检索至少选修两门课的学生学号1(1=42!=5(SCSC)5) 检索至少有学号为S2和S4学生选修的课程的课程号2(2!=51=S2 4=S4(SCSC)6) 检索wang同学不学的课程号c#(C)- c# (sname=wang(SSC)7) 检索全部学生都选修的课程的课程号和课程名c#,cname(C(c#,s#(SC) s#(S) 8) 检索选修课程包含liu老师所授全部课程的学生学号s# (tname=liu(SCCT)4.13为什么要对关系代数表达式进行优化? 对于等价的关系表达式,因表达式中安排选择、投影、连接的顺序不同而执行效率也不一样。4.14有哪三条启发式规则?对优化起什么作用尽可能早地执行选择操作尽可能早地执行投影操作避免直接做笛卡尔积作用:合理安排操作顺序,节省时间和空间 第五章. SQL语言5.1. 基本表是实际存储在数据库中的表。视图是由若干基本表和视图构成的表的定义。实表是对基本表的别称。(略)。虚表在创建一个视图时,只是把视图的定义存储在数据字典中,而不存储视图定义的数据,在用户使用视图时才去求对应的数据。因此,视图被称为“虚表”。相关子查询SELECT语句嵌套时,子查询中查询条件依赖于外层查询中的值,因此子查询要反复求值供外层查询使用。这种子查询称为相关子查询。连接查询查询时要从多个基本表中提取数据,此时把多个基本表写在同一层的FROM子句中,这种查询形式称为联接查询。嵌套查询查询时要从多个基本表中提取数据,此时把多个基本表分别放在不同层次上的FROM子句中,这种查询形式称为嵌套查询。导出表是执行了查询时产生的表。临时视图SQL3允许用户用WITH子句定义一个临时视图(即子查询),置于SELECT语句的开始处。临时视图本身是用SELECT语句定义的。交互式SQLSQL语言在终端交互方式下使用,称为交互式SQL。嵌入式SQLSQL语言在语言的程序中使用,称为嵌入式SQL。游标是一个与某一查询结果相联系的符号名,是一个指针。卷游标可推进也可后退的游标。5.2 试叙述SELECT语句的关系代数特点和元组演算特点。 SELECT语句中出现的基本表名,都应该理解成基本表中的元组变量,而列名应理解成元组分量,这样SQL就具有了元组演算的特点。 5.3设教学数据库中有四个关系:教师关系T(t#,tname,title)课程关系C(c#,cname,t#)学生关系S(s#,sname,age,sex)选课关系SC(s#,c#,score)试用SQL的查询语句表示下列查询:(1)检索年龄小于17岁的女学生的学号和姓名。select s#,sname from S where age 2 (5)检索至少有学号为S2和S4学生选修的课程的课程号。select c# from SC,S where S.s#=SC.s# and S.s#=S2or S.s#=S4(6)检索wang同学不学的课程号。 (7)检索全部学生都选修的课程的课程号和课程名。(8)检索选修课程包含liu老师所授全部课程的学生学号。5.4设教学数据库中有四个关系:教师关系T(t#,tname,title)课程关系C(c#,cname,t#)学生关系S(s#,sname,age,sex)选课关系SC(s#,c#,score)试用SQL的查询语句表示下列查询:(1)统计有学生选修的课程门数。 SELECT COUNT(DISTINCT C#)FROM SC(2)求选修C4课程的女学生的平均年龄。SELECT AVG(AGE) FROM S,SC WHERE S.S#=SC.S# AND C#=004AND SEX=F ;或者,SELECT AVG(AGE) FROM S WHERE SEX=F AND S# IN (SELECT S# FROM SC WHERE C#=C4) ;(3)求LIU老师所授课程的每门课程的学生平均成绩。 SELECT CNAME,AVG(SCORE) FROM T,C,SC WHERE T.T#=C.T# AND SC.C#=C.C# AND TNAME=LIU GROUP BY C# ;(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数, 查询结果按人数降序排列,若人数相同,按课程号升序排列。 SELECT DISTINCT C#,COUNT(S#) FROM SC GROUP BY C# HAVING COUNT(S#)10 ORDER BY 2 DESC, C# ASC(5)检索学号比WANG同学大,而年龄比他小的学生姓名。 SELECT X.SNAME FROM S AS X, S AS Y WHERE Y.SNAME=WANG AND X.S#Y.S# AND X.AGE(SELECT AVG(AGE)FROM S AS YWHERE Y.SEX=女);(9)求年龄大于所有女同学年龄的男学生姓名和年龄。 SELECT SNAME,AGE FROM S AS X WHERE X.SEX=男 AND X.AGEALL (SELECT AGEFROM S AS YWHERE Y.SEX=女)5.5对于下面的关系R和S,试求出下列各种联接操作的执行结果:R NATURAL INNER JOIN SR NATURAL RIGHT OUTER JOIN SR RIGHT OUTER JOIN S USING(C)R INNER JOIN SR FULL OUTER JOIN S ON falseRABCSBCDa1b1c1b1c1d1a2b2c2b2c2d2a3b3c3b4c4d4解:ABCDABCDAR.BCS.BDa1b1c1d1a1b1c1d1a1b1c1b1d1a2b2c2d2a2b2c2d2a2b2c2b2d2nullb4c4d4nullnullc4b4d4AR.BR.CS.BS.CDAR.BR.CS.BS.CDa1b1c1b1c1d1a1b1c1nullnullnulla1b1c1b2c2d2a2b2c2nullnullnulla1b1c1b4c4d4a3b3c3nullnullnulla2b2c2b1c1d1nullnullnullb1c1d1a2b2c2b2c2d2nullnullnullb2c2d2a2b2c2b4c4d4nullnullnullb4c4d4a3b3c3b1c1d1a3b3c3b2c2d2a3b3c3b4c4d45.6试用SQL更新语句表达对5.3题教学数据库中关系S、SC、C的更新操作: 往关系C中插一个课程元组(C8,VC+,BAO)。 检索所授每门课程平均成绩均大于80分的教师姓名,并把检索到的值送往另一个已存在的表FACULTY(TNAME)。 在SC中删除尚无成绩的选课元组。 把选修LIU老师课程的女同学选课元组全部删去。 把MATHS课不及格的成绩全改为60分。 把低于所有课程总平均成绩的女同学成绩提高5。 在表SC中修改C4课程的成绩,若成绩小于等于70分时提高5,若成绩大于70分时提高4(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE语句实现)。 在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。解: INSERT INTO CVALUES(C8,VC+,BAO); INSERT INTO FACULTY(TNAME)SELECT DISTINCT TEACHERFROM (SELECT TEACHER, C.C#, AVG(GRADE)FROM S, SCWHERE SC.C#=C.C#GROUP BY TEACHER, C.C#)AS RESULT(TEACHER, C#, AVG_GRADE) AS XWHERE 80=ALL(SELECT AVG_GRADEFROM RESULT AS YWHERE Y.TEACHER=X.TEACHER); DELETE FROM SCWHERE GRADE IS NULL; DELETE FROM SCWHERE S# IN(SELECT S# FROM S WHERE SEX=F)AND C# IN(SELECT C# FROM C WHERE TEACHER=LIU); UPDATE SCSET GRADE=60WHERE GRADE60AND C# IN(SELECT C# FROM C WHERE CNAME=MATHS); UPDATE SCSET GRADE=GRADE*1.05WHERE S# IN(SELECT S# FROM S WHERE SEX=F)AND GRADE70;UPDATE SCSET GRADE=GRADE*1.05WHERE C#=C4 AND GRADE70 THEN 1.04ELSE 1.05ENDWHERE C#=C4; UPDATE SCSET GRADE=GRADE*1.05WHERE GRADE(SELECT AVG(GRADE) FROM SC);5.7 预处理方式对于嵌入式SQL的实现有什么重要意义?识别出SQL语句,并处理成函数调用形式5.8 主语言的程序中使用SQL语句有哪些规定?在程序中要区分SQL语句与主语言语句允许嵌入的SQL语句引用主语言的程序变量SQL的集合处理方式与主语言的单记录处理方式之间的协调5.9 SQL的集合处理方式和主语言单记录处理方式间如何协调?通过游标机制,将集合操作转换成单记录处理方式5.10 入式SQL语句何时不必涉及到游标?何时必须涉及到游标?执行insert、delete、update语句和已知select语句查询结果是单元组时不涉及游标。当select语句查询结果为多个元组时必须涉及游标5.12 什么是存储过程?使用存储过程后,系统具有什么特点?存储过程是使用SQL语句和流程控制语句编写的模块,存储过程经过编译和优化后存储在数据库服务器端的数据库中,使用时调用即可。使用存储过程后的优点:提供运行速度增强了SQL的功能和灵活性降低网络通信量减轻程序编写量间接实现安全控制功能 5.13 什么是SQL/PSM?这个标准中有哪些流程控制语句SQL/PSM是SQL标准的一部分,它指定了如何编写持久的层存储模块,提供流程控制语句来表示过程处理的应用逻辑。有三种流程控制语句:顺序执行,循环语句,条件分支语句习题6数据库管理6.1 名词解释事务是构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行。不论发生何种情况,DBS必须保证事务能正确、完整地执行。数据库的一致性事务运行结果必须保证数据库从一个一致性状态进入另一个一致性状态。数据库的可恢复性DBMS系统能把数据库从被破坏、不正确的状态,恢复到最近一个正确的状态的能力。并发操作多个事务同时对同一数据进行操作。封锁是一个与数据项有关的变量,相对于该数据项上可能的操作而言,锁描述了该数据项的状态。X锁排它型封锁。如果事务T对某个数据R实现了X锁,那么在T对R解锁前,不允许其它事务对R加任何类型的锁。S锁共享型封锁。如果事务T对某个数据R实现了S锁,仍允许其它事务对R加S锁,但R的所有S锁解除前,不允许任何事务对R加X锁。调度事务的执行次序。串行调度多个事务依次执行。并发调度利用分时的特点,同时处理多个事务。可串行化调度在每个事务在各种调度中语句的先后顺序不变的情况下,如果一个并发调度的执行结果与某一串行调度的执行结果等价,则这个并发调度称为可串行化调度。否则是不可串行化调度。6.2 事务的COMMIT语句和ROLLBACK语句各做什么事情?答:COMMIT语句提交事务对数据库的所有更新并释放X锁;ROLLBACK语句撤销事务对数据库的所有更新,使数据库恢复到事务执行前的状态,并释放X锁。6.3 试述事务的四个性质,并说明每一个性质由DBMS的哪个子系统实现?每一个性质对DBS有什么益处?答:事务的四个性质ACID:原子性:一个事务对数据库的所有操作,是一个不可分隔的工作单元。不会因事务交叉执行造成数据库的错误。(事务管理子系统)一致性:一个事务独立执行的结果,就保证数据库的一致性。数据不会因事

温馨提示

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

评论

0/150

提交评论