Ingres

Эта статья о СУБД; о французском художнике см. Энгр, Жан Огюст Доминик.

Эта статья о СУБД; о многопользовательской онлайн-игре см. Ingress.

Ingres Database

Ingres Corporation logo
Тип |  Реляционная СУБД
Разработчик |  Ingres Corporation
Написана на |  Си
Операционная система  |  Кроссплатформенное программное обеспечение
Последняя версия |  10 (12 октября 2010)
Лицензия |  GNU General Public License
Сайт |  actian.com

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

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

## Содержание

* 1 История
* 1.1 Ingres
* 1.2 Коммерциализация
* 1.3 Postgres
* 2 Установка
* 2.1 Идентификатор установки
* 2.2 Пути установки
* 3 Базы данных
* 4 Типы данных
* 5 Ingres в России
* 6 Примечания
* 7 Ссылки

## История

[править | править код]

### 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.

### Коммерциализация

[править | править код]

В отличие от System R, исходный код Ingres был доступен за небольшую плату. В 1980 году около 1000 копий Ingres распространили по университетам. Многие студенты из Беркли и других университетов использовали исходный код Ingres для разработки различных коммерческих баз данных.

Студенты Беркли Джерри Хелд и позже Karel Youseffi, перешедшие на работу в Tandem Computers, создали СУБД, которая позже развилась в NonStop SQL. Эта система реализовывала технологии Ingres. NonStop SQL работала эффективно на параллельных вычислительных системах — то есть, было включено функциональное требование для распределённых баз данных. В 1989 в системе можно было запускать SQL-запросы параллельно, продукт становится довольно известным. Tandem позже был приобретён фирмой Compaq. В 2000 году NonStop SQL был переписан и теперь это продукт фирмы HP.

Robert Epstein, главный программист в проекте Berkeley, вместе со своими студентами из проекта Ingres — Paula Hawthorne и Mike Ubell, и позже Эрик Оллман — основали Sybase. Sybase был продуктом №2 (после System R и Oracle) в 1980-х и 1990-х годах. В 1997 году появился Informix. Ряд продуктов Sybase также был лицензирован Microsoft в 1992 году и перевыпущен под маркой Microsoft SQL Server.

Несколько компаний использовали исходный код Ingres для своих СУБД. Наиболее успешной из них была Relational Technology, Inc. (RTI), основанная в 1980 году Стоунбрейкером и Вонгом совместно с другим профессором из Berkeley — Lawrence A. Rowe[англ.]. RTI был переименован в Ingres Corporation в середине 1980-х. Компания портировала код на DEC в VMS, которая была коммерческой ОС для компьютеров DEC.

Разрабатывались инструментальные средства для работы с базами данных (например, reporterwriters, дизайнер форм, и т. п.) и прикладные инструментальные средства разработки. Большинство времени ушло на расширение функционала (обработка SQL-запросов, методы доступа B-tree, типы данных — дата/время и т. п.) и улучшение исполнения (кеширование запросов и т. п.). Компания была приобретена ASK Corporation в ноябре 1990. Основатели RTI оставили компанию через несколько месяцев. В 1994 ASK Corporation продаёт Ingres фирме Computer Associates, которая начала предлагать Ingres под рядом имён (OpenIngres, Ingres II, Advantage Ingres).

В 2004 году Computer Associates выпускает Ingres r3 под open source лицензией. Код включал сервер СУБД, утилиты и прикладные инструментальные средства разработки. В ноябре 2005 Garnett & Helfrich Capital в партнёрстве с Computer Associates создали новую компанию — Ingres Corporation — для поддержки Ingres, OpenROAD и связанных продуктов.

В феврале 2006 года Ingres Corporation выпустила Ingres 2006 под GNU General Public License.

### Postgres

[править | править код]

В 1990 году Стоунбрейкер основал новую компанию, чтобы поставить на коммерческую основу Postgres, под именем Illustra, позже компания и технология были приобретены Informix.

## Установка

[править | править код]

Ingres может быть установлен как клиент (Client Installation) или как сервер (Server Installation), с клиентом не связана база данных, но он позволяет обращаться к базе данных, созданной в серверной установке.

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

Заметьте, что выражение «экземпляр» — синоним «установка».

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

### Идентификатор установки

[править | править код]

Установку часто называют по её идентификатору установки. Этот идентификатор состоит из двух зависимых от регистра символа, начинающийся с буквы. По умолчанию это II. Идентификатор установки используется для вычисления, какие порты будут прослушивать сервера Ingres. Например, "II" указывает, что сервера слушают порт 21064 и 7 портов после него.

