Struktury danych i optymalizacja

Podobne dokumenty
Systemy OLAP II. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Bazy danych wykład ósmy Indeksy

Tadeusz Pankowski

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Bazy danych. Andrzej Łachwa, UJ, /15

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Haszowanie (adresowanie rozpraszające, mieszające)

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ

Wykład XII. optymalizacja w relacyjnych bazach danych

Teoretyczne podstawy informatyki

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Przykładowe B+ drzewo

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Przygotowanie do egzaminu. część I

Optymalizacja poleceń SQL

0-0000, , , itd

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

Projektowanie baz danych

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba.

Definicja pliku kratowego

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Wykład 5 Fizyczne projektowanie bazy danych (Paul Beynon-Davies, Systemy baz danych )

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne

Indeksy w hurtowniach danych

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Systemy baz danych i hurtowni danych

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Plan wykładu. Elementy ERD BAZY DANYCH. Proces modelowania i implementacji bazy danych. Diagramy związków encji. SQL podzapytania

Indeksy. Schematyczne ujęcie organizacji pamięci i wymiany danych systemu pamiętania.

Optymalizacja poleceń SQL Metody dostępu do danych

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NOWYM SĄCZU SYLABUS PRZEDMIOTU. Obowiązuje od roku akademickiego: 2011/2012

Podstawy Informatyki. Metody dostępu do danych

Wprowadzenie do baz danych

Programowanie w VB Proste algorytmy sortowania

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Baza danych. Modele danych

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Optymalizacja wydajności SZBD

Tabela wewnętrzna - definicja

Krzysztof Dembczyński. Inteligentne Systemy Wspomagania Decyzji Studia magisterskie, semestr I Semestr letni 2007/08

Bazy danych 11. Algorytmy złaczeń. P. F. Góra

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

sprowadza się od razu kilka stron!

Optymalizacja poleceń SQL Statystyki

Technologie baz danych

Bazy danych - BD. Organizacja plików. Wykład przygotował: Robert Wrembel. BD wykład 5 (1)

Fizyczna struktura bazy danych w SQL Serwerze

Technologia informacyjna

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Administracja i programowanie pod Microsoft SQL Server 2000

Systemy baz danych. mgr inż. Sylwia Glińska

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

WPROWADZENIE DO BAZ DANYCH

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Alicja Marszałek Różne rodzaje baz danych

Pojęcie bazy danych funkcje i możliwości Charakterystyka baz danych:

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Architektura komputerów

Technologie baz danych

System plików przykłady implementacji

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Baza danych. Baza danych to:

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Wykład 11. Konstrukcja drzew składniowych

Podstawy Informatyki. Sprawność algorytmów

PODSTAWY BAZ DANYCH. 7. Metody Implementacji Baz Danych. 2009/ Notatki do wykładu "Podstawy baz danych" 1

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

System plików przykłady. implementacji

Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych.

System plików. dr inż. Krzysztof Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

dr inż. Jarosław Forenc

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com

Jakub Pilecki Szymon Wojciechowski

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Transkrypt:

Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2005/06

Plan wykładu Ewolucja systemów baz danych Relacyjne systemy baz danych i język SQL Projektowanie baz danych i ochrona danych Optymalizacja i struktury danych Systemy OLAP I Systemy OLAP II Modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL)

Plan wykładu 1 Dostęp do danych 2 Indeksy 3 Tablice haszujace 4 Optymalizacja

Optymalizacja jest siła systemów relacyjnych baz danych. Pozwala na opracowanie optymalnego dostępu do danych bez bezpośredniego udziału użytkownika. Odpowiednio przygotowane struktury danych przyspieszaja operacje dostępu do danych.

Plan wykładu 1 Dostęp do danych 2 Indeksy 3 Tablice haszujace 4 Optymalizacja

Dostęp do danych Dostep do danych jest realizowany przez: menedżer dysku, menedżer plików, SZBD. Ważnym elementem jest położenie rekordów (rekordów z punktu widzenia systemu przechowywania danych).

Struktury danych Najważniejsze struktury danych: indeksy (różne odmiany, w szczególności B-drzewa), haszowanie (tablice haszujace), Łańcuchy wskaźników. Często stosuje się kompresję danych.

Plan wykładu 1 Dostęp do danych 2 Indeksy 3 Tablice haszujace 4 Optymalizacja

Indeksy Podstawowa metoda przyśpieszania dostępu do danych. Przypominaja w pewien sposób indeksy w ksiażkach. Indeks jest zakładany na atrybucie relacji atrybut ten nosi nazwę atrybutu indeksowego. Definicja Indeks jest to uporzadkowany plik rekordów o stałej długości i o dwóch polach: wartość pola indeksowanego (atrybutu, który indeksujemy), wskaźnik na blok + przesunięcie w bloku (lub wskaźnik na adres bloku).

Przykład indeksu

Indeks podstawowy Indeks podstawowy jest zakładany na atrybucie, który jest unikalny i porzadkuj acy. Plik z relacja jest uporzadkowany wg. atrybutu porzadkuj acego. Kolejne wskaźniki indeksów odpowiadaja poczatkom kolejnych bloków. Jest to tzw. indeks rzadki (tzn. liczba rekordów indeksu odpowiada liczbie bloków pliku wskażniki sa do bloków, a nie do rekordów). Taki indeks można przeszukiwać binarnie.

Indeks wtórny Pole, na którym zakładany jest indeks wtórny jest polem nieporzadkuj acym i nazywamy je polem indeksowanym. Może istnieć wiele indeksów wtórnych dla pojedynczej relacji. Indeks wtórny jest indeksem gęstym jednemu rekordowi indeksu odpowiada jeden rekord pliku danych. Taki indeks można przeszukiwać binarnie. Indeks ten jest wydajniejszy, ale zajmuje więcej pamięci.

Indeks wielopoziomowy Polega na indeksowaniu indeksów :) Indeks jest indeksowany w sposób rzadki (dlaczego?). Taka struktura redukuje znacznie czas przeszukiwania. Problemem jest wstawianie i usuwanie rekordów (odpowiedź B-drzewa).

B-drzewa Nazwa pochodzi od angielskiego słowa balanced, czyli zrównoważony. Wskaźniki do bloków danych znajduja się wyłacznie w wierzchołkach liści drzewa. Oznacza to, że liście i wierzchołki wewnętrzne drzewa posiadaja różna strukturę (jest to tzw. B + -drzewo). W ogólności B-drzewo rzędu n zawiera co najmniej n, ale nie więcej niż 2n wartości danych w dowolnym węźle. Jeżeli zawiera k danych, to również zawiera k + 1 wskaźników.

Wstawianie wartości do B-drzewa Najpierw stosujemy algorytm wyszukiwania do znaleznienia węzła nie w zbiorze sekwencyjnym, ale węzła w zbiorze indeksowym, na najniższym poziomie, do którego V (wstawiana wartość) logicznie należy. Nazwijmy go N. Jeśli w N jest jeszcze wolne miejsce to wstawiamy V i proces się kończy.

Wstawianie wartości do B-drzewa W przeciwnym przypadku, który występuje, gdy węzeł N zawiera już 2n wartości dzielimy go na dwa węzły N1 i N2. Niech S oznacza poczatkowe 2n wartości plus nowa wartość V, w ich logicznej kolejności. N poczatkowych wartości w S zostanie umieszczonych w N1, n końcowych w N2, a wartość środkowa powiedzmy W, awansuje do węzła P będacego rodzicem dla N na wyższym poziomie. Będzie tam służyć za wartość graniczna oddzielajac a węzeł N1 od N2. Późniejsze wyszukiwanie wartości U, po dojściu do węzła P, zostanie skierowane do węzła N1, jeśli U W, lub do węzła N2, gdy U > W.

Wstawianie wartości do B-drzewa Dalej następuje próba wstawienia W do P i cały proces powtarza się

Usuwanie i zmiana wartości w B-drzewie Algorytm usuwania wartości z B-drzewie jest w zasadzie odwrotnościa algorytmu wstawiania. Zmiana wartości jest obsługiwana prez usunięcie starej wartości i wstawienie nowej.

Plan wykładu 1 Dostęp do danych 2 Indeksy 3 Tablice haszujace 4 Optymalizacja

Haszowanie Jest to próba takiego przechowywania danych, by sama struktura ułatwiała swobodny dostęp do plików. Tablica haszowa umożliwia zwiększanie efektywności wykonywania niektórych operacji na relacjach. Tablica taka posiada M szczelin, w których przechowywanych jst R adresów bloków dyskowych zawierajacych rekordy pliku relacji. Adres bloku dyskowego otrzymuje sie w oparciu o wartość pola haszowego. Pliki wykorzystujace ta technikę nazywane sa haszowanymi lub bezpośrednimi.

Haszowanie Idea polega na zdefiniowaniu funkcji haszowej, która zastosowana do pola haszowego zwraca adres bloku dyskowego, w którym znajduje się poszukiwany rekord. Najczęściej spotyka się funkcję: h(k ) = KmodM. Pola nienumeryczne sa transformowane do liczb całkowitych przed zastosowaniem funkcji haszowej. Niestety problemem sa kolizje!

Proces znajdowania innej lokalizacji dla danego rekordu nosi nazwę rozwiazywania kolizji: np. adresowanie otwarte: jeżeli dana lokacja jest zajęta, weź następna wolna. łańcuchowanie: tablicę dzielimy na przestrzeń adresowa i przestrzeń przepełnienia. Każda lokacja posiada wskaźnik przepełnienia, który domyślnie wynosi -1. Gdy nastapi kolizja, to wybieramy pierwsza wolna szczelinę z przestrzeni przepełnienia, a adres tej szczeliny wstawiamy do pola wskaźnika szczeliny, gdzie nastapiła kolizja, i inne...

Plan wykładu 1 Dostęp do danych 2 Indeksy 3 Tablice haszujace 4 Optymalizacja

Optymalizacja Optymalizacja zapytań polega na znalezieniu optymalnego stanu w przestrzeni stanów zawierajacej wszystkie możliwe plany wykonania danego zapytania. Stan optymalny jest to stan o najmniejszej wartości funkcji kosztu.

Optymalizacja Cztery zasadnicze etapy optymalizacji obejmuja: przekształcenie zapytania do jakiejś wewnętrznej postaci (zwykle do postaci drzewa zapytania albo abstrakcyjnego drzewa składniowego - reprezentacje takie można uważać za szczególne postacie algebry relacyjnej), przekształcenie do postaci kanonicznej za pomoca różnych praw transformacji, wybór kandydatów do procedur niskiego poziomu, implementujacych różne operatory występujace w kanonicznej postaci zapytania, utworzenie planów realizacji zapytania i wybór najtańszego z nich za pomoca wzorów kosztów i znajomości statystyki bazy danych.

Optymalizacja Optymalizator zapytań jest charakteryzowany przez: reguły transformacji służace do generowania przestrzeni stanów dla danego zapytania, algorytm przeszukiwania przestrzeni pozwalajacy na przechodzenie między poszczególnymi stanami, funkcja kosztu, która jest stosowana do każdego ze stanów (w bazie danych przechowywane sa statystyki ułatwiajace obliczenie tej funkcji).

Optymalizacja Przykład SELECT SNAME FROM SP, S WHERE SP.S# = S.S# AND SP.P# = P2 ; Przypuśmy, że baza danych obejmuje 100 dostawców (S) i 10000 dostaw (SP), z których tylko 50 dotyczy produktu P2. Jak należy wykonać powyższe zapytanie?

Optymalizacja Implementacja operacji selekcji: przeszukiwanie liniowe, przeszukiwanie binarne, zastosowanie indeksów, zastosowanie tablicy haszujacej.

Optymalizacja Implementacja operacji połaczenia: zagnieżdżona pętla - wybierz jeden plik jako zewnętrzny, a drugi jako wewnętrzny. Dla każdego pobranego rekordu z pliku zewnętrzenego odczytuj po kolei wszystkie rekordy pliku wewnętrznego i dla kazdych dwóch rekordów sprawdź warunek połaczenia, bezpośrednie ścieżki dostępu dla dopasowania rekordów, algorytm Sort-Merge, algorytm Hash-join. Dwa źródła złożoności: operacje I/O oraz operacje Obliczeniowe (procesora).

Zagnieżdżona pętla Zagnieżdżona pętla for (i = 0; i < m; i++) for (j = 0; j < n; j++) if (R[i].C = S[j].C) result(r[i].c,s[j].c);

Analiza algorutmu zagnieżdżonej pętli Przypuśćmy, że zewnętrzna tabela ma m krotek, a wewnętrzna ma n krotek: złożoność obliczniowa O(m n) każda krotkę z relacji zewnętrznej należy porównać z każda krotka z relacji wewnętrznej, złożoność I/O: zależy od wielkości dostępnej pamięci, możliwe sa cztery scenariusze (przy załóżeniu B krotek na stronę pamięci), wykorzystanie 2 stron pamięci, wykorzystanie (m/b + n/b) stron pamięci, wykorzystanie (n/b + 1) stron pamięci, wykorzystanie (k + 1) stron pamięci, dla k < m B.

Zagnieżdżona pętla: dwie strony pamięci Jedna strona dla tabeli zewnętrznej i jedna strona dla tabeli wewnętrznej. Przebieg algorytmu: Załaduj pierwszy blok do pamięci tabeli zewnętrznej, Załaduj wszystkie (n/b) bloki tabeli wewnętrzej, jeden po drugim, Załaduj drugi blok do pamięci tabeli zewnętrznej, Załaduj wszystkie (n/b) bloki tabeli wewnętrzej, jeden po drugim,..., Załaduj (m/b) blok do pamięci tabeli zewnętrznej, Załaduj wszystkie (n/b) bloki tabeli wewnętrzej, jeden po drugim, Koszt algorytmu: koszt = m/b (n/b + 1)

Zagnieżdżona pętla: m/b + n/b stron pamięci Załaduj obydwie tabeli w całości do pamięci operacyjnej. Wszystkie obliczenia odbywaja się w pamięci operacyjnej. Nie potrzebne operacje ładowania stron do pamięci. Koszt algorytmu: koszt = m/b + n/b Wymaga bardzo dużej ilości pamięci stosowane, gdy tablice wejściowe sa małe.

Zagnieżdżona pętla: n/b + 1 stron pamięci Zarezerwuj jedna stronę dla tabeli zewnętrznej. Załaduj cała tabelę wewnętrzna do pamięci operacyjnej (n/b bloków). Przebieg algorytmu: Załaduj cała tabelę wewnętrzna do pamięci, Załaduj pierwszy blok tabeli zewnętrznej do pamięci, Tabela wewnętrzna jest już w pamięci nie potrzebna operacja I/O, Załaduj drugi blok tabeli zewnętrznej do pamięci, Tabela wewnętrzna jest już w pamięci,..., Załaduj (m/b) blok tabeli zewnętrznej do pamięci, Tabela wewnętrzna jest już w pamięci. Koszt algorytmu: koszt = m/b + n/b (podobnie jak na poprzednim slajdzie). Stosowane praktycznie, gdy tablica wewnętrzna jest mała.

Zagnieżdżona pętla: k + 1 stron pamięci Zarezerwuj jedna stronę dla tabeli wewnętrznej. Załaduj k stron tabeli zewnętrznej do pamięci operacyjnej. Przebieg algorytmu: Załaduj pierwszych k bloków tabeli zewnętrznej do pamięci, Załaduj wszystkie (n/b) bloki tabeli wewnętrzej, jeden po drugim, Załaduj drugie k bloków tabeli zewnętrznej do pamięci, Załaduj wszystkie (n/b) bloki tabeli wewnętrzej, jeden po drugim,..., Załaduj (m/kb) k bloków tabeli zewnętrznej do pamięci, Załaduj wszystkie (n/b) bloki tabeli wewnętrzej, jeden po drugim, Koszt algorytmu: koszt = m/(kb) (n/b + k) Poprawa złożoności I/0 o współcznynnik k.

Podsumowanie analizy zagnieżdżonej pętli Złożonośc obliczeniowa O(m n), Złożoność I/O zależy od ilości zarezerwowanej pamięci na operację łaczenia, Jeżeli jedna z tabel jest mała to: mniejsza tabelę ustaw jako wewnętrzna, złożoność I/O jest O(m/B + n/b), zależność jest liniowa minimalna z możliwych. w przeciwnym przypadku: mniejsza tabelę ustaw jako zewnętrzna (trochę lepiej niż na odwrót), złożoność I/O jest O(m/(kB) (n/b + k)).

Transformacja wyrażeń Przykłady: SELECT DISTINCT SNAME FROM S WHERE S = S1 jest równoważne SELECT DISTINCT SNAME FROM (SELECT * WHERE S = S1 ) Załóżmy, że A i B sa atrybutami w dwóch różnych relacjach: A > B AND B > 3 jest równowazne A > 3 AND B > 3 AND A > B

Plan wykładu Ewolucja systemów baz danych Relacyjne systemy baz danych i język SQL Projektowanie baz danych i ochrona danych Optymalizacja i struktury danych Systemy OLAP I Systemy OLAP II Modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL)