2010-07-22 11 views
5

Szukam bazy danych SQL, która jest całkowicie oparta na koncepcji czasu, podobnie jak te, które są geocentryczne, zorientowane na relacje, itp.Czy istnieje baza danych SQL, która może wycofać się w czasie?

Moim głównym życzeniem jest to, że mogę wprowadzić zmiany do bazy danych, kiedy idę dalej, a następnie w dowolnym momencie uruchom zapytanie, które zasadniczo mówi, pokaż mi, jak baza danych spojrzała na tę datę i godzinę. Wolałbym, aby baza danych SQL zawierała tę funkcję, zamiast ponownego jej wdrażania przy użyciu tabeli dziennika i rejestrowania każdej transakcji.

jestem nadzieją, dla mrzonką?

Dzięki!

EDIT: Po kilku dalszych badań, wydaje się, że „temporal database” może być co szukam. Więc jakakolwiek informacja na temat korzystania z jednego z nich, jeśli są dostępne jakieś dobre otwarte źródła itp., Byłaby bardzo pomocna!

+0

Wierzę dla moich celów byłoby dobrze, aby zakładać, że struktura bazy danych pozostaną niezmienione. Dane jednak ulegną zmianie. –

+1

Twoje pytanie zatem wprowadza zamieszanie. Należy zdefiniować schemat bazy danych, aby obsłużyć fakt, że dane są ważne tylko przez określone okresy czasu, wstawiając rekordy określające te okresy. Sposób napisania tego pytania sprawił, że niektórzy z osób zastanawiają się, czy chcesz zapytać o metadane (jak wyglądała baza danych, zanim uruchomiłem instrukcję DELETE?). To rozwiązanie jest potrzebne do obejrzenia dobrego projektu schematu, braku specjalnego dziennika lub użycia historycznego narzędzia do odzyskiwania. –

+0

OK, dziękuję za informację. Wszelkie linki, które możesz podać, które mogą wskazać mi właściwy kierunek lub dostarczyć informacji o dobrym schemacie schematu do użycia w tym przypadku, byłyby pomocne. –

Odpowiedz

5

Oracle ma Flashback. Najbliżej mogę myśleć o SQL Server requires snapshots, bez uciekania się do przywracania z dzienników transakcji (wymaga pełnego modelu odzyskiwania).

+0

Szukam czegoś, co traktuje to bardziej jak "funkcję", a nie narzędzie do odzyskiwania. Po przeczytaniu o tymczasowych DB, który wydaje się być bilet. Możesz zasadniczo zapytać bazę danych i powiedzieć "od teraz, co sądzisz o X", ale możesz również powiedzieć "od czasu Y, co myślisz o X?", Nawet jeśli wartości byłyby (w typowy DB) zostały nadpisane do tego czasu. –

+0

@Riley Dutton: Flashback Oracle jest najbliższy mi wtedy. To, o co prosisz, to zazwyczaj domena dziennika transakcji ... –

+3

Dokładnie tak działa flashback Oracle. SELECT * FROM my_table Z TIMESTAMP "2010-01-01" (lub podobna składnia) Można nawet ustawić całą transakcję do punktu w przeszłości, a następnie wszystkie zapytania zwrócą wartości sprzed tego czasu. Aby przejść naprawdę długą drogę, potrzebujesz Oracle 11g i "Flashback Archive", który jest dość kosztowny. –

1

Możesz sprawdzić TimeDB.

Uwaga jednak, że można zrobić dokładnie to samo siebie poprzez wdrożenie ValidTimeBegin i ValidTimeEnd kolumn w tabelach i wypełniania ich odpowiednio. Narzędzie po prostu pobiera specjalne instrukcje SQL i konwertuje je na instrukcje zgodne z SQL92.

0

co szukasz oprogramowania historyka. Są to bazy danych, w których wszystkie dane są zorganizowane w czasie, tak naprawdę ich podstawowa funkcja. Jednym z zastosowań historyka oprogramowania jest włączenie funkcji odtwarzania, w której dane szeregów czasowych mogą być odtwarzane w kolejności, w jakiej zostały wprowadzone, co jest często krytyczne w branżach, które tego wymagają, takich jak aplikacje czasu rzeczywistego w finansach, gazach , narzędzia olejowe i elektryczne.

Niektóre z firm, które oferują oprogramowanie historyków, są

Wonderware FactoryTalk OSI PI

+1

Pracowałem z PI Historianem (od lat). Świetnie radzi sobie z przechwytywaniem historii, ale nie jest tak naprawdę bazą danych o temoporach. Tymczasowa baza danych umożliwia zbiorcze aktualizacje przeszłości takie, że masz dwie kopie przeszłości, jedną przed aktualizacją i jedną po aktualizacji. W związku z tym możesz wybrać aktualną "prawdę" lub "prawdę, jaka była znana w dniu X". PI zapisuje tylko (w bardzo skompresowany sposób) jedną wartość prawdy dla przeszłości, więc nie jest to w rzeczywistości czasowa baza danych, ale jest to raczej baza danych szeregów czasowych. –

Powiązane problemy