Lun*_*tik 46 sql database standards database-design ansi-sql
如果我正在设计炼油厂,我不希望来自不同供应商的材料不会以微妙但重要的方式符合公布的标准.来自一个供应商的管道,阀门和其他部件将带有符合ANSI标准的法兰和壁厚,以及来自任何其他供应商的相同部件.因此确保了互操作性和系统安全性.
那么为什么普通数据库如此挑剔他们所遵循的标准的哪些部分,以及为什么没有100%符合标准的系统脱颖而出?标准是否"破损",缺乏范围或难以设计?
结论是这样的; ANSI(或ISO)定义SQL标准的重点是什么?
Joh*_*ant 18
在软件行业,你有一些真正标准的标准,即不符合标准的产品就是不起作用.文件规范属于该类别.但是,你也有更像指南的"标准":它们可能被定义为具有逐点定义的标准,但通常仅部分实施或具有显着差异.Web开发充满了这样的"标准",如HTML,CSS和"ECMAScript",其中不同的供应商(即Web浏览器)以不同的方式实现标准.
这种变化会引起头痛,但标准化仍然带来好处.想象一下,如果根本没有HTML标准,每个浏览器都使用自己的标记语言.同样,想象一下,如果没有SQL标准,并且每个数据库供应商都使用自己的完全专有的查询语言.将会有更多的供应商锁定,开发人员将更难以使用多个产品.
所以,不,ANSI SQL与其他行业的ANSI标准没有相同的用途.但它确实起到了一个有用的作用.
小智 14
可能是因为标准一致性对数据库系统购买者来说是低优先级的.他们对以下内容更感兴趣:
仅举几个因素.
编程语言也是如此 - 很少(如果有的话)编译器支持当前ANSI C和C++标准的每个特性.
至于为什么要打扰标准,大多数供应商最终都会带来标准支持.例如,大多数供应商支持或多或少的所有SQL89.这允许供应商在他们的规格表上勾选一个(相对不重要的)复选框,并允许像我这样有兴趣编写可移植代码的人这样做,尽管不得不放弃许多花里胡哨的东西.
olu*_*ies 13
请参阅文章" IS SQL A REAL STANDARD ANYMORE?" 有关SQL标准当前(2005)问题的讨论.
我不知道ANSI SQL的历史。但是似乎在软件开发中很多时候,在主要参与者已经实现了自己专有的事物版本之后才编写标准。一旦公司以自己的做事方式进行投资,就很难证明改变或删除人们一直依赖于遵守标准的功能是合理的。Web标准是这种现象的主要示例。