Temporalna baza danych - Politechnika Wrocławska
Transkrypt
Temporalna baza danych - Politechnika Wrocławska
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 si-1; si╞ G¯ p znaczy, że p było prawdziwe w każdym przeszłym stanie (momencie) i w si; si╞ F¯ p znaczy, że p było prawdziwe w pewnym przeszłym stanie (momencie), lub w si. 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 Rj(x), w których relacja danych R zawiera tę samą wartość dla danej x? (i,j: ij) (F¯(Ri(x)=a X¯F¯ Rj(x)=b) a=b) ? Ri(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