155
130

More than 3 years have passed since last update.

DBのスキーマとは何か?DBごとの違い

Posted at

DBについて調べたり、本を読んでいると「スキーマ」という言葉を目にします。

ですが、スキーマってなんですがと改めて聞かれると、言葉が詰まったので、スキーマについて調べてみました。

DBのスキーマとは?

データの構造、性質、データベースを操作するときのルールや表現法などを定義したもの。データベースの設計図のようなものです。

参照

3層スキーマ構造

db-schema.png
引用:https://itmanabi.com/db-schema/

外部スキーマ

概念スキーマで定義された論理データから必要なデータです。私たちが、データを取得した時のデータですね。

概念スキーマ

データベース上の論理データです。データベースに保存しているデータや、データとデータ同志の関係性の定義したものです。

内部スキーマ

概念スキーマで定義された論理データを具体的にどのようにDBMS内部に格納するかを定義したものです。

参考

OracleDBにとってのスキーマ

スキーマをユーザが所有するオブジェクトの論理集合と定義しています。

スキーマの目的は、

  • 1 つのデータベースを多数のユーザが互いに干渉することなく使用できる
  • ユーザにスキーマへのアクセス権限を与えることで、セキュリティを高める

です。
参考1
参考2

PosgrelSQLのスキーマ

p1-5.png
引用:https://www.dbonline.jp/postgresql/schema/index1.html

データベースに作成されるテーブルや関数といったオブジェクトをグループ化するものと定義しています。
スキーマを使用する理由は

  • 1つのデータベースを多数のユーザが互いに干渉することなく使用できるように するため。
  • 管理しやすくなるよう、データベースオブジェクトを論理グループに編成するた め。
  • サードパーティのアプリケーションを別々のスキーマに入れることにより、他の オブジェクトの名前と競合しないようにするため。

参考

MySQLのスキーマ

リファレンスに明記がないので、正しくは理解できていないのですが、
他のDBのようなスキーマという概念はなく、DB=スキーマで使われるケースが多いようです。

MySQL Server に関する情報

  • DB名
  • テーブル名
  • カラムのデータ型
  • アクセス権限

などを提供する「INFOMATION_SCHEMA」は存在するため、DBで共通するスキーマを存在するようです。
参考

155
130
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
155
130