データベースにおけるテーブルとは|SQLを使った作成方法も解説
COLUMN
最終更新日:2023年06月20日 / 投稿日:2023年06月20日
データベースは、決まった形式で整理されたデータの集合体であり、電子的に格納されています。データベースの中でもよく使用されるのが、リレーショナル・データベース(RDB)です。リレーショナル・データベースは、表形式のテーブルにデータを格納して管理しており、リレーショナル・データベースを操作する際には、リレーショナル・データベース管理システム(RDBMS)を使用します。
当記事では、リレーショナル・データベースやテーブルについて詳しく説明していますので、ぜひ参考にしてください。
1. データベースにおけるテーブルとは
データベースにおける「テーブル」とは、データベース内にデータを保存するための表のことで、イメージとしては「データを入れておく箱」のようなイメージです。
Excelの場合、データベースがExcelの「ブック」に該当し、テーブルは「シート」に該当します。
1-1. データベースに関連するその他の用語
テーブルは、複数の列(カラム)行(レコード)で構成されています。
カラム |
---|
カラム(列)はテーブルの垂直方向の並びのことで、特定の種類のデータを保持します。たとえば、顧客情報を格納するテーブルには「名前」「住所」「電話番号」などのカラムがあるでしょう。 各カラムは特定のデータタイプ(例:文字列・数値・日付など)を持ち、そのデータタイプに基づいてデータが格納されます。 |
レコード |
---|
レコード(行)はテーブルの水平方向な部分の並びのことで、特定のエンティティ(※)に関するデータを保持します。たとえば、社員情報を格納するテーブルのレコードには、1人の社員に関する情報(例:社員名、社員番号、部署、部署コードなど)が並んでいます。 ※エンティティ…ひとまとまりのデータの集合 |
フィールド |
---|
フィールドは、特定のレコード(行)内の特定のカラム(列)のデータを指します。Excelで言えば、「セル」のことです。たとえば、「田中太郎」という名前の顧客の電話番号は、「田中太郎」レコードと「電話番号」カラムの交点にあるフィールドに保存されます。 |
2. テーブルを利用するリレーショナル・データベース(RDB)
リレーショナル・データベース(RDB)は、データを整理して保存するためのデータベースの一種です。
1970年代にエドガー・F・コッドによって発明され、その理論は「リレーショナル・モデル」と呼ばれています。リレーショナル・データベースでは、データを「テーブル」形式で保存します。
2-1. RDBの特徴
RDBの主な特徴は、以下の通りです。
表を統合し関連性を示すことができる
リレーショナル・データベースの最大の特徴は、異なるテーブル間で関連性(リレーションシップ)を持たせることができる点にあります。簡易的ではありますが、以下の例で確認してみましょう。
表A | |||
---|---|---|---|
No. | 購入日 | 商品 | 顧客コード |
0001 | 2023/07/01 | 商品A | 123456 |
0002 | 2023/07/04 | 商品B | 789012 |
0003 | 2023/07/06 | 商品A | 345678 |
0004 | 2023/07/07 | 商品C | 901234 |
表B | ||
---|---|---|
顧客コード | 顧客名 | 住所 |
123456 | 田中太郎 | 東京都○○区~~ |
789012 | 山田花子 | 大阪府○○市~~ |
345678 | 高橋次郎 | 北海道○○町~~ |
901234 | 橋本愛子 | 福岡県○○市~~ |
上記のような表A、Bが別々にある場合、これらを関連付け、2つの情報を組み合わせた表Cを作成することが可能です。
表C | |||||
---|---|---|---|---|---|
No. | 購入日 | 商品 | 顧客コード | 顧客名 | 住所 |
0001 | 2023/07/01 | 商品A | 123456 | 田中太郎 | 東京都○○区~~ |
0002 | 2023/07/04 | 商品B | 789012 | 山田花子 | 大阪府○○市~~ |
0003 | 2023/07/06 | 商品A | 345678 | 高橋次郎 | 北海道○○町~~ |
0004 | 2023/07/07 | 商品C | 901234 | 橋本愛子 | 福岡県○○市~~ |
RDBを操作する際にはRDBMSを使用する
「RDBMS」とは、リレーショナル・データベース管理システム(Relational Database Management System)の略で、リレーショナル・データベース(RDB)の作成や操作、保守を行うためのソフトウェアです。有名なRDBMSの製品として、MySQL、PostgreSQL、Oracle Database、Microsoft SQL Serverなどが挙げられます。
データに一貫性がある(ACID特性を有している)
RDBでは、データの重複や欠落がない状態、つまりデータの整合性が保たれている状態を維持できます。これは、RDBMSが「ACID」という特性を持って運用しているためです。ACIDは、Atomicity(原子性)・Consistency(一貫性)・Isolation(独立性)・Durability(永続性)の頭文字を取った言葉となります。
3. SQLを使ったテーブルの作成方法
SQLで新しいテーブルを作る際、下記のようなCREATE TABLE文を使用します。
CREATE TABLE テーブル名 (
カラムの名前1 データ型 オプション,
カラムの名前2 データ型 オプション,
カラムの名前3 データ型 オプション,
……
全体向けのオプション
);
この構文では、テーブル名とそのテーブル内のカラム(列)とそのデータ型を定義しています。
3-1. CREATE TABLE文で使用できるデータ型
データベースにおける「データ型」とは、テーブルの各カラムに格納できるデータの種類や形式を定義するためのものです。CREATE TABLE文では、以下のように使用できるデータ型が決まっています。
データ型 | 具体例 |
---|---|
数値型 |
|
文字型 |
|
日付と時刻型 |
|
真偽値型 |
|
その他のデータ型 |
|
3-2. CREATE TABLE文で指定できるオプション
CREATE TABLE文では、以下のようなオプションを加えることで、より詳細な条件を設定できます。
NOT NULL | NOT NULLが設定されたカラムにはNULL値(値が存在しない状態)を設定できません。NULL値を設定しようとすると、データベースはエラーを返します。 |
---|---|
DEFAULT | カラムのデフォルト値を設定します。行を挿入する際に、カラムの値が指定されなかった場合、デフォルト値が使用されます。 |
AUTO_INCREMENT | AUTO_INCREMENTが設定されたカラムは、新しい行が追加されるたびに自動的に1ずつ加算されます。 |
PRIMARY KEY | PRIMARY KEYが設定されたカラム(またはカラムの組み合わせ)は、テーブル内の各行重複不可のキーとして機能します。主キー(プライマリーキー)はNOT NULLかつUNIQUEであることが必要です。 |
UNIQUE | UNIQUEが設定されたカラムには、テーブル内の他のどの行とも異なる値のみ設定できます。カラムの値がテーブル内で重複していないことを意味します。 |
3-3. テーブルを設計するときの注意点
テーブルの設計は、データベースのパフォーマンスと使いやすさに大きな影響を与えるので、以下の2点にも注意しましょう。
●正規化を考える
テータベースの正規化は、データの冗長性(重複)をなくし、データの整合性を保つために必要な作業です。正規化を行うことで、データの不整合や喪失が発生するリスクが減り、メンテナンスもしやすくなります。
●将来的なデータ追加を考える
データベースは一般的なソースコードよりも変更が大変であるため、基本的には将来的な機能追加を見越した上で設計するほうがおすすめです。
まとめ
テーブルの構造は、カラムとレコードで構成されており、実際にデータが入っているのがフィールドです。リレーショナル・データベースを使えば、異なるテーブルであっても、関連性を持たせられます。
また、SQLでテーブルを設計する場合はCREATE TABLE文を使い、必要に応じてNOT NULLやPRIMARY KEYなどのオプションを指定することもできます。テーブルを設計する際は、正規化を行い、将来的なデータ追加があるかどうかも考慮しておくとよいでしょう。