`
- 浏览:
229672 次
- 性别:
- 来自:
广州
-
在企业级应用当中,数据是企业资源的重要组成部分。应用程序的开发也是围绕数据的组织和存储、数据的访问、数据的处理、数据的表示进行的。由于这几个方面为整个应用程序系统提供了服务(Service),因此我们可以把这几个方面统称为数据服务(不知道用这样的名词去概括是否恰当)。
我们从企业应用程序常用的三层或者多层结构可以看出,每一层都无法离开数据,每一层都拥有一个独有的关注点。正是由于数据在企业级应用程序中举足轻重的作
用,各种各样专注于数据服务的技术和工具层出不穷,像.NET世界中的Data Access Control,像J2EE世界中的EJB等等。 纵观数据服务的各个层面,数据的组织和存储自然是数据库的天职了;而数据的处理则是跟专门的业务逻辑紧密联系的,开发可重用的组件有非常大的难度,而且复用的范围会受制于行业之间的巨大差异性。那么,复用的范围就缩小到了数据的访问以及数据的表示方面,O/R Mapping(主要是J2EE方面)的框架满天飞以及Web Control(主要是.NET方面)开发如火如荼恰好说明了这一点。
偶对Web Control的开发知之甚少,对于O/R
Mapping也是略知一二(两边都不到岸,呵呵),本不该在此妄言什么。不过,结合以前以及现在项目的经验,对数据访问模式方面有了些思考,故记录于
此,以期有更多的反馈和指正。
我们先来看一个较为完整的团队的组成结构:Project Manager,System Architect,System
Analyst,Database Administrator,Database Designer, Tester,Advanced
Programmer,Programmer。对于以上的团队组成,我想对于有项目经验的朋友来说,一定不会陌生了,但是你或许会觉得有点迷惑,讲述数据访问模式方面的思考,为什么要先从团队结构入手呢?或许你还记得EJB核心技术所涉及的六种角色吧,毕竟技术的选择以及使用的情况都会直接影响到团队的组成。还记得在上个项目当中,我只是一个小小的程序员,由于公司在O/R Maping方面使用了Entity Bean并且在应用程序框架中实现了一个相当简陋的Data Accessor(说它简陋,是因为Data Accessor仅仅是对JDBC进行了很简单的封装,除了Connection不用再花心思之外,SQL照写不误),那么涉及到数据库的查询操作就用Data Accessor,其他需要修改数据表的操作则一律使用Entity Bean提供的方法,甚至一些复杂事务的处理亦是如此。在这样背景下,团队中仅由两个人身兼Database Administrator和Database Designer两职。然而事实上,他们手头上的工作仅限于Administration的工作——建立并维护用于开发的数据表,虽然人少,也能胜任。随着项目开发的深入,过度使用Entity Bean,过度依赖应用服务器而造成的性能问题逐渐显露。于是System Architect向Project Manager提出需要充分利用数据库服务器的能力。那么,如何去调整应用服务器和数据库服务器的负载比例呢?策略就是将复杂的事务处理装到存储过程中。好了,这下子DBA开始忙活了,两个人天天加班都没有办法跟上进度,于是除了我这个小小的程序员之外,还有很多同事也可以开始写存储过程了,一时间,团队中的Database Designer增加了许多许多,无法工作、难以维护的存储过程也相应出现了许多,毕竟我们并不是真正的Database Designer。讲述这个故事,无非是想强调数据访问模式本身的重要性。忽视了数据访问,对其各个方面考虑不够,将会对项目的开发造成极大的影响。 接下来,我们再来看看使用O/R Mapping框架的必要性。首先当然是降低了开发难度了,毕竟你可以在绝大部分时间里面逃避SQL带来的烦恼;接着就是更好的分工合作了,Database Designer可以专注于增加O/R Mapping框架的功能使其更加适合系统的要求。这些都是大的方面了,我们用放大镜看得仔细一些。O/R Mapping框架提供了对象与数据库表的映射。这样的映射关系并不是局限于表中的一行纪录对应一个对象,而有着更加广和深的内容:对象的标识,实现聚合关系,实现继承关系等。有了这样完整的映射关系,我们就不再需要面对艰深晦涩的SQL,而是通过操作对象的方式来操作数据库。对于这方面,我原本还想说一点东西,但是看了Teddy兄的post:O/R Mapping中对象关系映射解决方案汇总之后,我想我也没有必要再班门弄斧了。除了实现了完善的对象与关系映射之外,使用O/R Mapping框架还使得整个应用程序拥有统一的数据访问方式,事实上,统一与规范在企业级应用当中是相当重要的。
PS:在看《数据访问模式》一书的时候,想到了与数据访问有关的很多东西,有点支离破碎,希望各位多多批评了。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本书“数据结构与算法——面向对象的C++设计模式”是一本针对这一主题的经典教材,旨在帮助读者掌握如何使用面向对象的编程语言C++来设计高效的数据结构和实现优化的算法。 在C++中,面向对象编程(Object-Oriented...
总的来说,代理模式是设计模式中的重要一环,它能够帮助我们灵活地控制对象的访问,增加系统功能的扩展性和灵活性。通过代理,我们可以实现如缓存、安全控制、性能优化等多种功能,同时保持代码的简洁和清晰。在实际...
《数据结构与算法——C++版(第2版)》是一本深入探讨计算机科学核心领域的经典教材,专注于C++语言实现的数据结构和算法分析。在IT行业中,掌握数据结构和算法是提升编程能力、优化程序效率的关键。这本书的第二版...
在Android开发中,数据缓存是一项重要的技术,它能够提高应用程序的性能和用户体验。当用户访问数据时,如果数据已经被缓存,系统可以快速地从本地读取,避免了网络延迟或频繁数据库查询带来的影响。本示例"Android...
数据结构课程设计是计算机科学与技术专业学生必修的一门实践性课程,它结合理论知识,让学生...通过这个项目,学习者不仅可以巩固数据结构的基础知识,还能提升编程技能,理解软件工程中的模块化和文档编写的重要性。
### 机械行业数据安全解决方案——深圳安融 #### 行业背景及挑战 随着机械制造业在信息化建设领域的不断深入,信息生成、流转和传输的速度显著加快。然而,这也带来了日益严重的信息安全问题,特别是数据安全成为...
云端数据湖是指一种基于云平台的数据存储和管理方式,它允许企业以原始格式存储大量不同来源的数据,而无需预先定义数据结构或模式。 **优势:** 1. **所有数据集中一处:** - 数据湖提供了一个集中的存储位置,...
本次将聚焦于一种较为简单的模式——单例模式。 #### 单例模式概述 单例模式是一种创建型模式,它的核心在于确保某个类只有一个实例,并提供一个全局可访问的访问点。这种模式非常实用,尤其是在需要频繁地创建和...
《数据仓库工具箱——面向SQL Server 2005和Microsoft商业智能工具集》是一部深入探讨数据仓库构建和管理的专业著作。此书的核心是通过实际的示例项目,引导读者理解并掌握如何利用SQL Server 2005及微软的商业智能...
这种模式允许系统通过增加更多的副本节点来分散访问压力和提高系统的容错性。一致性哈希是实现复制伸缩的一种技术,它通过将数据分布在哈希空间的节点上,当系统规模发生变化时,只有部分数据需要迁移,以此来减少...
《设计模式——Java语言中的应用》是一本专为Java开发者深入理解面向对象设计而编写的经典书籍。设计模式是软件工程领域中经过实践验证的、解决常见问题的有效方案,它们代表了在特定上下文中,针对特定问题的最优...
- **加强患者教育**:提高患者对医疗数据共享重要性的认识,增强其参与意愿。 - **完善法律法规**:建立健全医疗数据共享相关的法律法规体系,为数据共享提供法律保障。 - **优化奖惩机制**:设计合理的激励和惩罚...
【能源行业数据安全整体解决方案——深圳安融】的概述 数据安全在当今信息化社会中扮演着至关重要的角色,尤其在能源行业,这个支撑国家经济命脉的领域。深圳安融作为一家专注于数据安全的整体解决方案提供商,致力...
在C#编程中,数据库操作是常见的任务,无论是开发桌面应用、Web应用还是移动应用,都需要与...在实际开发中,应根据项目需求选择合适的数据库模式,并合理设计数据同步和冲突处理方案,确保数据的一致性和完整性。
AMC队列是LabVIEW中实现并发和同步的重要工具,尤其适用于多线程或分布式系统中的数据通信。下面我们将深入探讨AMC数据交换的原理、应用以及如何在实际项目中利用AMC队列进行通信。 1. **AMC的基本概念** - AMC...
### Excel进阶——数据分析 #### 数据分析:解锁Excel的强大功能 数据分析是当今数据驱动社会中的核心技能之一,而Microsoft Excel作为一款广泛使用的电子表格软件,提供了丰富的数据分析工具,使其成为进行统计...
在"TaiyoSystem"中,如果业务逻辑需要在多种数据库间切换,桥接模式可以帮助将数据访问逻辑与具体的数据库实现解耦。 建造者模式(Builder)用于创建复杂对象,它将构造过程与表示分离,使得同样的构建过程可以创建...
**数据挖掘**(Data Mining)是一种从大量数据中提取有用信息的过程,通过运用统计学、机器学习以及数据库技术等多种方法来揭示数据中的模式、趋势及异常情况。它在商业智能、科学研究、市场分析等领域有着广泛的...
《数据重现》这本书深入浅出地讲解了文件系统原理,并且着重探讨了数据恢复这一重要主题。文件系统是操作系统管理磁盘存储的核心机制,它决定了数据如何被组织、存储和检索。了解文件系统的运作机制对于理解数据恢复...