一、数据仓库设计的特点
1、“数据驱动” 的设计
数据仓库是从已有数据出发的设计方法,即从数据源抽取数据,经转换形成面向主题,支持决策的数据集合。
以全面了解并利用现有数据为出发点。在进行设计之前就要清楚地知道数据源系统中已经有什么数据,它们与数据仓库设计的对应关系等。尽可能地利用已有的数据和编码等,而不可能 “无中生有”地产生数据和编码。
2、“分析驱动” 的设计
是从决策分析需求出发的设计。从已有数据源出发,按照决策分析主题对数据源中数据及其之间的联系重新考察,并重新组织形成数据仓库分析需要的主题数据。
3、“需求模糊” 的设计
数据仓库设计的数据分析处理需求更加灵活,也没有固定的模式,有时用户自己对所要进行的分析处理也不能事先确定。数据仓库的分析需求在设计初期往往是模糊或不明确的,通常只有在数据仓库设计过程中,或后来数据仓库的决策支持过程中逐渐明确。
4、“螺旋周期” 的设计
数据仓库系统的开发是一个动态反馈启发式的循环过程,也称为螺旋上升的周期性开发过程,即 “螺旋周期”。数据仓库的数据内容、结构、粒度、分割以及其它物理设计,需要根据用户使用数据仓库所反馈的意见和建议进行调整,以提高系统的效率和性能;用户在使用数据仓库进行决策过程中,不断提出新的决策分析需求,增加新的主题,使数据仓库进入新一轮的设计周期,数据仓库进一步完善,为用户提供更准确、更有效的决策信息。
二、数据仓库系统开发过程
数据仓库系统的开发过程的5个时期:规划时期、设计时期(需求分析、概念设计、逻辑设计、物理设计)、实施时期、开发时期和应用时期。
数据仓库系统的开发过程的3个阶段:将规划和设计时期称为 “规划设计阶段”,实施和开发时期称为 “实施开发阶段”,应用时期称为 “使用维护阶段”。
数据仓库设计过程的 “螺旋周期” 性:
通过这5个阶段的数据仓库开发应用的过程,实现了前期规定的数据仓库主题建设和应用开发任务,为决策者提供了基本的决策分析工具,同时也积累了数据仓库开发和应用的经验,可以转向其它主题的数据仓库开发应用;
通过对前期数据仓库的开发和应用经验积累,又对前期建设的数据仓库提出修改建议或者新的决策需求,使其数据仓库得到进一步的改进和完善,以便为决策者提供更加丰富、准确和有用的决策信息。
1、规划时期
对建立数据仓库系统进行必要性、可行性、甚至不可行性分析。对不可行的项目提出取消数据仓库建设的建议,对可行的数据仓库项目提出全面的开发规划。
2、设计时期
决策需求调查、数据仓库环境分析,数据仓库开发需求确定;各种模型的建立,包括多维数据模型、星型模型、雪花模型和物理模型等,特别是数据源的属性列与数据仓库目标列的映射关系等,并根据选择的数据仓库管理系统,完成相应的物理设计。
3、实施时期
根据逻辑阶段设计结果创建一个数据仓库文件,及其有关的事实表和维度表;为数据仓库中的每一个目标列确认数据抽取、转换与加载的规则,开发或者购买用于数据抽取、数据转换以及数据合并的中间件;将数据从现有系统(数据源)中装载到数据仓库之中并对数据仓库进行测试。
4、开发时期
开发一系列对数据仓库进行查询、分析和挖掘的决策支持工具,建立基于数据仓库的决策支持应用平台。
5、应用时期
对数据仓库的用户进行培训、指导;将数据仓库投入实际应用,充分发挥数据仓库在决策中支持效果;在应用中不断改进和维护数据仓库;对数据仓库进行评价,提出新的决策需求,为数据仓库下一循环的设计开发提供依据。
三、数据仓库系统的规划
规划的必要性:数据仓库系统的规划工作对一个企业或部门的发展都可能产生深远的影响。
实施规划工作:由系统的建设单位(投资方)和用户合作完成,可以聘请数据仓库系统设计开发方面的专家来指导建设单位完成;将整个规划任务委托在数据仓库系统设计和开发方面有资质的咨询公司负责完成(政府部门和事业单位常用这种方式),但投资人和用户也必须参与其中。
规划的任务:建立数据仓库系统的必要性、可行性、甚至不可行性分析。对可行的系统确定建立数据仓库系统的总体目标,包括可靠性和安全性等方面的设想,并制定数据仓库设计与实施计划。
1、确定开发目标和实现范围
(1)数据仓库使用部门、使用人员和使用目的?
(2)在为用户提供决策支持时,决策主题需要哪些数据源以及需要什么工具来访问?
(3)数据仓库项目设计开发的起止时间,甚至资金预算。
2、确定数据仓库系统体系结构
通常有虚拟数据仓库、单纯数据仓库、单纯数据集市、数据仓库和数据集市等4种体系结构可供选择。其实现的难易程度、实现所需的时间和费用各不相同,且决策支持的方式也不相同。
(1)虚拟数据仓库:决策支持功能直接在事务处理数据库上实现,这就是 “2合1” 系统。
(2)单纯数据仓库:从数据源中抽取、转换和加载到一个统一的数据仓库之中,各部门的查询和分析功能都从这个统一的数据仓库中进行。适合管理部门较多,用户较少的情况。
(3)单纯数据集市:一个部门使用的数据仓库,因为企业中的每个职能部门都有自己的特殊管理决策需要,而统一的数据仓库可能无法同时满足这些部门的特殊要求。适合企业个别部门对数据仓库的应用感兴趣,其它部门十分冷漠之。
(4)完整数据仓库:数据仓库从企业各种数据源抽取数据,部门数据集市从企业数据仓库中获取数据。适合各部门都对数据仓库应用感兴趣的企业。
3、确定数据仓库系统应用结构
- 用户角度:系统的功能大致可以分为前端显示和后端处理两部分。
- 软件开发人员的角度:系统功能应该将其分为数据管理、事务控制、应用服务和用户界面(表达逻辑)等四大部分。
- 系统应用结构:系统四大功能在客户端和服务器之间进行划分的一种方式,每一种划分就称为一种应用结构(Application architecture)。
(1)集中结构
一个主机带多个终端的多用户数据仓库系统应用结构。系统的数据源、ETL、数据仓库、数据集市、DWMS、应用工具及其客户端程序全部在主机上运行,终端仅具备基本的输入和输出功能。
(2)两层结构
① 客户机/服务器结构(Client/Server),简称 C/S 结构。数据仓库系统的数据源、ETL、数据仓库、数据集市、DWMS 等集中在主机上运行,客户机负责应用工具、客户端程序以及数据的输入输出功能。
② 浏览器/服务器结构(Browser/Server),简称 B/S 结构。数据源、ETL、数据仓库、数据集市、DWMS 以及应用工具等集中在服务上运行,客户机通过 URL(Uniform Resource Locator)向Web 服务器提出服务请求,Web 服务器将服务内容传送给客户机,并显示在浏览器上。
(3)三层结构
在两层结构基础增加应用服务器一层。鉴于三层 C/S 结构仍然存在两层 C/S 结构的缺点,实际应用中主要采用三层 B/S 结构。
三层B/S结构把数据仓库系统的四大功能分为三个层次。
① 表示层:客户机的浏览器负责表达逻辑并与用户交互(客户机)
② 功能层:Web 服务器及其应用扩展,实现应用服务(称为应用层)
③ 数据层: 数据仓库服务器 负责数据管理和事务控制
(4)多层结构
① 多层结构是在三层结构基础之上发展起来的数据仓库系统应用结构。在这种结构中,一般是根据系统应用规模,将功能层分为两层或者更多层。
② 它将功能层 Web 服务器中的应用服务功能分离出来放在不同的服务器上运行,可以使 Web 服务器专注于响应用户的 Web 服务请求,而应用服务器专注于应用服务功能的实现,以增加系统的灵活性和适应性。
4、确定数据仓库项目预算
数据仓库的设计开发具有需求模糊,螺旋周期的特点,但可以根据决策使用部门、使用人数、基础软件和硬件平台、以及数据仓库设计开发等所需费用,对数据仓库系统开发方案预算进行粗略的宏观估计。
5、编写可行性分析报告和规划纲要
在完成数据仓库规划后,应写出详尽的可行性分析报告,编制数据仓库系统规划纲要,内容包括数据来源、数据范围、人力资源、设备资源、软件及支持工具资源、开发成本估算、开发进度计划等。
6、评审可行性分析报告和规划纲要
由决策部门的领导组织召开有数据仓库专家、决策部门负责人、决策分析人员以及其他行政领导参加的评审会,对其进行评价。
如果评审认定该系统规划可行,应立即成立由企业主要领导负责的数据仓库设计开发领导小组,以便协调各个部门在数据仓库系统建设中的关系,保证系统开发所需的人力、物力和财力,保证设计开发工作的顺利进行。如果需要的话,应同时对外发表项目招标公告。