封装是一种如何将系统的功能进行划分的设计理念。你并不知道某个事物是如何实现的但是你可以去去使用它。这意味着你可能将你所想到的变为现实,并且可以在稍后修改它而不会影响到系统的其它组件。正如人们经常说的那样封装是一个黑盒子,你可以定义某件事怎样去做,但不用告知全世界你是怎么做的。举个例子,比如你的银行。银行是怎样保存你的帐户信息的?大型机、小型机,还是PC机?使用什么数据库?哪种操作系统?这都不会引起你的注意,因为银行已经将它们封装在他们所提供的帐号服务上了。你所要做的就是告诉营业员你想执行哪种交易。
在这章中我将会描述“数据库封装层”的理念,浏览与数据库封装有关的“敏捷数据库设计的角色”,不同的封装技术,和数据库封装的“实现策略”。我们先假定你是使用关系型数据库。
内容列表:
- 数据封装层
- 敏捷数据库设计的角色
- 封装层架构
- 实现策略
- 列集
- 错误处理
- 所涉及和推荐的读物
1、数据封装层。
数据库封装层使用业务代码隐藏你的数据库细节的实现,包括其物理模式。提供给你的业务对象持久层服务--可以通过数据源从中读取数据,写入数据,删除数据。理想的业务对象是不知道数据是如何被持久化的。数据封装层没有魔法也不是学院派的理论,数据封装层是在无论是大型系统还是小型系统,单一的系统还是复合性系统的一部分。数据封装层是每一个敏捷软件的开发者所应知道并准备使用的一项很重要的技术。
一个有效的数据封装层有如下好处:
- 降低你的数据实体和对象实体之间的耦合性,增加你扩展其中任一一个的能力。
- 在一个地方实现你所有的数据关系代码。
- 简化程序员的工作。
- 使程序员关注业务问题和敏捷数据库设计。
- 给你一个公共的地方实现数据导向业务规则。
- 利用数据细节扩展软件性能。
几个潜在的数据封存装层的不利因素:
- 需要投资
- 经常需要适当的清除映射。
- 太多的琐碎的数据访问控制。
2、敏捷DBA的角色
图1:敏捷DBA的角色
3、封装层架构