
データ ディクショナリ 、またはメタデータ リポジトリは、 IBM Dictionary of Computingの定義によると、「意味、他のデータとの関係、起源、使用法、形式など、データに関する情報の集中リポジトリ」です。[1] Oracle では、メタデータを含むテーブルのコレクションとして定義されています。この用語には、データベースとデータベース管理システム(DBMS)に関連するいくつかの密接に関連する意味があります。
- データベースまたはデータベースのコレクションを説明する文書
- DBMSの構造を決定するために必要なDBMSの不可欠なコンポーネント
- DBMS のネイティブ データ ディクショナリを拡張または置き換えるミドルウェア
ドキュメント
データ ディクショナリおよびデータ リポジトリという用語は、カタログよりも一般的なソフトウェア ユーティリティを示します。カタログは DBMS ソフトウェアと密接に結合されています。カタログは、ユーザーと DBA に保管されている情報を提供しますが、主に DBMS 自体のさまざまなソフトウェア モジュール ( DDLおよびDMLコンパイラ、クエリ オプティマイザー、トランザクション プロセッサ、レポート ジェネレーター、制約エンフォーサーなど) によってアクセスされます。一方、データ ディクショナリは、メタデータ(つまり、情報に関する (構造化) データ)を保管するデータ構造です。スタンドアロン データ ディクショナリまたはデータ リポジトリのソフトウェア パッケージは、DBMS のソフトウェア モジュールと対話する場合がありますが、主にコンピューター システムの設計者、ユーザー、管理者が情報リソース管理に使用します。これらのシステムは、システムのハードウェアとソフトウェアの構成、ドキュメント、アプリケーション、ユーザーに関する情報、およびシステム管理に関連するその他の情報を保持します。[2]
データ ディクショナリ システムが設計者、ユーザー、および管理者によってのみ使用され、DBMS ソフトウェアによって使用されない場合は、パッシブ データ ディクショナリと呼ばれます。それ以外の場合は、アクティブ データ ディクショナリまたはデータ ディクショナリと呼ばれます。パッシブ データ ディクショナリを更新する場合は、DBMS (データベース) 構造の変更とは関係なく手動で行います。アクティブ データ ディクショナリの場合は、最初にディクショナリが更新され、その結果 DBMS で自動的に変更が行われます。
データベースユーザーとアプリケーション開発者は、1 つ以上のデータベースの構成、内容、規則をカタログ化した信頼性の高いデータ ディクショナリ ドキュメントから恩恵を受けることができます。[3]これには通常、さまざまなテーブル(レコードまたはエンティティ) とその内容 (フィールド)の名前と説明に加えて、各データ要素の種類や長さなどの追加の詳細が含まれます。データ ディクショナリが提供できるもう 1 つの重要な情報は、テーブル間の関係です。これは、エンティティ リレーションシップダイアグラム (ERD) で参照されることもあります。また、セット記述子を使用する場合は、データベース テーブルがどのセットに参加しているかを識別するために使用されます。
アクティブ データ ディクショナリでは、基礎となるデータに制約が課される場合があります。たとえば、データ要素 (フィールド) 内の数値データの値に範囲が課されたり、テーブル内のレコードが別のレコード タイプとのセット関係に強制的に参加するよう強制されたりする場合があります。さらに、分散 DBMS では、アクティブ データ ディクショナリ内に特定の場所の詳細が記述されている場合があります (たとえば、テーブルが物理的に配置されている場所)。
データ ディクショナリは、システムによって生成されたコマンド ファイルによってデータベースに作成されるレコード タイプ (テーブル) で構成され、サポートされている各バックエンド DBMS に合わせて調整されます。Oracle には、「sys」ユーザー用の特定のビューのリストがあります。これにより、ユーザーは必要な情報を正確に検索できます。コマンド ファイルには、そのデータベースの種類に必要な特定のステートメントを使用して、、、(参照整合性用) などの SQL ステートメントが含まれCREATE TABLEます。
CREATE UNIQUE INDEXALTER TABLE
このような文書の詳細レベルに関する普遍的な標準は存在しません。
ミドルウェア
データベース アプリケーションの構築では、基礎となる DBMS データ ディクショナリと通信するデータ ディクショナリ ソフトウェアの追加レイヤー、つまりミドルウェアを導入すると便利です。このような「高レベル」データ ディクショナリは、ネイティブの「低レベル」データ ディクショナリの制限を超える追加機能と柔軟性を提供できます。ネイティブの「低レベル」データ ディクショナリの主な目的は、一般的なアプリケーションの要件ではなく、DBMS の基本機能をサポートすることです。たとえば、高レベル データ ディクショナリは、共通のデータベースを共有するさまざまなアプリケーションに合わせて調整された代替エンティティ リレーションシップ モデルを提供できます。 [4]データ ディクショナリの拡張機能は、分散データベースに対するクエリの最適化にも役立ちます。[5]さらに、DBA 機能は、アクティブ データ ディクショナリに密接に結合された再構築ツールを使用して自動化されることがよくあります。
迅速なアプリケーション開発を目的としたソフトウェア フレームワークには、高レベルのデータ ディクショナリ機能が含まれていることがあります。これにより、メニュー、フォーム、レポート、およびデータベース アプリケーションの他のコンポーネント (データベース自体を含む) の構築に必要なプログラミングの量を大幅に削減できます。たとえば、PHPLens には、複数のデータベースに移植可能なテーブル、インデックス、および外部キー制約の作成を自動化するPHP クラス ライブラリが含まれています。 [6] RADICORE ツールキットの一部である別の PHP ベースのデータ ディクショナリは、データ検証と複雑な結合を使用して、メニューとフォームのプログラムオブジェクト、スクリプト、および SQL コードを自動的に生成します。[7] ASP.NET環境の場合、Base One のデータ ディクショナリは、自動データベース作成、データ検証、パフォーマンス強化 (キャッシュとインデックスの利用)、アプリケーション セキュリティ、および拡張データ型のためのクロス DBMS 機能を提供します。[8] Visual DataFlex機能[9] は、 DataDictionaries をクラス ファイルとして使用して、ユーザー インターフェイスと基礎となるデータベースの間に中間層を形成する機能を提供します。その目的は、標準化されたルールを作成し、1 つ以上の関連アプリケーション全体でデータの整合性を維持し、ビジネス ルールを適用することです。
一部の業界では、システム間の相互運用性を確保するために、技術標準として汎用データ辞書を使用しています。たとえば、不動産業界では、全米不動産協会がポリシー ハンドブック[11]を通じてMLSに準拠することを義務付けているRESOのデータ辞書に準拠しています。MLSのネイティブ データベースのこの中間マッピング レイヤーは、MLS 組織に API サービスを提供するソフトウェア会社によってサポートされています。
プラットフォーム固有の例
開発者は、IBM iのコンテキストで、データ記述仕様(DDS) を使用して、データを処理するアプリケーション プログラムの外部にあるファイル記述のデータ属性を記述します。[12] Oracle のsys.ts $テーブルには、データベース内のすべてのテーブルに関する情報が格納されます。これは、 Oracle データベースの作成時に作成されるデータ ディクショナリの一部です。 [13]開発者は、オープン環境での構造化クエリとトランザクション クエリに、無料のオープン ソース ソフトウェア(FOSS)の DDS コンテキストを使用することもできます。
典型的な属性
以下は、列またはフィールドのデータ辞書に含まれる一般的な項目の一覧です (すべてを網羅したものではありません)。
- エンティティまたはフォームの名前、またはその ID (EntityID または FormID)。このフィールドが属するグループ。
- フィールド名(RDBMSフィールド名など)
- 表示されるフィールド タイトル。空白の場合は、デフォルトでフィールド名になります。
- フィールドタイプ(文字列、整数、日付など)
- 最小値と最大値、表示幅、小数点以下の桁数などの測定値。フィールド タイプによって解釈が異なる場合があります。別の方法としては、フィールド タイプに応じて異なる属性を持つ方法があります。
- フィールドの表示順序またはタブ順序
- 画面上の座標(位置ベースまたはグリッドベースの UI の場合)
- デフォルト値
- ドロップダウン リスト、コンボ ボックス、チェック ボックス、範囲などのプロンプト タイプ。
- 必須 (ブール値) - 「true」の場合、値は空白、null、または空白のみにすることはできません。
- 読み取り専用 (ブール値)
- 外部キーの場合はテーブル名を参照します。検証または選択リストに使用できます。
- さまざまなイベント ハンドラーまたは参照。例: "on-click"、"on-validate" など。イベント駆動型プログラミングを参照してください。
- 正規表現やCOBOLスタイルの「PIC」ステートメントなどのフォーマットコード
- 説明または概要
- データベースインデックスの特性または仕様
参照
参考文献
- ^ ACM、IBM コンピューティング辞典、第 10 版、1993 年
- ^ Ramez Elmasri、Shamkant B. Navathe:データベースシステムの基礎、第 3 版、セクション 17.5、p. 582
- ^ TechTarget、SearchSOA、「データ辞書とは何か?」Wayback Machineに 2009 年 2 月 12 日にアーカイブ
- ^ 米国特許 4774661、アクティブデータ辞書を備えたデータベース管理システム、1985 年 11 月 19 日、AT&T
- ^ 米国特許 4769772、分散データベースのマテリアライゼーションアクセス計画のためのグローバル最適化と並列ローカル最適化の両方を使用した自動クエリ最適化方法、1985年2月28日、Honeywell Bull
- ^ PHPLens、PHP 用 ADOdb データ辞書ライブラリ、Wayback Machineで 2007 年 11 月 7 日にアーカイブ
- ^ RADICORE、「データ辞書とは何ですか?」
- ^ Base One International Corp.、Base One データ辞書
- ^ VISUAL DATAFLEX、特集 2018年4月5日アーカイブ、Wayback Machine
- ^ 「Real Estate Transaction Standards (RETS) Web API」. nar.realtor . 2015年1月23日. 2020年10月11日閲覧。
- ^ 「複数物件掲載ポリシーに関するハンドブック」nar.realtor .2015年1月. 2020年10月11日閲覧。
- ^ 「IBM System i V5R3 の DDS ドキュメント」。
- ^ 「Oracle Concepts - Data Dictionary」。dba -oracle.com 。 2017年2月13日閲覧。
外部リンク
- Yourdon、構造化分析 Wiki、データ辞書 (Web アーカイブ)
- Octopai、データ辞書とビジネス用語集
