Для того чтобы правильно подобрать формат хранения данных, нужно выполнить четыре шага:
Шаг 1. Определить типы данных, которые будут храниться в системе и использоваться в работе будущего приложения.
Шаг 2. Определить тип системы, какую нужно реализовать, и задачи, которые она будет выполнять.
Шаг 3. Понять, какие форматы хранения данных используются в уже существующих системах.
Шаг 4. Спрогнозировать будущие потребности системы и оценить экономические выгоды от применения того или иного формата хранения.
У каждого формата хранения, будь то файлы или базы данных, есть сильные и слабые стороны. Иногда команда разработки выбирает сразу несколько форматов (например, реляционную базу данных для одного, хранилища файлов для другого, многомерную базу данных для третьего).
Системному аналитику важно понимать сильные и слабые стороны каждого формата, чтобы знать, в каком случае применять какой-либо из них.
Типы данных
При выборе формата хранилища сперва нужно определить тип данных, которые будут находиться в системе. Большинству приложений нужно хранить простые типы данных (текст, даты, числа). Для их обработки подходят все типы баз, но лучшее решение — реляционная БД.
Объектные базы данных лучше подходят для приложений, обрабатывающих сложные данные (видео, аудио, изображения). В объектных БД данные хранятся в виде объектов и управлять ими проще, чем в других форматах.
Другим приложениям требуются агрегированные данные (то есть суммированная, усреднённая или объединённая информация). Если система строится для аналитической поддержки принятия решений, самый подходящий формат хранения — многомерная база данных.
Поддерживаемые типы системы
Каждая из множества разных систем решает свои задачи. Системы обработки транзакций предназначены для приёма и обработки множества одновременных запросов (например, ввод заказов, начисление зарплаты). В таких системах данные постоянно обновляют многие пользователи, а запросы обычно предопределены (заранее прописаны в программном коде) или нацелены на небольшое подмножество записей.
Другие системы, предназначенные, например, для поддержки принятия решений (информационные системы управления бизнес-аналитикой) созданы, чтобы помочь людям, которым нужно изучить большой объём исторических данных, доступных только для чтения. Запросы носят специальный характер и включают сотни или тысячи записей одновременно (запрос, например, может выглядеть так: «перечислить всех клиентов в городе Х, которые за прошлый месяц не менее трёх раз приобрели продукт стоимостью более 500 рублей»).
Системам обработки транзакций нужен формат хранения данных, который настроен на большое количество обновлений и быстрый поиск предопределённых запросов. Такие требования могут поддерживать файловые хранилища, реляционные базы данных и объектные базы данных.
Системы для поддержки принятия решений обычно только считывают данные, а не обновляют их, поэтому лучше всего им подходят реляционные и многомерные базы данных.
Существующие форматы хранения
При выборе формата хранения разрабатываемой системы команде нужно учитывать и уже существующие в организации форматы хранения данных. Это позволит лучше понять, есть ли у текущих сотрудников технические навыки для работы с конкретным форматом хранения, сколько времени займёт обучение, нужно ли нанимать дополнительных специалистов с такими навыками. Например, у компании, в которой сотрудники знакомы с реляционными базами данных, не будет проблем с пониманием их устройства, тогда как объектная БД может потребовать дополнительного обучения разработчиков. Если так случится, команде проекта потребуется больше времени для интеграции базы данных объектов с реляционными системами компании.
Будущие потребности
Команда разработки должна оценивать и технологии, которыми пользуются другие организации. Если тот или иной формат хранения установили много раз, скорее всего, он «безопасен». Что это значит? Число установок показывает, что технология достаточно распространена, а значит, если отвечающий за неё сотрудник уволится, работа не встанет, потому что на рынке есть другие компетентные специалисты.