Aplikacja korzystająca z plików DBF
Zakładając, że korzystamy ze sprawnego serwera plików, w tradycyjnej architekturze najczęściej występują następujące uszkodzenia danych:
1. Wpisanie bezsensownych informacji (losowego ciągu bajtów) do zbioru z danymi lub indeksu. Powodem może być uszkodzona stacja robocza, karta sieciowa, włączenie lub wyłączenie stacji w trakcie wysyłania wiadomości.
2. Zaburzenie zgodności zbiorów DBF ze stowarzyszonymi indeksami. Powód: zerwanie łączności między aplikacją a serwerem plików po zmodyfikowaniu zbioru DBF a przed uaktualnieniem wszystkich indeksów. Przerwanie łączności wynika zwykle z uszkodzenia sieci, odłączenia stacji roboczej lub serwera od sieci, uszkodzenia lub wyłączenia stacji.
3. Zaburzenie spójności logicznej danych. Zakładając że program napisany jest poprawnie, zaburzenie spójności logicznej może nastąpić w wyniku gwałtownego przerwania wykonywania programu, co uniemożliwia zakończenie logicznie powiązanych operacji (fragmentu kodu realizującego zależne od siebie zmiany w danych). Gwałtowne przerwanie wykonania programu jest zwykle następstwem zerwania łączności pomiędzy aplikacją a serwerem plików (przyczyny jak w punkcie 2).
Przy pracy terminalowej uszkodzenia typu 1. nie mogą wystąpić, gdyż aplikacja nie jest wykonywana na fizycznej stacji roboczej lecz w oknie DOS systemu Windows NT. Ewentualne problemy ze stacją roboczą spowodują rozłączenie terminala lub, w najgorszym przypadku, zniekształcenie obrazu wyświetlanego na terminalu.
Oprogramowanie Terminal zostało opracowane w taki sposób, że wykonanie aplikacji nie może zostać przerwane podczas uaktualniania indeksów, co eliminuje możliwość zaburzenia spójności indeksów i baz DBF, nawet w przypadku nagłego rozłączenia terminala. Ponieważ przy pracy w architekturze terminalowej dane (DBF, NTX) i aplikacja znajdują się na tym samym komputerze, przerwanie łączności między aplikacją i danymi jest praktycznie niemożliwe przy sprawnym serwerze. Pozostaje kwestia łączności pomiędzy aplikacją i terminalem. Domyślnie, aplikacja działająca w trybie terminalowym kończy działanie jeżeli wykryje, że połączenie z terminalem zostało przerwane. Może to spowodować zaburzenie spójności logicznej danych. Aby zapobiec takiej możliwości wprowadzono mechanizm transakcji terminalowej.
Korzystając z dodatkowych funkcji pakietu Terminal programista może oznaczyć w programie xBase fragmenty kodu które nie mogą być przerwane (Listing 1). Jeżeli łączność pomiędzy terminalem a aplikacją zostanie zerwana w momencie, gdy aplikacja jest w trybie transakcji terminalowej, fakt zerwania łączności zostanie zignorowany aż do końca transakcji. Transakcja terminalowa gwarantuje pełne wykonanie oznaczonego fragmentu aplikacji. Prawidłowe wprowadzenie do aplikacji transakcji terminalowych eliminuje możliwość wystąpienia zaburzenia spójności logicznej danych. Pracując w architekturze terminalowej i korzystając z transakcji terminalowych można osiągnąć stabilność systemu i poziom bezpieczeństwa danych całkowicie niedostępny w tradycyjnych instalacjach z serwerem plików.
Transmisja pomiędzy terminalem a aplikacją jest szyfrowana aby zachować poufność przesyłanych informacji.
Aplikacja korzystająca z serwera SQL za pośrednictwem Mediatora
Tutaj, poza transakcjami terminalowymi mamy dostęp do transakcji oraz do wszystkich mechanizmów bezpieczeństwa SQL'owej bazy danych. Poziom zabezpieczeń nie ustępuje tu w niczym aplikacjom pisanym w nowoczesnych narzędziach SQL.