Modelowanie i Analiza Systemów Informatycznych Logika Temporalna i Automaty Czasowe (10) Logika temporalna i temporalne bazy danych Paweł Głuchowski, Politechnika Wrocławska wersja 2.2
Treść wykładu Temporalna baza danych Co to jest temporalna baza danych? Czas w temporalnych bazach danych Główne rodzaje 2
Treść wykładu Zastosowanie temporalnych baz danych Do czego można je zastosować? W czym są one przydatne? 3
Treść wykładu Logika temporalna w SZBD System Zarządzania Bazą Danych (SZBD) Przykłady reguł zarządzania w LTL Przykłady reguł zarządzania w CTL Wersja LTL dla przeszłości 4
Treść wykładu Logika temporalna w języku zapytań Przykład zapytania 5
Temporalna baza danych Co to jest temporalna baza danych? Czas w temporalnych bazach danych Główne rodzaje 6
Temporalna baza danych Co to jest temporalna baza danych? Baza danych, która zawiera informacje o czasie ważności danych i niekiedy o czasie transferu danych. Temporalna baza danych: zwykle przechowuje dane jak nietemporalna baza danych; przechowuje czas ważności dla danych (valid time); może też przechowywać znaczniki czasu dla każdej akcji wykonanej w bazie (np. dodanie, aktualizacja lub usunięcie danych) aby pamiętać kiedy ona miała miejsce (transaction time); może umożliwiać dostęp do danych, używając temporalnego języka w zapytaniach. 7
Temporalna baza danych Czas w temporalnych bazach danych dyskretny: czas N (liczby naturalne) gęsty: czas Q (liczby wymierne) ciągły: czas R (liczby rzeczywiste) Zwykle używa się logiki temporalnej dla języka zapytań i dla systemu zarządzania bazą danych (SZBD). 8
Temporalna baza danych Główne rodzaje historyczna temporalna baza danych: przechowuje tylko czas ważności, nie przechowuje znaczników czasu, bitemporalna baza danych: przechowuje czas ważności i znaczniki czasu. 9
Zastosowanie temporalnych baz danych Do czego można je zastosować? W czym są one przydatne? 10
Zastosowanie temporalnych baz danych Do czego można je zastosować? Przykładowo: zarządzanie archiwami biurowymi lub biznesowymi; zarządzanie danymi finansowymi, medycznymi, itp.; zarządzanie systemami rezerwacji biletów, pokoi hotelowych, itp.; zarządzanie systemem komputerowym. W czym są one przydatne? aby pamiętać wszystkie akcje wykonane w bazie danych, aby pamiętać wszystkie zmiany dokonane na danych, aby sprawdzać właściwości czasowe pewnych danych (np. ważność), itp. 11
Logika temporalna w SZBD System Zarządzania Bazą Danych (SZBD) Przykłady reguł zarządzania w LTL Przykłady reguł zarządzania w CTL Wersja LTL dla przeszłości 12
Logika temporalna w SZBD System Zarządzania Bazą Danych (SZBD) SZBD kontroluje i wykonuje wszystkie akcje na bazie danych. Przykłady reguł zarządzania w LTL Pewna temporalna baza plików przechowuje pliki z czasem ważności, tj. wszystkie pliki są ważne tylko przez pewien czas. Pliki będą dostępne (ważne) dla użytkownika U tylko zanim ten czas minie: G (U.chce(plik) plik.ważny U.maDostęp(plik)) F (U.maDostęp(plik) plik.ważny) 13
Logika temporalna w SZBD Przykłady reguł zarządzania w CTL Pewna temporalna baza danych przechowuje dane o klientach sklepu i prezentuje je w następujący sposób: jeśli użytkownik U jest klientem, to dla każdego produktu P tylko aktualne ceny są dostępne: EF (U==klient P.cena.dostępDla(U) P.cena(aktualna)) jeśli użytkownik U jest kierownikiem, to dla każdego produktu P cała historia zmian cen jest dostępna: AG (U==kierownik P.cena.dostępDla(U)) 14
Logika temporalna w SZBD Wersja LTL dla przeszłości Temporalna baza danych może używać logiki temporalnej dla czasu przeszłego, np. LTL. Aby określić przyszłość w LTL wprowadziliśmy operatory temporalne: U, X, G i F. Aby określić przeszłość w LTL wprowadzamy operatory temporalne: U, X, G i F : si X p znaczy, że p było prawdziwe w poprzednim stanie s i-1 ; si G p znaczy, że p było prawdziwe w każdym przeszłym stanie (momencie) i w s i ; si F p znaczy, że p było prawdziwe w pewnym przeszłym stanie (momencie), lub w s i. 15
Logika temporalna w języku zapytań Przykład zapytania 16
Logika temporalna w języku zapytań Przykład zapytania Zapytanie o dowolną przeszłą migawkę (snapshot) bazy danych: Czy istnieją takie dwie migawki Ri (x) i R j (x), w których relacja danych R zawiera tę samą wartość dla danej x? ( i,j: i j) (F (R i (x)=a X F R j (x)=b) a=b)? R i (x) zwraca wartość x dla i-tej migawki. 17
Koniec Literatura: J. Chomicki, D. Toman Temporal Logic in Database Query Languages E.A. Emerson Temporal and modal logic, 1995 C.S.Jensen et al. A Glossary of Temporal Database Concept, 1992 J. Patel Temporal Database System, 2003 O. Klosov Metoda wyszukiwania danych temporalnych, 1999