Разработчики: | 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.
Подрядчики-лидеры по количеству проектов
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение систем по количеству проектов, не включая партнерские решения
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)