Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałBlanka Jesiołowski Został zmieniony 11 lat temu
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.