为什么没有数据库完全支持ANSI或ISO的SQL标准?[英] Why does no database fully support ANSI or ISO SQL standards?

本文是小编为大家收集整理的关于为什么没有数据库完全支持ANSI或ISO的SQL标准?的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

如果我正在设计炼油厂,我不希望不同供应商的材料不会以微妙而重要的方式遵守已发布的标准.来自一个供应商的管道,阀门和其他组件将带有法兰和壁厚厚度,以及其他任何供应商的相同部分.因此,可以确保互操作性和系统安全性.

那么,为什么常见的数据库对他们遵守标准的哪些部分如此选择,为什么没有100%符合标准的系统才能脱颖而出?标准是"破损",缺乏范围或太难设计?

以此为结论; ANSI(或ISO)定义SQL标准的重点是什么?

编辑:公共数据库之间的实现差异列表

推荐答案

在软件行业中,您的一些标准确实是标准,即不符合它们的产品只是不起作用.文件规格属于该类别.但是,您还拥有更像指南的"标准":它们可能定义为具有逐点定义的标准,但通常仅部分实施或有显着差异. Web开发充满了这样的"标准",例如HTML,CSS和" Ecmascript",其中不同的供应商(即Web浏览器)以不同的方式实现标准.

变化会导致头痛,但标准化仍然提供好处.想象一下,如果根本没有HTML标准,并且每个浏览器都使用自己的标记语言.同样,想象一下,如果没有SQL标准,并且每个数据库供应商都使用了自己的完全专有的查询语言.将会有更多的供应商锁定,而开发人员将有更多的时间与多个产品合作.

因此,不,ANSI SQL的目的没有与ANSI在其他行业中相同的目的.但这确实达到了有用的目的.

其他推荐答案

可能是因为标准符合性是数据库系统购买者的优先级较低.他们对:

更感兴趣:

  • 与他们已经拥有的东西的兼容性
  • 性能
  • 价格
  • OS支持

命名的几个因素.

编程语言也是如此 - 很少(如果有)编译器支持当前ANSI C和C ++标准的每个功能.

关于为什么要打扰标准,大多数供应商最终都会为船上带来标准支持.例如,大多数供应商或多或少都支持所有SQL89.这使供应商可以在其规格表上打勾(相对不重要的)检查箱,还允许像我这样的人兴趣编写便携式代码这样做,尽管必须放弃很多铃铛和哨子.

>

其他推荐答案

请参阅文章" 是真正的标准?关于SQL标准的当前(2005)问题.

本文地址:https://www.itbaoku.cn/post/597694.html

问题描述

If I were designing a oil refinery, I wouldn't expect that materials from different vendors would not comply with published standards in subtle yet important ways. Pipework, valves and other components from one supplier would come with flanges and wall thicknesses to ANSI standards, as would the same parts from any other supplier. Interoperability and system safety is therefore assured.

Why then are the common databases so choosy about which parts of the standards they adhere to, and why have no 100% standards-compliant systems come to the fore? Are the standards 'broken', lacking in scope or too difficult to design for?

Taking this to conclusion; what is the point of ANSI (or ISO) defining standards for SQL?

Edit: List of implementation differences between common databases

推荐答案

In the software industry you have some standards that are really standards, i.e., products that don't comply with them just don't work. File specifications fall into that category. But then you also have "standards" that are more like guidelines: they may defined as standards with point-by-point definitions, but routinely implemented only partially or with significant differences. Web development is full of such "standards", like HTML, CSS and "ECMAScript" where different vendors (i.e. web browsers) implement the standards differently.

The variation causes headaches, but the standardization still provides benefits. Imagine if there were no HTML standard at all and each browser used its own markup language. Likewise, imagine if there were no SQL standard and each database vendor used its own completely proprietary querying language. There would be much more vendor lock-in, and developers would have a much harder time working with more than one product.

So, no, ANSI SQL doesn't serve the same purpose as ANSI standards do in other industries. But it does serve a useful purpose nonetheless.

其他推荐答案

Probably because standards conformance is of a low priority to database system purchasers. They are more interested in:

  • compatibility with what they've already got
  • performance
  • price
  • OS support

to name but a few factors.

The same is true of programming languages - very few (if any) compilers support every single feature of the current ANSI C and C++ standards.

As to why bother with standard, well most vendors do eventually bring standard support on board. For example, most vendors support more or less all of SQL89. This allows the vendor to tick a (relatively unimportant) check-box on their spec sheet and also allow people like me who are interested in writing portable code to do so, albeit having to forgo lots of bells and whistles.

其他推荐答案

See the article "IS SQL A REAL STANDARD ANYMORE?" for a discussion about the current (2005) issues of the SQL standard.