データベースとは?

 以前、「データとは何か?」というものをテーマにデータに関してのお話をいたしましたが、今回はビジネスの中でもよく使われるデータの集まりであるデータベースとは何なのかをご紹介していきたいと思います。今回も短めで要点のみ絞ってご紹介出来ればと思います!
www.digitaldolphin.jp

目次

データベースとは?

 上でもご紹介した「データとは何か?」という記事では、データのフォーマットとして、json形式や表形式のお話をしましたが、そのデータの集まりがデータベースと呼ばれるものになります。そして、データベースにも実は種類がありますが、多くのビジネスマンが触れるデータベースというのは、リレーショナルデータベース(Relational DataBase:RDB)と言われる種類で、簡単にいうと表形式のデータベースになります。そのため、以下のようなものをデータベースのイメージとして覚えておいてもらえるといいかと思います。

表1:RDBのイメージ(顧客データ)

顧客ID 名前 性別 生年月日 都道府県
c001 田中 1990/03/10 東京都
c002 佐藤 1995/02/05 愛知県
c003 加藤 2001/08/08 大阪府
c004 伊藤 1993/09/20 東京都
c005 近藤 1997/12/02 北海道
c006 山田 2002/11/24 長野県
c007 山口 1984/02/26 神奈川県
c008 山崎 1999/07/30 埼玉県
c009 藤原 2005/01/10 千葉県
c010 藤堂 1988/03/13 東京都

 そして、この形式だと普段よく業務で利用されるExcelスプレッドシートとも同じ形式であるため、多くの人が扱いやすい形式でもあります。そのため、まずデータベースと言われれば、Excelみたいなイメージなんだというところまでは皆さんも問題ないかと思いますが、データベースとして扱っていくには、少しデータベースに関わる言葉を覚えないといけないも事実です。
 例も挙げられればと思いますが、「表1の顧客データに関して、データの件数は何件ありますか?」と言われれば10件ですという回答をする方が多くでしょう。そして、その10件と判断出来たのは10人の顧客がいるためだと思います。では、10人の顧客がいるというをデータベースの言葉で言い換えるとどうなるのかというと、「顧客データというテーブルにおいて、主キーである顧客IDのレコード数が10レコードある」という言い方になります。めちゃくちゃ意味の分からないことを羅列されているかもしれませんが、出てきた用語も含めてデータベースに関わる用語をExcelと関連させて、以下で解説します。

表2:データベース関連用語

#
用語
定義
補足/Excelで言うと何か?
1 テーブル データベースの種類ごとの単位のこと Excelでいうシートのこと
2 カラム データベースにおける属性のこと Excelでいう列のこと
3 レコード データベースにおけるデータそのもののこと Excelでいう行のこと
4 フィールド データベースにおけるデータの最小単位のこと Excelでいうセルのこと
5 主キー テーブル内でレコードを一意に識別することができるカラムのこと 顧客データにおける顧客IDや受注データにおける受注ID
6 外部キー テーブルのある列に、別のテーブルの特定の列に含まれる項目しか入力できないようにされたカラム VLOOKUPで参照する際の項目のようなもので、テーブル同士の結合に利用される
7 マスタ データベースにおいて、基礎情報となるテーブルのこと 顧客データや商品データのようなものが例
8 トランザクション データベースのおいて、発生した出来事の詳細(履歴)を記録したテーブルのこと 受注データやサイトのアクセスログデータのようなもの

 そうすると、「顧客データというテーブルにおいて、主キーである顧客IDのレコード数が10レコードある」が、顧客テーブルに10人の顧客が存在することを表していることと同じだとご理解頂けるでしょう。なんとなく、今回は深く触れませんが、「主キー」や「外部キー」というものが今後ご紹介するデータベースの加工や統合において、非常に重要なものとなるため、言葉としては絶対に覚えておいてください!

データベースの例

 ここまでデータベースとはどんなものかというイメージと関連する用語のご紹介をしていきましたが、この章ではよりイメージを強く持って頂くために、ただただよく登場するデータベースの例をご紹介していきます。今回は小売業でよく見られるものを中心にご紹介しますが、多くの業界で利用されているデータベースでも小売業と同じようなデータベースを取り扱っているケースが多いかと思いますので、まずは基礎としてしっかりとイメージを覚えておきましょう!

表3:顧客データ*1

顧客ID 名前 性別 生年月日 都道府県
c001 田中 1990/03/10 東京都
c002 佐藤 1995/02/05 愛知県
c003 加藤 2001/08/08 大阪府
c004 伊藤 1993/09/20 東京都
c005 近藤 1997/12/02 北海道

表4:受注データ

