【MySQL入門】新人エンジニアのための3層スキーマの理解

こんにちは。ゆうせいです。
3層スキーマ
3層スキーマは、データベース設計の一つの考え方で、情報システムの構造を3つのレベルに分けて考えます。なぜ、層に分ける必要があるかといえば、データベースは複雑な仕組みなので色々なレベルで関わる人が出てくるからです。例えば、MySQLのようなデータベース管理システムそのものを作る人と、そのデータベース管理システムを使ってシステムを作るみなさんのようなエンジニア、さらには単にデータベースの結果をビジネスに活かせれば良い一般ユーザーが存在します。
- 内部スキーマはデータの物理的な保存に関するレベルで、データがどのようにストレージ上に配置されるか、アクセス方法、インデックスの設定などを含みます。実際のハードウェア上でのデータの保存方法に関する詳細な設計です。一般的にはデータベース管理システムそのものを作るエンジニアが関わる層です。例えば、MySQLではデータの並べかえや検索にアルゴリズムで学んだ木構造の発展形であるB-Tree 【Balanced Tree】アルゴリズムやハッシュ法を使いますが、その詳細について一般のエンジニアが知ることはあまりありません。
- 概念スキーマは全体のデータベースの構造を表すレベルの設計です。すべてのエンティティ、その属性、およびそれらの間の関係を示します。内部スキーマとユーザーの視点である外部スキーマとの間の中間レベルとしての役割を果たします。このレベルでは、データの内部的な配置には関心を持たず、データの関係に焦点を当てます。みなさんのようなシステムエンジニアの方がデータベースの表をどのように分割するかを考えるのはこの概念スキーマになります。例えば、すでにご紹介したER図や正規化は概念スキーマレベルのお話になります。
- 外部スキーマはエンドユーザーやアプリケーションプログラムがデータベースをどのように見るかというレベルです。異なるユーザー(グループ)は異なるビューを持つことができます。例えば、MySQLではView表といってその名の通り「見るための表」を作ることができます。そして特定のユーザーが必要とするデータだけを集めたビューを作成してそのユーザーに提供することができます。一般ユーザーの視点でのデータベース設計と言えます。ER図や正規化によってテーブルは複数のテーブルに分割されますが、View表によって、また統合することができるのです。

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。