Bezpłatna chmura Oracle Cloud Free Tier

Twórz, testuj i wdrażaj aplikacje na platformie Oracle Cloud — bezpłatnie.

Czym jest system OLTP?

Definicja systemu OLTP

OLTP (Online Transaction Processing) to system przetwarzania danych polegający na wykonywaniu wielu transakcji odbywających się jednocześnie, co ma miejsce na przykład w bankowości internetowej, w handlu detalicznym, podczas składania zamówień lub przy wysyłaniu wiadomości tekstowych. Transakcje te (tradycyjnie określane jako transakcje gospodarcze lub finansowe) są rejestrowane i zabezpieczane w taki sposób, aby przedsiębiorstwo mogło w każdej chwili uzyskać do nich dostęp w celach księgowych lub sprawozdawczych.

Dawniej system OLTP ograniczał się do transakcji wymiennych w świecie rzeczywistym (wymieniano na przykład pieniądze, produkty, informacje, zamówienia na usługi itp.). Z biegiem lat, zwłaszcza od momentu pojawienia się Internetu, definicja transakcji w tym kontekście uległa rozszerzeniu i obejmuje każdy rodzaj cyfrowej interakcji (zaangażowanie) z przedsiębiorstwem, która może być zainicjowana z dowolnego miejsca na świecie i za pomocą dowolnego czujnika podłączonego do sieci. Definicja ta obejmuje również wszelkiego rodzaju interakcje, działania, takie jak pobieranie plików PDF ze strony internetowej, oglądanie określonych filmów, wyzwalacze automatycznej obsługi lub komentarze na kanałach społecznościowych, których rejestrowanie może mieć kluczowe znaczenie dla przedsiębiorstwa lub posłużyć jego klientom.


Podstawowa definicja transakcji — gospodarczej lub finansowej — pozostaje podstawą większości systemów OLTP, przetwarzanie transakcji online polega zatem zazwyczaj na wstawianiu, aktualizowaniu lub usuwaniu niewielkich ilości danych w magazynie danych w celu zbierania i zabezpieczania tych transakcji oraz zarządzania nimi. Zazwyczaj aplikacja internetowa, mobilna lub korporacyjna śledzi wszystkie te interakcje (transakcje) z klientami, dostawcami lub partnerami i aktualizuje je w bazie danych OLTP. Takie dane transakcyjne przechowywane w bazie danych mają kluczowe znaczenie dla przedsiębiorstw i służą do sporządzania raportów lub prowadzenia analiz w celu podejmowania trafniejszych decyzji.

Sprawdź, jak firma Retraced, Park Archeologiczny Pompei, firma Jasci lub firma Siemens z korzyścią przeniosły swoje procesy OLTP do chmury.

Przedsiębiorstwa mają zazwyczaj do wyboru dwa systemy przetwarzania danych: OLTP i OLAP.

OLTP a OLAP

O ile nazwy te są podobne, a oba systemy służą do przetwarzania danych online, istnieje między nimi zasadnicza różnica.

System OLTP umożliwia wykonywanie w czasie rzeczywistym dużej liczby transakcji przez dużą liczbę osób, natomiast system przetwarzania analitycznego online (OLAP) polega zazwyczaj na wykonywaniu zapytań dotyczących tych transakcji (zwanych też rekordami) w bazie danych do celów analitycznych. System OLAP pomaga przedsiębiorstwu pozyskiwać informacje z danych transakcyjnych w celu podejmowania na ich podstawie trafniejszych decyzji.

W poniższej tabeli porównano systemy OLTP i OLAP.

System OLTP

System OLAP

Umożliwia wykonywanie w czasie rzeczywistym dużej liczby transakcji bazodanowych przez dużą liczbę osób

Zazwyczaj wykonuje zapytania dotyczące wielu rekordów (nawet wszystkich rekordów) w bazie danych do celów analitycznych

Wymaga błyskawicznych czasów reakcji

Nie wymaga błyskawicznych czasów reakcji (reaguje o rząd wielkości wolniej niż system OLTP)

Często modyfikuje małe ilości danych i zazwyczaj dokonuje tyle samo odczytów, co zapisów danych

Nie modyfikuje danych w żadnym stopniu, występuje tu zdecydowana przewaga operacji odczytu

Używa indeksowanych danych w celu skrócenia czasu odpowiedzi

Przechowywanie danych w formacie kolumnowym, aby zapewnić łatwy dostęp do dużej liczby rekordów

Wymaga częstego lub równoczesnego wykonywania kopii zapasowych bazy danych

Wymaga znacznie rzadszego tworzenia kopii zapasowych bazy danych niż system OLTP

Wymaga stosunkowo niewiele miejsca do przechowywania danych

Zazwyczaj ma duże wymagania dotyczące miejsca do przechowywania danych, ponieważ ma duże ilości danych historycznych

Zazwyczaj obsługuje proste zapytania dotyczące tylko jednego lub kilku rekordów

Obsługuje złożone zapytania obejmujące dużą liczbę rekordów

OLTP to zatem system modyfikacji danych online, natomiast OLAP to system przechowywania historycznych danych wielowymiarowych online, który umożliwia pobieranie dużych ilości danych do celów analitycznych. System OLAP zazwyczaj udostępnia narzędzia do analizy danych zarejestrowanych przez co najmniej jeden system OLTP.

Wymagania dotyczące systemu OLTP

Najbardziej rozpowszechnioną architekturą systemu OLTP jest architektura trójwarstwowa, która zazwyczaj obejmuje warstwę prezentacji, warstwę logiki biznesowej i warstwę magazynu danych. Warstwa prezentacji to warstwa obsługi użytkownika, gdzie dana transakcja powstaje w wyniku interakcji człowieka lub działania systemu. Warstwa logiki biznesowej obejmuje reguły, służące do weryfikacji transakcji i zapewnienia dostępności wszystkich danych wymaganych do jej realizacji. Warstwa magazynu danych służy do przechowywania transakcji i wszystkich związanych z nią danych.

Wśród głównych cech systemu OLTP można wymienić m.in.:

  • Zgodność z podejściem ACID. Systemy OLTP muszą poprawne rejestrować całą transakcję. Transakcja to najczęściej wykonanie programu, które może wymagać wykonania określonych czynności lub operacji. Transakcja może zostać zakończona, gdy wszystkie zaangażowane w nią strony potwierdzą jej wykonanie, gdy produkty/usługi zostaną dostarczone lub gdy w określonych tabelach w bazie danych zostanie dokonana określona liczba aktualizacji. Transakcja jest prawidłowo zarejestrowana tylko wtedy, gdy wszystkie związane z nią czynności zostały wykonane i zarejestrowane. Jeśli na którymkolwiek z etapów wystąpi błąd, cała transakcja musi zostać przerwana, a wszystkie etapy — usunięte z systemu. Z tego względu system OLTP musi być zgodny z podejściem ACID (niepodzielność, spójność, izolacja, trwałość), aby zapewnić dokładność danych w systemie.
    • Niepodzielność (atomicity) — gwarantuje, że wszystkie etapy transakcji zostaną pomyślnie wykonane jako grupa. Oznacza to, że jeśli na jakimkolwiek etapie transakcji wystąpi błąd, wszystkie pozostałe etapy również muszą zakończyć się błędem lub zostać wycofane. Pomyślne wykonanie transakcji nazywane jest zatwierdzeniem (commit). Niepomyślne wykonanie transakcji nazywane jest przerwaniem (abort).
    • Spójność (consistency) — to potwierdzenie, że transakcja nie narusza wewnętrznej spójności bazy danych. Oznacza to, że po wykonaniu transakcji na spójnej bazie danych baza ta będzie nadal spójna.
    • Izolacja (isolation) — oznacza, że transakcja jest wykonywana tak, jakby była niezależnie od innych transakcji. Oznacza to, że efekt wykonania zestawu transakcji jest taki sam, jak w przypadku wykonania ich pojedynczo. Takie zachowanie nazywa się szeregowością (serializability) i jest zwykle realizowane przez blokowanie określonych wierszy w tabeli.
    • Trwałość (durability) — oznacza, że wyniki transakcji nie zostaną utracone w razie awarii.
  • Współbieżność. Systemy OLTP mogą mieć bardzo wielu użytkowników, którzy będą chcieli uzyskać dostęp do tych samych danych w tym samym czasie. System musi zatem zapewnić, aby wszyscy użytkownicy, którzy chcą odczytać albo zapisać dane w systemie, mogli to zrobić jednocześnie. Mechanizmy kontroli współbieżności gwarantują, że dwóch użytkowników mających dostęp do tych samych danych w bazie w tym samym czasie nie będzie mogło ich zmienić lub że jeden użytkownik będzie musiał poczekać ze zmianą do momentu zakończenia przetwarzania danych przez drugiego użytkownika.
  • Skalowalność. System OLTP musi być zdolny do natychmiastowego skalowania w górę i w dół, aby zarządzać wolumenem transakcji w czasie rzeczywistym i wykonywać transakcje współbieżnie, niezależnie od liczby użytkowników korzystających z systemu.
  • Dostępność. System OLTP musi być zawsze dostępny i gotowy do rejestrowania transakcji. Utrata transakcji może prowadzić do utraty przychodów lub wiązać się ze skutkami prawnymi. Transakcje mogą być wykonywane z dowolnego miejsca na świecie i o dowolnej porze, system musi być zatem dostępny 24 godziny na dobę, 7 dni w tygodniu.
  • Wysoka przepustowość i krótki czas odpowiedzi. Systemy OLTP wymagają maksymalnie nanosekundowych czasów odpowiedzi, aby zapewnić produktywność użytkowników i spełniać rosnące oczekiwania klientów.
  • Wiarygodność. Systemy OLTP zazwyczaj odczytują i aktualizują bardzo konkretne, niewielkie ilości danych. W każdym momencie dane w bazie danych muszą być zatem wiarygodne dla użytkowników i aplikacji korzystających z tych danych.
  • Bezpieczeństwo. Ze względu na wrażliwość przechowywanych w tych systemach danych o transakcjach klientów, bezpieczeństwo danych ma znaczenie krytyczne. Każde naruszenie bezpieczeństwa może być dla przedsiębiorstwa bardzo kosztowne.
  • Zdolność do odzyskiwania danych. Systemy OLTP muszą być zdolne do odzyskiwania danych w przypadku awarii sprzętu lub oprogramowania.

Bazy danych obsługujące procesy OLTP

Relacyjne bazy danych powstały specjalnie z myślą o obsłudze transakcji. Z tego względu zawierają wszystkie podstawowe elementy wymagane do przechowywania i przetwarzania dużych ilości transakcji, a jednocześnie są stale wzbogacane o nowe cechy i funkcje służące uzyskiwaniu jeszcze większych korzyści z dostępnych danych transakcyjnych. Relacyjne bazy danych są od podstaw projektowane pod kątem zapewnienia jak największej dostępności i jak największej wydajności. Umożliwiają współbieżne przetwarzanie danych i są zgodne z podejściem ACID, dzięki czemu zawarte w nich dane są dokładne, zawsze dostępne i łatwe do znalezienia. Po określeniu relacji między danymi dane są zapisywane w tabelach, aby mogła z nich korzystać dowolna aplikacja. W tyn sposób stają się wiarygodnym źródłem danych.

Ewolucja baz danych obsługujących przetwarzanie transakcji

W miarę wzrostu złożoności i liczby źródeł pochodzenia transakcji tradycyjne relacyjne bazy danych w coraz mniejszym stopniu spełniały wymogi współczesnych procesów transakcyjnych. Konieczne stało się zatem opracowanie nowych rozwiązań, które byłyby zdolne do obsługi współczesnych transakcji, heterogenicznych danych i działań realizowanych na skalę globalną, a przede wszystkim do obsługi mieszanych procesów transakcyjnych. Relacyjne bazy danych zostały zatem przekształcone w multimodalne bazy danych, które przechowują i przetwarzają nie tylko dane relacyjne, ale także wszystkie inne typy danych, w tym dane w formatach xml, html, JSON, Apache Avro i Parquet, oraz dokumenty w ich natywnej postaci, bez konieczności dokonywania wielu transformacji. Relacyjne bazy danych musiały być ponadto wyposażone w dodatkowe funkcje, takie jak klastrowanie i fragmentowanie, aby mogły być rozproszone globalnie i skalowane w nieskończoność w celu przechowywania i przetwarzania coraz większych ilości danych oraz wykorzystania tańszej pamięci masowej dostępnej w chmurze. Dzięki innym funkcjom, takim jak pamięć wewnętrzna, zaawansowana analityka, wizualizacja i kolejkowanie zdarzeń transakcyjnych, bazy te mogą obecnie obsługiwać wiele procesów, w tym analizować dane transakcyjne, przetwarzać dane strumieniowe (Internet Rzeczy) oraz wykonywać analizy przestrzenne i wykresowe.

