Fizyczna struktura bazy danych Indeksy Optymalizacja. Fizyczna struktura bazy danych (c.d.) Tadeusz Pankowski

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

Download "Fizyczna struktura bazy danych Indeksy Optymalizacja. Fizyczna struktura bazy danych (c.d.) Tadeusz Pankowski"

Transkrypt

1 Indeksowanie: B-drzewa Tadeusz Pankowski Fizyczna struktura bazy danych Indeksy Optymalizacja Fizyczna struktura bazy danych Techniki używane do przechowywania dużej ilości ustrukturalizowanych danych na dysku mają wpływ na: projektowanie baz, administrowanie oraz implementację systemów SZBD Proces fizycznego projektowania bazy danych związany jest z wyborem, spośród opcji oferowanych przez SZBD, takiej techniki organizacji danych, która będzie najlepiej odpowiadała wymaganiom aplikacji Potrzebne dane muszą zostać jak najsprawniej zlokalizowane na dysku, skopiowane do pamięci głównej, a następnie, po przetworzeniu, z powrotem zapisane na dysku Trwałe dane w bazie danych są przechowywane w pamięci zewnętrznej z trzech powodów: ze względu na rozmiar bazy danych, odporność pamięci zewnętrznej na awarie, koszt jednostkowy. Pamięć zewnętrzna ma organizację plikową, oznacza to, że jednostką alokacji na dysku jest plik. 4

2 Dane przechowywane na dysku są zorganizowane w pliki rekordów. Każdy rekord składa się z pól przechowujących wartości. Organizacja pliku określa sposób uporządkowania rekordów w pliku przechowywanym na dysku. Wybór właściwej organizacji zależy od sposobu użytkowania danego pliku i jest zadaniem administratora BD. Podstawowe metody organizacji plików: plik stertowy (heap file) dopisuje nowe rekordy na końcu pliku plik posortowany (sorted file) zachowuje uporządkowanie rekordów według wartości określonego pola plik mieszający (hash file) wykorzystuje funkcję mieszającą stosowaną względem określonego pola w celu określenia miejsca umieszczenia rekordu na dysku Pomocnicze struktury dostępu: B-drzewa, indeksy 5 Rekordy mogą mieć stałą lub zmienną długość. Stała długość oznacza, że rekord zawsze zajmuje tyle samo miejsca na dysku, niezależnie od rzeczywistych rozmiarów przechowywanych w nim danych. Rekordy o zmiennej długości przyjmują taki rozmiar jaki faktycznie przyjmują przechowywane w nich dane. Na poziomie dyskowym, rekordy są przechowywane w blokach dyskowych (strony, page). Rozmiar tych bloków jest określany przez system operacyjny (zwykle 0.5KB-8KB). Rekordy pliku muszą być przydzielane do bloków dyskowych, ponieważ blok jest jednostką przesyłania danych między dyskiem a pamięcią 6 Organizacja segmentowana (spanned): pozwala przechowywać część rekordu w jednym bloku, a resztę w drugim. Wskaźnik znajdujący się na końcu pierwszego bloku wskazuje na blok, w którym znajduje się reszta rekordu, jeżeli nie jest to następny blok w kolejności Organizacja niesegmentowana (unspanned): nie zezwala, aby rozmiar rekordu był większy niż rozmiar bloku Alokacja ciągła: bloki pliku są alokowane na kolejnych blokach dysku; odczyt pliku jest bardzo szybki, ale utrudnia rozszerzanie pliku Alokacja łączona: każdy blok pliku zawiera wskaźnik na następny blok pliku Alokacja klastrów: kombinacja dwóch poprzednich rozwiązań; kolejne bloki łączone są w klastry i zawierają wskaźnik na następny klaster Alokacja indeksowa: bloki indeksu zawierają wskaźnik na faktyczne bloki pliku 7 8

3 Metoda organizacji pliku odnosi się do rozmieszczenia danych pliku w ramach rekordów, bloków i struktur dostępu. W celu wyszukania rekordu na dysku jeden lub większa liczba bloków zostaje skopiowana do buforów pamięci głównej. Następnie w buforach wyszukiwany jest potrzebny rekord lub rekordy. Jeżeli adres bloku zawierającego rekord nie jest znany, przeszukiwanie musi być liniowe. Każdy blok pliku zostaje skopiowany do bufora i przeszukiwany do momentu znalezienia rekordu lub przeszukania wszystkich bloków. Celem poprawnej organizacji plików jest możliwość lokalizowania bloku zawierającego potrzebny rekord w jak najmniejszej liczbie operacji przesyłania bloków. Metoda dostępu to grupa operacji (znajdź, odczytaj, zmodyfikuj, wstaw, zamknij i inne), które można stosować względem pliku; niektóre metody dostępu mogą być stosowane tylko dla określonej metody organizacji plików Techniki metod dostępu: szeregowanie, mieszanie (hash-owanie), indeksowanie 9 0 SQL Server zapisuje dane (rekordy, rows) w 8 KB (=89B) ciągłych obszarach przestrzeni nazywanych stronami (ang. Page). Strony łączone są w większe struktury nazywane zakresami (ang. Extent). Każdy zakres składa się z 8 stron, czyli zawiera 64 KB danych. Tabele i indeksy zapisywane są w zakresach, przy czym małe obiekty mogą dzielić ten sam zakres. Poszczególne wiersze tabel oraz dane indeksów wraz z metadanymi przechowywane są na stronach (ogranicza to ich rozmiar). Maksymalna liczba danych zapisanych na pojedynczej stronie wynosi 8060 bajtów Pojedynczy wiersz nie może zostać zapisany na kilku stronach. Wynika z tego, że wielkość pojedynczego wiersza nie może przekroczyć 8060 bajtów

