10-データベース

データベース(Part.2)| 3層スキーマの概要 | 現役エンジニア&プログラミングスクール講師

目標

「3層スキーマ構造」について概要を理解する
「ANSI/SPARCの3層スキーマ」について概要を理解する
「外部スキーマ」「概念スキーマ」「内部スキーマ」の概要を理解する
「データモデル」の概要について理解する
「SQL」の概要を理解する

3層スキーマ

3層スキーマ

データベースは現実世界で発生したデータをコンピュータが扱える状態にして取り込む必要があります。人間が判別できる表であってもすべてがコンピュータで認識できるとは限りません。コンピュータにとって苦手な表現方法ではデータベースの操作が難しかったりします。こういったコンピュータにとって苦手な表現を取り除いて整理されたデータベースを作成するためには、モデリングの手法を知る必要があります。

3層スキーマ構造とは

DBMSでデータを管理するには組織的で整理されたデータベースが必要となります。この組織的で整理されたデータベースを構築する(定義する)時にデータベースの構造を3つの階層に分けて定義する方式(データベースモデル)を3層スキーマ構造と呼びます。

3つの層はそれぞれ【「外部スキーマ」「概念スキーマ」「内部スキーマ」】のパターンと【「概念スキーマ」「論理スキーマ」「物理スキーマ」】のパターンの2つがあります。

「ANSI/SPARCの3層スキーマ」の概要

「ANSI/SPARCモデル」は米国標準化団体の研究グループの「ANSI/SPARC」が定義したデータベースモデルで「外部スキーマ」「概念スキーマ」「内部スキーマ」の3つの層に分けてデータベースを定義する方式(データベースモデル)です。

3つに分けることで、「物理的データの独立性」と「論理的データの独立性」を確保できます。

「物理的データの独立性」…内部スキーマの状態が変わっても概念スキーマには影響を与えない。→データの属性や定義を変更する必要がないこと。利用するDBMSを柔軟に変更できます。

「論理的データの独立性」…概念スキーマの状態が変わっても外部スキーマには影響を与えない。→アプリケーションの内容を変更する必要がないこと。

「外部スキーマ」「概念スキーマ」「内部スキーマ」の概要

「外部スキーマ」「概念スキーマ」「内部スキーマ」をイラストにすると次のようなイメージとなります。

「外部スキーマ」「概念スキーマ」「内部スキーマ」は次のように利用目線によって分けることができます。

「外部スキーマ」…アプリケーションを利用するユーザーから見たときのデータベース
「概念スキーマ」…データベースの開発者から見たときのデータベース
「内部スキーマ」…DBMSから見たときのデータベース

「データモデル」を「リレーショナルデータモデル」としたときは次のようになります。

「外部スキーマ」…ユーザーに必要な項目を表示させる。SQL文で定義するビューに相当
「概念スキーマ」…データの属性や関係を表すもの。リレーションの定義
「内部スキーマ」…ファイル上のデータの配置・格納方法。

ここでは「データモデル」であって「データベースモデル」ではありません。※「データモデル」については後述

内部スキーマでは、ファイルへのデータの格納の方法(順序あり・なしでの格納)やデータの検索アルゴリズムの設定があります。

データモデルの概要

データモデルは現実世界のデータをコンピュータで扱えるように表現したものです。データモデルには「階層データモデル」「ネットワークデータモデル」「オブジェクト指向データモデル」「リレーショナルデータモデル」などがあり、データモデルの選択によってデータの操作が可能となります。(これは「論理的なレベルでの操作」であって物理的な部分の詳細には依存しません。)

「リレーショナルデータモデル」…テーブル形式で構造化されたデータモデルです。データをリレーションの集まりで表現します。数学の集合論に立脚したデータモデルとなります。

SQLの概要

SQLは「Structured Query Language」(構造化問い合わせ言語)といいます。SQLはデータベースの定義や操作を行うデータベース言語のひとつです。

SQLは次のように分類することが出来ます。

DDL
Data Definition Language
データ定義言語
テーブル作成・変更・削除
CREATE・ALTER・DROP
リレーション定義
リレーション制約の定義
PRIMARY KEY・
FOREIGN KEY・
CHECKなど
DML
Data Manipulation Language
データ操作言語
テーブルへの問い合わせ
SELECT
INSERT
DELETE
UPDATE
DCL
Data Control Language
データ制御言語
アクセス権限の設定
GRANT・REVOKE
TCL
Transaction Control Language
トランザクション制御言語
トランザクション管理
BEGIN・COMMIT・ROLLBACK

SQLは「ユーザーが直接入力」もしくは「アプリケーションから入力」して専用のドライバを呼び出すことで処理を行わせることができます。イメージは下のイラストのようになります。

今回は以上になります。次回以降ではテーブルの定義に関わる「概念スキーマ」について概念モデル・論理モデルを扱っていきます。

「データベース」おすすめ書籍6選【初心者用3冊&実践用3冊】| 現役エンジニア&プログラミングスクール講師「データベース」初心者の方がデータベースを基本からしっかりと理解するためのお勧めの書籍について取り上げています。また中級者の方が更に進んだ学習ができる実践的な書籍についてお勧めできる3冊を取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
10-データベース

データベース(Part.4)| 概念モデルから論理モデルへの変換(概念スキーマ)| 現役エンジニア&プログラミングスクール講師

2023年4月3日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
10-データベース

データベース(Part.7)| リレーショナル代数 | 現役エンジニア&プログラミングスクール講師

2023年4月6日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
10-データベース

データベース(Part.10)| MariaDBのインストール(Windows版)| 現役エンジニア&プログラミングスクール講師

2023年4月11日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
10-データベース

「データベース」おすすめ書籍6選【初心者用3冊&実践用3冊】| 現役エンジニア&プログラミングスクール講師

2024年5月15日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
10-データベース

データベース(Part.9)| 保全機能・排他制御・障害復旧 | 現役エンジニア&プログラミングスクール講師

2023年4月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
10-データベース

データベース(Part.6)| リレーションと整合性制約 | 現役エンジニア&プログラミングスクール講師

2023年4月5日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site