Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3461757,

Slides:



Advertisements
Podobne prezentacje
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Advertisements

Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
Programowanie sieciowe w Javie
Przetwarzanie transakcyjne
Mechanizmy pracy równoległej
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Architektura SAP R/3 Wybrane zagadnienia.
Systemy rozproszone W. Bartkiewicz Wykład 11. Transakcje
Java i bazy danych Programowanie z wykorzystaniem JDBC mgr inż. Piotr Kopniak.
Studia Podyplomowe IT w Biznesie Systemy Rozproszone
Bazy danych 10. Z łą czenia i transakcje P. F. Góra semestr letni 2004/05.
Relacyjne Bazy Danych wykład XIII
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
Projektowanie Aplikacji Komputerowych
27/09/ Języki programowania 1 Piotr Górczyński Obsługa błędów.
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej JDBC Database Access Wykład 12 mgr inż. Michał Misiak.
Wycofywanie potwierdzonych transakcji
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Synchronizacja Rozdział 5.
Zaawansowane technologie Javy Wykład 3 (21 lutego 2012) JDBC – programowanie bazodanowe (2)
Systemy operacyjne.
Wykład 2 Wojciech Pieprzyca
Wykład 3 Wojciech Pieprzyca
Wykład 4 Wojciech Pieprzyca
Artur Szmigiel Paweł Zarębski Kl. III i
Zarządzanie transakcjami
Rozproszone bazy danych
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Zarządzanie transakcjami i odtwarzanie po awarii
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Rozproszone bazy danych – 2 Zarządzanie transakcjami rozproszonymi
Zarządzanie transakcjami w SQL Server
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Bezpieczeństwo baz danych
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
Przegląd zagadnień Struktura sieci systemu Windows 2003
Terminy bazodanowe Tabela (relacja) Wiersz (krotka, rekord)
Rozproszone bazy danych (cz.2)
Transakcje zarządzane kontenerem
Prezentacja i szkolenie
SQL - Structured Query Language
dr Łukasz Murowaniecki T-109
PL/SQL – dalsza wędrówka
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
ŁUKASZ SKROBOT, Konsultant techniczny Sybase Professional services
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Konfiguracja VPN Serwera – Windows 7
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.
Hurtownie i eksploracja danych
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Jak wykonać prosty licznik odwiedzin strony internetowej?
Komendy SQL do pracy z danymi
Informatyka Stosowana – ROK II / III
Połączenie JSP z MS SQL Server 2000 Łukasz Sak Tomasz Raciborski.
Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek.
Optymalna konfiguracja Microsoft SQL Server 2014
Model warstwowy ISO-OSI
Rozpowszechnianie aplikacji KRYSTIAN KOWALCZUK TORUŃ,
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Komponentowe i rozproszone (Web)Service Oriented Architecture.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
„Relacyjne Bazy Danych (Oracle)”
SQL Server Analysis Services Action!
Technologie Informacyjne Bazy danych
Zapis prezentacji:

slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,

slajd 2© J.Rumiński Transakcje -Co to jest -ACID -Izolowanie -Transakcja składa się z jednego lub więcej poleceń, które zostały wywołane, wykonane i potwierdzone (Commit) lub odrzucone (RollBack). Transakcja stanowi więc jednostkową operację.

slajd 3© J.Rumiński Transakcje lokalne: – Dotyczą jednego serwera bazy danych – Obsługiwane przez dany serwer bazy danych Transakcje globalne (rozproszone): – Dotyczą więcej niż jednego serwera bazy danych – Serwery mogą pochodzić od różnych dostawców (heterogeniczne transakcje globalne) – Obsługiwane przez zarządcę transakcji (ang. Transaction manager): Zewnętrzny (np. dostępny w ramach serwera aplikacji) Wbudowany w jeden z serwerów biorących udział w transakcji

slajd 4© J.Rumiński Własności transakcji (ACID) Atomowość (ang. atomicity) – zbiór operacji składowych transakcji musi być wykonany w całości lub wcale Spójność (ang. consistency) – transakcja przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego Izolacja (ang. isolation) – polega na logicznym odseparowaniu od siebie transakcji współbieżnie wykonywanych w systemie (możliwe różne poziomy izolacji) Trwałość (ang. durability) – Odporność wyników zatwierdzonej transakcji na awarię systemu

