(计算机软件与理论专业论文)基于关系数据库的报表生成工具.pdf_第1页
(计算机软件与理论专业论文)基于关系数据库的报表生成工具.pdf_第2页
(计算机软件与理论专业论文)基于关系数据库的报表生成工具.pdf_第3页
(计算机软件与理论专业论文)基于关系数据库的报表生成工具.pdf_第4页
(计算机软件与理论专业论文)基于关系数据库的报表生成工具.pdf_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

基于关系数据库的报表生成工具 论文题目: 专业: 硕士生: 指导教师: 基于关系数据库的报表生成工具 计算机软件与理论 陈宏忠 印鉴教授 摘要 本论文是一篇工程性的论文。论文背景为本人在菲奈特一融通软件有限公司 实习期间,为他们做的一个项目。项目名称为“基于关系数据库的报表生成工具”, 是公司为了满足中小型用户的需求面做的。 论文的工作是设计并实现了一个基于r d b m s 的报表生成工具,它能够在不倚 赖于现有的分析服务器的基础上,以o l t p 数据为数据源,创建出有分析功能的 报表。论文开发的软件工具主要分为两个用户模块,一个叫g a d g e t b u i i d e r ,用 于创建g a d g e t - - 一种包含数据库元信息以及数据库表之间各种关系的信息的对 象;另一个叫r e p o r t d e s i g n e r ,用于读取g a d g e t b u i i d e r 创建出来的g a d g e t 里 面的信息,并利用这些信息来连接数据库,获取数据,创建报表。 论文默项目的需求分析,到设计,到实现,完整地执行了这些步骤,并且尽 量把项目开发的过程完整地描述出来。主要工作在于软件设计和技术实现两个方 面。设计方面,包括软件的两个模块g a d g e t b u i l d e r 和r e p o r t d e s i g n e r 的设计。 对于g a d g e t b u i i d e r 模块,主要是g a d g e t 数据结构建模,g a d g e t 存储文件的选 择和文件的内部格式,还有数据库连接的永久保存等。对于r e p o r t d e s i g n e r 模 块,主要是s o l 语句的自动生成,报表的展示等。技术实现方面,从代码的量来 说,本论文总共完成了四千多行代码;从技术难点来说,在编程过程中也碰到了 一些比较棘手的问题,如动态选择数据库连接的实现,数据库元信息的读取等, 但经过查阅资料和不断尝试,也都一一解决。 关键字:r d b m s ,o l t p ,元信息,g a d g e t ,s q l 基于关系数据库的报表生成工具 t i t l e :r d b m s o r i e n t e dr e p o r td e s i g n e r m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y n a m e :c h e nh o n g z h o n g s u p e r v i s o y :p r o f e s s o ry i nj i a n a b s t r a c t 7 r h i st h e s i si so fs o f t w a r ee n g i n e e r i n gp r o p e r t y t h eb a c k g r o u n do f t h i st h e s i si sap r o j e c tt h a tic a r r i e do u td u r i n gm yw o r k i n ga sa ni n t e r n i n f e n e t r o y a l s t o n ei n c ,g u a n g z h o u t h ep r o j e c t s n a m ei s r d b m s o r i e n t e dr e p o r td e s i g n e r ,i ti sap r o j e c td e v e l o p e dt om e e tt h e n e e d so fs o m ei i t t l eo rm e d i u ms i z ee n t e r p r i s e s t h em a i nw o r ko ft h i st h e s i si st h ed e s i g na n dr e a l i z a ti o no fa r d b m s o r i e n t e dr e p o r td e s i g n e r ,w h i c hc a nb eu s e dt oc r e a t er e p o r t sw i t h a n a i y s i s f u n c t i o nf r o mo l t pd a t aw i t h o u tu s i n ga n ya n a l y s i s s e r v e r a v a i l a b l e ,t h i sd e s i g n e ri n c l u d e st w od i f f e r e n tc o m p o n e n t s o n eo ft h e t w oc o m p o n e n t si sg a d g e t b u i i d e r ,w h i c hc a nb eu s e dt oc r e a t eg a d g e t a k i n do f o b j e c t sc o n t a i n i n g t h em e t a d a t ao fc e r t a i nd a t a b a s e 。t h e i n f o r m a tio ao fr e l a t i o n s h i p so fd i f f e r e n td a t at a b l e sa n do t h e ru s e f u l i n f o r m a t i o n t h eo t h e r c o m p o n e n t i sc a l l e d r e p o r t d e s i g n e r r e p o r t d e s i g n e r c a nb eu s e dt or e a do u tt h ei n f o r m a t i o nf r o mag a d g e t c r e a t e db y ( ;a d g e t b u i l d e r ,a n dt h e nu s et h ei n f o r m a t i 0 1 3t oc o n n e c tt ot h e d a t a b a s e ,r e t r i e v ed a t a ,a n dc r e a t er e p o r t s t h es e v e r a ls t e p so fs o f t w a r ed e v e l o p i n g ,f r o ms o f t w a r er e q u i r e m e n t a n a l y s i s t os o f t w a r ed e s i g n ,a n dt h e ns o f t w a r ei m p l e m e n t a t i o n ,w e r e c a r r i e do u tf u l l y :t h e s ea r ea l ld e s c r i b e di nt h et h e s i s w eh a v em e n t i o n e d t h a tt h em a i nw o r ko ft h i s t h e s i si ss o f t w a r ed e s i g na n dt e c h n o l o g y i m p e m e n t a t i o n t h ed e s i g ni n c l u d e st h et w oc o m p o n e n t s - - g a d g e t b u i l d e r a n dr e p o r t d e s i g n e r 。t h ed e s i g no fg a g e t b u i l d e rm a i n l yi n c l u d e s d a t a tt i 基于关系数据库的报表生成工具 s t r u c t a r em o d e l i n go fg a d g e t ,t h es e l e c t i o no ff i l et y p et os t o r eg a d g e t i n f o r m a t i o n ,t h ei n n e rf o r m a to fg a d g e tf i l e ,a n dt h es a v i n go fd a t a b a s e c o n n e c t i o n t h ed e s i g no fr e p o r t d e s i g n e rm a i n l yi n c l u d e st h ea u t o m a t i e g e n e r a t i o no fs q ls t a t e m e n t ,t h ed i s p l a yo fr e p o r t s ,e t c n o wl e t ss e e t h et e c h n o l o g yi m p l e m e n t a t i o ao ft h et h e si s a st ot h ea m o u n to fc o d e , t h e p r o j e c t o ft h ist h e s i sh a sm o r et h a n4 kli n e so fc o d e h st ot h e t e c h n o l o g yd i f f i c u l t i e s ,t h e r ea r es o m e d i f f i c u l tp r o b l e m ss u c ha st h e r e a l i z a t i o n o f s e l e c t i n g d a t a b a s ec o n n e c t i o nd y n a m i c a l l y ,t h e r e a l i z a t i o no fr e t r i e v i n gd a t a b a s em e t a d a t a ,e t c f o r t u n a t e l y ,t h e p r o b l e m se n c o u n t e r e dw e r er e s o l r e dt h r o u g hs e a r c h i n gr e l e v a n tm a t e r i a l a n dt r y i n gt i m ea f t e rt i m e k e y w o r d s :r d b m s ,o l t p ,m e t a d a t a ,g a d g e t ,s q l i v 基于关系数据库的报表生成丁具 1 1 背景 第1 章前言 报表可以帮助了解信息,分析数据,无论是在政府部门还是各种企业中均 有大量应用。传统的报表由手工做成,随着计算机技术的发展,世界各地的软 件公司纷纷开发出各种不同的报表工具,使报表可以由计算机生成,并且比起 手工方式,其生成更方便,报表质量更高,用途更广,功能更强。 当前一般的报表生成工具的数掘来源主要有两种,即o l a p 数据和o l t p 数 据。o i ,a p 侧重于数据仓库中的数据分析,它的目标是满足决策支持或多维环境 特定的查询和报表需求,因此o l a p 数据本身就适合于分析报表的生成,从o l a p 数据可以比较方便地生成各种功能强大的复杂报表,并可对数据进行切片、切 块、钻取和旋转等操作。而对于o l t p 数据,它有利于存储数据以及同时处理多 个事务,但其数据组织方式不利于分析查询,要从o l t p 数据生成分析报表相对 比较复杂。 目前,从关系数据库里的数据生成分析报表,一般做法是先在某些关系数 据库的基础上建立一个数据仓库,生成基于关系数据库的o l a p 数据,然后再在 此基础上生成分析报表,所以这种方式其实也是从o l a p 数据生成报表的方式。 在关系数据库的基础上建立o l a p 应用,必须使用分析服务器,比如使用 m i c r o s o f ts q ls e r v e r 里面的a n a l y s i sm a n a g e r 或者使用i b md b 2o l a ps e r v e r , 因此除了要付出一定的工作量之外,也要付出购买分析服务器软件的费用。 广州菲奈特一融通软件有限公司是国内领先的商业智能( b u s i h e s s i n t e l g e n c e ) 软件供应商,它的主要产品8 i o f f i c e 是公司自行研发的商业 智能应用平台产品,其核心技术是商业智能相关技术,包括d w o l a p d m 技 术,以及报表处理、数理统计、a i 、n n 、经济学、管理学等,在目前国内市场 的商业智能技术和产品中,处于领先水平。在b i o f f i c e3 0 里面,有一个复 杂报表工具它可以选择o l a p 数据或o l t p 数据来生成报表。由于o l a p 数据本 身的特点,从o l a p 数据生成报表的功能已经做得比较完善:而对于从o l t p 数 据生成报表,操作比较复杂,且只能做到一维数据查询。我们知道,大部分企 基于关系数据库的报表生成 一具 业使用的都是关系数据库,他们的数据是o l t p 数据,因而,要使用b i o f f i c e _ 具从这些数据中分析出有用的信息并创建报表,同样必须先使用第三方的分 析服务器转化出o l a p 数据。这样做产生了一些小良影响,首先是让人觉得公n j 的产品功能不强,因为必须依靠第三方产品;另外是第三方分析服务器的使用 提高了成本,中小企业用不起,用得起的大企业也觉得贵。在竞争日益激烈的 今天,不得不寻求解决方法,以增强公司的竞争力,于是促使了本论文项目的 产生。 1 2 课题的目的和意义 鉴于以上所提到的背景,菲奈特一融通公司产生了开发一个基于r d b m s 的报 表生成工具的需求,这个工具的操作方法和功能与从o l a p 数据生成报表类似, 并且风格要尽量跟b i o f f i c e 融合,以便将来有必要的话可以结合到b i o f f i c e 产品家族里去。论文的目的便是实现这个工具的原型。 开发这样一个基于r d b m s 的报表生成工具的意义在于: ( i ) 对公司来蜕,可以使产品更加完善,增加卖点;另外使产品可以面向中小 型企业,拓宽了市场。 ( 2 ) 对用户来说,可以降低成本。这主要是针对中小型用户,在处理的数据量 不是特别大的时候,若能够直接从o l t p 数据生成有分析功能的报表,可以省去 购买分析服务器的费用,而且系统响应速度也不至于太慢。 当然如果数据量太大,直接处理o l t p 数据必定带来响应时间慢等负面影响, 这时就要建立o l a p 应用了。国内很多企业都是中小型企业,而且就算是大型企 业,他们所处理的数据也未必一直都是极大型的,所以基于r d b m s 的报表生成 工具存在很大的市场需求。 基十关系数据库的报表生成工具 第2 章名词解释 在开始本论文的项目之前,首先要说明几个与本论文相关的基本概念。 2 1 联机事务处理( o n l i n et r a n s a c t i o np r o c e s s i n g ) 联机事务处理( o l t p :o n l i n et r a n s a c t i o np r o c e s s i n g ) 是传统的数据存 储、查询、分析技术,它强调的是密集的数据更新处理性能和系统的可靠性。 企业级的关系数据库管理软件,像s q ls e r v e r2 0 0 0 ,原先就是被设计来主要 存储大公司和政府机构的日常事务所产生的数据的。经过几十年的发展,在记 录企业的日常运作所需的数据方面,这些数据库软件已经发展成为很高效的系 统。由于这些系统是基于多台计算机的,并且记录着企业的商业事务,所有它 们被称为联机事务处理( o l t p ) 系统。o l t p 系统里面的数据主要是被组织来 支持事务的,譬如记录一个网上交易的订单,当库存量减少到一定程度的时候 发出一个要求更多供应的订单,记录员工的信息,记录经营许可证或驾照的拥 有者信息等等。单个事务访问的是相对少量的数据,可以很快的完成,而o l t p 系统是被设计和调整来同时处理成百上千个事务的。 尽管o l t p 系统在记录支持日常运作所需的数据方面很出色,但在提供给管 理者用于计划他们的机构的工作所需的信息方面,o l t p 数据的组织方式却是很 不方便的。管理者需要的是综合性的信息,通过这些信息,他们能够分析出影 响他们的机构或团队的某些趋势。他们需要找出影响他们机构的成败的关键因 素,需要找出他们企业的工作量是如何随季节和年度而变化的,并以此来预测 为进行以后的工作,需要多少员工和其它资源。在这些方面,o l t p 系统都已不 能满足要求了”1 。 2 , 2 联机分析处理( o n l i n e a n a l y t i c a lp r o c e s s i n g ) 联机分析处理( o l a p :o n l i n ea n a l y t i c a lp 1 o c e s s i n g ) 也是一类数据库 软件技术,它能使分析人员、管理人员或执行人员能够从多种角度对从原始数 据中转化出来的、能够真正为用户所理解的并真实反映企业维特性的信息进行 基于关系数据库的报表生成工具 快速、一致、交互地存取,从而获得对数据的更深入了解。o l a p 技术一个重 要特点是多维数据分析,比较典型的应用是对多维数据的切片和切块、钻取、 旋转等,便于使用者从不同角度提取有关数据。被没计来处理可以发现某些趋 势和关键性因素的查询的系统叫联机分析( o l a p ) 系统。o l a p 查询需要大量的 数据。举例来说,个国家机动车牌照管理部门的领导可能会要求得到这样一 个报表,在这个报表中要显示出过去2 0 年来,每年由这个部门注册的各种机动 车的数量。在一个o l t p 系统里对原始的详细数据运行这种类型的查询会产生两 种影响: ( 1 ) 查询要花费很长一段时间来合计过去2 0 年来所有的详细记录,因而 不能及时得出结果。 ( 2 ) 查询产生。个很沉重的工作负担,这个负担至少使到系统的一般用户 记录事务的速度减慢,以至于不能跟上正常的步伐,影响系统的j 下常使用。 还有个问题就是很多大企业不是只用一个o l t p 系统来记录所有的事务数 据。大部分企业都有多个o l t p 系统,并且这些系统是在不同时间开发出来的, 使用的是不同的软件和硬件。在很多情况下,在一个系统里面用来标志某些条 目的代码和名称与另外一个系统里面用于标志相同条目的代码和名称是不同 的。运行o l a p 查询的管理者需要能够引用多个这样的o l t p 系统里的数据。 o l a p 数据被组织成多维的数据立方体。相对于组织为关系数据库表的数据, 多维立方体里的数据的结构在o l a p 查询方面提供了更好的性能。一个多维数据 立方体的基本单位叫做度量值。度量值就是被分析的数据单位。例如,一个经 营硬件商店的公司,它想分析出公司出售不同产品的收入和折扣,那么度量值 就是卖出产品的数量、收入和所有折扣的总数。度量值是围绕着维度来组织的。 在这个例子里,一个三维的数据立方体可以有这些维度;时间、商店和产品。 我们可以想象这些维度形成了一个三维的、虚拟的立方体的逻辑x ,y 和z 轴。 每一个维度被划分为多个叫做成员的单元。个维度的成员通常会被组织 成层次结构,类似的成员被组合在一起成为层次结构上的一层。例如,一个时 间维可能最高层次是年,下一个层次是月,然后是星期、日,最后作为最底层 的是小时。上面的例子中,在三个维度的每一个交叉点上,与这三个维度的值 匹配的度量值的具体值就被记录下来。例如,假设从2 0 0 0 年2 月1 9 只下午1 皋于关系数据库的报表生成工具 点钟开始的一个小时是一个时间维成员,纽约州奥尔巴尼的商店 2 是。f 一个商店 维成员,易洁型拖把是一个产品维成员,在这三个维的交叉点,有一个单元记 录着总共有l o 个拖把卖了出去,收入为$ 9 0 0 0 ,平均折扣为$ 1 o o 。 对于任何个特定的o l a p 系统,为数据立方体定义的维度和度量值取决于 对企业来讲比较重要的分析的种类。o l a p 系统处理的对象是数据仓库或数据集 市里的o l a p 数据。数据仓库存储企业级的o l a p 数据,而数据集市的规模比数 据仓库要小些,它通常只是存储一个应用或一个机构的数据。1 。 2 3 数据立方体( c u b e ) 数据立方体( c u b e ) 是联机分析处理( o l a p ) 技术处理的主要对象。一个 数据立方体( c u b e ) 是一些数据的集合,而且这些数据通常是从数据仓库的子 集构建起来的,数据立方体里的数据被组织和汇总为由一些维度和度量值所定 义的多维结构。维度定义了数据立方体的结构,而度量值则提供了终端用户所 关心的数值型的值。一个数据立方体里面的数据单元的位置是由维成员的交集 确定的,而度量值字段的值的聚集则提供了这些数据单元里的具体数据值。每 个c u b e 对应着一个数据模式一一其实就是一些联系在一起的来自于数据仓库 的数据库表的集合,这个数据仓库便是这个c u b e 的数据来源。数据模式里面最 重要的一个表是事实表,c u b e 的度量值就来自于这个表。其它表是维表,它们 是这个c u b e 的维度的数据来源。 2 4 商业智能( b u s i n e s si n t e l l i g e n c e ) 商业智能( b i :b u s i n e s si n t e l l j g e n e e ) 是企业对商业数据的搜集、管理 和分析的系统过程,它能够帮助决策者在更短时间内得到有效的信息,即时回 应市场的变化,做出对企业更有利的决策。企业在长期的经营过程中,积累了 大量的数据,诸如订货单、存货单、应付账、交易条款、客户情况等等。汇总 和分析这些数据,进而做出更好的商务决策,会大大增强企业竞争优势,学会 发掘和充分发挥这些优势正是商业智能的目标。使用商业智能技术从业务操作 的数据中提取的有用信息,最终往往会以报表的形式呈现在企业的决策者面前, 方便他们分析、决策。3 。 基于关系数据库的报表生成工具 3 1 项目概述 3 1 1 目标 第3 章软件需求 开发本软件的目标是满足f i 前公司用户对报表设计器的需求,以及使公司 的产品更加完善。 3 1 1 1 开发意图 a 目前用户对于从o l t p 数据源生成报表存在着一些需求,即要求实现一 些简单的分析功能,本软件要解决这一问题。 b 使公司的产品可以面向中小型企业,因为使用本软件可以在不需要第 三方的分析服务器的情况下实现分析功能,节省了费用。 3 1 1 2 应用目标 通过使用本软件,可以使我们能够以o l t p 数据为数据源,生成有多维分析 功能的报表。 3 1 1 3 作用及范围 本软件主要应用于中小型企业,大企业中当要分析的数据量不是特别大的 时候也可以用,或者用户不想将关系数据库中的数据转换为o l a p 数据,又想实 现多维分析功能的时候也可以用。 3 1 1 4 背景 本软件将使用比较新的技术如u m l ,x m l ,n e t 等来开发。 基于关系数据库的报表生成工具 3 1 2 产品描述 本产品面向中小型企业的用户,具体使用对象是项目实施人员或者对数据 仓库和报表有一定了解的计算机爱好者。要使用本软件,必须了解o l a p 和o l t p 数据的特点,并且了解多维分析的相关概念。 3 1 2 1 相关关系 本软件产品是一项独立的软件,全部内容自含。 3 1 2 2 子集说明 分为两个模块:g a d g e t b u i l d e r 和r e p o r t d e s i g n e r 。每个模块都有不同的 功能,互相之间又有联系。 3 2 产品功能 3 2 1 外部功能 本报表设计工具的外部功能有:创建g a d g e t ,编辑g a d g e t ,数据库连接管 理;创建报表,编辑报表,保存和导出报表。 3 2 2 内部功能 内部功能包括读写x m l 文件,创建x m l 文件,调用系统函数,连接数据库, 创建数据库连接,查询数据库等。 3 2 3 功能表 名称功能 g a d g e t b u i l d e r创建g a d g e t通过设计向导,逐步创建g a d g e t 编辑g a d g e t在可视化窗口中编辑已有的g a d g e t i 保存g a d g e t将g a d g e t 信息保存在x m l 文件里面 基于关系数据库的报表生成二r 具 数据库连接管理建立、编辑、删除、测试数据库连接 r e p o r t d e s i g n e r选择维表字段,度从当前展示的g a d g e t 信息巾选择维表 量值字段,度量值兀素 创建报表通过读取己有g a d g e t 的信息来创建报 表 编辑报表在可视化窗口中打开已有报表进行编 辑 导出报表从当前打开的报表中导出不同格式的 报表 表格3 1 系统功能表 3 2 4 功能描述图 以下是g a d g e t b u il d e r 和r e p o r t d e s i g n e r 的功能描述图。 图3 1g a d g e t b u i1 d e r 功能描述图 摹于关系数据库的报表生成工具 图3 2r e p o r t d e s f g n e r 功能描述型 3 。3 系统总体结构描述 g a d g e t b u i l d e r 和r e p o r t d e s i g n e r 是相辅相成的,g a d g e t b u i l d e r 创建出 来的g a d g e t 要在r e p o r t d e s i g n e r 里面才能用,而r e p o r t d e s i g n e r 必须使用 g a g e t b u i l d e r 创建出来的g a d g e t 才能设计报表,数据库和g a d g e t 是两个用户 模块之间联系的桥梁;另一方面,这两个模块都是独立运行的。结合上面所说 的g a d g e t b u i l d e r 和r e p o r t d e s i g n e r 的主要功能,整个系统的总体结构图如下: 基丁关系数据库的报表生成工具 图3 3 系统总体结构图 这个结构图只是粗略地描述了这个系统的基本功能和工作流程。从图中我 们可以看到,g a d g e t b u i l d e r 用户模块的主要功能是创建g a d g e t ,编辑g a d g e t 和数据库连接管理;r e p o r t d e s i g n e r 的主要功能是创建报表和编辑报表。下面 再分别详细说明。 3 3 1g a d g e t 设计器一一g a d g e t b u 订d e r 首先说明什么是g a d g e t 。g a d g e t 是一种数据结构映射,包含表、列、连接 等信息。它代表了指定的应用,例如,g a d g e t 代表的可以是公司内的一个部门, 如市场部或财务部。在r e p o r t d e s i g n e r 用户模块中,g a d g e t 使用户可以建立 查询,创建报表,这样用户可以对数据库数据进行分析。 g a d g e t b u i l d e r 模块要实现的主要功能是: 3 3 1 1 创建g a d g e t g a d g e t 罩面包含数据库元信息以及数据库表之间各种关系的信息。创建 g a d g e t 的时候,用户给所要刨建的g a d g e t 起名,并选择数据库连接,事实表, l o 基于关系数据库的报表生成工具 度量值和维表,操作完成之后,这些信息被写进代表这个g a d g e t 的x m l 文件里 面。 3 3 1 2 编辑g a d g e t 已经创建好的g a d g e t ,由于各种原因,有时需要进行一些改动才能使用, 因而本模块最好要有编辑、保存g a d g e t 的功能,毕竟每次都从头开始创建一个 g a d g e t 过于麻烦。 3 。3 。1 。3 数据库连接管理 g a d g e t 罩的信息是从数据库而来的,每次创建g a d g e t 都需要个数据库连 接,而且数据库连接要能够动态选择,因为每次创建g a d g e t 要用到的数据库可 能都不同。数据库连接管理要做到能够创建连接、保存连接和编辑连接,这样 的话,创建好一个数据库连接之后,就可以多次使用,而不需要每创建个 g a d g e t 就建立一个连接。 3 3 2 报表设计器一一r e p o r t d e s i g n e r r e p o r t d e s i g n e r 用于配合g a d g e t 来创建报表,这才是创建g a d g e t 的最终 目的。这个用户模块要实现的主要功能是: 3 3 2 1 创建报表 费了一番周折,从数据库中提取出有用信息,创建出了g a d g e t ,最终要能 够用来创建报表,把有用的数据以报表的形式呈现在企业的决策者面前,才能 帮助他们决策。本模块中,要创建报表,必须先选择一个用g a d g e t b u i l d e r 创 建出来的g a d g e t ,读取了g a d g e t 里面的信息之后,利用这些信息来连接数据 库、显示g a d g e t 信息、获取数据、创建报表。 3 3 2 2 编辑报表 就是对已经创建好的报表进行编辑,想象一下对一个我们所熟悉的w o r d 文 某于关系数据库的报表生成t 具 档或“一个e x c e l 表进行编辑,这里对报表的编辑也类似于那样。 3 4 具体需求 3 4 tg a d g e t b u i l d e r 的功能需求 3 4 1 1 定义g a d g e t 参数 3 4 1 1 1 规格说明 3 4 1 1 2 引言 定义要新建的g a d g e t 的基本参数,即名称和数据库连接 3 4 1 1 3 输入 g a d g e t 名,选择一个数据库连接 3 4 1 1 4 加工 初始化程序中对应于g a d g e t 名称的变量,连接数据库 3 4 1 1 5 输出 初始化了的g a d g e t 名变量,建立好的数据库连接 基于关系数据库的报表生成工具 3 4 1 2 新建数据库连接( 暂时只提供o l ed b 数据连接) 3 4 1 2 1 规格说明 i :连接名,连接参数 j r ip :连接数据库,获取数据库元信息 上 o :新建连接 3 4 1 2 2 引言 建立一个新的数据库连接 3 4 1 2 3 输入 新连接的名字,连接的各种参数 3 4 1 2 4 加工 连接数据库 3 4 1 2 5 输出 已经建立好的新连接 3 4 1 3 选择事实表 3 4 1 3 1 规格说明 li :事实表名 上 p :事实表名对应参数赋值 上 o :赋值了的事实表名参数 3 4 1 3 2 引言 选择事实表 基于关系数据库的报表生成工具 3 4 1 3 3 输入 用户选择的事实表名 3 4 1 3 4 加工 给事实表对应参数赋值 3 4 1 ,3 5 输出 赋值了的事实表参数 3 4 1 4 添加度量值 3 4 1 4 1 规格说明 i :被选择的事实表里的度量值对应字段名 p :添加度量值变量并赋值 0 :赋值了的度量值变量 3 4 1 4 2 引言 用户从事实表中的数值字段中选取度量值字段 3 4 1 ,4 3 输入 被选择的事实表里的度量值对应字段名 3 4 1 4 4 加工 添加度量值变量并赋值 3 4 1 4 5 输出 赋值了的度量值变量 犟于关系数据库的报表生成丁具 3 4 1 5 选择维表 3 4 1 5 1 规格说明 li :维表名 上 p :添加维表变量并赋值 上 lo :赋了值的维表变量 3 4 1 5 2 引言 用户从当前连接的数据库表列表中选择维表 3 4 1 5 3 输入 维表名 3 4 1 5 4 加工 添加相应数量的维表名变量并赋值 3 4 1 5 5 输出 赋了值的维表名变量 3 4 1 6 生成g a d g e t 3 4 1 6 1 规格说明 ii :g a d g e t 名,事实表名,度量值名,维表名等信息 上 lp :创建存储g a d g e t 信息的l 文件,写入相关信息 j r o :创建好的g a d g e t 存储文件 筚于关系数据库的报表生成t 具 3 4 1 6 2 引言 在得到了g a d g e t 名,事实表,度量值,维表等的相关信息之后,创建出存 储g a d g e t 信息的x m l 文件,完成创建g a d g e t 的过程。 3 4 1 6 3 输入 g a d g e t 名,事实表名,度量值名,维表名等信息 3 4 1 6 4 加工 创建存储g a d g e t 信息的x m l 文件,写入相关信息 3 4 1 6 5 输出 创建好的g a d g e t 存储文件 3 4 2 r e p o r t d e s i g n e r 的功能需求 3 4 2 1 选择g a d g e t 并展示g a d g e t 信息 3 4 2 1 。l 规格说明 3 4 2 1 2 引言 选择一个己有的g a d g e t 用于创建报表 3 4 2 1 3 输入 所选g a d g e t 名称 3 4 2 1 4 加一f 获取所选g a d g e t 的绝对路径并读取出维表、度量值等信息 3 4 2 1 5 输出 以树型结构显示的g a d g e t 信息,包括事实表,维度表,维度表字段,度量 一州一 磊一 一o 一 基于关系数据库的报表生成工具 值 3 4 2 2 从当前g a d g e t 中选择要在报表中显示的字段 3 4 2 2 1 规格说明 3 4 2 2 2 引言 选择维表和度量值集合中的一些字段用于创建报表 3 4 2 2 3 输入 所选的字段名和度量值名 对程序中的对应于维表字段和度量值字段的变量进行赋值 3 4 2 2 5 输出 赋值了的字段名和度量值名的对应变量 3 4 2 3 根据所选信息产生s q l 语句 3 4 2 3 1 规格说明 一0 一 基于关系数据库的报表生成i + 具 3 4 2 3 2 引言 按预定规则产生s q l 语句,这里必须构造个s q lg e n e r a t o r 3 4 2 3 3 输入 g a d g e t 名,维表字段名,度量值名等相关信息 3 4 2 3 4 加工 通过s q lg e n e r a t o r 产生s q l 语句 3 4 2 3 ,5 输出 合法的s q l 语句 3 4 2 4 用产生的s q l 语句对数据库进行查询 3 4 2 4 1 规格说明 3 4 2 4 2 引言 查询数据库 3 4 2 4 3 输入 s q l 语句 3 4 2 4 4 加工 对数据库进行查询 3 4 2 4 5 输出 查询结果数据 基于关系数据库的报表生成工具 3 4 2 5 用返回的数据创建报表 3 4 2 5 1 规格说明 ii :查询出来的数据 0 fp :将数据按预定的格式显示出来 士 lo :做好的报表 3 4 2 5 2 引言 用接收到的数据创建报表 3 4 2 5 3 输入 报表数据 3 4 2 5 4 加工 前端显示,格式化等 3 4 2 5 5 输出 完整的报表 3 4 2 6 打开已有报表 3 4 2 6 1 规格说明 li :报表文件 ip :读取报表文件并进行处理 10 :展示出报表 3 4 2 6 2 引言 用r e p o r td e s i g n e r 打开已有的报表文件 1 9 基于关系数据库的报表生成工具 3 4 2 6 3 输入 报表文件 读取文件内容并进行处理 3 4 2 6 5 输出 以一定格式将报表展示出来 3 4 2 7 保存报表 3 4 2 7 1 规格说明 i :当前报表编辑窗口的报表内容 p :将报表内容写进用户指定的报表文件 0 :保存有报表内容的报表文件 保存当前编辑窗口正在编辑的报表文件 3 4 2 7 3 输入 待保存的报表的内容 将报表内容写进用户指定的文件 保存当前报表内容的文件 基于关系数据库的报表生成工具 3 4 2 8 导出预定格式的报表 3 4 2 8 1 规格说明 i :当前打开的报表的数据 ip :将报表内容转换为预定格式的文件 l 0 0 :所选格式的文件 3 4 2 8 2 引言 把当前打开的报表的内容导出为某一种格式的文件 3 ,4 2 8 3 输入 待导出的文件名,当前正在编辑的报表的内容 3 4 2 8 4 加工 创建文件,写入报表内容 3 4 2 8 5 输出 所选格式的报表文件 基于关系数据库的报表生成工具 第4 章g a d g e t b u i l d e r 的设$ - t - $ n 实现 4 。1 g a d g e t bu - l d e r 的设计 4 1 1 设计思想 g a d g e t b u i l d e r 的设计思想主要是模拟,即用g a d g e t 模拟多维数据立方体。 相对于数据立方体( c u b e ) ,论文的项目中使用的g a d g e t 这个概念是对c u b e 的某些功能的模拟,但没有c u b e 那么多内容,也没有它那么完善的功能。 4 1 2 信息保存者- - g a d g e t 的数据模型建模 与数据立方体类似,为了能做到多维查询、分析,g a d g e t 里面必须包含维 度和度量值信息,维度决定了g a d g e t 的结构,而度量值为用户提供了他们所需 要了解的数值属性。为了简单起见,在这个项目里,维度不提供层次的概念, 即每个维度部只有一层;另外是维度暂时只使用最简单的星型结构( 图4 1 ) , 每个维度由一个维表和此维表里面的一个维字段决定,这个维字段是维表的主 键。除了维度和度量值之外,个g a d g e t 当然还要包含很多其它信息,包括数 据库连接信息,事实表等。 幕于关系数据库的报表生成工具 图4 1g a d g e t 结构图 下面分别说明g a d g e t 里包含的不同种类的信息。这些概念和数据立方体 ( c u b e ) 里的相应概念类似,但也有些区别。 4 1 2 1 度量值 一个g a d g e t 代表了一个应用,一个应用要查看、分析的数据往往是事实表 里面的少数几个字段对应的数据,而不是所有的字段,这几个字段便是度量值 字段了,而且,这些字段必须是数值字段。不同的应用,要查看或分析的数据 不同,所以度量值的选择也不一样。度量值字段是事实表里的字段。 基于关系数据库的报表生成r 具 4 1 2 2 维度 可以说维度就是用户对度量值进行查看的角度。在这罩,一个维度包括一 个维表和一个维字段。用户为一个g a d g e t 创建了多少个不同的维度,就可以从 这多少个不同的角度来查看度量值。所以,维度跟度量值是有联系的,每个维 度对应于一个维表,而一个g a d g e t 里的度量值都来自事实表,所以,每个维表 和事实表都有关系。在这个项目里,事实表和维表的关系就是:维表的主键是 事实表的外键,而这个主键其实也就是这个维度的维字段。 4 1 2 3 事实表 要查看和分析的数据,即度量值,就是事实表里的数据,所以,要选择度 量值,必须先选择事实表;另外,每个维表也都要和事实表连在一起。因而, g a d g e t 里必须包含事实表的信息,也就是说要选定一个数据库表作为事实表。 4 1 2 4 数据库连接 创建g a d g e t 之前,当然要选择一个数据库连接。g a d g e t 里面的信息基本上 就是这个数据库连接的元信息,而在使用g a d g e t 的时候,还必须再次连接到数 据库,以检索数据,所以数据库连接的信息必须保存下来。 4 1 3g a d g e t b u i l d e r 的用例分析 g a d g e t b u i l d e r 的用户有g a d g e t 的创建者和数据库管理员。g a d g e t 创建者 能够管理数据库连接,创建g a d g e t ,编辑g a d g e t ;数据库管理员可以管理数据 库连接。以下是这个用户模块的用例图: 2 4 基于关系数据库的报表生成t 具 g a d g e t b u i l d e r 。、 一一一一、一。, m a n a g ec o n n e c t i o n s p 。,。7 。 一一、 - 7 、c r e 、a t e 若:二。 一一、 、1 _ 。一一j e d i

温馨提示

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

评论

0/150

提交评论