PR

データベース入門

アプリ間でデータの受け渡しが出来ないことを示すイメージ図 Web開発
記事内に広告が含まれています。
スポンサーリンク

 高度情報社会を生きる私たちにとって、「データベース」という言葉は聞き馴染みのあるものだと思います。住所録や商品管理、大学の教務システム・学習管理システムなどをはじめ様々な場所で使用されています。

 データベースは、言わば「縁の下の力持ち」的な存在であり、普段はその存在が意識されることはほとんどありませんが、システム開発・運用には欠かせない存在となっています。(ほとんどの場合、ログインを伴うWebシステムには、各ユーザのログインIDとパスワードを管理するデータベースがバックグラウンドで稼働しています。)

 本記事では、基本的なデータベースの概念や種類、データベース設計の基礎(開発者向け)をご紹介します。

スポンサーリンク
スポンサーリンク

データベースとは

 表計算ソフトで簡単に作成した住所録を例に考えてみます。これも広い意味(世間一般的な意味)では、データベースに相当しますが、これにはいくつかの課題があります。

まず、データの整合性(フォーマット)に関する課題です。表計算ソフトで個々人が作成した住所録は、それぞれフォーマットが異なる可能性が考えられます。(例えば、人によって電話番号を含めていたり含めていなかったり、メールアドレスを含めていたり含めていなかったり。)
フォーマットが統一されていない状態で、テーブル(表)同士を結合したり、検索をかけたりすると不具合が生じる可能性があります。

次に、アプリケーションとの独立性・データ流用に関する課題です。例えば、Aという年賀状作成ソフトにより出力された住所録ファイルは、仮に表計算ソフトから開くことはできたとしても、Bという年賀状ソフトで読み込めない可能性があります。前述のデータ整合性にも関わる部分ですが、特定のファイルで管理する場合、アプリケーション依存性が高く、同じデータを複数のアプリケーションで流用することが難しくなります。

これらの課題を解決するのがデータベースです。データベースシステムは、データベースサーバに構築されることが多く、インターネットを介して複数のアプリケーションで流用可能になります。また、データベース作成にあたっては、最初にスキーマ設計というフォーマットを厳格に定める作業を行うことで、データの整合性を保っています。

スポンサーリンク

データベースの種類

 また、データベースには様々な種類があります。以下は、代表的なデータベースの種類です。本サイトにおいては、リレーショナルデータベース、ドキュメント型データベースについて詳しく解説します。

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

 現在主流のデータベースの1つで、高校の情報では「関係データベース」と表現する場合もあります。皆さんが「データベース」という言葉から連想するイメージに最も近いと思われるのがこのタイプです。データをテーブルと呼ばれる表形式で管理し、テーブル間のリレーション(関係)を定義します。

ドキュメント型データベース

 近年の「AI」、「ビッグデータ」という言葉を背景に注目を集めているデータベースです。上述のリレーショナルデータベースでは、新たに追加・削除されるデータのフォーマットが厳格にチェックされ、あらかじめ定義したスキーマにそぐわないものは、処理を受け付けてもらえません。
一方、ドキュメント型データベースは、データの型や構造に寛容であり、扱うデータ構造の変化にも柔軟に対応できるという利点があります。
また、キーバリュー型のJSON形式で直感的に記述・管理できるという利点もあります。

他にもデータをツリー(木構造)のように構成する階層型データベース、ネットワーク上に構成するネットワーク型データベースなどがあります。

それでは、これまでの内容を踏まえて以下の問題を見てみましょう。

JSON形式で表現される図1,図2のような商品データを複数のWebサービスから取得し,商品データベースとして蓄積する際のデータの格納方法に関する記述のうち,適切なものはどれか。ここで,商品データの取得元となるWebサービスは随時変更され,項目数や内容は予測できない。したがって,商品データベースの検索時に使用するキーにはあらかじめ制限を設けない。

 階層型データベースを使用し,項目名を上位階層とし,値を下位階層とした2階層でデータを格納する。
 グラフデータベースを使用し,商品データの項目名の集合から成るノードと値の集合から成るノードを作り,二つのノードを関係付けたグラフとしてデータを格納する。
 ドキュメントデータベースを使用し,項目構成の違いを区別せず,商品データ単位にデータを格納する。
 関係データベースを使用し,商品データの各項目名を個別の列名とした表を定義してデータを格納する。

出典:令和5年度 春期 応用情報技術者試験 午前 問26

図1、図2にあるJSON形式のデータと問題文にある「商品データの取得元となるWebサービスは随時変更され,項目数や内容は予測できない」という部分が解答の決め手になります。
まさに、ドキュメント型データベースの項で紹介した特徴そのものですね。
したがって、「 ドキュメントデータベースを使用し,項目構成の違いを区別せず,商品データ単位にデータを格納する。」が正解になります。

スポンサーリンク
スポンサーリンク
Web開発
シェアする
しばをフォローする
タイトルとURLをコピーしました