データベースを学ぼう!データベースのモデルとDBMS(データベース管理システム)

前回のデータベースの種類の話の続きです。

今回は、「データベースのモデルDBMS(データベース管理システム)」についていっしょに学んでいきましょう。今回、学ぶ内容はこちら。

  • データベースのモデルとは
  • 3層スキーマアーキテクチャ
  • 関係モデルとは
  • DBMS(データベース管理システム)とは

データベースのモデルとは

データベースを構築するとき、現実にあるデータをどのように構造化して、単純化して、コンピュータ内部で表現するかが必要になります。

この、データをどのように構造化して単純化してコンピュータ内部で表現したものが「データベースのモデル」です。

データのモデル化を説明した図

それでは、これから「データベースのモデル」についてみていきましょう。

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

データベースのモデルをまとめる時に、理想的なデータベースの枠組みがあります。それが、3層スキーマアーキテクチャ です。

3層スキーマアーキテクチャの図解

スキーマって何?

データベースの論理的、物理的なデータ構造のこと。

3層ってどんなのがあるの?

①外部スキーマ

アプリケーション制御時に利用します。
データ利用者(ユーザー)からの見方を表したもの(論理的な独立性)
(例)SQLのビュー

➁概念スキーマ

データベース管理者が定義・メンテナンスを行います。
データベース化対象業務とデータの内容を論理的な構造として表現したもの。
(例)テーブルの正規化、CREATE TABLEによる表定義

③内部スキーマ

データを記憶装置上にどのような形式で格納するか表現したもの(物理的な独立性)。
(例)ファイル編成、インデックスの設定

実装するメリット

3層あることで、スキーマが変更された時の影響を与えないようにして、プログラムからの独立性を保証しています。

3層スキーマアーキテクチャを具体的に設計・実装するための方法や手順が「モデル化」です。

参考:AWS エージェンティックAI | データモデリングとは?

では、データベースをどのような形で表現すればいいか。データベースの最も一般的なものに関係モデルというものがあります。前作で紹介した「3.リレーショナル(関係)型データベース」を構築する元となっているモデル(理論)です。

関係モデルとは

関係モデルって何?

データベースの構築でもっとも一般的な手法。
Excelの表に似たデータの形をしてます。

関係モデルについての図

①表(relation:関係)

ファイルに相当するもので、通常、一つのデータベース内に構成が異なる複数の表が存在します。

②列(attribute:属性)

フィールド(項目)に相当し、実際のデータが格納されます。1つの表の列構成は全行で同じです。

③行(tuple:組)

1行がファイルにおける1レコードに対応します。

④定義域(domain:ドメイン)

各列(属性)が取り得る値の集合です。1つ1つの値を実現値と呼びます。

関係モデルの特徴について

関係モデルには以下のような特徴があります。

  • 関係は表に対応付けられる
  • 属性は数学的モデルである、順序という概念は存在しない
  • 列には二次元の表で管理し、列順が存在する
  • タプル(組)は重複を許容しない
  • 行は演算の結果次第で重複が生じることがある
  • 定義域は値の取りうる範囲、形式を制限するデータ型に対応

関係モデルについて知ることができましたね!

関係モデルは、DBMS(データベース管理システム)を使用することで実現することができます。

DBMS(データベース管理システム)とは

データベース管理システムって何?

データベース管理システムの例

利用者との間に介在して、データベースの管理を効率よく行うソフトウェア(ミドルウェア)のこと。
それでは、データベース管理システムの機能を確認してみましょう。

DBMS(データベース管理システム)の機能一覧

機能内容
データベース定義機能データベースの作成(スキーマの定義が可能)
データベース操作機能データベースの操作(SQLを使います)
データベース制御機能保全機能(排他制御、障害回復)、参照制御、表制約
データ機密保持機能ユーザ認証、アクセス制御、利用ログの記録
索引(インデックス)データの検索を高速化するための機能
オプティマイザ最も効率がいい実行計画を行う
→アクセスパスに着けられた優先順位をもとに選択するルールベース
→統計情報をもとに見積もられたコストで選択するコストベース

混同しがちな用語について

データベースを学習していると、用語が混同してしまうことがあります。特に、「SQL」と「MySQL」「SQLite」でしょうか。SQLはデータベースを操作するための言語。MySQLとSQLiteはDBMSの一種です。

SQLとSQLite(データベース管理システム)の違いを説明した図

最後に

以上、「データベースのモデルとDBMS(データベース管理システム)」に関する項目についてでした!
少しでも、伝わっていれば幸いです!

次は、「データベース設計」についての記事になります!お楽しみに!

作者情報

お酒が好きです。
休日は、某村・無人島づくりゲームと推し活に励んでいます。