PODSTAWY BAZ DANYCH. 7. Metody Implementacji Baz Danych. 2009/ Notatki do wykładu "Podstawy baz danych" 1
|
|
- Paulina Szymańska
- 4 lat temu
- Przeglądów:
Transkrypt
1 PODSTAWY BAZ DANYCH 7. Metody Implementacji Baz Danych 2009/ Notatki do wykładu "Podstawy baz danych" 1
2 Przechowywanie danych w bazie 1. Dane przechowywane są w pamięci zewnętrznej podzielonej logicznie na segmenty składające się z jednostek o stałej długości nazywanej stronami. Dla każdej tabeli tworzony jest jeden segment. 2. Każdy plik F(R) krotek typu R pamiętany jest w jednym segmencie. 3. Spójny obszar pamięci zewnętrznej, w której może być przechowywana jedna strona nazywamy blokiem. Jest to najmniejsza jednostka pamiętania danych. W jednym bloku może być pamiętanych wiele krotek. 2009/ Notatki do wykładu "Podstawy baz danych" 2
3 Przechowywanie danych w bazie W pamięci operacyjnej wydzielony jest obszar zwany buforem zdolnym do pomieszczenia stron. Przesyłanie danych pomiędzy pamięcią operacyjną i zewnętrzną przedstawia następujący schemat: 2009/ Notatki do wykładu "Podstawy baz danych" 3
4 Odwzorowanie krotek na stronie Na każdą krotkę należącą do pliku F(R):={ r 1, r 2,..., r N } krotek typu R może być zarezerwowana na stronie stała lub zmienna wielkość pamięci. Niektóre z możliwych metod zapisywania krotek przytoczone są w kolejnym przykładzie. Przykład. Wystąpienie krotki 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 / Notatki do wykładu "Podstawy baz danych" 4
5 Odwzorowanie krotek na stronie 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 % % 23 % c) wartości wszystkich atrybutów zapisywane są w kolejnych polach o najmniejszym rozmiarze potrzebnym do ich zapamiętania i utworzenie dla każdej krotki części przedrostkowej składającej się ze wskaźników podających adresy końców poszczególnych pól 2009/ Notatki do wykładu "Podstawy baz danych" 5
6 Dynamiczny model pamiętania danych Dynamiczny model pamiętania bazy danych pozwala każdej stronie w różnych momentach przyporządkować różne bloki w pamięci zewnętrznej co pozwala na zmianę rozmiarów segmentów. Model ten ilustruje jak można rozwiązać problem przywrócenia bazy np. po awarii. W metodzie tej dla każdego segmentu S k tworzony jest wektor V k zwany tablicą stron i wektor binarny MAP zawierający tyle pozycji ile bloków istnieje w pamięci zewnętrznej. Model ten można dla dwóch segmentów S 1 i S 2 przedstawić przy pomocy następującego schematu: 2009/ Notatki do wykładu "Podstawy baz danych" 6
7 Dynamiczny model pamiętania danych gdzie wektory V 1 i V 2 wskazują numery bloków, w których zapamiętane są kolejne strony odpowiednio segmentów S 1 i S 2, a 1 w wektorze MAP oznacza zajętość odpowiedniego bloku. 2009/ Notatki do wykładu "Podstawy baz danych" 7
8 Dynamiczny model pamiętania danych Dynamiczny model pamiętania bazy danych pozwala na tzw. przysłanianie pamięci, które polega na zablokowaniu części pamięci na czas konieczny na wykonanie pewnych operacji na zapisanych tam danych. Metoda ta pozwala odtworzyć bazę danych, bez konieczności robienia kopii zapasowej bazy w przypadku wystąpienia w niej błędów podczas wykonywania operacji na jej danych. Omówimy model przysłaniania pamięci na przykładzie dwóch segmentów S 1 i S 2. Realizacja jego wymaga utworzenia dodatkowych wektorów V 11, V 21, CMAP, które są odpowiednio kopiami wektorów V 1, V 2, MAP, oraz wektora STATUS, służącego do oznaczenia, że segment S 1 lub S 2 są zamknięte, tzn. nie jest tworzona jego nowa wersja. Załóżmy, że segment S 1 składa się z k stron. 2009/ Notatki do wykładu "Podstawy baz danych" 8
9 Dynamiczny model pamiętania danych Stan bazy danych przed wykonywaniem operacji na zapisanych danych można przedstawić przy pomocy następującego schematu: 2009/ Notatki do wykładu "Podstawy baz danych" 9
10 Dynamiczny model pamiętania danych Przy otwieraniu segmentu S 1 do operacji zmieniającej jego stan należy: 1. Przekopiować wektory V 1, MAP odpowiednio do V 11, CMAP i podstawić STATUS(1) := 1; 2. Np. modyfikowana jest strona 1 zapisana w bloku 2; 3. Dla tej zmodyfikowanej strony szukamy w wektorze CMAP wolnego bloku do zapisania nowego stanu strony (może to być blok 3) i podstawiamy CMAP(3) := 1 oraz V 1 (1) := -3, (znak - oznacza stronę już zmienioną ); 4. Podobne kroki można przeprowadzić np. dla strony 2 (tworzenie nowej strony); 2009/ Notatki do wykładu "Podstawy baz danych" 10
11 Dynamiczny model pamiętania danych Po tych operacjach stan bazy danych można przedstawić przy pomocy następującego schematu: 2009/ Notatki do wykładu "Podstawy baz danych" 11
12 Dynamiczny model pamiętania danych 5. Możliwe są teraz dwa przypadki: (a) Jeżeli zakończono tworzenie nowej wersji i nie stwierdzono błędu to aktualne przyporządkowanie stron do bloków dane jest w wektorze V 1 ; gdy V 1 (i)<0 i V 11 (i) = n 0 to podstawiamy CMAP(n) := 0 i V 1 (i) := V 1 (i) dla i = 1, 2,..., k; (zwalniany jest tylko modyfikowany blok); aktualną mapę pamięci otrzymamy podstawiając MAP(i) := CMAP(i) dla i=1, 2,..., N; zamykamy segment S 1 podstawiając STATUS(1) := 0; (b) Jeżeli w trakcie tworzenia nowej wersji stwierdzono błąd to wracamy do pierwotnego wektora V 1 podstawiając V 1 (i) := V 11 (i) dla i=1,2,...,k; aktualna mapa pamięci dana jest w wektorze MAP; zamykamy segment S 1 podstawiając STATUS(1) := 0; W obydwu przypadkach segment zawiera stan poprawny. 2009/ Notatki do wykładu "Podstawy baz danych" 12
13 Organizacja krotek w blokach Organizacja krotek w blokach: niepodzielna dzielona 2009/ Notatki do wykładu "Podstawy baz danych" 13
14 Budowa bloku Najmniejszą jednostką do przechowywania danych jest blok. Nagłówek bloku Wolna przestrzeń Przestrzeń danych (przechowuje wartości atrybutów) Dane Wolny obszar bloku jest zarezerwowany na uaktualnianie rekordów znajdujących się w bloku. 2009/ Notatki do wykładu "Podstawy baz danych" 14
15 Zarządzanie blokiem w ORACLE W Oracle można zarządzać sposobem zapełniania bloków danymi przy pomocy parametrów PCTFREE i PCTUSED. Blok np B Nagłówek bloku Wolna przestrzeń PCTFREE Np. 20 Dane PCTUSED Np. 40 CREATE TABLE nazwa_tabeli (atrybuty ) [ PCTFREE liczba ] [ PCTUSED liczba ] [ ] 2009/ Notatki do wykładu "Podstawy baz danych" 15
16 Budowa bloku Parametry składowania (storage parametr): 1. PCTFREE liczba - określa rozmiar wolnej przestrzeni bloku w stosunku do rozmiaru całego bloku (wyrażona w % ) Np. PCTFREE PCTUSED liczba - określa rozmiar przestrzeni bloku poniżej, którego będzie dozwolone wstawianie nowej krotki (wyrażona w % ) Np. PCTUSED 50 Omówione parametry określa się przy definicji relacji. Jeżeli w definicji relacji nie podaje się wartości tych parametrów to przyjmowane są wartości domyślne. Jeżeli krotka nie mieści się w jednym bloku może być składowana w wielu blokach. 2009/ Notatki do wykładu "Podstawy baz danych" 16
17 Budowa bloku Blok np B Nagłówek PCTFREE np. 20 PCTUSED np / Notatki do wykładu "Podstawy baz danych" 17
18 Budowa bloku 2009/ Notatki do wykładu "Podstawy baz danych" 18
19 Budowa bloku 2009/ Notatki do wykładu "Podstawy baz danych" 19
20 Operacje na krotkach w bazie danych Na pliku F(R):={ r 1, r 2,..., r N } krotek typu R mogą być wykonywane następujące czynności: 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 krotki można uzyskać np. przy pomocy identyfikatora (w Oracle jest to ROWID), którym może być np. kolejny numer przypisany według pewnych zasad rozważanemu rekordowi przez SZBD (mało użyteczne). Będzie on wykorzystywany w innych strukturach (indeksy). 2009/ Notatki do wykładu "Podstawy baz danych" 20
21 Rodzaje organizacji plików krotek Rodzaje organizacji plików krotek: Pliki nieuporządkowane. Pliki uporządkowane. Pliki haszowe. 2009/ Notatki do wykładu "Podstawy baz danych" 21
22 Rodzaje organizacji plików krotek Pliki nieuporządkowane Pliki nieuporządkowane. Jest to lista dwukierunkowa. Dopisywanie nowej krotki następuje na końcu tego łańcucha bloków. Wady: Przy wyszukiwaniu krotki może być konieczne przeszukanie liniowe wszystkich bloków. Zalety: Efektywne wstawianie krotek. Efektywne przy odczycie wszystkich krotek. Efektywne przy małych plikach krotek. Stosowane z innymi strukturami (np. indeksy). 2009/ Notatki do wykładu "Podstawy baz danych" 22
23 Rodzaje organizacji plików krotek Pliki uporządkowane Pliki uporządkowane. Atrybuty porządkujące Burek Adam Burek Karol Krawczyk Karol Nowak Maria Blok-1 Nowak Zenon Piotrowski Marian Piotrowski Zbigniew Zając Maria Blok-n. 2009/ Notatki do wykładu "Podstawy baz danych" 23
24 Rodzaje organizacji plików krotek Pliki uporządkowane Zalety: Efektywny odczyt krotek według atrybutów porządkujących. Znalezienie następnej krotki według atrybutów porządkujących. Wyszukiwanie według atrybutów porządkujących metodą połowienia binarnego. Wady: Nieefektywny gdy odczyt krotek jest według atrybutów nie porządkujących. Kosztowne wstawianie i usuwanie krotek, które jest spowodowane koniecznością zachowania uporządkowania. 2009/ Notatki do wykładu "Podstawy baz danych" 24
25 Rodzaje organizacji plików krotek Pliki haszowe Pliki haszowe polegają na rozmieszczeniu krotek w różnych szufladach według pewnych zasad wyznaczonych przez funkcje haszowe stosowane do wybranego atrybutu. Przykład. Funkcja haszowa to np. h(x) = x mod liczba. 13 Szuflada Funkcja haszowa h(x) = x mod 4 13 mod 5 = 3 0 4, 8 1 5, 11, , 18, 3 7, 2009/ Notatki do wykładu "Podstawy baz danych" 25
26 Indeksy W celu przyspieszenia wyszukiwania w plikach krotek (uporządkowanych lub nieuporządkowanych) tworzone są obiekty zwane indeksami będące dodatkową strukturą fizyczną tzn. plikiem zdefiniowanym dla atrybutu według, którego będzie realizowane wyszukiwanie. Podział indeksów: indeks podstawowy, zgrupowany, wtórny indeks rzadki, gęsty Indeks wielopoziomowy statyczny (ISAM) Indeks wielopoziomowy dynamiczny (B*-drzewo) 2009/ Notatki do wykładu "Podstawy baz danych" 26
27 Pojęcie indeksu pliku krotek Definicja. 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 krotki r, a kbd(r) kluczem bazy danych (adresem) wystąpienia krotki r (w Oracle jest to ROWID). Każdą parę (x,a) I nazywamy elementem indeksu. Indeks może być zorganizowany w różny sposób. Dla jednej relacji może istnieć wiele indeksów. Dla uproszczenia rozważań zajmiemy się organizacją pliku indeksowego o strukturze B-drzewa, a później rozszerzymy to na organizację indeksu w postaci B*-drzewa. 2009/ Notatki do wykładu "Podstawy baz danych" 27
28 Organizacja dostępu do pliku rekordów za pomocą B-drzewa Definicja. Niech h 0 i m 1. Drzewo T nazywamy B-drzewem klasy t(h,m), co zapisujemy T t(h,m), gdy T = lub spełnione są następujące warunki: 1. Wszystkie drogi prowadzące z korzenia do liści są jednakowej długości równej h; 2. Każdy wierzchołek, z wyjątkiem korzenia i liści, jest początkiem co najmniej m+1 krawędzi; 3. Korzeń jest liściem lub jest początkiem co najmniej dwóch krawędzi; 4. Każdy wierzchołek jest początkiem co najwyżej 2m+1 krawędzi. Wartość h nazywamy wysokością drzewa. 2009/ Notatki do wykładu "Podstawy baz danych" 28
29 Organizacja dostępu do pliku krotek za pomocą B-drzewa Przykład. Przykład B-drzewa klasy t(3,2), h=3, m=2 korzeń wierzchołki wierzchołki liście 2009/ Notatki do wykładu "Podstawy baz danych" 29
30 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 l a l p l gdzie 1. 1 l 2m w przypadku korzenia i m l 2m dla wierzchołków pośrednich i liści; wartość l 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 l, 3. p i wskaźnikiem na wierzchołek będącym końcem krawędzi wychodzącej z tego wierzchołka, 0 i l, 2009/ Notatki do wykładu "Podstawy baz danych" 30
31 Organizacja dostępu do pliku rekordów za pomocą B-drzewa przy czym dla każdego wierzchołka muszą być spełnione następujące warunki: 1. x 1 x 2... x l, 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: a) ( x X(p 0 ) ) (x x 1 ), b) ( x X(p i ) ) (x i x x i+1 ), dla 1 i < l, c) ( x X(p l ) ) (x l x ). 2009/ Notatki do wykładu "Podstawy baz danych" 31
32 Organizacja dostępu do pliku rekordów za pomocą B-drzewa Przykład. Przykład organizacji indeksu w postaci B-drzewa klasy t(2,2) można przedstawić graficznie w następujący sposób: 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). 2009/ Notatki do wykładu "Podstawy baz danych" 32
33 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 stwierdzić, ż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. 2009/ Notatki do wykładu "Podstawy baz danych" 33
34 Organizacja dostępu do pliku rekordów za pomocą B-drzewa Algorytm kompensacji. Metodę tę stosujemy wtedy gdy jedna ze stron sąsiadujących ze stroną s zawiera j elementów indeksu, j<2m. Oznaczmy tą 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 ' ). Strony s i s 1 wypełniamy następująco: 1. Jeżeli s 1 leży na lewo od strony s, to elementy (x k,a k ), k = 1, 2,..., i-1 wstawiamy na stronę s 1, a elementy (x k,a k ), k = i+1, i+2,..., 2m+j+2 na stronę s. 2. Jeżeli s 1 leży na prawo od strony s, to elementy (x k,a k ), k = 1, 2,..., i-1 wstawiamy na stronę s, a elementy (x k,a k ), k = i+1, i+2,..., 2m+j+2 na stronę s / Notatki do wykładu "Podstawy baz danych" 34
35 Organizacja dostępu do pliku rekordów za pomocą B-drzewa Przykład. Dany jest fragment B-drzewa: S S Chcemy dołączyć element indeksu o wartości klucza głównego 27. Po uporządkowaniu ciągu wartości klucza głównego otrzymamy ciąg 20, 22, 26, 27, 34, 40, 45, / Notatki do wykładu "Podstawy baz danych" 35
36 Organizacja dostępu do pliku rekordów za pomocą B-drzewa Po zastosowaniu metody kompensacji otrzymamy następujący fragment B-drzewa: S S / Notatki do wykładu "Podstawy baz danych" 36
37 Organizacja dostępu do pliku rekordów za pomocą B-drzewa 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 / Notatki do wykładu "Podstawy baz danych" 37
38 Organizacja dostępu do pliku rekordów za pomocą B-drzewa 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ę s 1. Może się zdarzyć, że strona ta jest zapełniona (zawiera już 2m elementów). Wówczas należy dokonać jej podziału lub kompensację. 2009/ Notatki do wykładu "Podstawy baz danych" 38
39 Organizacja dostępu do pliku rekordów za pomocą B-drzewa 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. Przykład. Na kolejnych slajdach pokazany jest przykład wstawiania i usuwania elementów pliku indeksowego zorganizowanego w postaci B-drzewa. 2009/ Notatki do wykładu "Podstawy baz danych" 39
40 Organizacja dostępu do pliku rekordów za pomocą B-drzewa. Wstawianie A , 40, 50, 60, 70 ciąg rosnący 30 Chcemy wstawić 35. W lewym liściu brak miejsca. Możemy wykonać kompensację używając ciągu 30, 35, 40, 42, 45, 50, 60, / Notatki do wykładu "Podstawy baz danych" 40
41 Organizacja dostępu do pliku rekordów za pomocą B-drzewa. Wstawianie A , 30, 35, 40, 42 ciąg rosnący Przypuśćmy, że doszliśmy do następującego stanu: 2009/ Notatki do wykładu "Podstawy baz danych" 41
42 Organizacja dostępu do pliku rekordów za pomocą B-drzewa. Wstawianie Chcemy dopisać element o wartości klucza / Notatki do wykładu "Podstawy baz danych" 42
43 Organizacja dostępu do pliku rekordów za pomocą B-drzewa. Wstawianie Wartości 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, / Notatki do wykładu "Podstawy baz danych" 43
44 Organizacja dostępu do pliku rekordów za pomocą B-drzewa. Wstawianie 81 Nowy korzeń / Notatki do wykładu "Podstawy baz danych" 44
45 Organizacja dostępu do pliku rekordów za pomocą B-drzewa. Usuwanie A Chcemy usunąć 60. Liść nie będzie spełniał warunków B-drzewa. Należy dokonać kompensacji Chcemy usunąć 50. Liść nie będzie spełniał warunków B-drzewa i nie można dokonać kompensacji. Należy dokonać złączenia / Notatki do wykładu "Podstawy baz danych" 45
46 Organizacja dostępu do pliku rekordów za pomocą B * - drzewa Pojęcie B*-drzewa. Przykład. gdzie liczba jest wartością np. klucza i r nm może być np. kluczem bazy danych lub krotką. 2009/ Notatki do wykładu "Podstawy baz danych" 46
47 Organizacja dostępu do pliku rekordów za pomocą B * - drzewa - Wstawianie X a a a a a a a a a a a a a a a a / Notatki do wykładu "Podstawy baz danych" 47
48 Organizacja dostępu do pliku rekordów za pomocą B * - drzewa - Wstawianie X a a a a a a a 95 Chcemy wstawić a a a a a a a a / Notatki do wykładu "Podstawy baz danych" 48
49 Organizacja dostępu do pliku rekordów za pomocą B * - drzewa - Wstawianie X a a a a 65 Chcemy wstawić a a a a a a a a a a a a a / Notatki do wykładu "Podstawy baz danych" 49
50 Indeks bitmapowy Indeks bitmapowy jest zbiorem map bitowych dla każdego indeksowanego atrybutu relacji. Przykład Imie... Adam Zenon Adam Jan Karol Piotr Zbigniew Jan 2009/ Notatki do wykładu "Podstawy baz danych" 50
51 Indeks bitmapowy Zbiór map bitowych dla atrybutu Imię Adam Zenon Jan Karol Piotr Zbigniew / Notatki do wykładu "Podstawy baz danych" 51
52 Indeks bitmapowy Zbiór map bitowych dla atrybutu Imie można zorganizować przy pomocy B * -drzewa 2009/ Notatki do wykładu "Podstawy baz danych" 52
53 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 (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. 2009/ Notatki do wykładu "Podstawy baz danych" 53
54 Indeksy z odwróconym kluczem Rozproszenie bliskich wartości klucza ma duże znaczenie przy współbieżnych transakcjach operujących na rekordach o bliskich wartościach klucza. 2009/ Notatki do wykładu "Podstawy baz danych" 54
55 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 (2005,03) poprzedza parę (2007,01); para (2007,01) poprzedza parę (2007,03). Działanie tak zbudowanych indeksów jest analogiczne do omawianych wcześniej indeksów na pojedynczych atrybutach. 2009/ Notatki do wykładu "Podstawy baz danych" 55
56 Indeksy - Uwagi Uwaga. Na zbiorze atrybutów wchodzących w skład klucza głównego (Primary Key) indeks tworzony jest automatycznie. Uwaga. Na zbiorze atrybutów na których ustawiony jest warunek UNIQUE indeks tworzony jest automatycznie. Uwaga. Na zbiorze atrybutów wchodzących w skład klucza obcego (Foreign Key) nie jest tworzony automatycznie indeks, ale zaleca się utworzenie takiego indeksu gdyż przyspiesza to operacje złączeniowe. Uwaga. Zaleca się tworzenie indeksów na atrybutach względem których występuje często wyszukiwanie. 2009/ Notatki do wykładu "Podstawy baz danych" 56
57 PODSTAWY BAZ DANYCH 8. Architektura Systemu Zarządzania Bazą Danych na przykładzie SZBD Oracle 2009/ Notatki do wykładu "Podstawy baz danych" 57
58 Struktura bazy danych Oracle Baza danych składa się z plików danych, które logicznie podzielone są na pewne obszary zwane przestrzeniami tabel ( tablespace ). Każda przestrzeń tabel składa się z co najmniej jednego pliku danych. Przestrzeń dyskowa zajmowana przez każdy plik danych jest logicznie podzielona na mniejsze jednostki bloki, rozszerzenia, segmenty. W SZBD Oracle obiekty: tabele, indeksy i inne przechowywane są w segmentach. 2009/ Notatki do wykładu "Podstawy baz danych" 58
59 Przestrzenie tabel ( tablespace ) W typowej instalacji Oracle obowiązkowo występują przestrzenie tabel: System przeznaczona na tabele systemowe, Sysaux przeznaczona na tabele systemowe, Undo przeznaczona na dane służące do wycofywania transakcji (nie można w niej pamiętać danych), Users przeznaczona na dane użytkowników, Temp przeznaczona na wyniki częściowe zapytań. 2009/ Notatki do wykładu "Podstawy baz danych" 59
60 Segment i rozszerzenie Rozszerzenie jest to ciągły obszar bloków, który musi znajdować się w jednym pliku dyskowym. plik1 B0 B1 B2 B3 B4 B8 B12 B16 Rozszerzenie 0 Rozszerzenie 1 B0 B3 B6 B9 plik2 Rozszerzenie 2 Segment 2009/ Notatki do wykładu "Podstawy baz danych" 60
61 Segment Dla segmentu (tabeli lub indeksu) występują następujące parametry: 2009/ Notatki do wykładu "Podstawy baz danych" 61
62 Adresowanie rekordu w bazie AAAmbdAAJAAAAAkAAA AAAmbdAAJAAAAAkAAB AAAmbdAAJAAAAAkAAC AAAmbdAAJAAAAAkAAD AAAmbdAAJAAAAAkAAE 2009/ Notatki do wykładu "Podstawy baz danych" 62
63 Architektura systemu Oracle R A M 2009/ Notatki do wykładu "Podstawy baz danych" 63
64 Struktura pamięci SGA (System Global Area ) Database buffers Bufor danych Redo buffers Bufor dziennika powtórzeń Shared pool - Obszar współdzielony Shared SQL Area Współdzielony obszar poleceń SQL Dictionary cache Bufor słownika danych Inne Bufor danych przechowuje dane odczytane z dysku. Bufor dziennika powtórzeń buforuje informacje o zatwierdzonych zmianach w bazie danych. Obszar współdzielony zawiera między innymi współdzielony obszar poleceń SQL (analizę składniową i plany wykonania poleceń SQL). 2009/ Notatki do wykładu "Podstawy baz danych" 64
65 PODSTAWY BAZ DANYCH 9. Podstawowe obiekty bazy danych Oracle 2009/ Notatki do wykładu "Podstawy baz danych" 65
66 Przestrzenie tabel i pliki danych CREATE TABLESPACE nazwa_przestrzeni DATAFILE plik SIZE rozmiar [ K M ] [ ONLINE OFFLINE ] [ PERMANENT TEMPORARY ] DEFAULT STORAGE ( ); [ INITIAL rozmiar [ K M ] ] [ NEXT rozmiar [ K M ] ] [ MINEXTENTS liczba ] [ MAXEXTENTS liczba UNLIMITED ] [ PCTINCREASE liczba ] Przy pomocy DEFAULT STORAGE określamy parametry każdego segmentu tworzonego w definiowanej przestrzeni tabel. 2009/ Notatki do wykładu "Podstawy baz danych" 66
67 Tworzenie tabel CREATE TABLE nazwa_tabeli [ PCTFREE liczba ] [ PCTUSED liczba ] [ INITRANS liczba ] [ MAXTRANS liczba ] ( atrybut typ ) [ TABLESPACE nazwa_przestrzeni ] [ STORAGE ( ) ]; [ INITIAL liczba [ K M ]] [ NEXT liczba [ K M ] ] [ PCTINCREASE liczba ] [ MINEXTENS liczba ] [ MAXEXTENS liczba ] /*domyślna UNLIMITED*/ 2009/ Notatki do wykładu "Podstawy baz danych" 67
68 Tworzenie tabel CREATE TABLE nazwa_tabeli ( atrybut typ [,...] ) [ PCTFREE liczba ] [ PCTUSED liczba ] [ INITRANS liczba ] [ MAXTRANS liczba ] [ TABLESPACE nazwa_przestrzeni ] [ STORAGE storage ] [ CLUSTER nazwa_klastra (atrybut [, atrybut]...) ] [ AS query ]; Usuwanie tabeli DROP TABLE nazwa_tabeli [ CASCADE CONSTRAINTS ]; 2009/ Notatki do wykładu "Podstawy baz danych" 68
69 Tabele - indeksy Można utworzyć tabelę zorganizowaną w postaci indeksu (B*-drzewa). CREATE TABLE nazwa_tabeli... ORGANIZATION INDEX; 2009/ Notatki do wykładu "Podstawy baz danych" 69
70 Ograniczenia integralnościowe PRIMARY KEY UNIQUE NOT NULL CHECK FOREIGN KEY Przykład. CREATE TABLE osoby ( id NUMBER PRIMARY KEY, ); nazwisko VARCHAR2(15) NOT NULL, plec CHAR(1) CHECK (plec= K OR plec= M ) 2009/ Notatki do wykładu "Podstawy baz danych" 70
71 Modyfikowanie parametrów składowania tabel Modyfikowanie parametrów tabel: ALTER TABLE nazwa_tabeli [ PCTFREE liczba ] [ PCTUSED liczba ] [ INITRANS liczba ] [ MAXTRANS liczba ] [ STORAGE ( [ NEXT liczba [ K M ]] [ PCTINCREASE liczba ] [ MINEXTENS liczba ] ]; [ MAXEXTENS liczba ] ) ]; 2009/ Notatki do wykładu "Podstawy baz danych" 71
72 Tworzenie indeksu CREATE [ BITMAP ] INDEX nazwa_indeksu ON { nazwa_tabeli ( atrybut [,atrybut [...] ] ) CLUSTER nazwa_klastra } [ PCTFREE liczba ] [ PCTUSED liczba ] [ INITRANS liczba ] [ MAXTRANS liczba ] [ TABLESPACE nazwa_przestrzeni ] [ STORAGE ( [ INITIAL liczba [ K M ]] [ NEXT liczba [ K M ] ] [ PCTINCREASE liczba ] [ MINEXTENS liczba ] [ MAXEXTENS liczba ] ) ] [ REVERSE ]; 2009/ Notatki do wykładu "Podstawy baz danych" 72
73 Modyfikowanie indeksu ALTER INDEX nazwa_indeksu [ PCTFREE liczba ] [ PCTUSED liczba ] [ INITRANS liczba ] [ MAXTRANS liczba ] [ STORAGE ( [ NEXT liczba [ K M ] ] [ PCTINCREASE liczba ] [ MINEXTENS liczba ] [ MAXEXTENS liczba ] ) ] ) [ REBUILD ]; DROP INDEX nazwa_indeksu; 2009/ Notatki do wykładu "Podstawy baz danych" 73
74 Widoki (Perspektywy) Widok (perspektywa - view) jest to logiczna tabela bazująca na jednej lub wielu tabelach. Utworzyć widok może właściciel tabel, użytkownik posiadający do nich co najmniej uprawnienia SELECT lub administrator. CREATE VIEW nazwa [(alias [, alias]...)] AS query [ WITH CHECK OPTION ] ; 2009/ Notatki do wykładu "Podstawy baz danych" 74
75 Widoki (Perspektywy) Parametry: query - identyfikuje atrybuty i wiersze tabel, na których bazuje widok. Zapytanie może być dowolnym poprawnym rozkazem SELECT nie zawierającym klauzuli ORDER BY. WITH CHECK OPTION - informuje, że wstawienia i zmiany wykonywane poprzez widok, są niedozwolone jeśli spowodują wygenerowanie wierszy, które będą niedostępne dla widoku. Uwaga. Możliwości wstawiania wiersza poprzez widoki podlega różnym ograniczeniom. 2009/ Notatki do wykładu "Podstawy baz danych" 75
76 Widoki (Perspektywy) Przykład. CREATE VIEW v_mezczyzni AS SELECT * FROM osoby WHERE plec= M WITH CHECK OPTION ; INSERT INTO v_mezczyzni VALUES ( 50, 'Murek','Jan', NULL, TO_DATE('03/05/1980','dd/mm/yyyy'), 'M'); INSERT INTO v_mezczyzni VALUES ( 60, 'Murek', 'Anna', NULL, TO_DATE('03/05/1980','dd/mm/yyyy'), 'K'); BŁĄD w linii 1: ORA-01402: naruszenie klauzuli WHERE dla perspektywy z WITH CHECK OPTION 2009/ Notatki do wykładu "Podstawy baz danych" 76
77 Klastry Klastry są obiektami do przechowywania tabel. Projektowana tabela Rok Miesiac Wpłaty Klaster o atrybutach Rok i Miesiac Rok Miesiac Klaster o atrybutach Rok i Miesiac ze zdefiniowaną na nim tabelą Rok Miesiac / Notatki do wykładu "Podstawy baz danych" 77
78 Klastry Indeksowy CREATE CLUSTER nazwa_klastra ( atrybut typ [,atrybut typ [,...] ] [ PCTFREE liczba ] [ PCTUSED liczba ] [ INITRANS liczba ] [ MAXTRANS liczba ] [ TABLESPACE nazwa_przestrzeni] [ STORAGE ( [ INITIAL liczba [ K M ]] ]; [ NEXT liczba [ K M ] ] [ PCTINCREASE liczba ] [ MINEXTENS liczba ] [ MAXEXTENS liczba ] ) CREATE CLUSTER nazwa_klastra ( atrybut typ [,atrybut typ [,...] ] [ PCTFREE liczba ] [ PCTUSED liczba ] [ INITRANS liczba ] [ MAXTRANS liczba ] [ TABLESPACE nazwa_przestrzeni ] [ STORAGE ] Haszowy ( [ INITIAL liczba [ K M ]] [ NEXT liczba [ K M ] ] [ PCTINCREASE liczba ] [ MINEXTENS liczba ] [ MAXEXTENS liczba ] ) HASHKEY liczba; 2009/ Notatki do wykładu "Podstawy baz danych" 78
79 Klastry Tworzenie indeksu na klastrze (obowiązkowe): CREATE INDEX nazwa_indeksu ON CLUSTER nazwa_klastra; Usuwanie klastra: DROP CLUSTER nazwa_klastra [ INCLUDE TABLE [ CASCADE CONSTRAINTS ] ]; Uwaga. Na jednym klastrze można tworzyć wiele tabel. ( W Oracle 10g maksymalnie 32 tabele). Uwaga. Wydajnie jest tworzenie klastrów na atrybutach złączeniowych i umieszczać w nim te tabele. 2009/ Notatki do wykładu "Podstawy baz danych" 79
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ółowoIndeksy. 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ółowoArchitektura Systemu Zarządzania Bazą Danych Oracle
Architektura Systemu Zarządzania Bazą Danych Oracle Dane są przechowywane w plikach (miejsce na dysku wraz z przypisaną mu nazwą), których rozmiar z reguły nie jest stały jeśli zostaną wprowadzone jakieś
Bardziej szczegółowoPlan 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ółowoBazy 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ółowoAdministracja bazy danych Oracle 10g
Administracja bazy danych Oracle 10g Oracle Database Administration część 5 Zmiana przestrzeni tabel użytkownika Za pomocą SQL*Plus alter user USER_NAME temporary tablespace TEMPOR_NAME; gdzie: USER_NAME
Bardziej szczegółowoUPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');
polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {
Bardziej szczegółowowykł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< 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ółowoTadeusz 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ółowo2012-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ółowoAutor: 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ółowoSystem Oracle podstawowe czynności administracyjne
6 System Oracle podstawowe czynności administracyjne Stany bazy danych IDLE nieczynna, pliki zamknięte, procesy tła niedziałaja NOMOUNT stan po odczytaniu pfile-a, zainicjowaniu SGA i uruchomieniu procesów
Bardziej szczegółowoJęzyk SQL. Rozdział 9. Język definiowania danych DDL, część 2.
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji
Bardziej szczegółowo77. 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ółowoBazy 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ółowoBazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych
Plan wykładu Bazy danych Cechy rozproszonej bazy danych Implementacja rozproszonej bazy Wykład 15: Rozproszone bazy danych Małgorzata Krętowska, Agnieszka Oniśko Wydział Informatyki PB Bazy danych (studia
Bardziej szczegółowoBazy 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ółowoSQL (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ółowoWykład 5. SQL praca z tabelami 2
Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,
Bardziej szczegółowoPODSTAWY BAZ DANYCH Wykład Partycjonowanie tabel i indeksów
PODSTAWY BAZ DANYCH Wykład 10 8. Partycjonowanie tabel i indeksów 2005/2006 Wykład "Podstawy baz danych" 1 Partycjonowanie tabel i indeksów w Oracle W celu poprawienia efektywności dostępu do danych oraz
Bardziej szczegółowostartup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';
Administrowanie systemami baz danych Ćwiczenia laboratoryjne (1) Podstawy uruchamiania serwera bazy danych 1. Przy pomocy programu Putty, połącz się z serwerem miner.cs.put.poznan.pl. Dla wygody otwórz
Bardziej szczegółowoPODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"
PODSTAWY BAZ DANYCH 10. Partycjonowanie tabel i indeksów 1 Partycjonowanie tabel i indeksów w Oracle W celu poprawienia efektywności dostępu do danych oraz ułatwieniu zarządzania bardzo dużymi zbiorami
Bardziej szczegółowo(c) Politechnika Poznańska, Instytut Informatyki
Struktura bazy danych Oracle (c) Politechnika Poznańska, Instytut Informatyki 28 Organizacja przestrzeni danych struktury logiczne - przestrzenie tabel (ang. tablespaces), schematy, obiekty (relacje, indeksy,
Bardziej szczegółowoPodstawy 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ółowokończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli
SPOOL moj_plik SPOOL OFF @ moj_ plik edit CREATE TABLE DESCRIBE ALTER TABLE RENAME DROP TABLE CONNECT CONNECT USER_NAME DISCONNECT EXIT zapisuje wszystkie wydane polecenia oraz ich wyniki do pliku moj_plik,
Bardziej szczegółowoZarządzanie wolną przestrzenią w bloku. Rozszerzenia
73 Plan prezentacji 74 Struktury fizyczne i logiczne bazy danych Pliki bazy danych i kontrolne, i dziennika powtórzeń, i konfiguracyjne, i tymczasowe, i danych Bloki dyskowe format, struktura, zawartość,
Bardziej szczegółowoPRZESTRZENNE 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ółowoPrzykł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ółowoHaszowanie (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ółowoTworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1
Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane
Bardziej szczegółowoFizyczna 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ółowoWykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
Bardziej szczegółowoWykład 4. SQL praca z tabelami 1
Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy
Bardziej szczegółowoBazy 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ółowoWydajność hurtowni danych opartej o Oracle10g Database
Wydajność hurtowni danych opartej o Oracle10g Database 123 Plan rozdziału 124 Transformacja gwiaździsta Rozpraszanie przestrzeni tabel Buforowanie tabel Różnicowanie wielkości bloków bazy danych Zarządzanie
Bardziej szczegółowoPawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl
Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność
Bardziej szczegółowoOptymalizacja 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ółowoTworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z
Tworzenie tabeli Np. create table nazwa_tab( \\stworzenie tabeli Id numer(4) constraint PRAC_PK primary key, \\ustawiamy klucz podst. Nazwisko varchar2(30), \\typ tekstowy 30 znaków Kwota number(10,2)
Bardziej szczegółowoOrganizacja przestrzeni danych (2) Struktura bazy danych Oracle. Przestrzenie tabel. baza danych. tabel. tabel. struktury. (relacje, schematy,
Organizacja przestrzeni danych Struktura bazy danych Oracle struktury logiczne - przestrzenie tabel (ang. tablespaces), schematy, obiekty (relacje, indeksy, klastry, klastry haszowe (ang. hash cluster),
Bardziej szczegółowoINDEKSY. 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ółowoWykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach
Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym. Modele - konceptualne reprezentacja obiektów w
Bardziej szczegółowoLaboratorium 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ółowoRelacyjne 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ółowoRef. 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ółowoJę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ółowoTabela 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ółowoPerspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.
Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną
Bardziej szczegółowoDynamiczny 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ółowo3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota
Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)
Bardziej szczegółowoPartycjonowanie tabel (1)
Partycjonowanie tabel (1) Podział tabeli na mniejsze fragmenty operacje dostępu do dysków mogą być wykonywane równolegle; jest równoważone obciążenie dysków; polecenia SQL adresujące różne partycje mogą
Bardziej szczegółowoPodstawowe 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ółowoLiteratura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska
Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie
Bardziej szczegółowoOracle11g: 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ółowoRelacyjne 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ółowoSzkolenie obejmuje zagadnienia związane z tworzeniem i zarządzaniem bazą danych Oracle, jej zasobami i dostępem do danych.
Program szkolenia: Administracja Oracle Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Administracja Oracle ora-admin Oracle admini 4 dni 50% wykłady / 50% warsztaty Szkolenie
Bardziej szczegółowo1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12
Plan wykładu Spis treści 1 Projekt fizyczny 1 2 Transformacja ML do PF 2 2.1 Definiowanie tabel............................... 2 2.2 Więzy integralności............................... 4 2.3 Modyfikacja
Bardziej szczegółowoWykł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ółowoI. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE
Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy
Bardziej szczegółowoDefinicja 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ółowoStruktura 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ółowoWprowadzenie do projektowania i wykorzystania baz danych Relacje
Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR
Bardziej szczegółowoJęzyk SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą
Bardziej szczegółowoSystem 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ółowoSystem 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ółowoSystem 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ółowoWprowadzenie 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ółowoWidok Connections po utworzeniu połączenia. Obszar roboczy
Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer
Bardziej szczegółowoWPROWADZENIE 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ółowoPodstawy 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ółowo1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi
1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca
Bardziej szczegółowoBazy danych 10. SQL Widoki
Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela
Bardziej szczegółowoAlgorytmy 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ółowoZarządzanie strukturą bazy danych Oracle11g
Zarządzanie strukturą bazy danych Oracle11g Wstęp Baza danych Oracle przechowuje dane użytkowników oraz własne dane słownikowe w następujących strukturach logicznych: przestrzenie tabel segmenty extenty
Bardziej szczegółowoPrzykł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ółowoINDEKSY 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ółowoBazy danych 6. Klucze obce. P. F. Góra
Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:
Bardziej szczegółowoĆwiczenia laboratoryjne nr 11 Bazy danych i SQL.
Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie
Bardziej szczegółowoBazy danych - Materiały do laboratoriów VIII
Bazy danych - Materiały do laboratoriów VIII dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 23 kwietnia 2011 roku Polecenie COMMIT i ROLLBACK Polecenie
Bardziej szczegółowoIndeksy. Indeks typu B drzewo
Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach
Bardziej szczegółowo"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz
"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie Krzysztof Jankiewicz Plan Opis schematu dla "kilku słów" Postać polecenia SQL Sposoby dostępu do tabel Indeksy B*-drzewo Indeksy
Bardziej szczegółowoCREATE USER
Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość
Bardziej szczegółowoBazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność
Bardziej szczegółowoSZKOLENIE: Administrator baz danych. Cel szkolenia
SZKOLENIE: Administrator baz danych. Cel szkolenia Kurs Administrator baz danych skierowany jest przede wszystkim do osób zamierzających rozwijać umiejętności w zakresie administrowania bazami danych.
Bardziej szczegółowoSQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska
SQL TECHNOLOGIE BAZ DANYCH Wykład 5: Język DDL i DML. SQL (ang. StructuredQueryLanguage) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania
Bardziej szczegółowoProjektowanie systemów baz danych
Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do
Bardziej szczegółowoOdnawialne Źródła Energii I rok. Tutorial PostgreSQL
Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym
Bardziej szczegółowokoledzy, 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ółowoZadania do wykonania na laboratorium
Lab Oracle Katowice 2013v1 Fizyczna i logiczna struktura bazy danych 1 http://platforma.polsl.pl/rau2/mod/folder/view.php?id=9975 RB_lab2_v04st Przykładowe pomocne strony www: Zadania do wykonania na laboratorium
Bardziej szczegółowoSystemy 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ółowoJęzyk SQL Złączenia. Laboratorium. Akademia Morska w Gdyni
Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele
Bardziej szczegółowoDECLARE VARIABLE zmienna1 typ danych; BEGIN
Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;
Bardziej szczegółowoIntegralność danych Wersje języka SQL Klauzula SELECT i JOIN
Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności
Bardziej szczegółowoBazy 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ółowoAlgorytmy 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ółowoBazy 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ółowoWyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie
Bardziej szczegółowoWstę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ółowoUprawnienia, role, synonimy
Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy
Bardziej szczegółowo