目的:「アプリケーション」、「ミドルウェア」、「データベース」とは何かを理解する
はじめに
今回の記事では「アプリケーション」、「ミドルウェア」、「データベース」について紹介させて頂きます。「アプリケーション」は耳にしたことある人が多いかと思います。逆に「ミドルウェア」、「データベース」は聞き馴染みがあまりない方が多数かと思われます。これらをわかりやすく説明させていただきます。
アプリケーションとは?
アプリケーションとはOS以外のソフトウェアで、文章作成ソフトや表計算といった個別の目的のために作成または使用されるプログラムのことです。具体的には通話アプリやゲーム、その他にも無数のアプリケーションが存在します。
ミドルウェアとは?
ミドルウェアはソフトウェアの一種です。ミドルウェアはOSとアプリケーションの中間に存在するソフトウェアでサーバーやデータベースとのやり取りはミドルウェアが担っています。
簡単に説明するとある機能に特化してOSとアプリケーションの手助けをするソフトウェアです。
例として銀行アプリでのミドルウェアの図を下記に示します。
ミドルウェアの種類
Webサーバー
普段、PCやスマホのブラウザから見ているコンテンツはWebサーバーから送られています。Webサーバーから送られるコンテンツには主に静的コンテンツと動的コンテンツがあります。その中でも動的コンテンツはアプリケーションサーバーに処理を要求して返ってきた結果を見せています。
静的コンテンツとは?
静的コンテンツとは企業のホームページなどの誰が見ても表示内容が変わらないコンテンツのことでWebサーバー内に保存されています。
動的コンテンツとは?
動的コンテンツはショッピングサイトや銀行の残高を表示するコンテンツで見る人によって少し内容が変わります。
アプリケーションサーバー(AP)
アプリケーションサーバーは動的コンテンツを生成するもので、例えば銀行アプリで「残高10万円から先日に3万円を引き出したら残りの残高は7万」と計算してWebサーバーに残高を送ります。ただし、元々の残高がいくらで、何円引き出したかはデータベース管理サーバーにあるのでそれらのデータをリクエストしてもらった情報で計算などを行っています。
データベース管理サーバー(DB)
もう一度、銀行アプリで例えるとデータベース管理サーバーは利用している人の生年月日や住所、さらに何日にどこの場所で何円引き出した(預けた)かを管理しています。このような個人の情報や会社の情報などを管理しているのがデータベース管理サーバーです。如何に安全性が高く、素早くデータを呼び出せるのかが大事になります。
データベースとは?
データベースは構造化した情報またはデータの組織的な集合で、コンピューターシステムに電子的に格納されています。データの管理の仕方には3種類あるのでこれらを説明していきます。
階層型データベース
階層型データベースはツリー状の管理の仕方で系統樹のようなものです。
この管理方法は上層への検索するためのルートが少ないため素早く検索できます。しかし、重複するデータには弱く柔軟性に欠けるのが欠点です。
ネットワーク型データベース
関連性のあるデータを相互に結び付けて管理する方法です。
この方法で管理すると重複でせずに管理ができます。しかしデータ構造に依存してしまうのが欠点です。また検索までの時間は長くなってしまうのも欠点です。
リレーショナルデータベース
これは表のような形式で管理する方法です。
テーブル同士を組み合わせで表示できるので複雑に関連している情報でも整理がしやすく、表形式で表すので人が視覚的に理解しやすいのが利点です。現在はこの方法が主流となっています。しかし、データを管理するプログラム自体が複雑になるため、この点がデメリットになります。