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

持久层的需求

文中对持久层提出了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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值