4 Baza danych zapisana jest przynajmniej w dwóch plikach: W głównym pliku.mdf (główny plik danych), w którym zapisane są informacje o strukturze bazy oraz wszystkie wiersze poszczególnych tabel i indeksy. W pliku.ldf (plik rejestru transakcji), w którym zapisany jest dziennik transakcyjny bazy danych Można (a nawet należy) zapisywać bazę w większej liczbie plików dane mogą zostać podzielone między dowolną liczbę plików.ndf (pliki dodatkowe) gdzie: CREATE DATABASE nazwa [ON [PRIMARY] [<plik> [, n]] [, <grupa_plików> [, n]] ] [LOG ON {<plik> [, n]}] [COLLATE porządek] [FOR LOAD FOR ATTACH] <plik> ::= ([NAME = nazwa_logiczna,] FILENAME = 'nazwa_fizyczna' [, SIZE = wielkość] [, MAXSIZE = {maksymalna_wielkość UNLIMITED}] [, FILEGROWTH = przyrost]) [, n] <grupa_plików> ::= FILEGROUP nazwa <plik> [, n] 4 CREATE DATABASE wydawnictwo ON PRIMARY (NAME = wydawnictwo_dane, FILENAME = 'C:\wydawnictwo\wydawnictwo_dane.mdf', SIZE = 5MB, MAXSIZE = 0MB, FILEGROWTH = 0%), (NAME = wydawnictwo_dane, FILENAME = 'C:\wydawnictwo\wydawnictwo_dane.ndf', SIZE = MB, MAXSIZE = 0MB, FILEGROWTH = 0%) LOG ON (NAME = wydawnictwo_dziennik, FILENAME = 'C:\wydawnictwo\wydawnictwo_dziennik.ldf') 5 Usuwanie bazy danych DROP DATABASE nazwabd [, nazwabd,...] Rozbudowa bazy danych ALTER DATABASE nazwabd (...) sp_dboption procedura pozwala wyświetlić lub zmienić ustawienia konfiguracyjne bazy danych sp_databases lista wszystkich baz danych na serwerze sp_helpdb [nazwa_bazy] informacja o wszystkich bazach na bieżącym serwerze [informacja o konkretnej bazie] 6

5 Indeksy Indeksy (c.d.) Indeks jest pomocniczą strukturą używaną w celu przyspieszenia dostępu do żądanych rekordów pliku. Konstruowany jest w oparciu o pole indeksujące. Do konstrukcji indeksu można użyć dowolnego pola, jak również dla jednego pliku można stworzyć wiele indeksów. Najczęściej używane rodzaje indeksów: jednopoziomowe, bazujące na plikach uporządkowanych wielopoziomowe, bazujące na strukturach drzewiastych Powodem tworzenia indeksów jest poprawa wydajności bazy danych. Indeksy, podobnie jak statystyki, nie wpływają na wynik zapytania, a jedynie na plan i koszt jego wykonania. Jeżeli nie istnieją indeksy, wyszukanie pojedynczego wiersza tabeli wiąże się z koniecznością odczytania wszystkich stron, na których tabela została zapisana 7 8 Indeksy (c.d.) Indeksy (c.d.) Zalety: optymalizacja zapytań - jeżeli istnieją powiązane z tabelą indeksy, znalezienie żądanych danych sprowadza się do znalezienia w indeksie (który z reguły jest obiektem wielokrotnie mniejszym niż tabela) wierszy tabeli spełniających podane kryteria i odczytania wyłącznie tych stron, na których zostały zapisane znalezione wiersze; Wady: indeksy mogą spowalniać operacje wstawiania, usuwania i modyfikacji danych Strukturę indeksu definiuje się zazwyczaj dla jednego pola pliku, zwanym polem (atrybutem) indeksującym Wartości w indeksie są uporządkowane, dzięki czemu można na nich wykonywać wyszukiwanie binarne (przez połowienie) Rodzaje indeksów uporządkowanych: indeks główny, określany na polu klucza (unikatowym), według którego plik jest fizycznie porządkowany indeks klastrowania (grupujący), dla pól porządkujących, ale nie koniecznie unikatowych indeks drugorzędny, określony dla pola nieporządkującego 9 0

6 Indeksy (c.d.) Indeks główny Indeks zagęszczony (dense index) zawiera wpis dla każdej wartości klucza wyszukiwania znajdującej się w pliku danych (a więc dla każdego rekordu) (np. indeks drugorzędny) Indeks rzadki, niezagęszczony (sparse index, nondense) posiada wpisy tylko dla niektórych wartości wyszukiwania (np. indeks główny) Indeks główny to plik uporządkowany z rekordami o stałej długości posiadającymi dwa pola zawierające: wartość pola klucza - K(i) wskaźnik na blok dyskowy zawierający rekord o tej wartości pola klucza - P(i) Dla każdego bloku danych przypada jeden wpis (rekord) indeksu Rekord, którego wartość klucza wynosi K, gdzie K(i) K<K(i+) znajduje się zatem w bloku, którego adresem jest P(i), (rekordy są fizycznie uporządkowane ze względu na wartość pola klucza) Indeks główny przykład Indeks główny zadanie Plik indeksu Wartość klucza Wskaźnik P(i) głównego K(i) na blok Ala Danuta Helena... Plik danych Imię (pole klucza głównego) Ala Beata Celina Czesława Danuta Dorota Franciszka Grażyna Helena Irena Joanna Katarzyna Załóżmy, że mamy plik uporządkowany względem pola klucza liczący r = rekordów, przechowywany na dysku o rozmiarze bloku 04 bajty. Rekordy pliku mają stały rozmiar R=00 bajtów (i są niesegmentowane). Ile dostępów do bloku wymaga wyszukanie binarne? Rozwiązanie: W bloku mamy 04/00 = 0 rekordów. Liczba wymaganych bloków wynosi zatem 0 000/0 = 000. Przeszukanie binarne wymaga około log 000= operacji dostępu do bloku. Załóżmy teraz, że pole klucza ma długość V=9 bajtów. Na tym polu utworzono indeks główny, wskaźnik na blok ma 6 bajtów. Jaki zysk otrzymamy stosując indeks? Rozmiar każdego wpisu indeksu wynosi 9+6=5, zatem w jednym bloku mieści się 04/5=68 wpisów. Całkowita liczba wpisów indeksu jest równa liczbie bloków pliku z danymi, a więc 000. Potrzebujemy zatem 000/68=45 bloków. Przeszukiwanie binarne na pliku indeksu wymaga zatem log 45=6 dostępów do bloków. Plus dostęp do bloku danych, a więc 7 operacji dostępu. 4

