SQLは、プログラミング言語とは異なるデータベースを操作するための言語です。
そして汎用的なプログラミング言語には見られない、「各RDBMS毎に、一部、SQL文の記述方法が異なる」といった特徴もあります(SQLの「方言」)。
また、標準化団体であるANSIやISOによって規格化された標準化SQLという存在もあります。
これらの特徴は、SQLが開発されてから世界的な普及を経て、現代に至るまでのSQLの歴史を紐解くことで理解することができます。
この記事で紹介します。
SQLは、データベースを操作するための言語ですが、正確には『関係データベースシステム(RDBMS)』で使われる言語です。
「データモデル」について、詳細は別記事で説明しますが、現代で使われているほとんどのデータベースの構造は関係データベース型になっており、テーブルやカラム、行のような表形式の概念でデータが管理されています。SQLは、テーブルやカラムを操作することを前提とした言語のため、関係データベースシステム用の言語なのです。
1970年代、IBMは世界で最初のRDBMSとなる「System R」と共に、それを操作するための言語で現在のSQLの原型となる『SEQUEL(Structured English Query Language)』を開発しました。
現在、SQLを「シークェル」と発音するのは、SQLの前身SEQUELの名残なのです。
1976年、SEQUELのバージョンアップに伴って、言語の名称が現在のSQLになります。これは、当初の予定「SEQUEL2」という名称が、すでに他社で商標登録済みであったことが理由です。
結果として、SEQUELは1976年のバージョンアップより、「SQL」という名称に変更されたのです。
1979年、世界初の商用RDBMSである「Oracle Database」がリリースされます。IBMの「System R」は研究目的のRDBMSのため、商用データベースとしては「Oracle Database」が世界初となります。
Oracle Database以降、1980年後半まで、IBMやMicrosoft等を含め、次々と商用RDBMSがリリースされます。
そして、RDBMSの普及に伴い、その操作言語であるSQLも高い評価を受けて、多くのRDBMSに標準的に搭載される言語になりました。
ただし、この時点ではSQLは標準規格化されておらず、各RDBMSにはSQLと併せて、その機能性を補完・向上させるための独自の機能が搭載されることが一般的になりました。
1986年になると、RDBMSの事実上の標準言語とも言えるSQLが、ISOによって正式に規格化(標準SQL)されます。以降、SQLの普及は益々広がっていきました。
1986年にISOによってSQLが規格化(標準SQL)されても、いまだにRDBMSの「方言」は残っています。その背景について、説明します。
SQLの原型が開発されたのが1970年代、そして商用RDBMSの普及が始まったのが1980年代前半頃。おそらく、まだコンピューターサイエンスも未成熟な時代のため、標準SQLの機能はとても貧弱なものだったようです。
そのため、RDBMS各製品には、引き続きその機能性を補完・向上させるための独自の機能が追加され続けます。
2022年現在においても、RDBMSごとに「方言」が残っているのは、このような事情によるものです。
この事情は、Excelに置き換えるととても理解がし易いです。
たとえば、Excelがリリースされた直後の時代、Excel以外の表計算ソフトが次々とリリースされ、その時点のExcel関数「SUM」や「AVERAGE」などが各表計算ソフトにも標準的な機能として搭載されたとします(事実ではなく仮定です)。
ただし、まだ未成熟な分野のため、多くのユーザーのニーズを網羅した製品にはなっていません。各社は、より優れたソフトウェアにするため、Excelには搭載されていない独自の「IF関数」や「ROUNDUP関数」などを追加搭載するでしょう。
このように、各製品ごとに利便性を追求した独自の機能が追加されるのは、自然なことなのです。
前節で説明したように、標準SQLが規格化されたあとも、各RDBMSはオリジナリティや優秀性をアピールするための追加機能が搭載され続けます。
このような独自の機能は、一部、標準SQLにも採用されるなど、標準SQLの充実に一役買っているという事実もあります。
その後も標準SQLは改訂を続けながら、非常に充実した現在のデータベース操作言語に進化していったのです。
一方、従来から存在するRDBMSに搭載された独自機能は、完全に標準SQLに置き換わったのではなく、今なお、製品の中に存在しているのです。
今回は、SQLの歴史と標準SQLが存在する理由とその背景について、記事にしました。
SQLを習得するうえで、特に重要なお話ではないのですが、よりご関心が深まったのではないでしょうか。
このような知識の習得・好奇心は、関連情報にも広げていくと色々なことが分かってきます。参考までに「標準化」に関する経済産業省の資料のリンクを紹介しておきますので、ご関心があればご覧ください(SQL関連の資料ではありません)。