Выбор модели представления данных в автоматизированной системе проведения опросов

Автор: Лапуста Алексей Игоревич, Петров Андрей Евгеньевич

Журнал: Горные науки и технологии @gornye-nauki-tekhnologii

Статья в выпуске: 6, 2010 года.

Бесплатный доступ

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

Базы данных, слабо-структурированные данные, параллельные вычисления, электронные формы

Короткий адрес: https://sciup.org/140215164

IDR: 140215164

Текст научной статьи Выбор модели представления данных в автоматизированной системе проведения опросов

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

Электронные опросы и информация о клиентах в CRM, сведения о пациентах в медицинских автоматизированных системах, карточки товаров в интернет-магазинах - типичные примеры данных с динамической структурой. Как же хранить такие данные?

В реляционных системах управления базам данных известны три популярных подхода к решению такой задачи:

  •    Entity-Attribute-Value

(Сущность-Атрибут-Значение)

  •    Динамическая таблица

  •    Сериализованные данные

Схема “Сущность-Атрибут-Значение” [2] является одной из самых популярных за счет своей гибкости. В основе лежит принцип нормализации данных в БД, создаются отдельные таблицы для атрибутов, сущностей и таблица значений (табл. 1).

Таблица 1

id

сущность

атрибут

значение

1

A (анкета)

X (имя)

Вася

2

A (анкета)

Y (фамилия)

Петров

3

A (анкета)

Z (возраст)

32

Поля в столбцах “сущность” и “атрибут” являются внешними ключами для соответствующих таблиц. Таким образом анкета из 30 вопросов будет представлять собой 30 строк в данной таблице: это накладывает определенный “штраф” на производительность при чтении или записи большого количества сущностей, а аналитика на таких таблицах требует сложных запросов с объединением таблиц.

Наиболее очевидным решением является динамическая таблица, столбцы которой представляют все возможные атрибуты (табл. 2).

Таблица 2

id

имя

фамилия

возраст

...

1

Вася

Петров

32

...

2

Анна

Иванова

18

...

Очевидным плюсом является скорость записи и чтения, однако из-за особенностей внутренней структуры современные БД накладывают ограничение на количество столбцов, а при их добавлении блокируют таблицу на время, зависящее от количества строк.

В подходе с сериализованными данными, сущность целиком сохраняется в формат XML или JSON (табл. 3).

Таблица 3

id

data

1

Вася

Петров

32

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

Одним из подходов, набирающих популярность в последнее время стал отказ от традиционных РСУБД и переход на нереляционные базы данных, основанные на модели хранения “ключ-значение” (табл. 4).

Таблица 4

ключ

значение

1

ключ

значение

имя Иван фамилия Петров возраст 32

Такой подход позволяет хранить слабо структурированные данные. Его так же часто называют NoSQL, потому что базы данных этого типа не поддерживают языка запросов SQL. Вместо этого используется принцип MapReduce[1], который позволяет параллельно обрабатывать большие объемы информации: на первом этапе(map) происходит разделение сущностей на группы и передача их в параллельные потоки обработки данных. На втором этапе(reduce) происходит свертка обработанных уже данных.

Такие БД обладают определенными преимуществами:

  •    параллельные вычисления;

  •    горизонтальное масштабирование;

  •    хранение слабо-структурированных данных.

Поэтому они получили большое распространение в крупных интернет-компаниях: Google(BigTable), Amazon(Dynamo) и Facebook(Cassandra). В частности Facebook открыл свою разработку для сообщества, разместив проект в сообществе Apache. Среди других открытых и бесплатных продуктов можно отметить проекты Apache Hbase, Apache CouchDB и MongoDB.

Список литературы Выбор модели представления данных в автоматизированной системе проведения опросов

  • Jeffrey Dean, Sanjay Ghemawat MapReduce: Simplified Data Processing on Large Clusters. -Google, 2004.
  • Nadkarni, Prakash The EAV/CR Model of Data Representation. -Yale, 1999.
Статья научная