关系数据库的 SQL 实现以其当前形式已经存在了大约 25 年(自 System R 和 Ingres 以来)。即使是主要的(松散遵守的)标准 ANSI-92(尽管后来有更新)也已经有 15 年的历史了。

在过去十年左右的时间里,您能想到基于 SQL 的数据库有哪些创新。我特别排除 OLAP、列式和其他非关系型(或至少非 SQL)创新。我还想排除“应用程序服务器”类型的功能和捆绑(如报告工具)

尽管基本方法仍然相当静态,但我可以想到:

  • 可用性
  • 处理更大数据集的能力
  • 易于维护和配置
  • 支持更高级的数据类型(blob、xml、unicode 等)

你还能想到其他的吗?

有帮助吗?

解决方案

  • 哈希连接
  • 基于成本的优化器(几乎完全转变了查询编写)
  • 分区(实现更好的 VLDB 管理)
  • 并行(多线程)查询处理
  • 集群(不仅是可用性,还有可扩展性)
  • SQL 更加灵活,并且 SQL 与 3GL 语言的集成更加容易
  • 更好的诊断能力

其他提示

RANK 等分析函数

我不确定您是否想要包括特定于供应商的创新(我也不完全确定其他数据库引擎已经不能做到这一点),但 SQL Server 2005 在其语言中添加了递归 transact-sql 查询。我发现它们对于迭代分层数据非常有用。我相信 2008 年添加了一些与分层数据相关的新功能,但我还没有仔细研究过。

SELECT (invoiceprice * detailweight) / SUM(weight) OVER(PARITTION BY invoice) as weighted, * 
FROM tblInvoiceDetails

窗口函数非常适合执行诸如加权平均值之类的操作以及其他以前需要游标的操作。

好吧,有人可能会说,15 年缺乏动向不仅是缺乏创新的标志,而且是数据库近乎完美的标志!许多人尝试用代码做一些事情,而这些事情在数据库中做得更好,自 20 世纪 60 年代以来,这些数据库已经经过改进,可以尽可能快速、高效地运行。

我想说,过去十年(1998-2008)已经见证了开源 RDBMS 产品在主流部署中变得可行。大多数财富 500 强公司现在在其组织中的某个地方使用 MySQL 或 PostgreSQL 或其他开源 RDBMS,即使他们也使用商业闭源 RDBMS 品牌之一。

这不是一项技术进步,但仍然值得注意,因为稳定的开源 RDBMS 引擎的可用性使许多其他创新项目成为可能。

我意识到 MySQL 和 PostgreSQL 早在 1995 年就已经可用,但我认为在那之后的几年里它们都不是主流。

除了更高级的数据类型(blob、xml、unicode 等)列表之外,您还应该包括空间类型。

PostgreSQL 的 PostGIS 扩展于 2001 年推出,但现在所有主要供应商都实现了空间对象和空间 SQL。

随着 Google 地图、Bing 地图和 OpenLayers 的兴起,无需中间件即可显示地理空间数据和运行空间查询的能力对网络和数据分析产生了巨大影响。

我认为大部分进展都在性能领域——查询分析器和集群。

我认为最大的创新领域可能是数据复制——可用性和可靠性。大多数其他领域都是增量的。通过指定十年,您可以省略 ORDBMS 的内容——可扩展性;1997年出现的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top