15章メタデータ

データベースサーバーは、さまざまなユーザーがデータベースに挿入するデータをすべて格納することはもちろん、このデータを格納するために作成されたすべてのデータベースオブジェクト(テーブル、ビュー、インデックスなど)に関する情報も格納する必要があります。意外なことではありませんが、データベースサーバーはこの情報をデータベースに格納します。本章では、このメタデータ(metadata)と呼ばれる情報をどこにどのように格納するのか、その情報にどのようにしてアクセスできるのか、そしてこの情報を使って柔軟なシステムをどのように構築できるのかについて説明します。

15.1 データに関するデータ

メタデータは、要はデータに関するデータです。データベースサーバーはデータベースオブジェクトを作成するたびにさまざまな情報を記録する必要があります。たとえば、複数の列で構成され、主キー制約、3つのインデックス、外部キー制約を持つテーブルを作成する場合、データベースサーバーは次の情報をすべて格納する必要があります。

  • テーブルの名前
  • テーブルのストレージ情報(表領域、初期サイズなど)
  • ストレージエンジン
  • 列の名前
  • 列のデータ型
  • 列のデフォルト値
  • not null列制約
  • 主キー列
  • 主キーの名前
  • 主キーインデックスの名前
  • インデックスの名前
  • インデックスのタイプ(B木、ビットマップ)
  • インデックスが作成されている列
  • インデックスが作成されている列のソート順序(昇順または降順)
  • インデックスのストレージ情報
  • 外部キーの名前
  • 外部キー列
  • 外部キーによって紐付けられるテーブルと列

このデータはデータディクショナリ(data dictionary)またはシステムカタログ(system catalog)と総称されます。データベースサーバーは、このデータを永続的に格納しなければならず、SQL文を検証・実行するためにこのデータをすばやく取り出せる必要があります。それに加えて、データベースサーバーはこのデータを保護し、 ...

Get 初めてのSQL 第3版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.