構造化照会言語 (SQL)
一般的な DBMS では、ユーザーは整理された効率的な方法でデータを格納、アクセス、変更できます。 もともと、DBMS のユーザーはプログラマでした。 格納されたデータにアクセスするには、COBOL などのプログラミング言語でプログラムを記述する必要があります。 これらのプログラムは、多くの場合、専門知識のないユーザーにわかりやすいインターフェイスを提示するために記述されましたが、データ自体へのアクセスには、知識のあるプログラマのサービスが必要でした。 データへのカジュアル アクセスは実用的ではありません。
ユーザーは、この状況に完全には満足していませんでした。 データにアクセスすることはできましたが、多くの場合、DBMS プログラマに特別なソフトウェアを作成してもらう必要がありました。 たとえば、営業部門が各営業担当者の前月の売上合計を確認し、この情報を会社の各営業担当者の勤続年数順に順位付けしたい場合は、2 つの選択肢がありました。まさにこの方法で情報にアクセスできるプログラムが既に存在するか、または部門がプログラマにそのようなプログラムの作成を依頼するかです。 多くの場合、これは価値以上の作業であり、1 回限りの、またはアドホックな問い合わせでは、常に高価なソリューションでした。 より多くのユーザーが簡単にアクセスしたいと考えるようになったので、この問題はますます大きくなりました。
ユーザーがアドホックベースでデータにアクセスできるようにするには、要求を表現する言語をユーザーに提供する必要があります。 データベースに対する 1 つの要求はクエリとして定義されます。このような言語はクエリ言語と呼ばれます。 この目的のために多くのクエリ言語が開発されましたが、そのうちの 1 つで最も一般的になったのは、1970 年代に IBM で発明された構造化照会言語です。 これは、その頭字語、SQL によってより一般的に知られており、"ess-cue-ell" と "sequel" の両方で発音されます。 SQL は 1986 年に ANSI 標準になり、1987 年には ISO 標準になりました。これは今日、非常に多くのデータベース管理システムで使用されています。
SQL はユーザーのアドホックなニーズを解決しましたが、コンピューター プログラムによるデータ アクセスの必要性は消えませんでした。 実際、ほとんどのデータベース アクセスは、定期的にスケジュールされたレポートや統計分析、注文入力に使用されるデータ入力プログラム、およびアカウントの調整や作業指示書の生成に使用されるデータ操作プログラムなどの形式でプログラムによって行われました(現在も行われています)。
これらのプログラムでは、次の 3 つの手法のいずれか 1 つを使用して SQL も使用します。
埋め込み SQL。C や COBOL などのホスト言語に SQL ステートメントが埋め込まれています。
SQL モジュール。SQL ステートメントは DBMS でコンパイルされ、ホスト言語から呼び出されます。
コールレベル インターフェイス (CLI)。DBMS に SQL ステートメントを渡し、DBMS から結果を取得するために呼び出される関数で構成されます。
Note
同じことを表す別の用語であるアプリケーション プログラミング インターフェイス (API) の代わりにコールレベル インターフェイスという用語が使用されるのは歴史的な事故です。 データベースの世界では、API は SQL 自体を記述するために使用されます。SQL は DBMS の API です。
これらの選択肢のうち、埋め込み SQL は最も一般的に使用されますが、ほとんどの主要な DBMS では独自の CLI がサポートされています。
このセクションでは、次のトピックを扱います。