数据分析系统的设计 一(100分)

  • 主题发起人 yanglibo
  • 开始时间
Y

yanglibo

Unregistered / Unconfirmed
GUEST, unregistred user!
统计分析系统设计​
在应用软件系统中,报表和图表能够对数据进行直观的现实,关系到项目开发的进度和效果。这是我在一个项目中的解决方案。
希望和大家讨论一下:
系统简介:统计分析系统是针对电力系统运行和管理开发的。同时兼顾到通用性和开放性。
一。系统数据分析。
纵观所有的报表系统,需要显示的数据基本上可以分为以下三类:
1、人工数据数据:这些数据是直接由用户输入的。如:电力系统每天的发电计划等等,出入库数据等等。
2、外部数据 :这部分数据是由其它系统产生,为报表系统基础数据。如电力系统中 scada采集的数据。TMS 采集的电量数据。
3、计算数据 :这部分数据是由1,2为基础的施加业务逻辑(运算公式)以后得到的结果。
在不同的报表系统中,1,2,3类数据所占的份额是不同的。如在我做的统计分析系统中,2和3的比重较大,而1输入数据比较少。
二。系统数据模型的建立。
采用oo的角度来看待应用系统中的关系数据模型,
数据表(Table)----代表一个类;
字段 (Field)----表示这个类的属性;
记录 (Record)---是这个类的实例。
如上面的分析,数据模型在横向(列)和纵向(记录)方向上都是可变的。一般情况下,字段的变化不如记录变化频繁但是即使是非常小的
改变(如;长度的增加减少)也会在系统的通用性的实现时带来麻烦。由于在大部分数据库服务系统,数据通常按时间一维增加的。
也就是平常说的流水账,在这种历史数据库中添加字段会带来更多的麻烦。这就需要在建立历史库时考虑好对象的粒度的大小。
如在我开发的系统中我是如下建立历史表的:

在电力系统统计分析系统中我采用如下结构组织数据:
项目描述表
T003_Class //用来定义数据模型中的对象。如:发电厂、供电公司、等等
T007_Property // 用来定义T003_Class中的类的属性

利用这两个表实现了对系统中的数据对象的通用的模型定义手段。
T006_Item //描述系统中的项目
{ T006_ItemID //项目的唯一标识
T006_ItemName //项目的名称
T006_ParnetID //父项目的标号
T003_ClassID //项目的类型 来源于T003_Class表
T007_ProperyID //项目的属性标识 来源于 T007_Property 表
T006_DataType //项目数据类型。如数值,字符串,图片等
}
项目数据表;
T015_NumberData //用来存储数值数据
{ T006_ItemID
DateTime
ItemValue
}

T014_StringData //用来存储字符串数据
{
T006_ItemID
DateTime
ItemValue
}
这种模型能够灵活的映射到几乎所有的数据应用中。
如,希望对发电厂进行统计和分析。
首先建立 在T003表中添加记录 发电厂
然后建立她的属性 在t007表中添加记录 总有功, 总无功,
机组1有功,计划检修,
临时检修,最大有功

最后在T006_Item中添加 XXX热电厂 ,让XXX热电厂的类型为发电厂,则自动在T006_Item
中添加xxx热电厂总有功,xxx热电厂总无功,xxx热电厂机组1有功............
于是在的历史表中可以存储以上的属性值了。

累了,休息一下
 
还 行....
 
越来越多的大虾出来讲课了,搬个椅子占个位,听听!
 
多人接受答案了。
 
顶部