📖

データベースの活用法(基礎)

に公開

データベースの活用法について

こんにちは!わいわわです。
前回まででデータベースの導入やリスクなど、データベースの理解を深めてきました。
データベースは日々進化しながら生活を便利にするための基盤として存在しています。
今回はデータベースがどのように存在してるのか、
どう活用するのかという部分に触れていきます!

クライアントソフト

データベースを取り扱うときの基本はコマンドを使った操作が基本です。
開発者であれば馴染みがありますが、慣れていない人は難しいので
より簡単にデータベースを操作する方法としてクライアントソフトを使う方法があります。

クライアントソフトは

  • データを見やすいように整理して表示する
  • 表計算ソフトのように必要な作業をメニューから選択し操作ができる
  • そのため、簡単な操作やデータ確認に適している
    といった特徴があります。
    ただし、データベースの全ての操作が対応しているとは限らないというデメリットもあり、
    対応している機能を超えた操作はできないところは注意すべき点です。

一方、クライアントソフトならではの、
本来のデータベースにはない機能が実装されているものもあります。
・ER図作成、入力補完、パフォーマンスの確認など
使い分けていくことが大事ですね!

主なクライアントソフト

ソフト名 対応DBMS 補足
Sequel Pro MySQL Macのみ
MySQL Workbench MySQL ER図、パフォーマンス確認も
phpMyAdmin MySQL Webブラウザから操作できる
pgAdmin PostageSQL 多くの環境に対応
A5:SQL Mk-2 Oracle Database 入力補完、分析、ER図も

データベース管理システムごとに違ったり、
OSごとに違ったりするんですね!

WordPressからみるアプリ×Web上のデータベース

ソフトウェアやWeb上で動作するツールの中にはデータベースと連携して利用するものもあり
代表的なものにWordPressがあります。

WordPressはブログ構築ツールとして有名なソフトウェアで
管理画面から生地の投稿やデザイン変更を行うことができ、
プログラムの知識がなくても比較的簡単にブログサイトを作成できるツールです。

この中で記事の内容やサイトの設定内容などがデータベースを用いて管理されています。
このように特にWebやスマホアプリ上でデータを保存したり、
それを表示したりする必要のあるアプリケーションの多くは裏側ではデータベースを用いています。
アプリケーションを開発・構築するうえでは欠かせませんね!

ライブラリ・ドライバ

プログラムの中からデータベースを操作する必要がある場合、
ライブラリドライバと呼ばれるものを使って操作を行います。
イメージとしてはプログラムとデータベースの橋渡しを行う役割です。

O/Rマッピング

プログラム言語特有の記述形式やデータ構造で
データベースを扱うための仕組みのことをO/Rマッピングといいます。
O/Rマッピングによって自然にプログラムからデータベースを扱うことができるようになります。
また、この役割を担うもののことをO/Rマッパーといいます。

プログラムからデータベースに接続すると
プログラムの名でSQL文を記述する必要があり、
SQL文を組み立てる処理を別途実装する必要がでてきます。

そうならないためにO/Rマッピングを行っているんですね!

例)Ruby on Rails

スクールやPFの作成ではRuby on Railsを使用していましたが、
今思えば無意識にO/Rマッピングを使用していたようでした。

User.all
SELECT * FROM Users;

これは同じ意味で、O/Rマッピングを使うことで
上記の方の表示にできていたのですね。

裏ではSQLに変換されてデータベース上で実行されているというイメージです。

クラウドサービスの活用

データベースを利用する際には
外部の事業者によって提供されているクラウドサービスを使う方法があります。
この場合では自前で必要なものを調達する必要がなく、Web上から24時間いつでもデータベースを構築することができます。

スケールアップやスケールアウトに関しても、
プランの設定変更だけで手軽にできるので、
負荷のかかる日や時間帯だけ一時的にサーバの性能を上げるといった使い方も可能です。

代表的なクラウドサービス

サービス名 対応DBMS
Amazon RDS MySQL PostageSQL Oracle MicrosoftSQLServer
Cloud SQL MySQL PostageSQL SQLServer
Heroku Postage PostageSQL

AmazonRDSはAmazonが提供しており、CloudSQLはGoogleが提供しております。
どちらも高機能なサービスで、
私がポートフォリオ環境を構築した際はAmazonRDSを使用しました!

Heroku Postageは2社のサービスと比べると昨日は絞られていますが
設定が少なく、利用のハードルが低いことが特徴です。

キャッシュについて

キャッシュ
一度利用したデータを読み込みの速いディスク領域に一時的に保存しておき、
再び同じデータを利用するときに高速に読み込めるようにしておく仕組みのこと

身近な例では「インターネットブラウザ」があり、
ブラウザでページを表示する際に一度読み込んだ画像などのファイルを手元に保存しておき、
2回目以降同じページを読み込む際に利用することで表示を高速化しています。

この機能をデータベースに取り入れることで取得の性能を上げることができます。
キャッシュの仕組みは自前で用意することもできますが、
データベースと連携したフレームワークやソフトウェアにあらかじめ導入されている場合もあります。

ビッグデータについて

売上アップや業務効率化のためにビッグデータが活用される事例があります。
最近、よく耳にしますよね!
ビッグデータは巨大なデータのまとまりのことで、
ビジネスの現場の様々な場面で有効活用されています。

例)小売店

・仕入れる商品(季節、種類、産地、価格、味)
・購入者(年齢、時間、商品)
・お店(商品の配置、ディスプレイ方法)
 ↓
データベース
 ↓
・いつ、どの商品をいくらで仕入れればいいのか
・お店に何をどのように並べると売上が高いか

など、このように活用していくイメージです。
なのでまとめるとビッグデータの活用で
・ビジネスの拡大
・コストの削減
・新たなビジネスの創設
などを実現することができます。

AIデータベース

データベース自体にAI(人工知能)の機能を取り入れた
AIデータベースという製品も出てきています。
IBMが発表した「IBM Db2 the AI database」では、
・複数の場所に点在して個別管理されているデータを集約することで横断した分析を行う
・SQLをさらによい結果を得るためにチューニングする
・SQLの代わりに「月ごとの平均売上」といった言葉でデータ検索する機能
・売り上げの結果をグラフ表示する
・将来の予測を行う機能
などなど、これまでのデータベースを超えた使い方もできるようになっています。

所感

今回はデータベースの活用法の学習を進めました。
データベースには、データを便利に扱うための機能がありますが、
やはりその先の目的としてはデータを効率的に保存して
分析結果によって何かに、ビジネスなどに役立てるといった目標があると思います。

そういったDX推進がもっと広まれば日本はもっと幸せになる気がします!
引き続き学習を頑張ります!

Discussion