目的
- DBの勉強をしているときに理解できていない用語をまとめる。
※どんどん追記予定
リレーショナルデータベース(RDB)
- 関連性によって管理されるデータベースのこと。
- すべてのデータを表形式で表現する。
テーブル
- DBのデータが入る表のこと。
カラム
- テーブルの列のこと。
レコード
- テーブルの行のこと。
フィールド
- テーブル内の要素のこと。
- テーブル内の一個のセルのこと。
SQL
- Structured Query Languageの略である。
- データベース言語のこと。
MySQL
- Web系で主に使われているデータベースのこと。
- オープンソースデータベースの一つである。
- 使用しやすく、高速である。
クエリ
- 命令のこと。
- DB使用者が発行するもの。
トランザクション
- クエリの集合体である。
- 含まれる処理が完遂されたときのみ処理が確定される。
- 含まれる処理が一つでも失敗したらすべての処理が取り消される。
- データの整合性を保つための機能
データ型
- データ自体の属性である。
- 数値、文字列、バイナリ、日付、時間、などが存在する。
NULL値
- データが存在しないことを表す値である。
- 空文字や数値の0とは異なる。
- 空文字や数値などのはデータとして前述のものが存在するためNULL値ではない。
SQL命令
- DDL、DML、DCLの三種類が存在する。
- DDL(Data Definition Language)はデータ定義言語でDBやテーブルを作成するときに使用する。
- DML(Data Manipulation Language)はデータ操作言語でデータを操作するときに使用する。
- DCL(DataControl Language)はデータ制御言語でトランザクション制御に使用する。
SQLの予約語
- SQLの命令として定義されいている単語のこと。
- 半角のアルファベットが使われる。
-
CREATE
とかALTER
とかがそう。
リテラル
- SQL文中に書かれる具体的なデータのこと。
- 数値リテラル、文字リテラル、日付リテラルなどがある。
- 対応するデータ型が決まっている。
リテラル | データ型 |
---|---|
数値リテラル | TINYINT,SMALLINT,MEDIUMINT,INTEGER,BIGINTほか |
文字リテラル | CHAR,VARCHAR,TEXTほか |
日付リテラル | DATE,DATETIME,TIMESTAMPほか |
migrate(マイグレート)
- データを別環境に移したりすること。
- 新しい環境に切り替えたりすること。
主キー
- テーブル内のレコードの一つを必ず特定できる鍵のこと。
- 一位に識別することのできるもののこと。
- 1テーブルに一つ必ずないといけないけど、一つ以上あってもいけない。
- ユーザIDなどを指す。
外部キー
- テーブルに対しての制約を課すためのもの。
- 外部キーのカラムに存在しないものはテーブルに登録できない。
- テーブルにデータを登録する際の見張り番的なもの。
- 可変長文字列が入ったカラムは外部キーとしないことが一般的である。
- 別のテーブルを参照している列のこと。
正規化
- データ形式のこと。
- 保存するデータの冗長性を排除し、一貫性と効率性を保持する。
- 5段階存在する。
- データをDBの共通ルールにのっとった形にすること。
関数従属性
- 入力値をX、出力をYとしたときの、数式
X = Y
を「YはXに従属していると」言う。 - DBのテーブルにおける「X列の値を決めればY列の値が一つ決まる」ことを指す。
インデックス
- データを見つけるためのものである。
- 身近なもので近いイメージは本の索引のページである。
- 一つの列に対して作成する。
- テーブルの列中に入っているデータの種類が多いときに能力を発揮する。(dateの列に入っている値が100種類あるときなど)
- 種類が多くても、一致しているものが多いと能力は発揮できない。(dateの列に入っている値が100種類あるが、総データの99パーセントが10月08日である場合など)
- 主キーや、列内データが一意のものに対して作成しても意味がない。