Ingres (database)

Продукт
Разработчики: Ingres
Дата последнего релиза: 12 октября 2010 года
Технологии: СУБД

Содержание

О продукте

Ingres (произносится «ingress») — коммерчески поддерживаемая реляционная СУБД с открытыми исходными текстами. Ingres была создана как научно-исследовательский проект в Калифорнийском университете в Беркли в начале 1970-х годов. Закончился этот проект в начале 1980-х. Исходный код, как и для других проектов того же происхождения, был доступен за минимальную плату под лицензией BSD.

Postgres (Post Ingres) (позже развился в PostgreSQL), несмотря на своё название, не основан на Ingres.

История

В 1973 году в IBM приступили к разработке новой СУБД System R и научно-исследовательская группа, занимавшаяся данным проектом, выпустила комплект документации с описанием создаваемой системы. Двое учёных в Беркли — Майкл Стоунбрейкер (Stonebraker) и Юджин Вонг (Wong) — заинтересовались результатами своих коллег из IBM и приняли решение начать свой собственный проект по созданию реляционной СУБД.

Этот проект использовался для исследования географической базы данных группой экономики в Беркли и был назван «Ingres» (INteractive Graphics REtrieval System — диалоговая графическая система поиска). В дальнейшем проектом заинтересовались в трёх военных ведомствах: в Военно-воздушных и Сухопутных силах и Военно-морском флоте.

Получив стороннее финансирование, Ingres был разработан в течение середины 1970-х годов группой студентов и учёных. Ingres проходил через эволюцию, сопровождающуюся доработками, как и System R, с ранним прототипом в 1974 году. Затем Ingres был распространён среди небольшого количества пользователей и участников проекта. Прототип многократно переписывался, чтобы включить накопленный опыт, замечания пользователей и новые идеи. Подобно System R, Ingres работал в системах «низкого уровня» — в операционной системе Unix на машинах DEC.

Версии

Ingres Database 10 (последняя версия)

Ключевые улучшения:

  • Добавлен комплекс инструментов и библиотек Ingres Migration Tool Set для упрощения миграции на Ingres c других СУБД, поддерживается оптимизация и адаптация схем хранения данных от СУБД MySQL, Oracle, MS SQL и Sybase;

  • Реализована поддержка мультиверсионного метода организации конкурирующего доступа к данным (MVCC, multi-version concurrency control), позволяющего избавиться от блокировок при выполнении операций чтения (всегда отдаётся текущий "снапшот" состояния, вносимые изменения будут отражены уже в другом "снапшоте"). Переход к MVCC позволил значительно увеличить производительность многопользовательских систем и конфигураций с большим числом параллельных запросов;

  • Поддержка шифрования данных на уровне столбцов, позволяет обеспечить хранение в зашифрованном виде информации в отдельных столбцах, содержащих приватные или секретные данные, такие как номера кредитных карт или PIN-коды. При этом данные сохраняются в зашифрованном виде не только в харнилище, но и в логах транзакций, журналах и контрольных точках. В качестве алгоритма допустимо использование 128-, 192- и 256-битного шифрования Advanced Encryption Standard (AES).

  • Поддержка сегментирования (partitioning) таблиц, логического разбиения больших таблиц на части, размещаемые на разных дисках/файловых системах;

  • С целью повышения совместимости с другими СУБД добавлены новые типы данных, например, ранее не реализованный тип BOOLEAN;

  • Улучшение механизмов по загрузке больших наборов данных в БД. Например, процесс загрузки данных через стандартный драйвер JDBC 4.0 ускорен на 50%; директива COPY теперь поддерживает запись и чтение файлов в форматах CSV и SSV; скорость выполнения операции "COPY FROM" из текстового файла увеличена почти в два раза;

  • Добавлена поддержка режима пакетного выполнения запросов, при котором вначале выполняется определенный набор запросов и только затем сервер возвращает общий ответ об успешности операции клиенту. В пакетном режиме допускается только использование выражений, не возвращающих данных, например, INSERT и DELETE (использование SELECT недопустимо);

  • Добавлена поддержка скалярных подзапросов, при которых производится выборка только одного столбца или выражения и возвращается только одна строка. Например: "SELECT a, (SELECT MAX(salary) FROM emp), b, ..." или "SELECT ... FROM table1, (SELECT a FROM table2 WHERE col = '123')...";

  • Размер имен столбцов, таблиц, индексов, представлений, переменных и т.п. увеличен с 32 до 256 символов;

  • Добавлена поддержка переименования таблиц и столбцов при помощи конструкций "ALTER TABLE table_name RENAME TO new_table_name", "ALTER TABLE table_name RENAME [COLUMN] old_column_name TO new_column_name" и "RENAME TABLE table_name TO new_table_name";

  • Добавление новых математических функций GREATEST, GREATER, LEAST, LESSER; для совместимости с MySQL, MS SQL, Informix и DB2 добавлена функция LAST_IDENTITY (возвращает последний сгенерированный идентификатор); для совместимости с Oracle добавлены функции NVL и NVL2 (позволяют возвращать указанный аргумент, если другой аргумент NULL); функции для генерации и проверки типовых проверочных кодов - GENERATE_DIGIT и VALIDATE_DIGIT;

  • Добавлена поддержка 64-разрядных ОС Windows;

  • Для Unix-платформ улучшена производительность прямого ввода/вывода и реализована возможность предварительного выделения места под создаваемые файлы для файловых систем с поддержкой функции fallocate.



СМ. ТАКЖЕ (1)


Подрядчики-лидеры по количеству проектов

За всю историю
2021 год
2022 год
2023 год
Текущий год

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Oracle (44, 179)
  SAP SE (6, 175)
  Microsoft (23, 142)
  PostgreSQL Global Development Group (14, 120)
  Постгрес профессиональный (ППГ, Postgres Professional) (6, 39)
  Другие (253, 203)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год