论坛首页 Java企业应用论坛

企业架构之数据架构

浏览 3447 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (11)
作者 正文
   发表时间:2012-08-10  

   有些人可能会奇怪,企业架构跟数据架构有什么关系啊。其实数据才是企业架构最有价值实在成果。IT系统的价值并不是什么先进技术和强大的硬件。而是存储和处理数据、信息。数据是对客观事物的真实表现,企业业务过程中的所以对象的状况都可以用数据记录下。数据经过加工处理之后,才能被企业运用和提供给企业管理者进行决策。因此在考虑企业IT架构之前应该先考虑数据架构。数据架构主要解决两个问题:第一IT系统需要什么样的数据,第二如何存储这些数据。

     数据架构也可以看成是概念数据模型、企业数据模型等。它们都是指定义企业的数据项以及它们的属性和关系。
    企业数据架构可以帮助企业解决信息孤岛,建立一个共享,通用、一致的企业数据基础平台。
   数据架构的内容包括三个部分
  • 数据项:通常可看做为领域模型中的领域对象。是系统必须存储的数据(持久类)
  • 数据属性:定义数据项的特征
  • 数据关系:描述数据项之间的关系

如何进行设计数据架构呢?
我的思路:从企业的业务流程中找出领域对象,然后找出领域对象的属性,并且分析每个属性的类型及其领域对象之间的关系,接着建立出数据项与业务功能的关系。

  因此数据架构的设计将源于业务架构中的组件和流程的定义。一个好的数据架构是开发数据库的基础,能够支持业务的长远发展。

数据架构的表示方式:
1. 概念数据模型
      概念数据模型是对现实世界的高层次的抽象,是IT系统数据建模的一种方法。比如ER图就是数据概念建模最常见的方式。它主要描述企业数据实体、属性和关系。主要属性:
  • 实体(Entiy): 企业领域对象
  • 属性(Attribute): 领域对象的属性
  • 联系(RelationShip):两个领域对象之间的关系(1:1, 1:n 或者 m:n)

例如:
   在设计学校的管理系统的时候:领域对象就会有:老师,学生
那么老师:姓名,年龄,职称,电话,地址属性
    学生: 学号,姓名,专业,年龄
老师和学生的关系是M:N的关系

2.数据项和应用系统的关系
数据项最常用的四个操作:Add, Update, Search, Delete。
然后根据数据项的所属部门和职位及其业务定义出部门和职位的具体操作。比如:上面的例子老师信息的add,update,search,delete并不是每个领域对象都能去操作。并且相同的领域的对象部门或者职位不同也操作不同。

   发表时间:2012-08-13  
企业架构,不仅仅是你说的数据模型的建立,即领域模型的设计,逻辑架构。
考虑到用户的成本,软件预估的形态等等,还应该考虑物理架构。
从软件可行性分析开始,需要考虑软件设计中的管理成本,及应用相应的管理手段,日后维护的成本等等。这些都将是设计一个软件时所需要考虑的问题。
从楼主所说的领域模型设计,估计也只是个初级阶段,随着应用的更新,数据模型更新也是常态。所以在做领域设计时,也不要过度设计。
0 请登录后投票
   发表时间:2012-08-13  
谢谢:lvjun106.
确实我写这篇的时候 忽略了用户的成本,软件预估。并且数据模型和领域模型的建立是随着企业的发展在不断的更新的。不过我有点不明白领域设计的过度设计主要表现在哪里??我认为领域模式的设计应该具有前瞻性。
0 请登录后投票
   发表时间:2012-08-13  
关于“从软件可行性分析开始,需要考虑软件设计中的管理成本,及应用相应的管理手段,日后维护的成本等等。这些都将是设计一个软件时所需要考虑的问题。”我感觉是比较难进行量化的问题。因此这方面希望给点你的见解。谢谢
0 请登录后投票
   发表时间:2012-08-13   最后修改:2012-08-13
jiangduxi 写道
谢谢:lvjun106.
确实我写这篇的时候 忽略了用户的成本,软件预估。并且数据模型和领域模型的建立是随着企业的发展在不断的更新的。不过我有点不明白领域设计的过度设计主要表现在哪里??我认为领域模式的设计应该具有前瞻性。


一般在领域模型设计中,架构师这一角色如果对行业有较多经验,可以在现有业务形态上进行前瞻性设计,且会考虑日后的业务扩张,系统性能。但是对现在行业经验不足的架构人员或系统分析人员来说,对现有业务进行数据分析,数据抽象是合理的,再说现在众多项目都是互联网项目,提倡敏捷开发,不提倡过度设计。
0 请登录后投票
   发表时间:2012-08-14  
thank you! lvjun106
  你的认为是如果是经验丰富的架构师,就可以进行业务形态上的前瞻设计。如果缺乏的话就用所谓的敏捷,增量来达到摸着石头过河,最后达到最优的效果。其实现在大家都在谈敏捷,但是真正实施的下去的又有多少呢?
0 请登录后投票
   发表时间:2012-08-14  
jiangduxi 写道
thank you! lvjun106
  你的认为是如果是经验丰富的架构师,就可以进行业务形态上的前瞻设计。如果缺乏的话就用所谓的敏捷,增量来达到摸着石头过河,最后达到最优的效果。其实现在大家都在谈敏捷,但是真正实施的下去的又有多少呢?


其实不一定在一个公司内部整体实施,可以对一个团队的一个项目进行尝试,但是推敏捷还是需要项目组各个部门间的配合,需要业务部门,测试部门的配合。 对于敏捷的推广和学习,我分享一个活动给你,就是每年一度的敏捷中国大会(Agile China).在广州深圳都有,你可以去infoq网站上看看。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics