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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 Indeksy Statyczny model pamiętania bazy danych Bazy danych są fizycznie przechowywane jako pliki rekordów, które zazwyczaj są składowane na twardych dyskach. Dane przechowywane są w pamięci zewnętrznej, która jest logicznie podzielona na segmenty (lub obszary), które z kolei składają się z jednostek o stałej długości, zwanych stronami (ang. pages). Spójny obszar pamięci zewnętrznej, w którym zapamiętana może być jedna strona nosi nazwę bloku (ang. block, slot). Pożądane jest, aby wszystkie bloki (a zatem i strony) były jednakowej wielkości. Ponadto strona nie musi być na stałe przypisana do jednego bloku, lecz w różnych chwilach czasowych może być zapamiętywana w różnych blokach. Każdy plik F(R) rekordów typu R pamiętany jest w jednym segmencie. W pamięci operacyjnej wydzielony jest obszar zwany buforem zdolnym do pomieszczenia jednej strony. Przesyłanie danych pomiędzy pamięciami operacyjną i zewnętrzna przedstawia następujący schemat: Schematyczne ujęcie organizacji pamięci i wymiany danych systemu pamiętania. Celowość wprowadzenia segmentów Zbiór wszystkich stron wygodnie jest łączyć w jednostki logiczne wyższego rzędu zwane segmentami (ang. segment) lub obszarami (ang. area). Fakty, które uzasadniają celowość wprowadzenia pojęcia segmentu, związane są z funkcjami, które powinien realizować SZBD: 1. Bezpośredni (on-line) lub pośredni (off-line) dostęp do danych. Baza może być tak duża, że jest rzeczą niemożliwą, aby wszystkie zawarte w niej były dostępne bezpośrednio. Konieczne więc staje się wydzielenie takich jej fragmentów, które znajdują się w pamięci o dostępie bezpośrednim i takich, które znajdują się w pamięci o dostępie pośrednim. 2. Blokowanie dostępu do danych. W przypadku współbieżnego korzystania z bazy danych przez wielu użytkowników powstaje konieczność zapewnienia wyłączności dostępu do pewnych jej fragmentów dla jednego z użytkowników. Z punktu widzenia wydajności systemu byłoby niedopuszczalne traktowanie całej bazy danych jako tego fragmentu. Konieczny jest zatem podział bazy danych na mniejsze jednostki. 3. Odtwarzanie bazy danych. W celu odtworzenia bazy danych w przypadku awarii (sprzętowej lub programowej) należy periodycznie tworzyć jej kopie. Ponieważ zmiany w bazie danych nie dotyczą z jednakową częstotliwością wszystkich zapamiętanych w niej danych, celowy jest podział jej na mniejsze części. Dzięki temu protokółowanie zmian w bazie danych odnosić się może tylko do pewnych wybranych jej fragmentów, co pozwala zmniejszyć koszt prowadzenia protokołów. 4. Zapewnienie poufności danych. Ze względu na problem poufności danych system musi zapewnić mechanizm sprawdzania upoważnień dostępu (autoryzację) dla poszczególnych użytkowników. Jednakże ani poziom, ani rodzaj poufności danych nie jest jednakowy w całej bazie danych. Celowy jest zatem podział bazy danych na mniejsze fragmenty. 1

2 Odwzorowanie rekordów na stronie Przykład. Wystąpienie rekordu typu PRACOWNIK( identyfikator, nazwisko, zawód, płaca, wiek ) można zapisać na stronie w następujący sposób: a) każda wartość atrybutu zapisywana jest w polu o stałej długości (podanej w ilości znaków), Długość pola w znakach Kowalski muzyk b) wartości wszystkich atrybutów zapisywane są w kolejnych polach o najmniejszym rozmiarze potrzebnym do ich zapamiętania i odseparowane wyróżnionym znakiem, np. % 123 % Kowalski % muzyk % % 39 % c) wartości wszystkich atrybutów zapisywane są w kolejnych polach o najmniejszym rozmiarze potrzebnym do ich zapamiętania i utworzenie dla każdego rekordu części przedrostkowej składającej się ze wskaźników podających adresy końców poszczególnych pól Adresowanie rekordów w bazie danych Na pliku F(R):={ r 1, r 2,..., r N } rekordów typu R mogą być wykonywane następujące operacje: wprowadzanie rekordu, usuwanie rekordu, modyfikacja rekordu, poszukiwanie rekordu o określonej wartości atrybutu. Dostęp do miejsca zapamiętania w pamięci wystąpienia rekordu można uzyskać np. przy pomocy identyfikatora, którym może być np. kolejny numer przypisany rozważanemu rekordowi przez SZBD ( w Oracle jest to ROWID ). Definicja indeksu Indeks to struktura danych umożliwiająca szybszy dostęp do konkretnych rekordów w pliku, a tym samym przyśpieszenie realizacji zapytań. Indeksem pliku F(R) nazywamy zbiór I:={ (x,a) : r F(R) (x = key(r) a = kbd(r) ) }, gdzie key(r) jest wartością np. klucza głównego w wystąpieniu rekordu r, a kbd(r) kluczem bazy danych (adresem) wystąpienia rekordu r. Każdą parę (x,a) I nazywamy elementem indeksu. Klucz bazy danych kbd każdego rekordu pozostaje niezmienny w ciągu całego czasu, w którym dany rekord istnieje w bazie danych. kbd jest pewną symboliczną wartością, na podstawie której może być określony fizyczny adres rekordu i składa się on z 2 części: identyfikatora typu rekordu, którego wystąpieniem jest rozważany rekord, kolejnego numeru przypisanego danemu rekordowi przez SZBD w obrębie zbioru wszystkich rekordów tego samego typu. 2

3 Indeks w bazie danych: spełnia podobną rolę jak skorowidz (indeks) w książce, jest strukturą pomocniczą, stowarzyszoną z plikiem danych i wykorzystywaną do wyszukiwania konkretnych informacji, zapobiega konieczności sekwencyjnego przeszukiwania całego pliku przy każdej próbie odczytu wybranego elementu w przypadku relacyjnej bazy danych rekordu lub grupy rekordów, jest posortowany, a każda jego pozycja zawiera jedną z wartości, które mogą być wyszukiwane oraz jeden lub więcej adresów (numery rekordów), pod którymi można znaleźć poszukiwaną wartość, zazwyczaj odpowiada ustalony klucz wyszukiwania. Struktura indeksu Zawartość struktury indeksu stanowią rekordy składające się z wartości klucza i adresu w pliku danych, pod którym umieszczony jest logiczny rekord zawierający tę wartość klucza. Plik danych to plik zawierający rekordy logiczne. Plik indeksu to plik zawierający rekordy indeksu. Wartości w pliku indeksu są posortowane według pola indeksującego, które zwykle odpowiada pojedynczemu atrybutowi. Rodzaje indeksów W praktyce indeksy mogą być realizowane na różne sposoby. Wśród głównych typów indeksów wyróżniamy: indeks główny plik danych jest uporządkowany według pola porządkującego, pole indeksujące jest równe polu porządkującemu, jego wartości w poszczególnych rekordach są unikalne. indeks pomocniczy jest to indeks zdefiniowany na podstawie pola, które nie jest wykorzystywane przy wyznaczaniu porządku rekordów w pliku danych. Indeks pomocniczy można utworzyć na polu, które jest kluczem kandydującym i posiada unikatową wartość w każdym rekordzie lub które nie jest polem klucza i posiada powtarzające się wartości. Plikowi danych może odpowiadać co najwyżej jeden indeks główny oraz dowolna liczba indeksów pomocniczych. Indeks główny i indeks pomocniczy Indeks główny to plik uporządkowany z rekordami o stałej długości, które składają się z dwóch pól. Pierwsze z tych pól ma taki sam typ danych jak pole klucza uporządkowania w pliku danych, zwanego kluczem głównym, zaś drugie z tych pól jest wskaźnikiem na blok dyskowy (adres bloku). Indeks pomocniczy, analogicznie jak indeks główny, jest plikiem danych posortowanym według określonego klucza. To, co istotnie różni te dwa typy indeksów, to fakt, iż plik danych, któremu odpowiada indeks główny, jest posortowany także według klucza indeksującego, co nie jest konieczne w przypadku indeksu pomocniczego. Różnice pomiędzy indeksem głównym i indeksem pomocniczym: 3

4 plik danych, któremu odpowiada indeks główny, jest posortowany także według klucza indeksującego, co nie jest konieczne w przypadku indeksu pomocniczego, wartości klucza w indeksie pomocniczym nie muszą być unikalne, co ma miejsce w indeksie głównym. indeks pomocniczy nie wyznacza pozycji rekordu w pliku z danymi. Plik indeksu w przypadku indeksu głównego wymaga znacznie mniejszej liczby bloków niż plików danych, co jest konsekwencją dwóch przyczyn: w pliku indeksu w przypadku indeksu głównego występuje mniej wpisów niż w pliku danych. każdy wpis indeksu ma zazwyczaj mniejszy rozmiar niż rekord danych, ponieważ posiada tylko dwa pola. A zatem w jednym bloku może pomieścić się więcej wpisów indeksu niż rekordów danych. Dlatego wyszukiwanie wykonywane na pliku indeksu wymaga uzyskania dostępu do mniejszej liczby bloków niż ma to miejsce przy przeszukiwaniu pliku danych. Indeksy pomocnicze umożliwiają przyśpieszenie wykonywania zapytań, w których kryteria dotyczą innych atrybutów niż atrybut (atrybuty) indeksu głównego. Ceną, jaką za to płacimy, towarzyszy dodatkowy koszt związany z uaktualnieniem indeksów przy modyfikacji danych. Przykład indeksu głównego Niektóre bloki uporządkowanego (sekwencyjnego) pliku rekordów PRACOWNICY z polem NazwImie jako polem lucza uporządkowania Na każdy blok w pliku danych przypada jeden wpis indeksu (ang. index entry), inaczej rekord indeksu (ang. index record) w pliku indeksu. Każdy wpis indeksu posiada wartość pola klucza głównego dla pierwszego rekordu w bloku oraz wskaźnik na ten blok, co na rysunku poniżej oznaczyliśmy <K(i), KBD(i)>. W celu utworzenia indeksu głównego na pliku uporządkowanym przedstawionym dwa slajdy wcześniej, zostało użyte jako klucz główny pole NazwImie, ponieważ jest to pole klucza uporządkowania pliku (zakładamy, iż każda wartość w polu NazwImie jest unikatowa). Każdy wpis w indeksie zawiera wartość pola NazwImie oraz wskaźnik. 4

5 Pierwsze trzy wpisy indeksu dla rozważanego pliku mają postać: <K(1) = (Abarowski Michał), KBD(1) = adres bloku 1.> <K(2) = (Adamczyk Monika), KBD(1) = adres bloku 2.> <K(3) = (Aliński Robert), KBD(1) = adres bloku 3.> Indeks główny na polu klucza uporządkowania pliku rekordów PRACOWNICY Jak można wywnioskować choćby na podstawie powyższego przykładu, całkowita liczba wpisów w indeksie jest taka sama jak liczba bloków dyskowych w uporządkowanym pliku danych. Pierwszy rekord w każdym bloku pliku danych nosi nazwę rekordu zaczepienia takiego bloku lub w skrócie zaczepienia bloku. Sposoby implementacji indeksów pomocniczych Indeksy pomocnicze można implementować wykorzystując w tym celu następujące podejścia: utworzenie indeksu gęstego, który zawiera osobną pozycję dla każdego rekordu w pliku danych oznacza to możliwość wielokrotnych wystąpień w indeksie tej samej wartości, w indeksie pomocniczym jest tworzona jedna pozycja dla każdej wartości klucza występującej w pliku danych. Ponadto jest dopuszczalna możliwość, iż pojedyncza pozycja indeksu zawiera wiele wskaźników rekordów w pliku danych ( o tej samej wartości klucza). w indeksie pomocniczym jest tworzona jedna pozycja dla każdej wartości klucza występującej w pliku danych. Tym niemniej wskaźnik odpowiadający danej wartości klucza nie dotyczy pliku danych, lecz zawiera odsyłacz do pojemnika zawierającego wskaźniki odpowiednich rekordów w pliku danych. 5

6 Przykład. Na poniższym rysunku przedstawiono typowy indeks pomocniczy. W pliku danych umieszczono po dwa rekordy w jednym bloku, przy czym w rekordach zostały podane tylko pola z kluczem wyszukiwania (jak łatwo zauważyć ten atrybut ma wartość całkowitą, która jest wielokrotnością 10). Nietrudno zauważyć, iż dane nie zostały posortowane według klucza wyszukiwania, w przeciwieństwie do kluczy w pliku indeksowym, które zostały posortowane. Dlatego też wskaźniki z tego samego bloku indeksowego mogą prowadzić do różnych bloków danych, i to nie tylko do jednego lub kilku sąsiednich. Przykładowo, aby odszukać wszystkie rekordy z kluczem 20, nie tylko koniecznym jest sprawdzenie dwóch bloków indeksów, ale także koniecznym jest sięgnięcie do trzech różnych bloków danych. Stąd też stosowanie indeksu pomocniczego może powodować konieczność wykonania znacznie większej liczby dostępów do dysku niż przy wyszukiwaniu tej samej liczby rekordów za pomocą indeksu głównego. Rodzaje indeksów Indeksy możemy podzielić także w następujący sposób: indeksy rzadkie w tego typu indeksie tylko niektóre wartości klucza wyszukiwania występujące w pliku mają swoje odpowiedniki w indeksie. Indeks główny jest indeksem niezagęszczonym (rzadkim), gdyż zawiera wpis dla każdego bloku dyskowego pliku danych oraz klucza jego rekordu zaczepienia, a nie dla każdej wartości wyszukiwania (czyli dla każdego rekordu). indeksy gęste tego typu indeks zawiera wszystkie wartości klucza wyszukiwania występujące w pliku danych, a zatem zawiera wpis dla każdej wartości klucza wyszukiwania (a stąd dla każdego rekordu) znajdującej się w pliku danych. Indeks pomocniczy jest zawsze gęsty (i na ogół zawiera powtórzenia). Indeksowane pliki sekwencyjne Indeksowanym plikiem sekwencyjnym nazywamy posortowany plik danych wraz z jego indeksem głównym. Indeksowany plik sekwencyjny umożliwia: przetwarzać rekordy sekwencyjnie, tj. w kolejności ich sortowania, uzyskanie bezpośredniego dostępu do wybranego rekordu za pomocą indeksu poprzez odpowiednią wartość klucza wyszukiwania. 6

7 Drzewo i jego własności Drzewa są taką strukturę danych, która w wielu SZBD jest wykorzystywana do przechowywania i organizacji indeksów. Drzewem nazywamy strukturę danych, która składa się z hierarchicznie zorganizowanego zbioru wierzchołków. Elementy składowe drzewa: każdy wierzchołek drzewa, za wyjątkiem korzenia, jest połączony z jednym wierzchołkiem oraz pewną liczbą wierzchołków nazwanych liśćmi (możliwe jest również, iż wierzchołek nie ma żadnego liścia), wierzchołek, który nie ma rodziców, nazywamy korzeniem, wierzchołek, który jest połączony krawędzią tylko z jednym wierzchołkiem nazywamy liściem. Głębokością (wysokością) drzewa nazywamy maksymalną liczbę poziomów pomiędzy korzeniem a liściem w drzewie. Jak wynika z tej definicji, głębokości odpowiadające różnym ścieżkom prowadzącym od korzenia do liści mogą być różne. W przypadku, gdy długość każdej ścieżki prowadzącej od korzenia do liścia jest taka sama, to takie drzewo nazywamy drzewem zbilansowanym lub B-drzewem. B-drzewa Niech h 0 i m 1. Drzewo (skierowane) T nazywamy B-drzewem klasy t(h,m), co zapisujemy T t(h, m), jeżeli T jest drzewem pustym (h = 0) lub spełnione są następujące warunki: wszystkie ścieżki prowadzące z korzenia drzewa do liści są jednakowej długości równej h, którą to liczbę nazywamy wysokością (głębokością) drzewa, każdy wierzchołek, z wyjątkiem korzenia i liści, jest początkiem co najmniej m + 1 krawędzi korzeń jest albo liściem, albo jest początkiem co najmniej dwóch krawędzi, korzeń jest liściem lub jest początkiem co najmniej dwóch krawędzi; z każdego wierzchołka wychodzi co najwyżej 2m + 1 krawędzi. B-drzewa są używane do tworzenia ścieżek dostępu dla wyszukiwania rekordów wg kluczy głównych. Rząd (stopień) drzewa Rzędem (stopniem) drzewa nazywamy maksymalną dopuszczalną liczbę krawędzi każdego wierzchołka. Im większy jest stopień (rząd) drzewa, tym bardziej drzewo jest (lub może być) szerokie i płytkie. Tym niemniej sam czas dostępu do elementów drzewa w większym stopniu zależy od jego głębokości niż od rzędu, dlatego korzystne jest tworzenie drzew płytkich i krzaczastych. Drzewami binarnymi nazywamy drzewa rzędu 2, tj. takie drzewa, w których każdy wierzchołek jest początkiem co najwyżej dwóch krawędzi. Przykład. Przykładowe B-drzewo klasy t(3,2) 7

8 Organizacja dostępu do pliku rekordów za pomocą B-drzewa Organizując indeks pliku F(R) w postaci B-drzewa należy każdemu wierzchołkowi przyporządkować jedną stronę danych w następujący sposób: p 0 x 1 a 1 p 1 x 2 a 2 p 2 x q p q a q gdzie: 1. 1 q 2m w przypadku korzenia i m q 2m dla wierzchołków pośrednich i liści; wartość q jest liczbą elementów indeksu na stronie, 2. x i wartością klucza głównego wystąpienia rekordu, a i kluczem bazy danych odpowiadającym wystąpieniu rekordu o wartości klucza głównego x i, 1 i q, 3. p i wskaźnikiem na wierzchołek będącym końcem krawędzi wychodzącej z tego wierzchołka, 0 i l, przy czym dla każdego wierzchołka muszą być spełnione następujące warunki: 1) x 1 < x 2 <... < x q, 2) Niech P(p i ) oznacza wierzchołek wskazywany przez wskaźnik p i, 0 i l, a X(p i ) niech będzie zbiorem wartości klucza głównego zawartym w poddrzewie, którego korzeniem jest P(p i ). Wtedy: x X(p 0 ), x x 1, x X(p i ), x i < x < x i+1, 1 i < q, x X(p q ), x q < x. Przykład B drzewa klasy t(3,2) Przykład. Przykład organizacji indeksu w postaci B-drzewa klasy t(3,2) można przedstawić graficznie w następujący sposób: 8

9 Dla uproszczenia w wierzchołkach drzewa umieszczono tylko wartości klucza głównego pomijając związane z nim adresy (wartości klucza bazy danych). Organizacja dostępu do pliku rekordów za pomocą B-drzewa Algorytm wyszukiwania w pliku indeksowym zorganizowanym w postaci B-drzewa jest oczywisty. Mamy indeks I zorganizowany w postaci B-drzewa i wartość klucza głównego x. Indeks I jest zapamiętany na stronach. Należy wyznaczyć wartość klucza bazy danych a, takiego że (x,a) I lub stwierdzenie, że x nie występuje w indeksie I. W przypadku, gdy wyszukiwanie zakończyło się niepowodzeniem (w indeksie I brak poszukiwanego elementu ) możliwe jest dołączenie elementu x do indeksu I. Ma być dołączona para (x,a). Dołączanie to może być bezkolizyjne lub może spowodować przepełnienie strony (tzn. na stronie s zapamiętanych jest już 2m elementów indeksu). W pierwszym przypadku element (x,a) dołączany jest w ten sposób, by zachować rosnące uporządkowanie wartości klucza głównego na stronie, natomiast w drugim przypadku zastosować należy metodę kompensacji lub podziału. Algorytm kompensacji Metodę tę stosujemy wtedy, gdy jedna ze stron sąsiadujących ze stroną s zawiera j elementów indeksu, j < 2m. Oznaczmy te stronę przez s 1. Elementy ze stron s i s 1 z uwzględnieniem dołączanego elementu (x,a) i elementu (x',a'), dla którego wskaźniki po obu stronach wskazują strony s i s 1, porządkujemy w ciąg 2m + j +2 elementów. Element środkowy" (x i,a i ), gdzie i := entier( (2m + j +2)/2 ) wstawiamy w miejsce elementu (x',a'). 1. Jeśli s 1 leży na lewo od strony s, to elementy o numerach 1,2,,i 1 wstawiamy na stronę s 1, a elementy o numerach i + 1, i + 2,, 2m + j +2 na stronę s. 2. Jeśli s 1 leży na prawo od strony s, to elementy o numerach 1,2,,i 1 wstawiamy na stronę s, a elementy o numerach i + 1, i + 2,, 2m + j +2 na stronę s 1. Przykład. Dany jest fragment B-drzewa Chcemy dołączyć element indeksu o wartości klucza głównego 27 (dla uproszczenia drugie składowe elementów indeksu będziemy stale pomijać). Po uporządkowaniu ciągu wartości klucza głównego otrzymamy ciąg 20, 22, 26, 27, 34, 40, 45, 50. Po zastosowaniu metody kompensacji otrzymamy następujący fragment B-drzewa: 9

