世界着名cognos培训资料-impromptu管理_第1页
世界着名cognos培训资料-impromptu管理_第2页
世界着名cognos培训资料-impromptu管理_第3页
世界着名cognos培训资料-impromptu管理_第4页
世界着名cognos培训资料-impromptu管理_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

1、1一. 概览二二. 数据库和信息目录数据库和信息目录三三. 建立和修改表连接建立和修改表连接(Join)四四. 文件夹结构调整文件夹结构调整五五. 用户特征定义用户特征定义(User Profile)六. 性能七. 移交与维护2概 览第一章3本章目标w 1.回顾什么是Impromptu,它给管理员和用户带来的好处w 2.了解Impromptu的不同版本w 3.了解Impromptu在Cognos业务智能套件的地位w 4.描述作为Impromptu管理员的角色w 5.描述规划过程 4理解 Impromptuw对最终用户:Impromptu是强有力的查询和报表工具,它通过易学的交互界面,使最终用户

2、从数据库中检索出数据并产生自己的复杂报表,而不必了解数据库结构和程序设计语言的复杂知识。w对管理员:Impromptu实现了保护数据库的方法,使数据库不会受到最终用户的意外修改。而信息系统工作人员也不必自己去处理和传递报表。此外,管理员利用Impromptu可具有对数据库访问、安全、网络包、数据、报表发布的完全控制。5Impromptu 软件wImpromptu User这是最终用户要安装的基本产品。包括Impromptu 和 Scheduler。用户可以建立报表或调度(Schedule)报表。但用户不能建立或修改信息目录, 权限可能受到限制。支持的环境是Windows 98 和 Window

3、s NT。wImpromptu Administrator这是Impromptu的管理员版本。可用它建立和修改数据库定义, 建立和修改信息目录和文件夹, 建立和管理用户类和用户权限。这个版本完全包含了Impromptu User的功能, 可以建立标准报表和模板, 并把它们分配给用户。6Impromptu in the Cognos BI SuiteCorporate Data Multidimensional AnalysisDrill through to details Data MiningData preparationReportsReport Focused ReportingPo

4、rtfolio7Impromptu管理员的角色(Role)w任务: Impromptu管理员任务是为企业的业务用户建立和管理有效的Impromptu查询和报表应用。w目标: 开发一个易于使用的Impromptu应用,简化报表任务的复杂性,使用户避开数据库结构和程序设计语言复杂性的困扰。w你可能是:DBA,对数据库知识有精深的了解。这种情况下你要密切关注企业的业务分析,了解用户会如何使用数据。业务分析员或业务分析员或Impromptu的强用户的强用户,能准确了解用户群需要什么样的数据。这种情况下要与DBA配合,他会帮助你识别数据库中的表与列并决定取舍。w管理员要充当了解数据结构的人与了解业务的人

5、之间的桥梁桥梁。8规划(Planning)过程w设计、构造和实现一个成功的Impromptu应用的最关键步骤就是规划(Planning)。作为管理员你要从项目规划(Project Plan)开始做起。在项目规划中要搞清数据源、数据需求、用户需要等。w项目生命周期(Project Life Cycle)从“规划”开始: 1.Plan, 2.Implement, 3.Deploy, 4.Maintainw本教程给出的仅仅是对于promptu应用的一般性指导, 而有效的实现方法取决于本业务机构的个别需求和特定情况。PlanImplementDeployMaintain12349一般性指导w关注最终用

6、户w明确需求w做出逻辑设计w遵循项目生命周期w先做一个实验性的预产品w增加系统的灵活适用性w规划总体结构w制定技术支持计划w安排有效的培训计划10Impromptu项目生命周期(Step 1-7)1.认准支持人员, 这些支持人员具有数据库的知识和业务的知识。2.向支持人员进行Impromptu适当级别的培训。3.搞清自己的用户以及他们的数据需求。4.了解数据源, 如何连接到数据库, 建立数据库定义(第二章)。5.识别数据库表和列, 搞清是否需要数据库中并不存在的派生信息, 即, 是否需要在信息目录中建立计算和条件。6.对所有的表(包括任何别名)制定一个连接(Join)方案(第三章), 这些表包