Любой хост (машина или виртуальная машина) может иметь несколько установок Ingres, но каждая установка должна иметь уникальный идентификатор, чтобы гарантировать клиентам и компонентам взаимодействие с правильной установкой.

Одна установка может использовать несколько идентификаторов установки. Классический пример, когда необходимо запустить больше 8 процессов на сервере. Кроме того, хотя серверы баз данных Ingres (iidbms) и серверы связи Ingres (iigcc) условно используют такой же идентификатор установки, нет никаких требований поступать так.

### Пути установки

[править | править код]

В месте создания установки должны быть назначены некоторые важные пути. Пути не будут меняться без переустановки, поэтому следует озаботиться их выбором.

Пути указаны в следующей таблице. Заметьте, что префикс "II_" не обозначает, что эти пути - для установки "II". Каждая установка, несмотря на её идентификатор, будет иметь свой набор этих переменных.

Имя  | Назначение

|

II_SYSTEM | Двоичные файлы установок, утилиты, текстовые файлы используемые для настройки и т. п.
II_DATABASE  | Место основных данных установки.
II_CHECKPOINT  | Место резервного копирования баз данных.
II_JOURNAL  | Место журналирования транзакций установки базы данных. Журналы используют систему восстановления для обеспечения point-of-failure восстановления. Могут быть использованы для целей аудита.
II_DUMP  | Место хранения "dump"-файлов установки. Они могут генерироваться во время резервного копирования баз данных "онлайн" и обязательно[что?] для восстановления.
II_WORK  | Используется для хранения рабочих файлов, генерируемых сервером при выполнении запросов к базе данных.

## Базы данных

[править | править код]

Установка Ingres (или экземпляр) может поддерживать множество баз данных, каждая из которых принадлежит любому пользователю известному установке. Установка позволяет множеству баз данных быть доступным одновременно. Количество баз данных — настраиваемая величина. Обратите внимание, что это просто ограничивает количество баз данных, доступных в любой момент, и множество других баз данных может быть создано.

При создании установки Ingres сервера, будут созданы базы данных "iidbdb" и "imadb", принадлежащие пользователю "$ingres". База данных iidbdb также известная, как "Master Catalog database", содержит множество специальных таблиц для управления самой установкой. База данных imadb (Management Architecture database) тоже включает зарегистрированные объекты, использующиеся для управления установкой.

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

## Типы данных

[править | править код]

Ingres поддерживает:

* Обычные типы данных
* Целые числа (размером 1 байт, 2 байта, 4 байта и 8 байт)
* Числа с плавающей точкой (размером 4 байта, 8 байт)
* Числа с фиксированной точкой
* Символьный тип (фиксированной и переменной длины)
* Двоичный тип (фиксированной и переменной длины)
* Дата и время (ANSI дата, время и timestamp)

* Unicode типами данных
* nchar
* nvarchar

* Типы для больших объектов
* long varchar
* long byte

* Собственные типы
* ingres date
* money

* Геопространственные типы данных (версия 10S и позже)
* point, multipoint
* linestring, multilinestring
* polygon, multipolygon
* geometry, geometrycollection

## Ingres в России

[править | править код]

СУБД Ingres успешно эксплуатируется в России начиная с 1994 года[1].

## Примечания

[править | править код]

1. ↑ Сафонов О. В. Опыт использования СУБД Ingres для построения распределённых неоднородных систем депозитария Архивировано 11 января 2007 года.

## Ссылки

[править | править код]

* Сайт Ingres Corporation
* The Design and Implementation of INGRES
* Ingres FAQ
* University INGRES, Version 8.9

Сообщества

* North American Ingres Users Association Архивная копия от 9 декабря 2008 на Wayback Machine
* UK Ingres Users Association

Системы управления базами данных (СУБД)

Клиент-серверные|

* Caché
* CouchDB
* IMS
* DB2
* Firebird
* FoundationDB
* Informix
* Ingres
* Interbase
* MS SQL Server
* MongoDB
* MySQL
* mSQL
* Neo4j
* Oracle Database
* Pervasive SQL
* PostgreSQL
* Sybase ASE
* Sybase ASA
* Sybase IQ
* Teradata Database
* ЛИНТЕР
* Yandex Database
* СУБД_Ред_База_Данных

Движки|

* BDE
* Berkeley DB
* C-Store
* db4o
* HSQLDB
* Mnesia
* PrimeBase
* Redis
* Rdb
* SQLite
* ZODB

Файл-серверные|

* DataFlex
* dBase
* MS Access
* OpenOffice Base
* Paradox