「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Data Control Language

pointこの用語のポイント

pointデータベースに対する命令の種類だよ

point権限周りをあれこれするときに使う命令だよ

pointトランザクション処理をやるときに使う命令だよ

point日本では「データ制御言語」や「DCL」と表現されるのが一般的だよ

スポンサーリンク

簡単に書くよ

Data Control Language(読:データ・コントロール・ランゲージ)とは

いわゆる「データ制御言語(DCL)」のこと。
用語の中身としては

データベースに対する命令の分類のひとつ
であり

データベースの権限周りをあれこれするときに使う命令のこと
です。
注意点として

「ここから ここまでワンセット」な処理(トランザクション処理)に関する命令である「commit」とか「rollback」とか
も含みます。


image piyo

詳しく書くよ

最初に留意事項です。
データ制御言語」や「DCL」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
データ制御言語の英語表現が「Data Control Language」です。

Data Control Language(データ・コントロール・ランゲージ)

データ制御言語を「DCL」と表現することがあります。
この「DCL」が「Data Control Language」の省略表現なのです。

Data Control Language(データ・コントロール・ランゲージ)2

※「Data Control Language」を何となく日本語にすると「情報制御言語」となります。[詳細]

以上が「データ制御言語(DCL)」の意味を知っている人向けの説明です。

「データ制御言語(DCL)って何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

ちょっと休憩2

それでは、いってみましょう。
まずは予備知識として「データベース」と「SQL」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

データベースは「データを入れておく箱」です。
突っ込んで考えると混乱するかもしれません。
何となくのフィーリングで理解してください。

Data Control Language(データ・コントロール・ランゲージ)3

SQLは「データベースと やり取りするときに使う言葉」です。

Data Control Language(データ・コントロール・ランゲージ)4

データベースにデータを入れるときは、データベースさんに「これを入れておいて」と命令します。
データベースからデータを取り出すときは、データベースさんに「こんなデータを取り出しておくれ」と命令します。
SQLは、そんな命令をするときに使う言葉です。

さて、このSQLを使った命令ですが、大きく分けて3つに分類できます。
それは

1.データをあれこれするときに使う命令
2.データを入れておく箱をあれこれするときに使う命令
3.データベースに対する権限周りをあれこれするときに使う命令


の3つです。

「1.データをあれこれするときに使う命令」はデータそのものに関する命令です。
「この条件に一致するデータを探して」「このデータを入れておけ」「このデータの この値を こっちの値に変えて」「このデータを削除して」のような命令をするときに使います。

Data Control Language(データ・コントロール・ランゲージ)5

「2.データを入れておく箱をあれこれするときに使う命令」はデータを入れておく箱に関する命令です。
「このデータが入る箱を作って」「この箱をもっと大きくして」「この箱は使わないから捨てちゃって」のような命令をするときに使います。

Data Control Language(データ・コントロール・ランゲージ)6

「3.データベースに対する権限周りをあれこれするときに使う命令」は使ってイイ人やダメな人を指定するときに使う命令です。
「ピヨ子さんには、この箱の中身は見せないで」「ピヨ太ママには見せていいけど、変更はさせないで」のよう命令をするときに使います。

Data Control Language(データ・コントロール・ランゲージ)7

以上を踏まえて、この3種類の命令のうち

3.データベースに対する権限周りをあれこれするときに使う命令

を指す呼び名が「Data Control Language」です。

Data Control Language(データ・コントロール・ランゲージ)8

上でも書きましたが、一般的には「データ制御言語」や「DCL」と表現されます。
※本ページでも以降は「データ制御言語」と表現します。

SQLで言えば

・grant文
・revoke文


などがデータ制御言語に相当します。

データベースに命令するときに使う言語はSQLだけでは ありません。
他にもあります……多分。
よって「データ制御言語」という用語はSQL専用では ありません。
データベースの権限周りをあれこれするときに使う命令(で使う言語)は、すべてデータ制御言語です。

とはいえ、この説明を書いている時点の状況では、データベースをあれこれするときはSQLを使うことが多いでしょう。
「データ制御言語はgrant文とかrevoke文とかのこと」と解釈しても、そこまで困ることはないと思います。

なお、トランザクション処理(「ここから ここまでワンセット」な処理)に関する命令

commit:トランザクション処理の確定
rollback:トランザクション処理の取り消し


などもデータ制御言語に含まれるようです。
「権限周りをあれこれ」な説明からは外れますが、覚えておいてください。

あと、ついでなので書いておくと

1.データをあれこれするときに使う命令

は「データ操作言語(DML)」と言います。

Data Control Language(データ・コントロール・ランゲージ)9

残りの

2.データを入れておく箱をあれこれするときに使う命令

は「データ定義言語(DDL)」です。

Data Control Language(データ・コントロール・ランゲージ)10

気が向いたら、全部まとめて覚えてあげてください。

・データ操作言語(DML):データをあれこれ
・データ定義言語(DDL):箱をあれこれ
・データ制御言語(DCL):権限をあれこれ


です。


image piyo2

一言でまとめるよ

まぁ「Data Control Language」って単語が出てきたら「データ制御言語(データベースに対する「権限周りをあれこれしなさい」な命令)のことなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像027
書籍画像051

おまけ

■訳してみるよ

「data(データ)」の意味は「資料」とか「知識」とか「情報」とかです。
「control(コントロール)」の意味は「統制する」とか「操作する」とか「制御する」とかです。
「language(ランゲージ)」の意味は「言語」とか「言葉」とかです。
何となく くっつけると

情報制御言語

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
タヌキとキツネ
おい点P、動くんじゃねえ!──ニガテ民のための算数と数学の本