7、括了信息目录定义所需的全部数据项。7.确定文件夹结构(第四章), 以反映数据的用户观点。决定给信息目录中的每一个数据项赋予什么名字。在文件夹结构中决定文件夹和数据项需移动到那儿, 加到哪儿, 从哪儿删去.11Impromptu项目生命周期(Step 8-14) 8.建立信息目录, 建立连接(Join)(第二、三章)。 9.修改文件夹结构,建立计算和条件(第四章)。10.定义用户特征定义和用户类, 包括表和文件夹访问权限(第五章)。11.建立、分布标准报表和模板 (见Report Building with Impromptu课程)。12.改进Impromptu 应用的性能, 例如 Client

8、/Server 的负载均衡(第六章)。13.向最终用户提供Impromptu适当级别的培训和支持。14.移交维护Impromptu应用, 包括评价它的效率, 做必要的调整, 处理对数据库和信息目录的修改等(第七章)。12小结w 1.回顾Impromptu是什么,它给管理员和用户带来的好处w 2.了解Impromptu的不同版本w 3.了解Impromptu在Cognos业务智能套件的地位w 4.描述作为Impromptu管理员的角色w 5.描述规划过程 13数据库和信息目录第二章14本章目标w1.描述信息目录和数据库之间的关系描述信息目录和数据库之间的关系w2.说明信息目录的好处说明信息目录的

9、好处w3.定义逻辑数据库定义逻辑数据库w4.建立一个信息目录建立一个信息目录w5.建立建立“内容摘要报告内容摘要报告” (Content Overview)15信息目录 ( Catalog ) w管理员的中心任务是组织数据使它们能有效地使用。组织数据的主要工具就是信息目录(catalog)。信息目录是把数据库中的信息目录是把数据库中的数据按照用户的业务观点来组织。数据按照用户的业务观点来组织。w把用户所需的数据组织在多个信息目录或一个信息目录的多个文件夹中,对用户既有意义又便于访问。然后可以把数据传送给对应某个业务范围的数据组。w用户使用信息目录去查询数据, 他们不会直接接触数据库, 所以不会

10、破坏数据库中的数据。w可以把用户设定成使用特定信息目录或文件夹的特定组。“用户特征定义”和“用户类”决定了如何访问数据库, 谁能够访问, 以及每个用户能被允许看到什么。这些在第五章介绍。w一个信息目录是一个扩展名为.CAT的文件, 它含有用户从数据库检索所需数据的全部信息。信息目录本身并不含数据, 而只是告诉Impromptu如何得到数据。16信息目录的好处w对用户的好处对用户的好处w把用户和数据库隔离开来, 用户不必去理会复杂的无关的专业化的数据库信息。w提供了数据的业务观点。以易于理解的文件夹格式给出信息。w因而减少了对用户的数据库培训。w对管理员的好处对管理员的好处w可以服务于多种不同的

