解法
在关系型数据库之前,查询意味着导航:用户必须指定访问路径、索引和逐条记录的处理过程,而且每个系统都有自己的语言。1970年,IBM研究院的埃德加·科德发表了《大型共享数据银行的关系模型》,主张建立基于表并实现数据独立性的模型。
IBM在关系模型基础上开发了SQL,到20世纪80年代中期,SQL已经拥有了足够的发展势头,被标准化为ANSI X3.135-1986《数据库语言SQL》。1987年3月,美国国家标准局将其采纳为FIPS PUB 127,并声明其目的是促进数据库定义和数据库应用程序在不同安装点之间的可移植性。
声明式设计是关键:应用程序说明需要哪些数据,由数据库决定如何获取。这种分离让SQL跨供应商存活,从大型机到嵌入式设备,并使其成为每种数据库系统都必须支持的查询语言。
取得了什么结果
声明你想要什么;让系统决定怎么做
为什么有效
声明式查询使应用程序不再依赖某一家供应商的存储细节。
统一的ANSI标准为买家提供了通用的采购语言。
政府采用(FIPS 127)将可移植性强制纳入公共部门需求。
可以借鉴什么
能存续的语言会把困难的工作转到平台方:声明式查询让用户自由切换数据库,而标准化又将可移植性变成了采购要求。
后续
SQL成为数据库的通用语言:ISO/IEC 9075不断演进它,主流数据库引擎都实现一种方言,其体现的关系模型支撑了数据库行业数十年。后来出现的NoSQL系统以它为标准来定义自己,这只会更加巩固SQL作为默认语言的地位。
从这里,追溯依据
参考来源
- A Relational Model of Data for Large Shared Data Banks (E.F. Codd, CACM 13(6), 1970) Communications of the ACM / University of Pennsylvania · seas.upenn.edu
- FIPS PUB 127: Database Language SQL (adopting ANSI X3.135-1986) US National Bureau of Standards (NIST) · nvlpubs.nist.gov