ćw 10 11 Praca z danymi doc


0x01 graphic

PRACA Z DANYMI

Z WYKORZYSTANIEM NARZĘDZIA

MS SQL SERVER

Warszawa 2007

Spis treści

1. Praca z danymi - Transakcje

  1. Praca z danymi - Transakcje

    1. Wprowadzenie

Transakcja jest sekwencją operacji wykonywanych jako jedna logiczna jednostka pracy. Cechą charakterystyczną transakcji jest, że wszystkie polecenia, wchodzące w skład transakcji, muszą być wykonane poprawnie lub w przeciwnym przypadku transakcja nie jest realizowana. Transakcje są jednym z kluczowych elementów zapewniających spójność i integralność systemów bazodanowych.

Każda z transakcji tworzona jest z zachowaniem pewnych standardowych własności:

Aby zagwarantować spójność bazy i mieć pewność, że wykonywane operacje zakończą się sukcesem lub porażką, stosowany jest mechanizm blokowania. Blokady są gwarancją tego, że podczas operowania na danych przez jedną transakcję dane nie zostaną zmienione bądź usunięte.

Rozpoczęcie transakcji na SQL Server 2005 można dokonać na trzy sposoby:

Zakończenie transakcji odbywa się za pomocą poleceń COMMIT lub ROLLBACK. Polecenia COMMIT używamy, gdy wszystkie operacje od rozpoczęcia transakcji powiodły się. W takiej sytuacji możemy zatwierdzić wszystkie zmiany, jakie zostały wprowadzone. Polecenie to dodatkowo zdejmuje wszystkie blokady z tabel, które zostały zablokowane na czas trwania transakcji.

Komenda ROLLBACK odwołuje transakcję. Polecenie to odwołuje wszystkie modyfikacje jakie zostały dokonane podczas trwania transakcji poprzez przywrócenie stanu danych sprzed transakcji. Polecenie to, podobnie jak COMMIT, również zdejmuje wszystkie blokady z danych, jakie zostały założone na czas trwania transakcji.

    1. Zadanie 1

Zadanie prezentujące realizację transakcji. Transakcja będzie obejmowała wprowadzanie nowych rekordów do tabeli DZIECI.

    1. Wykonanie zadania 1

0x01 graphic

Rys. 1 Tworzenie nowego skryptu SQL'owego

0x08 graphic
0x01 graphic

Rys. 2 Sprawdzenie liczby rekordów w tabeli DZIECI

0x08 graphic
0x01 graphic

Rys. 3 Wprowadzanie nowych rekordów do tabeli DZIECI

0x01 graphic

Rys. 4 Nowe rekordy w tabeli DZIECI

0x08 graphic
0x01 graphic

Rys. 5 Wycofywanie transakcji

0x08 graphic
0x01 graphic

Rys. 6 Komunikat zakładki Messages

0x08 graphic
0x01 graphic

Rys. 7 Zatwierdzenie transakcji

0x01 graphic

Rys. 8 Widok tabeli DZIECI po zatwierdzeniu transakcji

Brak kolejności w numeracji rekordów (425 i 426 zamiast 421 i 422) potwierdza wcześniejszą operację wycofania transakcji.

    1. Zadanie 2

Zadanie zaprezentuje funkcję kontrolną transakcji. Transakcja będzie realizowała kilka operacji aktualizacji rekordów w tabeli DZIECI, ale zatwierdzenie transakcji będzie wykonywane tylko wtedy, kiedy wszystkie aktualizacje składowe będą poprawne.

    1. Wykonanie zadania 2

0x01 graphic

Rys. 9 Aktualizacja rekordów w tabeli DZIECI

Dziecku o idDziecka = 1 przypisano numer idPrac = 1, natomiast dziecku o idDziecka = 2 próbowano przypisać idPrac=-5. Komunikat w zakładce Messages informuje, że pierwsza aktualizacja powiodła się (została wykonana), natomiast druga nie została zrealizowana z powodu konfliktu numeru ujemnego z definicją pola idPrac (tylko liczby całkowite dodatnie).

0x01 graphic

Rys. 10 Blokowanie błędnej transakcji

Blok TRY-CATCH działa w ten sposób, że instrukcje bloku CATCH są wykonywane tylko wtedy, kiedy w bloku TRY wystąpi błąd. Proszę sprawdzić w danych tabeli DZIECI, czy zostało zmienione idPrac przy idDziecka = 1 lub idDziecka = 2. Zmiana taka nie nastąpiła!

Na tym właśnie polega blokowanie błędnych transakcji, które składają się z szeregu różnych elementów, a każdy element ma znaczenie krytyczne - nie może zostać wykonany niepoprawnie. Klasycznym przykładem takiej transakcji jest wypłata pieniędzy z bankomatu, na którą składają się takie operacje jak: identyfikacja klienta, sprawdzenie stanu konta, wypłata pieniędzy, aktualizacja stanu konta. Jeżeli którakolwiek z tych operacji nie powiedzie się to cała transakcja musi zostać wycofana!

0x01 graphic

Rys. 11 Realizacja poprawnej transakcji

0x01 graphic

Rys. 12 Stan tabeli DZIECI po wykonaniu transakcji

  1. Praca z danymi - Widoki i skrypty

    1. Wprowadzenie

Po utworzeniu i zapełnieniu bazy danymi bardzo ważnym procesem, obok bieżącego uaktualniania zasobów danych, jest możliwość ich efektywnego wykorzystywania w celu pozyskania niezbędnych informacji. To jest główny cel gromadzenia i utrzymywania zasobów danych w organizacji. Realizację tego celu zapewniają dwa narzędzia: widoki (Views) oraz zapytania skryptowe (Queries). Widoki są zapisywane w strukturze bazy danych i mogą być wykorzystywane jako źródła innych widoków. Skrypty to programy tworzone w języku sql, które wykonują określone operacje na bazie danych (tabelach i widokach).

    1. Zadanie 1

Należy przygotować widok przechowujący listę zatrudnionych w firmie pracowników. Lista powinna zawierać następujące elementy:

Wyniki powinny być posortowane według Miejsca zatrudnienia, Stanowiska (malejąco) oraz Nazwiska pracownika.

    1. Wykonanie zadania 1

0x08 graphic
0x01 graphic

Rys. 13 Tworzenie nowego widoku

0x01 graphic

Rys. 14 Dodawanie tabel do definicji widoku

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x01 graphic

Rys. 15 Pasek narzędziowy View Designer

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x01 graphic

Rys. 16 Struktura widoku

0x01 graphic

0x08 graphic
0x08 graphic
Rys. 17 Wprowadzanie pola z tabeli

0x01 graphic

Rys. 18 Łączenie pól tekstowych

0x08 graphic
0x08 graphic
0x08 graphic
0x01 graphic

Rys. 19 Wyświetlanie wyniku działania widoku

0x01 graphic

Rys. 20 Zmiana tytułu pola widoku

Prawidłową strukturę formuł dla tych pól prezentuje Rys. 21.

0x01 graphic

Rys. 21 Obliczenie Wieku i Stażu Pracy

0x01 graphic

Rys. 22 Sortowanie wyników