《数据库系统及应用》习题解答_第1页
《数据库系统及应用》习题解答_第2页
《数据库系统及应用》习题解答_第3页
《数据库系统及应用》习题解答_第4页
《数据库系统及应用》习题解答_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

·PAGE86·第三章关系数据库及其操作语言《数据库系统及应用》(其次版)习题解答习题一什么是数据库?数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有平安掌握机制,能够保证数据的平安、牢靠,允许并发地使用数据库,能有效、准时地处理数据,并能保证数据的全都性和完整性。简要概述数据库、数据库管理系统和数据库系统各自的含义。数据库、数据库管理系统和数据库系统是三个不同的概念,数据库强调的是相互关联的数据,数据库管理系统是管理数据库的系统软件,而数据库系统强调的是基于数据库的计算机应用系统.数据独立性的含义是什么?数据独立性是指数据的组织和存储方法与应用程序互不依靠、彼此独立的特性。这种特性使数据的组织和存储方法与应用程序互不依靠,从而大大降低应用程序的开发代价和维护代价。数据完整性的含义是什么?保证数据正确的特性在数据库中称之为数据完整性.简要概述数据库管理员的职责。数据库管理员的职责可以概括如下:首先在数据库规划阶段要参加选择和评价与数据库有关的计算机软件和硬件,要与数据库用户共同确定数据库系统的目标和数据库应用需求,要确定数据库的开发计划;在数据库设计阶段要负责数据库标准的制定和共用数据字典的研制,要负责各级数据库模式的设计,负责数据库平安、牢靠方面的设计;在数据库运行阶段首先要负责对用户进行数据库方面的培训;负责数据库的转储和恢复;负责对数据库中的数据进行维护;负责监视数据库的性能,并调整、改善数据库的性能,提高系统的效率;连续负责数据库平安系统的管理;在运行过程中发现问题、解决问题.文件系统用于数据管理存在哪些明显的缺陷?文件系统用于数据管理明显存在如下缺陷:数据冗余大.这是由于每个文件都是为特定的用途设计的,因此就会造成同样的数据在多个文件中重复存储。数据不全都性。这往往是由数据冗余造成的,在进行更新时,稍不谨慎就会造成同一数据在不同文件中的不全都。程序和数据之间的独立性差。应用程序依靠于文件的存储结构,使得若修改文件的存储结构则必须修改程序。数据联系弱。文件与文件之间是独立的,文件之间的联系必须通过程序来构造。因此,文件系统是一个不具有弹性的、无结构的数据集合,不能反映现实世界事物之间的联系。习题二数据的三种范畴的含义是什么?数据需要我们的熟识、理解、整理、规范和加工,然后才能存放到数据库中。数据从现实生活进入到数据库实际经历了现实世界阶段(熟识、理解)、信息世界阶段(规范、提升)和机器世界阶段(管理),我们也把之称为数据的三种范畴,数据在三种范畴中的概念、术语都有些不同。对以下问题分析实体之间的联系,并分别画出E-R图:工程师和工程项目实体之间的联系:设每名工程师可以参加多个工程项目,每个工程项目可以由多名工程师工作,则二者属于多对多的关系,则E-R图如下:工程项目项目号工程项目项目号金额项目名工程师号列车号职称姓名参加参加Mn工程师号项目号参加天数乘务员和火车实体之间的联系:设每辆火车上可以有多个乘务员工作,每名乘务员只可以在一列火车上工作,则二者属于一对多的关系,则E-R图如下:火车火车号列车号生产厂家列车名乘务员乘务员号工资…姓名工作工作1n列车号乘务员号职位…公司和产品类型实体之间的联系:设每个公司可以生产多种产品类型,每种产品类型可以由多家公司生产,则二者属于多对多的关系,则E—R图如下:公司公司编号公司公司编号负责人…公司名产品类型类型ID…类型名生产生产MN公司号类型ID投产年份ﻬ维修工和机器实体之间的联系:设每个维修工可以维修多台机器,每台机器需要由多名维修工修理,则二者属于多对多的关系,则E-R图如下:维修工维修工号维修工维修工号时薪…姓名机器机器ID机器价机器名修理修理MN维修工号机器ID维修工时投资者和股票实体之间的联系:设每个投资者可以持有多只股票,每只股票可以由多名投资者持有,则二者属于多对多的关系,则E—R图如下:投资者投资者号投资者投资者号帐号余额姓名股票股票号股票价股票名持有持有MN投资者号股票号数量试述为什么要商量实体之间的联系类型?实体之间的联系类型决定了数据库设计时的结果,与数据库的设计质量亲密相关。多对多联系如何转换成一对多联系?并举例说明。通过引入一个表示联系的实体,将原来两个实体之间的一个多对多的联系转换成分别与表示联系的实体之间的两个一对多的联系。例如,仓库和材料两个实体之间存在着多对多的联系,即一个仓库可以存放多种材料,一种材料可以存放在多个仓库;通过引入一个库存实体转换为仓库与库存之间的一对多联系和材料与库存之间的一对多联系。解释连接陷阱的概念,在操作数据库时如何避开连接陷阱?所谓连接陷阱就是误认为原来不存在联系的两个实体之间存在联系,从而强行进行连接操作,自然得到错误的结果。为了避开连接陷阱,必须明确实体之间的联系和联系类型,只在有联系的实体之间进行关联操作。传统的三大数据模型是哪些?它们分别是如何表示实体之间的联系的?传统的三大数据模型是层次模型、网状模型和关系模型.层次模型用层次结构表示联系,它的典型代表IMS用层次型表示联系;网状模型用网状结构表示联系,它的典型代表CODASYL用系表示联系;关系模型用关系表示联系.解释存储数据独立性和概念数据独立性的区分。存储数据独立性强调的是应用程序与数据的存储结构相互独立的特性,即修改数据的存储方法或数据结构时不影响应用程序;而概念数据独立性强调的是应用程序与数据的概念结构相互独立的特性,即修改概念结构中的字段时不影响应用程序.为什么说概念数据库和外部数据库物理上并不真正存在?只有存储数据库是物理上存在的数据库,概念数据库是存储数据库的抽象,它反映了数据库的全局规律结构;而外部数据库是概念数据库的部分抽取,它反映了数据库的局部规律结构。说明在DBMS中存储模式、概念模式和外部模式的作用。存储模式描述了数据库的存储结构,它包括对存储数据库中每个文件以及字段的描述,包括用于实现帮助关键字或存储文件间联系的指针字段的细节。存储数据库利用存储模式组织和存取存储数据库中的文件。如果要修改存储数据库的结构(例如,用倒排文件代替多链表),那么仅仅需要把这些修改反映在存储模式中,以使数据库存储系统能够操作新的存储数据库。按这种方法,数据库管理系统可以供应存储(物理)数据独立性。概念模式是对概念数据库的描述,它包括对概念文件及概念文件之间联系的描述.概念数据库不包含真正的数据,一切都是由存储数据库决定的.外部模式则是对外部数据库的描述,它需要说明外部文件、构成外部文件的字段及这些外部文件之间的联系。数据库管理系统供应了外部模式与概念模式之间的映象以及概念模式与存储模式之间的映象,使用户通过外部数据库或概念数据库来操作存储数据库.习题三解释属性与值域的区分.属性是二维表中的列,而值域是列或属性的取值范围。关系模型的三个组成部分是什么?关系数据模型包括关系数据结构、关系操作集合和关系完整性约束三个重要因素。对关系模型的操作都包括哪些?关系数据模型中的操作包括:传统的集合运算:并(Union)、交(Intersection)、差(Difference)、广义笛卡尔积(ExtendedCartesianProduct);专门的关系运算:选择(Select)、投影(Project)、连接(Join)、除(Divide);有关的数据操作:查询(Query)、插入(Insert)、删除(Delete)、修改(Update)。关系模型的完整性规章都有哪些?在关系数据模型中一般将数据完整性分为实体完整性、参照完整性和用户定义完整性。试述外部关键字的概念和作用,外部关键字是否允许为空值,为什么?如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。外部关键字用于实现表与表之间的参照完整性。外部关键字是否允许为空值取决于语义的规定。外部关键字的取值或者为空值、或者为被参照关系中的某个关键字字段的值.分别叙述在进行插入、删除、更新操作时都需要进行哪些完整性检查,并说明理由.执行插入操作时需要分别检查实体完整性规章、参照完整性规章和用户定义完整性规章。首先检查实体完整性规章,如果插入元组的主关键字的属性不为空值、并且相应的属性值在关系中不存在(即保持唯一性),则可以执行插入操作,否则不行以执行插入操作。接着再检查参照完整性规章,如果是向被参照关系插入元组,则无须检查参照完整性;如果是向参照关系插入元组,则要检查外部关键字属性上的值是否在被参照关系中存在对应的主关键字的值,如果存在则可以执行插入操作,否则不允许执行插入操作.另外,如果插入元组的外部关键字允许为空值,则当外部关键字是空值时也允许执行插入操作。最后检查用户定义完整性规章,如果插入的元组在相应的属性值上遵守了用户定义完整性规章,则可以执行插入操作,否则不行以执行插入操作.执行删除操作时一般只需要检查参照完整性规章。如果删除的是参照关系的元组,则不需要进行参照完整性检查,可以执行删除操作。如果删除的是被参照关系的元组,则检查被删除元组的主关键字属性的值是否被参照关系中某个元组的外部关键字引用,如果未被引用则可以执行删除操作;否则可能有三种情况:不行以执行删除操作,即拒绝删除;可以删除,但需同时将参照关系中引用了该元组的对应元组一起删除,即执行级联删除;可以删除,但需同时将参照关系中引用了该元组的对应元组的外部关键字置为空值,即空值删除。执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。试述关系的自然连接和等值连接的异同之处。自然连接和等值连接都是基于相等比较运算的连接,但是自然连接要去掉重复的属性,而等值连接却不需要去掉重复的属性。以图3—6的数据库为例(可参照图5-1,该数据库的实例),用关系代数完成以下检索:注意:此处暂以*表示连接运算符。检索在仓库WH2工作的职工的工资。π职工号,工资(σ仓库号="WH2"(职工))检索在上海工作的职工的工资。π职工号,工资(σ城市="上海"(仓库)*职工)检索北京的供应商的名称。π供应商名(σ地址="北京"(供应商))检索目前与职工E6有业务联系的供应商的名称.π供应商名(σ职工号=”E6”(订购单)*供应商)检索全部职工的工资都大于1220元的仓库所在的城市.π城市(仓库)-π城市(σ工资<=1220(职工)*仓库)命题“全部职工的工资都大于1220元的仓库”的逆命题是:“有职工工资不大于1220的仓库”故本题可以换一个说法:求“在全部仓库中除去有职工工资不大于1220的仓库”所在城市课本P116例5.36,例5.37均商量类似问题检索和北京的全部供应商都有业务联系的职工的工资。π职工号,工资(职工*(订购单÷π供应商号(σ地址=”北京”(供应商))))检索至少和职工E1、E4、E7都有联系的供应商的名称。π供应商名(订购单÷(“E1”,”E4”,”E7")*供应商)试述关系数据库系统的三层模式结构。略习题四简述客户/服务器结构的概念,并说明客户/服务器结构与文件服务器网络结构的区分。客户/服务器结构的基本思想是应用程序或应用规律可以依据需要划分在服务器和客户工作站中,它既不像集中式系统那样全部的应用程序都在主机上执行,也不像文件服务器网络那样全部的应用程序都在客户端执行,它可以使应用程序合理负担在服务器和客户端。客户/服务器结构与文件服务器网络结构的硬件拓扑结构很相像,它们的根本区分在于:客户/服务器结构的服务器可以执行应用程序;而文件服务器的服务器只是一个数据共享器,它不能执行应用程序。在客户/服务器结构中,数据库服务器和客户端计算机是如何分工的?数据库服务器应完成数据管理、信息共享、平安管理、以及一些更高级的管理.它是一个开放的体系结构,可以接受来自各种应用程序和开发工具的客户端的连接;它除了要管理集中的数据库之外,还要处理来自客户端的数据访问恳求和将结果反馈给用户(包括管理恳求队列、管理缓存、响应服务、管理结果和通知服务完成等)的工作。而客户端计算机是面对最终用户的,所以它的主要任务是供应友好的用户界面,提交数据访问恳求以及接收和处理数据库的返回结果,组织返回数据的输出(如生成数据扫瞄窗口、生成数据报表和图形等),供应初步的数据验证功能等。SQLServer在安装后默认创建了哪几个系统数据库?分别叙述它们的作用。SQLServer在安装后默认创建了4系统数据库,它们是:master数据库.master数据库用于存储SQLServer系统的全部系统级信息,包括全部的其它数据库(如建立的用户数据库)的信息(包括数据库的设置、对应的操作系统文件名称和位置等)、全部数据库注册用户的信息以及系统配置设置等。tempdb数据库。tempdb数据库用于保存全部的临时表和临时存储过程,它还可以满意任何其它的临时存储要求。model数据库。model数据库是一个模板数据库,当使用CREATEDATABASE命令建立新的数据库时,新数据库的第一部分总是通过复制model数据库中的内容创建,剩余部分由空页填充。msdb数据库。msdb数据库用于SQLServer代理程序调度报警和作业等系统操作.试述SQLServer的CREATEDATABASE命令在创建数据库时是如何申请物理存储空间的?通过指定的物理文件名、文件的大小等向操作系统申请物理存储空间。试述SQLServer企业管理器的功能.略。习题五试概述SQL语言的功能。SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据掌握等方面的功能,它可以完成数据库活动中的全部工作。以图5-1的数据库为例,用SQL完成以下检索:检索在北京的供应商的名称。SELECT供应商名FROM供应商WHERE地址='北京’检索发给供应商S6的订购单号。SELECT订购单号FROM订购单WHERE供应商号=’S6’检索出职工E6发给供应商S6的订购单信息。SELECT*FROM订购单WHERE供应商号='S6’AND职工号='E6’检索出向供应商S3发过订购单的职工的职工号和仓库号.SELECT职工号,仓库号FROM职工WHERE职工号IN(SELECT职工号FROM订购单WHERE供应商号=’S3')检索出目前与S3供应商没有联系的职工信息。SELECT*FROM职工WHERE职工号NOTIN(SELECT职工号FROM订购单WHERE供应商号=’S3’)错:SELECT*FROM职工WHERE职工号IN(SELECT职工号FROM订购单WHERE供应商号!=’S3’)检索出目前没有任何订购单的供应商信息。SELECT*FROM供应商WHERENOTEXISTS(SELECT*FROM订购单WHERE供应商号=供应商.供应商号)或:SELECT*FROM供应商

WHERE供应商号notin(SELECT供应商号FROM订购单)检索出和职工E1、E3都有联系的北京的供应商信息。SELECT*FROM供应商WHERE地址=’北京’And供应商号IN(SELECT供应商号FROM订购单WHERE职工号='E1')AND供应商号IN(SELECT供应商号FROM订购单WHERE职工号=’E3’)错:SELECT*FROM供应商WHERE地址=’北京’And供应商号IN(SELECT供应商号FROM订购单WHERE职工号=’E1’and职工号=’E3’)检索出目前和华通电子公司有业务联系的每个职工的工资。SELECT职工号,工资FROM职工WHERE职工号IN(SELECT职工号FROM订购单WHERE供应商号IN(SELECT供应商号FROM供应商WHERE供应商名=’华通电子公司’))检索出与工资在1220元以下的职工没有联系的供应商的名称。selectdistinct供应商名,供应商号from供应商where供应商号notin-—('s4’,'s7')—-该供应商无与E3的订单(selectdistinct供应商号from订购单where供应商号isnotnullandﻩﻩ职工号in(select职工号--职工工资低于1220职工号,只有E3ﻩﻩfrom职工ﻩﻩwhere工资<1220)ﻩ)ﻩ—-该供应商有下过订单ﻩand供应商号in (selectdistinct供应商号from订购单)最内层查询的结果为:工资低于1220的职工号中间层查询的结果为:由工资低于1220的职工经手的订购单的供应商号最外层查询的结果为:与工资低于1220的职工没有联系的供应商号、供应商名(除掉与工资低于1220的职工有联系的供应商号)进一步商量:如果把not从最外层移到中间层,变成以下命令,则结果是不对的,商量如下:selectdistinct供应商名,供应商号from供应商where供应商号in--('s4',’s7’)—-该供应商无与E3的订单(selectdistinct供应商号from订购单where供应商号isnotnullandﻩ职工号notin(select职工号--职工工资低于1220职工号,只有E3ﻩﻩfrom职工 where工资〈1220) )最内层查询的结果为:工资低于1220的职工号中间层查询的结果为:不是由工资低于1220的职工经手的订购单的供应商号注意:若一个供应商有两张以上的订购单,其中一张由工资低于1220的职工经手,至少一张由不低于1220的职工经手,则该供应商号消灭在中间层的结果集中,但该供应商号却不是所要的结果,如课本P98数据中的S4最外层查询的结果为:与工资低于1220的职工没有联系的供应商号、供应商名(除掉与工资低于1220的职工有联系的供应商号)检索出向S4供应商发出订购单的仓库所在的城市。SELECT城市FROM仓库WHERE仓库号IN(SELECT仓库号FROM职工WHERE职工号IN(SELECT职工号FROM订购单WHERE供应商号=’S4'))检索出在上海工作并且向S6供应商发出了订购单的职工号.SELECT职工号FROM职工WHERE仓库号IN(SELECT仓库号FROM仓库WHERE城市='上海')AND职工号IN(SELECT职工号FROM订购单WHERE供应商号='S6')检索出在广州工作并且只向S6供应商发出了订购单的职工号。SELECT职工号FROM职工WHERE仓库号IN(SELECT仓库号FROM仓库WHERE城市='广州')AND职工号IN(SELECT职工号FROM订购单WHERE供应商号='S6')AND职工号NOTIN(SELECT职工号FROM订购单WHERE供应商号!=’S6’)检索出由工资多于1230元的职工向北京的供应商发出的订购单号。SELECT订购单号FROM订购单WHERE职工号IN(SELECT职工号FROM职工WHERE工资〉1230)AND供应商号IN(SELECT供应商号FROM供应商WHERE地址='北京')检索出仓库的个数。ﻩSELECTCOUNT(*)FROM仓库检索出有最大面积的仓库信息。SELECT*FROM仓库WHERE面积=(SELECTMAX(面积)ﻩﻩﻩFROM仓库)检索出全部仓库的平均面积。ﻩSELECTAVG(面积)FROM仓库按城市算仓库面积:ﻩSELECT城市,AVG(面积)FROM仓库Groupby城市检索出向S4供应商发出订购单的那些仓库的平均面积。SELECTAVG(面积)FROM仓库WHERE仓库号IN(SELECT仓库号FROM职工WHERE职工号IN(SELECT职工号FROM订购单WHERE供应商号='S4'))检索出每个城市的供应商个数。ﻩSELECT地址,COUNT(*) ﻩFROM供应商ﻩ GROUPBY地址检索出每个仓库中工资多于1220元的职工个数。ﻩSELECT仓库号,COUNT(*)ﻩFROM职工ﻩWHERE工资〉1220ﻩGROUPBY仓库号存在问题:WH4无职工,应在结果显示0改进:SELECT仓库号,人数=(selectCOUNT(职工号)from职工where仓库。仓库号=职工。仓库号and工资>1220)FROM仓库检索出和面积最小的仓库有联系的供应商的个数。SELECTCOUNT(distinct供应商号)FROM订购单WHERE职工号IN(SELECT职工号FROM职工WHERE仓库号IN(SELECT仓库号FROM仓库WHERE面积=(SELECTMIN(面积)FROM仓库)))--另一个写法:SELECTCOUNT(*)FROM供应商WHERE供应商号IN(SELECT供应商号FROM订购单WHERE职工号IN(SELECT职工号FROM职工WHERE仓库号IN(SELECT仓库号FROM仓库WHERE面积=(SELECTMIN(面积)FROM仓库))))检索出工资低于本仓库平均工资的职工信息。SELECT*FROM职工outWHERE工资<(SELECTAVG(工资)FROM职工inneWHEREinne.仓库号=out.仓库号)试述关系数据库中视图(View)的含义和作用。在关系数据库中,视图也称作窗口,即视图是操作基本表的窗口.在三层数据库体系结构中,视图是外部数据库,它是从基本表中派生出来的并依靠于基本表,它并不独立存在。利用视图一方面可以限定对数据的访问(对数据列起到平安保护的作用),另一方面又可以简化对数据的访问(用户可以直接通过视图访问数据库)。除此之外,从三层数据库体系结构的角度它还供应了概念数据独立性。以图5—1的数据库为例,用SQL语句完成以下更新操作,并商量数据完整性约束对这些操作的影响:1)ﻩ插入一个新的供应商元组(S9,智通公司,沈阳)。INSERTINTO供应商VALUES('S9’,’智通公司’,'沈阳’)2)ﻩ删除目前没有任何订购单的供应商。DELETEFROM供应商WHERE供应商号NOTIN(SELECT供应商号FROM订购单)3) 删除由在上海仓库工作的职工发出的全部订购单。DELETEFROM订购单WHERE职工号IN(SELECT职工号FROM职工WHERE仓库号IN(SELECT仓库号FROM仓库WHERE城市='上海’))连接操作:DELETEFROM订购单From职工,仓库WHERE订购单。职工号=职工.职工号and职工。仓库号=仓库.仓库号and城市='上海'4)ﻩ北京的全部仓库增加100m2的面积.UPDATE仓库SET面积=面积+100WHERE城市='北京'5)ﻩ给低于全部职工平均工资的职工提高5%的工资.UPDATE职工SET工资=工资*1.05WHERE工资<(SELECTAVG(工资)FROM职工)SQL要嵌入到宿主语言中使用要解决哪几方面的问题?把SQL嵌入到宿主语言中使用必必要解决以下三个方面的问题:嵌入识别问题。宿主语言的编译程序不能识别SQL语句,所以首要的问题就是要解决如何区分宿主语言的语句和SQL语句.宿主语言与SQL语言的数据交互问题.SQL语句的查询结果必须能够交给宿主语言处理,宿主语言的数据也要能够交给SQL语句使用.宿主语言的单记录与SQL的多记录的问题.宿主语言一般一次处理一条记录,而SQL常常处理的是记录(元组)的集合,这个冲突必须解决。试述预编译的作用。宿主语言的编译系统不能识别SQL语句。解决这个问题的一般方法是,为SQL语句加一个特殊的前缀,在用宿主语言的编译系统编译源程序之前,首先由预编译系统将SQL语句转换为宿主语言的合法函数调用。试述游标(Cursor)的作用,并解释实现此功能的诸条语句的用途.宿主语言一般只能在单记录方式下工作,即一次处理一个记录.而SQL语句的查询结果常常是一张表,它包含多个记录,为此需要用游标(CURSOR)作为桥梁做一些特殊处理,即利用游标来临时存放SQL语句的查询结果,并利用游标与宿主语言的主变量进行数据交互.与游标有关的命令共有四条:DECLARECURSOR、OPEN、FETCH和CLOSE。其中DECLARECURSOR用SQLSELECT语句说明一个游标;OPEN打开游标,即执行说明游标的SQLSELECT语句;FETCH从游表中读一条记录到主变量;CLOSE关闭游标。试述为什么需要动态SQL语句,分析游标和动态游标的区分。有时候在编程序时SQL语句或语句的参数和格式不能确定,应用程序只能在执行时才知道需要什么样的SQL语句,即必须在应用程序执行时动态建立SQL语句。定义游标的SQL语句是静态的;而定义动态游标的SQL语句是动态生成的。习题六什么是存储过程?为什么要使用存储过程?存储过程是经过预编译的T—SQL语句的集合,它存放在数据库中,当用户执行存储过程时,存储过程在数据库服务器上运行。利用存储过程可以避开在网络上传输大量无用的信息或原始数据,只需要传输调用存储过程的指令和数据库服务器返回的处理结果,这样可以大大提高网络数据库应用系统的性能。试为如下问题编写、建立存储过程,并定义合适的过程返回状态码和信息(均以图5—1的数据库为例):插入一个新的供应商元组。CREATEPROCEDUREins_sup(@snoCHAR(3),@snameCHAR(16),@addrCHAR(10))ASﻩINSERTINTO供应商VALUES(@sno,@sname,@addr) IF@@ERROR=0ﻩﻩRETURN0ﻩELSEﻩﻩRETURN-1--下面的调用将消灭错误,并返回-1,由于供应商号重复declare@iintexec@i=ins_sup'S3','存储过程插入的供应商’,'地址'select@i--修改供应商号后,调用将正确执行,并返回0declare@iintexec@i=ins_sup'A3’,'存储过程插入的供应商','地址'select@i-—查看结果select*from供应商给指定城市的全部仓库增加xm2的面积。CREATEPROCEDUREupd_wh_area(@citychar(10),@areanumeric)ASIFnotexists(select*from仓库where城市=@city)RETURN-2UPDATE仓库SET面积=面积+@areaWHERE城市=@cityRETURN0-—调用Declare@enointegerexec@eno=upd_wh_area'广州’,1000select@eno—-查看结果,检查广州仓库的面积是否如期增加了指定值?select*from仓库检索某职工发给某供应商的订购单信息.CREATEPROCEDUREget_ord(@enoCHAR(4),@snoCHAR(3))ASIFnotexists(select*from职工where职工号=@eno)beginprint'参数错误:不存在的职工号!’RETURN—3endIFnotexists(select*from供应商where供应商号=@sno)beginprint’参数错误:不存在的供应商号!'RETURN-4endSELECT*FROM订购单WHERE职工号=@enoAND供应商号=@snoﻩRETURN0-—调用存储过程,查看E3发给S7的订购单declare@iintexec@i=get_ord'E3’,’S7’select@ias返回码--调用存储过程,查询在北京工作且向供应商S7发出订购单的职工号declare@iintexec@i=get_ord'E3',’S7'select@ias返回码检索在某城市工作并且向某供应商发了订购单的职工号。CREATEPROCEDUREget_eno(@cityCHAR(10),@snoCHAR(3))ASIFnotexists(select*from仓库where城市=@city)beginprint'参数错误:不存在的城市!'RETURN-5 endIFnotexists(select*from供应商where供应商号=@sno)beginprint’参数错误:不存在的供应商!'RETURN-6 endselect职工号from订购单where供应商号=@snoand职工号IN(select职工号from仓库where仓库号in(SELECT仓库号FROM仓库WHERE城市=@city))SELECT职工号FROM职工WHERE仓库号IN(SELECT仓库号FROM仓库WHERE城市=@city)AND职工号IN(SELECT职工号FROM订购单WHERE供应商号=@sno)ﻩRETURN0—-调用存储过程,查询在北京工作且向供应商S7发出订购单的职工号declare@iintexec@i=get_ord’北京’,’S7'select@ias返回码试述触发器的概念和作用。触发器可以看作是一类特殊的存储过程,它在满意某个特定条件时自动触发执行。触发器是为表上的更新、插入、删除操作定义的,也就是说当表上发生更新、插入或删除操作时触发器将执行.触发器可以用于数据参照完整性和以下一些场合:触发器可以通过级联的方式对相关的表进行修改。比如,对父表的修改,可以引起对子孙表的一系列修改,从而保证数据的全都性和完整性.触发器可以禁止或撤消违反参照完整性的修改。触发器可以强制比用CHECK约束定义更加简洁的限制.利用触发器为图5-1数据库的订购单关系建立参照完整性。。建立插入触发器CREATETRIGGERord_ins_triggerON订购单FORINSERTASIF((SELECTCOUNT(*)FROM职工e,INSERTEDiWHEREe.职工号=i.职工号)=0OR(SELECTCOUNT(*)FROM供应商s,INSERTEDiWHEREs。供应商号=i.供应商号)=0)BEGINRAISERROR('非法职工号或非法供应商号',1,1)ROLLBACKTRANSACTIONEND建立更新触发器略习题七商量数据库平安都与哪些平安问题有关?数据库平安实际涉及到很多方面,除了数据库管理系统应该具有平安保护功能之外,还需要从管理机制、人员行为、操作系统平安和网络平安等多个方面实行措施。试述数据库的自主存取掌握和强制存取掌握的区分和各自的特点。自主存取掌握的特点是由用户“自主"地掌握数据库对象的访问权限;而强制存取掌握的特点是严格的分层次管理,有严格的等级制度。试述角色管理在数据库平安掌握中的作用.角色管理类似于用户组的管理,可以将数据库的全部用户划分成不同的角色,这样可以简化用户管理,使用户管理和权限管理更加简洁、清楚。试述SQLServer的系统预定义角色为平安管理供应了哪些便利。SQLServer的系统管理是由系统管理员(默认是sa用户)负责的,而系统预定义角色正是系统管理员职责的分解,通过一些系统预定义角色的用户来协助系统管理员进行管理,可以减轻系统管理员(sa用户)的工作负担,对系统管理来说又有更明确的职责划分。试述语句授权和对象授权各自的含义和作用.语句授权是指对执行创建数据库对象的语句的授权,这种权限一般归系统管理员(sa)或数据库管理员(DBO)管理;对象授权是指对可以在数据库对象执行的操作的授权,这种权限一般由数据库对象拥有者(DBOO)管理,也可以由系统管理员(sa)或数据库管理员(DBO)管理。试述GRANT语句中WITHGRANTOPTION子句的作用。WITHGRANTOPTION子句说明被授权用户可以将指定的对象权限授予其他用户。该子句仅对对象权限有效,对语句权限无效。试述在REVOKE语句中GRANTOPTIONFOR子句和CASCADE子句的作用。GRANTOPTIONFOR说明只收回WITHGRANTOPTION权限;CASCADE说明级联收回由于WITHGRANTOPTION授予的全部权限。GRANTOPTIONFOR要与CASCADE一同使用,由于要收回WITHGRANTOPTION权限,也应该一同收回由于该子句产生的全部授权。试述禁止权限语句DENY的作用。禁止权限语句DENY的作用是禁止用户从角色继承指定的权限。什么是数据库的审计功能?系统管理员(或数据库管理员)可以通过审计日志审计、跟踪全部用户对数据库的操作活动,可以确定哪些客户、什么时间、进行了哪些操作(任何操作)等,这种功能称作数据库的审计功能。统计数据库有哪些特殊的平安性问题?统计数据库的平安性问题主要是指不允许从统计信息推导出名细信息。习题八什么是事务?事务是构成单一规律工作单元的操作集合。解释事务的ACID性质。事务的ACID性质指事务具有原子性(即不行分割)、全都性(要能保证数据库的全都性)、隔离性(事务的原子性和全都性不受其他事务的影响)和持久性(事务对数据库所施加的全部更新都是永久的)。并发掌握都会产生哪些干扰问题?并商量之。并发事务可能会存在的干扰问题主要有:丢失更新问题未提交依靠问题不全都分析问题幻象读问题商量略。请举出两个并发的程序进行更新操作时相互干扰的例子。可举上题四种问题之一,如下例:若有两个程序并发操作同一个银行帐号,程序1读取银行帐号余额,并从该帐号中扣除本次购物款X元,程序2也读取帐号余额,并对该帐号进行充值Y元,模拟流程如下:时刻程序1程序2T1读帐号余额到变量AT2A=A+XT3读帐号余额到变量BT4B=B+YT5用变量A更新帐号余额T6用变量A更新帐号余额如上表所示,程序1的更新丢失了!利用事务概念和封锁技术重做第4题,使干扰不发生。利用事务概念和封锁技术改写程序1和程序2后,相同的操作过程如下表:时刻程序1程序2T1开头事务:读帐号余额到变量A(帐号被封锁)T2A=A+XT3开头事务:读帐号余额到变量B(封锁失败,等待)T4等待T5用变量A更新帐号余额提交事务(解除封锁)T6开头事务:读帐号余额到变量B(帐号被封锁)T7B=B+YT8用变量A更新帐号余额提交事务(解除封锁)T9可见,丢失更新的问题解决了。分别解释共享封锁、更新封锁和独占封锁的含义.共享封锁是为读操作设置的一种封锁,目的是想读到一组不变的数据,也就是在读数据的过程中,不允许其他用户对该数据进行任何修改操作。这种封锁可以保证最大的并发性,任何数量的用户都可以同时对同样的数据施加这种共享锁。当需要对一个记录或一组记录进行更新时(只是修改,不包括插入和删除)使用更新封锁,该封锁的目的是防止其他用户在同一时刻修改同一记录。已经实施更新封锁的记录,拒绝来自其他用户的更新封锁或独占封锁。独占封锁也叫排他封锁,这是最严格的一类封锁。当需要对表实施插入、删除或修改操作时,应该使用独占封锁。已经实施独占封锁的表,拒绝来自其他用户的任何封锁,但不拒绝其他用户的一般读操作。什么是死锁?如何避开发生死锁?当两个(或多个)并发的事务分别等待对方释放封锁的资源,而使事务处于长期等待状态的现象称为死锁.为了避开死锁,一般可以实行两种方式:相同挨次法:全部的事务约定都按相同的挨次来封锁表;一次封锁法:为了完成一个事务,一次性封锁所需要的全部表。什么是事务的隔离性?如何划分事务的隔离级别?事务的隔离性是指一个事务应该与其他事务“隔离”,它在完成过程中不受其他事务的影响和干扰。“隔离"则意味着并发程度的降低.为了既能保证数据的全都性、又尽可能提高系统的并发执行效率,为此将隔离级别划分为如下4个级别:未提交读(READUNCOMMITTED):事务隔离的最低级别,仅可保证不读取物理损坏的数据,这是4个隔离级别中限制最小的级别。提交读(READCOMMITTED):可以保证不读取“脏”数据。可重复读(REPEATABLEREAD):可以保证读全都性,避开不全都分析问题。可串行化(SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离;如果事务在可串行化隔离级别上运行,则可以保证任何并发重叠事务均是串行的。试叙述在备份与恢复技术中数据库日志的作用。日志则是对备份的补充,它可以看作是一个值班日记,它将记录下全部对数据库的更新操作.这样就可以在备份完成时立刻刷新并启用一个数据库日志,数据库日志是实时的,它将忠实地记录下全部对数据库的更新操作。因此,当磁盘消灭故障造成数据库损坏时,就可以首先利用备份恢复数据库(恢复大部分数据),然后再运行数据库日志,即将备份后所做的更新操作再重新做一遍,从而将数据库完全恢复。试述在SQLServer中利用文件和文件组备份为数据库恢复供应了什么样的便利?利用文件和文件组进行备份,则当建立数据库的某个物理存储介质消灭故障时,可以只恢复发生故障的存储介质上的物理文件或文件组,而不需要恢复整个数据库,这可以大大缩短数据库恢复所需要的时间。针对不同的故障类型(事务故障和介质故障),试商量恢复的策略和方法。略试商量备份系统数据库的重要性。系统数据库(在SQLServer上格外是master数据库)是管理用户数据库的数据库,如果系统数据库一旦损坏,整个系统的使用都将受到影响.所以系统数据库的平安和牢靠是用户数据库可以正常使用的基础。习题九理解、定义如下术语,并分别给出两个例子:函数依靠、部分函数依靠、完全函数依靠、传递函数依靠、主属性。略找出图5-1所示数据库各个关系中的函数依靠。仓库关系上的函数依靠:仓库号→城市,仓库号→面积职工关系上的函数依靠:职工号→仓库号,职工号→工资订购单关系上的函数依靠:订购单号→职工号,订购单号→供应商号,订购单号→订购日期供应商关系上的函数依靠:供应商号→供应商名,供应商名→供应商号,供应商号→地址,供应商名→地址试证明如下结论(引理9.1):X→A1A2…An的充分必要条件是X→Ak成立(k=1,2,…,n)。证明:略设有关系模式R(U,F),U={A,B,C,D,E},F={AB→E,DE→B,B→C,C→E,E→A}计算全部函数依靠左部关于函数依靠集F的属性集闭包;(AB)F+={A,B,C,E}(DE)F+={A,B,C,D,E}BF+={A,B,C,E}CF+={A,C,E}EF+={A,E}确定关系模式R上的全部侯选关键字; 由上面可知,只有属性集DE关于函数依靠集F的闭包为∪,故关系R上的候选关键字有{DE}同理:{BD}F+={A,B,C,D,E},故BD是R上的候选关键字求F的全部最小掩盖.依据最小掩盖的定义,应用算法9。2:步骤一:F中全部的函数依靠都已经是单一属性,算法进入下一步步骤二:F中有AB→E,DE→B的左部为复合属性,1。对于AB→E,应用引理9.4,∵∴F与F—{AB→E}∪{A→E}不等价∵∴F与F-{AB→E}∪{B→E}等价F变为{B→E,DE→B,B→C,C→E,E→A}2.对于DE→B,应用引理9.4,∵∴F与F-{DE→B}∪{E→B}不等价∵∴F与F-{DE→B}∪{D→B}不等价F不变算法进入下一步步骤三:逐一检查F中的各函数依靠1。对B→E,令G=F—{B→E},应用引理9。5,∵,∵G与F等价从F中去掉B→EF变为{DE→B,B→C,C→E,E→A}2。对DE→B,令G=F-{DE→B},应用引理9.5,∵∵G与F不等价故不能从F中去掉3.对B→C,令G=F-{B→C},应用引理9。5,∵∵G与F不等价故不能从F中去掉4.对C→E,令G=F-{C→E},应用引理9。5,∵∵G与F不等价故不能从F中去掉5。对E→A,令G=F-{E→A},应用引理9.5,∵∵G与F不等价故不能从F中去掉至此,算法结束, Fm={DE→B,B→C,C→E,E→A}假设有一个名为参加的关系,该关系有属性:职工(职工名)、工程(工程名)、时数(花费在工程上的小时数)和工资(职工的工资);一个参加记录描述一个职工花费在一个工程上的总时数和他的工资;另外,一个职工可以参加多个工程,多个职工可以参加同一个工程。请回答如下各问题:用A、B、C、D分别代表属性职工、工程、时数和工资,则:确定这个关系的关键字;AB找出这个关系中的全部函数依靠;AB—〉C,A->D指出这个关系上的哪些函数依靠会带来操作特别现象;D对关键字AB的部分函数依靠可能会带来如下问题:数据冗余:一个职工参加多个工程,则职工的工资值会重复;更新特别:当转变职工的工资时,可能会只修改了一部分,从而造成数据不全都;插入特别:当一个职工尚未担当工程,但要插入职工信息(如工资)则不允许(由于没有完整的关键字);删除特别:当某个工程结束,删除工程信息时,可能会将职工信息(如工资)一同删除(如果职工只参加了一项工程)。这个关系是第几范式关系?1.该关系全部的属性均是原子的,不行分割,故达到1NF2。存在非主属性工资部分依靠于主关键字{职工,工程},故该关系未达到2NF计算该关系上函数依靠集的最小掩盖;Fm={AB—>C,A->D}将该关系分解成尽可能高的范式,并指明是第几范式?分解为R1(A,B,C)和R2(A,D)结果为4NF一个关系有4个字段A、B、C、D,这里A和B构成复合关键字,问满意下列函数依靠的关系是第几范式?A、B、C、D都函数依靠于AB。BCNF或4NFA、B、C、D都函数依靠于AB,而D还函数依靠于C。2NFA、B、C、D都函数依靠于AB,而D还函数依靠于B。1NFA、B、C、D都函数依靠于AB,而B还函数依靠于C。3NF(存在CB,而左部C不是关键字,故不属于BCNF)设有关系模式R(A,B,C,D,E),并有函数依靠{AB→D,AC→E,BC→D,D→A,E→B},现将R分解成关系模式S(A,B,C)和其他一些关系模式,请给出在关系模式S上成立的函数依靠。AC→B,BC→A习题十试叙述概念数据库设计和规律数据库设计的区分,并说明各自的主要工作内容.概念数据库设计是不依靠于任何数据库管理系统的,它是对用户信息需求的归纳。概念设计的结果得到的是数据库的概念结构,或称概念数据模型,由于它是从现实世界的角度进行的抽象和描述,所以与简略的硬件环境和软件环境均无关.而在规律数据库首先要考虑实现数据库的数据库管理系统所支持的数据模型是什么,并将概念数据模型转换为数据库管理系统支持的数据模型。一般在概念设计阶段主要工作内容有:确定实体;确定实体的属性;确定实体的标识属性(关键字);确定实体间的联系和联系类型;确定实现实体间联系的属性(外部关键字或连接属性);画出表示概念模型的E-R图;除此之外,为了以后对模式进行规范化,还需要:确定属性间的依靠关系。而在规律设计阶段一般主要工作内容有:确定各个关系模式的主关键字,考虑实体完整性;确定各个关系模式的外部关键字,考虑参照完整性;确定各个关系模式中属性的约束、规章和默认值,考虑域完整性;依据用户需求设计视图;考虑平安方案和用户使用权限等。物理数据库设计主要包括哪些内容?物理数据库设计的内容是设计数据库的存储结构和物理实现方法。一般包括如下内容:估算数据库的数据存储量;设计数据库设备;支配数据库的存储;设计索引;设计备份策略等。到Sybase公司的网站(http://www.sybas。cn)下载PowerDesigner的试用版,实践利用PowerDesigner进行数据库建模的方法和过程。略习题十一面对对象数据库是在什么背景下产生的?为什么需要面对对象数据库?在信息管理领域之外还有很多新的应用领域迫切需要使用数据库,如计算机帮助设计(CAD)、多媒体技术(音频、视频文件的存储和处理)等,这些应用往往需要存储大量的简洁类型的数据,同时面对对象的概念和技术也强烈地引发了数据库对简洁数据类型的支持,从而推动了面对对象数据库的进展。由于关系数据库不直接支持简洁数据类型,致使一些必须使用简洁数据类型的应用实现起来不是很便利、并且效率较低.另外关系模型也不支持构造类型和继承,这都使得人们盼望进展面对对象的数据库.什么是对象的封装性、继承性和多态性?封装性是指将类的数据和操作封装在类定义中,对用户来讲类的“功能”是可见的,而实现部分是封装在类定义中的,用户是看不见的。这种封闭性保证了每个对象的实现都独立于其他对象的细节,从而有利于保证软件的质量。继承性是指可以利用已有的类去定义新的类。如果依据类A定义类B,则说类B继承了类A,同时把类A称作基类,把类B称作子类.子类不仅可以继承基类的全部性质,还可以在子类中定义新的性质。继承性使得基类中的代码可以共享和重用,所以继承性有助于软件可重用性的实现。多态性是指同一个函数可以有多种作用,即:同一个函数依据不同的引用对象可以完成不同的功能;同一个函数即便引用同一个对象,但由于传递的参数不同也可以完成不同的功能。多态性可以为整个应用和全部对象内部供应一个全都的接口,没有必要为相同的动作命名和编写不同的函数,它完全可以依据引用的对象不同、传递的消息不同来完成不同的功能.这样做也与现实世界中管理和运作方法相吻合.面对对象数据库的讨论方法主要有哪些?面对对象数据库的讨论方法目前主要有以下三种:扩充关系数据模型。将成熟的关系数据库与面对对象数据库方法结合起来,可削减研制工作量、缩短研制周期。这种方法的弱点是不能全面支持面对对象的特征。在面对对象语言中嵌入数据库功能而形成面对对象数据库。该方法的关键是如何在面对对象语言中增加持久性对象的存储管理.使用此方法受到面对对象语言的一些限制。开发全新的数据模型,从底层实现面对对象数据库系统.这是最彻底的方法,缺点是难度大,一方面缺乏统一的数据模式及形式化理论,另一方面在查询优化、视图及数据库工具方面仍为空白。面对对象数据库应该具备哪些基本特征?一个面对对象数据库系统应该具备如下的基本内容和特征:在数据模型方面支持对象、复合对象、封装、类、继承、重载、滞后联编、多态性等基本概念。其中复合对象的概念包括支持生成复合对象的构造器(元组、集合、包、列表、数组等)。数据库管理系统除了具有传统的数据库管理系统所具有的功能(如并发掌握、故障和恢复)外,还支持永久对象、长事务处理和嵌套事务,具有版本管理和模式演化的能力,能维护数据完整性,适合在分布式环境下工作。数据库访问界面要支持消息传递,供应计算能力完备的数据库程序设计语言,能解决数据库语言与宿主语言的某些不匹配问题,供应类似SQL的非过程化查询功能。SQL99支持ORDBMS、还是OODBMS?SQL99支持的是ORDBMS.比较RDBMS、ORDBMS和OODBMS,然后分别描述一个适合使用RDBMS、ORDBMS和OODBMS的应用,并说明缘由.略习题十二解释ODBC的概念。ODBC(OpenDataBaseConnectivity)的全称是开放数据库互连,它是一种访问数据库的统一界面标准.应用程序是如何通过ODBC访问数据库的?应用程序通过调用ODBC函数可以完成对数据库的访问操作,它所执行的任务或完成的工作包括:恳求对数据源的连接,猎取连接句柄;指定事务掌握方式;定义接收结果的数据区;向数据源发送SQL语句;接收SQL的查询结果;处理出错信息,并将出错信息返回给应用程序;终止对数据源的连接。设有基于SQLServer的pubs数据源,它对应于pubs数据库,写出利用VisualFoxPro访问或操作SQLServer的如下语句:连接到pubs数据库;gn=SQLCONNECT("pubs","sa”)查询employee表的全部信息;=SQLEXEC(gn,"SELECT*FROMemployee”)为publishers表筹备一个带参数的查询,可以指定pub_name(出版社名)进行查询;=SQLPREPARE(gn,”SELECT*FROMpublishersWHEREpub_name=?m_p_name")以前一小题为基础,查询“FiveLakesPublishing”出版社的信息;m_p_name=”FiveLakesPublishing"=SQLEXEC(gn)从sales表中删除stor_id为6380的记录。=SQLEXEC(gn,"DELETEFROMsaleswherestor_id=6380")PowerBuilder是个什么类型的软件产品?PowerBuilder是一个面对对象的数据库应用系统开发工具。PowerBuilder都可以通过哪些方式访问数据库?PowerBuilder都可以通过各种接口访问数据库,如ODBC、JDBC、OLEDB和各种数据库专用接口等.试述PowerBuilder中事务对象的概念。PowerBuilder的事务对象是PowerScript与数据库的通讯区,只有通过事务对象才能完成对数据库的操作。使用PowerBuilder完成12。3节中的例子,初步掌握使用PowerBuilder进行开发的方法。略试述基于组件的数据库开发的基本思想.克服传统C/S结构的明显缺点(缺乏中心掌握、缺乏平安性和沉重的客户端负载等),以面对对象技术为基础,将业务处理规律和规章按完整的规律单元进行封装,即将相关的类封装成组件,并使它们部署在应用服务器上,客户端应用程序不再直接和数据库打交道,而是通过部署在服务器上的组件完成数据操作。查阅有关资料,进一步了解和掌握有关组件开发的技术标准。略为什么需要动态HTML?为什么需要Web数据库?在传统的Web服务器中,文本和其他多媒体信息都是以文件的形式来进行存储和管理的,随着信息量的不断增加,系统的速度等性能受到越来越大的影响。另一方面,WWW的应用领域在不断拓展,静态的Web页面也越来越不能满意对信息服务的动态性、实时性和交互性的要求。也就是说,用户已经不满意看技术人员事先做好的静态信息,而盼望能够依据自己的需要看到最新的信息,这就需要数据库的支持,可以依据检索数据库的结果动态生成网页.所以可以嵌入数据库检索语句并依据检索结果动态生成网页的HTML称为动态HTML,而可以支持动态生成网页的数据库就是WEB数据库。试分别叙述Web服务器、页面服务器和事务服务器的作用.Web服务器接收Web扫瞄器发送的页面扫瞄恳求,如果其中嵌入了数据恳求则交由页面服务器处理。页面服务器处理负责数据库与Web站点的协调和管理,负责解释Web页面中的数据恳求,并将从数据库中获得的动态数据嵌入到Web页面中.事务服务器即应用服务器或组件服务器,当页面中的数据访问需要调用相应的业务处理规律时,可能需要事务服务器的支持。试述在PowerBuilder中Web数据窗口的作用。Web数据窗口是用于HTML的数据窗口,它供应了一种瘦客户端解决方案,可以供应PowerBuilder数据窗口的大部分数据操作功能,而且不需要在Web客户端安装任何PowerBuilder动态连接库(DLL)或其他组件。习题十三按软件工程思想(结构化生命周期法)开发一个数据库应用系统应该包括哪些步骤?说明各步骤的主要工作内容。数据库应用系统开发可以分为如下七个步骤:系统调查及可行性分析;系统分析(需求分析);概要设计(总体设计);简略设计(模块设计);系统实现(编程);系统调试与试运行(测试);系统运行、评价与维护(运行)。系统调查和可行性分析阶段的任务是初步了解信息系统用户的组织机构、业务范畴以及新系统的目标,并且做出可行性分析,包括经济可行性、技术可行性和使用可行性。需求分析阶段的主要任务是了解用户的需求,基本目标是:对现实世界要处理的对象进行简略调查,在了解原系统(手工系统或以前开发的计算机系统)的情况、确定新系统功能的过程中,确定新系统的目标,收集支持新系统目标的数据需求和处理需求。总体设计阶段的主要任务是把用户的信息要求统一到一个整体的规律结构或概念模式中,此结构能表达用户的要求,并且独立于任何硬件和数据库管理系统。这一步,从应用程序的角度来讲,要完成子系统的划分和功能模块的划分;从数据库的角度来讲要完成概念模型的设计。简略设计阶段同样是包括数据库设计和应用程序设计两大部分。对数据库设计要依据简略的数据库管理系统设计数据库、设计关系、考虑数据的完整性、考虑数据的平安和备份策略等.对应用程序设计要给出功能模块说明,考虑实施方法,设计存储过程等。编程阶段则依据上一步的设计结果进行简略实施,建立数据库并装入原始数据,建立存储过程,编写和调试应用程序代码等。调试与试运行阶段对各个子系统、各个模块要进行联合调试和测试,并试运行.在试运行阶段要广泛听取用户的意见,并依据运行效果进行评估,修改系统的错误、改进系统的性能.最后一步是将系统交给用户使用,在使用的过程中可能还会消灭新的问题,甚至提出新的需求,所以还要不断对系统进行评价和维护。试述快速原型方法的基本思想,并说明该方法的步骤及其工作内容。快速原型法(RapidPrototyping)的基本思想是依据原型进行快

温馨提示

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

最新文档

评论

0/150

提交评论