Ingres

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Ingres Database
Ingres Logo.svg
Ingres Corporation logo
Тип

Реляционная СУБД

Разработчик

Ingres Corporation

Написана на

Си

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

10 (12 октября 2010)

Лицензия

GNU General Public License

Сайт

actian.com

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

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

История[править | править вики-текст]

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, и позже Eric Allman — основали Sybase. Sybase был вторым продуктом (после 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].

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]

Сообщества