这个问题的直接答案是,Oracle风格是从较早的想法继承而来的,在旧的想法中,似乎30年代很多,而更多的想法将增加从典型数据库的实际内存中取消字典高速缓存的风险。
相比之下,ODBC名称空间来自一个非常不同的地方,在该地方,通过解析Excel工作表中的表可以快速提取数据集,并使用工作表表标题中的列名自动构建数据库表。这样思考会使您允许甚至包含嵌入式回车符,当然还有特殊字符和大小写混合的标识符。这是一个明智的抽象,因为它模拟了当今数据分析师的思维方式。
不用担心SQL92,对于当今的通用数据库而言,真正重要的是ODBC遵从性,其他供应商比Oracle更好地解决了这一问题。例如,即使不是很多人都喜欢的Teradata,也可以满足两个命名空间的需要,带引号和不带引号,前者有30个字符的限制,后者是一个完整的ODBC实现,可满足奇怪的长标识符的需要。 。
即使在传统的大型数据库领域中,名称通常也要保持有意义,一致和令人难忘的30个字符。一旦开始设计具有角色命名继承的专业化结构,就开始缩写缩写,并且一致性很快消失,因为例如,在一种情况下,呈现为表名或列名的同一根标识符将需要进一步缩写,而在另一种情况下,则不需要缩写。如果邀请了大量的实际用户使用这些层,后果将是非常差的可用性,幸运的是,对于任何老化的数据库,现在的主要动力是通过对象层和BI工具将用户与数据库分离。
这将数据库层留给了DBA和数据架构师团队,他们也许并不那么在意。看来,制定缩写方案仍然是终生的工作。
Oracle尚未解决这一旧局限性,这可能主要反映了这样一个事实,即当它不能直接移植使用较长标识符构建的数据库设计时,它并没有因此而失去很多业务。