(计算机科学与技术专业论文)面向对象的数据仓库设计方法及其应用.pdf_第1页
(计算机科学与技术专业论文)面向对象的数据仓库设计方法及其应用.pdf_第2页
(计算机科学与技术专业论文)面向对象的数据仓库设计方法及其应用.pdf_第3页
(计算机科学与技术专业论文)面向对象的数据仓库设计方法及其应用.pdf_第4页
(计算机科学与技术专业论文)面向对象的数据仓库设计方法及其应用.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机科学与技术专业论文)面向对象的数据仓库设计方法及其应用.pdf.pdf 免费下载

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

文档简介

面向对象的数据仓库设计方法及其应用 摘要 随着全球经济一体化趋势的发展,银行业越来越需要依靠数据仓 库系统作为决策分析的支持,以迎接国内外竞争对手的挑战。然而, 基于企业信息工厂的数据仓库设计方法建设周期长、风险大,采用维 度建模的方法见效快、成本低,但该方法易导致面向对象应用与数据 仓库模型之间数据表述不一致的问题。 针对以上问题,本文将面向对象的设计方法应用于数据仓库维度 建模过程,在以下方面进行了研究和实践: 1 研究了星型模型向面向对象模型的转换方法,采用面向对象思 想设计出基于数据仓库总线架构的对象模型,以解决数据仓库系统业 务和数据表达不一致的问题: 2 将面向对象的设计方法应用于e t l 部分的分析与设计,使其便 于实现与维护; 3 基于j 2 e e 技术和对象持久化原理设计和实现信息传递过程,提 高多用户访问时的系统性能; 最后,将本文研究的面向对象的数据仓库设计方法应用于某商业 银行稽核系统,在系统建模和业务功能实现上取得了显著成效。 关键词:数据仓库;维度建模;面向对象;银行 d a t aw a r e h o u s ed e s i g na n da p p l i c a t i o nw i t h o b j e c t - o r i e n t e dm e t h o d a b s t r a c t a st h ei n t e g r a t i o nt r e n do f t h eg l o b a le c o n o m y , c o m m e r c i a lb a n k si n c h i n aw i l lf a c em o r ec h a l l e n g e sf r o mb o t h d o m e s t i ca n da b r o a d c o m p e t i t o r s t h ed a t aw a r e h o u s ed e s i g nm e t h o db a s e d o n c i f ( c o r p o r a t i o ni n f o r m a t i o nf a c t o r y ) h a ss o m ed i s a d v a n t a g e s ,s u c ha s l o n gb u i l d i n gc y c l e s ,b i gr i s k se t c a l t h o u g ha n o t h e rd e s i g nm e t h o d , d i m e n s i o n a lm o d e l i n g ,i se f f e c t i v ea n dl o w c o s t ,y e tt h em e t h o dh a st h e p r o b l e mo fd a t ae x p r e s s i o ni n c o n s i s t e n c yb e t w e e nt h eo b j e c t - o r i e n t e d a p p l i c a t i o na n dt h ed a t aw a r e h o u s em o d e l r e g a r dt ot h ep r o b l e mm e n t i o n e da b o v e ,w ea d o p t e dt h e o b j e c t - o r i e n t e dd e s i g nm e t h o dt od od a t aw a r e h o u s em o d e l i n gb a s e do n d i m e n s i o n a lm o d e l i n g i nt h i sa r t i c l e ,w ed i ds o m er e s e a r c ha n dp r a c t i c e s i nt h ef i e l d sb e l o w : 1 w es t u d i e dt h em e t h o do f c o n v e r t i n g ”s t a rs c h e m a ”t o o b j e c t - o r i e n t e dd a t am o d e l ,a n da d o p t e dt h eo b j e c t o r i e n t e dd e s i g n m e t h o dt od e s i g nt h eo b j e c tm o d e lb a s e do n ”d a t aw a r e h o u s eb u s ” a r c h i t e c t u r ei no r d e rt os o l v et h ei n c o n s i s t e n c yo fs y s t e m sb u s i n e s sa n d d a t ae x p r e s s i o n 2 w ea d o p t e dt h eo b j e c t - o r i e n t e dd e s i g nm c t h o dt ot h ea n a l y s i sa n d d e s i g np r o c e s so fe t l ( e x t r a c tt r a n s f o r ml o a d ) 3 w ed e s i g n e dt h ep r e s e n t a t i o np a r tb a s e do nj 2 e et e c h n o l o g ya n d o b j e c tp e r s i s t e n c ys p e c i f i c a t i o nt oi n c r e a s es y s t e mp e r f o r m a n c ew h e n a c c e s s i n gb ym u l t i p l eu s e r s 、 i nt h ee n d ,w ea p p l i e dt h i sd e s i g nm e t h o ds u g g e s t e db yt h i sa r t i c l et o t h eb a n ka u d i ts y s t e m ,a n dr e c e i v e dg o o de f f e c to ns y s t e mm o d e l i n ga n d b u s i n e s sf u n c t i o n k e yw o r d :d a t aw a r e h o u s e ;d i m e n s i o n a lm o d e l i n g ;o b j e c t - o r i e n t e d ; b a n k 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均己在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处, 本人签名:丕丕坚! 塑2 本人承担一切相关责任。 日期:丝里2 1 丝呈 关于论文使用授权的说明 学位论文作者完全工鲤北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位途塞属于保密在年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:至塑堕! ! ! 日期:塑i :生主 导师签名:_ 绎孓名灶日期:二迦z 二名- 二l 北京邮电大学硕士研究生学位论文 第一章绪论 1 1 课题研究背景及意义 随着全球经济一体化趋势的发展,银行业将面临国内外更多的竞争对手, 面临更多的挑战。在竞争日益激烈的市场中,能否迅速做出更好的决策关系到 银行是苟且偷生还是繁荣兴旺。银行部门需要在压力面前迅速做出决策,这些 决策的制定要以银行大量业务数据的分析为依托。如今大多数银行并不缺少数 据,数据几乎无处不在,但数据的提供关键不在于数量,而在于这些数据是否 是一致、准确、具有时效性和复杂、有质量。数据仓库是目前管理信息和支持 分析型数据的最有效方式,数据仓库技术与其他计算机技术有机结合,可以有 效地协助银行业进行风险管理,绩效评估,盈利分析,客户关系管理。识别不 同的客户群体,确定目标市场,实施差异化服务的策略提供技术支持,并为经 营管理决策分析提供准确一致的量化信息。 目前存在两种主流的数据仓库设计方法分别是由b i l li n m o n 提出的基于企 业信息工厂的数据仓库设计方法和r a l p hk i m b a l l 的维度建模理论。b i l li n m o l l 提出的企业级数据仓库模型提倡先建立企业级数据仓库,然后开发具体的应用 l i jl 2 j 。企业级数据仓库固然是目标所求。但在缺乏足够技术力量和数据仓库建 设经验的情况下,按照这种模型建设的系统开发周期长、难度大、风险大、易 失败。r a l p hk i m b a l l 提出的维度建模理论降低了模型的范式化,以分析主题为 基本框架来组织数据,以维模型开发分析主题”,这样能够快速实施,迅速获 得投资回报,在取得实际效果的基础上,再逐渐增加应用主题,循序渐进,积 累经验,逐步建成企业级数据仓库。也可以看作基于总线型结构先建立数据集 市,使所有的数据集市具有统一的维定义和一致的业务事实”1 。然而在目前软 件系统设计过程中,对于用户复杂业务需求的描述通常采用面向对象的统一建 模语言,这种描述需求的方式较传统的数据仓库设计模式更有利于使用户对系 统设计的理解。另外,传统的数据仓库模型存在着面向对象应用与数据仓库系 统之间的“阻抗失配”问题。因此迫切需要一种更适用于银行业数据仓库系统 建设的设计方法。 出现于2 0 世纪7 0 年代初期的面向对象技术,经过3 0 余年的发展已在计算 机领域取得了广泛的应用,其基本思想是对问题空间进行自然分割,以更接近 人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟, 第1 页 北京邮电大学硕士研究生学位论文 从而使设计出的软件尽可能直接地描述现实世界,构造出模块化、可重用、维 护性好的软件”。,同时限制软件的复杂性,降低开发维护费用。面向对象技术 已经渗透到了数据库领域,面向对象的数据库利用对象来支持复杂的数据模型、 支持复杂的数据结构、支持分布式计算和大型对象存储,更好地实现了数据完 整性,采用面向对象的模型设计已经在数据库应用中取得了良好的效果。若将 面向对象的数据模型设计应用于数据仓库的构建中,会弥补企业级数据仓库模 型和维度模型所不能完全适应新一代数据仓库应用需求的缺陷,解决面向对象 应用与数据仓库系统之间的“阻抗失配”问题。 商业需求而非技术是数据仓库设计的驱动力”。采用面向对象的思想为银 行稽核部门设计一套满足稽核人员工作需要的低成本、轻量级的数据仓库系统 是本文所要论述的内容。 1 2 国内外发展动态 目前,国内的多家银行已经在建设和利用数据仓库系统方面进行了有益的 探索和尝试,取得了一定的进展,同时获得了良好的效果。但是总的看来,无 论在规模上、还是在功能上,国内银行数据仓库系统的建设和利用水平与国外 银行之间还存在着较大差距。首先,国内银行数据仓库系统的建设起步晚;其 次,国内银行特别是四大国有商业银行规模庞大、分支机构多,内部管理复杂, 难以在短时间内完成规模大、功能全、利用率高的数据仓库系统建设。相比之 下,先在某个或几个分行进行试点,然后在总结成功经验和失败教训的基础上 进而推广较为明智,符合数据仓库系统建设的规律;第三,多数国内商业银行 刚刚完成从专业银行或政策性银行向现代化商业银行的转型,在完善和加强现 代金融企业制度方面还有大量工作要做,而数据仓库系统不同于其他应用系统, 它是为企业的决策、管理以及长远发展服务的,与企业的管理决策水平是相辅 相成、相互制约的。 数据仓库是一种提供战略信息可行的解决方案,而不是产品。驱动数据仓 库构建的动力是商业需求而非技术。不同企业不应采用完全相同的方式构建 数据仓库。目前国内外主要有以下三种构建数据仓库的方式: ( 1 ) 国外制造行业的企业通常采用e r p 和c r m 套件的模式,这种方法可 保证管理会计系统、业务系统和数据仓库协同运作。但这种方式没有为银行业 定制,银行的业务运行模式有大量的特殊性,因此国内商业银行的数据仓库构 建几乎不采纳这种方式。 第2 页 北京邮电大学硕士研究生学位论文 ( 2 ) 由于国外金融行业发展较早,因此很多国外银行在数据仓库解决方案 提供商的协助下已经为自己构建了较为完善的业务规范与管理会计融合的数据 仓库系统。如:n c r 公司的t e r a d a t a 数据仓库,i b m 公司的b d w 数据仓库。 采用这样成熟的数据仓库套装软件,是目前银行业构建数据仓库一种较好的方 式。 ( 3 ) 对于那些关键业务系统已经集中成型,但系统设计比较陈旧,部门数 据较为分散的银行,需要花费更多的人力、财力和更大的风险来进行数据仓库 的建设。可以首先建造一个基础的数据仓库框架,整合银行内各业务部门的信 息,实现数据大集中,同时从部门级的数据集市入手,采用从下到上的方式进 行数据仓库建设,数据仓库中数据集市的内在关系保持相对稳定,数据仓库的 基础框架可随着银行业务发展而不断完善。 在国内外也曾有人提倡采用面向对象的数据仓库模型设计方法,采用螺旋 式的软件开发方法而非传统的瀑布式开发方法“。,以及基于w e b 的数据仓库设 计等“1 。但对这些方法的应用有一定的局限性。总之,数据仓库构建重点不在 于技术的先进,关键在于用户需求的明确性和有效性,数据仓库建设人员能否 开发出有价值的系统。 1 3 系统概述 对银行稽核部而言,建立一套科技稽核工具以适应目前金融行业复杂的经 营环境,加大对银行各机构的监管力度,做好对金融案件的防范和控制工作, 是目前迫切所需。稽核监控业务的数据范围涵盖银行各个业务系统,涉及非常 庞大的数据量,在最短时间内从海量业务数据中找到疑点交易数据,必须有一 套完全符合业务逻辑,能够极大提高稽核工作效率的软件平台来做支撑。因此, 银行稽核部门迫切需要一套适合稽核工作特点、可由稽核人员而非技术人员根 据稽核工作的需要进行自动的风险预警和监控、对提取的疑点数据做进一步分 析、高效可行且科学合理的工具来监督和及时发现银行所面临风险的数据仓库 系统。 银行稽核系统作为面向稽核部门的数据集市级别的应用系统,应用涉及银 行业务系统的汇总和明细数据,同时银行的数据大集中正在建设中,全行的r r 系统需要统一考虑,总体规划,因此稽核系统的建设也是一个循序渐进,分期 完成的过程。 系统设计的目标是以计算机辅助稽核审计作为基本手段,建设一个安全、 第3 页 北京邮电大学硕士研究生学位论文 可靠、开放、高效的非现场稽核系统。建立具有时效性的数据和资料管理的稽 核信息平台,实现业务数据的电子化,使稽核人员实时分析和处理银行信息; 实现业务监控和风险预警的自动化;内控评价的科学化;通过该系统确立全行 稽核信息系统的体系架构,进一步提高稽核管理工作的科学性和规范性。 整体框架的设计应当和具体的业务应用模块完全匹配,边界清楚,框架完 成的功能不应当再在业务应用模块中重复开发。系统的设计应以高内聚、低耦 合为主旨,而面向对象的设计方法是满足此要求的较好选择。 1 4 本文所研究内容 ( 1 ) 数据仓库的维度建模理论和面向对象数据库技术的学习与研究 学习了数据仓库的基本原理、组成部分及各自发挥的作用,研究了两种主 流的数据仓库设计方法,尤其对维度建模理论进行了较深入的学习。调研了面 向对象理论在数据库技术中的应用,为面向对象的数据仓库设计打下了理论基 础。 ( 2 ) 基于维度建模理论的数据仓库星型模型设计及相应的数据模型对象化 将面向对象的方法应用于数据仓库的数据模型设计。基于维度建模理论, 尝试采用面向对象的思想将星型模型转换为面向对象的数据模型,并确定转换 规则,归纳出基于数据仓库总线结构的面向对象数据模型,为e t l 及信息展现 部分的实现提供支持。 ( 3 ) 面向对象的e t l 部分设计 在数据仓库构建中,e t l 工作最重要、最具挑战、最耗时和耗力。用面向 对象的方法进行数据获取部分的分析和设计,通过模块化的数据抽取、转换和 装载引擎分别完成数据的抽取、转换和装载功能。元数据信息分别存储于关系 数据库和x m l 文件中,通过类对元数据进行封装和访问,使e t l 的结构具有 高内聚、低耦合和扩展性。 ( 4 ) 基于j 2 e e 架构的信息展现部分的实现 深入调查研究了现有的数据仓库信息展现方式,针对银行稽核系统的业务 需求,认真学习了j 2 e e 软件架构及对象持久化的规范,在基于数据仓库总线 结构的面向对象数据模型上,参与设计了采用j 2 e e 架构实现的b s 结构的数 据仓库信息展现模块。 第4 页 北京邮电大学硕士研究生学位论文 ( 5 ) 面向对象的数据仓库设计方法在银行稽核系统中的应用 本人有幸参与了某商业银行非现场稽核系统的建设,在实践中把本文论述 的面向对象的数据仓库设计方法应用于银行稽核系统的数据仓库建设,完成了 数据仓库总线模型、e t l 以及信息展现部分的设计与实现,并取得了显著的成 效。 1 5 论文组织结构 本文正文共分五章: 第一章绪论。介绍了论文的研究背景及意义、国内外发展动态、某商业银 行稽核系统的概述以及本文所研究的内容和论文的组织结构。 第二章分别介绍了维度建模的理论及面向对象数据库的关键技术。 第三章面向对象的数据仓库设计。讨论了星型模型到面向对象数据模型的 转换,着重介绍了数据仓库总线模型的对象化设计,然后介绍了采用面向对象 方法对数据仓库数据获取和信息传递部分的设计。 第四章某商业银行稽核系统的应用。首先介绍了某商业银行稽核系统的设 计目标,其次描述了系统的总体架构和各功能模块,最后介绍了基于面向对象 设计方法的数据采集模块、稽核数据源模块和稽核监控分析平台的设计及实现。 第五章结束语。对论文的工作进行总结,并给出了需要进一步研究和探讨 的内容及方向。 第5 页 北京邮电大学硕士研究生学位论文 第二章数据仓库维度建模及面向对象数据库概述 数据仓库是企业内部一个专门的、大型统一的数据存储,支持快速、灵活、 有效的分析型数据查询。要成功地建立一个数据仓库,必须有一个合理的数据 模型。创建一个体现业务需求的数据模型,对系统的物理实施起着指导性作用, 是数据仓库构建过程中的核心问题。 由于数据仓库数据模型在数据仓库构建过程中的重要地位,因此在创建数 据仓库的数据模型时应考虑其满足不同层次用户、兼顾查询效率与数据粒度的 需求,能够支持用户需求的变化;避免业务运营系统性能影响;提供系统可扩 展性。数据模型的可扩展性决定了数据仓库对新需求的适应能力,数据仓库建 模既要考虑眼前的信息需求,也要考虑未来的需求。 2 1 维度建模 2 1 1 多维模型 r a l p hk i m b a l l 说“数据仓库仅仅是构成它的数据集市的联合”“。他认为 “可以通过一系列维数相同的数据集市递增地构建数据仓库”。每个数据集市将 联合多个数据源来满足特定的业务需求。通过使用“致的”维”。,能够共同 看到不同数据集市中的信息,这表示它们拥有公共定义的元素。r a l p hk i m b a l l 的方法将提供集成的数据来回答组织迫切的业务问题并且要快于b i l li n m o n 的 方法。b i l li n n l o n 的方法是只有在构建几个单主题区域之后,集中式的数据仓 库才创建数据集市。而r a l p h k i m b a l l 认为该方法缺乏灵活性并且在现在的商业 环境中所花时间太长。数据仓库建立的过程如图2 1 所示: 第6 页 北京邮电大学硕士研究生学位论文 图2 - 1 维度建模过程示意图 由于中央数据仓库的企业数据模型反映了整个企业的业务运行规律,进行 不规范处理容易影响整个系统,不利于今后的扩展,而且不规范处理产生的数 据冗余将使整个系统的数据量迅速增加。因此,当系统性能下降而进行不规范 处理时,比较好的办法是选择问题较集中的部门数据集市实施这种措旆。这样 既能有效地改善系统性能,又不至于影响整个系统。在国外一些成功的大型企 业级数据仓库案例中,基本上都是采用这种方法。 维度建模中最为提倡的数据模型是星型模型和雪花模型。 ( 1 ) 星型模型 星型模型最为常见”1 ,r a l f k i m b a l l 极力推荐采用星型模型进行数据建模。 星型模型通过使用一个包含主题的事实表和多个包含事实的非正规化描述的维 表来支持各种决策查询和分析“。模型的核心是事实表,各个维度表分别连接 到中央事实表,通过事实表将多个维度表关联。事实表主要包含了描述特定商 业事件的数据,事实表中的数据不允许修改。维度表主要包含存储在事实表中 数据的特征数据。星型模型结构使用户能够很容易地从维度表中的数据开始分 析,提高系统性能“。图2 - 2 是星型模型的结构示意图。 第7 页 北京邮电大学硕士研究生学位论文 图2 2 星型模型结构示意图 ( 2 ) 雪花模型 雪花模型是对星型模型的扩展,对星型模型中的维表进行了规范化处理, 是介于第三范式和星形模式之间的一种设计模式“。雪花模型的维度表中存储 了正规化的数据,通常是部分数据组织采用第三范式的规范结构。雪花模型通 过把多个较小的、标准化的表联合在一起提高了数据仓库应用的灵活性。雪花 模型的维度表较星型模型的维度表减少了记录冗余,这种维度表易于维护且节 省存储空间,规范化的结构更容易更新和维护。但雪花模式比较复杂,用户不 容易理解,浏览内容相对困难,额外的连接将使查询性能下降。在数据仓库中, 查询性能相对o l t p 系统来说更加被重视,而雪花模式会降低数据仓库系统的 性能“,因此通常不推荐“雪花化”。图2 3 是雪花模型的结构示意图。 图2 3 雪花模型结构示意图 2 1 2 事实表 事实表是数据分析所对应的主要数据项的组合,对应于企业内的某项业务 第8 页 北京邮电丈学硕士研究生学位论文 或某个事件。事实表中的事实通常具有数据特性和可加性,这种特征对于分析 型应用而言是非常重要的。在这类应用中,人们所关心的不是单一的一条记录, 而是关心汇总的、综合性的数据,因此一次性检索的记录可能是几百条、几千 条甚至可能几百万条,而且还要求可能按不同的粒度汇总。事实表中可以存储 不同粒度的数据,同一主题中不同粒度的数据一般存储在不同的事实表中 1 l j 在数据仓库中,对于比较简单的主题,一般一个主题对应一个事实表,对于比 较复杂的分析主题,很可能一个主题对应多个事实表。 所有事实表有两个或者两个以上的外关键字,外关键字用于连接到维度表 的主关键字。例如:图2 _ 4 事实表中所示的“产品”关键字总是匹配产品维度 表的一个特定“产品”关键字。如果事实表中的所有关键字都能分别与对应维 度表中的主关键字正确匹配,就可以说满足引用完整性的要求。事实表要通过 与之相连的维度表进行存取。事实表本身通常也有由外关键字子集组成的自己 的主关键字,这个关键字通常称作复合或者连接关键字。维度模型中每个事实 表都有一个复合关键字,反过来,具有一个复合关键字的表也是一个事实表。 换句话说,在维度模型中每个表示多对多关系的表都是事实表,而所有其他的 表是维度表“。 日期关键字( f k ) 产品关键字( f k ) 商场关键字( v k ) 销售鼍 销售额 图2 4 不例事实表 普遍情况下,只需要事实表复合关键字组成部分的一个子集,就可以确保 行具有惟一性。通常大约有一半的维度相互之间存在丰富的多对多关系,并且 能够对每行进行惟一标定。一旦将子集确定下来,维度就可以在事实表行主关 键字的上下文中取得单一值。在大多数情况下,在事实表中引入一个惟一的 r o w i d 关键字作为主关键字并无优点而言。这样做只能使事实表更大,而建 立在该人为给定的r o w i d 主关键字之上的任何索引,价值都不大。当然,这 样的关键字可能用来调剂数据库管理系统,特别是存在将从业务角度看是合法 的多个相同的记录加载到事实表这样的需要时,更是如此“。 2 1 3 维度表 维度表是进入事实表的入口。丰富的维度属性给出了丰富的分析切割能力。 第9 页 北京邮电大学硕士研究生学位论文 维度给用户提供了使用数据仓库的接口。维度表属性在数据仓库中担任重要角 色。由于它们实际上是所有令人感兴趣的约束条件与报表标签的来源,因此成 为使数据仓库变得易学易用的关键。在许多方面,数据仓库不过是维度属性的 体现而已。数据仓库的能力直接与维度属性的质量和深度成正比。在提供详细 的业务用语属性方面以及保证其质量方面所花的时间越多,数据仓库建设的就 越好,最好的属性是文本和离散的1 。有时候在设计数据仓库时并不能确定, 从数据生产源析取一个数字型数据字段时,若字段是一个含有许多的取值并参 与运算的度量值则作为事实看待,若一个变化不多并参与作为约束条件的离散 取值的描述则通常作为维属性看待。维表中的维属性应该具体明确,体现出层 次划分,能够成为分析型查询的约束条件,这是数据仓库与操作型应用在数据 模型设计上的一个不同点”“。如图2 5 所示为维度表的示例。维度表的规范化 处理一般称为雪花处理。这种处理将冗余属性从平面的退化维度表中去掉,放 到另一个规范化的维度表中,该模式被完全雪花处理后就会形成一个完全的 3 n f 实体关系图。雪花模型的介绍已经在2 1 1 章节中介绍,在此不再赘述。 产晶维度袭 _ _ _ - - _ _ _ - _ _ - _ _ - _ _ _ 。_ 。_ 。- - _ - 。_ _ 。- _ 一 产品关键字( p k ) 产品描述 s k u 编号( 自然关键字) 商标描述 分类描述 包装尺寸 图2 5 不例维度表 维表描述的是事物的属性,随事物的发展变化,其属性也发生变化,因此 维表的内容也将变化“。为处理维度表的变化,须对维度表属性本身的特征进 行分析,然后决定采取何种处理方法。下面讨论三种维度表更新的情况。 ( 1 ) 改正错误”1 当出现简单的拼写错误等与源系统中错误相关的情况时,不需要保留源系 统中的旧数值也不需要在数据仓库中保存修改情况,直接用新的值覆盖维度表 中的旧数值即可,此修改操作不涉及对维度表的其他修改,维度表中的键或任 何其他键值均不受影响,因此这种操作是最容易实施的。 ( 2 ) 保存历史数据”1 当出现事物的发展变化时,如住址的变迁、婚姻状态的变化。此类情况通 第l o 页 北京邮电大学硕士研究生学位论文 常与源系统中的修改相关,需要在数据仓库中保存历史数据。因为此类修改会 引起数据仓库中的历史数据分区,因此对同一属性的每一个修改都要作保留。 此类修改通常的方法是:首先在维度表中增加一个有效的时间字段,对维度表 中原有的记录不作修改,在维度表中增加一条新的记录,该记录保存修改后的 数值,并有一个新的替代键,而原有记录的键不受影响。 ( 3 ) 暂时的修改”1 当遇到与源系统的临时修改相关的情况,如计算跨越多个时间分段的订单 时,需要同时利用维度表中的新旧属性值来跟踪历史数据,此种情况仅利用保 存历史数据不足以解决,系统需提供前向和后向的跟踪能力。具体操作如下: 首先对受影响的属性,在维度表中加入字段x ,同时用受影响字段y 的值赋值 给字段x ,然后将新的值赋值给字段y ,加入一个与字段y 相关的有效日期。 这样,记录的键不会受到影响,也不需要增加新的维段表记录,同时现有的查 询也可以无缝的转换到原字段y 的值,但所有使用到字段x 值得查询需要做相 应的修改。 在以上三种修改方式中多数维度表的修改都属于改正错误或者保存历史数 据,其中改正错误最为常见,而暂时的修改采用跟踪的方式用于解决事实表中 记录跨越不同时间段的维度表变更情况。 2 1 4粒度 数据仓库几乎总是要求在每个维度可能得到的最低粒度上对数据进行表 示,并不是因为查询想看到每个低层面的数据,而是因为查询希望以很精确的 方式对细节知识进行抽取”。选择合适的粒度级别是体系结构设计环境成功的 关键。 一旦事实表粒度建立,应该将事实标识为与粒度定义保持一致。确定合适 的粒度级别的起点,粗略估算数据仓库中将来的数据行数和所需直接存取存储 设备数。毫无疑问,即使在最好的情况下也仅能做一下估计。但在建立数据仓 库之初,所需的只是一个数量级上的估计。确定数据仓库中将要创建的所有表。 然后,估计每张表中行的大小。确切大小难以知道,估算下界和上界数值即可。 完成一些简单分析估算之后,下一步应精确地确定粒度的级别。在很低的细节 级别上建立轻度汇总的数据级没有意义,因为需要太多的资源来处理数据。而 在太高的细节级别上建立轻度汇总的数据级,则意味着许多分析必须在真实档 案级别上进行。因此确定轻度汇总的粒度级别首先应进行有根据的猜测,然后 根据一定数量的反复分析来改进这个猜测,直到粒度的设定符合数据仓库系统 第1 i 页 北京邮电大学硕上研究生学位论文 的实际需要嘲。如图2 - 6 所示为银行数据仓库系统的粒度示例: 每日数据 帐户 交易日期 数额 存取款 银行数据仓库系统的四个数据层次 月汇总 帐户 月份 交易数 存款 取款 期初结余 期末结余 季度汇总 帐户 月份 交易数 存款 取款 期初结余 期末结余 年汇总 帐户 年份 交易数 存款 取款 期初结余 期末结余 图2 - 6 银行数据仓厍粒厦不例图 2 1 5 一致性维度 在一个步骤中建立数据仓库太令人望而生畏,将它分成孤立的片段进行建 造又将丢弃一致性的特点。在数据仓库的维度建模中星型模型只以单一事实表 为核心,而雪花模型增加了建设数据仓库的复杂程度,因此需要一种在体系结 构上可以按增量方式建造数据仓库的方法,r a l p hk i m b a l l 提倡的数据仓库总线 结构是一种较为有效的模型构建方法。 一致性维度是数据仓库总线架构的基础。一致性维度是统一的,或者是具 有最佳粒度性与细节性的维度在严格数学意义上的子集。一致性维度具有一致 的维度关键字、一致的属性列名字、一致的属性定义以及一致的属性值。l i | j 。 如果属性标签的标记不同或者包含不同的值,维表则不是一致的。一致的维度 有几种不同的样式。在最基本的层次上,一致的维度意味着与同它们相连接的 每种可能的事实表具有完全相同的内容。实际上,一致的维度在数据库范围内 可能是相同的物理表,而基于对配有多种数据库平台的数据仓库技术环境的典 型复杂性考虑,维度更有可能同时在每个数据中心都存在拷贝。在其中任何一 种情况下,两个数据中心的日期维度都将具有相同的行、相同的关键字值、相 同的属性标签、相同的属性定义与相同的属性值。同样,也存在一致的数据内 容、数据解释与用户展示。如图2 7 所示为一致性维度的示例图。 第1 2 页 北京邮电大学硕士研究生学位论文 产品键 客户键 销售代表键 时日j 键 定单总额 费用 利润 产品键 诵 客户键 销售代表键 日期键 产品键 客户键 销售代表键 时问键 发货单数 订单数 出货日期 到货日期 图2 - 7 一致性维度的不例图 总之,一致性维度支持增量的开发,提供更为简单和低成本的维护,大大 减少抽取和装载的复杂度,提供跨多个数据集市的查询及回答各种业务的问题 支持,支持分布和集中式的体系结构,为数据仓库总线模型的构建提供了技术 支持。 2 2 面向对象数据库 2 2 1 面向对象的数据模型 数据模型是现实世界的对象或实体,以及对象的约束和对象间联系的逻辑 组织。使用了面向对象概念的数据模型称为面向对象的数据模型。该模型在 吸收以前各种概念模型优点的基础上借鉴面向对象的设计方法而建立,在复杂 数据关系领域具有极强的表达能力1 ”。 数据模型的好坏直接影响数据库的性能,数据模型的设计方法决定着数据 库的设计方法。传统的数据模型主要有网状数据模型、层次数据模型和关系数 据模型。传统数据模型是文件系统中所用数据模型的继承和发展。传统数据模 型是面向记录的,支持平面的数据类型和相应的数据操作。现实世界中的许多 结构复杂的信息需要被分割为较小的、平面的数据单元,才能利用传统数据模 型进行描述并存储到数据库中。这样,不但增加了描述客观事物的难度,而且 降低了信息处理的效率,还容易在信息分割的过程中丢失语义。传统数据模型 第1 3 页 北京邮电大学硕上研究生学位论文 只支持简单的数据类型和数据操作,不支持用户自定义数据类型和数据操作, 语义缺乏,不利于对客观世界的描述,很难满足应用的需要。传统数据模型是 面向数值的,不能建立实体标识的概念,因此不能区分客观世界中两个属性相 同的不同实体”1 。 面向对象的数据模型是一种比传统数据模型更为优越的模型,它由数据模 式,建立在模式上的操作以及建立在模式上的约束构成“,具有以下的优点: 1 、面向对象数据模型是一种层次式的结构模型,它以类为基本单元以继承与组 合为结构方式所组成的图结构型式,这种结构具有丰富的语义,能表达客观世 界复杂的结构形式。2 、面向对象数据模型是一种将数据与操作封装于体的结 构方式,从而使面向对象数据模型中的类成为具有独立运作能力的实体,它弥 补了传统数据模型中仅有单一数据集的不足。3 、面向对象数据模型具有构造多 种复杂抽象数据类型的能力,用构造类的方法构造数据类型,从而可以构成多 种复杂的数据类型即抽象数据类型。如可以用类的方法构造元组、数组、队列、 包以及集合等,也可以用类的方法构造向量空间等多种数据类型从而使数据类 型大为扩充“。 2 2 2 面向对象数据库关键技术 面向对象数据库是其行为和状态以及关系都是根据面向对象数据模型定义 的对象的汇集。面向对象数据库系统是支持定义和操作面向对象数据模型的数 据库系统“。它是一个面向对象的系统,与面向对象程序设计语言一致,与传 统数据库相比,以面向对象数据模型为核心的面向对象数据库具有对象、对象 类、继承、持久性、对象标识、并发控制、阻抗失配等基本特征。 ( 1 ) 面向对象数据库的安全性。关系模型的基本存取单位是关系表,而面 向对象数据模型中的基本存取单位是对象,由于对象有其惟一的标识符,因此 它在数据库中具有惟一性与独立性,此特性使得安全模型中的客体变得多而复 杂。面向对象数据模型由类层次结构组成,在其中超类与子类的紧密关系,使 得安全模型中的客体间的权限关系变得复杂“。关系模型中的关系仅由数据属 性组成,而在面向对象模型中对象或类是由属性与方法封装而成,因此在安全 模型中不仅要考虑数据的权限还要考虑方法的权限。 ( 2 ) 面向对象数据库的完整性。面向对象数据库的完整性由实例惟一性规 则、继承包含完整性规则、实例引用完整性规则以及用户定义完整性规则组成 l 1 3 。实例惟一性规则表示类中实例是惟一的,而且具有惟一的标识符。继承包 含完整性规则是指子类实例必包含于超类中,此规则反映了继承的包含性语义。 第1 4 页 北京邮电大学硕士研究生学位论文 实例引用完整性规则是指实例属性的定义域为类时,则其属性值均与类中实例 建立引用关联。用户定义完整性规则是针对具体应用环境由用户设置的规则, 它反映了应用中数据间的语法、语义要求。 ( 3 ) 面向对象事务处理。面向对象事务处理是建立在传统事务处理基础上 的,但由于面向对象数据库的特殊性,需对事务处理做某些调整。在面向对象 数据库中封锁的基本粒度是类与对象,而不是关系表、元组等“。在对类的封 锁中应同时考虑超类、子类以及组合类的分别处理。对于存在的长事务,应根 据具体情况考虑采用副本方式、组事务方式、修改通知或使用软锁的方法进行 处理。 2 2 3 面向对象技术在数据库中的实现 面向对象技术借助对象、封装和继承机制可以实现对复杂对象和复杂数据 模型的支持,将面向对象技术应用于数据库是解决当今许多数据库应用中遇到 问题的一种方法,当前多数数据库生产商都在研发如何将面向对象技术应用到 关系数据库中。将面向对象技术应用到关系数据库中可以有两种方式: 一种方式是把面向对象技术中的对象作为关系数据库系统中的一种新的数 据模型。关系表中的属性值包含对象指针,对象数据的操作在关系数据库之外 进行。把面向对象数据模型和关系数据模型结合起来,对关系数据库管理系统 进行扩充,但对象查询功能受到一定的限制“。 另一种方式是把面向对象接口添加在关系数据库中,在关系数据库系统中 增加一个对象与关系的转换器,将上层的面向对象模式转化为关系存储模式, 存放到关系数据库中。这样,在面向对象的数据库中关系存储模型位于底层, 数据库用户可以利用标准的面向对象数据库语言进行查询处理,用户输入的面 向对象数据库语言被转换成关系数据库语言,从而对底层的关系存储模式进行 查询等处理,同时将操作结果按照对象方式返回给用户。这种实现方式使得数 据库管理系统在实现关系模型和面向对象模型之间的模型转换时需要一定的开 销,执行效率比直接面向对象数据库要低一些,但这种扩充方式实现比较简单。 面向对象技术通过映射接口和关系数据库相结合,面向对象数据库强调的 是对象的属性、方法和对象间的关系,设计这种类型的数据库需要理解对象到 关系数据库表的映射方法。这种映射方法通过将对象类生成为s q l 语言中的数 据定义语言来将对象转换成一个概念层的数据模型。 第1 5 页 北京邮电大学硕七研究生学位论文 2 2 4 面向对象应用到敷据库中的优势 ( 1 ) 数据库结构清晰。便于实现应用模块对象与数据库对象的完全映射, 数据库逻辑模型可以自然且直接地模拟现实世界的实体关系。银行内部稽核人 员所处的当前物理世界、系统开发者所抽象的系统外部功能,与支持系统功能 的内部数据库一一对应,所以用户、开发者和数据库维护人员可以用致的语 言进行沟通。特别是对多数不了解银行稽核业务的程序开发人员来说,这种将 应用对象与相应的数据对象封装在对象统一体中的设计方法,大大减轻程序实 现的难度。 ( 2 ) 数据库对象具有独立性,便于维护。除了数据库表与应用模块对象一 一对应外,设计得数据库结构基本上是由父表和子表的对应类构成的树型层次 结构,表的封装类之间很少有继承以外的复杂关系,是一个符合局部化原则的 结构,从而使数据库表数据破坏的影响控制在局部范围且便于修复,给银行稽 核系统运行后的数据库日常维护工作带来便利。 ( 3 ) 需求变更时代码与数据模型重用率高,修改少。在映射应用对象时, 除关系映射规范化后可能出现一对多的表映射外,大多数应用对象与表对象是 一一对应的。把规范化处理后的、由一个应用对象映射出来的多个表看成一个 数据库对象。因此当部分应用需求变更时,系统修改可以不涉及需求不变更的 部分,变更部分的修改可以基本上只限于追加或删除程序模块或追加新表,而 基本上不必修改原有程序代码或原有表的定义,从而大大减少了工作量,降低 了工作难度。 2 3 本章小结 本章首先介绍了r a l p hk i m b a l l 提倡的基于数据仓库总线模型的维度建模 理论。主要涉及星型模型和雪花模型的概念,以及事实表、维度表、粒度定义 的相关知识,以及作为数据仓库总线模型理论基础的一致性维度。其次,介绍 了面向对象数据库的相关知识,包括面向对象的数据模型、面向对象应用于数 据库的关键技术、实现方法以及在数据库应用中的优势。 第1 6 页 北京邮电大学硕上研究生学位论文 第三章面向对象的数据仓库设计 在数据仓库建设中,用户的商业需求是最重要的驱动力。国外的数据仓库 建设和利用水平较早,数据仓库系统的分析和设计模型也较为完善和专业,但 在国内的银行系统中,几乎无法为这些数据模型提供完整的数据,目前看到的 一些解决方案是在国内银行数据与国外数据模型之间加入的一个数据转换系 统,这种方式取得了一定的效果,也付出了巨大的代价。基于国内某商业银行 的业务需求和数据提供的实际情况,并参照国外的数据仓库建设方法,本文提 出了一种基于面向对象设计思想的低成本、面向部门级,短周期的数据仓库设 计方法。 该方法涉及数据获取部分、数据存储部分和信息展现部分的设计。数据获 取部分采用手工编程的方式实现e t l 功能,数据存储部分采用面向同一部门相 似主题的数据仓库总线模型的维度建模方式,并将数据仓库总线模型转换为面 向对象的数据模型,以便于信息传递部分的设计和实现。 3 1 面向对象的数据仓库数据模型设计 3 1 1面向对象的数据仓库数据模型总体设计 数据仓库的设计采用基于r a l p hk i m b a u 的维度建模方法。首先进行需求调 研,然后是模型定义和分析,模型中确定数据仓库的主题域和主题域之间的关 系,并对每个主题域和主题域间的关系进行较为明确的描述,本文主要基于星 型模型进行模型设计。由于目前数据仓库一般都建立在关系数据库之上,因此, 数据仓库设计过程中所采用的逻辑模型为关系模式。 在完成数据仓库数据模型设计后,采用面向对象的设计方法对主题域进行 分析并将数据仓库的数据模型转换成面向对象的数据模型。如图3 - l 所示: 第1 7 页 北京邮电大学硕上研究生学位论文 图3 - 1 面向对象的数据仓库对象模型包 面向对象的数据仓库对象模型包是数据仓库星型模型的对象化描述。此模 型包由事实类包、维度类包、关系类包和星型模型包四部分组成。事实类包对 应于星型模型中的事实表,是对事实表的对象化描述,通过事实类之间的泛化 关系解决满足不同业务需求事实类的复用性以及对象和关系数据库之间转换时 遇到的“阻抗失谐”问题。维度类包对应于星型模型中的维度表,是对维度表 的对象化描述。关系类包由描述星型模型中维度表与事实表连接关系的类组成, 并提供在单一维度或多维度特定条件下对核心事实表数据获取的方法。星型模 型包提供对整个数据仓库对象模型包内部其它包的管理功能。通过对星型模型 包的访问可以获取此数据仓库星型模型的事实类、维度类以及事实与维度的关 系信息,基于星型模型的通用方法可以实现对星型模型中事实表、维度表、事 实与维度关联数据的访问,即此模

温馨提示

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

评论

0/150

提交评论