CSDN博客

img MasterLRC

数据持久层(03)_持久层的需求

发表于2004/7/12 16:19:00  1127人阅读

持久层的需求

文中对持久层提出了28条要求,几乎包括了所有的数据库操作,列出主题如下:

  1. 多种持久机制。(文本文件、关系数据库、对象-关系数据库、层次数据库、网络数据库、对象数据库等),本文主要讨论关系数据库。
  2. 对持久机制进行完整的封装。不必写任何其它关于持久层的代码,中需要发送save,delete,retrieve消息给一个对象。
  3. 基于条件的我多对象操作。支持根据一定条件同时返回(删除)多个对象的情况。
  4. 基于关联的多对象操作。
  5. 支持事务。
  6. 扩展性。你可以增加新的类或者属性,并且能容易的变更持久机制。
  7. 对象标识符。支持主键
  8. 组合键
  9. 多键
    游标
  10. 评估结果集大小先确定有多少持久对象会被这个操作影响。
  11. 代理支持用一个标识代表一个对象,可减少开销。
  12. 记录支持返回记录而不是对象。
  13. 多种体系结构。
  14. 不同数据库版本和厂商
  15. 多连接
  16. 连接池
  17. 专用(native)和非专用驱动。如:ODBC、JDBC、第三方专用驱动等
  18. 语言绑定。
  19. 映射的灵活性。支持映射类层次结构有三种主要的方式。
  20. 生成数据库结构。。类似CASE工具
  21. 关系遍历。
  22. SQL查询。尽管在面向对象的代码中写SQL查询是对封装原则的公然背(这样会直接耦全应用程序与数据库结构),但是持久层还是要支持这种情况!(why? 性能!)
  23. 调用存储过程。虽然要避免使用难于移植的存储过程,但是偶尔还是要用到的。
  24. 缓冲区。
  25. 锁。可以指定使用悲观锁或者乐观锁
  26. 支持管理工具。运行于可被维护的元数据上。
  27. 运行时的配置。如:游标的大小、持久机制的名字/位置等。


总结:持久层应该使程序开发者不用关心它们的对象是如何存储的。另一方面:也允许DBA自由的修改数据库结构,而不用但心现有的B 程序引入bug。

0 0

相关博文

我的热门文章

img
取 消
img