1Chapter6事实发现2Chapter6–目标在数据库系统开发生命周期中何时要用到事实发现技术在整个数据库系统生命周期中收集的事实类型在整个数据库系统生命周期中所产生的文档类型最泛化的事实发现技术如何使用各种事实发现技术及其优点和缺点StayHome录像出租公司案例研究怎样把事实发现技术运用在数据库系统开发周期的早期阶段3事实发现(Fact-Finding)运用面谈和提问等技术来收集有关系统、需求和用户喜好的形式化处理过程。事实发现技术在整个数据库系统开发生命周期的早期,包括数据库规划、系统定义、需求收集和分析阶段,都是非常关键的。4收集哪些事实开发阶段捕获的数据示例产生的文档示例数据库规划数据库工程的目标和目的任务描述和数据库系统的目的系统定义主要用户视图描述(包括工作角色/业务应用领域)数据库系统的边界和范围定义,所支持的用户视图需求收集和分析用户视图的要求,系统说明,包括性能和安全要求用户和系统的需求说明书数据库设计用户检查逻辑数据库设计后以及目标DBMS提供的功能反馈逻辑数据库设计(包括ER模型、数据字典、表),物理数据库设计5收集哪些事实(续)开发阶段捕获的数据示例产生的文档示例应用程序设计用户对界面设计的反馈应用程序设计(包括对程序和界面的描述)DBMS选择目标DBMS提供的功能DBMS评估和推荐构建原型用户对原型的反映修改了的用户需求和系统说明书实现目标DBMS提供的功能数据转换和加载当前数据的格式,目标DBMS的数据导入能力测试测试结果所使用的测试方法、测试结果分析操作维护性能测试结果,新的或变更用户和系统需求用户手册,性能结果分析,修改的用户需求与系统说明书6事实发现技术数据库开发人员在一个数据库工程中通常使用五种事实发现技术:检查文档(Examiningdocumentation)面谈(Interviewing)观察业务的运转(Observingthebusinessinoperation)研究(Research)问卷调查(Questionnaires)7检查文档文档的用途有用资源示例描述数据库的问题和需求内部备忘录、电子邮件、会议备忘录、员工客户意见、问题描述文档、效率回顾/报告描述受问题影响的业务(或部分业务)组织图表、任务陈述、事务战略计划、业务目标、任务/工作描述、手工表格和报告的例子、计算表格和报告举例、完成的表格/报表描述当前业务不同类型的数据流图和图表、数据字典、数据库应用程序设计、程序文档、用户培训手册检查与目前系统相关的文档、表格、报告和文件是一种非常好的快速理解系统的方法。8面谈面谈是最常用的,通常也是最有用的事实发现技术。需要良好的交流能力,能够有效地和不同价值观、不同喜好、观点、动机和个性的人打交道。目的:找出事实、确认事实、澄清事实了解所有最终用户的需求情况集中意见和观点9面谈有两种类型的面谈:有组织的和没有组织的没有组织的面谈通常仅由一个通用目标指导,并且有非常少的特定的问题。不能抓住问题的焦点,不利于数据库分析和设计。有组织的谈话中,谈话人有特定的问题要问谈话对象。10面谈有两种问题模式:开放的,限制的开放式问题能够让谈话对象用一种看起来适合的方式回答。“为什么你对会员注册表不满意?”限制式问题的答案要么是特定选择,要么是短的直接的回答。“会员注册表的信息是否精确?”为了保证谈话成功,必须选择合适的谈话人选,准备的问题涉及面要广,要引导谈话有效地进行。11观察业务的运转最有效的事实发现技术之一。使用这项技术可以观察业务的运转模式,了解业务高峰期的运转状态。12研究有用的事实发现技术是研究应用和问题。计算机行业的杂志、参考书和因特网是非常好的信息来源。可以提供有关其他人如何解决该问题的信息,也可以告诉你要解决此问题的软件包是否存在。13问卷调查问卷是一种有着特定目的的小册子,这样可以在控制答案的同时,集中一大群人的意见。问卷有两种格式:自由形式和固定形式。自由形式问卷上,答卷人提供的答案有更大的自由。“你当前收到的是什么报表,它们有什么用?”固定格式问卷包含的问题答案是特定的。“现在的录像出租报告的形式非常理想,不必改动。”是否14StayHome案例研究这个案例研究描述了一个叫StayHome的公司,该公司出租录像带给其会员。StayHome的首家分公司成立于1982年,地点是西雅图。但该公司日益壮大,有许多连锁店遍布全美。100个部门,2000名员工。15StayHome员工注册表16员工列表每个分公司有一名经理和数名主管,经理负责日常事务,而主管则监督旗下员工。17可出租的录像清单每个分公司都有库存的录像以备出租,每盘录像用分类编号(CatalogNumber)唯一标识,同一盘录像有多份拷贝,因此每份拷贝用录像编号(VideoNumber)来区分。18StayHome会员注册表顾客在租录像之前,必须先成为公司的一名会员。一个顾客可以在不同分公司分别注册,每次注册都要填写一张注册表格。19会员清单列表20StayHome录像租借表会员注册后,可以自由租借录像,一次最多借10盘录像。21建立StayHome数据库应用系统的必要性随着公司的壮大,公司使用和产生的数据量日益增大,管理变得非常困难。为确保公司继续发展,建议建立数据库应用程序以帮助解决日益庞大的数据管理问题。22StayHome案例研究–数据库规划创建数据库系统的任务陈述创建数据库系统的任务目标任务陈述可以帮助澄清数据库工程的目标,为开发出一个简洁高效的数据库应用程序提供更清楚的途径。每个任务目标应该标识一个数据库支持的特定任务。额外信息:要完成的工作、完成工作所要使用的资源以及费用预算等。23面谈:准备任务陈述素材开发人员:公司的目标是什么?总经理:通过遍布全国的分公司,提供多种录像,出租给已注册的会员。开发人员:你为什么需要数据库?总经理:分公司数量不断增加,录像选择范围很广,注册会员越来越多。数据管理困难,服务水平下降。分公司间的合作和信息共享的程度低。开发人员:你怎么知道使用数据库可以解决你们的问题?总经理:堆积如山的文书,希望自动处理日常事务,这些事情每天都在做。希望分公司可以同时开始工作。24StayHome公司的数据库应用的任务陈述StayHome的数据库系统的目的是收集、存储和控制公司产生的数据,支持面向会员的录像出租业务,方便分公司之间的合作和信息共享。25面谈:准备任务目标素材与总经理(负责各分公司)、经理(负责某分公司)、主管(负责一个小组)、助理(面对会员)、采购员(负责所有分公司的录像采购)谈话的典型问题:•请描述你的工作。•通常在一天里你要做什么工作?•你会和什么数据打交道?•你需要使用哪些类型的报告?•你要明白哪些事情?•公司给你的会员提供哪些服务?26StayHome数据库的任务目标维护(录入、更新和删除)各分公司的数据维护(录入、更新和删除)有关员工的数据维护(录入、更新和删除)录像数据维护(录入、更新和删除)会员数据维护(录入、更新和删除)录像出租业务数据维护(录入、更新和删除)录像供应数据维护(录入、更新和删除)录像的订单数据27StayHome数据库的任务目标实现对分公司的查询实现对录像的查询实现对员工的查询实现对录像租借的查询实现对会员的查询实现对录像供应商的查询实现对录像订单的查询28StayHome数据库的任务目标跟踪录像库存状态信息跟踪录像租借状态信息跟踪录像订单状态信息29StayHome数据库的任务目标报告各分公司情况报告各分公司员工情况报告各分公司录像情况报告各分公司会员情况报告各分公司录像租借情况报告供应商情况报告录像订单情况30StayHome案例研究–系统定义确定数据库应用的范围和边界以及它的主要用户的视图一个用户视图代表数据库应用必须支持的由一个特殊的工作角色(如经理或助理)或者业务范围(如录像出租或库存控制)所定义的需求31StayHome数据库应用的系统边界数据及其之间的相互关系略图:32StayHome数据库应用的主要用户视图用户视图需求总经理(Director)报告所有的分公司情况报告在所有分公司的员工报告在所有分公司的录像报告在所有分公司的会员报告在所有分公司的录像租借情况报告所提供的录像报告录像订单33StayHome数据库应用的主要用户视图用户视图需求经理(Manager)维护(录入、更新和删除)给定分公司的数据维护(录入、更新和删除)给定分公司的员工的数据实现对分公司的检索实现对所有分公司的员工的检索报告给定分公司的员工报告所有分公司的录像报告所有分公司的会员报告所有分公司的录像租借情况34StayHome数据库应用的主要用户视图用户视图需求主管(Supervisor)维护(录入、更新和删除)给定分公司的录像的数据维护(录入、更新和删除)给定分公司的会员的数据维护(录入、更新和删除)给定分公司的录像租借的数据实现对所有分公司的录像的检索实现对给定分公司的录像租借的检索实现给定分公司的会员的检索跟踪给定分公司的库存中的录像的状态跟踪给定分公司的录像租借的状态报告给定分公司的员工35StayHome数据库应用的主要用户视图用户视图需求助理(Assistant)维护(录入、更新和删除)给定分公司的录像租借的数据维护(录入、更新和删除)给定分公司的会员的数据实现对所有分公司的录像的检索实现对给定分公司的录像租借的检索实现给定分公司的会员的检索跟踪给定分公司的库存中的录像的状态跟踪给定分公司的录像租借的状态36StayHome数据库应用的主要用户视图用户视图需求采购员(Buyer)维护(录入、更新和删除)录像数据维护(录入、更新和删除)录像供应商数据维护(录入、更新和删除)录像订单数据实现对公司的检索实现对所有分公司的录像的检索实现对录像供应商的检索实现对录像订单的检索跟踪录像订单的状态报告在所有分公司的录像报告在所有分公司的录像租借情况报告在所有分公司的会员报告录像供应商报告录像订单37StayHome案例研究–需求收集和分析继续收集前面阶段所标识的用户视图的更多细节,产生用户的需求说明,详细描述数据库中应该包含的数据以及数据的使用方式。收集信息的目的是产生系统的需求说明。需求说明描述了在新的数据库应用中所要包含的各种特性,如网络需求、共享访问需求、效率需求以及安全级别需求38StayHome案例研究–需求收集和分析如何处理有多个用户视图的情况有三种方法来处理多用户和视图集中式方法(centralizedapproach)视图集成法(viewintegrationapproach)前面两种方法的综合39StayHome用户视图和数据总经理和采购员视图对供应商和录像订单的数据与其它视图不同。40StayHome用户视图和数据业务视图(BusinessView)采用集中式方法将总经理和采购员的视图合并为一个视图,命名为业务视图。形成局部逻辑数据模型。分公司视图(BranchView)采用集中式方法将经理、主管、助理的视图合并为一个视图,命名为分公司视图。形成局部逻辑数据模型。采用视图集成的方法,合并上述两个数据模型。41StayHome各分公司用户视图的需求定义描述分公司用户视图使用的数据提供分公司用户视图使用的例子(即员工在数据上执行的事务)42StayHome各分公司的数据需求分公司名称分公司地址(街道、城市、州、邮政编码、电话号码)分公司员工(一个经理、一至多名主管、数名员工)员工数据(姓名、职务、薪水、员工号码)分公司录像数据(分类号、录像号、片名、种类、日租费用、购买价格、状态、主要演员名字以及扮演的角色、导演。会员(姓名、地址、注册日期、会员号、负责注册此会员的员工)租借业务数据(租借号、会员姓名、会员号、录像号、片名、每日租金、租出日期、归还日期)43StayHome各分公司的事务需求数据录入新分公司的详细情况新员工的详细情况新发行的录像的详细情况新录像的拷贝的