PR

データディクショナリとは?初心者向けに1分で解説

Database

データディクショナリとは、データベースの「説明書」のようなものです。

参考 データベースとは?

データディクショナリがあることで、多くの人がデータベースを効率よく、正確に使うことが可能になります。

  1. 何のためにあるのか?: データディクショナリがあると、データベースに何のデータが入っているのか、どういう意味なのかが簡単にわかります。
  2. 何が書かれているのか?: データの名前(例:「氏名」)や、そのデータのデータ型(例: 文字列、数字)などが記されています。
  3. 誰が使うのか?: この辞書は、プログラマーやデータアナリスト、企業のデータを扱う人々にとって役立ちます。
  4. どうやって作るのか?: 専用のツールを使うこともあれば、エクセルやテキストファイルで手作業で作成することもあります。
  5. 更新は?: 新しいデータが追加されたり、既存のデータが変更されたりしたら、データディクショナリ合わせて更新する必要があります。

このページでは、データディクショナリとは何か?を1分で簡潔に分かりやすくご説明します。

このページで学べる内容
  • データディクショナリとは
  • DBMSごとのデータディクショナリの例

プログラマーやシステムエンジニアを目指す方であれば頭に入れておきたいIT基本知識の1つです。是非最後までご覧下さい。

スポンサーリンク

データディクショナリとは

データディクショナリは、データベースの「辞書」のようなものです。データの名前や型、何に使われるのかなど、データに関する情報をまとめておく場所です。

データディクショナリは、システム的に自動生成されるものもあれば、独自にExcelなどで管理されることもあります。

システム的なデータディクショナリ

多くの現代のデータベース管理システム(DBMS)では、システムカタログと呼ばれる特殊なデータベースやテーブルがあり、これがデータディクショナリの役割を果たします。ここにはテーブル名、カラム名、データ型、制約など、データベーススキーマに関するメタデータが自動的に格納されます。

手動で作成するデータディクショナリ

システムが自動的にデータディクショナリを生成しない、または追加的な情報(説明、用途、データの所有者など)が必要な場合は、Excelや専用のデータディクショナリ管理ツールを使用して独自に作成することがあります。

システム的に生成されるデータディクショナリにはない「業務ルール」や「データガバナンスポリシー」に関する情報を別にシステム外で手動で作成する場合もあります。

データディクショナリの具体例

主要なDBMSごとに、システムで生成されるデータディクショナリの具体例を示します。

データディクショナリは実際の「モノ」を確認すれば、簡単に理解することができるはず。何個かサンプルで示しますので、ざっくりご覧ください。

MySQL

MySQLでは、INFORMATION_SCHEMAデータベースにメタデータが格納されます。

-- テーブルのメタデータを確認する
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name';

サンプル MySQL (INFORMATION_SCHEMA.TABLES)

TABLE_SCHEMATABLE_NAMETABLE_TYPEENGINETABLE_COMMENT
mydbusersBASE TABLEInnoDBUser Information
mydbordersBASE TABLEInnoDBOrder details

PostgreSQL

PostgreSQLでもINFORMATION_SCHEMAが利用できますが、pg_catalogスキーマもよく用いられます。

-- テーブルのメタデータを確認する
SELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema';

サンプル PostgreSQL (pg_tables)

schemanametablenametableownertablespacehasindexes
publicuserspostgrespg_defaultt
publicorderspostgrespg_defaultt

Oracle Database

Oracleでは、ALL_TABLESUSER_TABLESDBA_TABLESなどのディクショナリビューがあります。

-- テーブルのメタデータを確認する
SELECT * FROM ALL_TABLES WHERE OWNER = 'your_schema_name';

サンプル Oracle Database (ALL_TABLES)

OWNERTABLE_NAMETABLESPACE_NAMECLUSTER_NAMESTATUS
my_schemausersUSERSuser_clusterVALID
my_schemaordersUSERSnullVALID

Microsoft SQL Server

SQL Serverでは、sysスキーマ内のテーブルやビューがデータディクショナリとして機能します。

-- テーブルのメタデータを確認する
SELECT * FROM sys.tables;

サンプル Microsoft SQL Server (sys.tables)

nameobject_idtype_desccreate_datemodify_date
users245575913USER_TABLE2022-01-01 12:34:562022-01-01 12:34:56
orders315315546USER_TABLE2022-01-02 12:34:562022-01-02 12:34:56

ご覧いただいた通りわかるように、データディクショナリは、そのテーブル自体の情報を保持する別のテーブルとして実装されます。これを見れば、そのテーブルがどんなカラム・データ型を持っているか?を一目で確認することができます。

まとめ:データディクショナリとは

項目説明
意味データベースのメタデータ(テーブル名、カラム名、データ型など)を保存するシステムテーブル。
主な目的データベースの構造を理解しやすくする。データガバナンスと整合性を維持する。
自動生成か手動作成かDBMSによっては自動生成される。手動で作成する場合もある。
格納される情報テーブル名、カラム名、データ型、制約、リレーションシップ、説明など。
どこで使われるかデータベース管理、アプリケーション開発、データガバナンス、ドキュメンテーションなど。

SQLやデータベースの仕組みを1から学習したい方(学び直したい方)向けに、現役エンジニア達のスキルを結集して 完全無料 のSQL教材を作成しました。

SQLは決して難しい技術ではないので、エンジニアであれば「当たり前のように」扱えて当然かも・・・?

とはいえ、案外SQLをちゃんと使ったことがない人も多いはずです。この機会に是非一度ご覧になってみてください。

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
DatabaseIT-Skills
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました