Indeksowanie w DBMS: co to jest, rodzaje indeksów z PRZYKŁADAMI
⚡ Inteligentne podsumowanie
Indeksowanie w bazie danych to technika strukturyzowania danych, która umożliwia szybkie wyszukiwanie rekordów za pomocą mapyping klucz wyszukiwania do adresu dysku jego rekordu. Indeksy podstawowe, pomocnicze, klastrowe, wielopoziomowe i B-tree różnią się pod względem przestrzeni handlowej, szybkości i konserwacji.

Co to jest indeksowanie?
Indeksowanie Indeks to technika struktury danych, która umożliwia szybkie pobieranie rekordów z pliku bazy danych. Indeks to mała tabela zawierająca tylko dwie kolumny. Pierwsza kolumna zawiera kopię klucza podstawowego lub kandydującego tabeli. Druga kolumna zawiera zestaw… wskaźniki przechowujący adres bloku dysku, w którym przechowywana jest konkretna wartość klucza.
Indeks:
- Przyjmuje jako dane wejściowe klucz wyszukiwania.
- Efektywnie zwraca kolekcję pasujących rekordów.
Bez indeksu baza danych musi przeskanować każdy wiersz, aby odpowiedzieć na zapytanie. Z indeksem przechodzi bezpośrednio do pasującego bloku, dlatego wybrany typ indeksu ma duży wpływ na wydajność.
Rodzaje indeksowania w DBMS

