データベースの3層スキーマ
⭐️データベース学習を始めるとまず最初に目にする"3層スキーマ"について
現在はリレーショナルデータベースと呼ばれるデータ管理システムが主流。
その設計には3層スキーマという考え方が存在する。
これは『データベースの設計図を3つの視点に分けて見てみよう』という考え方のこと。
データベースを3つの視点で見る
・外部スキーマ:
アプリ、サイトのユーザー視点
・概念スキーマ:
データの構造、設計
・内部スキーマ:
データをどう保存するか、物理的な保存方法
家づくりに例えると・・・
・外部スキーマ(住人からの眺め):
完成した家を、それぞれの立場から必要な部分だけ見るための窓【利用者ごとの見え方】
・概念スキーマ(設計図):
どんな部屋があって、どう繋がっているかを決める【論理的な設計】
・内部スキーマ(工事仕様書):
その設計図を、どんな材料と工法で建てるかを決める【物理的な保存方法】
これら三つに分けて設計考えないと、
アプリの見た目を変更したいのに、データベースの根本設定まで変更してしまった。といった事態が起こってしまう。
⭐️各スキーマの解説
・外部スキーマ
役割:アプリや利用者のための「窓口」。
内容:
データベースの中から、必要なデータだけを抜き出した部分的に見せる。
例:「人事アプリ用」「経理システム用」など、用途に合わせた見せ方。
目的:
利便性向上:利用者にとって必要な情報だけを見せるので使いやすい。
セキュリティ:経理担当者以外には給与情報を見せないなど、権限に応じて情報制限可能。
・概念スキーマ
役割:データベース全体の論理的な設計図。
内容:
データベースにどんなデータ(テーブル、項目)があり、それらがどう関連しているかを定義。
データの一貫性を保つためのルール(制約)も含む。
・内部スキーマ
役割:データを物理的にどう保存するかの定義。
内容:ファイル形式、保存場所、インデックスの作成など、コンピュータ寄りの設定。
目的:
パフォーマンス向上:どうすれば最速でデータを取り出せるかを追求する。
効率化:どうすれば最小の容量でデータを保存できるかを考える。
この「3層スキーマ」という考え方のおかげで、データベースは変更に強く、安全で、使いやすいシステムになっている。