はじめに
この記事では前回のSQL 初級編 Vol.1(SQLとは?+ MySQLインストール+DBeaver インストール)に続いてデータベース関連で最もよく出てくる基本用語(データベース、カラム、レコード、フィールド)について確認していきます。
※DBエンジニアと話してるとカラムとレコード、フィールドとかよく出てくるけど、とりあえずわかってるふりして出てくるたびに毎回こっそりGoogleさんに聞いているそこのあなた。がんばって覚えようぜという気持ち。(雑談)
基本用語の整理
データベース(Database)
データベースは複数のテーブルを中に持つバケツ(入れ物)のような存在です。サーバやPCにインストールされた1つのRDBMSの中には複数のデータベースを作成してデータを管理することができます。Excelで考えると1つのファイルに相当するものと考えるとわかりやすいと思います。私なりに現時点で考えてみましたがデータベースを分割しておくメリットは以下のような点ではないでしょうか。
- システムごとに管理するデータを完全に分離したい
- セキュリティ上、データベースを分離しておくことでデータが覗かれるリスクを低減できる
- ミスオペレーションのリスク範囲を局所化できる
- バックアップやリストアの範囲を分離できる
- 後々パフォーマンスの問題が発生したときに、データベース単位で分割(引っ越し)することでスケールが用意
テーブル(Table)
テーブルはデータベースの中で管理される1つ1つの表のことです。Excelでいうとシートに相当する存在です。Relatinal Databaseではこのテーブル同士が関連付けされて管理されることからRelationalと言われています。RDBMSではSQLを使ってテーブル同士のデータを必要に応じで組み合わせて取り出すことができます。
カラム(Column)
カラムはテーブルの中の"列"のことです。カラムの中には同じ属性(数値、文字、日付、時間などのデータ型のこと)のデータが保管されます。いろんなデータ属性のものが1つのカラムに入ることはありません。例えば、1つのカラムに数値データと文字データが同時に入ることはないということです。当たり前ですが異なるデータが1つのカラムに保存されていては集計などの管理ができなくなるので、きれいにデータ型(Int, CHAR, DATE etc)を揃えて格納する必要があります。そのためカラムを作成、追加、変更する際には必ずデータ型を指定します。
レコード(Record)
レコードはテーブルの中の1つ1つの行に保管されたデータのことです。
フィールド(Field)
フィールドはテーブルの中の行と列が交差する1つ1つのセルのことです。データベースにおいてデータを管理する一番小さな単位になります。
まとめ
RDBMSの中にデータベース、データベースの中にテーブル、テーブルの中にカラム、レコード、フィールドが含まれている構造となっています。SQLを扱う上では常にこのカラムやレコード、データベースの構造を理解していないといけません。上に書いた図をイメージできるようになること、Excelで考えると何だっけ?という形で頭の中を整理するとわかりやすいと思います。