blob: 7d72ed5cd101fc30b2ac2ee995503d7583196b69 (
plain) (
tree)
|
|
@startuml temporal-queries
!theme plain
title Temporal Queries with Immutable Database States
database "DB @ t0" as DB0
note bottom of DB0
hash = abc123...
timestamp = 2024-01-01 10:00
relations:
employee => hash_e0
end note
database "DB @ t1" as DB1
note bottom of DB1
hash = def456...
timestamp = 2024-01-01 11:00
relations:
employee => hash_e1
end note
database "DB @ t2" as DB2
note bottom of DB2
hash = ghi789...
timestamp = 2024-01-01 12:00
relations:
employee => hash_e2
end note
database "Current DB" as DB3
note bottom of DB3
hash = jkl012...
timestamp = 2024-01-01 13:00
relations:
employee => hash_e3
end note
DB0 -right-> DB1: insert tuple
DB1 -right-> DB2: update salary
DB2 -right-> DB3: delete tuple
note top of DB0
**Time Travel Queries:**
query_at_time(2024-01-01 10:00)
→ returns DB0
query_at_time(2024-01-01 12:00)
→ returns DB2
diff(DB0, DB3)
→ (inserted: [...], deleted: [...], modified: [...])
history(employee, id: 1)
→ [(t0, state0), (t1, state1), (t2, state2)]
end note
@enduml
|