СУБД Ingres
Ingres — это реляционная система управления базами данных (СУБД), разработанная в Калифорнийском университете в Беркли (UC Berkeley) в начале 1970-х годов. Она стала одной из первых реляционных СУБД, реализовавших идеи Эдгара Кодда, и оказала значительное влияние на развитие коммерческих баз данных, включая PostgreSQL, Sybase ASE и Microsoft SQL Server. Ingres известна как академический проект, который впоследствии был коммерциализирован и продолжает использоваться в корпоративной среде.
История
Происхождение и академический этап
Проект Ingres (Interactive Graphics and Retrieval System) был запущен в 1973 году в UC Berkeley под руководством Майкла Стоунбрейкера и Юджина Вонга. Основной целью было создание экспериментальной системы, способной обрабатывать реляционные запросы на языке QUEL (Query Language), который предшествовал SQL. Разработка велась на языке программирования C на компьютерах PDP-11. Первая версия Ingres была выпущена в 1974 году и использовалась для исследований в области реляционных баз данных, оптимизации запросов и управления транзакциями.
В 1977 году Ingres была передана в открытый доступ, что позволило другим университетам и исследовательским группам использовать её для своих проектов. В 1979 году вышла версия Ingres 6.2, которая включала поддержку многопользовательского режима и улучшенный оптимизатор запросов. В 1980 году Стоунбрейкер и его коллеги основали компанию Relational Technology Inc. (позже переименованную в Ingres Corporation) для коммерциализации системы.
Коммерциализация и развитие
В 1981 году была выпущена первая коммерческая версия Ingres, ориентированная на корпоративных клиентов. В 1983 году компания Relational Technology Inc. вышла на рынок с продуктом Ingres/RTI, который поддерживал операционные системы Unix, VMS и MS-DOS. В 1985 году Ingres стала одной из первых СУБД, реализовавших поддержку распределённых баз данных и клиент-серверной архитектуры.
В 1988 году компания была переименована в Ingres Corporation. В 1990 году вышла версия Ingres 6.4, которая включала поддержку SQL (язык структурированных запросов) и интегрированную среду разработки. В 1994 году Ingres Corporation была приобретена компанией Computer Associates (CA), которая продолжила развитие продукта под названием CA-OpenIngres.
Современный этап
В 2004 году Computer Associates выпустила версию Ingres r3, которая включала поддержку Java, XML и веб-сервисов. В 2005 году CA передала права на Ingres независимой организации Ingres Corporation, которая в 2006 году выпустила версию Ingres 2006, ориентированную на открытое программное обеспечение. В 2008 году Ingres Corporation была приобретена компанией Actian Corporation, которая продолжила развитие продукта под названием Actian Ingres.
На 2025 год Actian Ingres остаётся доступной в виде коммерческой и открытой версий, поддерживая платформы Linux, Windows и macOS. Она используется в финансовом секторе, здравоохранении и государственных учреждениях.
Архитектура
Ядро и компоненты
Ingres построена на модульной архитектуре, включающей:
- Ядро базы данных — отвечает за хранение, извлечение и обработку данных. Использует механизм транзакций ACID (атомарность, согласованность, изолированность, долговечность).
- Оптимизатор запросов — анализирует SQL-запросы и выбирает наиболее эффективный план выполнения, учитывая индексы, статистику и доступные ресурсы.
- Менеджер транзакций — обеспечивает целостность данных при параллельном доступе, используя блокировки на уровне строк и таблиц.
- Менеджер буферов — управляет кэшированием данных в оперативной памяти для ускорения доступа.
Модель данных
Ingres реализует реляционную модель данных, где информация хранится в таблицах, состоящих из строк и столбцов. Поддерживаются стандартные типы данных: целые числа, числа с плавающей запятой, строки, даты и двоичные объекты (BLOB). В версии Ingres 2006 добавлена поддержка пользовательских типов данных и объектно-реляционных расширений.
Язык запросов
Изначально Ingres использовала язык QUEL, который был разработан в UC Berkeley. QUEL был более декларативным, чем SQL, и включал конструкции для работы с множествами и рекурсивными запросами. Однако в 1990-х годах, с ростом популярности SQL, Ingres перешла на поддержку SQL-92, а затем и SQL:1999. В современных версиях Ingres поддерживает как SQL, так и QUEL (через эмуляцию).
Классификация
По типу лицензии
- Коммерческая версия — Actian Ingres, распространяется по проприетарной лицензии, включает техническую поддержку и расширенные функции (например, репликация данных, шифрование).
- Открытая версия — Ingres Open Source, доступна под лицензией GPL (General Public License) или CAOS (Common Access Open Source), позволяет использовать и модифицировать исходный код.
По области применения
- Корпоративные системы — Ingres используется в банковских системах, ERP (Enterprise Resource Planning) и CRM (Customer Relationship Management).
- Научные исследования — благодаря академическому происхождению, Ingres применяется в университетах для изучения реляционных баз данных и оптимизации запросов.
- Встраиваемые системы — Ingres может быть интегрирована в приложения через API (Application Programming Interface) ODBC (Open Database Connectivity) и JDBC (Java Database Connectivity).
Применение
Финансовый сектор
Ingres используется в банках и страховых компаниях для обработки транзакций, управления счетами и хранения клиентских данных. Например, в 1990-х годах Ingres была внедрена в Системе межбанковских расчётов США (Fedwire) и в ряде европейских банков.
Государственные учреждения
Ingres применяется в государственных информационных системах, включая системы налогообложения, регистрации населения и управления документами. В России Ingres использовалась в проектах по автоматизации государственных услуг в 2000-х годах.
Образование и исследования
Ingres является популярной платформой для обучения реляционным базам данных в университетах. Её исходный код часто используется для исследований в области оптимизации запросов, управления транзакциями и распределённых систем.
Влияние на другие СУБД
Ingres оказала прямое влияние на несколько известных СУБД:
- PostgreSQL — Майкл Стоунбрейкер, покинув проект Ingres в 1985 году, начал разработку Postgres, которая стала основой для PostgreSQL. PostgreSQL унаследовал от Ingres архитектуру, язык QUEL (в ранних версиях) и принципы управления транзакциями.
- Sybase ASE — основатели Sybase, Роберт Эпштейн и Марк Хофман, ранее работали над Ingres и использовали её архитектуру для создания Sybase ASE.
- Microsoft SQL Server — ранние версии SQL Server (до 6.0) базировались на коде Sybase ASE, который, в свою очередь, был производным от Ingres.
Критика
Ingres подвергалась критике за сложность администрирования и отсутствие поддержки некоторых современных стандартов SQL (например, оконных функций и рекурсивных запросов) в ранних версиях. В 1990-х годах Ingres уступала по производительности Oracle и IBM DB2 в крупных корпоративных системах. Также отмечалась высокая стоимость лицензий на коммерческую версию, что ограничивало её распространение по сравнению с открытыми СУБД, такими как MySQL и PostgreSQL.
Интересные факты
- Название Ingres является аббревиатурой от Interactive Graphics and Retrieval System, но также отсылает к французскому художнику Жану Огюсту Доминику Энгру (Ingres), что подчёркивает академический характер проекта.
- В 1970-х годах Ingres использовалась в проекте ARPANET (предшественнике Интернета) для хранения данных о сетевых узлах.
- Исходный код Ingres был написан на C и содержал около 100 000 строк, что было значительным объёмом для своего времени.
Источники
- Stonebraker, M. (1986). The Ingres Papers: Anatomy of a Relational Database System. Addison-Wesley.
- Date, C. J. (2003). An Introduction to Database Systems. Addison-Wesley.
- Gray, J., & Reuter, A. (1993). Transaction Processing: Concepts and Techniques. Morgan Kaufmann.
- Actian Corporation. (2024). Actian Ingres Documentation.
- Официальный сайт Actian Ingres (actian.com).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →