DB(データベース)の用語集まとめ

データベースの用語集を作りました(そもそも、DBがわからない・・・なら、データベースとは?を見てね!)。

■索引(押したら飛んでいきます)

    

    

A~E F~J K~O

P~T U~Z

■使い方

①上の索引(「あ」「か」「さ」「た」「な」など)を押すと移動します。お探しの用語を早く見つけるのに活用してください。

※例えば、「さ」を押すと、頭文字がさ行のDB用語が見れる。

②青字(リンク)になっている用語は、管理人ひよこSEが個別記事として作成したものです。なるべく、わかりやすく説明しているので、ぜひ見てね。

SQL文の例は、完全にフィーリングです。Oracle・postgreSQL・MySQLなので使用は異なるので細かい記載は、ご自身で調べてくださいまし。

スポンサーリンク

あ行

■一意制約

主キーが重複している状態。エラーとなるのでデータは登録できない。

たとえば、同じ大学で同じ学生番号が複数存在することはない。

■エンティティ

実体。よくわかんなかったら、テーブルだと思えばよし!

もうちょい踏み込めば、「テーブルAーテーブルB」みたいな線を引いて、「AからテーブルBのデータは1つに絞れるのか?それとも複数取れるのか?」みたいな関係性をE-R図で表す。

索引に戻る

か行

■外部キー

他のテーブルの主キー(①)となる項目。

「外部キー制約」を付けると、親テーブル(①)に存在しない値の登録、(①)が参照されている場合のレコードの削除はエラーとなる。

■外部スキーマ

利用者の目に見える形であること。データベースに入っている実際のデータを見たり更新ができる。

■概念スキーマ

「データの論理的関係」って言ったりするけど、テーブルの定義。

■関係データベース

表(テーブル)、行(レコード)、列(カラム)の形で管理されているデータベース。

■関数従属

主キーがわかると、他の情報が芋づる式にわかる関係のこと。(学生番号⇒生徒名みたな)

■共有ロック

他のトランザクションで参照できる状態だが、更新ができない状態のこと。

■結合

テーブル同士を結合させる。LEFT JOIN/INNER JOIN/RIGHT JOINだったり。

(個人的には好きじゃないけど、WHERE句での結合もできる)

1つのSELECT文で、異なるテーブルからデータを引っこ抜くのに使う。

※厳密にいえば、UPDATEやDELETEでも使えるっちゃ使えるけど、普通はやらないので、99%SELECTでよいかと。

コミット

トランザクションを確定させること。データの登録や更新、削除も確定される。

索引に戻る

スポンサーリンク

さ行

主キー

他とかぶらないし空にならない情報。それだけで、1つのデータに特定できる情報。

学生番号や会員IDなどをイメージすればよし。

■射影

列(カラム)を選択する。SELECT(選択)と一緒に使われる。

①SELECT 学生番号 FROM 学生テーブル
②SELECT * FROM 学生テーブル

①「学生番号」が、「列」であり「射影」。

②*(アスタリスク)を指定すれば、学生テーブルのすべての列が射影される。

■ジャーナル

データベースの更新履歴のこと。ロールフォワードするときの手掛かりになる。

■スキーマ

データベースの概念。概念スキーマ・外部スキーマ・内部スキーマの3つがあるが、単に「スキーマ」と言えば、普通は「概念スキーマ」のこと。

■ストアドプロシージャ

よく行われる処理を関数化したもの。

シーケンスの採番や、金額の消費税計算、他テーブルのコード値から名称を取ってくる処理でよく見る。

①– 消費税を計算するストアドプロシージャ
CREATE OR REPLACE PROCEDURE calcShohizei(money IN Number, rate IN VARCHAR2(4))
IS
BEGIN
— 処理を書く
END;

②SELECT
精算ID, 精算日, 精算金額, calcShohizei(精算金額, ‘0.08’)
FROM
顧客精算情報
WHERE
精算日 = ‘20211001’

  • ①ストアドプロシージャの名称を付ける(calcShohizeiみたいな)
  • ②SELECT で呼び出し

みたいな。

■選択

SELECTと同じ。文字通りデータを取ってくる。

■占有ロック

テーブルの更新も参照もできなくなるロックのこと。占有ロックでトランザクションが競合すると、デッドロックとなり処理が進まない。

下記の①・②のどちらかで、行の占有ロックがかかる。

(データベースの製品によって微妙に仕様が違うので注意!)

①INSERT, UPDATE, DELETE文が実行された行
②select 項目 From テーブル for update;

索引に戻る

スポンサーリンク

た行

第一正規化

すべてのデータを同じ形(DBに入る形)に整えること。

第二正規化

主キーにくっつく、データのかたまりを整理。

■第三正規化

主キー以外のデータのかたまりを整理。

■テーブル

データベース内でデータを保存するための箱本体。

デッドロック

トランザクション同士がお互いに待ち状態になること。

占有ロックをお互いに掛け合って身動きが取れなくなるのが原因。

トランザクション

データを入れ替えするときのまとまった処理。

コミットか、ロールバックが宣言されること。

索引に戻る

スポンサーリンク

な行

■内部スキーマ

データベースの製品名、OS、メモリや容量のような、物理的なデータベースの形式の話になってくる。

(インフラ屋さんは、ここら辺がかなり詳しいっす)

索引に戻る

は行

■排他制御

ロックをかけること。データの不整合が起きないようにするのが目的。

■ビュー

仮で作った表(テーブル)のこと。仮で作った「仮想テーブル」なので、登録や更新などはできない。

SELECT(選択)されるたびに、ビューが作成される。

※ビューの正体は、ふつうのSELECT文です。複雑な計算結果とかを外出しするイメージ。

■フィールド

テーブルの列(カラム)のこと。

■部分関数従属

複合キーの一部の情報から、他の情報が芋づる式にわかること。

フルバックアップ

全部のデータのコピーを作る。

管理をしてあげないと、全部をバックアップする性質から、すぐにサーバーの容量不足となる(ひよこSEは経験しました(*´ω`))

索引に戻る

スポンサーリンク

ま行

■マテリアライズドビュー

ふつうのテーブル(表)と同じように実態があるが、登録や更新・削除ができないビューのこと。

ビューは参照されるたびに仮想テーブルが作られるので更新は不要だが、マテリアライズドビューはリフレッシュをしないとデータが更新されない。

「マテビュー」と略されることが多い。

索引に戻る

や行

■予約語

SELECTとかINSERTとかUPDATEとか。

「SELECT=データの抽出」みたいに、SQLの世界で役割が決まっている単語・句のこと。

索引に戻る

ら行

■レコード

データベースのテーブルの1行のデータ。AB大学のデータベースのXYテーブルの学生番号123の学生のデータ1行がレコード。

ロールバック

トランザクションを実行前に戻すこと。データの登録・更新・削除は、なかったことになる。

■ロールフォワード

ジャーナル(データベースの更新履歴)を使って、最後のバックアップからさらにその先の、障害発生直前の状態にデータベースの状態を戻すこと。

バックアップしたデータを戻すだけでは不十分な場合に使う。

(・・・けど、ひよこSEは経験ないなぁ(*´ω`)。)

索引に戻る

スポンサーリンク

わ行

