Edited at

誰でもすぐわかるデータベース基礎の基礎~

 【学習計画】十週間で知識ゼロからのデータ分析入門で第三週がデータベースとSQLを学ぶことです。今回はデータベースの構造から始まり、人気のオープンソースのDBMS製品MySQLの使い方についてまでご紹介していきたいと思います。

 なせ第一週のデータ分析の考え方と第二週のExcelについて説明しないかというと、理由は以下の通り。

 まず、オンラインでも書籍でもExcelに関するものが豊富で、一つを選らんで勉強すればだんだん身につけるようになります。また、データ分析の考え方を養うには、基本なコンセプトを知ったうえで、実際にデータを分析しながらその考え方を応用しなければいけません。ところが、データベースとSQLは、大量データの処理や自動化できないなど、Excelの解決できない問題を簡単に解けるだけではなく、ほかのデータ分析ツールとの架け橋にもなれます。だから、データベースとSQLについて、二回に分けて詳しく説明してたいと思います。今回はまずデータベースで、次回はSQLのこと。


1.そもそもデータベースとは?

 データベース(DB、Database)は複数のデータを保存するところで、つまりデータ集合です。このデータ集合内のデータを抽出したり、編集したりすることができます。Excelと違うのは、膨大なデータを一瞬にして自動的に整理してくれて、手動で管理する必要がなくて、しかもすべでのデータがみんなに共用使用できて、別々に編集することによる更新漏れを避けることです。

データベース

 現在、コンピュータ上でデータベースを管理するシステム(DBMS:Database Management System)のことや、そのシステム上で扱うデータ集合のことを、「データベース」と呼ぶことが多いです。

 以下は現在主流となっている「関係データベース」について解説します。

 関係データベースは、一つあるいは複数のテーブルを含めて、各テーブルに行と列があって、毎行に唯一のIDがあります。それはExcelと似ていますが、データベースのテーブル間に関係が存在しています。従って、データベース=複数のテーブル+テーブル間の関係という等式になります。

 上記の関係から、関係データベースの構築には二つの方面から考える必要となります。


1.1 テーブルの構造

  各テーブルに名前があり、列にそれぞれの項目名を設定し、行にデータを記録します。例えば、下図の「学生番号」というテーブルです。

データベース

 フィールド「学籍番号」は上記のテーブルの識別子と設定されます。同姓同名の学生がいるかもしれませんが、学籍番号が異なるので、ひとりの学生を特定することができるからです。このようなフィールドがテーブルの主キーと言います。


1.2 テーブル間の関係

 関係データベースがテーブルの集合で、同じデータベース内の複数なテーブルがお互いに結びついています。下図に示すような「学籍番号」と「学科」テーブルです。

「学籍番号」と「学科」は「学籍番号」によって関連付けられます。対応するデータベースでの操作がjoinです。このように2つのテーブルを組み合わせることによって、例えば、学生「伊藤尚」がどの学科に所属しているか調べることができます。

データベース


2.関係データベース管理システムMySQL


2.1 MySQLの特徴:

(1)MySQLはオープンソース(OSS)のRDBMSで、商用利用の場合はライセンスの購入が必要です。

(2)C言語、Java、R、Python、 PHP、Rubyなど多数の言語にて開発可能(ODBC、JDBC共に対応)

(3)標準的なSQL言語を使用しています。


2.2 MySQLのインストール

 ダウンロード:https://dev.mysql.com/downloads/windows/installer/8.0.html

 二番目をダウンロードします。

データベース

 ダブルクリックしてインストールを開始します。

データベース

 承認して「次へ」をクリックします。

データベース

 一番目を選択します。「Next」をクリックします。

データベース

 以下の画面が出るまで「Next」をクリックします。「Execute」をクリックします。

データベース

 データベースのrootパスワードを入力します。これをしっかり覚えてください。

データベース

 「Add User」をクリックして、ユーザ名とパスワードを入力します。

データベース

 「Next」か「Execute」をクリックします。以下の画面でさっき設定したrootのパスワードを入力します。

データベース

 「Finish」が出るまで「Next」か「Execute」をクリックします。「Finish」が出ると、MySQLのインストールが完了です。

 「Wordbench」を起動します。local を選択し、rootのパスワードを入力します。

データベース

 MySQLにビルトインのデータベースがあります。以下の画面でSQL文でデータを抽出できます。

データベース


3.データ分析ツールとMySQLデータベースの接続

 データベースがデータを保存する集合で、SQLでデータの抽出や集計などの簡単な操作を実現できますが、多角的な分析や高度な分析には、やはりデータ分析ツールでデータベースと接続し、ドリルダウン/ドリルアップ/ドリルスルーなどを行います。ここでFineReportでMySQLデータベースとの接続方法を説明します。    

 FineReportはほとんどすべてのデータベースに接続でき、複数のデータソースを一枚のテンプレートに関連づけます。一回接続すると、いつでも気軽にデータを取り出せます。手順は以下の通り:

 JDBCデータ接続を新規作成します。

データベース

 データベースタイプでMySQLを選択します。下図に示すよに、FineReportがSQL Server,Oracle、AccessやPostgreなどの主流データベースに接続できます。

データベース

 ドライバがデータベースのタイプによって自動的に表示されます。URL、ユーザーIDとパスワードを入力して、「接続テスト」をクリックします。「接続成功」が表示されると、データベースとの接続が完了します。

データベース

 それで、データクエリウィンドウでMySQLデータベースからデータを抽出できます。ほんとうに簡単でしょう?データを準備したら、帳票あるいはダッシュボードの作成を始めましょう~

2019010916.gif

FineReportダウンロードはこちら


そのほか

【学習計画】十週間で知識ゼロからのデータ分析入門について、ほかの記事