Разделы

ПО Цифровизация Бизнес-приложения Инфраструктура Маркет

Что нужно знать о развитии СУБД

Объемы накопленных человечеством данных, нашей «новой нефти», в ближайшие годы будут стремительно увеличиваться, по оценке IDC — с 33 зеттабайт (зеттабайт — 10 в 21 степени байт) в 2018 году до 175 зеттабайт в 2025-м. Соответственно, растет и роль систем управления базами данных как центрального звена корпоративной инфраструктуры. Соответствующий рынок на фоне общей стагнации, по данным Gartner, вырос в 2018 году на 18,4%, до $46 млрд. CNews напоминает основные этапы развития СУБД в рамках готовящегося цикла статей об этой важнейшей составляющей ИТ-архитектуры.

Объемы накопленных данных стремительно растут, их источники становятся все разнообразнее. Растет и важность данных как основы для принятия решений — топ-менеджментом компаний, руководством городов, регионов и даже стран. Соответственно, растет и важность систем управления базами данных, поскольку от правильности выбора типа СУБД зависит очень многое.

Нынешнее состояние рынка СУБД является результатом шестидесятилетнего эволюционного развития. На нем уживаются и работающие базы времен первых мэйнфреймов, и самые современные облачные разработки. Многообразие типов СУБД (реляционные и NoSQL, операционные и аналитические, коммерческие и с открытыми кодами) объясняется разнообразием решаемых ими задач. Эта «многомерность» современного рынка систем управления базами данных не позволяет выделить абсолютных лидеров, но дает представление о технологических тенденциях на ИТ-рынке в целом.

Все началось со «Спутника»

Системы управления базами данных, как и интернет, и многие другие новации, своим появлением обязаны «Моменту Спутника» (Sputnik Moment). Так в конце пятидесятых назвали ускоряющий импульс, который получила в ответ на запуск Советским Союзом 4 октября 1957 г. и другие успехи СССР в космосе вся американская индустрия. И прежде всего нарождающаяся компьютерная. В 1961 г. президент Джон Кеннеди (John Kennedy) предложил в качестве «главного ответа Советам» лунную программу «Аполлон». Для ее выполнения требовались невиданные прежде масштабы кооперации соисполнителей, поэтому было решено автоматизировать управление поставками комплектующих.

sputnik1.jpg
Запуск первого искусственного спутника Земли оказал огромное влияние на технологическую гонку второй половины XX века

В соответствие с этим решением в 1965 г. IBM и другие участники программы разработали задание на триединую систему Information Control System and Data Language/Interface (ICS/DL/I), включающую подсистему управления информацией, язык данных и интерфейс. Предназначением системы была автоматизации работы со списками, состоящими из записей о комплектующих. В последующем IBM переработала ICS/DL/I в коммерческий продукт Information Management System/360 (IMS/360), продолжающий работать на некоторых мэйнфреймах до сегодняшнего дня.

Созданием IMS DBMS был заложен краеугольный камень в создание современного стека корпоративных информационных систем, характерного отделением кода приложений от данных специально созданным программным обеспечением. Этот тип программного обеспечения стали называть Database Management System (DBMS). А когда появились СУБД других типов, то IMS и ее аналоги (IDS, IDMS, Total) отнесли к классу навигационных или сетевых.

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

…просто бизнес

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

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

СУБД с записями фиксированной длины, «заточенную» на работу с таблицами, предложил в 1970 г. исследователь из IBM Эдгар Кодд (Edgar Codd). Они получили название «реляционные» и настолько удачно подошли для большей части данных, используемых в бизнесе, что надолго закрепились в качестве основы для большей части корпоративных информационных систем.

databasechernyak_4.jpeg
С 70-х годов системы управления базами данных стали основой корпоративных информационных систем

Работу Кодда продолжили Майкл Стоунбрейкер (Michael Stonebraker) и Юджин Вонг (Eugene Wong) в проекте по созданию первой работоспособной реляционной СУБД Ingres с языком запросов QUEL, вскоре уступившему свое место принятому в качестве стандарта языку SQL. Не меньшим по своему значению для усиления позиций реляционных СУБД стало массовое производство Unix-серверов, ставших аппаратной платформой для реляционных СУБД.

Перспективность этой связки первой разглядела начинающая компания Oracle, обошедшая IBM с ее проектом System R, позже переросшим в СУБД DB2. Потом на этом рынке появились продукты Sybase, Informix и многие другие.

Реляционные СУБД долгое время правили бал в корпоративных системах, однако существовали и альтернативные подходы. Например, иерархическая СУБД InterSystemsCache, пользующаяся особой популярностью в медицинских учреждениях.

Какое-то время в бизнесе использовались и персональные реляционные СУБД — dBase от Ashton-Tate, Paradox от Borland, FoxPro от Fox Software и Clipper от Nantucket, позже скупленные крупными вендорами и практически бесследно растворившиеся в их недрах.

Эпоха «ста цветов»

Третий заметный шаг в развитии СУБД был сделан под влиянием интернета. Во времена первого интернет-бума в конце 90-х — начале 2000-х, фундаментом зарождающегося интернет-бизнеса были Unix-серверы SunMicrosystems или HP и коммерческие СУБД, прежде всего Oracle.

Однако по мере того, как бизнес в интернете становился все более массовым, стала очевидна потребность в более дешевых и более масштабируемых решениях. Выходом из положения стали фермы из стандартных серверов x86, операционная система из Linux и СУБД с открытыми кодами. Среди немалого количества проектов такого рода наиболее успешным оказалась СУБД MySQL одноименной шведской фирмы. Она стал одной из составляющих тетрады LAMP (Linux, Apache, MySQL и PHP), служащей базисом для большинства сайтов и поныне.

С MySQL началась эпоха СУБД с открытыми кодами. Некоторые из них, как MariaDB, являются «ответвлениями» от MySQL (которая стала собственностью Oracle), другие — оригинальные разработки разного типа, такие как объектно-реляционная PostgreSQL, реляционная CockroachDB, документоориентированная MongoDB, встраиваемая SQLite и многие другие.

Дополнительным стимулом для развития нового поколения СУБД стало то, что традиционные реляционные СУБД оказались неготовыми к эпохе больших данных. Их главное достоинство — обеспечение надежного хранения с минимальными издержками на резервирование, оказались препятствием к масштабированию. Кроме того, они неудобны при работе с неструктурированными данными, объемы которых растут многократно быстрее, чем структурированных.

Это дало дополнительный толчок к развитию нереляционных СУБД. Amazon (Dynamo), Google (BigTable) и многие другие компании стали создавать собственные системы хранения нереляционного типа, где масштабирование достигается за счет использования тысяч идентичных серверов, по которым данные распространяются сегментированно. Такие базы обеспечивает хорошую масштабируемость и высокую готовность без уменьшения быстродействия.

Что дальше?

Нынешний виток в развитии СУБД отличается тем, что он скорее связан не с количеством или качеством данных, а с изменением платформы, поскольку базы данных, так же как и многие другие решения, уходят в облака. Облачные СУБД могут быть как реляционными, так и нет, они могут быть как программным сервисом (DBaaS), так и базироваться на виртуальных машинах по модели IaaS или PaaS.

dbms3_1.jpg
Как бы не менялись технологии, но со времен «Спутника» место баз данных в корпоративной инфраструктуре остается постоянным — между аппаратной частью (включая операционную систему) и прикладными приложениями

Еще одну «точку роста» для СУБД можно ожидать в связи с внедрением информационных систем, основанных на машинном обучении. Для него требуются размеченные данные, то есть данные, снабженные описывающими их метаданными. Их ближайший аналог — СУБД, предназначенные для хранения данных в формате XML, с той разницей, что «обученные» СУБД могут быть не только NoSQL, но и реляционными.

Поскольку пока разметка данных (data labeling) может выполняться только вручную, то, естественным образом, на первые позиции выходит Китай, где создается мощная индустрия разметки. Но в перспективе процесс разметки наверняка будет автоматизироваться, и на этом рынке могут появиться новые лидеры.

Развивается не только логика, но и «физика» хранения. В 90-е годы в дополнение к традиционным СУБД, обрабатывающим данные на диске, были созданы первые СУБД, обрабатывающие данные в оперативной памяти (In-Memory Database Systems, IMDS). Потребовалось лет 15 на то, чтобы они стали массовым рыночным продуктом. Успеху IMDS способствовали, с одной стороны, снижение стоимости оперативной памяти и создание многоядерных процессоров, способных работать с большими ее объемами, а с другойпоявление новых, прежде всего аналитических приложений, с более высокими чем у транзакционных, требованиями к скорости работы с данными. Начало было положено СУБД SAP HANA (2010 г.), а вскоре опции IMDS получили реляционные СУБД Oracle Database, DB2 и Microsoft SQL Server. Параллельно и NoSQL-базы стали развиваться в этом направлении.

Леонид Черняк