10 Algorytm podziału Niech strona s zawiera 2m elementów i strony sąsiednie (obie) są zapełnione. Należy dołączyć element (x,a) do strony s. W tym celu elementy ze strony s z uwzględnieniem dołączanego elementu (x,a) porządkujemy rosnąco otrzymując ciąg 2m + 1 elementów. Elementy o numerach 1, 2,..., m umieszczamy na stronie s, a elementy o numerach m + 2, m + 3,... 2m + 1 na nowo utworzonej stronie s 1. Element (x m+1, a m+1 ) dołączamy do strony będącej wierzchołkiem krawędzi, której końcem jest wierzchołek odpowiadający stronie s w ten sposób, aby wskaźnik będący po lewej stronie elementu (x m+1,a m+1 ) wskazywał stronę s, a wskaźnik będący po prawej stronie od tego elementu stronę s1. Może się zdarzyć, że strona ta jest zapełniona (zawiera już 2m elementów). Wówczas należy dokonać jej podziału lub kompensacji. Uwaga. Może zaistnieć przypadek, że z podziałem dojdziemy aż do korzenia. Przy podziale korzenia istnieje potrzeba utworzenia dwóch nowych stron (wierzchołków) - jeden s 1 zgodnie z opisanym już algorytmem oraz strony, która będzie nowym korzeniem B-drzewa. Operacja ta spowoduje powiększenie wysokości B-drzewa. Uwaga. Należy podkreślić, że stosowanie operacji podziału jest jedyną metodą wzrostu wysokości B- drzewa. Starujemy bowiem zawsze od drzewa złożonego tylko z jednego wierzchołka (strony), który jest jednocześnie korzeniem i jedynym liściem B-drzewa. W wyniku dołączania nowych elementów dochodzi do zapełnienia tego wierzchołka i w konsekwencji do jego podziału, co prowadzi do zwiększenia wysokości drzewa od h = 1 do h = 2. Kolejne dołączenia i kolejne operacje podziału mogą dalej zwiększać jego wysokość. Wstawianie elementów pliku indeksowego Przykład. Na kolejnych slajdach pokazany jest przykład wstawiania elementów pliku indeksowego. 10

11 Chcemy dopisać element o wartości klucza 95. Wartość klucza 95 powinna być dopisana do prawego liścia. Brak miejsca na sąsiednich wierzchołkach. Musimy dokonać podziału prawego wierzchołka używając ciągu 90, 92, 94, 95, 98 i element środkowy 94 powinien być dopisany do korzenia, w którym brak miejsca. Sąsiednich wierzchołków brak. Musimy dokonać podziału korzenia używając ciągu 35, 45, 81, 89, 94 11

12 B * drzewa B* drzewa są drzewami, które spełniają poniższe warunki: każdy wierzchołek, który nie jest liściem, powinien mieć co najmniej dwoje dzieci, liczba dzieci każdego wierzchołka (za wyjątkiem korzenia i liści) w drzewie rzędu n powinna być mniejsza niż n/2 i nie większa niż n; jeśli n/2 nie jest liczbą całkowitą, wtedy wartość tę zaokrąglamy w górę, w każdym liściu drzewa rzędu n powinno znajdować się co najmniej (n 1)/2 i co najwyżej (n 1) wartości kluczy; jeśli (n 1)/2 nie jest liczbą całkowitą, wtedy wartość tę zaokrąglamy w górę, liczba kluczy znajdujących się w wierzchołku nie będącym liściem jest o 1 mniejsza od liczby dzieci tego wierzchołka, drzewo powinno być zbilansowane, co oznacza, iż wszystkie ścieżki prowadzące od korzenia do liści powinny mieć te samą długość, liście połączone są w listę uporządkowaną według wartości klucza. 12

13 Różnica pomiędzy B-drzewami a B*-drzewami polega na tym, iż B-drzewa są drzewami o orientacji wierzchołkowej (tj. w każdym wierzchołku umieszczone są zarówno wartości klucza, jak i związane z nimi adresy klucze bazy danych rekordów), natomiast B*-drzewa mają orientację liściastą (tj. w wierzchołkach nie będących liśćmi zawarte są jedynie wartości klucza, natomiast związane z nimi dane adresy (klucze bazy danych) rekordów lub nawet całe rekordy umieszczane są jedynie w liściach). Budowa B * drzewa Każde B*-drzewo charakteryzują następujące trzy parametry: h* wysokość B*-drzewa, tj. długość dróg z korzenia do liści, długości wszystkich dróg są jednakowe (h* 2), m* liczba określająca liczbę wartości klucza w korzeniu B*-drzewa i wierzchołkach nie będących liśćmi korzeń zawiera o 1 do 2m* wartości klucza, natomiast każdy wierzchołek pośredni zawiera od m* do 2m* wartości klucza. m liczba określająca liczbę elementów indeksu w liściach liść zawiera od m do 2m elementów indeksu. Każda strona będąca wierzchołkiem B*-drzewa różnym od liścia ma następującą budowę: p 0 x 1 p 1 x 2 p 2 x q p q gdzie 1 q 2m* dla korzenia i m* q 2m* dla wierzchołków pośrednich; q oznacza liczbę kluczy na stronie; x i wartość klucza, 1 i q, a p i wskaźnik na wierzchołek będący synem, 0 i q. Każda strona będąca liściem B*-drzewa ma następującą budowę: x 1 a 1 x 1 a 2 x j a j gdzie j oznacza liczbę elementów indeksu na stronie, m j 2m, x i wartość klucza rekordu, 1 i j, a a i klucz bazy danych rekordu (adres) o wartości klucza x i, 1 i j. Uwaga. Wielkości stron tworzących wierzchołki B*-drzewa, zarówno liści, jak i stron nie będących liśćmi, są takie same. B * drzewa - własności Każde B*-drzewo odznacza się następującymi własnościami: x 1 < x 2 <. < x q dla wierzchołków nie będących liśćmi, x 1 < x 2 <. < x j dla liści, Niech P(p i ) oznacza wierzchołek wskazywany przez wskaźnik p i (0 i q), a X(p i ) niech będzie zbiorem wartości klucza zawartych w poddrzewie o korzeniu P(p i ). Wówczas: x X(p 0 ), x x 1 max{ x : x X(p 0 ) } = x 1, x X(p i ), x i < x x i+1 max{ x : x X(p i ) } = x i+1, 1 i q, x X(p q ), x q < x. 13

14 Uwaga. Napis max{ x : x X(p i ) } = x i+1 oznacza, że największa wartość ze zbioru X(p i ) ma być równa wartości x i+1. Innym słowy, każda wartość klucza leżąca na prawo od dowolnego wskaźnika p musi wystąpić w poddrzewie wskazywanym przez p i to na pozycji największej, tj. jako skrajny prawy element w liściach tego poddrzewa. Przykład B * drzewa klasy t*(3,2,2) Indeks bitmapowy Indeks bitmapowy jest zbiorem map bitowych dla każdego indeksowanego atrybutu relacji. Przykład. Imię Adam Zenon Adam Jan Karol Piotr Zbigniew Jan Zbiór map bitowych dla atrybutu Imię. Adam Zenon Jan Karol Piotr Zbigniew Zbiór map bitowy dla atrybutu Imię można zorganizować przy pomocy B*-drzewa. 14

15 Indeksy z odwróconym kluczem W pliku indeksowym o strukturze B*-drzewa wartości klucza pamiętane są w postaci otrzymanej z pierwotnej wartości klucza przez odwrócenie kolejności bitów. Tak zbudowany plik indeksowy nazywamy plikiem indeksowym z odwróconym kluczem (ang. reverse key index). Przykład. Przykład indeksu o strukturze B-drzewa i indeksu z odwróconym kluczem, w którym widać, że wartości bliskie zostały rozproszone do różnych stron. Rozproszenie bliskich wartości klucza ma duże znaczenie przy współbieżnych transakcjach operujących na rekordach o bliskich wartościach klucza. Indeksy na wielu atrybutach Do tej pory rozważaliśmy przypadek indeksów dla pojedynczych atrybutów. Indeksy można tworzyć na kombinacji atrybutów, np. rok, miesiąc. Wtedy porządek należy rozumieć następująco: para (2007,03) poprzedza parę (2009,01), para (2009,01) poprzedza parę (2009,03). Działanie tak zbudowanych indeksów jest analogiczne do omawianych wcześniej indeksów na pojedynczych atrybutach. 15

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

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych 2005/2006 Wykład "Podstawy baz danych" 1 Statyczny model pamiętania bazy danych 1. Dane przechowywane są w pamięci zewnętrznej podzielonej

Bardziej szczegółowo

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

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 > Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 15/15 PYTANIA NA EGZAMIN LICENCJACKI 84. B drzewa definicja, algorytm wyszukiwania w B drzewie. Zob. Elmasri:

Bardziej szczegółowo

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

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

Podstawy Informatyki. Metody dostępu do danych

Podstawy Informatyki. Metody dostępu do danych Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie

Bardziej szczegółowo

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

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1) Indeksy Wykład przygotował: Robert Wrembel BD wykład 7 (1) 1 Plan wykładu Problematyka indeksowania Podział indeksów i ich charakterystyka indeks podstawowy, zgrupowany, wtórny indeks rzadki, gęsty Indeks

Bardziej szczegółowo

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

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów. Plan wykładu 2 BAZY DANYCH Wykład 4: Indeksy. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krętowska Wydział Informatyki PB Pojęcie

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH. 7. Metody Implementacji Baz Danych. 2009/ Notatki do wykładu Podstawy baz danych 1 PODSTAWY BAZ DANYCH 7. Metody Implementacji Baz Danych 2009/2010 - Notatki do wykładu "Podstawy baz danych" 1 Przechowywanie danych w bazie 1. Dane przechowywane są w pamięci zewnętrznej podzielonej logicznie

Bardziej szczegółowo

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

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

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe 1 Plan rozdziału 2 Indeksy Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny Indeksy wielopoziomowe Indeksy typu B-drzewo B-drzewo B+ drzewo B* drzewo Wprowadzenie 3 Indeks podstawowy

Bardziej szczegółowo

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

Haszowanie (adresowanie rozpraszające, mieszające)

Haszowanie (adresowanie rozpraszające, mieszające) Haszowanie (adresowanie rozpraszające, mieszające) Tadeusz Pankowski H. Garcia-Molina, J.D. Ullman, J. Widom, Implementacja systemów baz danych, WNT, Warszawa, Haszowanie W adresowaniu haszującym wyróżniamy

Bardziej szczegółowo

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

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK 1 2 3 Pamięć zewnętrzna Pamięć zewnętrzna organizacja plikowa. Pamięć operacyjna organizacja blokowa. 4 Bufory bazy danych. STRUKTURA PROSTA

Bardziej szczegółowo

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

Bardziej szczegółowo

Wysokość drzewa Głębokość węzła

Wysokość drzewa Głębokość węzła Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu

Bardziej szczegółowo

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Bazy danych TERMINOLOGIA

Bazy danych TERMINOLOGIA Bazy danych TERMINOLOGIA Dane Dane są wartościami przechowywanymi w bazie danych. Dane są statyczne w tym sensie, że zachowują swój stan aż do zmodyfikowania ich ręcznie lub przez jakiś automatyczny proces.

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru. Spis treści 1 Drzewa 1.1 Drzewa binarne 1.1.1 Zadanie 1.1.2 Drzewo BST (Binary Search Tree) 1.1.2.1 Zadanie 1 1.1.2.2 Zadanie 2 1.1.2.3 Zadanie 3 1.1.2.4 Usuwanie węzła w drzewie BST 1.1.2.5 Zadanie 4

Bardziej szczegółowo

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

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

sprowadza się od razu kilka stron!

sprowadza się od razu kilka stron! Bazy danych Strona 1 Struktura fizyczna 29 stycznia 2010 10:29 Model fizyczny bazy danych jest oparty na pojęciu pliku i rekordu. Plikskłada się z rekordów w tym samym formacie. Format rekordujest listą

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania Plan wykładu Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych Model logiczny i model fizyczny Mechanizmy składowania plików Moduł zarządzania miejscem na dysku i moduł zarządzania buforami

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

Wykład 2. Relacyjny model danych

Wykład 2. Relacyjny model danych Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających

Bardziej szczegółowo

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny

Bardziej szczegółowo

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna - 7.Drzewa Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów

Bardziej szczegółowo

Tabela wewnętrzna - definicja

Tabela wewnętrzna - definicja ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy

Bardziej szczegółowo

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

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d. TECHNOLOGIE BAZ DANYCH WYKŁAD 1 Wprowadzenie do baz danych. Normalizacja. (Wybrane materiały) Dr inż. E. Busłowska Definicja bazy danych Uporządkowany zbiór informacji, posiadający własną strukturę i wartość.

Bardziej szczegółowo

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza BAZY DANYCH Microsoft Access OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

Bazy danych wykład ósmy Indeksy

Bazy danych wykład ósmy Indeksy Bazy danych wykład ósmy Indeksy Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy Wyszyńskiego, danych wykład Warszawa) ósmy Indeksy

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,

Bardziej szczegółowo

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

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Sortowanie zewnętrzne

Sortowanie zewnętrzne Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często

Bardziej szczegółowo

System plików przykłady. implementacji

System plików przykłady. implementacji Dariusz Wawrzyniak Plan wykładu CP/M MS DOS ISO 9660 UNIX NTFS System plików (2) 1 Przykłady systemu plików (1) CP/M katalog zawiera blok kontrolny pliku (FCB), identyfikujący 16 jednostek alokacji (zawierający

Bardziej szczegółowo

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST) Drzewa ST i VL Drzewa poszukiwań binarnych (ST) Drzewo ST to dynamiczna struktura danych (w formie drzewa binarnego), która ma tą właściwość, że dla każdego elementu wszystkie elementy w jego prawym poddrzewie

Bardziej szczegółowo

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1 Bazy danych wprowadzenie teoretyczne Piotr Prekurat 1 Baza danych Jest to zbiór danych lub jakichkolwiek innych materiałów i elementów zgromadzonych według określonej systematyki lub metody. Zatem jest

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 3 Struktury drzewiaste drzewo binarne szczególny przypadek drzewa, które jest szczególnym przypadkiem grafu skierowanego, stopień każdego wierzchołka jest

Bardziej szczegółowo

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

2017/2018 WGGiOS AGH. LibreOffice Base

2017/2018 WGGiOS AGH. LibreOffice Base 1. Baza danych LibreOffice Base Jest to zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego,

Bardziej szczegółowo

System plików przykłady implementacji

System plików przykłady implementacji System plików przykłady implementacji Dariusz Wawrzyniak CP/M MS DOS ISO 9660 UNIX NTFS Plan wykładu System plików (2) Przykłady implementacji systemu plików (1) Przykłady implementacji systemu plików

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 5

Algorytmy i struktury danych. wykład 5 Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4 Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych

Bardziej szczegółowo

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

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne Zad. 1 Narysuj schemat związków encji dla przedstawionej poniżej rzeczywistości. Oznacz unikalne identyfikatory encji. Dla każdego związku zaznacz jego opcjonalność/obowiązkowość oraz stopień i nazwę związku.

Bardziej szczegółowo

Optymalizacja poleceń SQL Metody dostępu do danych

Optymalizacja poleceń SQL Metody dostępu do danych Optymalizacja poleceń SQL Metody dostępu do danych 1 Metody dostępu do danych Określają, w jaki sposób dane polecenia SQL są odczytywane z miejsca ich fizycznej lokalizacji. Dostęp do tabeli: pełne przeglądnięcie,

Bardziej szczegółowo

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH PLAN WYKŁADU Składowanie danych Podstawowe struktury plikowe Organizacja plików BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć HIERARCHIA MECHANIZMÓW SKŁADOWANIA Podstawowy mechanizm składowania pamięć

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Podstawowe zagadnienia z zakresu baz danych

Podstawowe zagadnienia z zakresu baz danych Podstawowe zagadnienia z zakresu baz danych Jednym z najważniejszych współczesnych zastosowań komputerów we wszelkich dziedzinach życia jest gromadzenie, wyszukiwanie i udostępnianie informacji. Specjalizowane

