モンハンNOWでデータ解析をするにあたり、Excelだとかなりやってられないのでデータベースを使用することにした。
今回はデータベースの作成方法になります。
データベースで何が出来る?
簡単に言えば、下記のようなことができます。
・データをルールに沿って整理して管理する
・多くの人が同時にデータを共有する
・欲しいデータを効率的に検索する
・保存されたデータの分析や加工を行う
・他のシステムと連携させ、マーケティングなどのサポートに活用できるNTT東日本のクラソルより引用
引用元:データベースとは?効果的な活用に役立つ基礎知識をわかりやすく解説|コラム|クラウドソリューション|サービス|法人のお客さま|NTT東日本
使用例
ちょっとわかりにくいので、例を出しましょう。
例えば、ある鉄道の1日乗降客数がデータして収集されているとします。
・その中から一番乗降客数の多い駅、少ない駅のトップ5を抜き出す
・1年のうち利用者が多い時期、少ない時期を抜き出す
こんなことができるようになります。
溜めておいたデータから必要と思われる部分だけ抜き出す…そして加工することによりさらに有益なデータとなる…これがデータベースの活用法の一つです。
データベースサーバーの種類
よく知られている4種類について解説します。
階層型
データのことをノードと呼び、あるノードから別のノードを派生させて、ツリー上に展開してデータを保存しているデータベースのことです。階層型データベースでは、派生前のデータを親ノード、派生後のデータを子ノードと呼び、親ノードは複数個のノードを持つことができ、子ノードは1つだけ親ノードを持ちます。
メリットはアクセスするための速度が速いことがあげられます。
これは、データの参照などのデータを操作する際にデータにアクセスするためのノードのルートが限定されるので、データにアクセスするための速度が速くなります。
関連性の高いデータの格納や、素早いデータの検索が必要なサービスの構築などにおすすめです。
デメリットとして、複数の親ノードが必要なデータの入力の難しさや、データを管理する際の柔軟性に欠けていることなどがあります。
基本的に親ノードは子ノードに対して1つだけなので、複数の親ノードが必要な場合には重複登録が必要になります。そのため、不自然なデータになってしまいます。
また、データの追加や削除などの際に、ルートを再登録する必要があり、データを管理するための柔軟性にも欠けています。
関係型(リレーショナルデータベース)
リレーショナルデータベースは、レコードという行とフィールドという列で構成され、テーブルと呼ばれる表形式のデータベースです。表形式のデータを互いに関連付けて、データ同士の関連性から新しい表を作成したりでき、エクセルを扱うように使用できるのが特徴です。
メリットは柔軟なデータの取り扱いができることや、複雑なデータの関連性を扱えること、データ処理の一貫性を保てることなどです。
特定のデータを操作したり、条件を付けてデータを検索することができ、また複数の表と組み合わせて、より複雑なデータの取り扱いも可能です。
デメリットはプログラムが複雑化しやすく、処理速度が遅くなる傾向にあるというデメリットがあります。複雑な関係性を持つデータの格納ができるがゆえに、大規模なデータを扱ったりする際に、プログラムが複雑になってしまいがちです。
ネットワーク型
階層型データベースと同じようにデータをノードで表し、あるノードから別のノードを派生させて、ノードのつながりが網目状になるように展開されるデータベースのことです。階層型データベースとは異なり、1つの子ノードが複数の親ノードを持てるような構造で、1つの親ノードも複数の子ノードを持てます。
メリットは階層型データベースで問題になっていたデータの重複を避けられるという点。
ネットワーク型データベースは、子ノードが複数の親ノードを持てるようになっており、複数の要素を持つ子ノードを1つのノードだけで表現でき、データの重複登録を防止できます。
そのため、階層型データベースよりも自然な形でデータを格納が可能です。
デメリットは階層型データベースと同じく、データの柔軟な取り扱いが難しいことなどです。
プログラムがデータ構造に依存していて、データ構造を理解していないとデータへのアクセスが難しく、ネットワーク型データベースの使用には、高度な知識が必要です。
NoSQL
データベースを操作するための言語であるSQLを使用せず、リレーショナルデータベースで扱うのが難しい大規模なデータに対応するためのデータベースです。
NoSQLにはさまざまな種類のものがあり、キーバリュー型やカラム指向型、ドキュメント指向型、グラフ型などの種類があります。
※SQL:構造化照会言語 (SQL) は、リレーショナルデータベースに情報を格納および処理するためのプログラミング言語のこと
メリットはリレーショナルデータベースよりも大規模なデータを扱えることや、リアルタイムに近い応答性能があることなどのメリットなどです。
リレーショナルデータベースよりも大規模なデータを扱えるため、ビッグデータの処理などに使用されています。
また、高度なデータベースチューニングの技術がなくてもデータの高速な処理が可能で、高い技術を持つエンジニアがいなくても使用可能です。
デメリットはデータの整合性が保てないことや、データの加工が難しいことなどが挙げられます。
NoSQLは、同時実行制御のための機能が緩く、大量のデータに素早く対処するために、データの整合性を保つのが難しくなっています。
また、NoSQLはSQL言語を使用しないので、複雑な条件を指定した検索などができず、データの加工が難しくなっています。
お名前ドットコムのデータベースは?
MySQL
SQLは先ほどの関係性(リレーショナルデータベース)がたくさんあると思っていたければ分かりやすいです。
そして、MySQLがインストールされており、利用可能です。
※MySQL:Oracleが開発してサポートするオープンソースのSQLリレーショナルデータベース管理システムのこと
データ操作ツールもインストール済み
MySQL操作ツール「phpMyAdmin」が使用可能となっており、簡単にデータを扱うことができます。
実際にデータベースを作ってみよう
データベース作成画面へ移動
画面左側にあるメニューから、【データベース】をクリック
続けて【データベース追加】をクリックする
データベースの名称とメモを入力し、【確認する】をクリック
内容を確認し、問題が無ければ【完了する】をクリックする
これで、データベースの作成は完了しました。
続けてユーザー登録
データベースを使用するためにはアクセス可能なユーザーが必要です。
左側のメニューから【データベース】をクリックして、一覧表示後に作ったデータベースの詳細をクリックします。
こんな画面が表示されるので、下にスクロールします。
表示された画面で【ユーザーを追加】をクリックします
必要項目を入力し、
入力したら、IDとパスワードを控えてから…【確認する】をクリック
表示された画面の内容を確認して、【完了する】をクリックする
完了画面が出れば、終了!
念のため、ユーザー登録状態を確認
左のメニュー、データベースをクリックして、ユーザー一覧から該当データーベースの【詳細】をクリックする
表示された画面に追加したユーザーなどの情報が表示されます。先ほどの登録内容と一致していればOKです。
今回はここまで