Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Bazy danych II Transakcje Piotr Górczyński 25/08/2001.

Podobne prezentacje


Prezentacja na temat: "Bazy danych II Transakcje Piotr Górczyński 25/08/2001."— Zapis prezentacji:

1 Bazy danych II Transakcje Piotr Górczyński 25/08/2001

2 Transakcyjność Transakcja umożliwia powrót do sytuacji przed jej rozpoczęciem, jeśli w jej trakcie wystąpi błąd Podstawowy mechanizm baz danych Cechy transakcji: atomowość – w ramach jednej transakcji wykonują się wszystkie operacje albo żadna spójność – transakcja nie narusza spójności danych izolacja – transakcja nie wie o działaniu innych transakcji trwałość – po zakończeniu transakcji jej skutki są trwałe 25/08/2001

3 Przykład: księgowanie
Dekret księgowy musi być zapisany na wszystkich kontach zgodnie z definicją księgowań Nie dopuszczalna jest sytuacja, że zapiszemy pieniądze np. na koncie zobowiązań, a nie zapiszemy na koncie, z którego to zobowiązanie wyniknęło 001 Wn MA 100 002 Wn MA 100 25/08/2001

4 Musimy wykonać następujące operacje:
Realizacja Musimy wykonać następujące operacje: INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '001', 100, NULL) INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '002', NULL, 100) Gdyby druga operacja się nie powiodła (na przykład została wyjęta wtyczka komputera), księgowania byłyby błędne. 25/08/2001

5 Transakcja Rozpoczynamy transakcję poleceniem BEGIN TRANSACTION
Od tej pory wszystkie operacje, które wykonamy nie będą widziane przez innych użytkowników. Operacje będą widoczne tylko dla nas, ściślej mówiąc będą widoczne w ramach naszej sesji połączenia z bazą danych. Wynik naszych operacji stanie się widoczny dla innych użytkowników po wykonaniu polecenia COMMIT TRANSACTION. 25/08/2001

6 Transakcja cd. Jeżeli w trakcie wykonywania operacji wystąpiłby błąd, to możemy wszystkie wycofać wykonując polecenie ROLLBACK TRANSACTION. Gdyby nastąpiło rozłączenie z serwerem, czyli zakończona zostałaby sesja użytkownika i nie nastąpiło wydanie polecenia COMMIT TRANSACTION, to serwer sam wykonałby polecenie ROLLBACK TRANSACTION. 25/08/2001

7 Realizacja BEGIN TRANSACTION
INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '001', 100, NULL) INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '002', NULL, 100) COMMIT TRANSACTION 25/08/2001

8 Transakcje a obsługa błędów w VB
Mechanizm obsługi błędów VB pozwala doskonale obsłużyć transakcje w bazie danych On Error Goto Obsluga ‘Rozpoczynamy transakcje cn.StartTrans ‘Wykonujemy operacje ‘na bazie danych które maja być w jednej transakcji ‘... ‘Zatwierdzamy zmiany cn.CommitTrans Exit Sub ‘Gdyby cos się nie powiodło, wycofujemy zmiany Obsluga: cn. RollbackTrans MsgBox Err.Number & ": " &_ Err.Description, vbCritical, "Błąd" 25/08/2001

9 Literatura Microsoft SQL Server Books Online 25/08/2001


Pobierz ppt "Bazy danych II Transakcje Piotr Górczyński 25/08/2001."

Podobne prezentacje


Reklamy Google