こんにちは、blueです。
今回はデータベースの用語についてできる限りわかりやすく説明します。
業務でデータを扱っていくと以下のような会話が出てくることはないでしょうか?
・これはトランザクションテーブル、こっちはマスターテーブルで・・・ ・このリレーションは1対多で、こっちは多対多で・・・ ・正規化されてないテーブルなんてくそだ。データベースファーストだよ
最初のうち私は「は?いきなり横文字で何言ってるの?」状態でした。
何か難しい単語が出てくるとそこで思考が止まる英会話のようになっていました。
ただこれらはデータベースに関する用語で、大量のデータを扱う昨今では基礎知識となってきています。
最近はPower QueryやPower BIといったアプリが出てくるようになりましたが、これらもデータベースを扱う関係上、上記の知識は必須になっています。
その為今回はデータベースで出てくる用語に関して、以下の書籍やネットで学んだ情報をまとめることにしました。
データベースに関して概略を知りたい方はこちらがお勧めです。
単語ごとに章が分かれているのと図が多く入っているので理解しやすいと思います。
データベースについて設計から運用まで詳しく知りたい方はこちらがお勧めです。
文章は多いですがわかりやすく説明してくださっているので詳細まで一通り理解することができます。
記事の構成
今回は以下の項目について説明します。
- データベースとは
- データベースの構成
- テーブルの構成
- 正規化
- ER図
次から各項目における用語について説明します。
データベースとは
データベース廻りを図にすると以下のようになります。

それぞれの用語の説明は以下になります。
決まった形式(データモデル)で整理されたデータの集まり
データベースとは?基礎知識を初心者にわかりやすく解説!
人や物や事象に関する定性的、または定量的な値のこと
データ Wikipedia
データベースを管理するシステム
達人に学ぶDB設計 徹底指南書
データベースの構成
データベースの構成を図にすると以下のようになります。

それぞれの用語の説明は以下になります。
- Oracle Database・・・リレーショナルデータベースのDBMSとしては最大シェア
- Microsoft SQL Server・・・MicrosoftのDBMS
- MySQL・・・オープンソースのDBMS
- SQLite・・・アプリケーションに組み込んで利用することができる軽量のシステム
達人に学ぶDB設計 徹底指南書 データベースのしくみ
データを二次元の表で管理する
達人に学ぶDB設計 徹底指南書
テーブルの構成
テーブルの構成を図にすると以下のようになります。

それぞれの用語の説明は以下になります。
共通点を持ったレコードの集合。英語ならば複数形、複数名詞で書ける
(共通点を持たないレコードの寄せ集めはテーブルとは呼ばない)
達人に学ぶDB設計 徹底指南書
行(レコード)・・・横のデータの集まり
列(カラム)・・・縦のデータの集まり。属性、項目ともいう
達人に学ぶDB設計 徹底指南書
キー・・・あるデータを特定するための鍵のこと
- 主キー・・・プライマリーキーとも呼ぶ
その値を特定すれば、必ず行のレコードを特定できる列(の組み合わせ)のこと
複数列の組み合わせで特定する場合は複合キーと呼ぶ
上記の理由の為、重複は許されない、空は許されない - 外部キー・・・テーブル間の共通項
指定すると指定した他のテーブルのカラムに存在する値しか格納できなくなる
達人に学ぶDB設計 徹底指南書
- データの型・・・数値型(INT, FLOAT,Double),文字列型(CHAR, VARCHAR, TEXT),日付(DATE, DATETIME, TIME), BOOLEAN型などがある
- 固定長と可変長・・・固定長は文字数が決まっている(例:郵便番号など)、CHARで表す
可変長は文字数が決まっていない。(例:部署名など)VARCHARで表す。
達人に学ぶDB設計 徹底指南書
- トランザクションテーブル(データ)・・・日々データが増えていくテーブル(購入履歴など)
- マスターテーブル(データ)・・・業務の基礎情報となるデータを蓄積したテーブル

正規化
それぞれの用語の説明は以下になります。
- データ等を一定のルールに基づいて変形し、利用しやすくすること
正規化 Wikipedia - 無駄なデータを持たないようにテーブルを分けること
正規化とは?【分かりやすい解説シリーズ #28】【プログラミング】 - データの繰り返しをなくすこと
データベース設計入門#2 正規化|無駄のないテーブル設計とは?【日本一わかりやすくDB正規化を解説します】 - データベース内のデータを整理する手順
データベースのしくみ
- メリット
データのメンテナンスが楽になる。重複データの修正が楽になる
データの無駄(=冗長)をなくしてデータの容量を減らせる - デメリット
処理速度が遅くなる
データベースのしくみ
- 一つの「レコード」の中で繰り返し出る項目(カラム)が排除されていること
データベースのしくみ - 一つのセルの中には一つの値しか含まない
達人に学ぶDB設計 徹底指南書 - 横の繰り返しをなくすこと
データベース設計入門#2 正規化|無駄のないテーブル設計とは?【日本一わかりやすくDB正規化を解説します】
第一正規形のNGな例です。

第一正規化された例です。

- 一つのカラムに対応して部分的に決まる項目(部分関数従属)が排除されていること
達人に学ぶDB設計 徹底指南書 - 縦の繰り返しをなくす1
データベース設計入門#2 正規化|無駄のないテーブル設計とは?【日本一わかりやすくDB正規化を解説します】
第二正規形のNGな例です。

第二正規化された例です。

- 第二正規形で分けられたテーブルからさらに従属関係にある項目(推移関数従属)を排除すること
達人に学ぶDB設計 徹底指南書 - 縦の繰り返しをなくす2
データベース設計入門#2 正規化|無駄のないテーブル設計とは?【日本一わかりやすくDB正規化を解説します】
第三正規形のNGな例です。

第三正規化された例です。

ER図
- データ同士の関係を図で表したもの
データベースのしくみ - テーブル同士が互いにどういう関係にあるかを明示する為の図
達人に学ぶDB設計 徹底指南書
ER図廻りを図にすると以下のようになります。

それぞれの用語の説明は以下になります。
- リレーショナルデータベースで言うテーブルのこと。顧客や社員、商品など
達人に学ぶDB設計 徹底指南書
- リレーショナルデータベースで言う列のこと。主キーは上のスペースに書く
達人に学ぶDB設計 徹底指南書
リレーションシップの説明については以下になります。
- 1つのデータに対して1つのデータが関連している
達人に学ぶDB設計 徹底指南書

- 1つのデータに対して複数のデータが関連している
達人に学ぶDB設計 徹底指南書

- お互いに1つのデータに対して複数のデータが関連している
達人に学ぶDB設計 徹底指南書

今回のまとめ
今回はデータベースの用語についてできる限りわかりやすく説明しました。
なおあくまで概略の説明にこだわったので言葉足らずなところはあるかもしれません。
ただし、この記事を読んでいただくことでゼロよりは知識が得られるのであればOKと思っています。
より知識を得たい場合は以下の書籍を読んでもらえれば確実に理解できると思います。
↓↓
データベースに関して概略を知りたい方はこちらがお勧めです。
単語ごとに章が分かれているのと図が多く入っているので理解しやすいと思います。
データベースについて設計から運用まで詳しく知りたい方はこちらがお勧めです。
文章は多いですがわかりやすく説明してくださっているので一通り詳細まで理解することができます。
Excelの「PowerQuery」について初心者向けの記事を書いています。もしご興味ありましたらのぞいてみてください。
コメント