即使擁有結構化資料的集合,如果不知道人們所需要的資料操作類型與方式,你如何能提供有效的方式來收集、存取和更新資訊?關聯模式的基本概念是由 E. F.(Ted)Codd發明;SQL則是關聯模式最著名的執行成果--一種陳述性的語言,用來描述人們想要從資料庫存取的內容為何,而不是描述如何存取。基於 Codd的原始概念,Donald Chamberlin和 Raymond Boyce進而開發了SQL。
一篇具開創性的文章 請問 SQL是如何設計的?
Don Chamberlin:整合的資料庫系統於1970年代早期開始廣泛地部署。科技和經濟的趨勢使企業開始正視資料為公司的重要資源,必須在許多應用之間共享。以資料為中心的新觀點開創了發展新一代資料管理科技的機會。
1970年代,IBM主流的資料庫產品為IMS,但是除了IMS開發團隊之外,幾個IBM區域的小研究團隊也同步進行資料庫問題的研究。E. F. (Ted) Codd博士是其中一個研究團隊的領導者,他的研究實驗室位於加州聖荷西市。Ray Boyce和我則是位於紐約Watson研究中心的研究團隊成員。Ray和我負責研究資料庫查詢語言,嘗試改善當時通用查詢語言的技術。
發表初版的 SEQUEL論文後,從1974年到1979年,SEQUEL歷經驗證和改善的階段。在這段期間,SEQUEL曾在IBM聖荷西研究實驗室參與部分實驗性 System R資料庫專案的執行工作;System R研究資料庫管理的不同面向,包括:B-tree索引、聯結方法、成本為基礎的優化,與交易一致性等。這些執行經驗對語言的設計演進提供許多回饋資訊。此外,SEQUEL也同時深受三家安裝 System R原型的 IBM企業客戶使用意見影響;System R團隊每季與顧客群開會一次,雙方針對改善語言及其執行的方法進行討論。
SEQUEL語言在參與 System R專案期間的演進十分顯著:為避免商標侵權爭議,語言的名字從 SEQUEL縮短為 SQL;在初版中缺席的通用聯結功能,也已增補;改善分群的功能,並且透過新增 Having子句來過濾分群;為了處理遺失資訊,將null數值與三值邏輯加入語言。另外加入一些新類型的邏輯謂語,包括:Like指部分內容相符;Exists指非空的子查詢。後續發表的幾篇論文則記錄語言演進的過程。在語言設計過程的階段,主要的決策傾向實用性,同時依據我們執行的經驗與實驗客戶的需求而調整。
SQL在 IBM的研究階段,隨著System R專案的完成,於 1979年宣告結束。接著,語言發展的責任移交至開發團隊,將 System R原型轉變升級為 IBM多樣化平台的商用產品。