BD-1st-2.4-lab8.tresc-1.1-Slajd9
Tworzenie indeksów
Składnia poleceń tworzących indeksy różni się pomiędzy SZBD. Na slajdzie przedstawiono składnię charakterystyczną dla SZBD Oracle, ale w innych SZBD jest ona bardzo podobna. Przykład (1) pokazuje ogólną składnię polecenia tworzącego indeks na wybranych atrybutach tabeli. W przypadku SZBD Oracle polecenie to jest dużo bardziej rozbudowane, ale omawianie pozostałych opcji jest poza zakresem tego ćwiczenia. Przykład (2) przedstawia polecenie tworzące indeks na atrybucie NAZWISKO relacji PRACOWNICY. Po słowach kluczowych CREATE INDEX podano tutaj nazwę indeksu, a następnie słowo kluczowe ON i nazwę relacji oraz w nawiasie atrybut, na którym zakładany jest indeks. Przykład (3) jest nieco bardziej skomplikowaną wersję przykładu (2). Użyto tutaj dodatkowego słowa kluczowego UNIQUE. Oznacza ono, że wartości atrybutów składowane w indeksie muszą być unikalne. SZBD pilnuje aby ten warunek był spełniony. W praktyce, jest to równoważne założeniu indeksu na atrybucie z ograniczeniem integralnościowym „wartość unikalna”. Przykład (4) pokazuje kilka nowych rzeczy. Po pierwsze, za nazwą relacji w nawiasie wymieniono kilka atrybutów. Tworzone w ten sposób indeksy są zakładane na konkatenacji wartości tych atrybutów i noszą nazwę indeksów skonkatenowanych. Skonkatenowany indeks B+drzewo wspiera zapytania punktowe na kombinacji wartości atrybutów (np. SELECT * FROM pracownicy WHERE placa_od=1000 AND placa_do=2000) oraz niektóre typy zapytań przedziałowych: SELECT * FROM pracownicy WHERE placa_od BETWEEN 1000 AND 2000 albo SELECT * FROM pracownicy WHERE placa_od =1000 AND placa_do BETWEEN 2000 AND 30000. Drugą nowością na przykładzie (4) jest dopisanie słowa kluczowego DESC do jednego z atrybutów na których zakładany jest indeks. Oznacza on porządek sortowania na tym atrybucie. Słowo kluczowe DESC oznacza, że wartości tego atrybutu w indeksie będą sortowane malejąco. Domyślnie wartości te są sortowane rosnąco, co można również zaznaczyć explicite za pomocą słowa kluczowego ASC. Ostatnią nową rzeczą jest dopisanie na końcu polecenia słowa kluczowego COMPRESS. Dotyczy ono indeksów nieunikalnych (takich w, których jedna wartość indeksowanego atrybutu może wystąpić wielokrotnie) i powoduje, że w indeksie każda wartość jest umieszczona tylko raz, ale z każdą z nich jest pamiętana lista wskaźników na wszystkie krotki zawierające tą wartość. Przykład pierwszy pokazuje jeszcze jedną opcję, która nie została zademonstrowana. Jest nią opcja COMPUTE STATISTICS. Pozwala ona na obliczenie tzw. statystyk, czyli pewnych informacji o rozkładzie i liczności różnych klas danych w relacji oraz o ich rozmieszczeniu na dysku. Statystyki są potrzebne SZBD, aby był on w stanie określić, czy warto jest skorzystać z indeksu, czy też raczej bardziej wydajnym rozwiązaniem by było przejrzeć całą relację.
Indeksy usuwa się za pomocą polecenia DROP INDEX, np. polecenie: DROP INDEX in_nazwiska; usunie indeks o nazwie IN_NAZWISKA.