Физическая схема данных ======================== .. important:: Физическая схема данных представляет собой схему данных, используемую для организации размещения записей в хранилище данных Для обеспечения возможности выборки актуального состояния объектов на дату и обеспечения высокой производительности в Системе используется подход к хранению данных, который предусматривает ведение истории изменения объектов с разделением на таблицу данных и таблицу истории. Запись ------- Запись представляет собой строчку в физических таблицах, отражающую изменение объекта. Любые изменения объекта приводят к появлению новой записи: + Актуальная [на определенный момент] запись -- запись, для которой на определенный момент системного времени не существует новой версии. Отражает состояние объекта в определенный момент системного времени; + Горячая запись -- запись, относящаяся к загружаемой дельте. Отражает новое состояние объекта; + Старая запись -- запись, для которой существует новая версия. Отражает состояние объекта на дату. Обогащенный запрос ------------------- Обогащенный запрос представляет собой SQL-выражение, адаптированное к целевой СУБД хранилища данных, позволяющее получить актуальные записи на произвольный момент системного времени (в том числе на текущий момент времени). Системные поля --------------- Системные поля бывают трех типов: + ``sys_from`` (int) -- целочисленное системное поле, хранящее значение номера дельты, в рамках которой запись появилась в БД; + ``sys_op`` (int) -- системное поле записи, отражающее операцию, которая была выполнена над объектом: *0* -- INSERT (создание или модификация объекта); *1* -- DELETE (удаление объекта); + ``sys_to`` (int) -- целочисленное системное поле, хранящее для старой записи максимальное значение номера дельты, в рамках которого запись оставалась актуальной. Для актуальных записей значение ``sys_to`` должно быть пусто (бесконечность). Физическая таблица ------------------- Физическая таблица представляет собой таблицу, расположенную в хранилище данных, и может быть трех типов: + Таблица staging -- физическая таблица горячих записей; + Таблица данных -- физическая таблица актуальных записей. В момент загрузки дельты может дополнительно содержать старые записи и горячие записи. Включает в состав PK системное поле *SysFrom*; + Таблица истории -- физическая таблица старых записей. Включает в состав PK системное поле SysFrom. Включает поля: *SysTo* – последний номер дельты, в рамках которой запись была актуальна, *SysOp* -- признак удаленного объекта. Хранилище данных ----------------- Хранилище данных представляет собой совокупность кластеров СУБД, используемых для хранения информации об объектах: + Кластер ADB; + Кластер ADQM; + Кластер ADG.