Универсальные базы данных

Универсальная база данных представляет собой таблицу, в которой имена полей хранятся как значения полей в одном столбце, а значения полей — в другом. Такие базы данных, как правило, используются для атрибутов разных объектов.

Взгляните на пример таблицы GenericTable ниже. Это универсальная база данных, содержащая два объекта: сферу и поле. Очевидно, что некоторые атрибуты, такие как цвет и толщина, являются общими для обоих типов объектов, в отличие от таких, как диаметр, высота, длина и ширина.

GenericTable
object attribute value
ball color red
ball diameter 10 cm
ball weight 100 g
box color black
box height 16 cm
box length 20 cm
box weight 500 g
box width 10 cm

С одной стороны, предоставление каждому атрибуту отдельного столбца усложняет хранение данных, поскольку многие атрибуты не связаны с определенными объектами.

С другой стороны, смешанное отображение большого количества данных, таких как длина, цвет и толщина, тоже может быть неудобным.

Если эта база данных загружается в программу Qlik Sense обычным способом и отображает данные в таблице, она выглядит следующим образом:

Data base data displayed in a table.

Тем не менее, если таблица загружается как универсальная база данных, столбцы два и три разделяются на разные таблицы по одной для каждого уникального значения из второго столбца:

Generic data model.

Синтаксис достаточно прост:

Example:  

Generic SELECT* from GenericTable;

Для загрузки общей базы данных может использоваться и оператор LOAD, и оператор SELECT.