ないかも(*´ω`)。

索引に戻る

A~E

ACID特性

下記の4つは、データベースなら担保されているよ的な話。

  • 【Atomicity(原子性)】トランザクションは、「すべて実行される」、「実行されない」のどちらかであること
  • 【Consistency(一貫性)】データベースの内容に矛盾がない状態であること
  • 【Isolation(隔離性)】トランザクションの実行が同時、順番のどちらであっても結果は変わらないこと
  • 【Duability(耐久性)】データベースが故障した場合でも、なんらかの復旧手段があること

■ASC

昇順。数字や文字が、辞書的に小さい順に並びかえる。

SELECT 項目A FROM テーブル1 ORDER BY 項目A ASC
;

■COUNT

データの個数を数える、集計関数。

SELECT 項目A, COUNT(*) FROM テーブル1 GROUP BY 項目A ORDER BY 項目A
;

■CREATE

テーブル、ビュー、マテアライズドビューを作るのに使う。

CREATE TABLE・・・
CREATE VIEW・・・
CREATE MATERIALIZED VIEW・・・

■DBMS

「Database Management System=データベース管理システム」のこと。

早い話が、Oracle・PostgreSQL・MySQL・SQL Serverなどの製品名だと思えばいい。

■DDL

Data Definition Languageの略で、「データ定義言語」って言われる。

CREATE文, DROP文などのテーブルを使う文たちと思えばよし。

■DESC

降順。数字や文字が、辞書的に大きい順に並びかえる。

SELECT 項目A FROM テーブル1 ORDER BY 項目A DESC
;

■DML

「Data Manipulation Language=データ操作言語」のこと。

SELECT, INSERT, UPDATE, DELETE が該当する。

■DROP

テーブルを削除する。(データの削除でなく、テーブルごと削除する)

DROP TABLE テーブル1 CASCADE CONSTEAINTS
;

ちなみに、 CASCADE CONSTEAINTS(制約も含めてテーブルを消す)を入れておかないと、けっこう面倒。

テーブルをDROPした後も、主キー制約・外部キー制約は単体で残り続けるので、再度CREATE TABLEするときに、「そのキー制約は既に登録されているぜ」的なエラーになる。

E-R図

箱と線でつながりを表すもの(テーブルやエンティティの関係性を線で表すもの)

索引に戻る

スポンサーリンク

F~J

■GROUP BY

集計単位を指定する。「SUM(合計),COUNT(数え上げ),MAX(最大値),MIN(最小値)をSELECTしたい」となった場合に、「どの単位で集計するのか?」を指定しないと「GROUP BYに含めてくれ」的なエラーになる。

SELECT 項目A, COUNT(*) FROM テーブル1 GROUP BY 項目A ORDER BY 項目A
;

HAVING

GROUP BYした後に、フィルターする場合に使う。

(例えば、「個数が3以上のAを抽出する」みたいに、集計後のフィルター)

SELECT 項目A, COUNT(*) FROM テーブル1 GROUP BY 項目A HAVING COUNT(*) >= 3 ORDER BY 項目A
;

■INNER JOIN

テーブルを結合する。結合できなかった場合は、抽出結果から除外される。

SELECT テーブル1.項目A, テーブル2.項目X FROM テーブル1
INNER JOIN テーブル2
ON
テーブル1.項目A = テーブル2.項目B
;

■INSERT

データを登録(挿入)する。

INSERT INTO 学生テーブル
(
学生番号
, 所属学部
, 生徒名
)
VALUES
(
20XXEC0001
, ‘経済学部’
, ‘ひよこSE’
)
;

索引に戻る

スポンサーリンク

K~O

■LEFT JOIN

テーブルを結合する。

結合できなかった場合は、下記の例で言えば、「テーブル2.項目X」はNULLになる。

SELECT テーブル1.項目A, テーブル2.項目X FROM テーブル1
LEFT JOIN テーブル2
ON テーブル1.項目A = テーブル2.項目B
;

■Max

かっこの中に入れた項目の最大値を取る。

SELECT 項目A, Max(日付) FROM テーブル1 GROUP BY 項目A ORDER BY 項目A
;

■Min

かっこの中に入れた項目の最小値を取る。

SELECT 項目A, Min(日付)FROM テーブル1 GROUP BY 項目A ORDER BY 項目A
;

■ORDER BY

並び替える。ASC(昇順)、DESC(降順)を指定する。

索引に戻る

スポンサーリンク

P~T

■RDB

Relational Databaseの略。関係データベースと同じ意味。

■RIGHT JOIN

テーブルを結合する。

結合できなかった場合は、下記の例で言えば、「テーブル1.項目A」はNULLになる。

SELECT テーブル1.項目A, テーブル2.項目X FROM テーブル1
RIGHT JOIN テーブル2
ON テーブル1.項目A = テーブル2.項目B
;

■SELECT

選択と同じ意味。データを取ってくる。

SQL

データベースとデータをやり取りするための言葉

SQLインジェクション

変な文字を入れてデータベースに悪さすること。

■SUM

合計をとる。

SELECT 項目A, SUM(金額) FROM テーブル1 GROUP BY 項目A ORDER BY 項目A
;

索引に戻る

スポンサーリンク

U~Z

■UPDATE

データベースのテーブルのデータを更新するための予約語。

UPDATE テーブルX SET 項目A=’hoge’ WHERE 項目B=’123′
;

■UNION

SELECT文の結果を結合する。

SELECT 項目A, 項目B, 項目C FROM テーブル1
UNION ALL
SELECT 項目D, 項目E, 項目F FROM テーブル2
;

この場合、項目A, 項目B, 項目Cと、項目D, 項目E, 項目Fの組み合わせは、データの型が同じである必要がある。

WHERE句

集計「前」に条件をしぼりこむ。

①SELECT 項目A, 項目B, 項目C FROM テーブル1
WHERE 項目A =’あいう’
;

②SELECT 項目D, 項目E, 項目F FROM テーブル2
WHERE 項目D < 100
;

①だと、項目Aが、’あいう’に等しいレコード(データ、行)

②だと、項目Dが、’100’より小さいレコード(データ、行)

が抽出される。

索引に戻る

スポンサーリンク
タイトルとURLをコピーしました