Дійсний час
У темпоральних базах даних, дійсний час (ДЧ; англ. Valid time, VT) — період часу, протягом якого факт у базі даних є дійсним у модельованій реальності. Станом на грудень 2011 року, ISO/IEC 9075 «Database Language SQL:2011 Part 2: SQL/Foundation» містить пункти у визначеннях таблиць для визначення «таблиць періодів часу застосунку» (тобто, таблиць дійсного часу). Дійсний час було закарбовано Річардом Снодграссом і його докторантом[1].
У таблиці бази даних дійсний час часто представляється двома додатковими колонками StartVT і EndVT. Проміжок часу закритий у своїй нижній межі та відкритий у верхній.
Дата | Що трапилося у реальному світі | Дія в базі даних | Що показує база даних |
---|---|---|---|
3 квітня 1975 | Народився Джон | Нічого | Немає особи на ім'я Джон Доу |
4 квітня 1975 | Батько Джона офіційно повідомляє про його народження | Вставлено: Person(Джон Доу, Смолвіль) | Джон Доу живе у Смолвілі |
26 серпня 1994 | Після випуску Джон переїжджає в Бігтаун, але забуває зареєструвати свою нову адресу | Нічого | |
26 грудня 1994 | Нічого | ||
27 грудня 1994 | Джон реєструє свою нову адресу | Оновлено: Person(Джон Доу, Бігтаун) | Джон Доу живе в Бігтауні |
1 квітня 2001 | Джон помирає | Видалено: Person(Джон Доу) | Немає особи на ім'я Джон Доу |
Дійсний час — час, для якого факт є істинним у реальному світі. У прикладі вище, таблиця Person отримує два додаткових поля Valid-From і Valid-To, зазначаючи, коли адреса особи була дійсною в реальному світі. 4 квітня 1975 року батько Джона гордо зареєстрував народження свого сина. Потім службовець вставляє новий запис у базу даних, заявляючи, що Джон живе у Смолвілі з 3 квітня. Зверніть увагу, що, хоча дані були вставлені 4-го, база даних заявляє, що інформація дійсна, починаючи з 3-го. Службовець ще не знає, чи переїде Джон і коли у краще місце, тому в базі даних Valid-To заповнено нескінченністю (∞). Наслідком є цей запис у базі даних:
Person(Джон Доу, Смолвіль, 3 квітня 1975, ∞).
27 грудня 1994 року Джон повідомляє про свою нову адресу в Бігтауні, де він жив, починаючи з 26 серпня 1994 року. Службовець Бігтауна не змінює адресу поточного запису Джона Доу в базі даних. Він додає новий:
Person(Джон Доу, Бігтаун, 26 серпня 1994, ∞).
Потім оригінальний запис Person (Джон Доу, Смолвіль, 3 квітня 1975, ∞) оновлюється (а не вилучається!). Оскільки зараз відомо, що Джон припинив жити у Смолвілі 26 серпня 1994 року, то запис Valid-To може бути заповнений. База даних тепер містить два записи для Джона Доу:
Person(Джон Доу, Смолвіль, 3 квітня 1975, 26 серпня 1994).
Person(Джон Доу, Бігтаун, 26 серпня 1994, ∞).
Коли Джон помирає, база даних оновлюється ще раз. Поточний запис буде оновлений, заявляючи, що Джон Доу більше не живе в Бігтауні. Жодного нового запису не додається, оскільки службовці не повідомляють про небеса як про нову адресу. База даних тепер виглядає так:
Person(Джон Доу, Смолвіль, 3 квітня 1975, 26 серпня 1994).
Person(Джон Доу, Бігтаун, 26 серпня 1994, 1 квітня 2001).
Див. також
- Час транзакції
- Час рішення
- Повільно змінювані розмірності
Примітки
- Snodgrass, Richard T.; Ahn, Ilsoo (вересень 1986). Temporal Databases. IEEE Computer 19 (9): 35—42.