除了“数据库独立性”之外,当今的大多数IT项目似乎都忽略了Oracle 11g和SQL Server 2008等现代数据库引擎中存在的众多功能的主要原因(除“数据库独立性”之外)?
或者,从赫尔辛基宣言博客中借用这样的内容:
在过去的二十年中,我们发现DBMS内部可用的功能(功能)呈指数增长。这些功能使我们能够构建数据库应用程序。这就是我们在蓬勃发展的90年代开始做的事情。
但是在新千年来临之际,发生了一些事情。而且这种神秘地使DBMS在数据库应用程序项目中的角色逐渐减少到微不足道。(...)从新千年开始,我们正在将所有应用程序逻辑从DBMS推出到中间层服务器。在DBMS外部实现的东西的功能已经爆炸式增长,并且功能丰富的DBMS几乎没有用于行存储。
我们正在谈论诸如
- 用作数据API的存储过程(出于安全性和避免过多的网络流量)
- 物化视图
- 代替触发器
- 分层查询(连接方式)
- 地理(空间数据类型)
- 分析(超前,滞后,汇总,多维数据集等)
- 虚拟专用数据库(VPD)
- 数据库级审核
- 闪回查询
- 数据库中的XML生成和XSL转换
- 来自数据库的HTTP标注
- 后台作业计划程序
为什么不使用这些功能?为什么大多数Java,.NET和PHP开发人员都坚持使用“ SELECT * FROM mytable”方法?