| Termin | Definicja |
|---|---|
| Baza danych z obsługą czasu | Baza danych z obsługą czasu to baza wykorzystująca tabele czasowe, automatycznie śledzące historię zmian rekordów. Modelowanie historii zmian w danychBaza danych z obsługą czasu przechowuje informacje nie tylko o bieżącym stanie rekordu, lecz także o tym, jak ten stan zmieniał się w kolejnych chwilach. W klasycznej tabeli aktualizacja wiersza często zastępuje wcześniejszą wartość. W tabeli czasowej poprzednia wersja może pozostać dostępna, dzięki czemu da się odtworzyć dane obowiązujące przed zmianą. Mechanizm ten jest przydatny wszędzie tam, gdzie sama aktualna wartość nie wystarcza do wyjaśnienia przebiegu zdarzeń. Najczęściej stosuje się dwa pojęcia czasu. Czas obowiązywania określa przedział, w którym informacja była prawdziwa z punktu widzenia opisywanego procesu. Czas systemowy wskazuje natomiast, kiedy dana wersja została zapisana lub zmieniona w bazie. Te wartości nie muszą być takie same. Na przykład zmiana cennika mogła obowiązywać od poniedziałku, ale zostać wprowadzona do systemu dopiero w piątek. Rozdzielenie tych perspektyw pozwala analizować zarówno stan biznesowy, jak i moment zarejestrowania informacji. Przedziały czasowe i wersjonowanie rekordówW tabeli czasowej okres obowiązywania rekordu opisuje się zwykle za pomocą dwóch znaczników czasu: początku i końca przedziału. Wiersz może obejmować zakres od określonego momentu do chwili kolejnej zmiany. Dla aktualnej wersji często stosuje się wartość oznaczającą brak ustalonego końca, na przykład specjalny znacznik maksymalnego czasu albo osobny sposób interpretacji otwartego przedziału. Ważne jest zachowanie spójności: wersje tego samego obiektu nie powinny nakładać się na siebie, jeżeli model zakłada jedną obowiązującą wartość w danym momencie. Dodanie nowej wersji nie powinno polegać wyłącznie na nadpisaniu istniejącego wiersza. Typowy przebieg obejmuje zamknięcie dotychczasowego przedziału, zapisanie jego końca, a następnie utworzenie nowego wiersza z nową wartością i otwartym okresem obowiązywania. Operacje te powinny być wykonywane w jednej transakcji. W przeciwnym razie awaria pomiędzy etapami może pozostawić lukę w historii albo dwie równoległe wersje opisujące ten sam obiekt w tym samym czasie. Zapytania o stan danych w wybranym momencieNajważniejszą funkcją tabel czasowych jest możliwość zadania pytania o stan danych z określonej chwili. Zapytanie tego rodzaju filtruje rekordy według przedziału czasu i zwraca wersję, która obowiązywała w podanym momencie. Dzięki temu można odtworzyć wcześniejszą konfigurację, porównać wartości przed i po zmianie albo ustalić, kiedy pojawiła się konkretna różnica. W praktyce trzeba jednoznacznie określić, czy granice przedziałów są domknięte, otwarte czy mieszane, ponieważ wpływa to na wynik dla zmian występujących dokładnie na granicy czasu. Analiza historii wymaga także rozróżnienia braku rekordu od braku zmiany. Jeżeli dla wybranego momentu nie ma pasującej wersji, może to oznaczać, że obiekt jeszcze nie istniał, został usunięty albo historia zawiera lukę. Usunięcie rekordu w modelu czasowym często nie oznacza fizycznego skasowania wszystkich danych. Zamiast tego zamyka się jego okres obowiązywania, zachowując wcześniejsze wersje. Sposób obsługi usunięć powinien być ustalony w modelu, ponieważ wpływa na raporty, odtwarzanie stanu i interpretację zapytań. Kontrola spójności i diagnostyka działaniaProblemy z bazą obsługującą czas mogą wynikać nie z uszkodzenia sprzętu, lecz z błędnego modelu przedziałów, niepoprawnej strefy czasowej albo operacji wykonywanych poza transakcją. Warto sprawdzić, czy zegar systemu, aplikacja i baza używają tego samego sposobu interpretacji czasu, zwłaszcza gdy dane są zapisywane z informacją o strefie czasowej. Należy również zweryfikować precyzję znaczników czasu. Jeżeli baza zapisuje czas z mniejszą dokładnością niż aplikacja, dwa szybkie zdarzenia mogą otrzymać identyczny znacznik, co utrudni ustalenie ich kolejności. Diagnostyka powinna obejmować zapytania wykrywające nakładające się okresy, przerwy pomiędzy kolejnymi wersjami oraz rekordy z końcem wcześniejszym niż początek. Trzeba też ocenić indeksy używane przy wyszukiwaniu po identyfikatorze obiektu i przedziale czasu, ponieważ historia może rosnąć szybciej niż tabela przechowująca wyłącznie bieżący stan. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, gdy problemy z działaniem środowiska komputerowego wymagają sprawdzenia sprzętu, nośnika danych lub konfiguracji systemu. |