以前、「データとは何か?」というものをテーマにデータに関してのお話をいたしましたが、今回はビジネスの中でもよく使われるデータの集まりであるデータベースとは何なのかをご紹介していきたいと思います。今回も短めで要点のみ絞ってご紹介出来ればと思います!
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 | BIGINT型 | |
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というプログラム言語をご紹介したいと思いますので、乞うご期待ください。