Indeksowanie w bazie danych jest definiowane na podstawie jej atrybutów indeksowania. Istnieją dwa główne typy metod indeksowania:
- Indeksowanie podstawowe
- Indeksowanie wtórne
Indeks podstawowy w systemie DBMS
Indeks podstawowy to uporządkowany plik o stałej długości z dwoma polami. Pierwsze pole jest takie samo jak klucz podstawowy, a drugie wskazuje na konkretny blok danych. W indeksie podstawowym zawsze istnieje relacja jeden do jednego między wpisami w tabeli indeksów.
Indeks podstawowy dzieli się dodatkowo na dwa typy:
- Gęsty indeks
- Rzadki indeks
Gęsty indeks
W indeksie gęstym dla każdej wartości klucza wyszukiwania w bazie danych tworzony jest rekord. Pozwala to na szybsze wyszukiwanie, ale wymaga więcej miejsca do przechowywania rekordów indeksu. W tej metodzie rekordy zawierają wartość klucza wyszukiwania i wskazują na rzeczywisty rekord na dysku.
Rzadki indeks
Indeks rzadki to rekord indeksu, który pojawia się tylko dla niektórych wartości w pliku. Indeks rzadki pomaga rozwiązać problemy związane z gęstym indeksowaniem w DBMSW tej technice zakres kolumn indeksowych przechowuje ten sam adres bloku danych, a gdy dane muszą zostać pobrane, pobierany jest adres tego bloku.
Rzadki indeks przechowuje rekordy indeksu tylko dla niektórych wartości kluczy wyszukiwania. Zajmuje mniej miejsca i wymaga mniej nakładów na konserwację wstawiania i usuwania rekordów, ale jest wolniejszy niż indeks gęsty pod względem lokalizowania rekordów.
Poniżej znajduje się przykład indeksu bazy danych o indeksie rzadkim.
Indeks gęsty kontra indeks rzadki
Dwa podstawowe warianty indeksu prowadzą do przeciwnych kompromisów, podsumowanych poniżej.
| WYGLĄD | Gęsty indeks | Rzadki indeks |
|---|---|---|
| wpisy | Jeden na klucz wyszukiwania | Jeden na blok |
| Typ przestrzeni | Więcej | Less |
| Prędkość wyszukiwania | Szybciej | Wolniej |
| Konserwacja | Wyższy | Opuść |
Indeks wtórny w DBMS
Indeks pomocniczy w systemie DBMS może być generowany przez pole o unikalnej wartości dla każdego rekordu i powinien być kluczem kandydującym. Jest on również znany jako indeks nieklastrowy.
Ta dwupoziomowa technika indeksowania bazy danych służy do redukcji mapyping rozmiar pierwszego poziomu. Na pierwszym poziomie wybrano szeroki zakres liczb, więc mapaping rozmiar zawsze pozostaje mały.
Przykład indeksu dodatkowego
Przyjrzyjmy się indeksowaniu wtórnemu na przykładzie indeksu bazy danych. W bazie danych kont bankowych dane są przechowywane sekwencyjnie według acc_no, ale możesz chcieć znaleźć wszystkie konta w konkretnym oddziale banku ABC.
Tutaj możesz mieć indeks pomocniczy dla każdego klucza wyszukiwania. Rekord indeksu wskazuje na kontener, który zawiera wskaźniki do wszystkich rekordów z daną wartością klucza wyszukiwania.
ClusterIndeks w DBMS
W indeksie klastrowym same rekordy, a nie wskaźniki, są przechowywane w indeksie. Czasami indeks jest tworzony na podstawie kolumn niebędących kluczami podstawowymi, które mogą nie być unikatowe dla każdego rekordu. W takiej sytuacji można zgrupować dwie lub więcej kolumn, aby uzyskać unikalne wartości i utworzyć indeks, który nazywa się indeksem klastrowym. Pomaga to również szybciej zidentyfikować rekord.
Przykład: Załóżmy, że firma zrekrutowała wielu pracowników do różnych działów. W takim przypadku należy utworzyć indeks klastrowania dla wszystkich pracowników należących do tego samego działu.
Są one traktowane jako pojedynczy klaster, a indeks wskazuje na klaster jako całość. W tym przypadku Department_no jest kluczem nieunikalnym.
Czym jest indeks wielopoziomowy?
Indeksowanie wielopoziomowe jest tworzone, gdy indeks podstawowy nie mieści się w pamięci. W tej metodzie indeksowania można zmniejszyć liczbę dostępów do dysku potrzebnych do dotarcia do dowolnego rekordu. Rekordy są przechowywane na dysku w postaci pliku sekwencyjnego, a na jego podstawie tworzony jest indeks rozrzedzony.
Indeks B-drzewa
Indeks B-tree to najszerzej stosowana struktura danych do indeksowania drzewiastego w systemach DBMS. Jest to wielopoziomowy format indeksowania drzewiastego, który wykorzystuje zbalansowane drzewa wyszukiwania binarnegoWszystkie węzły liściowe drzewa B przechowują rzeczywiste wskaźniki danych.
Co więcej, wszystkie węzły liściowe są połączone listą powiązaną, co pozwala drzewu B obsługiwać zarówno dostęp losowy, jak i sekwencyjny.
- Węzły liściowe muszą mieć od 2 do 4 wartości.
- Każda ścieżka od korzenia do liścia ma przeważnie taką samą długość.
- Węzły nie-liściowe, poza węzłem głównym, mają od 3 do 5 węzłów potomnych.
- Każdy węzeł, który nie jest korzeniem ani liściem, ma od n/2 do n dzieci.
W miejscach, gdzie dominują wyszukiwania dokładnego dopasowania, a skanowanie zakresów jest rzadkością, mieszanie może być szybszą alternatywą dla indeksu B-drzewa.
Zalety indeksowania
Do najważniejszych zalet indeksowania należą:
- Pomaga ograniczyć całkowitą liczbę operacji wejścia/wyjścia potrzebnych do pobrania danych, dzięki czemu nie trzeba uzyskiwać dostępu do wiersza bezpośrednio z poziomu tabeli.
- Zapewnia użytkownikom szybsze wyszukiwanie i pobieranie danych.
- Może zmniejszyć przestrzeń tabelaryczną, ponieważ nie trzeba przechowywać ROWID w indeksie dla każdego połączonego wiersza.
- Dane w węzłach liściowych są już uporządkowane według wartości klucza.
Wady indeksowania
Do istotnych wad indeksowania należą:
- Aby wykonać indeksowanie, potrzebny jest klucz podstawowy tabeli z unikalną wartością.
- Nie można utworzyć nowego indeksu na podstawie danych, które są już uporządkowane w ten sam sposób.
- Nie wolno dzielić tabeli zorganizowanej według indeksu.
- Indeksowanie zmniejsza wydajność zapytań INSERT, DELETE i UPDATE.





