クリップログ

ライフハック、インターネット、音楽、マネープランなど幅広く発信していきます。

データベースサーバー

インターネットサービス

データベースをわかりやすく纏めてみた(プログラミング無し)

投稿日:2019年6月9日 更新日:

こんにちわ。たくです。
最近プログラミングを趣味で勉強しているので自分のノートも兼ねて
データベースについてわかりやすく纏めてみようと思います。

リレーショナルデータベース(関係データベース)

現在様々なWEBサービスなどで使用されている
MySQLやPostgreSQLなどのデータベースは
リレーショナルデータベースを基本としています。
一般的なデータベースとはこのリレーショナルなものを指します。

リレーショナルデータベースは表形式のデータベースとなっており、
見た目としてはEXCELの表がイメージに近いと思います。
表の行(横)を「レコード」、表の列(縦)を「フィールド」、
表をまとめて「テーブル」と呼びます。

EXCELのデータを使用したことがある人はわかりやすいと思います。
以下の表のIDが該当しますが、”主キー”と呼ばれる
関係する情報を一意に(重複しないで)識別できる項目があります。
IDが判別すればアーティスト名も所属も定まります。
しかし主キーではない所属の項目からは
アーティストやIDを一つに特定することは出来ません。

IDアーティスト名所属
1B'zバーミリオン
2Mr.Childrenトイズファクトリー
3BUMP OF CHICKENトイズファクトリー
4米津玄師 ソニーミュージック
5桑田佳祐ビクターエンタテイメント

続いてアーティスト名のB'zにさらに以下のようなデータがあるとします。

アーティスト名曲名
B'zKARA・KARA
B'zFUSIDARA100%
B'zHOT FASHION
B'zイチブトゼンブ

上記のようにB’zには様々な曲がありますので
B'zと曲名でさらにデータベースを構築することができます。
しかし上の表で分かる通りB'z=ID[1]なので
B'zの曲はIDが1の曲であるということもわかります。

さらに、以下の表で曲名「イチブトゼンブ」にも情報があります。
この場合の発売日を特定するには一番最初のIDだけでは足りません。
ID(アーティスト名)+曲名「イチブトゼンブ」が指定されて
初めてその発売日が特定されるようになります。
このように主キー以外にも特定のためのキーが必要な場合の
この曲名「イチブトゼンブ」を”複合主キー”と言います。

曲名売上枚数発売日
イチブトゼンブ40万枚2009年8月5日

IDから辿って行って曲名「イチブトゼンブ」の発売日を
特定することを”参照”といい、逆に曲名「イチブトゼンブ」の
アーティスト名が「B'z」であることを確認することを
”逆参照”と言ったりします。

リレーショナルという言葉は文字通り”関係”を表す言葉です。
上記のようにデータとデータの関係を複数のテーブルで表し
それらを結合したり分解したりすることができます。

”関係”の3パターン

リレーショナルデータベースには3つの”関係”が存在します。
一対一の関係、多対一の関係、多対多の関係の3つです。

①一対一の関係

一対一の関係はその名の通り、
一つのデータと一つのデータがつながっている関係です
以下の表のようにID「1」はアーティスト名「B’z」の関係です。
ほかに誤魔化しようがない絶対的な関係が一対一の関係になります。
この関係はあまり多くありません。

IDアーティスト名
1B'z

②多対一の関係

多対一は、どちらか一方から見た時に2つ以上が関係している場合を指します。
以下の表のように所属「トイズファクトリー」には
複数のアーティスト名が登録されているため、多対一の関係になります。

IDアーティスト名所属
2Mr.Childrenトイズファクトリー
3BUMP OF CHICKENトイズファクトリー

③多対多の関係

多対多の関係は、お互い複数の関係を持つ場合を指します。
例えば、アーティストと曲名の関係で以下の表があります。

アーティスト名曲名
Mr.Children奇跡の地球
Mr.Childrenイノセントワールド
桑田佳祐壮年JUMP
桑田佳祐奇跡の地球

曲名「奇跡の地球」が共作のため重複しています。
上記のように複数のアーティストが同じ曲で参加している場合(共作)は
アーティスト名と曲名は多対多の関係になります。

以上が関係データベースに存在する3つの関係になります。

まとめ

上記のようにリレーショナルデータベースとは
EXCELシートのようなテーブルがたくさん集まってできたデータベースです。
ちなみに今まで見てきたデータベースですが
一つの表にまとめてしまうとこんな感じになります。

 IDアーティスト名所属曲名売上枚数発売日
1B'zバーミリオンKARA・KARAカップリング-
1B'zバーミリオンFUSIDARA100%カップリング-
1B'zバーミリオンHOT FASHIONカップリング-
1B'zバーミリオンイチブトゼンブ40万枚2009年8月5日
2Mr.Childrenトイズファクトリー奇跡の地球170万枚1995年1月23日
2Mr.Childrenトイズファクトリーイノセントワールド200万枚1994年6月1日
3BUMP OF CHICKENトイズファクトリー天体観測60万枚2001年3月14日
3BUMP OF CHICKENトイズファクトリーロストマン/sailing day25万枚2003年3月12日
4米津玄師 ソニーミュージックlemon200万枚2018年3月14日
5桑田佳祐ビクターエンタ壮年JUMP不明2018年7月23日
5桑田佳祐ビクターエンタ奇跡の地球170万枚1995年1月23日

だらだらとデータが重複して長ったらしいです。
中小企業だとEXCEL管理をしている事業所も多く、
上のような膨大なEXCELシートで
データ管理をしてる場合もあろうかと思います。
この大きなデータベースのテーブルを、今まで見てきた
小さなテーブルに分解していく作業”正規化”と言います。
”正規化”は データを変形して利用しやすくすることを言います。

※上記は今までの小さな表をそのまま纏めたためIDが重複しています。
本来であれば主キーである”ID”は表の行(レコード)を一意に特定できるので
厳密に言えば以下のようになります。

ID(データの通し番号)  歌手番号アーティスト名所属曲名
1001B'zバーミリオンKARA・KARA
2001B'zバーミリオンFUSIDARA100%
3001B'zバーミリオンHOT FASHION

正規化などさらに詳しくデータベースについて調べたい方は
各種書籍やWEBで調べてみてください。

以上がリレーショナルデータベースについてまとめたものになります。

ご覧いただきありがとうございました。

-インターネットサービス

Copyright© クリップログ , 2019 All Rights Reserved Powered by AFFINGER5.