NDX ファイル形式とは?
.ndx ファイルは、dBASE データベース (.dbf) に関連付けられた単一フィールドの B-tree インデックスです。1984年に dBASE III で導入され、テーブル全体をスキャンすることなく、印刷された本の索引のようにレコードへのソート済みアクセスを提供します。
この形式は、固定 512 バイトのノードで構成される B-tree を格納します。16 バイトのヘッダーには、ルートブロック番号、総ブロック数、キーの長さ、キーのタイプ、およびユニーク値フラグが記録されます。各リーフノードには、.dbf ファイル内のレコード番号ポインタとともにソートキーの値が含まれています。
1つの .ndx ファイルは、正確に1つのキー式(フィールド名または単純な式、最大 220 文字、評価後のキーは最大 100 バイト)をインデックス化します。この「1ファイルにつき1インデックス」という制約が、後の .MDX 形式(dBASE IV、1988年)と比較した際の .ndx の主な制限です。MDX は1つのファイルに最大 47 個のインデックスタグを保存でき、自動的に更新されます。
重要な点として、.dbf でレコードが追加、削除、または変更された際、.ndx インデックスは自動的には更新されません。ユーザーは dBASE で明示的に REINDEX または SET INDEX TO コマンドを実行して再構築する必要があります。古いインデックスを使用すると、不正確なクエリ結果が生成されます。dBASE Plus や DBF Viewer Plus などの最新ツールでも、レガシー互換性のために依然として .ndx ファイルをサポートしています。FoxPro や Visual FoxPro では、代わりに .cdx 複合インデックス形式が好まれます。
セキュリティと安全性
リスク: LOWNDX ファイルにはインデックスデータ(キー + レコードポインタ)のみが含まれ、実行可能コードは含まれません。xBase 互換のビューアで安全に開くことができます。NDX の破損は DBF データには影響せず、インデックスは再構築可能です。
形式の詳細
概要- FoxBase/FoxPro インデックスファイル - FoxBase および初期の FoxPro も .ndx 単一インデックスファイル(dBASE III NDX と同じ形式)を使用していました。FoxPro 2 以降は .cdx 複合インデックスに移行しました。
- インデックスファイル(一般的な命名) - 一部のカスタムアプリケーションでは、dBASE とは無関係なプレーンテキストまたは独自のインデックスファイルとして .ndx を一般的に使用しています。
NDX ファイルを開くプログラム
技術的詳細
詳細仕様| フォーマットタイプ | dBASE データベース用のバイナリ単一フィールド B-tree インデックス |
| エンコーディング | バイナリ、リトルエンディアン |
| B-tree ノードサイズ | 1ノードあたり固定 512 バイト(ルート、ブランチ、リーフノード) |
| ヘッダー | 16 バイト - ルートブロック番号、総ブロック数、キー長、キータイプ(文字/数値)、ユニークフラグ、バージョンバイト |
| キー式の制限 | 式は最大 220 文字まで。評価されたソートキー値は最大 100 バイトに制限 |
| インデックス容量 | 1ファイルにつき1つのキー式(単一インデックス制約 - インデックス化されたフィールドまたは式ごとに1つの `.ndx` ファイルが必要) |
| リンクされたデータベース | コンパニオン `.dbf` ファイル。リーフノードは DBF データ行へのレコード番号ポインタを格納 |
| 自動更新の動作 | インデックスは自動的に維持されません。DBF 変更後に明示的な `REINDEX` または `SET INDEX TO` が必要です |
| 起源 | Ashton-Tate による dBASE III。dBASE IV、V、および最新の xBase 実装と互換性あり |
| 後継形式 | `.mdx` (dBASE IV - 1ファイルあたり最大 47 個の自動更新インデックスタグ)、`.cdx` (FoxPro / Visual FoxPro) |
| 関連 OS | DOS(オリジナル)、Windows(最新ツールでのレガシー互換性) |
| 現代のサポート | レガシー互換性のために dBASE Plus および DBF Viewer Plus で引き続き受け入れ可能 |
| キータイプ | 文字列および数値。日付フィールドはインデックス作成のために文字表現に変換されます |
| 古いインデックスのリスク | DBF 変更後に再構築されていない `.ndx` は、警告なしに不正確なクエリ結果を返します |
| リリース日 | 1984 (dBASE III) |
| 最新バージョン | dBASE III-compatible NDX (unchanged since dBASE III era) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | pic.hallikainen.org |
NDX の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。NDX ファイルについて最初の質問をしてみましょう。