Grupowanie wielu operacji w ramach transakcji

Ukończone

Jeśli zmiana na jeden element danych musi spowodować zmianę w innym elemecie danych, aplikacja musi zgrupować szereg aktualizacji danych. Za pomocą transakcji można grupować te aktualizacje. W transakcji, jeśli jedno zdarzenie w serii aktualizacji zakończy się niepowodzeniem, cała seria może zostać wycofana lub cofnięta.

Przykładem jest sprzedawca internetowy, który używa transakcji do składania zamówienia, weryfikowania płatności i aktualizowania spisu produktów. Grupowanie powiązanych zdarzeń gwarantuje, że nie zmniejszysz poziomów zapasów, dopóki nie otrzymasz zatwierdzonej formy płatności.

Następnie dowiesz się więcej na temat transakcji i tego, czy są one wymagane dla Twoich danych.

Co to jest transakcja?

Transakcja to logiczna grupa operacji bazy danych, które są uruchamiane razem.

Oto pytanie, które należy zadać sobie, czy musisz użyć transakcji w aplikacji: Czy zmiana jednego elementu danych w zestawie danych wpłynie na inny fragment danych? Jeśli odpowiedź brzmi tak, potrzebna będzie obsługa transakcji w usłudze bazy danych.

Transakcje są często definiowane przez zestaw czterech wymagań wywołuje gwarancje ACID. ACID to skrót od niepodzielności, spójności, izolacji i trwałości.

  • Niepodzielność oznacza, że transakcja musi być uruchamiana dokładnie raz i musi być niepodzielna. Cała praca jest wykonywana lub żadna z nich. Operacje w transakcji zazwyczaj mają wspólną intencję i są zależne od siebie nawzajem.
  • Spójność gwarantuje, że dane są spójne zarówno przed, jak i po transakcji.
  • Izolacja zapewnia, że każda transakcja nie ma wpływu na inne transakcje.
  • Trwałość oznacza, że zmiany wprowadzone w wyniku transakcji są trwale zapisywane w systemie. System zapisuje zatwierdzone dane, aby nawet w przypadku awarii i ponownego uruchomienia systemu dane są dostępne w prawidłowym stanie.

Gdy baza danych oferuje gwarancje ACID, te zasady są konsekwentnie stosowane do każdej transakcji.

OLTP a OLAP

Transakcyjne bazy danych są często nazywane systemami przetwarzania transakcji online (OLTP ). Systemy OLTP często obsługują wielu użytkowników, mają krótki czas odpowiedzi i obsługują duże ilości danych. Są one również wysoce dostępne, co oznacza, że mają minimalny przestój. Systemy OLTP zwykle obsługują małe transakcje lub stosunkowo proste transakcje.

Przykładem usługi platformy Azure obsługującej olTP jest usługa Azure SQL Database.

Systemy przetwarzania analitycznego online (OLAP) często obsługują mniej użytkowników, mają dłuższy czas odpowiedzi, mogą być mniej dostępne i zwykle obsługują duże transakcje lub złożone transakcje.

Przykładem usługi platformy Azure obsługującej OLAP jest usługa Azure Analysis Services.

Terminy OLTP i OLAP nie są używane tak często, jak kiedyś, ale ich zrozumienie ułatwia kategoryzację potrzeb Twojej aplikacji.

Transakcje: ocena typów danych

Zapewnienie, że dane są w prawidłowym stanie, nie zawsze jest łatwym zadaniem. Transakcje mogą pomóc przez wymuszenie wymagań integralności danych. Jeśli dane są korzystne z zasad ACID, wybierz rozwiązanie magazynu, które obsługuje transakcje.

Przyjrzyjmy się każdemu zestawowi danych w scenariuszu handlu detalicznego online i określimy potrzebę transakcji.

Dane katalogu produktów

Dane katalogu produktów powinny być przechowywane w transakcyjnej bazie danych. Gdy użytkownik składa zamówienie, a płatność zostanie zweryfikowana, należy zaktualizować spis przedmiotów. Podobnie, jeśli karta kredytowa klienta zostanie odrzucona, zamówienie powinno zostać wycofane, a zapasy nie powinny być aktualizowane. Te relacje wymagają transakcji.

Zdjęcia i wideo

Zdjęcia i wideo w katalogu produktów nie wymagają obsługi transakcji. Te pliki są zmieniane tylko w przypadku wprowadzenia aktualizacji lub dodania nowych plików. Mimo że istnieje relacja między obrazem a rzeczywistymi danymi produktu, nie jest to transakcyjne z natury.

Dane biznesowe

Ponieważ dane biznesowe są historyczne i niezmienne, obsługa transakcyjna nie jest wymagana. Analitycy biznesowi, którzy pracują z danymi, mają również unikatowe potrzeby dotyczące zapytań. Często pracują z agregacjami w swoich zapytaniach, dzięki czemu mogą pracować z sumami innych mniejszych punktów danych.

Sprawdź swoją wiedzę

1.

Jakiego typu systemy transakcyjnej bazy danych będą działać najlepiej dla danych produktu?

2.

Załóżmy, że operacje sprzedawcy detalicznego w celu zaktualizowania zapasów i przetwarzania płatności znajdują się w tej samej transakcji. Użytkownik próbuje zastosować środki sklepu w wysokości 30 USD na zamówienie z laptopa i przesyła dokładnie to samo zamówienie przy użyciu kredytu sklepowego (za pełną kwotę) z telefonu. Odbierane są dwa identyczne zamówienia. Baza danych w tle jest bazą danych zgodną ze standardem ACID. Co się stanie?