资源描述
精品范文模板 可修改删除撰写人:_日 期:_第1章习题参考答案1.1 答案(1)信息是现实世界事物的存在方式和运动状态的反映,是对事物之间相互联系、相互作用的描述。(2)数据是描述现实世界事物的符号记录,是用物理符号记录下来的可以识别的信息。(3)数据处理是指对数据进行分类、收集、组织、存储,进而从已有数据出发,抽取或推导出表示新的信息的数据。(4)数据管理是指对数据的分类、收集、组织、编码、存储、检索和维护过程,是数据处理业务的重要环节。(5)数据模型是数据库系统的形式框架,是用来描述数据的一组概念和定义,包括描述数据、数据联系、数据操作、数据语义以及数据一致性的概念工具。(6)概念数据模型是按用户的观点对现实世界数据和信息进行建模的工具,常用的概念数据模型是实体-联系模型。(7)数据结构模型是机器世界中与具体DBMS相关的数据模型,其典型代表是关系模型。(8)物理数据模型描述数据在数据库系统中的实际存储组织方式。(9)模式是对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,也称为逻辑模式或概念模式。(10)外模式是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也称为子模式、用户模式或用户视图。(12)内模式是对数据库中数据的物理结构和存储方式的描述,也称为物理模式或存储模式。(13)外模式/模式映像是对数据库中不同用户的外模式与数据库逻辑模式之间对应关系的描述。(14)模式/内模式映像是对数据库中数据全局逻辑结构与数据的物理存储组织结构之间对应关系的描述。1.2 答案数据库是存储在计算机内的共享数据集合,数据库管理系统是一种数据管理系统软件。数据库系统则是在计算机系统中引入数据库后的软硬件系统构成,包括了数据库和数据库管理系统。1.3 答案数据模型的组成要素有数据结构、数据操作和完整性约束。1.4 答案当数据库模式发生变化时,通过调整外模式/模式间的映像关系,使得应用程序不必随之修改,从而保证数据与应用程序间的逻辑独立性,简称数据的逻辑独立性。当数据库数据的物理存储结构改变时,通过调整模式/内模式映像关系,保持数据库模式不变,使数据库系统的外模式和应用程序不随之改变,保证数据与应用程序间的物理独立性,简称数据的物理独立性。1.5 答案DBMS的主要功能有数据定义、数据操纵、数据库运行管理与控制、数据库建立与维护。1.6 答案DBMS包括查询处理器和存储管理器两部分。查询处理器实现面向用户的查询分析处理和优化功能。存储管理器为用户和应用程序提供了访问存储在数据库文件中的应用数据的接口。1.7 答案近年来出现的数据库新技术有工程数据库、演绎数据库、知识数据库、模糊数据库、时态数据库、统计数据库、空间数据库、多媒体数据库、对象数据库、并行数据库、移动数据库、基于网格的数据管理技术等。第2章习题参考答案2.1 答案(1)软件生命周期是指软件产品从考虑其概念开始,到该产品不再使用的整个时期。一般包括概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶段、运行阶段与维护阶段。(2)数据库应用系统需求是指用户对数据库应用系统在功能、性能、行为、设计约束等方面的期望和要求。2.2 答案数据库应用系统中的软件包括操作系统、数据库管理系统、中间件和开发工具、与数据访问与处理有关的应用软件、与数据访问与处理无关的应用软件。2.3 答案(1)参照软件开发瀑布模型原理,DBAS的生命周期由项目规划、需求分析、系统设计、实现与部署、运行管理与维护等5个基本活动组成。(2)将快速原型模型和增量模型的开发思路引入DBAS生命周期模型,允许渐进、迭代地开发DBAS。(3)根据DBAS的软件组成和各自功能,细化DBAS需求分析和设计阶段,引入了数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计DBAS中的数据库、数据库事务和应用程序。(4)将DBAS设计阶段细分为概念设计、逻辑设计、物理设计三个步骤,每一步的设计内容又涵盖了三条设计主线。2.4 答案DBAS规划与分析的主要工作内容分为系统规划与定义、可行性分析、项目规划三个方面。其中,系统规划与定义是通过了解用户实际需求,明确数据库应用系统需要实现的目标和任务,并从数据管理和数据处理的角度,确定系统中数据库软件的功能、性能范围;可行性分析则包括项目的技术可行性分析、经济可行性分析、操作可行性分析和开发方案选择;项目规划则是对项目资源、成本和进度做出合理估算,并据此制定DBAS项目开发计划。2.5 答案DBAS需求分析包括数据需求分析、数据处理需求分析、业务需求分析等方面,此外还包括对系统在性能、存储、安全、备份与恢复等方面的要求进行分析。2.6 答案数据库应用系统的概念设计包括数据库概念模型设计和系统总体设计。数据库概念模型设计是依据数据需求分析结果,分析需要存储在数据库中的各类数据对象的特征及其相互间关联关系,并表示为概念数据模型;系统总体设计则是依据系统规划与分析结果和系统需求分析结果,确定系统软硬件总体框架。2.7 答案数据库应用系统的逻辑设计包括数据库逻辑结构设计、数据库事务概要设计、应用程序概要设计三方面。数据库逻辑结构设计的主要步骤为:将E-R图转换为初始关系模式、对初始关系模式进行优化、检查关系表对数据库事务的支持性、确定关系模式完整性约束、设计基于关系模式的用户视图。2.8 答案数据库应用系统物理设计包括数据库物理结构设计、数据库事务详细设计和应用程序详细设计。数据库事务详细设计是根据事务处理流程,面向具体DBMS平台和开发环境,利用SQL语句、数据库访问接口,采用高级程序设计语言或DBMS提供的事务实现机制,设计数据库事务。2.9 答案数据库应用系统的系统实现和部署包括建立数据库结构、数据加载、事务和应用程序的编码及测试、系统集成测试与试运行、系统部署等工作内容。2.10 答案数据库应用系统的运行与维护包括日常维护、系统监控与分析、系统性能优化调整、系统升级进化。第3章习题参考答案3.1 答案需求分析阶段的主要任务是通过需求分析的工作把用户对应用系统的非形式化需求不断揭示和挖掘出来,其目的在于明确应用系统的目标、功能、性能、数据范围和相关约束,形成需求说明书,作为系统开发后续各阶段的工作基础。完成需求分析的基本方法是调查分析,即面谈、实地观察、问卷调查及查阅资料。3.2 答案例如,可采用下列过程和步骤完成学校选课系统的需求分析:(1)标识问题标识问题从现行教务系统的业务流程做起,采用面谈、观察等方式理解现行教务系统的业务流程,包括现行教务流程存在的问题及需要改进的方面,通过对系统各类问题的识别和标识获得对待建选课系统功能、性能及运行环境等的全面理解。(2)建立需求模型使用DFD等建模方法建立选课系统需求模型,借助模型及抽象方法把选课系统中的各类活动,如学籍管理、课程管理及选课、补退选等功能描述清楚,使得各类人员便于认识、理解系统所实现的功能。(3)描述需求按照需求说明书规格全面地、完整地描述及说明选课系统的功能性需求和非功能性需求。(4)确认需求由相关专家及人员确认和进一步检查选课系统需求的合理性、正确性和有效性,以确保需求分析的结果是全面的、准确的和一致的。3.3 答案(1)不过早陷入具体的细节。(2)从整体或宏观入手分析问题,如业务系统的总体结构,系统及子系统的关系。(3)通过图形化的模型对象直观地表示系统要做什么,完成什么功能。(4)图形化建模方法方便系统分析员理解和描述系统。(5)模型对象不涉及太多技术术语,便于用户理解模型。3.4 答案功能需求主要描述应用信息系统的处理要求。例如,本书应用案例“商场经营管理系统”用了两层数据流图较全面的描述了商场经营管理系统将要完成的功能。图3.3第一层数据流图从总体描述了系统的主要功能及完成商场经营管理涉及的信息及信息范围以及目标系统与外部的数据交换关系。图3.4第二层数据流图描述了实现商场业务活动需要的基本功能,如库存管理、销售管理、会员管理及查询统计以及完成以上各处理要求需要的输入、输出数据及信息。信息需求主要描述目标系统需要存储和管理哪些数据,这些数据具有什么属性特征和组成格式。商场经营管理系统的数据需求见所列的数据对象。性能需求描述应用系统对性能的要求。例如,商场经营管理系统对响应时间,存储容量,系统的适应性,数据的安全性、数据的完整性、一致性和可靠性等方面的要求。3.6 答案(1)商场经营管理系统A0图会员卡入库单市场信息计算机软件及硬件查询及统计信息商场经营管理系统编号A-0商品表(2) 商场经营管理系统A0图会员管理销售管理库存管理查询及统计I1会员卡C1会员信息会员信息市场信息商品表I3入库单I2出库单M1I1销售明细I3查询及统计信息O1库存信息M1M1M1编号A0父图TOP 3.7 答案(1)电子产品租借管理系统第一层数据流图P1 客户信息电子产品店员信息租借产品租借产品客户客户供应商商店(2)电子产品租借管理系统第二层数据流图P1.1确认客户及管理员认证客户借阅需求P1.2信息查询P1.3租借 客户D1D3电子产品库存租借记录D4P1.4返还生成租借信息删除租借记录客户借阅清单返还产品P1.5报表生成店经理统计信息第4章习题参考答案4.1 答案数据库概念设计包括如下基本步骤:(1)确定实体集(2)确定联系和联系类型(3)建立由信息模型表示的企业模型(4)确定实体集属性(5)对信息模型优化4.2 答案(1)实体集与实体集实例如,李明读了两本书,丁一读了3本书。根据这个事实可以抽象出一个数据模型“学生读书”。其中“学生”是一个实体集,因为实体集描述具有相同属性特征和性质的事物集合(如学生对象集合);而其中的“李明”、“丁一”是学生实体集中的实例,因为他们都是学生集合中的一个具体对象,实体集实例描述一个集合中客观存在并可以相互区分的事物。(2)属性与属性实例如“学生读书”数据模型中的姓名是学生实体集的一个属性,属性描述实体所具有的某一特征或性质,一个实体通常由多个属性来刻画;而“李明”、“丁一”是姓名属性的实例也是姓名属性的取值。(3)联系与联系基数学生和图书两个实体集之间的关系叫做“联系”,联系描述实体集之间的一种连接或关系;如果实体集学生的一个实例与实体集图书的2个、3个或N个实例相联系, 就说明在联系的学生端有基数1,而在联系的图书端有基数2、3、或N, 联系的基数刻画两个实体集之间联系的类型:1:1或1:N或M:N。4.3 答案(1)分类联系在现实世界中,有些事物是其它事物的类。例如,实体集 “电冰箱”、“洗衣机”、“彩电”是实体集“电器”的分类实体集。“分类联系”描述两个或多个实体集之间的联系,在这些实体集中,存在一个一般实体集如电器,它的每一个实例都恰好与一个且仅一个分类实体集如“电冰箱”或“洗衣机”或“彩电”的一个实例相联系。通常,一般实体集的每一个实例和与之相关的一个分类实体集实例描述的是现实世界的同一事物,它们具有相同的唯一标识符。(2)不确定联系例如,商场允许一位客户购买多种商品,而同一种商品允许多名客户购买。在实体集“客户”和“商品”之间就存在着不确定的联系。不确定联系又称为“多对多联系”或M:N的联系。这种联系关联的两个实体集之间的任一实体集的一个实例都将对应另一个实体集的1个或多个实例。4.4 答案(1)教务管理系统ER图 学生学生 教师 教材 课程使用聘用1nn1nmpqn1 成绩 班级11教课被管理管理 系教课 招收n1ER图实体集属性列表:系实体集属性:系号,系名,系主任,系办公室电话 班级实体集:班级名,学生人数学生实体集属性:学号,姓名,性别,出生日期 教师实体集属性:教师号,教师名,职称,性别,出生日期,工资 课程实体集属性:课程号,课程名,学分,上课时间,课容量教材实体集属性:教材号,教材名,出版社,第一作者(2)教务管理系统Idef1x图系号(PK)系/10教师号(PK)教师/30班级名(PK) 班级/20教材号 (PK)教材/60 (PK)学号 (FK) 选课/65课程号(FK)使用管理招收教师号(FK)学生/40学号 (PK)教课/55课程号(FK)课程号(FK)教师号(FK)课程号(FK)课程号(PK)课程/50班级名 (FK)课程号 (FK)系号 (FK)系号 (FK)聘用被管理Idef1x图实体集属性列表:系/10, 属性:系号,系名,系主任,系办公室电话 班级/20,属性:班级名,学生人数,系号,教师号教师/30,属性:教师号,教师名,职称,性别,出生日期,工资,系号学生/40,属性:学号,姓名,性别,出生日期,班级名 课程/50,属性:课程号,课程名,学分,上课时间,课容量教课/55,属性:教师号,课程号,授课评价教材/60,属性:教材号,教材名,出版社,第一作者,课程号选课/65,属性:学号,课号,成绩4.5 答案电器销售管理系统ER图总公司分店职工电器领导聘用储存销售1nmn库存量销售量领导1n1n销售时间ER图实体集属性列表:总公司实体集属性:工商注册号,地点,总裁,总公司电话,总公司职工数分店实体集属性:分公司注册号,地点,经理,电话,职工数职工实体集属性:工作证号,姓名,性别,年龄,工资,工种,奖金电器实体集属性:型号,名称,电器指标,生产商,生产日期,进货价格,售出价格第5章习题参考答案5.1 答案关系模型用二维表格结构表示实体及实体间的联系。现实世界中的每个客观对象对应表中的一行叫做一条记录,表中的每个列(属性)描述对象类的某一特征,列的值(属性的取值)刻画和描述客观对象的某一具体的特征。关系数据库是按照二维表格组织和存储的相互关联的关系(表)的集合。关系数据库采用关系模型在计算机中组织、存储、处理和管理数据。5.2 答案如学号是学生关系(表)的主码,因为这个属性能够唯一识别学生关系中的每一条记录。5.3 答案主码约束定义指定关系的主码列不能取空值,并且取值要唯一。5.4 答案如果两个关系R和S,X是R的属性或属性组,且X不是R的码,但X是S的码,则称X是R的外码。5.5 答案外码约束也叫引用完整性约束,定义外码与主码之间的引用规则,即若关系R含有另一个关系S的主码Ks所对应的属性或属性组F(该属性或属性组F称为关系R的外码),则关系R中的每一个元组在属性组F上的值必须满足:或者取空值,或者等于S中某个元组的主码Ks的值。5.7 答案关系数据库设计理论的基础是函数依赖理论和规范化设计理论。规范化设计理论的主要内容是范式,即关系模式满足的条件,它是数据库逻辑设计的指南。5.8 答案(1)商场经营管理系统实体集属性列表:供应商实体集属性:供应商编号,名称,地址,邮编,联系人,电话,传真,网址,电子邮箱,开户银行,账户名称,账户账号 商品及库存实体集属性:商品类别编号,类别名称,类别描述信息,商品编号,品名,生产日期,单价,库存量,商品描述信息销售员信息实体集属性:销售人员编号,姓名,性别,年龄,身份证,地址,邮编,电话,收银台编号,状态,收银台描述信息顾客信息实体集属性:顾客编号,姓名,性别,年龄,身份证号,地址,邮编,电话会员卡实体集属性:会员卡号,有效起始日期,有效截止日期,积分,状态(2)3NF关系模式(注,下划属性为主码属性):供应商信息(供应商编号(PK),名称,地址,邮编,联系人,电话,传真,网址,电子邮箱,开户银行,账户名称,账户账号) 商品类别(商品类别编号(PK),类别名称,类别描述信息)商品(商品编号(PK),品名,生产日期,单价,库存量,商品描述信息,商品类别编号(FK)采购入库单据(入库单据编号(PK),入库日期,经手人,入库单据描述)采购入库单据明细(入库单据编号(FK),商品编号(FK),进价,数量,供应商编号(FK),购买日期) 销售人员(销售人员编号(PK),姓名,性别,年龄,身份证,地址,邮编,电话)收银台(收银台编号(PK),状态,收银台描述信息)会员卡(会员卡号(PK),有效起始日期,有效截止日期,积分,状态)销售单据(销售单编号(PK),会员卡号(FK),本次积分,付款总金额,销售日期,销售人员编号(FK),收银台编号(FK),销售单据描述)销售单据明细(销售单据编号FK,商品编号FK,单价,数量,总价,折扣率,折扣总价)商品价格变动表(商品编号(FK),开始日期,结束日期,销售价格,注释)顾客信息(顾客编号(PK), 会员卡号(FK),姓名,性别,年龄,身份证号,地址,邮编,电话)5.9 答案(1)R的码是(AD)(2)R是1NF的关系模式(3)将R分解为3NF的关系模式如下:R1(D,C,G)R2(A,B,E)R3(B,C,F)5.10 答案R1(TIME,TERM,ROOM,CNO)R2(TIME,CNO,TNO)R3(SNO,CNO,SCORE)R4(CNO,CNAME,CREDIT)第6章习题参考答案6.1 答案(1)堆文件是一种数据库文件结构形式。在堆文件中,记录随机地存储在文件物理空间中,新插入的记录存储在文件的末尾。(2)顺序文件是一种数据库文件结构形式。在顺序文件中,记录按照查找码值的升序或降序顺序排列存储。(3)聚集文件是一种数据库文件结构形式。聚集文件具有多种记录类型,存储了来自多个关系表的记录数据,每个关系表对应文件中的一种记录类型。(4)索引技术(Indexing)是一种快速文件访问技术,它将文件记录在某个或某些域(或称为属性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制。(5)对数据文件和它的一个索引文件,如果数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致,则该索引文件称为聚集索引。否则,该索引文件称为非聚集索引。(6)在数据文件的包含主码的属性集上建立的索引称为主索引。在数据文件的非主属性上建立的索引称为辅索引。(7)如果数据文件中的每个查找码值在索引文件中都对应一个索引记录,则该索引称为稠密索引;如果只是一部分查找码的值有对应的索引记录,则该索引称为稀疏索引。(8)如果一个数据文件按照某个查找码组织为顺序文件,同时又对数据文件建有聚集索引,则该数据文件称为索引顺序文件。6.2 答案设3门课程分别为DB、OS和COM,5个学生分别为BAI、DE、GU、HAI和YE。如果用户查询主要是根据课程查找选课的学生,则可建立如下图所示的聚集文件。6.3 答案有序索引技术利用索引文件实现查找码取值到记录物理地址间的映射关系。索引文件由索引记录组成,每个记录中的索引项记录了某个特定的查找码值和具有该值的数据文件记录的物理地址。当需要访问数据文件中某个数据记录时,先根据查找码值查阅索引文件,找到对应的索引项,然后从索引项中找出数据记录在数据文件中的物理地址根据这个地址访问数据记录。6.4 答案散列技术是一种快速文件访问技术,它利用散列函数实现文件记录域取值到记录物理地址间的直接映射关系。当需要访问数据文件中查找码值为si的某个或某些文件记录时,将si作为散列函数h的输入,计算得出的散列函数输出值h(si)就是文件记录在数据文件中的物理地址。6.5 答案关系DBMS数据字典中的元数据包括:关系模式信息、与视图描述有关的信息、关系的存储结构和存取方法信息、完整性约束、安全性有关的信息、数据库运行统计信息。DBMS使用数据字典中的元数据完成其相应的存储管理和查询处理功能。DBA利用数据字典监视DBMS使用情况,完成有关系统管理工作。一般用户也可通过数据字典查阅部分数据库结构信息。6.6 答案数据库物理设计的主要步骤有数据库逻辑模式调整、文件组织与存取设计、数据分布设计、安全模式设计、确定系统配置、物理模式评估。第7章习题参考答案7.1 答案数据库应用系统功能设计包括数据库事务设计和应用程序设计。与数据库应用系统概念设计、逻辑设计、物理设计相对应,应用程序(软件)设计分为总体设计、概要设计和详细设计,数据库事务设计则由事务概要设计和事务详细设计组成。7.2 答案复杂数据库事务的设计与实现既要遵循应用领域特定的业务逻辑,又依赖于具体数据库系统所提供的事务实现机制。复杂事务的设计可以分解为概要设计和详细设计两个步骤。概要设计注重事务本身的处理流程,暂时先不考虑事务中与DBMS平台相关、具体的数据操作方法和事务实现机制,以提高设计结果的适用性。而事务详细设计则从概要设计得出的事务流程出发,设计可在具体DBMS平台下实现的特定事务。事务概要设计的核心内容是事务处理逻辑设计。事务概要设计包括了事务名称、事务所访问的关系表及关系属性、事务处理逻辑、事务用户等信息。7.3 答案软件体系结构是一种可预制、可重构的软件框架结构,它描述了软件系统的总体组织和层次划分、系统元素及其功能分配、全局控制、系统元素间的协调和交互、数据存取等。第8章习题参考答案8.1 答案:02558.2 答案:年、月、日中间用“/”或者“-”分隔符,日期和时间间空一个空格,时、分、秒之间用“:”隔离。日期和时间数据用单引号括起来。8.3 答案:分钟。8.4 答案:p为数字位个数,q为小数位个数。8.5 答案:精确到小数点后4位。8.6 答案Char(10)代表的是普通编码的字符串,最多存放10个字符,5个汉字,固定的占用10个字节的空间。nchar(10)代表的是统一字符编码的字符串,最多存放10个字符,10个汉字,固定的占用20个字节的空间。8.7 答案Char(n)代表的是普通字符编码按定长存储的字符串,“n”的含义是字符的个数,固定占用n个字节的空间。varchar(n) 代表的是普通字符编码按不定长存储的字符串,“n”的含义也是字符的个数,按字符的实际长度占用空间。8.8 答案支持两种,一种是系统使用的全局变量,用“”前缀标识。一种是用户使用的普遍变量,用“”前缀标识。8.9 答案创建Student表的SQL语句为:CREATE TABLE Student (Sno char(7) primary key,Sname char(10) not null,Ssex char(2) check (Ssex In (男, 女), Sage tinyint check(Sage = 14),Sdept varchar(20)创建Course表的SQL语句为:CREATE TABLE Course (Cno char(10) primary key,Cname char(20) not null,Periods smallint check (Periods0), Property char(4) check (Property in (必修, 选修)创建SC表的SQL语句为:CREATE TABLE SC (Sno char(7) ,Cno char(10) ,Grade smalldate check(Grade between 0 and 100), Primary key(Sno, Cno),Foreign key (Sno) references Student(Sno),Foreign key(Cno) references Course(Cno)8.10 答案(1)Alter Table SC add XKLB char(4)(2)Alter Table Course Alter Column Periods tinyint(3)Alter Table Course Drop Column Property8.11 答案(1)select sno, sum(grade) 总成绩, avg(grade) 平均成绩, count(*) 选课门数 from sc group by sno having count(*) 2(2)select sno, sum(grade) 总成绩 from sc group by sno having sum(grade) 200(3)select sname, sdept from Student join SC on Student.Sno = SC.Sno where cno = C02(4)select sname, cno, grade from student s join sc on s.sno= sc.sno where grade 80 Order by grade desc(5)select sname, ssex, grade from student s join sc on s.sno = sc.sno join course c on o = o where sdept = 计算机系 and ssex = 男 and cname = 数据库基础(6)select s.sno, sname, cno, grade from Student s left join SC on s.Sno = SC.Sno(7)select top 3 s.sno, sname, sdept, grade from Student s join SC on s.Sno = SC.Sno join Course c on c.Cno = SC.Cno where cname = 数据库基础 order by grade desc(8)select t1.sno, t2.sno, o from sc as t1 join sc as t2 on o = o where t1.sno ( select avg(grade) from sc)(11)select sname,sdept,grade from student s join sc on s.sno = sc.sno join course c on o = o where grade = ( select min(grade) from sc where cno in ( select cno from course where cname = vb) and cname = vb(12)select s.sno 学号,sname 姓名, case sdept when 计算机系 then CS when 信息系 then IS when 数学系 then MA else OTHER end as 所在系,grade 成绩 from student s join sc on s.sno = sc.sno join course c on o = o where cname = vb(13)select o, case when count(o) 100 then 人多 when count(o) between 40 and 100 then 一般 when count(o) 40 then 较少 when count(o) =0 then 无人选 end as 选课人数 from sc right join course c on o = o group by o(14)insert into Course values(C100, Java, 32, 选修)(15)delete from sc where grade 50(16)(a)用连接查询实现 delete from sc from sc join student s on s.sno=sc.sno where sdept = 信息系 and grade 50 (b)用子查询实现 delete from sc where sno in ( select sno from student where sdept = 信息系 ) and grade 50(17)update sc set grade = grade + 10 where cno = c01(18)(a) 用子查询实现 update sc set grade = grade + 10 where sno in ( select sno from student where sdept = 计算机系 ) and cno in ( select cno from course where cname = 计算机文化学 ) (b)用连接实现 update sc set grade = grade - 10 from student s join sc on s.sno = sc.sno join course c on o = o where sdept = 计算机系 and cname = 计算机文化学8.12 答案:索引的作用是加快数据的查询速度。一般分为聚集索引和非聚集索引两种。8.13 答案不对,聚集索引也可以不是唯一性索引。反过来,唯一性索引也不一定是聚集索引。8.14 答案:对。如果是非聚集索引,则系统不调整数据的物理存放顺序。8.15 答案(1)CREATE INDEX NonCluIdx_Sname on Student(Sname)(2)CREATE UNIQUE CLUSTERED INDEX CluUni_Idx on SC(Sno)8.16 答案视图的作用包括:封装了复杂的查询语句,使用户能从多角度看到同一数据,提高了数据的安全性以及提供了一定程度的逻辑独立性。 8.17 答案(1)CREATE VIEW V1 AS select Sno, Sname, Sdept, Cno, Cname, Periods from Student s join SC on s.Sno = SC.Sno join Course c on c.Cno = SC.Cno(2)CREATE VIEW V2 AS select Sno as 学号, avg(grade) as 平均成绩 group by Sno第9章习题参考答案9.1 答案(1)事务是构成数据库应用中一个独立逻辑工作单元的操作的集合,也是访问并可能更新数据库中各种数据项的一个程序执行单元。(2)定义在多个事务上的调度是这些事务的所有操作的一个执行序列,代表了这些操作的执行顺序。(3)事务Ti 的操作Ii与事务Tj的操作Ij是冲突的,当且仅当Ii 和 Ij访问数据库中同一个数据项Q,并且Ii 和 Ij中至少有一个是写操作write(Q)。(4)如果一个并发调度冲突等价于某个串行调度,则称该并发调度是冲突可串行的。(5)死锁是指数据库系统中部分或全部事务由于无法获得对需要访问的数据项的控制权而处于等待状态,并且将一直等待下去的一种系统状态。9.2 答案原子性指事务对数据库的所有操作是一个不可分割的工作单元。这些操作要么全部执行,要么一个也不执行。一致性指当事务独立执行时,其执行结果应维护数据库的一致性,即数据库不会因事务执行而遭受破坏。事务应使数据库从一个一致性状态转到另外一个一致性状态。隔离性指当多个事务并发执行时,系统应保证一个事务的执行结果不受其它事务的干扰,事务并发执行结果与这些事务串行执行时的结果是一样的。持久性指一个事务一旦成功完成全部操作,则它对数据库的所有更新就永久地反映在数据库中。即使以后系统发生了故障。9.3 答案1级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放该锁。事务结束包括正常结束(commit)和非正常结束(rollback)。但事务如果只是读Q而不对其进行修改,是不需要对Q加锁的。2级加锁协议是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,读完Q后可以立即释放S锁。3级加锁协议则是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,但是需要等到事务结束时才释放该S锁。9.4 答案2阶段锁协议将每个事务的执行过程分为加锁阶段和解锁阶段。在加锁阶段,事务可以申请获得数据项上的任何类型的锁,但不允许释放任何锁。在解锁阶段,事务可以释放任何数据项上的任何类型的锁,但不能再申请任何锁。每个事务开始执行后就进入了加锁阶段。当第一次释放锁后,即转入解锁阶段。9.5 答案解决死锁主要采用死锁预防和死锁检测与恢复两类方法。死锁预防利用死锁预防协议,通过破坏死锁产生的必要条件来避免系统进入死锁状态,防止死锁发生。死锁检测与恢复则是允许系统进入死锁状态,并且定期检查系统是否发生死锁。当发现系统发生死锁后,采取相应的恢复机制使系统摆脱死锁状态。9.6 答案活锁产生的原因是在系统非死锁状态下,某些事务由于始终无法获得对所需访问的数据项的控制权而长期等待下去,无法继续执行。 9.7 答案TiTjLock-X(C)read(C)C:=C+1write(C)Lock-X(A)unlock(C)read(A)A:=A*2write(A)unlock(A)Lock-X(A)read(A)A:=A+1write(A)Lock-X(B)read(B)B:=B+1write(B)unlock(A)unlock(B)9.8 答案并发调度S9不等价于串行调度。因为T1中的write(Q)和T2中的read(Q)是冲突操作,操作write(Q)在操作read(Q)后面执行,无法交换这2个操作的执行顺序,使T1和T2依次顺序串行执行。第10章习题参考答案10.1 答案(1)A (2)C (3)C (4)BC (5)ABC (6)D10.2 答案(1)数据库的试运行(2)管理员手动实现的监控(3)答案有多种组合,可在合理使用索引、避免或简化排序、消除对大型表行数据的顺序存取、避免相关子查询、避免困难的正规表达式、使用临时表加速查询、用排序来取代非顺序磁盘存取、不充分的连接条件、存储过程、不要随意使用游标、事务处理中任选三个作答。第11章习题参考答案11.1 答案(1)C (2)D (3)D (4)C11.2 答案(1)事务内部的故障、系统故障、介质故障以及计算机病毒故障(2)冗余数据(3)静态转储、动态转储(4)每个事务的开始标记、每个事务的结束标记(5)必须先写日志文件,后写数据库(6)双机互备援模式、双机热备份模式(7)校验冗余第12章习题参考答案12.1 答案四个服务:SQL Server、SQL Server Agent、Distributed Transaction Coordinator(DTC)和Microsoft Search。SQL Server负责处理所有来自客户端的Transact-SQL语句并管理服务器上构成数据库的所有文件,同时还负责处理存储过程,并将执行结果返回给客户端。SQL Server Agent管理需要定期进行的工作,它能够根据系统管理员预先设定好的计划自动执行相应的功能。同时它还能对系统管理员设定好的错误等特定事件自动报警,而且还能通过电子邮件等方式把系统存在的各种问题发送给指定的用户。DTC是一个事务管理器,它能够保证一个事务中的所有操作在所有的服务器上全部成功,或者,当在某个服务器上不成功时,确保所有服务器上的操作均被撤消,使全部服务器均回到事务开始前的状态。Microsoft Search提供对字符数据进行检索。 12.2 答案四个版本:企业版、标准版、个人版和开发版。企业版和标准版要求安装在服务器版的Windows操作系统下,个人版和开发版要求只要是Windows操作系统即可。12.3 答案“Windows 身份验证模式”只允许Windows用户连接到SQL Server,而“混合模式”允许Windows用户和非Windows用户连接到SQL Server。 12.4 答案:服务管理器。12.5 答案:启动SQL Server服务。12.6 答案:分为系统数据库和用户数据库。12.7 答案master、model、msdb、tempdb。Master数据库记录了所有的系统级信息。包括登录帐户、系统配置、数据库属性(如数据库文件的位置等)等信息。msdb提供对自动执行任务的支持。model是用户数据库的样板数据库,其中包含所有用户数据库的公共信息。tempdb临时数据库,用于存储用户创建的临时表、用户声明的变量以及用户定义的游标数据等。12.8 答案有数据文件和日志文件。主数据文件的推荐扩展名是“mdf”,辅助数据文件的推荐扩展名是“ndf”,日志文件的推荐扩展名是“ldf”。 12.9 答案:可以包含一个主数据文件和0n个辅助数据文件,1n个日志文件。12.10 答案包含:逻辑文件名、物理存储位置和文件名、初始大小、增长方式和最大大小限制5个属性。12.11 答案:按数据页存储,一个数据页大小是8KB。12.12 答案:按一个数据页能存多少行数据,这些数据需要多少个数据页来估算。160MB。12.13 答案:不能小于model数据库的大小。12.14 答案DECLARE i int, res intSET i = 1SET res = 5000while i 10000 then 0.8 when c.Score between 5000 and 10000 then 0.9 when c.Score between 1000 and 4999 then 0.95 else 1 end from Table_SaleBillDetail a join Table_SaleBill b on a.SaleBillID = b.SaleBillID join Table_Card c on c.CardID = b.CardID13.3 答案(1)create function dbo.f1(lb varchar(20), nf int) returns intas begin declare sum int select sum = sum(Quantity) from Table_SaleBillDetail a join Table_SaleBill b on a.SaleBillID = b.SaleBillID join Table_Goods c on c.GoodsID = a.GoodsID join Table_GoodsClass d on d.GoodsClassID = c.GoodsClassID where GoodsClassName = lb and year(SaleDate) = nf return sum end(2)create function dbo.f2(addr varchar(20) returns intas begin declare count int select count = count(*) from Table_Card a join Table_Customer b on a.CardID = b.CardID where
展开阅读全文