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: ij) (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

Podobne dokumenty