Nowoczesne relacyjne bazy danych tworzone w chmurze automatyzują wiele operacyjnych i zarządczych aspektów bazy danych, dzięki czemu użytkownicy mogą łatwiej je przydzielać i z nich korzystać. Udostępniają również funkcje automatycznego przydzielania zasobów, bezpieczeństwa, odzyskiwania po awarii, tworzenia kopii zapasowych i skalowania, dzięki czemu administratorzy i pracownicy działu IT mogą przeznaczać mniej czasu na ich utrzymanie. Ponadto mają wbudowane mechanizmy sztucznej inteligencji, aby automatycznie dostrajać i indeksować dane, dzięki czemu wydajność obsługi zapytań przesyłanych do bazy danych jest stała, niezależnie od ilości danych, liczby współbieżnych użytkowników czy złożoności zapytań. Chmurowe bazy danych zawierają również funkcje samoobsługowe i interfejsy API REST, dzięki którym programiści i analitycy mogą łatwo używać i uzyskiwać dostęp do danych. Upraszcza to rozwój aplikacji, zapewniając odpowiednią elastyczność i ułatwiając wprowadzanie w nich nowych funkcji i dostosowań. Upraszcza także procesy analizy danych.

Wybór właściwej bazy danych dla procesów OLTP

Dział IT stara się dotrzymać tempa działalności biznesowej, przy wyborze operacyjnej bazy danych należy zatem uwzględnić zarówno bieżące potrzeby, jak i długoterminowe wymagania dotyczące danych. Do przechowywania danych transakcyjnych, prowadzenia systemów ewidencji lub zarządzania treścią potrzebna jest baza danych zapewniająca dużą współbieżność, wysoką przepustowość, małe opóźnienia i inne funkcje o znaczeniu krytycznym, takie jak wysoka dostępność, ochrona danych i odzyskiwanie danych po awarii. Najprawdopodobniej liczba przetwarzanych procesów będzie się zmieniać w ciągu dnia, tygodnia lub roku, warto zatem zadbać o to, aby baza danych mogła być automatycznie skalowana, co pozwoli zaoszczędzić sporo wydatków. Należy również zdecydować, czy używać bazy specjalistycznej czy bazy ogólnego przeznaczenia. Jeśli wymagania dotyczą obsługi konkretnego typu danych, może się sprawdzić baza danych zbudowana specjalnie w tym celu, należy się jednak upewnić, że nie odbywa się to kosztem innych potrzebnych funkcji. Dodanie tych funkcji na późniejszym etapie w warstwie aplikacji byłoby kosztowne i zasobochłonne. Jeśli potrzeby w zakresie danych będą rosły i konieczna będzie rozbudowa funkcjonalności aplikacji, dodawanie kolejnych jednofunkcyjnych lub dopasowanych do potrzeb baz danych spowoduje jedynie powstanie silosów danych i pogłębi problemy związane z zarządzaniem danymi. Należy również wziąć pod uwagę inne funkcje, które mogą okazać się niezbędne w przypadku konkretnych procesów, na przykład funkcje pozyskiwania danych, optymalizacji mocy obliczeniowej i limitowania rozmiaru danych.

Warto zatem wybrać przyszłościową usługę bazodanową w chmurze z funkcjami samoobsługowymi, która zautomatyzuje zarządzanie danymi, aby użytkownicy danych — programiści, analitycy, inżynierowie danych, badacze danych i administratorzy baz danych — mogli lepiej korzystać z danych i szybciej rozwijać aplikacje.

Dowiedz się więcej o Oracle Autonomous Transaction Processing Database — usłudze bazodanowej OLTP w chmurze. Wypróbuj bezpłatnie.