slajd 5© J.Rumiński Dla zapewnienia własności atomowości transakcji rozproszonych opracowano protokół zatwierdzania dwufazowego (2-Phase Commit) 1 – Prepare: węzły (serwery) biorące udział w transakcji przygotowują się do jej zatwierdzenia (na żądanie koordynatora transakcji) 2 – Commit: gdy wszystkie węzły są gotowe do zatwierdzenia transakcji następuje jej rzeczywiste zatwierdzenie AUTOCOMMIT(FALSE): HSQL: SET AUTOCOMMIT { TRUE | FALSE } ; Switches on or off the connection's auto-commit mode. If switched on, then all statements will be committed as individual transactions. Otherwise, the statements are grouped into transactions that are terminated by either COMMIT or ROLLBACK. By default, new connections are in auto- commit mode. COMMITROLLBACK

slajd 6© J.Rumiński Zarządzanie transakcją jest szczególnie ważne gdy chcemy wykonać naraz kilka operacji. Wówczas konieczne jest ustawienie pracy w stanie bez potwierdzania (Connection.setAutoCommit(false)- domyślnie ustawiona jest praca z automatycznym potwierdzaniem), a następnie po wykonaniu wyrażeń SQL wydawany jest rozkaz potwierdzenia (Connection.commit()). Potwierdzenie jest poleceniem, które powoduje, że zmiany spowodowane wyrażeniem SQL stają się stałe. W przypadku błędu (np. spowodowanego awarią sieci komputerowej) można wysłać polecenie przerwania (RollBack) powodujące odtworzenie stanu przed wykonaniem wyrażenia. Podsumowując można powiedzieć, że efekt działania każdego polecenia SQL jest tymczasowy do momentu wysłania polecenia potwierdzenia, kiedy to zmiany stają się stałe lub do momentu wysłania polecenia przerwania, kiedy to odtwarzany jest stan przed wykonaniem polecenia.

slajd 7© J.Rumiński JDBC dodatkowo wprowadza szereg mechanizmów pracy z transakcjami jak: - obsługa paczek poleceń SQL: con.setAutoCommit(false); Statement stmt = con.createStatement(); stmt.addBatch("INSERT INTO kurs VALUES ('Jarek', 'JS', 30)"); stmt.addBatch("INSERT INTO kurs VALUES ('Andrzej', 'AM', 27)"); stmt.addBatch(""INSERT INTO kurs VALUES ('Ania', 'AM', 20)"); // wykonaj paczkę int[] updateCounts = stmt.executeBatch();

slajd 8© J.Rumiński - obsługa znaczników – savepoint: Statement stmt = conn.createStatement(); int rows = stmt.executeUpdate("INSERT INTO kurs VALUES ('Ania', 'AM', 20)"); // ustaw savepoint Savepoint svpt1 = conn.setSavepoint("SAVEPOINT_1"); rows = stmt.executeUpdate("INSERT INTO kurs VALUES ('Jarek', 'JS', 30)"); (...) //wycofaj efekt działania wszystkich wyrażeń SQL po znaczniku svpt1 conn.rollback(svpt1); (...) conn.commit();

slajd 9© J.Rumiński - obsługa transakcji współbieżnych, poprzez określenie modelu izolacji transakcji: conn.SetTransactionIsolation(level), gdzie level to: 1.Connection.TRANSACTION_NONE — sterownik nie obsługuje transakcji – nie jest zgodny z JDBC, 2. Connection.TRANSACTION_READ_UNCOMMITTED — transakcje mają dostęp do niezatwierdzonych danych (nowe lub zmienione dane, lecz nie zatwierdzone przez commit()). Możliwe są zatem zjawiska niepożądane znane jako niespójność odczytów, niepowtarzalność odczytów i odczyty fantomowe,

slajd 10© J.Rumiński 3. Connection.TRANSACTION_READ_COMMITTED — zmiany wprowadzone przez daną transakcję widoczne dopiero po wywołaniu commit(). Możliwe są wciąż zjawiska niepożądane jak niepowtarzalność odczytów i odczyty fantomowe, 4. Connection.TRANSACTION_REPEATABLE_READ — Możliwe są tylko odczyty fantomowe (np. jedna transakcja dodaje wiersze druga aktualizuje – brak aktualizacji dodawanych wierszy), 5. Connection.TRANSACTION_SERIALIZABLE — niemożliwe są żadne powyższe zjawiska niepożądane.