Indeksy i transakcje
|
|
- Krzysztof Andrzejewski
- 5 lat temu
- Przeglądów:
Transkrypt
1 ITA-101 Bazy Danych Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski Moduł 7 Wersja 1.0 Spis treści... 1 Informacje o module... 2 Przygotowanie teoretyczne... 3 Przykładowy problem... 3 Podstawy teoretyczne... 3 Przykładowe rozwiązanie... 9 Porady praktyczne Uwagi dla studenta Dodatkowe źródła informacji Laboratorium podstawowe Problem 1 (czas realizacji 30 min) Problem 2 (czas realizacji 15 min) Laboratorium rozszerzone Zadanie 1 (czas realizacji 90 min)... 20
2 Informacje o module Opis modułu W module tym znajdziesz informacje na temat dostępu fizycznego do danych oraz optymalizacji dostępu. Poznasz indeksy i ich rodzaje, a następnie dowiesz się, jakie operacje wykonywane są na indeksach. W drugiej części poznasz transakcje, które służą do zapewnienia spójności bazy danych i mają wpływ na wydajność bazy danych. Dowiesz się, że obsługa transakcji nie jest rzeczą łatwą i wymaga rozwiązywania wielu trudnych problemów. Cel modułu Celem modułu jest zapoznanie czytelnika z podstawowymi mechanizmami indeksowania oraz struktury pisania transakcji. Zostaną przedstawione proste przykłady, które mają pokazać mechanizmy obowiązujące w metodach indeksowania oraz w transakcjach. Uzyskane kompetencje Po zrealizowaniu modułu będziesz: wiedział, na czym polega zasada działania indeksów potrafił we właściwy sposób dobierać politykę indeksowania znał zasadę funkcjonowania transakcji potrafił we właściwy sposób pisać proste transakcje Wymagania wstępne Przed przystąpieniem do pracy z tym modułem powinieneś: umieć stworzyć bazę danych wraz z jej podstawowymi obiektami (patrz: moduł 3) znać zaawansowane mechanizmy programowania w języku T-SQL (patrz: moduł 9) znać podstawowe mechanizmy bezpieczeństwa (patrz: moduł 11) Mapa zależności modułu Zgodnie z mapą zależności przedstawioną na rys. 1, przed przystąpieniem do realizacji tego modułu należy zapoznać się z materiałem zawartym w modułach 3, 8 i 11. Rys. 1 Mapa zależności modułu Strona 2/20
3 Przygotowanie teoretyczne Przykładowy problem Tak jak już Wiesz z bazy danych może korzystać wielu użytkowników, dysponujących różnorakimi uprawnieniami i mających dostęp do różnych obiektów w bazie danych. W związku z tym jednym z podstawowych zadań, jakie stoi przed osobami odpowiedzialnymi za prawidłowe funkcjonowanie bazy danych, jest dobór odpowiedniej polityki indeksowania, która pozwoli na szybsze przeszukiwanie bazy danych. Bezpośrednio z polityką indeksowania bazy danych związana jest optymalizacja i strojenie bazy danych, między innymi poprzez przebudowę indeksów. Kolejnym mechanizmem, z jakim bardzo często możemy się spotkać, są transakcje. Według definicji są to operacje, które są niepodzielne i muszą być wykonane w całości. Innym ważnym zadaniem transakcji jest zapewnienie spójności bazy danych oraz umożliwienie równoległych operacji na niej. W celu dobrego pisania transakcji potrzebna jest znajomość zaawansowanego programowania w języku T-SQL. Transakcje stanowią bardzo ważny element programowania baz danych i powinny być pisane profesjonalnie. Przykładem transakcji może być wypłata pieniędzy z bankomatu, płatność kartą debetową itp. Podstawy teoretyczne Dostęp fizyczny do danych Zrozumienie mechanizmu dostępu do danych zapisanych w bazie danych jest bardzo istotne dla zrozumienia zasad działania indeksów. Jak wiadomo, dane w bazach danych w sposób trwały są zapisywane na dyskach optycznych, magnetycznych lub rodzinach nośników o dostępie bezpośrednim, takich jak macierze RAID (ang. Redundant Array of Independent Disks). Zasady działania tego typu nośników oraz pojęcia głowicy, cylindrów, strony danych itp. powinny być Ci znane z przedmiotu Podstawy Informatyki lub podobnego. System zarządzania bazami danych najczęściej nie zajmuje się fizyczną obsługą dysków. W procesie dostępu do danych biorą udział: Menedżer plików posiada wiedzę o strukturze systemu plików i jest odpowiedzialny za odszukanie odpowiedniego pliku. Menedżer dysku posiada wiedzę na temat fizycznej organizacji dysku i jest odpowiedzialny za odnalezienie odpowiedniej strony danych. Schemat łańcucha dostępu do danych pokazany jest na rys. 2. Rys. 2 Schemat dostępu do danych Strona 3/20
4 Optymalizacja dostępu Zasadniczy czas dostępu do danych bazy to czas odczytu danych z dysków. W celu optymalizacji tego dostępu stosuje się metodę zwaną klastrowaniem. Klastrowanie polega na dążeniu do utrzymania logicznie powiązanych rekordów blisko siebie na dysku. Taka organizacja danych znacznie przyspiesza dostęp do nich. Aby odczytać dane powiązane, głowica nie musi wykonywać dużych ruchów, a tym samym maleją czasy wyszukiwania. Rozróżniamy dwa rodzaje klastrowania: Klastrowanie wewnątrzplikowe polega na grupowaniu rekordów obok siebie wewnątrz jednego pliku. Klastrowanie międzyplikowe polega na umieszczaniu na stronie obok siebie rekordów pochodzących z więcej niż jednego pliku (tabeli). Optymalizacja dostępu do danych sprowadza się w zasadzie do odpowiedniego zarządzania stronami i decydowania, w jaki sposób dane mają być klastrowane. Więcej na temat fizycznej struktury danych możesz znaleźć w module 4 Indeksy i ich zastosowanie Zastanowimy się teraz nad problemem wyszukiwania danych w tabeli. Na przykład załóżmy, że w tabeli Studenci chcemy znaleźć studenta o nazwisku Nowak. Tab. 1 Przykładowa tabela bazy studentów ID Nazwisko Imie Wydzial 1 Olacki Jan Elektryczny 2 Babicki Adam Mechaniczny 3 Nowak Jerzy Elektryczny 1 Adamski Adam Elektronika Wiersze zapisane są w bazie w kolejności ich wpisywania i nie są w szczególny sposób sortowane. Co robi wobec tego system, kiedy wydajemy polecenie odnalezienia rekordu zawierającego informacje o Nowaku, np.: SELECT imie, nazwisko FROM Studenci WHERE Nazwisko = 'Nowak' System musi przeszukać całą tabelę (skanowanie wszystkich stron danych zawierających dane z tabeli) i przejrzeć wszystkie rekordy tej tabeli, aby mieć pewność, że odnalazł rekordy zawierające nazwisko Nowak. Operacja taka jest oczywiście czasochłonna. Podobnie jest, gdy w książce poszukujemy jakiegoś hasła (na przykład w podręczniku do baz danych szukamy informacji o indeksach). Aby znaleźć szukaną informację, powinniśmy przeczytać całą książkę. Na szczęście niektóre książki są wyposażone na końcu w specjalne zestawienie haseł czyli w indeks. Nasze postępowanie przebiega wówczas następująco: 1. Odszukujemy poszukiwane hasło w indeksie, który jest uporządkowany alfabetycznie (co znacznie ułatwia nam odnalezienie hasła). 2. Odczytujemy w indeksie numer strony, na której hasło to występuje w książce. 3. Otwieramy książkę na odpowiedniej stronie. 4. Przeglądamy stronę w poszukiwaniu naszego hasła. 5. Odczytujemy informacje związane z szukanym hasłem. Strona 4/20
5 Idea działania indeksów w bazie danych jest dokładnie taka sama. Indeks określony na atrybucie A relacji jest mechanizmem, który pozwala na efektywne wyszukiwanie krotek o ustalonej wartości składowej atrybutu A. Jak więc wyglądałby indeks dla tabeli Studenci? Indeks określany jest dla konkretnego pola. Mówimy wówczas, że pole to jest polem indeksowanym. W wypadku tabeli Studenci możemy jako pole indeksowane wybrać pole Nazwisko, wówczas założenie indeksu na tym polu będzie oznaczało założenie przez system dodatkowej tabeli, w której umieszczone zostaną nazwiska studentów z tabeli Studenci oraz przesłanki, gdzie należy szukać (na której stronie danych) pełnej informacji o wybranych studentach. Dodatkowo rekordy w tabeli indeksu zostaną posortowane w kolejności alfabetycznej nazwisk. Poszukiwanie naszego studenta Nowaka będzie teraz przebiegać znacznie szybciej. Działanie i rola indeksów polega głównie na przyspieszeniu wyszukiwania rekordów w bazie danych. Niestety obciążają one dodatkowo system w czasie aktualizacji lub wstawiania danych, bowiem oprócz umieszczenia rekordu w bazie musi on również dokonać wpisu w tabeli indeksu oraz ponownie posortować trzymane w niej rekordy. Zalety i wady stosowania indeksów zebrano w tab. 2. Tab. 2 Zalety i wady stosowania indeksów Zalety Przyspieszają dostęp do danych Wymuszają unikatowość wierszy Wady Zajmują miejsce na dysku Zwiększają obciążenie systemu Niektóre z pól warto indeksować, inne natomiast nie powinny być nigdy indeksowane. Do pierwszej grupy można zaliczyć: klucze podstawowe i obce (często są indeksowane automatycznie) pola, po których często następuje wyszukiwanie pola, do których dostęp następuje w ustalonej, uporządkowanej kolejności Nie należy indeksować: pól, do których rzadko odwołują się zapytania pól, które zawierają tylko kilka wartości unikatowych pól zawierających dane typu image, bit czy obiekt OLE Indeksy mogą być zakładane na jednym polu lub na kilku jednocześnie. Rodzaje indeksów Indeksy można klasyfikować w różny sposób. My podzielimy indeksy na dwie grupy: indeksy grupowane (klastrowe) indeksy niegrupowane (nieklastrowe) Indeksy grupowane Indeks grupowany działa na podobnej zasadzie, co książka telefoniczna. Zawiera strony szybkiego dostępu do danych (w książce telefonicznej na początku znajduje się alfabetyczny spis mówiący o tym, na której stronie szukać nazwisk, firm czy instytucji zaczynających się na daną literę alfabetu). Strony te są ułożone w odwrócone drzewo i przechowują tylko ułożone alfabetycznie wartości indeksowanego pola oraz wskaźniki do stron znajdujących się w niższej warstwie drzewa. Strona 5/20
6 Na samym dole drzewa znajdują się strony zawierające posortowane wg indeksowanego pola dane (w książce telefonicznej zawartość też jest posortowana wg nazwisk lub nazw firm czy instytucji). Przeszukiwanie indeksu odbywa się z góry na dół na następującej zasadzie: porównywana jest szukana wartość pola indeksowanego z wartościami zapisanymi (i posortowanymi) na stronach indeksu jeśli znajdzie się wartość większa od wartości szukanej, wtedy następuje skok jeden poziom niżej do strony wskazywanej przez ostatnią pozycję (na ostatnio sprawdzanej stronie), która nie była większa od szukanej wartości. Każda pozycja na stronach zawiera wskaźnik do strony danych jeden poziom niżej w hierarchii indeksu. Dzięki takiej strukturze przeszukiwane są tylko wybrane strony z danymi, nie zaś wszystkie strony zawierające dane z wybranej tabeli. Rys. 3 Indeks grupowany Indeksy niegrupowane Indeks niegrupowany działa na podobnej zasadzie, co indeks w typowej książce (ale nie w telefonicznej). Indeks niegrupowany budowany jest na stronach danych, które nie są sortowane. Składa się z co najmniej dwóch poziomów: poziomu niepomocniczego i poziomów pomocniczych. Na stronach poziomu niepomocniczego, podobnie jak w przypadku indeksu grupowanego, przechowywane są wartości indeksowanego pola ze wskaźnikami do poziomu niżej w drzewie indeksu. Strony poziomu pomocniczego zwane też liśćmi i zawierają wskaźniki do konkretnych stron danych (które nie są posortowane). Wskaźnik taki zawiera następujące dane: ID pliku, numer strony, numer wiersza na stronie. Przeszukiwanie indeksu niegrupowanego odbywa się na podobnej zasadzie, jak w indeksie grupowanym. Po dojściu do poziomu pomocniczego następują skoki do stron danych (do konkretnych wierszy). Rys. 4 Indeks niegrupowany Strona 6/20
7 Operacje na indeksach Indeksy są najczęściej tworzone automatycznie dla kluczy głównych oraz pól, dla których ma być wymuszona unikatowość. Można też tworzyć je dla innych pól, korzystając z polecenia języka SQL CREATE INDEX. Poniżej podano przykład utworzenia indeksu grupowanego dla dla pola Nazwisko w tabeli Recenzent: USE PraceDyplomowe CREATE CLUSTERED INDEX cl_nazwisko ON Recenzent (Nazwisko) Indeks może też być zakładany na kilku polach jednocześnie. Poniższy przykład pokazuje sposób definiowania unikalnego indeksu na polach Nazwisko i Imie tabeli Osoba: CREATE UNIQUE INDEX Indeks_Osoba ON Osoba (Nazwisko, Imie) Założenie takiego indeksu spowoduje, że będzie możliwe wprowadzanie jedynie unikatowych par imię-nazwisko. Transakcje Transakcja jest ciągiem operacji wykonywanych na bazie danych, które są niepodzielne i muszą być wykonane w całości. Jest więc jednostką logiczną operowania na bazie. Podlega ona kontroli i sterowaniu. Każda transakcja może składać się z następujących operacji: czytanie danej x przez transakcję T zapisanie danej x przez transakcję T wycofanie transakcji T zatwierdzenie transakcji T Transakcje służą do zapewnienia spójności bazy danych oraz umożliwiają równoległe wykonywanie operacji na niej. Jeśli wiele procesów działa jednocześnie na bazie danych, to może łatwo dojść do utraty spójności danych, a co za tym idzie do błędów i otrzymywania niewłaściwych rezultatów operacji. Transakcja zabezpiecza również przed częściowym wykonaniem zbioru operacji, które mogą być przerwane, na przykład w wyniku awarii. Klasycznym przykładem jest operacja polegająca na wypłacaniu pieniędzy z bankomatu. W uproszczeniu operacje realizowane w czasie wypłaty pieniędzy z bankomatu są następujące: 1. Klient wczytuje kartę magnetyczną i jest rozpoznawany. 2. Klient określa sumę wypłaty. 3. Konto klienta jest sprawdzane. 4. Konto jest zmniejszane o sumę wypłaty. 5. Wysyłane jest zlecenie do kasy. 6. Bankomat odlicza sumę i koryguje stan gotówki w bankomacie. 7. Bankomat wypłaca klientowi pieniądze. Zaistnienie awarii w kroku 5 lub 6 może prowadzić do niezbyt przyjemnej sytuacji dla posiadacza konta. Transakcje pozwalają na uniknięcie tego typu niespodzianek. Postulaty AICD Każda transakcja powinna spełniać cztery postulaty. Są to tak zwane postulaty AICD. Strona 7/20
8 1. Atomowość (ang. atomicity) w ramach jednej transakcji wykonują się albo wszystkie operacje, albo żadna. 2. Spójność (ang. consistency) o ile transakcja zastała bazę danych w spójnym stanie, po jej zakończeniu stan jest również spójny (w międzyczasie stan może być chwilowo niespójny). 3. Izolacja (ang. isolation) transakcja nie wie nic o innych transakcjach i nie musi uwzględniać ich działania. Czynności wykonane przez daną transakcję są niewidoczne dla innych transakcji aż do jej zakończenia. 4. Trwałość (ang. durability) po zakończeniu transakcji jej skutki są na trwale zapamiętane (na dysku) i nie mogą być odwrócone przez zdarzenia losowe (np. wyłączenie prądu). Transakcje w SQL W języku SQL każda transakcja rozpoczyna się słowem BEGIN TRANSACTION, a kończy operacją COMMIT oznaczającą pomyślne zakończenie transakcji lub operacją ROLLBACK, oznaczającą wycofanie transakcji. Dowolne polecenie SELECT, INSERT, UPDATE, DELETE czy CREATE rozpoczyna transakcję. Transakcja trwa aż do wydania komendy COMMIT (potwierdzającej) lub ROLLBACK (zrywającej, cofającej). Transakcja może objąć dowolną liczbę poleceń SELECT, INSERT, UPDATE, DELETE, CREATE i innych. Stosowanie zamków oraz problem z zakleszczaniem Zarządzanie transakcjami wymaga zastosowania specjalnego modułu (zwanego modułem planisty) oraz protokołu zarządzania transakcjami. W celu uniknięcia problemów ze współbieżnym dostępem stosuje się mechanizmy blokady dostępu do danych, tzw. zamki. Wyróżniamy dwa typy zamków: Zamek typu X założenie zamka tego typu całkowicie blokuje dostęp do obiektu dla innych transakcji. Zamek typu S założenie zamka tego typu powoduje, że inne transakcje mogą czytać dane, ale nie mogą ich modyfikować. Najczęściej stosowanym w bazach relacyjnych protokołem zarządzania transakcjami jest protokół blokowania dwufazowego 2PL (ang. two-phase locking). Reguły pracy protokołu 2PL są następujące: 1. Jeśli dana operacja pi(x) może być wykonana, to planista zakłada blokadę na daną x dla transakcji Ti i operację przekazuje do wykonania. Jeśli natomiast operacja ta nie może być wykonana, to umieszcza ją w kolejce. 2. Zdjęcie założonej blokady może nastąpić dopiero wtedy, gdy operacja zostanie wykonana. 3. Jeśli nastąpiło zdjęcie jakiejkolwiek blokady założonej dla transakcji T, to dla tej transakcji nie można założyć żadnej innej blokady. Postępując zgodnie z tymi zasadami przebieg wykonania transakcji wymusza dwie fazy obsługi transakcji. W pierwszej fazie są zakładane blokady, a w drugiej następuje ich zdejmowanie. Faza druga jest znacznie szybsza od pierwszej. Rys. 5 Protokół blokowania dwufazowego 2PL Strona 8/20
9 Stosowanie zamków może prowadzić do zjawiska zwanego zakleszczaniem. Zakleszczanie polega na tym, że transakcje blokują się, oczekując siebie nawzajem. Powodem powstania zakleszczeń jest konieczność oczekiwania na zwolnienie zasobu, do którego dostęp potrzebują. Weźmy pod uwagę dwie transakcje A i B. Transakcja A blokuje zasób X i żąda dostępu do zasobu Y. Transakcja B blokuje zasób Y i żąda dostępu do zasobu X. W wyniku tego dochodzi do zakleszczenia i żadna z transakcji nie może wykonywać swojej akcji. Inne przykłady zakleszczeń są pokazane na rys. 6. Stemple czasowe oraz ziarnistość transakcji Rys. 6 Zakleszczenie transakcji Każda transakcja w momencie startu dostaje unikalny stempel czasowy. Stempel ten jest na tyle precyzyjny, aby móc po nim rozróżniać transakcje. Żadna zmiana nie jest nanoszona do bazy danych, transakcja działa na swoich własnych kopiach aż do potwierdzenia. Każdy obiekt bazy danych przechowuje dwa stemple czasowe: transakcji, która ostatnio brała obiekt do czytania i transakcji, która ostatnio brała obiekt do modyfikacji. W momencie potwierdzenia sprawdza się stemple transakcji oraz wszystkich pobranych przez nią obiektów. Można dość łatwo wyprowadzić reguły zgodności, np. jeżeli obiekt był aktualizowany i stempel na obiekcie do aktualizacji jest taki sam, jak stempel transakcji, to transakcja może zostać wykonana, w przeciwnym razie należy ją zerwać i uruchomić od nowa. Jeżeli obiekt był tylko czytany i stempel na obiekcie do aktualizacji jest starszy niż stempel transakcji, to transakcja może zostać wykonana, w przeciwnym razie należy ją zerwać i uruchomić od nowa. Z problemem zakładania zamków wiąże się również problem ziarnistości. Ziarnistość oznacza decyzję, co będzie niepodzielną jednostką, na którą zakłada się blokady. Poziomy ziarnistości mogą dotyczyć: bazy danych, relacji, rekordu, elementu rekordu, pojedynczego atrybutu, fizycznej strony pamięci. Grube ziarna mogą zapewnić znaczny poziom bezpieczeństwa, jednak dają niewielki stopień współbieżności procesów. Z kolei małe ziarna wiążą się z dużymi nakładami na zakładanie zamków oraz ich obsługę. Przykładowe rozwiązanie Optymalizacja bazy danych Bardzo często działająca od jakiegoś czasu baza danych, na której wykonuje się bardzo dużo operacji, zaczyna działać woniej niż podczas pierwszego uruchomienia. Wówczas do głównego zadania administratora bazy danych należy zoptymalizowanie jej oraz przebudowa indeksów. Do tego celu może posłużyć nam narzędzie SQL Server Profiler. Strona 9/20
10 SQL Server Profiler to potężne choć rzadko wykorzystywane narzędzie do analizy problemów z wydajnością bazy danych. Wykorzystując profiler do przechwytywania śladów (ang. traces) aktywności bazy danych można analizować wzorce zapytań, aby wykryć problemy z wydajnością nawet przed ich uwidocznieniem w aplikacjach. W pierwszym kroku należy zdefiniować ślad. Wewnątrz silnika bazy danych SQL Server udostępnia podsystem zdarzeń nazwany SQL Trace, który opiera się na zewnętrznych interfejsie. Interfejs ten pozwala na wywoływanie SQL Trace z wykorzystaniem różnorodnych parametrów. SQL Server Profiler uruchamia się z menu SQL Server 2008 Performance Tools. Po jego otworzeniu należy wybrać File, a następnie New Trace, co pokazano na rys. 7. Rys. 7 Definicja śladu Każdy definiowany ślad musi zostać nazwany (w naszym przykładzie użyliśmy nazwy Test). Następnie następuje wybór wzorca. Istnieje kilka wzorców, które najczęściej są monitorowane. Oczywiście możemy ustawić pusty wzorzec i sami zdefiniować opcje. Na rys. 7 użyliśmy predefiniowanego wzorca Tuning. Następnie ustawiamy sposób zapisu. Mamy możliwość zapisu do pliku lub do tabeli. Zapis do tabeli nie jest polecany, gdyż SQL Trace może generować setki tysięcy wierszy danych śladu na minutę na obciążonym serwerze. Gdy ślad jest w pełni zdefiniowany, należy go tylko uruchomić i zbierać dane. W tym celu należy kliknąć Run. Wynik działania śladu pokazano na rys. 8. Strona 10/20
11 Rys. 8 Uruchomienie śladu Po zakończeniu zbierania śladu kolejnym etapem jest użycie narzędzia Database Engine Tuning Advisor (DTA). Odgrywa ono ważną rolę w rozwiązywaniu problemów związanych z wydajnością, pozwalając wpływać na optymizator zapytań w celu otrzymania zaleceń dla indeksów, indeksowanych widoków lub partycji, które mogą zwiększyć wydajność. W celu uruchomienia DTA należy z zakładki Tools wybrać Database Engine Tuning Advisor. Następnie należy połączyć się z serwerem, wybrać plik obciążający do analizy ten, do którego zapisaliśmy zbierany ślad (rys. 9) oraz określić opcje strojenia (rys. 10). Rys. 9 Definiowanie ogólnych opcji strojenia bazy danych Strona 11/20
12 Rys. 10 Definiowanie strojenia bazy danych Po skonfigurowaniu opcji strojenia DTA można zacząć analizę klikając Start Analysis, co pokazano na rys. 11. Rys. 11 Strojenie bazy danych Po wykonaniu analizy otrzymujemy zalecenia na przykład dotyczące przebudowy indeksów, które możemy zastosować względem naszej bazy danych. Porady praktyczne Indeksowanie kolumn Indeksy powinny być planowane z myślą o najczęściej wykonywanych w Twojej bazie danych zapytaniach SELECT z klauzulą WHERE. Pierwszym krokiem powinno być zatem wypisanie najczęściej wykonywanych zapytań (koniecznie z klauzulą WHERE) Microsoft SQL Server umożliwia utworzenie w tabeli jednego indeksu grupowanego oraz 249 indeksów niegrupowanych. Pojedynczy indeks można założyć na maksymalnie 16 polach. To Strona 12/20
13 jednak tylko maksymalne możliwości serwera. W praktyce w bazach danych OLTP (ang. online transaction processing) nie tworzy się więcej niż 8 do 10 indeksów związanych z pojedynczą tabelą. Należy pamiętać, iż nie wszystkie zapytania wykorzystują indeksy. Np. w Microsoft SQL Server zapytanie: SELECT imie, nazwisko FROM osoby WHERE nazwisko LIKE '%mar%' nie wykorzysta indeksu grupowanego na polu nazwisko, ponieważ niemożliwe będzie porównanie wartości wzorca z wartościami na stronach indeksu. Indeksy mają kluczowe znaczenie dla optymalizacji wydajności baz danych. Dobrze zaprojektowane indeksy mogą znacząco poprawić szybkość operacji przeszukiwania bazy danych (najczęściej wykonywana operacja i dotyczy największych ilości danych), ale źle zaplanowane mogą spowodować efekt odwrotny do pożądanego. Z tego powodu należy starannie zaplanować ich strukturę. Database Engine Tuning Advisor (DTA) to znacznie udoskonalony następca narzędzia Index Tuning Wizard dostarczanego wraz z SQL Server Żeby Database Engine Tuning Advisor (DTA) mógł przeprowadzić optymalizację bazy danych w oparciu o plik zawierający ślad, musi on mieć co najmniej 2 MB zebranych danych. Transakcje Zakleszczenia są poważnym problemem i mają istotny wpływ na wydajność systemu. Walka z zakleszczeniami może przebiegać według dwu metod: a) Wykrywanie zakleszczeń i rozrywanie pętli zakleszczenia detekcja zakleszczenia wymaga skonstruowania grafu czekania (ang. wait-for graph) i tranzytywnego domknięcia tego grafu (złożoność gorsza niż n * n). Rozrywanie pętli zakleszczenia polega na wybraniu transakcji ofiary uczestniczącej w zakleszczeniu, a następnie jej zerwaniu i uruchomieniu od nowa. Wybór ofiary podlega różnym kryteriom może nią być transakcja najmłodsza, najmniej pracochłonna, o niskim priorytecie itp. b) Niedopuszczanie do zakleszczeń istnieje wiele tego rodzaju metod, np.: Wstępne żądanie zasobów przed uruchomieniem każda transakcja określa potrzebne jej zasoby. Nie może później nic więcej żądać. Wada: zgrubne oszacowanie żądanych zasobów prowadzi do zmniejszenia stopnia współbieżności. Czekasz-umieraj (ang. wait-die) jeżeli transakcja próbuje dostać się do zasobu, który jest zablokowany, to natychmiast jest zrywana i powtarzana od nowa. Metoda może być nieskuteczna dla systemów interakcyjnych (użytkownik może się denerwować koniecznością dwukrotnego wprowadzania tych samych danych) oraz prowadzi do spadku efektywności (sporo pracy idzie na marne). Postulat możliwości odtworzenia stanu systemu sprzed wywołani transakcji w wypadku jej awarii (wycofania) możliwy jest dzięki m.in. zastosowaniu osobnego dziennika transakcji. Mogą być w nim zapisywane wszystkie dane, na których pracuje transakcja lub też tylko dane różnicowe. Należy jednak pamiętać, że obsługa transakcji wiąże się z dodatkowymi nakładami i obciążeniem dla systemu. Uwagi dla studenta Jesteś przygotowany do realizacji laboratorium jeśli: rozumiesz mechanizm działania i polityki indeksowania rozumiesz zasadę działania transakcji znasz składnię nakładania indeksów na poszczególne pola rozumiesz sposób działania transakcji Strona 13/20
14 rozumiesz mechanizm zakleszczania transakcji Pamiętaj o zapoznaniu się z uwagami i poradami zawartymi w tym module. Upewnij się, że rozumiesz omawiane w nich zagadnienia. Jeśli masz trudności ze zrozumieniem tematu zawartego w uwagach, przeczytaj ponownie informacje z tego rozdziału i zajrzyj do notatek z wykładów. Dodatkowe źródła informacji 1. Kalen Delaney, Microsoft SQL Server 2005: Rozwiązania praktyczne krok po kroku, Microsoft Press, 2006 W książce autor przedstawia między innymi w jaki sposób należy stosować transakcje w celu zapewnienia bezpiecznej współbieżności bazy danych. Pokazuje jak należy definiować transakcje w SQL Server oraz jak zarządzać odseparowanymi transakcjami. W pozycji tej znajdziesz dużo rozwiązań praktycznych. 2. Deren Bieniek, Randy Dyess, Mike Hotek, Javier Loria, Adam Machanic, Antonio Soto, Adolfo Wiernik, SQL Server Implementacja i obsługa, APN Promise, 2006 W książce obszernie przedstawiono zagadnienia związane z tworzeniem indeksów oraz transakcjami. Znajdziesz tu potrzebne informacje na temat struktury indeksu, tworzenia indeksów klastrowych i nieklastrowych oraz na temat tworzenia transakcji. Znajdziesz tutaj również szczegółowe informacje na temat optymalizacji bazy danych oraz przebudowy indeksów. Książka szczególnie polecana ze względu na dużą zawartość ćwiczeń laboratoryjnych. 3. Ramez Elmasri, Shamkant B. Navathe, Wprowadzenie do systemów baz danych, Helion, 2005 W książce tej znajdziemy dużo szczegółowych informacji na temat indeksowania oraz zagadnień związanych z przetwarzaniem transakcji. Pozycja szczególnie polecana dla osób pragnących poszerzyć swoją wiedzę z tej tematyki. Strona 14/20
15 Laboratorium podstawowe Problem 1 (czas realizacji 30 min) Jesteś administratorem w firmie National Insurance. Właśnie dowiedziałeś się od swojego szefa, że firma planuje rozszerzenie na skalę uczelnianą systemu prac dyplomowych, którym zarządzała dotąd na Twoim wydziale. Zadanie, jakie przed Tobą stoi, to zaplanowanie struktury indeksów. Zadanie 1. Stwórz listę najczęściej wykonywanych zapytań 2. Wybierz pola do indeksowania 3. Nawiąż połączenie z SQL Server Przygotuj tabelę Tok postępowania Wypisz najczęściej wykonywane zapytania na bazie danych PraceDyplomowe, służące do wyszukiwania prac: według tytułów według autorów według promotorów według recenzentów Zastanów się, jakie inne zapytania z klauzulą WHERE można utworzyć dla bazy danych PraceDyplomowe. Mając przed sobą listę najczęściej wykonywanych zapytań oraz strukturę tabel zaplanuj strukturę indeksów. Kandydatami do indeksowania są kolumny lub kombinacje kolumn, które: narzucają porządek sortowania (indeks grupowy) przechowują wartości częściej odczytywane niż modyfikowane są wykorzystywane do łączenia (JOIN) lub wyszukiwania (WHERE) danych przechowują różnorodne wartości Zastanów się, jakie inne kolumny są dobrymi kandydatami na to, żeby założyć na nie indeks. Uruchom maszynę wirtualną BD2008. Jako nazwę użytkownika podaj Administrator. Jako hasło podaj P@ssw0rd. Jeśli nie masz zdefiniowanej maszyny wirtualnej w Microsoft Virtual PC, dodaj nową maszynę używając wirtualnego dysku twardego z pliku D:\VirtualPC\Dydaktyka\BD2008.vhd. Kliknij Start. Z grupy programów Microsoft SQL Server 2008 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. Z menu głównego wybierz File -> Open -> File. Odszukaj plik C:\Lab08\Indeksy.sql i kliknij Open. Kliknij w menu głównym programu SQL Server Management Studio na Tools -> Customize. W oknie Customize kliknij przycisk Keybord. W pozycji odpowiadającej kombinacji klawiszy Ctrl+F1 wpisz sp_helpindex i wciśnij OK. Wynik powyższych operacji pokazano na rys. 12. Strona 15/20
16 Rys. 12 Definicja klawiszy skrótu Dzięki zdefiniowaniu klawiszy skrótu w prosty sposób będziesz mógł wywoływać z klawiatury procedurę składowaną sp_helpindex, która wyświetla informacje o indeksach w wybranej tabeli. Stwórz kopie tabeli Osoba: -- (2) Tworzymy kopie tabeli Osoba IF EXISTS ( SELECT name FROM sysobjects WHERE name='osoba_kopia') DROP TABLE Osoba_kopia GO SELECT Imie, Nazwisko, Nr_Indeksu INTO Osoba_kopia FROM Osoba GO Uruchom zapytanie do tabeli Osoba_kopia: -- (3) Wyswietl zawartość tabeli Osoba_kopia SELECT * FROM Osoba_kopia GO Podkreśl w edytorze słowo Osoba (nazwa twojej tabeli) i wciśnij CTRL+F1 lub wykonaj poniższy fragment skryptu. Powinieneś zobaczyć informację pokazaną na rys (4) zobaczmy indeksy w tabeli EXEC sp_helpindex Osoba_kopia GO Strona 16/20
17 Rys. 13 Informacja o indeksach w tabeli Osoba Zastanów się, dlaczego w wyniku wywołania procedury składowanej odpowiedzialnej za wyświetlanie informacji o indeksach pojawia się wpis z indeksem PK_Osoba, skoro żaden indeks nie został założony? Włącz pomiar statystyk wejścia/wyjścia ilości skanowanych stron wykonując poniższe polecenie: -- (5) Wlacz statystyki wejscia/wyjscia ilosci skanowanych stron SET statistic io on GO Zaznacz i uruchom (F5) poniższy fragment kodu: -- (6) wykonajmy proste wyszukiwanie po Nr_Indeksu -- oraz po nazwisku SELECT * FROM Osoba WHERE Nr_Indeksu > 1000 AND Nazwisko = 'K%' GO 5. Utwórz indeks Zaznacz i uruchom (F5) poniższy fragment kodu: -- (7) utworzmy indeks niegrupowany CREATE INDEX index_osoba ON Osoba(Nazwisko, Nr_Indeksu) GO Ponownie podkreśl w edytorze słowo Osoba (nazwa twojej tabeli) i wciśnij CTRL+F1. Powinieneś zobaczyć informację pokazaną na rys. 14. Rys. 14 Informacja o indeksach w tabeli Osoba 6. Przetestuj indeks Zaznacz i uruchom (F5) poniższy fragment kodu: -- (6) wykonajmy proste wyszukiwanie po Nr_Indeksu -- oraz po nazwisku SELECT * FROM Osoba WHERE Nr_Indeksu > 1000 AND Nazwisko = 'K%' GO Zauważ, iż wynik będzie oczywiście taki sam, ale pojawi się różnica w statystykach. Strona 17/20
18 Problem 2 (czas realizacji 15 min) Jesteś administratorem w firmie National Insurance. Właśnie dowiedziałeś się od swojego szefa, że firma planuje rozszerzenie na skalę uczelnianą systemu prac dyplomowych, którym zarządzała dotąd na Twoim wydziale. Zadanie jakie przed Tobą stoi to stworzenie transakcji dla rozwijanej bazy danych. Zadanie 1. Nawiąż połączenie z SQL Server Przygotuj tabelę Tok postępowania Uruchom maszynę wirtualną BD2008. Jako nazwę użytkownika podaj Administrator. Jako hasło podaj P@ssw0rd. Jeśli nie masz zdefiniowanej maszyny wirtualnej w Microsoft Virtual PC, dodaj nową maszynę używając wirtualnego dysku twardego z pliku D:\VirtualPC\Dydaktyka\BD2008.vhd. Kliknij Start. Z grupy programów Microsoft SQL Server 2008 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. Z menu głównego wybierz File -> Open -> File. Odszukaj plik C:\Lab08\Transakcje.sql i kliknij Open. Zaznacz kod, który wyświetla fragment tabeli, oznaczony w komentarzu (1) i (2). -- (1) Ustaw sie na bazie danych PraceDyplomowe USE PraceDyplomowe GO -- (2) Wyswietlamy dwa pierwsze rekordy z tabeli Osoba SELECT * FROM Osoba WHERE ID_Osoby IN (1,2) Zaznacz kod, który próbuje wykonać transakcje: -- (3) Przykladowa transakcja BEGIN TRANSACTION BEGIN TRY UPDATE Osoba SET Nazwisko = 'Kochan' WHERE ID_Osoby = 2 UPDATE Osoba SET Nazwisko = 'Kowalski' WHERE ID_Osoby = 6 END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() as ErrorState, ERROR_PROCEDURE() as ErrorProcedure, ERROR_LINE() as ErrorLine, ERROR_MESSAGE() as ErrorMessage > 0 ROLLBACK TRANSACTION END CATCH > 0 COMMIT TRANSACTION GO Strona 18/20
19 Powyższy kod podejmuje próbę wykonania transakcji złożonej z dwóch operacji UPDATE. Próba wykonania pierwszej z nich spowoduje błąd, ponieważ wartości w kolumnie ID_Osoby w tabeli Osoby muszą być unikalne, a polecenie próbuje wstawić duplikat wartości 2, która już istnieje w rekordzie drugim tabeli. Przechwytywanie błędów odbywa się przy użyciu bloków TRY...CATCH, które poznałeś w module 9. Zastanów się, jak powinieneś zmodyfikować powyższą transakcję, żeby zakończyła się powodzeniem? Strona 19/20
20 Laboratorium rozszerzone Zadanie 1 (czas realizacji 90 min) Jesteś administratorem w firmie National Insurance. Właśnie dowiedziałeś się od swojego szefa, że firma zarządzająca bazą AdventureWorks planuje rozszerzenie i modernizację systemu w celu spełnienia pewnych standardów. W związku z modernizacją systemu bazodanowego, a zatem zmianą struktury fizycznej bazy danych, najprawdopodobniej będzie musiała nastąpić przebudowa struktury indeksów. Poza przebudową indeksów będzie musiała zapewne nastąpić modernizacja istniejących transakcji tak, żeby odpowiadały one nowej strukturze fizycznej przebudowanej bazy danych. Zadania jakie przed Tobą stoją to: 1. Podjęcie decyzji, które obiekty w bazie danych pozostaną bez zmian, a które zostaną zmodyfikowane lub usunięte. 2. Podjęcie decyzji, na które pola opłaca się nałożyć indeks i jakiego typu te indeksy powinny być. 3. Podjęcie decyzji, które transakcje należy zmodernizować i czy nie trzeba będzie dodać nowych transakcji. Strona 20/20
Transakcje. Bazy danych 155
Transakcje Bazy danych 155 156 Bazy danych Przegląd zagadnień Transakcje czym sa i po co sie je stosuje Postulaty ACID Transakcje w SQL Stosowanie zamków oraz problemy z zakleszczania Stemple czasowe i
Bardziej szczegółowoIndeksy. 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ółowoBazy danych. Andrzej Łachwa, UJ, /15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 12/15 WSPÓŁBIEŻNOŚĆ Serwer bazodanowy nie może obsługiwać klientów sekwencyjnie: wszyscy musieli by czekać
Bardziej szczegółowoBAZY DANYCH. Transakcje. opracowanie: Michał Lech
BAZY DANYCH Transakcje opracowanie: Michał Lech Plan wykładu 1. Transakcje - co to jest? 2. Mechanizmy transakcji 3. Reguły ACID 4. Niekorzystne zjawiska 5. Poziomy izolacji 6. Polecenia PostgreSQL transakcji
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ółowoBlaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie
Bardziej szczegółowoArchiwum DG 2016 PL-SOFT
2 1 to kompleksowe narzędzie ochrony Twoich danych genealogicznych utworzonych w programie Drzewo genealogiczne. Aplikacja nie wymaga instalacji na komputerze i jest uruchamiana bezpośrednio z dysku USB.
Bardziej szczegółowoLABORATORIUM 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ół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ółowoZarządzanie transakcjami
Zarządzanie transakcjami Właściwości ACID Przyjmuje się, że transakcje i protokoły zarządzania transakcjami powinny posiadać właściwości ACID: Atomowość (atomicity) każda transakcja stanowi pojedynczą
Bardziej szczegółowoKadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?
Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym
Bardziej szczegółowoWłodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski. Bazy danych ITA-101. Wersja 1
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski Bazy danych ITA-101 Wersja 1 Warszawa, wrzesień 2009 Wprowadzenie Informacje o kursie Opis kursu We współczesnej informatyce coraz większą
Bardziej szczegółowoAutor: 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ółowo070 TRANSAKCJE. Prof. dr hab. Marek Wisła
070 TRANSAKCJE Prof. dr hab. Marek Wisła Transakcja - definicja Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, przeprowadzających bazę danych z jednego stanu spójnego w inny
Bardziej szczegółowoUstawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).
POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane
Bardziej szczegółowoPłace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.
Płace Optivum Jak przenieść dane programu Płace Optivum na nowy komputer? Aby kontynuować pracę z programem Płace Optivum na nowym komputerze, należy na starym komputerze wykonać kopię zapasową bazy danych
Bardziej szczegółowoSQL 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ółowoT-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ółowoKadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?
Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze
Bardziej szczegółowoBazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Architektura systemów zarządzania bazami danych Realizacja zapytań algebra relacji Wielodostęp do danych - transakcje Dr inż. Paweł Kasprowski pawel@kasprowski.pl Aplkacja przechowująca
Bardziej szczegółowoWprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa
Wprowadzenie do projektowania i wykorzystania baz danych Katarzyna Klessa POWTÓRKA Z PIERWSZYCH ZAJĘĆ Lista słówek - do zapamiętania na początek Z podstaw SQL: CREATE - Tworzenie tabeli, czyli Coś czego
Bardziej szczegółowoPojęcie bazy danych. Funkcje i możliwości.
Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór
Bardziej szczegółowoTrigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.
Temat: Wyzwalacze (triggery). Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę a następnie trigger
Bardziej szczegółowoKOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED
KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:
Bardziej szczegółowo1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3
Plan wykładu Spis treści 1 Przetwarzanie transakcyjne 1 1.1 Cechy transakcji................................. 2 1.2 Rozpoczęcie i zakończenie........................... 3 1.3 Punkty bezpieczeństwa.............................
Bardziej szczegółowoInstalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Diagnozy rozszerzonej
Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Diagnozy rozszerzonej Uruchom plik setup.exe Pojawi się okno instalacji programu MAC Diagnoza EP. Wybierz przycisk AKCEPTUJĘ. Następnie zainstaluj
Bardziej szczegółowoAdministracja bazami danych
Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi
Bardziej szczegółowoInżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl
Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.
Bardziej szczegółowoRozdział 17. Zarządzanie współbieżnością zadania
Rozdział 17. Zarządzanie współbieżnością zadania Transakcja DML 1. Uruchom narzędzie Oracle SQL Developer i przyłącz się do bazy danych. Następnie rozpocznij nową transakcję, zmieniając pracownikowi o
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ółowoSQL Server Configuration Manager centrum dowodzenia
Instrukcja do przedmiotu Bazy danych laboratorium (zajęcia 1) 1 Celem pierwszych zajęć laboratoryjnych jest poznanie podstaw obsługi MS SQL Server 2005 za pomocą programu SQL Server Management Studio,
Bardziej szczegółowoPHP: bazy danych, SQL, AJAX i JSON
1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
Bardziej szczegółowoSprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):
Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa
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ółowoInstalacja SQL Server Express. Logowanie na stronie Microsoftu
Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy
Bardziej szczegółowoCurrenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3
Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...
Bardziej szczegółowoUruchamianie bazy PostgreSQL
Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL
Bardziej szczegółowoI. Techniki wielowersyjne sterowania współbieżnością
I. Techniki wielowersyjne sterowania współbieżnością Techniki wielowersyjne multiversion concurrency control. Technika wielowersyjna oparta na znacznikach czasu Dla każdej wersji X i elementu X przechowywane
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ółowoModelowanie 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ółowoTworzenie zapytań do Microsoft SQL Server
MS 20461 Tworzenie zapytań do Microsoft SQL Server Czas trwania: 5 dni (40 h) Poziom trudności: Średnio Zaawansowany Autoryzacja: Microsoft Opis: Szkolenie administratorów baz danych oraz programistów
Bardziej szczegółowoProblemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL
Problemy techniczne SQL Server Zarządzanie bazami danych na serwerze SQL Do zarządzania bazami danych na serwerze SQL służy narzędzie Microsoft SQL Server Management Studio. W poradzie tej pokażemy, jak:
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ółowoBaza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
Bardziej szczegółowoBAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia
BAZY DANYCH LABORATORIUM Studia niestacjonarne I stopnia Gdańsk, 2011 1. Cel zajęć Celem zajęć laboratoryjnych jest wyrobienie praktycznej umiejętności tworzenia modelu logicznego danych a nastepnie implementacji
Bardziej szczegółowoZastępstwa Optivum. Jak przenieść dane na nowy komputer?
Zastępstwa Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Zastępstwa Optivum na innym komputerze, należy na starym komputerze wykonać kopię zapasową bazy danych programu
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ółowoI. Interfejs użytkownika.
Ćwiczenia z użytkowania systemu MFG/PRO 1 I. Interfejs użytkownika. MFG/PRO w wersji eb2 umożliwia wybór użytkownikowi jednego z trzech dostępnych interfejsów graficznych: a) tekstowego (wybór z menu:
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ół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ółowoprzykłady problemów; realizacja dostaw części od producenta do klienta:
Przetwarzanie transakcyjne Transakcja zestaw operacji pod szczególną kontrolą transakcja to sekwencja operacji, która musi zakończyć się sukcesem w całości - w przeciwnym wypadku musi powrócić stan początkowy
Bardziej szczegółowoInstalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Arkusza obserwacji
Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Arkusza obserwacji Uruchom plik setup.exe Pojawi się okno instalacji programu MAC Diagnoza EP. Wybierz przycisk AKCEPTUJĘ. Następnie zainstaluj
Bardziej szczegółowoSYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM
Bardziej szczegółowoKopie bezpieczeństwa NAPRAWA BAZ DANYCH
Kopie bezpieczeństwa NAPRAWA BAZ DANYCH Sprawdzanie spójności bazy danych Jednym z podstawowych działań administratora jest zapewnienie bezpieczeństwa danych przez tworzenie ich kopii. Przed wykonaniem
Bardziej szczegółowoKostki OLAP i język MDX
Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,
Bardziej szczegółowoInżynieria oprogramowania. Faza implmentacji. wykład 7
Inżynieria oprogramowania Faza implmentacji wykład 7 Charakterystyka fazy implementacji Faza określenia wymagań: CO system ma robić? Faza analizy: JAK system ma działać? Faza projektowania: JAK system
Bardziej szczegółowoOptymalizacja 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ółowoIndeksowanie 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ółowoOptymalizacja bazy danych. Bazy danych 265
Optymalizacja bazy danych Bazy danych 265 266 Bazy danych Przegląd zagadnień Monitoring bazy Tuning automatyczny Podsumowanie Laboratorium NajwaŜniejszym kryterium, według którego uŝytkownicy oceniają
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ółowoE.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze
Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie
Bardziej szczegółowoPTI S1 Tabele. Tabele. Tabele
Tabele Tabele 43 1.3. Tabele Jako że bazy danych składają się z tabel, musimy nauczyć się jak je zaprojektować, a następnie stworzyć i zarządzać nimi w programie Microsoft Access 2013. Zajmiemy się również
Bardziej szczegółowoMicrosoft SQL Server Podstawy T-SQL
Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania
Bardziej szczegółowoPlan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych
Plan wykładu 2 BAZY DANYCH Wykład 5: Transakcje. Hurtownie danych. Transakcje Hurtownie danych Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Wprowadzenie Przykład Zmiany zachodzące
Bardziej szczegółowoSage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b
Sage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b 1.0 Informacje ogólne 2 2.0 Pliki instalacyjne 2 3.0 Weryfikacja bazy przed migracją 3 4.0 Instalacja Sage Migrator 6 5.0 Migracja krok
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ółowoSystemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:
Systemy baz danych 16.04.2013 1. Plan: 10. Implementacja Bazy Danych - diagram fizyczny 11. Implementacja Bazy Danych - implementacja 2. Zadania: 1. Przygotować model fizyczny dla wybranego projektu bazy
Bardziej szczegółowo1. Zarządzanie informacją w programie Access
1. Zarządzanie informacją w programie Access a. 1. Cele lekcji i. a) Wiadomości Uczeń: zna definicję bazy danych i jej zadania, zna pojęcia: rekord, pole, klucz podstawowy, zna obiekty bazy danych: tabele,
Bardziej szczegółowoTransakcje. (c) Instytut Informatyki Politechniki Poznańskiej
ransakcje Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy izolacji transakcji, blokady, zakleszczenie Definicja
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ół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ółowoLaboratorium Technologii Informacyjnych. Projektowanie Baz Danych
Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w
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ółowoSzkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2
Szkolenie autoryzowane MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2 Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Opis szkolenia Szkolenie, gdzie uczestnicy zapoznają
Bardziej szczegółowoRozdział 17. Zarządzanie współbieżnością zadania dodatkowe
Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE
Bardziej szczegółowoSAS Institute Technical Support
SAS Institute Technical Support Optymalizacja kostek krok po kroku Pracując z kostkami OLAP często nie zdajemy sobie sprawy, że można przygotować je w taki sposób, aby praca z nimi była efektywniejsza
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ółowo2. Tabele w bazach danych
1. Uczeń: Uczeń: 2. Tabele w bazach danych a. 1. Cele lekcji i. a) Wiadomości zna sposób wstawiania tabeli do bazy danych, wie, w jaki sposób rozplanować położenie pól i tabel w tworzonej bazie, zna pojęcia
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ółowoInformatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty
Informatyka Ćwiczenie 10 Bazy danych Baza danych jest zbiór informacji (zbiór danych). Strukturę bazy danych można określić w formie jak na rysunku 1. Pracownik(ID pracownika, imie, nazwisko, pensja) Klient(ID
Bardziej szczegółowoProblemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL
Problemy techniczne SQL Server Zarządzanie bazami danych na serwerze SQL Do zarządzania bazami danych na serwerze SQL służy narzędzie Microsoft SQL Server Management Studio. W poradzie tej pokażemy, jak:
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ółowoInstalacja i obsługa aplikacji MAC Diagnoza EW
Instalacja i obsługa aplikacji MAC Diagnoza EW Uruchom plik setup.exe Pojawi się okno instalacji programu MAC Diagnoza EW. Wybierz przycisk AKCEPTUJĘ. Następnie zainstaluj program, wybierając przycisk
Bardziej szczegółowoBazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000
Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy
Bardziej szczegółowoInternetowe 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ółowoMemeo Instant Backup Podręcznik Szybkiego Startu
Wprowadzenie Memeo Instant Backup pozwala w łatwy sposób chronić dane przed zagrożeniami cyfrowego świata. Aplikacja regularnie i automatycznie tworzy kopie zapasowe ważnych plików znajdujących się na
Bardziej szczegółowoSage Migrator Migracja do wersji Sage Kadry i Płace
Sage Migrator 2018.2 Migracja do wersji Sage Kadry i Płace 2018.2 1.0 Informacje ogólne 2 2.0 Pliki instalacyjne 2 3.0 Weryfikacja bazy przed migracją 4 4.0 Instalacja Sage Migrator 5 5.0 Migracja krok
Bardziej szczegółowoZałożenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.
Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21
Bardziej szczegółowoPołączenie AutoCad'a z bazą danych
Połączenie AutoCad'a z bazą danych Założenie bazy danych z pojedynczą tablicą Samochody, za pomocą aplikacji MS Access 1. Na dysku C: założyć katalog: C:\TKM\GR1x 2. Do tego katalogu przekopiować plik:
Bardziej szczegółowoProgramowanie zaawansowane w T-SQL
ITA-101 Bazy Danych Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski Moduł 8 Wersja 1.0 Spis treści Programowanie zaawansowane w T-SQL... 1 Informacje o module... 2 Przygotowanie teoretyczne...
Bardziej szczegółowoZastanawiałeś się może, dlaczego Twój współpracownik,
Kurs Makra dla początkujących Wiadomości wstępne VBI/01 Piotr Dynia, specjalista ds. MS Office Czas, który poświęcisz na naukę tego zagadnienia, to 15 20 minut. Zastanawiałeś się może, dlaczego Twój współpracownik,
Bardziej szczegółowo2017/2018 WGGiOS AGH. LibreOffice Base
1. Baza danych LibreOffice Base Jest to zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego,
Bardziej szczegółowoUNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI
UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS
Bardziej szczegółowoSQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści
SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15
Bardziej szczegółowoWPROWADZANIE ZLECEŃ POPRZEZ STRONĘ WWW.KACZMARSKI.PL INSTRUKCJA UŻYTKOWNIKA
WPROWADZANIE ZLECEŃ POPRZEZ STRONĘ WWW.KACZMARSKI.PL INSTRUKCJA UŻYTKOWNIKA WSTĘP... 2 1 UWARUNKOWANIA TECHNICZNE... 2 2 UWARUNKOWANIA FORMALNE... 2 3 LOGOWANIE DO SERWISU... 2 4 WIDOK STRONY GŁÓWNEJ...
Bardziej szczegółowo