Bardziej szczegółowo

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska INDEKSY Biologiczne Aplikacje Baz Danych dr inż. Anna Leśniewska alesniewska@cs.put.poznan.pl INDEKSY dodatkowe struktury służące przyspieszaniu dostępu do danych, tworzone dla relacji, są jednak niezależne

Bardziej szczegółowo

Optymalizacja poleceń SQL Indeksy

Optymalizacja poleceń SQL Indeksy Optymalizacja poleceń SQL Indeksy Indeksy Dodatkowe struktury służące przyspieszaniu dostępu do danych. Tworzone dla relacji, są jednak niezależne logicznie i fizycznie od danych relacji. O użyciu indeksu

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH ALGORYTMY I STRUKTURY DANYCH Temat : Drzewa zrównoważone, sortowanie drzewiaste Wykładowca: dr inż. Zbigniew TARAPATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Drzewa czerwono-czarne.

Drzewa czerwono-czarne. Binboy at Sphere http://binboy.sphere.p l Drzewa czerwono-czarne. Autor: Jacek Zacharek Wstęp. Pojęcie drzewa czerwono-czarnego (red-black tree) zapoczątkował Rudolf Bayer w książce z 1972 r. pt. Symmetric

Bardziej szczegółowo

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Pojęcie systemu informacyjnego i informatycznego

Pojęcie systemu informacyjnego i informatycznego BAZY DANYCH Pojęcie systemu informacyjnego i informatycznego DANE wszelkie liczby, fakty, pojęcia zarejestrowane w celu uzyskania wiedzy o realnym świecie. INFORMACJA - znaczenie przypisywane danym. SYSTEM

Bardziej szczegółowo

Listy, kolejki, stosy

Listy, kolejki, stosy Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6b: Model danych oparty na drzewach http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Model danych oparty na drzewach

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

Algorytmy i Struktury Danych, 9. ćwiczenia

Algorytmy i Struktury Danych, 9. ćwiczenia Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące

Bardziej szczegółowo

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1 Microsoft Access materiały pomocnicze do ćwiczeń cz. 1 I. Tworzenie bazy danych za pomocą kreatora Celem ćwiczenia jest utworzenie przykładowej bazy danych firmy TEST, zawierającej informacje o pracownikach

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Struktury danych: stos, kolejka, lista, drzewo

Struktury danych: stos, kolejka, lista, drzewo Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja

Bardziej szczegółowo

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25 MS Excel 2007 Kurs zaawansowany Obsługa baz danych prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 25 Bazy danych Microsoft Excel 2007 udostępnia szereg funkcji i mechanizmów obsługi baz danych (zwanych

Bardziej szczegółowo

Instrukcje dla zawodników

Instrukcje dla zawodników Instrukcje dla zawodników Nie otwieraj arkusza z zadaniami dopóki nie zostaniesz o to poproszony. Instrukcje poniżej zostaną ci odczytane i wyjaśnione. 1. Arkusz składa się z 3 zadań. 2. Każde zadanie

Bardziej szczegółowo

Bazy danych Access KWERENDY

Bazy danych Access KWERENDY Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Bazy danych stanowią obecnie jedno z ważniejszych zastosowań komputerów. Podstawowe zalety komputerowej bazy to przede wszystkim szybkość przetwarzania danych, ilość dostępnych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2014 1 / 24 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

Abstrakcyjne struktury danych - stos, lista, drzewo

Abstrakcyjne struktury danych - stos, lista, drzewo Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Drzewo binarne BST. LABORKA Piotr Ciskowski

Drzewo binarne BST. LABORKA Piotr Ciskowski Drzewo binarne BST LABORKA Piotr Ciskowski zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego

Bardziej szczegółowo

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów Plan wykładu Bazy Wykład 11: Indeksy Pojcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl

Bardziej szczegółowo

Bazy danych Karta pracy 1

Bazy danych Karta pracy 1 Bazy danych Karta pracy 1 Bazy danych Karta pracy 1 1. Utwórz katalog Bazy danych służący do przechowywania wszelkich danych dotyczących kursu. 2. W katalogu Bazy danych stwórz podkatalog BD1 służący jako

Bardziej szczegółowo

Wykład 8. Drzewa AVL i 2-3-4

Wykład 8. Drzewa AVL i 2-3-4 Wykład 8 Drzewa AVL i 2-3-4 1 Drzewa AVL Ø Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Ø Drzewa 2-3-4 Definicja drzewa 2-3-4 Operacje wstawiania i usuwania Złożoność

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

2 Kryptografia: algorytmy symetryczne

2 Kryptografia: algorytmy symetryczne 1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;

Bardziej szczegółowo

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Uzupełnij pola tabeli zgodnie z przykładem poniżej, 1. Wykonaj bazę danych biblioteki szkolnej, Otwórz MS Access a następnie z menu plik wybierz przycisk nowy, w oknie nowy plik wybieramy pusta baza danych nadaj jej nazwę Biblioteka i wybierz miejsce w

Bardziej szczegółowo

Egzaminy i inne zadania. Semestr II.

Egzaminy i inne zadania. Semestr II. Egzaminy i inne zadania. Semestr II. Poniższe zadania są wyborem zadań ze Wstępu do Informatyki z egzaminów jakie przeprowadziłem w ciągu ostatnich lat. Ponadto dołączyłem szereg zadań, które pojawiały

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

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.

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. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo