DBMS のインデックス作成: インデックスの種類と例
インデックスとは何ですか?
インデキシング は、データベース ファイルからレコードを迅速に取得できるようにするデータ構造技術です。 インデックスは、列が XNUMX つだけある小さなテーブルです。 最初の列は、テーブルの主キーまたは候補キーのコピーで構成されます。 XNUMX 番目の列には、次のセットが含まれます。 ポインタ 特定のキー値が保存されているディスク ブロックのアドレスを保持します。
インデックス –
- 検索キーを入力として受け取ります
- 一致するレコードのコレクションを効率的に返します。
DBMS のインデックス作成の種類

データベースのインデックス作成は、そのインデックス作成属性に基づいて定義されます。 インデックス作成方法には主に次の XNUMX 種類があります。
- プライマリインデックス作成
- 二次インデックス作成
DBMS のプライマリ インデックス
プライマリ インデックスは、XNUMX つのフィールドを持つ固定長サイズの順序付きファイルです。 最初のフィールドは主キーと同じであり、XNUMX 番目のフィールドはその特定のデータ ブロックを指します。 プライマリ インデックスでは、インデックス テーブル内のエントリ間には常に XNUMX 対 XNUMX の関係があります。
DBMS におけるプライマリ インデックス作成もさらに XNUMX つのタイプに分類されます。
- 高密度インデックス
- スパースインデックス
高密度インデックス
密なインデックスでは、データベース内の値となるすべての検索キーに対してレコードが作成されます。 これにより検索が高速化されますが、インデックス レコードを保存するためにより多くのスペースが必要になります。 このインデックス作成では、メソッド レコードに検索キー値が含まれ、ディスク上の実際のレコードを指します。
スパースインデックス
これは、ファイル内の一部の値に対してのみ表示されるインデックス レコードです。 スパース インデックスは、高密度インデックス作成の問題の解決に役立ちます。 DBMS。 このインデックス付け手法では、インデックス列の範囲に同じデータ ブロック アドレスが格納され、データを取得する必要がある場合は、ブロック アドレスがフェッチされます。
ただし、sparse Index では、一部の検索キー値のインデックス レコードのみが保存されます。 必要なスペースが少なく、挿入や削除にかかるメンテナンスのオーバーヘッドも少なくなりますが、レコードの検索には高密度インデックスに比べて時間がかかります。
以下はデータベースインデックスです。スパースインデックスの例です。
DBMS のセカンダリ インデックス
DBMS のセカンダリ インデックスは、各レコードに一意の値を持つフィールドによって生成され、候補キーになります。非クラスタ インデックスとも呼ばれます。
この 2 レベルのデータベース インデックス作成手法は、第 1 レベルのマッピング サイズを縮小するために使用されます。このため、第 1 レベルでは大きな範囲の数値が選択され、マッピング サイズは常に小さいままになります。
セカンダリインデックスの例
データベース インデックスの例を使用してセカンダリ インデックスを理解しましょう。
銀行口座データベースでは、データは acc_no によって順番に格納されます。 ABC 銀行の特定の支店のすべての口座を検索したい場合があります。
ここでは、DBMS で検索キーごとにセカンダリ インデックスを作成できます。 インデックス レコードは、特定の検索キー値を持つすべてのレコードへのポインターを含むバケットを指すレコードです。
ClusterDBMS のインデックスを作成する
クラスター化インデックスでは、レコード自体がインデックスに格納され、ポインターは格納されません。インデックスは、レコードごとに一意ではない可能性がある非主キー列に作成されることがあります。このような状況では、2 つ以上の列をグループ化して一意の値を取得し、クラスター化インデックスと呼ばれるインデックスを作成できます。これにより、レコードをより速く識別することもできます。
例:
ある会社がさまざまな部署に多数の従業員を採用したと仮定します。この場合、同じ部署に所属するすべての従業員に対して DBMS のクラスタリング インデックスを作成する必要があります。
これは単一のクラスターと見なされ、インデックス ポイントはクラスター全体を指します。ここで、Department _no は一意でないキーです。
マルチレベルインデックスとは何ですか?
マルチレベルのインデックス作成 データベース プライマリ インデックスがメモリに収まらない場合に作成されます。 このタイプのインデックス付け方法では、ディスク アクセスの数を減らしてレコードを短縮し、シーケンシャル ファイルとしてディスク上に保持し、そのファイルに基づいてスパース ベースを作成できます。
Bツリーインデックス
B ツリー インデックスは、DBMS のツリー ベースのインデックス作成に広く使用されているデータ構造です。 DBMS技術におけるツリーベースのインデックス作成のマルチレベル形式であり、バランスが取れています。 二分探索木。 B ツリーのすべてのリーフ ノードは実際のデータ ポインターを表します。
さらに、すべてのリーフ ノードはリンク リストで相互リンクされているため、B ツリーはランダム アクセスとシーケンシャル アクセスの両方をサポートできます。
- リード ノードには 2 ~ 4 の値が必要です。
- 根から葉までのすべてのパスは、ほとんど同じ長さになります。
- ルート ノードを除く非リーフ ノードには 3 ~ 5 個の子ノードがあります。
- ルートでもリーフでもないすべてのノードには、n/2] ~ n 個の子があります。
索引付けの利点
インデックス作成の重要な長所/利点は次のとおりです。
- これにより、データを取得するために必要な I/O 操作の合計数が削減されるため、インデックス構造からデータベースの行にアクセスする必要がなくなります。
- データのより高速な検索と取得をユーザーに提供します。
- インデックスを作成すると、インデックスに ROWID を格納する必要がなく、テーブル内の行にリンクする必要がないため、テーブルスペースを削減することもできます。 したがって、テーブルスペースを削減できます。
- 主キーの値によってデータが分類されるため、リード ノード内のデータを並べ替えることはできません。
インデックス作成の欠点
インデックス作成の重要な欠点/短所は次のとおりです。
- インデックス付けデータベース管理システムを実行するには、一意の値を持つテーブルの主キーが必要です。
- インデックス付きデータに対してデータベースで他のインデックスを実行することはできません。
- 索引構成表をパーティション化することはできません。
- SQL インデックス作成 INSERT、DELETE、および UPDATE クエリのパフォーマンスが低下します。
製品概要
- インデックス作成は XNUMX つの列で構成される小さなテーブルです。
- インデックス作成方法には主に 1 種類あり、2) プライマリ インデックス作成、XNUMX) セカンダリ インデックス作成です。
- プライマリ インデックスは、XNUMX つのフィールドを持つ固定長サイズの順序付きファイルです。
- プライマリ インデックスは、さらに 1 つのタイプ (2) 密なインデックス、XNUMX) 疎なインデックスに分類されます。
- 密なインデックスでは、データベース内の値となるすべての検索キーに対してレコードが作成されます。
- スパース インデックス作成方法は、デンス インデックス作成の問題を解決するのに役立ちます。
- DBMSにおけるセカンダリインデックスとは、ファイルの並び順とは異なる順序を検索キーに指定するインデックス付け方法です。
- Clustering インデックスは注文データ ファイルとして定義されます。
- マルチレベル インデックスは、プライマリ インデックスがメモリに収まらない場合に作成されます。
- インデックス作成の最大の利点は、データの取得に必要な I/O 操作の総数を削減できることです。
- インデックスデータベース管理システムを実行する際の最大の欠点は、テーブル上に一意の値を持つ主キーが必要なことです。