【AP試験】データベースの用語…非NULL特性、射影、導出表、相関副問合せ…etc.

徒然草2.0

データベース用語は日頃あまり口にしないせいか、問題文に出てくると「よくわからん!」と焦ります。というわけで、小難しい用語をまとめてみました。

非NULL特性とは何か?

非NULL特性とは…非NULL成約とか、NOT NULL成約のことです。

回答は…

データベースのカラムに付与するものですが、私はNOT NULL(ノットヌル)と読んでいるのですが、非NULL特性(ヒナルトクセイ)と読む人がいて、まったく音として似ておらず「よく、わからん!」となったことがあります。

どっちでもいいのでしょうが、人によって読み方が違うんだと知っていないと混乱します。

射影と選択とは何か?

データベースにおける射影と選択とは何か?

回答は…

・射影…データ列を取り出すこと

・選択…データ行を取り出すこと

日本語の意味からは導きにくいです。射影は数学用語または集合論の用語かもしれませんが、詳しく調べると何だかよけい分かりにくくなりそうなのでやめておきます。個人的には射影は影なので…影ができるということは、縦に長っぽいものをイメージ…だから「縦列」とおぼえるようにしています。

導出表とは何か?

いわゆるViewのこと。

テーブルに問い合わせて表示される仮想的な表。

hav-ing句とは何か?

Group Byの条件に使われるがhav-ingはwhereやformと同様の「句」なのだそうだ。

※知らなかったのでメモ。

※なぜかhav-ingのハイフンをとるとWordPressがエラーになるのでハイフンをつけています。

集合関数とは何か?

SUM関数やMAX関数などの集計値を求める関数の総称のこと。

IN述語とは何か?

IN述語とは、条件を列挙する時に使用するINのことだが、私は「IN句」と呼んでいた。別に句だろうが述語だろうが間違っていない気がする(詳しい定義はよく分からないが)、INやLIKEやBETWEENなどは述語という部類なのだそうだ。

相関副問合せとは何か?

通常のSELECT文を主問合わせ、その主問合わせの条件文などに書かれたSELECT文を副問合せ(サブクエリ)という…というのはSQLをそれなりにさわったことがある人ならば知っているだろう。では相関副問合せとは何でしょうか?

回答は…

副問合せの中で、主問合わせの1行を条件に加えることを相関副問合せと言うらしい。区別する必要ある?という気がするが、まあそういうことらしい。

GRANT ALL PRIVILEGES ON … TO … とは?

こちらの記事「【AP試験】DBのGRANT(権限付与)についての覚書」でもふれましたが、GRANT(権限付与)の構文はなぜかAPIの試験にはよく出てきます。セキュリティや権限に関わるのでしかたがないのかもしれませんが、データ操作にはすべての権限があればとりあえずシステム屋としてはOKなんですけどね。

ちなみに「ALL」や「ALL PRIVILEGES」はどちらも同じ意味であり「すべての命令」を意味します。privilegesは特権という意味があるみたいです。表題の記述をすれば「お前にすべての権限を与える!」という意味になります。逆にすべての権限を剥奪する時は「revoke all privileges on …」になります。

仮想表とは何か?

まあ、これは字面で分かると思いますがVIEWのことです。SELECT文で問い合わせて生成された実データがない表のことを意味します。

タプルとは何か?

行のことをタプルということがあります。自分はレコードを呼んでいますが…関係モデル(?)の時は、タプルになるみたいです。どっちでもいい気がします。

まとめ

というわけで、DBって面白いけれど、そんなに専門用語をガチでおぼえるよりも、実践あるのみの世界な気がします。

とはいえ、どんな言葉が出てきても文意を正確に読み溶けるように、またDBのスペシャリストとトークする機会があっても意思の疎通ができるように、さらには資格試験の学習を効率化させるためにも言葉になれていこうと思います。

コメント

タイトルとURLをコピーしました