DBMSにおける「3層スキーマアーキテクチャ」とはそれぞれのスキーマの役割とは?

3層スキーマアーキテクチャを用いることで、データベース設計の安全性、拡張性、クライアントからのアクセス性を向上させることができる。基本的な仕組みと幾つかの例を説明する。

» 2024年08月23日 10時30分 公開
[Raghu Karan AdapalaTechTarget]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 データベースを活用するには、分散アーキテクチャにおけるデータベースの役割、データベース内部で機能するコンポーネント、データベースの固有の役割や責務など、多くの異なる観点で考慮すべきポイントがある。

 またデータベースは非常に複雑なので、使いこなすには、どのように構築、構成されているのか理解を深めておく必要がある。例えばデータベース管理システム(DBMS)では、「3層スキーマアーキテクチャ」を用いることで、設計の安全性、拡張性、クライアントからのアクセス性を向上させている。本稿では、3層スキーマアーキテクチャについて解説する。

3層スキーマアーキテクチャとは

 3層スキーマアーキテクチャは、データベースを以下の3つの異なるレイヤーに分割するものだ。

  • 内部スキーマ
  • 概念スキーマ
  • 外部スキーマ

 この階層化により、データベースの接続の可能性、安全性、拡張性が高まり、クライアントからアクセスしやすくなる。

内部スキーマ

 毎時数PB(ペタバイト)単位の膨大なデータをネットワーク経由でやりとりして保存するデータベースもあれば、毎時数件のトランザクションしか処理しないデータベースもある。こうしたデータを管理、保存する方法を定義するのがDBMSの内部スキーマだ。

 内部スキーマは、データを物理層に保存する方法や、トランザクション分離や同時実行制御などの関連タスクを実装する方法に関連しており、主に次のタスクを担当する。

  • テーブルのインデックス設定
  • サポート対象のストレージメディアタイプの特定
  • ログファイルの書き込み先の決定
  • 低レベル認証の実行
  • 実装するデータ型とその実装方法の選択

 データベースをストレージに保存する方法はデータベースベンダーの数だけ存在し、複数の内部スキーマを用意するベンダーも多い。「MySQL」では、インストール時にユーザーがストレージエンジンとして、XA準拠の「InnoDB」か、読み取りに最適化された「MyISAM」のどちらを使うかを選択できる。

概念スキーマ

 データベースは、さまざまな方法で相互に結合されたテーブルで構成されている。各テーブルには互いに関連するデータが含まれており、それらが行と列の形式で整理されている。

 データベースの設計や、データを整理するためにテーブル同士の関係を定義するのは、ソフトウェア開発プロジェクトの成否を左右する非常に難しい作業だ。

 データベース用にデータを構造化する方法と、データベース管理者が論理データベース層を構築できるようにするために提供されるツールは、概念スキーマに含まれる。

 概念スキーマは、主に次のタスクを担当する。

  • エンティティ関係図(ERD:Entity Relationship Diagram)で表されるデータベース設計の実装
  • クエリの対象となることが多いテーブルのインデックス作成
  • テーブルおよび列へのセキュリティ属性の割り当て
  • 多種多様なデータ型の選択

 概念スキーマの興味深い側面は、管理者がデータ型を選択できることだ。どのデータベースでもサポートされるデータ型の数は限定される。概念スキーマでは、管理者は32bit整数型、64bit浮動小数点数型、バイナリラージオブジェクト(BLOB)型、キャラクタラージオブジェクト(CLOB)から選択できる。ただし、概念スキーマで選択できるのは、内部スキーマで実装されているデータ型のみだ。

外部スキーマ

 クライアントアプリケーションは、エンタープライズデータベース内のテーブル全てを参照するわけではない。そのため、クライアントからのアクセスを簡素化し、バックエンドシステムのセキュリティを強化する目的で、クライアントアプリケーションには、アプリケーションに必要なデータのサブセットのみを表示する概念スキーマの外部ビューを用意する。

 例えば、オンライン注文システムのデータベースには、在庫がある部品の数や取り寄せる必要のある商品に関する情報などが含まれる。だが、ユーザーを登録するだけのマイクロサービスにはこれとは異なる情報が必要になるため、外部からデータにアクセスするために独自のビュースキーマやユーザースキーマを用意する必要がある。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。