作为这个问题的必然结果,我想知道是否有很好的比较研究,我可以咨询并传递关于使用 RDMBS 进行连接优化与系统非规范化以便始终一次访问单个表的优势。
具体来说,我想了解以下信息:
- 性能或规范化与非规范化。
- 规范化与非规范化系统的可扩展性。
- 非规范化的可维护性问题。
- 非规范化的模型一致性问题。
有点历史,看看我要去哪里:我们的系统使用内部数据库抽象层,但它很旧,不能处理多个表。因此,所有复杂对象都必须在每个相关表上使用多个查询来实例化。现在,为了确保系统始终使用单个表,在整个表中都使用了大量的系统非规范化,有时会压平两到三层深度。至于 nn 关系,他们似乎已经通过精心设计他们的数据模型来解决它,以避免这种关系,并且总是退回到 1-n 或 n-1。
最终结果是一个错综复杂的系统,客户经常抱怨性能。在分析这样的瓶颈时,他们从不质疑系统所基于的这些基本前提,并且总是寻找其他解决方案。
我错过了什么 ?我认为整个想法是错误的,但不知何故缺乏无可辩驳的证据来证明(或反驳)它,这就是我求助于你们的集体智慧来指引我走向好的、被广泛接受的文学作品,这些文学作品可以说服我团队中的其他成员方法是错误的(让我相信我对一致的数据模型过于偏执和教条)。
我的下一步是建立自己的测试平台并收集结果,因为我讨厌重新发明轮子,我想知道这个主题已经有了什么。
---- 编辑注释:该系统最初是用平面文件构建的,没有数据库系统......只是后来它被移植到数据库,因为客户坚持使用 Oracle 的系统。他们没有重构,只是简单地为现有系统添加了对关系数据库的支持。平面文件支持后来被删除,但我们仍在等待重构以利用数据库。