1.スキーマとは
データベースにおけるスキーマ
データベースの構造を表現する設計図
三層スキーマアーキテクチャと呼ばれる
データベースの設計と管理の複雑さを取り扱う上で効果的な方法
抽象的な概念のため、通常のユーザーや管理者が意識することはない
2.3層スキーマアーキテクチャ
外部スキーマ External Schema | 概念スキーマ Conceptual Schema | 内部スキーマ Internal Schema: | |
主たる部分 | ビューの定義 実際にユーザーに見える部分 | 論理的データの定義 データベース管理者によって管理される部分 | 物理的配置の定義 データベースのハードウェア部分 |
定義 | 終端ユーザーや特定のアプリケーションのためのデータベースのビューを提供する | データベースの全体的な論理的構造を示す | データが物理的にストレージ上にどのように格納されるかを示す |
特徴 | システムの複数のユーザーが求める異なるデータの表示やアクセス方法を定義する 一つのデータベースには、多くの外部スキーマが存在する | データベース内のすべてのエンティティ、関連、制約などの論理的な構造と関係を定義する 物理的な詳細や特定のユーザーのビューは無視される | 物理的なデータの配置、インデックスの使用、アクセスパス、データの物理的な表現などの実際のデータの格納方法を定義する |
目的 | 終端ユーザーやアプリケーションが必要とするデータの形式や表示方法をカスタマイズして提供する | データの論理的構造と組織を中立的な視点で表現し、データの整合性と意味を維持する | データの効率的な格納とアクセスを実現するための物理的な詳細を管理する |
3.3層の利点
・独立性の確保
物理的・論理的独立性
データの物理的な格納方法の変更が
アプリケーションやユーザービューに影響を与えることなく行える
独立性は、データベースの物理的な変更や最適化を容易にし、
アプリケーションの変更を最小限に抑える
外部・概念的独立性
ユーザーやアプリケーションが必要とするビューを、
データベースの全体的な構造から独立して定義できる
・柔軟性
データの物理的な格納方法やユーザービューの変更の際に
変更内容に対して柔軟に対応できる
・抽象化
データベースの複雑さを異なるレベルの抽象化で管理する
異なる利害関係者が、各々の関心事に焦点を当てて作業できる
・セキュリティ
外部スキーマを使用することで、
ユーザーやアプリがアクセスできるデータの部分を制限する
不要なデータへのアクセスを防ぎセキュリティを向上させる
・整合性
概念スキーマでデータベース全体の論理的構造を定義する
データの整合性、関連性、および制約を一貫して管理できる