11、用户群而不必修改数据库。w能够帮助描述什么数据对用户是有用的, 这些数据如何访问。w它可能是维护整个Impromptu环境的要害点。17Folders信息目录(catalog)中含ColumnsCalculations+ -/*ConditionsPrompts18信息目录(catalog)中含w文件夹Folders、列Columns、计算Calculations、条件Conditions 提示Promptsw文件夹文件夹是有意义的信息组集, 类似数据库中的表。如果需要, 文件夹中可以再含子文件夹。文件夹中可含有来自一个表或多个表的列, 也可以含有计算和条件。w在每一个文件夹内, 信息的个别项

12、表现为“列列”, 例如产品编号、产品类型等。类似数据库中的字段。相同的信息可以在多个文件夹中作为列。w预定义的派生计算计算 (例如利润)可以包含在文件夹中。这些信息可能在数据库中并不存在, 但是却可以在基础数据检索进信息目录后把它们计算出来, 这种情况下“计算”就特别有用。w“条件条件”是预定义的过滤器, 可通过它限制检索的范围。w“提示提示”用来随机给定过滤条件。当打开一个报表时,先弹出一个或几个提示对话框,在这里临时指定本次数据检索的范围。19信息目录 ( Catalog ) w管理员能够把数据按用户的业务观点组管理员能够把数据按用户的业务观点组织到信息目录的文件夹中。织到信息目录的文件夹

13、中。把数据源中把数据源中的数据以另一种形式展现在用户面前。的数据以另一种形式展现在用户面前。InventoryQualityAccounts Receivable20PRODUCTPROD_NOPROD_TYPEPROD_LINEPRODUCTPROD_COSTPROD_PRICESTATUSPICTURESALES_92SALES_93SALES_94SALES_95COMMENTS数据库和信息目录的对应与区别w信息目录结构为用户提供了一个业务视图, 它以对用户更有意义的方式组织, 而不是按数据库结构来组织。具有用户可以理解的名字。数据库数据库表和字段表和字段信息目录信息目录文件夹和列文件夹

14、和列w名称w层次w 21建立一个信息目录建立一个信息目录的主要步骤建立一个信息目录的主要步骤:w1. 定义逻辑数据库定义逻辑数据库w2. 定义信息目录定义信息目录w3. 在在数据库中数据库中挑选出挑选出所需的表与列所需的表与列w4. 为选中的表制定一个连接为选中的表制定一个连接(join)方案方案w5. 改造改造文件夹结构文件夹结构w6. 设定用户权限设定用户权限22连接(Connect)到数据库w“数据库定义”决定了Impromptu如何与数据库相连。Databaselogical name?database type?security?location?23建立一个“数据库定义”w“数据库

15、定义”决定了Impromptu如何与数据库相连。w建立信息目录从定义“数据库定义”开始。 从 Catalog 菜单中选 Databases 命令, 可以定义若干个“逻辑数据库”。w确定了数据源, 就必须建立一个“数据库定义”以使得信息目录能连接到数据库上。“数据库定义数据库定义”是关于每个“逻辑数据库”要连接到哪个物理数据库、它在哪里、如何连接的说明。它要指明它要指明:(1)(1)数据库的逻辑名数据库的逻辑名 (在Impromptu中使用); ;(2)(2)数据库类型数据库类型 (如dBASE,Sybase,Oracle,DB2); ;(3)(3)数据库在什么地方数据库在什么地方 (本机目录或

16、网络地址); ;w除了这些基本信息外, 视不同的数据库类型, 可能还要指定一些本类型特殊要求的附加信息(后面以dBASE和Sybase为例说明)。24数据库定义管理 先按数据库类数据库类型型分类, 在每类的里面再给出定义好的逻辑数据逻辑数据库库名字。 选中一个逻辑数据库后, 按 Edit按钮可进入编辑。 或按 “New Database”按钮定义新的逻辑数据库 。25dBASE 数据库定义对话框Impromptu中定义的逻辑数据库名测试在指定路径下是否存在.dbf文件.dbf文件所在的路径26建立一个关于Sybase的“数据库定义”w视数据库的类型, 可能还要指定一些附加信息。w比如, 对于

17、Sybase 数据库: “SQL Server Name”: Sybase的客户端OpenClient做DSEDIT连接配置设定时给定的“连接逻辑名”,决定了本客户机要连接到哪一台服务器上,其中定义了服务器的网络地址和端口号。 Logical Database Name:这是在Impromptu中使用的数据库名字。 Database Name:这是在服务器端Sybase数据库系统中的一个具体的数据库名。27Sybase 数据库定义对话框Impromptu逻辑数据库名字 Sybase连接逻辑名。 其中定义了 SQL Server 所在服务器 的网络地址 和端口号Sybase系统中一个具体的用户数

18、据库的名字测试是否能连通28配置Sybase的客户端wDSEDIT是是Sybase客户客户端的一个模块,用来配置客户端端的一个模块,用来配置客户端与服务器的连接。与服务器的连接。w左侧左侧Server框中的框中的名字名字就是在就是在Impromptu中看到的中看到的SQL Server Name,一个一个名字名字对应一个对应一个网络地址及端口号网络地址及端口号。 29建立一个关于Informix的“数据库定义”w视数据库的类型, 可能还要指定一些附加信息。w对于 Informix 数据库: Informix客户端产品为客户端产品为 “I connect”,其中有一个其中有一个模块叫模块叫“se

19、tnet”,在这个模块中至少要指定或配在这个模块中至少要指定或配置以下三个参数:置以下三个参数:Host Name; Server Name ; Service Namew在setnet中,这几项的设定要与服务器端的设定相呼应。30Impromptu逻辑数据库名字Informix 数据库定义对话框 Informix系统中一个具体的用户数据库的名字 Informix主机名 Informix Service名Database Server名与setnet中的设定相对应31启动 IBM DB2的客户端32配置 IBM DB2的客户端33DB2 数据库定义对话框34ODBC 数据源35ODBC 数据源

20、36调用存储过程wImpromptu 6.0 增加增加了调用存储过程的了调用存储过程的接口。接口。w New wStored Procedure37信息目录的类型w信息目录有四种类型: w Personalw Distributedw Securedw Sharedw创建信息目录时, 管理员或用户可以选定信息目录的类型, 默认的类型是Personal。这是最基本的一种类型。w信息目录的类型在第五章详细讨论。38建立一个新的信息目录Database建立一个新信息目录需指定:建立一个新信息目录需指定:w信息目录名字信息目录名字w信息目录描述信息目录描述(可选可选)w信息目录类型信息目录类型w数据库

21、定义数据库定义w所要的表所要的表从从Catalog菜单选菜单选New39 挑表挑挑表挑列的过程在列的过程在Tables对话对话框中进行。框中进行。 左边是左边是数据库的表,数据库的表,被挑中加到被挑中加到右边的就成右边的就成了信息目录了信息目录的表。的表。在Tables对话框中挑表挑列40限定被检索的表w可以对被检索的表加以限定w可以定制一个含有特定信息的搜索条件w从Tools菜单选Options, 选中General标签页.w清掉Retrieve Database Tables When Editing Catalog Tables 项.w从Catalog菜单选Tables, 选中Edit标

22、签页.w按Retrieve Tables按钮.41默认文件夹Database Tables(Contain Data)Catalog Tables(MetaData and Joins)Catalog Folders(Users Business View)OrderOrderOrderOrder_NoOrder_DtCust_NoOrder_NoOrder_DtCust_NoOrder_NoOrder_DtCust_No名字必须匹配可以按业务观点改名Impromptu自动地为信息目录中的每一个表建立一个文件夹。自动地为信息目录中的每一个表建立一个文件夹。42内容摘要报告(Content Ov

23、erview)可以生成一个有关当前信息目录内容的报告,称为“内容摘要报告”。它是ASCII文本文件,可以用记事本或其他文字编辑器查看。它记载了:w信息目录信息,如信息目录的名字和位置w数据库信息,如数据库的逻辑名、物理名和类型w数据库表和列w信息目录中的文件夹和每一个文件夹中的项w连接(Join)w用户类的信息,如用户类的名字和访问权限从Catalog菜单选”Content Overview”,再指定存放该报告的路径。43Impromptu Version 6.0.510.0Catalog Content ReportCatalog InformationCatalog Name: C:Pro

24、gram FilesCognoscer1samplesImpromptuReportsGreat Outdoors Sales Data.CATDescription: Sales data for The Great Outdoors Co.Creation Date: 1995 二月 08, 星期三Database InformationLogical Name: OUTDOORSPhysical Name:C:Program FilesCognoscer1samplesImpromptuDatabaseOEMType:DBDatabase StructureTable : BRANCHC

25、olumn : BRANCH_CDColumn : BRANCHTable : CUSTOMERColumn : CUST_NOColumn : CUSTOMERColumn : STATUSColumn : TYPEColumn : COMMENTSTable : CUSTSITEColumn : CUST_NOColumn : SITE_NOColumn : COUNTRY_CDColumn : BRANCH_CDColumn : ADDRESS1Content Overview报告44小结w1.描述信息目录和数据库之间的关系描述信息目录和数据库之间的关系w2.说明信息目录的好处说明信息目

26、录的好处w3.定义逻辑数据库定义逻辑数据库w4.建立一个信息目录建立一个信息目录w5.建立建立“内容摘要报告内容摘要报告” (Content Overview)45表连接(Join)第三章46本章目标w 1.建立连接w 2.解释连接类型w 3.测试连接w 4.分析连接w 5.解决连接中的问题47w连接是在两个表的连接是在两个表的对应列之间定义的一种联系对应列之间定义的一种联系。能够使。能够使报表从多个表中取出数据并按照这种联系把它们结合起报表从多个表中取出数据并按照这种联系把它们结合起来。当不同的表的两个对应列之间定义的联系来。当不同的表的两个对应列之间定义的联系成立成立时,时,就把满足这种联

27、系条件的行组合起来。有时连接也在同就把满足这种联系条件的行组合起来。有时连接也在同一个表自身中进行。一个表自身中进行。w如果两个表之间没有定义连接条件,就会产生所谓如果两个表之间没有定义连接条件,就会产生所谓“笛笛卡尔积卡尔积”式的连接结果。它既无意义,又消耗资源。式的连接结果。它既无意义,又消耗资源。Rep NoRep NameQuota 96Sales 96Order NoRep NoSite NoCust NoOrder DtJoinOrder TableRep Table什么是连接(Join) 48在Impromptu中建立连接(Join) w建立信息目录时,若有多于一个表被加进来,I

28、mpromptu就会提示建立连接。w有两种建连接的方法:(1)手工手工; (2)自动自动wImpromptu默认的是手工连接方案在New Catalog对话框中选择表, 在Joins对话框中定义连接。w连接的目的是在查询中生成WHERE子句, 并不要求用户知道如何去访问一个表。49连接(Join)方案-手工与自动w自动连接仅适合于那些小的或结构简单规范的数据库。建议最好使用手工手工连接。在应用设计中, 连接方案是至关重要的。一个一个差的连接设计会造成查询差的连接设计会造成查询的低效。甚至产生无效的的低效。甚至产生无效的和不正确的结果。和不正确的结果。w自动连接有两种选择:1.仅使用键。2.使用

29、键或第一匹配列。Great Outdoors ExampleImpromptu will create a compound inner join based on Site_No and Cust_No as primary keys in CustSite and foreign keys in Order.CustSiteCust_NoSite_NoBranch_CdAddress 1Address 2CityOrderOrder_NoRep_NoSite_NoCust_NoOrder_DtClosed_DtwImpromptu建议采用手工连接。50键(Keys)w“键”本来是关系型数据

30、库中的一个概念,一般用于表连接(Join)。wImpromptu 的键不一定与数据库的键相对应。w为信息目录选定了表和列之后,就可以为每一个表定义一个或多个键。键可以定义、修改、删除。w在Impromptu中定义了键,可以在建立信息目录的同时或建立信息目录之后自动建立连接(Join)。CustSiteCust_NoSite_NoBranch_CdAddress 1Address 2CityOrderOrder_NoRep_NoSite_NoCust_NoOrder_DtClosed_Dt51EmpenoenamesexdnoDeptdnodnamed_date雇员表雇员表部门表部门表外键主键参

31、照表被参照表主键主键与外键DeptEmpw主键主键 (Primary Key) 是是唯一唯一标识一个表中每一行的列或列组。标识一个表中每一行的列或列组。w外键外键 (Foreign Key) 是其值是其值参照参照另一个表的主键值的列或列组。另一个表的主键值的列或列组。52Dno Dname Eno Ename Sex Dno 21 经济系经济系 45 李京生李京生 M 21230 化学系化学系 102 鄂大地鄂大地 M 230303 计算机系计算机系 137 江万里江万里 M 230507 心理学系心理学系 143 杜宗汉杜宗汉 M 303508 研究所研究所 156 刘明君刘明君 F 303

32、747 文学系文学系 371 郭竞宇郭竞宇 F 507 399 齐哈地齐哈地 M 507DeptEmp例:参与连接的两个表连接条件:连接条件: Where dept.dno = emp.dno53Dno DnameEno Ename Sex 21 经济系经济系 45 李京生李京生 M230 化学系化学系102 鄂大地鄂大地 M230 化学系化学系137 江万里江万里 M303 计算机系计算机系143 杜宗汉杜宗汉 M303 计算机系计算机系156 刘明君刘明君 F507 心理学系心理学系371 郭竞宇郭竞宇 F507 心理学系心理学系399 齐哈地齐哈地 M内连接结果:内连接结果:内连接54D

33、no DnameEno Ename Sex 21 经济系经济系 45 李京生李京生 M230 化学系化学系102 鄂大地鄂大地 M230 化学系化学系137 江万里江万里 M303 计算机系计算机系143 杜宗汉杜宗汉 M303 计算机系计算机系156 刘明君刘明君 F507 心理学系心理学系371 郭竞宇郭竞宇 F507 心理学系心理学系399 齐哈地齐哈地 M508 研究所研究所747 文学系文学系外连接结果:外连接结果:外连接 (设外连接一侧的全部记录至少出现一次)55学校例子中的表连接关系enoenamesexdnobirthsalarydnodnamesnosnameenocnocn

34、ameenocnosnoscoreDeptEmpCourseStuStudy老师(雇员)课程学生学生选课1:N系(部门)56BranchCountryOrderProductCustomerRepCountry_CdBranch_CdCountry_CdBranch_CdCust_NoSite_NoOrder_NoSite_NoCust_NoRep_NoProd_NoRep_No Order_NoProd_NoCustsiteOrdrdetlCust_No1:NOutdoors 例子中的表连接关系57wequi-joins (等值连接等值连接)wnon-equi-joins (非等值连接)wo

35、uter joins (外外连接连接)wself-joins (自身连接)wcompound joins (组合连接)wcomplex joins (复杂连接)连接(Join)类型JOINS58组合连接 (Compound Joins)w组合连接用组合连接用多于一个列多于一个列去和另一个表中的列相匹配。去和另一个表中的列相匹配。w例如:用第一个表中的例如:用第一个表中的 Order_Prefix + Order_Suffix (两个列拼接两个列拼接)去和第二个表中的去和第二个表中的 Order_No相匹配。相匹配。Order_Prefix Order_Suffix . Order_ No.CA

36、123456CA123456.59复杂连接 (Complex Joins)w复杂连接可以用一个复杂连接可以用一个 表达式表达式 去连接表。去连接表。.w例如例如: 使用两个列的前两个字符是否相同作条件来使用两个列的前两个字符是否相同作条件来连接两个表。其连接两个表。其表达式表达式可能是这个样子可能是这个样子:Warehouse . Location.TX7902TX3.substring (Warehouse, 1,2) = substring (Location, 1,2)60别名表(Alias table)w别名表别名表解决解决的是同一个表的两个副本之间的连接的是同一个表的两个副本之间的连

37、接。它通常用来解决循环连接结构,有时用来解决单一表自身连接的问题。w别名表实际上是一个从已存在的源数据库表建立的文件夹。w从Tables对话框的 Edit标签页按 Alias按钮,再次把一个数据库表选为信息目录的表,但给它另取一个名字,这就是别名表。Catalog tablesBRANCH BRANCH 2COUNTRYPRODUCT REPDatabase tablesBRANCHCOUNTRYPRODUCT REPAlias table61分析和测试连接结构w连接结构建立之后,可用Joins对话框的Analyze标签页去发现和解决可能导致异常的连接结构。w如果连接结构中有问题,在Analy

38、ze标签页就会有一条描述它的信息。w连接结构中可能存在的问题:1.表没有全部连通。表没有全部连通。NO SPANNING TREE2.存在未参加连接的孤立表。存在未参加连接的孤立表。ISOLATED TABLE3.寻找连接结构中的循环关系。寻找连接结构中的循环关系。LOOP62分析和测试连接结构w如果它发现了问题,就会针对左上方“异常区”当前页指出的表在“异常区”下方显示一条信息,如:NO SPANNING TREE, ISOLATED TABLE, LOOP。w可按Next按钮向下翻页,或按Restart按钮重新从第一页显示。当一个问题解决之后,会自动跳到下一页。所有问题都解决之后,“异常区

39、”中显示: No exceptions were found。w解决的办法:1.建立别名表2.修改连接3.删去某个连接63异常信息 (1) NO SPANNING TREE 表连接在一起成一个组,如果出现No Spanning Tree异常信息,说明有两个或多个互相不连通的组。即:不是所有的表都连到一起。Great Outdoors Data ExampleThe two groups of tables are not joined. This is a No Spanning Tree exception.BranchCountryCust_SiteCustomerOrder_DetlPr

40、oductRepOrder64解决办法解决办法 (No Spanning Tree)w按照原始数据间的固有关系按照原始数据间的固有关系(主键与外键的对应主键与外键的对应)在两个分在两个分属于不同部分的表之间增加属于不同部分的表之间增加一个连接。一个连接。w如果在分属于不同部分的任如果在分属于不同部分的任意两个表之间再也找不到这意两个表之间再也找不到这样的固有关系,也不能为了样的固有关系,也不能为了连通而生硬地加入一个连接连通而生硬地加入一个连接关系。这时最好把两个部分关系。这时最好把两个部分分开放到两个不同的信息目分开放到两个不同的信息目录中。录中。BranchCountryCust_Site

41、CustomerOrder_DetlProductRepOrderAdd this join65异常信息 (2)ISOLATED TABLE 如果出现Isolated Table异常信息,说明至少有一个表是孤立的, 它不与其他任何表相连接。即没有通向它的任何路径。Great Outdoors Data ExampleThe table Branch is not joined to the other tables. Branch is therefore an isolated table.BranchCountryCust_SiteCustomerOrder_DetlProductRepO

42、rder66解决办法解决办法 (Isolated Table)BranchCountryCust_SiteCustomerOrder_DetlProductRepOrderw按照原始数据间的固有关系按照原始数据间的固有关系(主键与外键的对应主键与外键的对应)在孤立在孤立表和其他表之间增加一个连表和其他表之间增加一个连接。接。w也不能为了连通而生硬地加也不能为了连通而生硬地加入一个连接关系。入一个连接关系。67异常信息 (3)LOOPGreat Outdoors ExampleAn automatic join strategy based on Key Only sets up this lo

43、op join. In other words, there is more than one way to go from one table to another.CustomerOrderCustSite 如果出现“Loop”异常信息,说明在连接结构中存在循环循环关系, 即某两个表之间存在多于一条的路径。循环循环连接可能产生两个后连接可能产生两个后果果, 一是降低性能一是降低性能, 二二是可能产生不正确的是可能产生不正确的结果。结果。68解决连接中的 Loop 问题 要解决循环连接的问题,可采用下列办法之一:w建立建立别名表别名表,让每个别名表有各自的独立连接,让每个别名表有各自的独立连

44、接w保持原样w从信息目录中从信息目录中删掉删掉一个连接一个连接w修改连接CustomerOrderCustSiteOrder 2 要给建要给建别名表别名表的的两个副本明确地两个副本明确地命名,以区别它命名,以区别它们不同的用途。们不同的用途。69解决连接中的问题w1.如果想如果想删除表连接删除表连接, 在在“Joins”对话框的对话框的“Analyze”标签页按标签页按“Remove Join”按钮。或在按钮。或在“Edit”标签页按标签页按“Remove”按钮。按钮。w2.如果想对要求的连接如果想对要求的连接设别名设别名, 在在“Joins”对话框对话框的的“Analyze”标签页按标签页按

45、“Create Alias”按钮。或按钮。或在在“Tables”对话框的对话框的 “Edit”标签页按标签页按“Alias”按钮。按钮。w3.如果想如果想编辑表连接编辑表连接, 在在Joins对话框的对话框的Analyze标签页按标签页按Edit Join按钮。切换到按钮。切换到Joins对话框中的对话框中的Edit标签页修改连接。标签页修改连接。70测试连接w在在Joins对话框的对话框的Test标签页可以测试连接。标签页可以测试连接。先确定一个测试的范围,系统可以先确定一个测试的范围,系统可以Diagram和和Definition两种形式勾画出连接的结构。两种形式勾画出连接的结构。Cust

46、SiteCust_NoSite_NoBranch_CdAddress 1Address 2CityOrder1Order_NoRep_NoSite_NoCust_NoOrder_DtClosed_DtProductProd_NoProd_TypeProd_LineProductProd_CostProd_Price(CUSTSITE.CUST_NO= ORDER1.CUST_NO” andCUSTSITE.SITE_NO= ORDER1.SITE_NO) AND (ORDER1.ORDERNUM= ORDRDETL.ORDER_NO) AND (ORDRDETL.PROD_NO= PRODUC

47、T.PROD_NOTESTCUSTSITE - ORDER1ORDER1- ORDRDETLORDRDETL - PRODUCT71小结w 1.建立连接w 2.解释连接类型w 3.建立别名表w 4.测试、分析连接w 5.解决连接中的问题72文件夹结构调整第四章73本章目标w 1.修改信息目录的文件夹结构修改信息目录的文件夹结构w 2.在信息目录中建立一个在信息目录中建立一个“计算计算”w 3.在信息目录中建立一个在信息目录中建立一个“条件条件”w 4.在信息目录中建立一个在信息目录中建立一个“提示提示”74默认的文件夹结构w包括信息目录建立时选定的全部表。包括信息目录建立时选定的全部表。w为每

48、一个表设立一个文件夹,每个文件夹含有表中全为每一个表设立一个文件夹,每个文件夹含有表中全部列。部列。w文件夹的名字和列的名字与数据库中表和列的名字相文件夹的名字和列的名字与数据库中表和列的名字相同。同。- CustomerCust NoCustomerStatusTypeCommentsProductProd NoProd TypeProd LineProductProd CostProduct Price OrderOrder NoRep NoSite NoCust No75在文件夹上操作w修改修改文件夹和列的文件夹和列的名字名字,使它们对用户更有意,使它们对用户更有意义。义。w移动移动文件

49、夹或列,使文件夹的层次结构更符合文件夹或列,使文件夹的层次结构更符合业务逻辑。业务逻辑。w可以可以增加增加新的文件夹,让它含有表的部分列,新的文件夹,让它含有表的部分列,或者从多个表中取列。或者从多个表中取列。w可以可以删除删除某些文件夹和列。某些文件夹和列。w在不同的文件夹中建立表和列的在不同的文件夹中建立表和列的副本副本。w在信息目录中增加预定义的在信息目录中增加预定义的“计算计算”、“条件条件” 和和 “提示提示”。76设计文件夹结构- CustomerCust NoCustomerStatusTypeComments- CustomersCustomer NumberCustomer

50、NameRenameMove Customer Status StatusRemove-w在文件夹中哪些数据项对业务来说是相关的在文件夹中哪些数据项对业务来说是相关的, 需要放需要放到一起到一起, 并不要考虑它们在数据库中的物理位置。并不要考虑它们在数据库中的物理位置。w决定文件夹和数据项的结构和命名。结构应当反映决定文件夹和数据项的结构和命名。结构应当反映用户对业务的理解,名字要使用业务术语。用户对业务的理解,名字要使用业务术语。77文件夹设计注意事项w利用字典或从用户那里得到的业务术语小册子。利用字典或从用户那里得到的业务术语小册子。w参考现有的报表,看哪些数据项经常在一起使用。参考现有的报表,

温馨提示

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

评论

0/150

提交评论