7 Indeks grupujący Indeks grupujący przykład Jeżeli rekordy pliku są fizycznie posortowane według pola nie będącego polem klucza (a więc takiego, dla którego wartości mogą się powtarzać), to pole to określa się mianem pola klastrowania i można utworzyć na nim indeks grupujący (klastrowania). Indeks ten również składa się z dwóch pól: wartość pola klastrowania (po jednym wpisie dla każdej odrębnej wartości) wskaźnik na pierwszy blok w pliku danych zawierający rekord o danej wartości pola klastrowania 5 Plik indeksu Wartość pola Wskaźnik P(i) klastrowania K(i) na blok... Wskaźnik na blok, indeksu zgrupowanego, zawiera adres bloku danych, w którym znajduje się pierwszy rekord danych z wartością atrybutu indeksowego równą wartości pola grupowania Plik danych Numer (pole klastrowania) 6 Indeks drugorzędny Indeks drugorzędny przykład Indeks drugorzędny (wtórny) jest dodatkowym mechanizmem, i tworzony jest na polu, które nie porządkuje danych, i które może mieć zarówno wartości unikalne jak i powtarzające się Sam indeks posiada wartości uporządkowane o dwóch polach: wartość pola indeksującego wskaźnik na rekord lub na blok (różne wersje) Plik indeksu Wartość pola indeksu K(i) Wskaźnik P(i) na blok Plik danych Numer (pole klucza drugorzędnego) Każdy rekord pliku danych posiada swój odpowiednik w rekordzie indeksu. Stąd, indeks wtórny jest indeksem gęstym. 7 8

8 Indeks drugorzędny zadanie Rozważmy przykład jak w zadaniu. Plik posiada 000 bloków o rozmiarze 04, gdzie wpisano rekordów o rozmiarze 00 bajtów każdy. Ponieważ pole, po którym wyszukujemy nie jest uporządkowane, aby znaleźć żądaną wartość należy przeprowadzić wyszukiwanie liniowe, a więc wykonać średnio 000/ = 500 operacji dostępu do bloków. Załóżmy, że skonstruowaliśmy indeks drugorzędny. Podobnie jak w zadaniu każdy wpis ma rozmiar 9+6=5 bajtów, a zatem w jednym bloku znajduje się 04/5=68 wpisów. Całkowita liczba wpisów w indeksie jest równa liczbie rekordów w pliku danych (wartości pola są unikalne), a więc wynosi Indeks musi zatem zajmować 0 000/68=44 bloki. Przeszukanie binarne takiego pliku wymaga log 44=9 operacji dostępu do bloku, plus operacja dostępu do bloku danych, a więc w sumie 0 operacji, co jest znacznym usprawnieniem. 9 Indeks drugorzędny dla pola o powtarzających się wartościach przykład Plik indeksu Wartość pola indeksu K(i) 4 5 Wskaźnik P(i) na blok Blok wskaźników na rekordy 5 Plik danych Numer (pole indeksowania) Indeksy wielopoziomowe Indeks wielopoziomowy zadanie Indeks wielopoziomowy powstaje na bazie uporządkowanego pliku indeksu o odrębnych wartościach dla każdego K(i), który teraz określany jest jako zerowy (lub podstawowy) poziom indeksu. Dla niego tworzony jest indeks główny, który staje się pierwszym poziomem indeksu. Proces ten jest powtarzany do momentu, aż wszystkie wpisy indeksu na pewnym poziomie t zmieszczą się w jednym bloku. Ten poziom określa się jako szczytowy. Wysokość t = log f0 r, gdzie r jest liczbą wpisów na poziomie podstawowym, a f0 liczbą wpisów na jeden blok. Wyszukiwanie w takim pliku jest szybsze niż wyszukiwanie binarne, jeżeli f0>. Załóżmy, że zagęszczony indeks drugorzędny z zadania został zamieniony na indeks wielopoziomowy. Obliczyliśmy współczynnik blokowy pliku f0= 68 wpisów na blok i stanowi on jednocześnie obciążenie wyjściowe dla indeksu wielopoziomowego. Liczba bloków na poziomie podstawowym wynosiła r=44. Liczba bloków poziomu pierwszego wyniesie zatem 44/68=7 bloków, a na poziomie drugim: 7/68= blok. Zatem t=log 68 44=. W celu uzyskania dostępu do żądanego rekordu poprzez przeszukanie indeksu wielopoziomowego musimy uzyskać dostęp do jednego bloku na każdym poziomie oraz jednego bloku w pliku danych, a więc +=4 operacje dostępu do bloków.

9 Drzewa Drzewa wyszukiwania Drzewo oznacza w teorii grafów graf, który jest acykliczny i spójny. Węzeł wewnętrzny liść 0 korzeń poddrzewo Poziom 0 Poziom Poziom Drzewo wyszukiwania stanowi specjalny rodzaj drzewa używanego w celu sterowania procesem wyszukiwania rekordu. Indeksy wielopoziomowe można postrzegać jako odmianę drzew wyszukiwania. Drzewo wyszukiwania rzędu p jest takim drzewem, że każdy wierzchołek zawiera co najwyżej p- wartości wyszukiwania oraz p wskaźników na poddrzewo: <P, K, P, K,..., P q-, K q-, P q >, gdzie q p. Każde P i oznacza wskaźnik na poddrzewo (lub wsk.pusty), a każde K i jest wartością wyszukiwania z uporządkowanego zbioru wartości (zakłada się, że wartości są unikatowe) Drzewo 4 Drzewa wyszukiwania (c.d.) B-drzewa w każdym wierzchołku K < K <... < K q- dla wszystkich wartości X w poddrzewie, na które wskazuje wskaźnik P i zachodzi: K i- < X < K i P K... K i- P i K i... K q- X < K K i- < X < K i K q- < X P q... B-drzewo (perfectly balanced multiway tree) jest drzewem wyszukiwania o dodatkowych ograniczeniach, które zapewniają, że jest ono zawsze w pełni zrównoważone oraz stopień wypełnienia nie jest nigdy zbyt mały. (Komplikuje to oczywiście algorytmy wstawiania i usuwania, ale przyspiesza wyszukiwanie) Stanowi ono podstawę implementacji indeksów w SZBD. Drzewo skierowane T nazywamy B-drzewem klasy t(h, m), jeśli h = 0 (drzewo puste) lub Wszystkie drogi od korzenia do liści są długości h, Każdy wierzchołek z wyjątkiem korzenia ma, co najmniej m kluczy (elementów) i m+ synów, Każdy wierzchołek ma, co najwyżej m kluczy (i m+ synów), Korzeń ma, co najmniej jeden klucz. 5 6

10 B-drzewa (c.d.) B-drzewa (c.d.) Struktura strony (wierzchołka) w B-drzewie: <P 0, <K, Pr >, P, <K, Pr >,..., <K q, Pr q >, P q > gdzie K i jest wartością wyszukiwania, P i jest wskaźnikiem poddrzewa, a Pr i jest wskaźnikiem danych, q m dla korzenia, i m q m dla wierzchołków i liści. W każdym wierzchołku K <... < K q, P i - wskaźnik na wierzchołek będący synem lub NIL, <K i, Pr i > indeks. K i- P i- K i P i K i+ K i- < X < K i K i < X < K i+ schemat uporządkowania kluczy. 7 Operacje na indeksie zorganizowanym według struktury B-drzewa Dołączanie metoda podziału metoda kompensacji Chcemy dołączyć element indeksu o kluczu X, tak aby nie naruszyć struktury B-drzewa. Dołączanie poprzedzone jest procedurą SZUKAJ, w wyniku której, albo znajdziemy wierzchołek zawierający klucz X (koniec) albo znajdziemy adres wierzchołka (liścia) do którego należy dołączyć klucz X. Jeśli wierzchołek ma mniej niż m elementów to dołączamy nowy klucz. Jeśli wierzchołek ma m elementów to następuje tzw. kolizja (przepełnienie, nadmiar), którą rozwiązujemy albo metodą podziału albo metodą kompensacji. 8 B-drzewa (c.d.) B-drzewa (c.d.) Likwidacja nadmiaru a) metoda podziału m+ elementów dzielimy na trzy części. Elementy,..., m umieszczamy w wierzchołku Element m+ przenosimy do strony ojca Elementy m+,..., m+ umieszczamy w wierzchołku (rys.) Przykład. m = b) metoda kompensacji: można ją stosować jeżeli sąsiednia strona zawiera j<m elementów. Stan wyjściowy rys, j=<m, obliczamy i=entier((m+j+)/) = ((4++)/) = 4. Elementy,,..., i- umieszczamy w wierzchołku, Element i przenosimy do strony ojca, Elementy i+,..., m+j+ umieszczamy w wierzchołku (rys.). Rys. Jeżeli w stronie ojca nastąpi przepełnienie to algorytm powtarzamy może wzrosnąć wysokość drzewa. 9 40

11 B-drzewa (c.d.) B-drzewa (c.d.) Usuwanie metoda łączenia metoda kompensacji Chcemy usunąć element o kluczu X. Usuwanie podobnie jak dołączanie poprzedzone jest algorytmem wyszukiwania. Procedura SZUKAJ powinna zakończyć się powodzeniem i zwrócić adres (s) wierzchołka (strony) zawierającej klucz X. Jeśli strona jest liściem to usuwamy indeks o kluczu X. Może wówczas wystąpić niedomiar, który usuwamy metodą łączenia lub kompensacji. Jeżeli strona nie jest liściem to przeglądamy poddrzewo wskazywane przez prawy wskaźnik stojący za kluczem X i szukamy najmniejszego indeksu (L) - idziemy ścieżką wskazywaną przez P 0, aż dojdziemy do liścia (rys.). Ten najmniejszy element wstawiamy w miejsce (X, Pr) a następnie usuwamy go z liścia może wystąpić niedomiar. 4 Likwidacja niedomiaru Rys. a) metoda kompensacji: jeżeli dla każdej ze stron sąsiednich j+k m to stosujemy metodę kompensacji analogicznie jak przy dołączaniu (j, k ilość elementów na sąsiednich stronach). 4 B-drzewa (c.d.) B-drzewa -przykład b) metoda łączenia stosujemy ją jeśli strona s zawiera j<m elementów, a jedna ze stron sąsiednich (s) zawiera k elementów, przy czym j+k<m (rys.4). Rys.4 Dane jest B-drzewo klasy t(h, ) (rys.5): a) wstaw obiekt o kluczu (metodą podziału i metodą kompensacji), b)usuń obiekt o kluczu 46 (metodą łączenia i metodą kompensacji). Rys.5 Na stronie s może wystąpić niedomiar, trzeba wówczas operację łączenia powtórzyć, lub jeśli s jest korzeniem to przekazujemy go do puli stron pustych (drzewo zmniejszy wysokość). 4 44

12 B-drzewa - zadania B + -drzewa. Oblicz liczbę wierzchołków W min i W max B-drzewa klasy T(, ) odpowiednio przy minimalnym i maksymalnym wypełnieniu drzewa.. Oblicz maksymalne (minimalne) zużycie pamięci konieczne na zapamiętanie indeksu w postaci B-drzewa, przy następujących danych: N = B = kb P = 4B A = 8B X = 0B - liczba rekordów w pliku głównym, - wielkość bloku, - wielkość pola wskaźnikowego, - wielkość pola adresowego, Jaka jest wówczas wysokość B-drzewa? - wielkość pola klucza indeksowania. 45 W większości komercyjnych systemów baz danych do tworzenia indeksów wykorzystywana jest pewna modyfikacja B-drzew o nazwie B + -drzewa. Struktura B + -drzewa jest taka sama jak B-drzewa (zrównoważone, wielodrogowe drzewo wyszukiwań). Różnica polega na tym, że wszystkie indeksowane dane i wskaźniki do rekordy danych przechowywane są w liściach. Wierzchołki pośrednie służą tylko do wyszukiwania danych. 46 B + -drzewa (c.d.) Indeksy w SQL Server W przypadku B + -drzewa wskaźniki danych są przechowywane tylko w liściach Wierzchołki liści posiadają wpis (indeks ze wskaźnikiem do rekordu danych) dla każdej wartości pola wyszukiwania Niektóre wartości pola wyszukiwania są powtarzane w wierzchołkach wewnętrznych i służą do wspomagania wyszukiwania Koszt wyszukiwania wysokość drzewa +. wskaźnik danych Liście implementowane są zwykle jako lista. B + -drzewo dla kluczy: 8, 5,, 7,,, 9, 6 (m=) 47 SQL Server pozwala na tworzenie indeksów grupujących (klastrujących, ang. Clustered) i niegrupujących (ang. NonClustered) Indeksy tworzone są w oparciu o strukturę B + -drzewa SQL Server po utworzeniu indeksu grupującego reorganizuje wszystkie strony tabeli, zapisując wiersze w kolejności określonej przez indeks grupujący (krotki są fizycznie posortowane według atrybutu indeksującego) Na danej tabeli może zatem istnieć tylko jeden indeks grupujący Domyślnie na kluczu podstawowym jest tworzony indeks grupujący 48

13 Indeksy w SQL Server (c.d.) Tworzenie indeksu Indeks niegrupujący nie wpływa w żaden sposób na uporządkowanie stron tabeli (uporządkowane są jedynie pozycje samego indeksu). Można ich utworzyć 49. Indeksy niegrupujące używają indeksu grupującego do pobierania żądanych danych z tabeli, dlatego indeks grupujący należy utworzyć przed utworzeniem indeksów niegrupujących. CREATE [UNIQUE] [CLUSTERED NONCLUSTERED] INDEX indeks ON {tabela (kolumna [ASC DESC] [, n]) [WITH [PAD_INDEX] [[,] FILLFACTOR = współczynnik_wypełnienia] [[,] IGNORE_DUP_KEY] [[,] DROP_EXISTING] [[,] STATISTICS_NORECOMPUTE] [[,] SORT_IN_TEMPDB] ] [ON grupa_plików] Tworzenie indeksu (c.d.) PAD_INDEX oznacza utworzenie indeksu, którego wierzchołki wewnętrzne zostaną zapisane na stronach niewypełnionych w 00%, dzięki czemu dodanie lub modyfikacja danych nie będą oznaczały konieczności przebudowy tego indeksu. Wykorzystywany w połączeniu z FILLFACTOR. Domyślnie SQL Server na każdej stronie indeksu zostawi tyle wolnej przestrzeni, ile wystarcza do zapisania dwóch dodatkowych wierszy indeksu, FILLFACTOR określa procent wolnej przestrzeni na stronach przechowujących wartości liści indeksu, IGNORE_DUP_KEY (opcja dostępna tylko dla indeksów unikatowych) sprawi, że próba wstawienia wartości już istniejącej w jednej z kolumn indeksu unikatowego spowoduje wyświetlenie ostrzeżenia, a naruszająca warunki integralności instrukcja zostanie zignorowana, ale transakcja będzie kontynuowana. Brak tego parametru powoduje przy próbie wstawienia istniejących wartości wyświetlenie komunikatu błędu i wycofanie całej transakcji, DROP_EXISTING zastępuje istniejący indeks nowym o tej samej nazwie, STATISTICS_NORECOMPUTE wyłącza automatyczne aktualizowanie statystyk dla indeksu, SORT_IN_TEMPDB powoduje, że wewnętrzne operacje sortowania danych indeksu będą przeprowadzane w bazie tempdb. Jeżeli baza tempdb znajduje się na osobnym, szybkim dysku, może to spowodować skrócenie czasu sortowania danych indeksu. 5 Optymalizacja zapytań Zapytania przed skompilowaniem i wykonaniem są optymalizowane przez wewnętrzny proces SQL Servera o nazwie Query Optimizer. Jego zadaniem jest znalezienie najtańszego sposobu wykonania instrukcji. Query Optimizer bazuje na liczbie operacji wejścia-wyjścia oraz na liczbie obliczeń dokonanych przez procesor niezbędnych do wykonania instrukcji. Query Optimizer szacuje koszt operacji wejścia-wyjścia na podstawie: struktury tabel i związanych z nimi indeksów kosztu operacji złączenia istniejących lub tworzonych dynamicznie statystyk opisujących dane źródłowe metainformacji opisujących fizyczną strukturę plików, w których zapisane są żądane dane. 5

14 Optymalizacja instrukcji języka T-SQL przebiega następująco: Sprawdzana jest poprawność syntaktyczna i semantyczna (parse), instrukcja zostanie podzielona na znaczniki interpretowane przez SQL Server. standaryzacja zapisanie znaczników instrukcji Transact-SQL w jednoznacznej postaci (np. ujednolicenie aliasów) optymalizacja wybór jednego z przygotowanych planów wykonania. Na tym etapie następuje analiza indeksów i statystyk oraz metod złączania danych. Etap można podzielić na trzy fazy: Analiza zapytania wybór metod wyszukiwania i łączenia danych źródłowych Wybór indeksów Wybór metody złączania tabel Instrukcja wykonana według opracowanego optymalnego planu zostaje skompilowana. Query Optimizer wybiera optymalny sposób pobrania wybranych (wynikowych) danych. Na przykład: czy odwołać się do indeksu, czy odczytać tabelę 5 Skompilowana według optymalnego planu instrukcja języka Transact-SQL zostaje zapisana w buforze procedury Ponowna kompilacja instrukcji jest przeprowadzana, jeżeli: Zmieniona została definicja obiektu, do którego instrukcja się odwołuje (wykonano polecenie ALTER). Wymuszono aktualizacje statystyk, na podstawie których przygotowany został plan wykonania instrukcji (wykonano instrukcję UPDATE STATISTIC). Usunięto indeks wykorzystywany przez instrukcję (wykonano instrukcję DROP INDEX). Z tabeli źródłowej usunięto lub dodano do niej dużą (względem stanu w momencie optymalizacji instrukcji) liczbę wierszy. Wymuszono rekompilację instrukcji (wywołano procedurę systemową sp_recompile). 54 Plan wykonania instrukcji oraz wartości pewnych statystyk można poznać: odczytując zawartość tabeli systemowej SYSINDEXES (nie jest zalecane) wyświetlając plan wykonania włączając opcje: SET SHOWPLAN TEXT lub SET SHOWPLAN_ALL wyświetlając statystyki związane z czasem -SET STATISTICS TIME ON wyświetlając statystyki związane liczbą operacji we/wy - SET STATISTICS IO ON korzystając z przedstawienia graficznego, które zawiera informacje o kolejności wykonywania instrukcji, logicznych operatorach algebry zbiorów użytych podczas wykonywania instrukcji oraz fizycznej implementacji tych operatorów 55 Informacje związane z liczbą operacji we-wy scan count liczba odwołań do tabeli źródłowej logical reads liczba odczytanych z pamięci podręcznej stron danych physical reads liczba stron danych odczytanych z dysku read-ahead reads liczba stron umieszczonych w pamięci podręcznej Współczynnik trafień=(logical reads - physical reads )/ logical reads physical reads<= logical reads 56

15 Lista operatorów fizycznych Plan wykonania może być przedstawiony w postaci graficznej i zawiera informacje o: Krokach wykonania zadania i ich kolejności. Logicznych operatorach algebry relacji, które były wykorzystane podczas wykonania zadnia. Fizycznej implementacji tych operatorów użytej do wykonania zadania Plan wykonania Plan wykonania (c.d.) select nazwa from dzialy where nazwa = 'ALGORYTMY' Ustawiając kursor na symbolu operatora fizycznego uzyskamy dodatkowe informacje o danej operacji: argumenty wywołania operacji (ang. Argument), koszt wykonania operacji i jego szacunkowy udział w koszcie wykonania instrukcji (ang. Cost), create index ix_nazwa on dzialy(nazwa) select nazwa from dzialy where nazwa = 'ALGORYTMY' koszt wykonania operacji i operacji przez nią wywołanych (ang. Subtree cost), liczbę wykonania operacji w ramach instrukcji (ang. Number of executes), liczbę zwróconych przez operacje wierszy (ang. Row count), szacunkową wielkość zwróconych przez operacje wierszy (ang. Estimated row size), szacunkowy koszt operacji we-wy (ang. I/O cost), szacunkowy koszt wykorzystania zasobów procesora przez (ang. CPU cost)

16 Optymalna pod względem szybkości odczytu danych jest sytuacja, w której wszystkie żądane dane (wyrażenia wymienione w instrukcji ) mogą zostać odczytane z indeksu. Mówimy wtedy, że indeks zawiera zapytanie. Szczególną grupę stanowią zapytania z operatorami z grupy SARG (ang. Search ARGuments). Nazwa ta określa pewien specjalny podzbiór argumentów wyszukiwania (wymienionych w klauzuli WHERE instrukcji SELECT. Argumenty te charakteryzuje: Obecność stałej, której wartość jest porównywana z polami wybranej kolumny tabeli źródłowej. Wyszukiwanie wartości równych wzorcowi, należących do zakresu wyznaczonego przez wzorzec lub przez połączenie kilku argumentów SARG za pomocą operatora koniunkcji. 6 Wykonanie zapytania zawierającego argument typu SARG-( =, <, <=, >, >=, BETWEEN oraz, w pewnych przypadkach, LIKE np. gdy znak % jest na końcu, pozwala to ograniczyć liczbę przeszukiwanych wierszy) przebiega według następującego schematu: optymalizator sprawdza, czy istnieją przydatne do wykonania zapytania indeksy jeżeli takie indeksy istnieją, rozpoczyna się wyszukiwanie (za pomocą operatora >=) stron indeksu przechowujących żądane dane wszystkie wartości spełniające zadane kryteria są odczytywane, a jeśli jest to konieczne, z tabeli odczytywane są pozostałe pola danego wiersza. 6 W przypadku użycia operatora <>, NOT,!=,!<,!>, NOT EXISTS, NOT IN czy NOT LIKE konieczne okazuje się sprawdzenie wartości wszystkich wierszy tabeli źródłowej. Chociaż nie oznacza to, że SQL Server nie potrafi skorzystać z indeksów przy tworzeniu planu zapytania zawierającego wyżej wymienione operatory, to należy dążyć do zastąpienia takich operatorów argumentami SARG. Optymalizacja złączeń tabel: Jeżeli zapytanie zawiera klauzulę WHERE, optymalizator może zadecydować o wybraniu wierszy spełniających podane kryteria, zanim wykona operację złączenia. W ten sposób wielokrotnie zmniejsza się liczba wierszy, które będą łączone Metody złączeń: Hash Match złączenie mieszające Nested Loop złączenie pętli zagnieżdżonych Merge Join złączenie sortująco-scalające 6 64

17 Hash Match Tego typu połączenie przeprowadzane jest, jeżeli optymalizator nie może znaleźć użytecznych dla złączenia indeksów. Dane zawarte w tabelach źródłowych dzielone są na grupy według wartości funkcji skrótu (funkcji hash-ującej) obliczonej dla kolejnych wierszy, tzn. dane, dla których wartość tej funkcji jest taka sama trafiają do tej samej grupy. Wystarczy więc, że SQL Server porówna dane z tych samych grup. Hash Match select * from dzialy d, pracownicy p where p.id_dzialu = d.id_dzialu Nested Loop Złączenie tego typu polega na porównaniu przez SQL Server każdego wiersza z wewnętrznej tabeli złączenia (decyzja o tym, która tabela zostanie uznana za wewnętrzną jest podejmowana przez usługę Query Optimizer na podstawie liczby wierszy, ich unikalności i ziarnistości) z kolejnymi wierszami zewnętrznej tabeli złączenia. Stosowne jest kiedy w tabeli wewnętrznej na kolumnie połączeniowej założony jest indeks. Jeżeli obie mają indeksy to mniejsza z tabel preferowana jest jako tabela zewnętrzna 67 Nested Loop create index ix_id_dz on dzialy(id_dzialu) select * from dzialy d, pracownicy p where p.id_dzialu = d.id_dzialu tabela wewnętrzna 68

18 Nested Loop create index ix_id_dz on pracownicy(id_dzialu) Merge Join Złączenie poprzez łączenie (merge) wybierane jest wtedy, gdy obie tabele są posortowane według kolumny złączenia (utworzony jest na nich indeks grupujący). Ponadto przynajmniej jedna z tych kolumn powinna zawierać wartości niepowtarzalne (indeks zdefiniowany jest jako unikalny) select * from dzialy d, pracownicy p where p.id_dzialu = d.id_dzialu tabela wewnętrzna Kiedy tworzyć indeksy Statystyki tworzyć na kolumnach często używanych w klauzulach WHERE, ORDER BY, GROUP BY tworzyć raczej na kolumnach typu liczbowego nie tworzyć za dużo indeksów, usuwać nieużywane tworzyć na kolumnach i dużej selektywności (tzn. np. nie na kolumnie płeć ) i raczej nie tworzyć na kolumnach typu IDENTITY tworzyć indeks grupujący na każdej tabeli tworzyć indeksy na kolumnach połączeniowych 7 Statystyki przechowują (w kolumnie statblob typu image tabeli sysindexes) określoną próbkę danych zapisanych w poindeksowanych kolumnach. Informacja ta służy procesowi optymalizatora do wyboru najlepszego planu wykonania zapytania. SQL Server umożliwia również utworzenie statystyk dla kolumn niepowiązanych z żadnym indeksem. Jeżeli włączona jest opcja auto create statistics, SQL automatycznie utworzy statystyki dla kolumn, do których nastąpiło odwołanie w klauzuli WHERE. Możliwe jest samodzielne utworzenie statystyki dla wybranych kolumn (polecenie CREATE STATISTICS ), ręczna aktualizacja wybranych statystyk (polecenie UPDATE STATISTICS), oraz usunięcie nieużywanych statystyk (DROP STATISTICS ) 7

19 Pytania kontrolne Pytania kontrolne (c.d.). Indeksy: rodzaje indeksów, zastosowania, zalety i wady indeksów, kiedy tworzymy indeksy.. B- drzewa: budowa, operacje wstawiania i usuwania elementów, obliczenia (wysokość B-drzewa, ilość wierzchołków, itp.), (przykłady z wykładu).. Różnice między B-drzewem a B + -drzewem. 4. Cele i etapy optymalizacji zapytań, jakie elementy wpływają na koszt wykonania zapytania. ZADANIA:. Jaką wysokość musi mieć B-drzewo klasy t(h, 5), aby przy maksymalnym wypełnieniu zaindeksować plik liczący rekordów?. Dany jest indeks zorganizowany jako B-drzewo klasy t(,0). Jaka jest maksymalna liczba rekordów bazy danych, którą można zaindeksować przy użyciu tego B-drzewa?. Strona B-drzewa ma wielkość KB, pole klucza ma długość 6B, pole wskaźnika na blok ma długość 4B, pole wskaźnika na rekord ma długość 8B. Ile indeksów mieści się na trzecim poziomie tego drzewa przy minimalnym wypełnieniu. Uwaga: trzeba rozpocząć od obliczenia współczynnika wypełnienia (m) B-drzewa. 7 74

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

060 SQL FIZYCZNA STRUKTURA BAZY DANYCH. Prof. dr hab. Marek Wisła

060 SQL FIZYCZNA STRUKTURA BAZY DANYCH. Prof. dr hab. Marek Wisła 060 SQL FIZYCZNA STRUKTURA BAZY DANYCH Prof. dr hab. Marek Wisła Struktura tabeli Data dane LOB - Large Objects (bitmapy, teksty) Row-Overflow zawiera dane typu varchar, varbinary http://msdn.microsoft.com/en-us/library/ms189051(v=sql.105).aspx

Bardziej szczegółowo

Fizyczna struktura bazy danych w SQL Serwerze

Fizyczna struktura bazy danych w SQL Serwerze Sposób przechowywania danych na dysku twardym komputera ma zasadnicze znaczenie dla wydajności całej bazy i jest powodem tworzenia między innymi indeksów. Fizyczna struktura bazy danych w SQL Serwerze

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Optymalizacja zapytań Pobieranie planu wykonania Indeksy i wydajność - 1 - Zadania optymalizatora

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

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 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

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

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

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

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

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 7 Indeksy Wprowadzenie Rodzaje indeksów Wybór indeksów wybór indeksu zgrupowanego Tworzenie, usuwanie

Bardziej szczegółowo

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

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

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

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

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

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

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Spis treści Przedmowa... ix Podziękowania... x Wstęp... xiii Historia serii Inside Microsoft SQL Server... xiii 1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Wymagania SQL Server 2005...

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

Optymalizacja wydajności SZBD

Optymalizacja wydajności SZBD Optymalizacja wydajności SZBD 1. Optymalizacja wydajności systemu bazodanowego Wydajność SZBD określana jest najczęściej za pomocą następujących parametrów: liczby operacji przeprowadzanych na sekundę,

Bardziej szczegółowo

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

Systemy baz danych. mgr inż. Sylwia Glińska Systemy baz danych Wykład 1 mgr inż. Sylwia Glińska Baza danych Baza danych to uporządkowany zbiór danych z określonej dziedziny tematycznej, zorganizowany w sposób ułatwiający do nich dostęp. System zarządzania

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

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

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

Optymalizacja poleceń SQL Statystyki

Optymalizacja poleceń SQL Statystyki Optymalizacja poleceń SQL Statystyki 1 Statystyki (1) Informacje, opisujące dane i struktury obiektów bazy danych. Przechowywane w słowniku danych. Używane przez optymalizator do oszacowania: selektywności

Bardziej szczegółowo

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład XII. optymalizacja w relacyjnych bazach danych Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych

Bardziej szczegółowo

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

Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych. Statystyki (1) Informacje, opisujące dane i struktury obiektów bazy danych. Optymalizacja poleceń SQL Część 2. Statystyki i histogramy, metody dostępu do danych Przechowywane w słowniku danych. Używane

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

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

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

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

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji Plan wykładu Bazy danych Wykład 12: Optymalizacja zapytań. Język DDL, DML (cd) Etapy przetwarzania zapytania Implementacja wyrażeń algebry relacji Reguły heurystyczne optymalizacji zapytań Kosztowa optymalizacja

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

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

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

Optymalizacja poleceń SQL

Optymalizacja poleceń SQL Optymalizacja poleceń SQL Przetwarzanie polecenia SQL użytkownik polecenie PARSER słownik REGUŁOWY RBO plan zapytania RODZAJ OPTYMALIZATORA? GENERATOR KROTEK plan wykonania statystyki KOSZTOWY CBO plan

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

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

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

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

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

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

Indeksy. Schematyczne ujęcie organizacji pamięci i wymiany danych systemu pamiętania. 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,

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Optymalizacja poleceń SQL Wprowadzenie

Optymalizacja poleceń SQL Wprowadzenie Optymalizacja poleceń SQL Wprowadzenie 1 Fazy przetwarzania polecenia SQL 2 Faza parsingu (1) Krok 1. Test składniowy weryfikacja poprawności składniowej polecenia SQL. Krok 2. Test semantyczny m.in. weryfikacja

Bardziej szczegółowo

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

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD Optymalizacja zapytań Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD Elementy optymalizacji Analiza zapytania i przekształcenie go do lepszej postaci. Oszacowanie

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

Indeksy. Bazy danych 139

Indeksy. Bazy danych 139 Indeksy Bazy danych 139 140 Bazy danych Przegląd zagadnień Dostep fizyczny do danych Optymalizacja dostepu Indeksy i ich zastosowanie Rodzaje indeksów Operacje na indeksach Podsumowanie Laboratorium Wykład

Bardziej szczegółowo

2011-01-20 PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ

2011-01-20 PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ PLAN WYKŁADU BAZY DANYCH Wykład 11 dr inż. Agnieszka Bołtuć Pojęcie optymalizacji Etapy wykonywania zapytania Etapy optymalizacji Rodzaje optymalizacji Reguły transformacji Procedury implementacyjne Koszty

Bardziej szczegółowo

Fizyczna organizacja danych w bazie danych

Fizyczna organizacja danych w bazie danych Fizyczna organizacja danych w bazie danych PJWSTK, SZB, Lech Banachowski Spis treści 1. Model fizyczny bazy danych 2. Zarządzanie miejscem na dysku 3. Zarządzanie buforami (w RAM) 4. Organizacja zapisu

Bardziej szczegółowo

SQL SERVER 2012 i nie tylko:

SQL SERVER 2012 i nie tylko: SQL SERVER 2012 i nie tylko: Wstęp do planów zapytań Cezary Ołtuszyk coltuszyk.wordpress.com Kilka słów o mnie Starszy Administrator Baz Danych w firmie BEST S.A. (Bazy danych > 1TB) Konsultant z zakresu

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

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

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

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

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

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

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Cwiczenie 4. Połączenia, struktury dodatkowe

Cwiczenie 4. Połączenia, struktury dodatkowe Cwiczenie 4. Połączenia, struktury dodatkowe Optymalizacja poleceń SQL 1 W niniejszym ćwiczeniu przyjrzymy się, w jaki sposób realizowane są operacje połączeń w poleceniach SQL. Poznamy również dodatkowe

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:

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

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

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

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

System plików. Warstwowy model systemu plików

System plików. Warstwowy model systemu plików System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:

Bardziej szczegółowo

5. Bazy danych Base Okno bazy danych

5. Bazy danych Base Okno bazy danych 5. Bazy danych Base 5.1. Okno bazy danych Podobnie jak inne aplikacje środowiska OpenOffice, program do tworzenia baz danych uruchamia się po wybraniu polecenia Start/Programy/OpenOffice.org 2.4/OpenOffice.org

Bardziej szczegółowo

Tworzenie bazy danych na przykładzie Access

Tworzenie bazy danych na przykładzie Access Tworzenie bazy danych na przykładzie Access Tworzenie tabeli Kwerendy (zapytania) Selekcja Projekcja Złączenie Relacja 1 Relacja 2 Tworzenie kwedend w widoku projektu Wybór tabeli (tabel) źródłowych Wybieramy

Bardziej szczegółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

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

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.

Bardziej szczegółowo

INDEKSY I SORTOWANIE ZEWNĘTRZNE

INDEKSY I SORTOWANIE ZEWNĘTRZNE INDEKSY I SORTOWANIE ZEWNĘTRZNE Przygotował Lech Banachowski na podstawie: 1. Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka i slide y). 2. Lech Banachowski,

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Ograniczanie rozmiaru zbioru wynikowego, klauzula WITH, zapytania hierarchiczne. 1 Ograniczanie liczności zbioru wynikowego (1) Element standardu

Bardziej szczegółowo

1 Wstęp do modelu relacyjnego

1 Wstęp do modelu relacyjnego Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared

Bardziej szczegółowo

Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów.

Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów. Dr inŝ. Dziwiński Piotr Katedra InŜynierii Komputerowej Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów. Kontakt: piotr.dziwinski@kik.pcz.pl 2 SQLQuery4_1.sql 3

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

Optymalizacja zapytań SQL

Optymalizacja zapytań SQL Optymalizacja zapytań SQL Na przykładzie SQL Server 008 Agenda Po co optymalizować? Fizyczna organizacja danych w SQL Server 008 Indeksy Zgrupowane Niezgrupowane Pokrywające Plany wykonania zapytań Strategie

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo