- PVSM.RU - https://www.pvsm.ru -
Редко можно встретить технологии, которые существуют более пятидесяти лет в стремительно меняющейся ИТ-индустрии. Пока одни разработки быстро теряют актуальность, базы данных продолжают играть ключевую роль. По мере увеличения объёмов данных растёт и потребность в инструментах для их обработки, управления и анализа.
Первая СУБД, основанная на иерархическом подходе, была разработана ещё в 1960-х годах. В 1970-х появились реляционные системы, которые и сегодня остаются востребованными благодаря своей универсальности и эффективности.
Сегодня обсудим, каким был путь развития СУБД.
Программа пилотируемых космических полётов «Аполлон» стала одним из самых амбициозных проектов в истории человечества. Для её успешной реализации требовались новые информационные системы.
За разработку космического корабля отвечала компания North American Rockwell. Для выполнения столь масштабной задачи она заключила партнёрство с IBM — ведущим разработчиком компьютерных систем. Кроме того, к проекту привлекли специалистов компании Caterpillar Tractor, одного из лидеров в производстве инженерного оборудования.
Объединенная команда разработала программу Information Control System and Data Language/Interface (ICS/DL/I [1]). ICS стала одной из первых СУБД и успешно справлялась с обработкой огромных объёмов данных, необходимых для управления производственными процессами в реальном времени.
Иерархическая модель данных в ICS построена в виде древовидной структуры: записи представлены узлами, а поля — ветвями дерева. Каждая запись (узел) может иметь только одного родителя, но при этом допускается наличие нескольких дочерних записей, что создаёт характерную иерархию.
Ключевая роль в системе отводилась компоненту Data Language/Interface (DL/I) — программному интерфейсу, предоставляющему доступ к базе данных. Впоследствии DL/I стал основой для широко известной системы IBM IMS (Information Management System).
Первая версия ICS, завершенная [2] IBM в 1967 году, оказалась настоящим технологическим прорывом. Её принципы были настолько успешными, что позже были использованы в других крупных проектах, включая программу «Шаттл».
В начале 1960-х годов Чарльз Бахман из General Electric разработал интегрированное хранилище данных (Integrated Data Store — IDS [3]). IDS стало одной из первых реализаций сетевой модели баз данных. В отличие от IMS, IDS предлагала более гибкий подход: записи могли быть связаны между собой через сложные сетевые структуры. Такой подход позволял создавать системы с разными типами отношений между данными.
Несмотря на сложность использования IDS и необходимость глубоких знаний в области программирования, она стала революционным шагом в технологиях управления данными. IDS легла в основу сетевой модели баз данных, которая впоследствии стала центральным компонентом стандарта CODASYL (Conference on Data Systems Languages). CODASYL объединил усилия экспертов и организаций в 1960–1970-х годах для разработки стандартов работы с данными и языками программирования.
IDS впервые показала, как можно манипулировать связанными данными через сети. На основе этих идей сетевые базы данных обрели популярность и стали ключевой технологией в 1960–1970-х годах, пока реляционные базы данных постепенно не вытеснили их. Однако именно IDS и работы CODASYL стали важным мостом между ранними подходами обработки данных и современными технологиями СУБД.
В 1965 году Чарльз Бахман по заказу лесопромышленной компании Weyerhaeuser Lumber разработал расширение IDS — первую многопрограммную систему сетевого доступа к базе данных под названием WEYCOS [4] (Weyerhaeuser Company Operating System). WEYCOS стала одной из первых систем, поддерживающих обработку данных в реальном времени. С её помощью компания централизовала управление данными, упростив хранение всей информации о заказах, запасах и логистике в единой базе.
Система стала ранним примером внедрения концепции онлайн-обработки транзакций (OLTP). В режимах многопользовательского доступа сотрудники могли одновременно работать с данными, а запросы обрабатывались практически моментально, что минимизировало задержки в рабочих процессах.
Вклад Чарльза Бахмана в область баз данных был настолько значительным, что в 1973 году он получил премию Тьюринга за достижения в проектировании и реализации IDS, а также за развитие сетевой модели. Благодаря Бахману зародились многие концепции, которые стали основой для современных реляционных баз данных.
Позже компания BF Goodrich Chemical Co. переработала IDS, сделав её более удобной в использовании. В результате появилась интегрированная система управления данными (IDMS [5]). Она была основана на стандарте CODASYL и продолжала использовать сетевую модель, но включала более продуманные интерфейсы для разработчиков. Благодаря удобству эксплуатации IDMS стала одной из самых популярных СУБД в 1970-х и 1980-х годах.
IDMS демонстрировала выдающиеся уровни производительности, особенно в проектах с большими объёмами данных и строго структурированными транзакциями. Одним из наиболее ярких примеров стала реализация базы данных для CSS [6] (Customer Service System) компании British Telecom. CSS обслуживала более 10 миллиардов транзакций ежегодно, что делало её одной из крупнейших и самых высокопроизводительных баз данных своего времени.
Тем не менее, сетевая модель так и не стала доминирующей по двум причинам. Во-первых, IBM выбрала иерархическую модель с полусетевыми расширениями в IMS и DL/I. Во-вторых, сетевая архитектура была в итоге вытеснена реляционной моделью, которая предлагала более высокоуровневый и удобный интерфейс.
Эдгар Кодд работал в IBM над задачами хранения и обработки данных. Проанализировав существующие решения в области сетевых и иерархических моделей данных, в 1970 году он опубликовал работу «A Relational Model of Data for Large Shared Data Banks [7]», в которой представил концепцию реляционной модели данных.
Кодд предложил представлять данные в виде двумерных таблиц (отношений), где каждая строка является записью, а каждый столбец — атрибутом. Это устраняло необходимость явного программирования связей между данными, как это требовалось в сетевых и иерархических моделях, что существенно упростило разработку приложений и работу с данными.
И хотя реляционная модель данных Кодда долгое время воспринималась скептически, в период с 1974 по 1977 год различными исследовательскими группами были созданы два ключевых прототипа реляционных СУБД.
INGRES
INGRES [8] (Interactive Graphics and Retrieval System) была разработана командой под руководством Майкла Стоунбрейкера и Юджина Вонга. Основной задачей INGRES было исследование и практическое внедрение реляционной модели данных. Эта система использовала язык запросов QUEL, который позже был заменён на SQL (Structured Query Language) из-за растущей популярности последнего.
Развитие проекта INGRES оказало значительное влияние на разработку других СУБД, таких как Sybase и Microsoft SQL Server. После завершения работы над INGRES в середине 1980-х годов Майкл Стоунбрейкер продолжил развивать концепцию реляционных баз данных, создав новый проект под названием POSTGRES (сокращение от «Post-Ingres»). POSTGRES стала основой для PostgreSQL — одной из ведущих современных СУБД с открытым исходным кодом.
System R
В период с 1974 по 1977 годы в IBM Research Lab была разработана СУБД System R [9]. Проект возглавили исследователи Дональд Чэмбэрлин и Рэй Бойс, которые активно трудились над созданием первого языка для работы с реляционными базами данных — SEQUEL [10] (Structured English Query Language). Позже этот язык был переименован в SQL и стал промышленным стандартом для работы с базами данных.
System R стала первым проектом, демонстрирующим практическую эффективность реляционной модели. Разработка и успехи System R привели к созданию коммерческих продуктов IBM: SQL/DS (для платформы VM) и DB2 (для платформы MVS). Под влиянием System R появились и другие известные коммерческие СУБД: Oracle Database, HP Allbase и Tandem Non-Stop SQL.
Разработка INGRES и System R стала поворотным моментом в истории вычислительной техники, заложив основы современной работы с данными. В то время как IDMS демонстрировала выдающуюся производительность на терабайтных базах, реляционные СУБД в 1980-х и 1990-х годах значительно превосходили её в гибкости и простоте разработки.
За свои достижения Эдгар Кодд в 1981 году был награжден премией Тьюринга. Он продолжил работать над развитием и уточнением реляционной модели. В 1985 году Кодд сформулировал 12 правил [11], которые определяют критерии соответствия настоящей реляционной базы данных. Эти правила стали важным ориентиром для разработчиков СУБД.
С появлением объектно-ориентированных языков программирования возросли требования к приложениям, которые реляционная модель не могла удовлетворить. В результате была разработана концепция объектно-ориентированных баз данных (ООБД), в которых данные представляются как объекты, а не таблицы. Термин «объектно-ориентированная система управления базами данных» (ООСУБД) впервые появился около 1985 года.
Однако уже к концу 1980-х — началу 1990-х годов стало очевидно, что ни реляционные, ни объектно-ориентированные базы данных не способны полностью удовлетворить требования новых приложений. Кроме того, ООСУБД часто привязываются к конкретным языкам программирования, что ограничивает их гибкость.
Чтобы решить эти проблемы, исследовательские группы начали разрабатывать объектно-реляционные базы данных (ОРБД). Основой для таких систем стал расширенный стандарт SQL, который включает поддержку объектных типов.
Появление объектно-реляционной модели позволило разработчикам объединить сильные стороны как реляционных, так и объектно-ориентированных баз данных, что сделало такие системы более гибкими и масштабируемыми.
Реляционные базы данных изначально проектировались для работы на одном сервере в эпоху, когда горизонтальное масштабирование (через добавление серверов) оставалось практически недоступным. Эти системы идеально подходили для работы со структурой данных в виде таблиц, где информацию можно было организованно обрабатывать с помощью SQL. Однако с ростом объёмов данных, которые требовалось обрабатывать в реальном времени, возникла необходимость в других подходах.
NoSQL («Not Only SQL») стал ответом на ограничения реляционных баз. Термин «NoSQL» впервые использовал [12] Карло Строцци в 1998 году для обозначения легковесной реляционной базы данных с открытым исходным кодом, которая не поддерживала традиционный SQL-интерфейс. Однако в то время термин остался вне поля зрения ИТ-сообщества. Широкую известность он получил позже, в 2009 году, благодаря усилиям Джонатана Эллиса, разработчика Apache Cassandra, а также инициативам других специалистов, связанных с движением NoSQL.
NoSQL-базы данных стали незаменимым элементом современных технологий, особенно в таких областях, как потоковые данные, IoT, машинное обучение и аналитика.
В 2011 году началась разработка языка неструктурированных запросов (UnQL) для работы с неструктурированными и полуструктурированными данными. В том же году Мэтью Эслетт ввёл понятие NewSQL, обозначив новый класс реляционных СУБД, которые объединяют производительность и масштабируемость систем NoSQL с транзакционностью и строгими требованиями согласованности, характерными для традиционных реляционных баз данных. Среди таких систем можно отметить CockroachDB и VoltDB.
Ключевым фактором развития СУБД в 2010-х годах стало взрывное увеличение объёмов данных. Миграция реляционных СУБД в облако позволила организациям воспользоваться всеми преимуществами облачных вычислений: лёгким масштабированием, высокой доступностью и снижением затрат на управление локальной ИТ-инфраструктурой.
В этот период произошли значимые изменения не только в переносе традиционных решений на виртуальную инфраструктуру, но и в разработке cloud-native баз данных, изначально созданных для работы в распределённой среде. Облачные технологии предоставили быстрый доступ к мощным инструментам обработки данных, увеличив масштабируемость и обеспечив поддержку высоконагруженных приложений.
В 2020-х годах машинное обучение и ИИ оказали значительное влияние на развитие СУБД. Появились платформенные решения [13], которые объединяют хранилища данных (Data Warehouses [14]) с гибкостью озер данных (Data Lakes).
Базы данных в облаке (например, DBaaS PostgreSQL [15]) позволили быстро воспользоваться всеми преимуществами современных БД без затрат на администрирование и поддержку инфраструктуры.
Идея использования векторных представлений тесно связана с развитием ИИ. Нейронные сети, активно развивавшиеся с 1980-х годов, применяли вектора (веса и входные значения) для отображения данных. Однако способы их хранения долго оставались на уровне экспериментов отдельных исследователей. Лишь в 21 веке появились полноценные векторные базы данных, чему способствовали достижения в обработке данных (например, методы NLP и анализа изображений) и разработка эффективных алгоритмов работы с векторными структурами, таких как HNSW.
Векторы представляют данные (текст, изображения или аудио) в виде точек в многомерном пространстве, где расстояние между ними указывает на семантическую близость объектов. При работе с большими объемами высокоразмерной информации векторные базы данных позволяют быстро находить похожие объекты, что делает их оптимальным инструментом для этой задачи.
С развитием методов обучения представлениям (representation learning), особенно в сфере больших языковых моделей и компьютерного зрения, растёт спрос и на векторные базы данных. Gartner выделяет их среди ключевых технологий будущего наряду с квантовыми вычислениями и web3.
Постоянное внедрение инноваций и адаптация к меняющейся ИТ-экосистеме сделали СУБД гибкими и способными справляться с современными задачами. Современные системы эффективно обрабатывают огромные объёмы данных в реальном времени, поддерживают аналитические процессы и интеграцию с методами машинного обучения.
Автор: randall
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/subd/408825
Ссылки в тексте:
[1] ICS/DL/I: https://www.ibm.com/history/information-management-system
[2] завершенная: https://www.ibm.com/docs/en/zos-basic-skills?topic=now-history-ims-beginnings-nasa
[3] IDS: https://tschwarz.mscs.mu.edu/Classes/DB23/HW/bachmanIDS.pdf
[4] WEYCOS: https://dl.acm.org/doi/pdf/10.1145/1480083.1480133
[5] IDMS: https://www.computerhope.com/jargon/i/idms.htm
[6] CSS: https://link.springer.com/article/10.1023/A:1018627127873
[7] A Relational Model of Data for Large Shared Data Banks: https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf
[8] INGRES: https://www.britannica.com/biography/Michael-Stonebraker#ref1245757
[9] System R: https://dl.acm.org/doi/10.1145/320455.320457
[10] SEQUEL: https://dl.acm.org/doi/10.1145/800296.811515
[11] 12 правил: https://web.archive.org/web/20180814020730/https:/computing.derby.ac.uk/c/codds-twelve-rules/
[12] использовал: https://archive.org/details/professionalnosq0000tiwa
[13] платформенные решения: https://mws.ru/services/arenadata/?utm_source=habr.com&utm_medium=owned_media_subdarena&utm_content=article&utm_term=subdarena
[14] Data Warehouses: https://mws.ru/solutions/corporate-data-storage/?utm_source=habr.com&utm_medium=owned_media_subddwh&utm_content=article&utm_term=subddwh
[15] DBaaS PostgreSQL: https://mws.ru/services/dbaas-for-postgresql/?utm_source=habr.com&utm_medium=owned_media_subdpostgre&utm_content=article&utm_term=subdpostgre
[16] Источник: https://habr.com/ru/companies/mws/articles/876768/?utm_campaign=876768&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.