受注ID 受注日時 顧客ID 購入金額 購入店舗 キャンセル日時 返品日時
o001 2022/06/23 10:00:00 c001 ¥10,000 東京店
o002 2022/06/24 11:30:00 c002 ¥6,600 オンラインショップ 2022/06/24 11:35:00
o003 2022/06/24 12:00:00 c004 ¥6,500 東京店
o004 2022/06/24 12:10:00 c007 ¥4,000 横浜店
o005 2022/06/24 16:30:00 c001 ¥2,000 オンラインショップ 2022/06/25 7:00:00

表5:受注明細データ

受注ID 明細番号 sku 数量 金額 キャンセル日時 返品日時
o001 1 s001-01-01 1 ¥3,500
o001 2 s004-02-01 1 ¥6,500
o002 1 s002-01-01 2 ¥2,400 2022/06/24 11:35:00
o002 2 s003-02-01 1 ¥4,200 2022/06/24 11:35:00
o003 1 s004-02-02 1 ¥6,500

表6:商品データ

sku*2 品番 商品名 価格 サイズ カラー 在庫数 カテゴリ
s001-01-01 s001 シューズA ¥3,500 01 01 3 シューズ
s001-02-01 s001 シューズA ¥3,500 02 01 1 シューズ
s001-01-02 s001 シューズA ¥3,500 01 02 0 シューズ
s001-02-02 s001 シューズA ¥3,500 02 02 10 シューズ
s002-01-01 s002 アクセサリーA ¥1,200 01 01 2 アクセサリー
s003-01-01 s003 アクセサリーB ¥4,200 01 01 9 アクセサリー
s004-01-01 s004 シューズB ¥6,500 01 01 3 シューズ
s004-02-01 s004 シューズB ¥6,500 02 01 8 シューズ
s004-01-02 s004 シューズB ¥6,500 01 02 2 シューズ
s004-02-02 s004 シューズB ¥6,500 02 02 12 シューズ

データ型とは?

 ここまでデータベースのイメージまである程度出来るようになってきたかなと思いますが、もう一つ重要となるデータ型という概念も簡単にご紹介します!
 そもそもデータ型とは、「コンピュータプログラミングや計算機科学において、属性を持つデータを分類し、その扱われ方をコンパイラインタープリタに知らせるプログラム。単に型とも言われる。 多くのプログラミング言語は、整数型・浮動小数点型・ブール型・文字型といった基本データ型を備えている。」(データ型 - Wikipedia)とWikipediaでは、説明しております。データベースにおいて、何が関係あるのかというと、実は各カラムの一つ一つにはデータ型が定義されており、その型に当てはまらないデータが格納されるのを禁止するようにしております。そのため、例えば整数型のデータ型を定義しているところに、"テスト"のようなテキストが格納されようとするとエラーが発生します。また、"3"という値が格納されていたとしても、それがテキスト型のデータであれば、四則演算をしようとすればエラーとなるため、データ型をテキスト型から整数型に変換するといった作業が必要となります。(変換は、別途ご紹介します!)
 「では、どんなデータ型あるのか?」という疑問もあると思いますので、簡単によく利用されるデータ型を以下に共有します。(多いので、使わなそうなものは除外します笑)

# データ型 意味
1 INT型 -2^{32}~2^{32}の間の整数を表す。
2 BIGINT型 -2^{63}~2^{63}の間の整数を表す。
3 DECIMAL型 固定小数点型*3の数を表す。
4 NUMERIC型 固定小数点型の数を表す。
5 FLOAT型 浮動小数点型*4の数を表す。
6 DOUBLE型 浮動小数点型の数を表す。
7 DATE型 日付型ともいわれ、日付部分を含むが時間部分は含まない値を表す。
8 DATETIME型 日時型ともいわれ、日付と時間の両方の部分を含む値を表す。DATETIME型には、'1000-01-01 00:00:00' から '9999-12-31 23:59:59'の範囲制約があります。
9 TIMESTAMP型 日時型ともいわれ、日付と時間の両方の部分を含む値を表す。 TIMESTAMP には、'1970-01-01 00:00:01' UTC から '2038-01-19 03:14:07' UTC の範囲制約があります。
10 CHAR型 固定長の文字列データを表す。CHAR(8)と8バイトと指定されれば、常に8バイトになるように空白で補完される。
11 VARCHAR型 格納する文字列の長さの調整はされないデータを表す。VARCHAR(8)となっていても、8バイトになるように補完はされない。

さいごに

 今回はデータベースとは何かということをイメージを中心にお話ししてきましたが、今回ご紹介したイメージや用語を覚えておくことが非常に重要となりますので、基礎としてしっかりと覚えておいてほしいと思います。次回こそ、今回ご紹介したデータベースを扱うために必要となるSQLというプログラム言語をご紹介したいと思いますので、乞うご期待ください。

*1:※表1と同じです

*2:Stock Keeping Unitの略で、受発注や在庫管理を行う際の「最小の管理単位」のこと

*3:小数点が特定の位置に固定されているもの

*4:小数点以下の桁数が可変長の実数を格納することができるもの