Ingres Database ( / ɪ ŋ ˈ ɡ r ɛ s / ing- GRESS ) es un sistema propietario de gestión de bases de datos relacionales SQL destinado a admitir grandes aplicaciones comerciales y gubernamentales.
Actian Corporation, que anunció en abril de 2018 que será adquirida por HCL Technologies , [2] controla el desarrollo de Ingres y pone a disposición binarios certificados para su descarga, además de brindar soporte en todo el mundo. Hubo una versión de código abierto de Ingres pero ya no está disponible para descargar desde Actian. Sin embargo, todavía hay una versión del código fuente disponible en GitHub . [3]
En sus primeros años, Ingres marcó un hito importante en la historia del desarrollo de bases de datos. Ingres comenzó como un proyecto de investigación en UC Berkeley , a principios de la década de 1970 y finalizó en 1985. [4] Durante este tiempo, Ingres se mantuvo en gran medida similar al seminal System R de IBM en concepto; se diferenciaba por unas licencias más permisivas del código fuente, por estar basado en gran medida en máquinas DEC , tanto bajo UNIX [5] como VAX/VMS , [6] y por proporcionar QUEL como lenguaje de consulta en lugar de SQL. En ese momento se consideraba que QUEL era más fiel al álgebra relacional de Edgar F. Codd (especialmente en lo que respecta a la componibilidad), pero SQL era más fácil de analizar y menos intimidante para aquellos sin una formación formal en matemáticas. [7]
Cuando ANSI prefirió SQL a QUEL como parte del estándar SQL de 1986 (SQL-86), Ingres se volvió menos competitivo frente a productos rivales como Oracle hasta que futuras versiones de Ingres también proporcionaron SQL. [8] Muchas empresas se derivaron de la tecnología original de Ingres, incluida la propia Actian, originalmente conocida como Relational Technology Inc. , y la base de datos NonStop SQL desarrollada originalmente por Tandem Computers pero ahora ofrecida por Hewlett Packard Enterprise .
Ingres comenzó como un proyecto de investigación en la Universidad de California, Berkeley , a principios de la década de 1970 y finalizó en 1985. [4] El código original, como el de otros proyectos en Berkeley, estaba disponible a un costo mínimo en una versión de BSD . licencia . Ingres generó una serie de aplicaciones de bases de datos comerciales, incluidas Sybase , Microsoft SQL Server , NonStop SQL y muchas otras. [9]
Postgres ( Post In gres ), un proyecto que comenzó a mediados de la década de 1980, [10] luego evolucionó a PostgreSQL . Es compatible con ACID y es totalmente transaccional (incluidas todas las declaraciones DDL ) y es parte de la iniciativa de pila de código abierto Lisog .
En 1973, cuando IBM comenzaba el proyecto System R , el equipo de investigación publicó una serie de artículos que describían el sistema que estaban construyendo. [9] Dos científicos de Berkeley, Michael Stonebraker y Eugene Wong , se interesaron en el concepto después de leer los artículos y comenzaron su propio proyecto de investigación de bases de datos relacionales. [11]
Ya habían recaudado dinero para investigar un sistema de base de datos geográfica para el grupo de economía de Berkeley, al que llamaron Ingres , para el Sistema de recuperación de gráficos interactivos . Decidieron utilizar este dinero para financiar su proyecto relacional y lo utilizaron como semilla para un proyecto nuevo y mucho más grande. Decidieron reutilizar el nombre original del proyecto y el nuevo proyecto se convirtió en Universidad INGRES . [11] Para obtener más financiación, Stonebraker se acercó a DARPA , la fuente obvia de financiación para la investigación y el desarrollo informático en ese momento, pero tanto DARPA como la Oficina de Investigación Naval (ONR) los rechazaron [12] porque ya estaban financiando la base de datos. investigación en otros lugares. Stonebraker luego presentó su idea a otras agencias y, con la ayuda de sus colegas, finalmente obtuvo un modesto apoyo de la NSF [13] y de tres agencias militares: la Oficina de Investigación Científica de la Fuerza Aérea , la Oficina de Investigación del Ejército y la Oficina de Sistemas Electrónicos de la Marina. Dominio.
Con esta financiación, Ingres fue desarrollado a mediados de la década de 1970 por un equipo rotativo de estudiantes y personal. Ingres pasó por una evolución similar a la del System R, con un primer prototipo en 1974 seguido de revisiones importantes para que el código fuera mantenible. Luego, Ingres se difundió entre una pequeña comunidad de usuarios y los miembros del proyecto reescribieron el prototipo repetidamente para incorporar la experiencia acumulada, los comentarios de los usuarios y nuevas ideas. El proyecto de investigación finalizó en 1985. [4]
Ingres siguió siendo en gran medida similar al System R de IBM en concepto, pero se basó en gran medida en máquinas DEC , ambas bajo UNIX [5]
A diferencia de System R, el código fuente de Ingres estaba disponible (en cinta) por una tarifa nominal. En 1980 se habían distribuido unos 1.000 ejemplares, [14] principalmente a universidades. Muchos estudiantes de UC Berkeley y otras universidades que utilizaron el código fuente de Ingres trabajaron en varios sistemas de software de bases de datos comerciales.
Los estudiantes de Berkeley, Jerry Held y más tarde Karel Youseffi, se trasladaron a Tandem Computers , donde crearon un sistema de base de datos que evolucionó hasta convertirse en NonStop SQL . El sistema de base de datos Tandem fue una reimplementación de la tecnología Ingres. [15] Evolucionó hasta convertirse en un sistema que se ejecutaba eficazmente en computadoras paralelas ; es decir, incluía funcionalidad para datos distribuidos, ejecución distribuida y transacciones distribuidas (siendo esta última bastante difícil). Los componentes del sistema se lanzaron por primera vez a finales de los años 1970. En 1989, el sistema podía ejecutar consultas en paralelo y el producto se hizo bastante famoso por ser uno de los pocos sistemas que escala casi linealmente con la cantidad de procesadores en la máquina: agregar una segunda CPU a un servidor NonStop SQL existente duplicará casi exactamente su desempeño. Posteriormente, Compaq compró Tandem , que comenzó a reescribirlo en 2000, y ahora el producto está en Hewlett-Packard Enterprise .
A principios de la década de 1980, Ingres compitió cara a cara con Oracle . [16] Los dos productos fueron ampliamente considerados como las principales implementaciones de bases de datos relacionales independientes del hardware; tenían funcionalidad, rendimiento, participación de mercado y precios comparables, y muchos comentaristas consideraban que Ingres era un producto (quizás marginalmente) superior. Sin embargo, aproximadamente a partir de 1985, Ingres perdió constantemente cuota de mercado. Una razón fue el marketing agresivo de Oracle; otro fue el creciente reconocimiento de SQL como el lenguaje de consulta relacional preferido. Ingres originalmente había proporcionado un lenguaje diferente, QUEL , y la conversión a SQL (entregada en la versión 6 de Ingres) tomó alrededor de tres años, perdiendo un tiempo valioso en la carrera.
Robert Epstein, el programador jefe del proyecto mientras estaba en Berkeley, formó Britton Lee, Inc. [17] junto con otros estudiantes del Proyecto Ingres, Paula Hawthorn y Michael Ubell; A ellos se les unió más tarde Eric Allman . Posteriormente, Epstein fundó Sybase . Sybase había sido el producto número 2 (detrás de Oracle ) durante algún tiempo durante los años 1980 y 1990, antes de que Informix surgiera "de la nada" y tomara el control en 1997. La línea de productos de Sybase también había sido licenciada a Microsoft en 1992, quien cambió su nombre a Microsoft. como Microsoft SQL Server . Esta relación se agrió a finales de la década de 1990 y hoy SQL Server supera en ventas a Sybase por un amplio margen.
Varias empresas utilizaron el código fuente de Ingres para producir productos. La más exitosa fue una empresa llamada Relational Technology, Inc. (RTI), fundada en 1980 por Stonebraker y Wong, y otro profesor de Berkeley, Lawrence A. Rowe. [18] RTI pasó a llamarse Ingres Corporation a finales de los años 1980. La empresa transfirió el código a DEC VAX/VMS , que era el sistema operativo comercial para las computadoras DEC VAX . También desarrollaron una colección de herramientas de interfaz para crear y manipular bases de datos (por ejemplo, redactores de reporteros, entrada y actualización de formularios, etc.) y herramientas de desarrollo de aplicaciones. Con el tiempo, gran parte del código fuente se reescribió para agregar funcionalidad (por ejemplo, transacciones de múltiples declaraciones, SQL, método de acceso al árbol B, tipos de datos de fecha/hora, etc.) y mejorar el rendimiento (por ejemplo, consultas compiladas, servidor multiproceso). .
La empresa fue comprada por ASK Corporation en noviembre de 1990. Los fundadores abandonaron la empresa durante los meses siguientes.
En 1994, Computer Associates compró ASK/Ingres [19] [20]
En febrero de 2000, Computer Associates anunció la disponibilidad general de Ingres II 2.0 para Linux. Además de los componentes que se encuentran en el SDK, la edición completa contiene más módulos, como:
Las versiones 6.4 e Ingres II de Ingres han sido durante mucho tiempo un sistema de gestión de bases de datos (DBMS) de uso común, principalmente en operaciones de centros de datos en universidades y otros organismos públicos. Durante un tiempo, todavía pudo resistir el dominio de Oracle debido a los bajos costos de licencia.
Además de los bajos costes de licencia, Ingres II tenía la ventaja de requerir menos recursos que, por ejemplo, Oracle, por lo que también podía utilizarse en máquinas más pequeñas. Las desventajas eran la dificultad de uso, el menor número de plataformas en las que se ejecutaba este sistema y menos aplicaciones compatibles con Ingres.
Considerando que el rendimiento de Ingres era comparable al de otros grandes DBMS, Computer Associates aumentó considerablemente los derechos de licencia, perdiendo así una ventaja clave sobre Oracle. La falta de marketing de Computer Associates y la consiguiente falta de ventas, así como la falta de técnicos informáticos que dominen este sistema y a los que se pueda recurrir en caso necesario, fueron en parte responsables de la caída de la cuota de mercado. Como resultado, las instalaciones de Ingres fueron reemplazadas cada vez más por implementaciones de Oracle (sólo unas 15.000 instalaciones en todo el mundo en 2004).
En 2004, Computer Associates (CA) lanzó Ingres R3 bajo la licencia CA Trusted Open Source License (CATOSL), una licencia de código abierto . El código incluye el servidor DBMS y las utilidades y las herramientas de desarrollo de aplicaciones y de interfaz de usuario basadas en caracteres. En esencia, envió todo excepto OpenROAD , el entorno de desarrollo basado en GUI de Windows 4GL.
En noviembre de 2005, Garnett & Helfrich Capital, en asociación con Computer Associates , creó una nueva empresa llamada Ingres Corporation, que brindaba soporte y servicios para Ingres, OpenROAD y los productos de conectividad.
En febrero de 2006, Ingres Corporation lanzó Ingres 2006 bajo la Licencia Pública General GNU . Ingres 9.3 se lanzó el 7 de octubre de 2009. [21] Fue una versión limitada dirigida al desarrollo de nuevas aplicaciones en Linux y Windows únicamente. [22]
La empresa se centró en la comunidad de código abierto, con las siguientes iniciativas:
Ingres 10 se lanzó el 12 de octubre de 2010 como una versión completa, que admite actualizaciones desde versiones anteriores del producto. [29] Estaba disponible en Linux de 32 y 64 bits , y en Microsoft Windows de 32 bits . [30]
En noviembre de 2010, Garnett & Helfrich Capital adquirió el último 20% del capital social de Ingres Corp que aún no poseía. [31]
El 22 de septiembre de 2011, Ingres Corporation se convirtió en Actian Corporation, centrándose en tecnologías de integración y gestión de datos, incluidas Vectorwise /Vector, Btrieve / Pervasive PSQL /Zen, OpenROAD y la base de datos Ingres.
Actian fue adquirida por HCL Technologies y Sumeru Equity Partners por 330 millones de dólares. [32] En 2021, HCL Technologies se convirtió en el único propietario de Actian, que se convirtió en la división de datos y análisis de HCLSoftware.
El 18 de abril de 2017, Actian X se anunció como la primera base de datos híbrida integrada de forma nativa, diseñada para gestionar cargas de trabajo de datos transaccionales, analíticos e híbridos desde una única base de datos. [33]
Actian X combina las características y capacidades de Ingres y Vector, incluido el almacenamiento basado en columnas, el procesamiento de vectores, el paralelismo multinúcleo (y más): [34]
Con el anuncio de Ingres 9.1 (Ingres 2006 versión 2) en la plataforma VMS , las fechas de soporte para VMS ahora seguirán las fechas de lanzamiento normales de Actian enumeradas anteriormente con las siguientes excepciones; Se anunció la eliminación de la versión Alpha VMS 2.0 y el soporte empresarial finalizó el 31 de diciembre de 2009 y el soporte extendido se ofreció hasta el 31 de diciembre de 2013. Todo el soporte para VAX VMS finalizó el 31 de diciembre de 2008. [38]
Funciones principales disponibles en Actian Ingres 11.2:
Ingres es un sistema de gestión de bases de datos relacionales de un solo nodo y, por lo tanto, es "Compartir todo".
Ingres es un DBMS orientado a disco y, de forma predeterminada, emplea el modelo de almacenamiento n-ario (NSM), [40] también conocido como almacén de filas.
Sin embargo, Actian ha incorporado almacenamiento en columnas en su última versión de Ingres (Actian X) para mejorar su rendimiento en tareas OLAP. Actian X tiene dos motores de almacenamiento, el tradicional Ingres y X100, el mismo motor de Actian Vector .
Aunque actualmente se denomina "Base de datos híbrida Actian X", el término "Híbrido" se refiere a su capacidad de realizar tareas OLTP y OLAP empleando un modelo de almacenamiento híbrido (es decir, tanto de fila como de columna), no es que tenga un modelo híbrido. arquitectura de almacenamiento. [41]
En cuanto a la organización del almacenamiento, Ingres admite Heap , Hash , ISAM y B-tree . [42]
Ingres elige ISAM (método de acceso secuencial de índice) como estructura de datos de índice de forma predeterminada, pero también ofrece árbol B+, tabla hash y árbol R como opciones. En Actian X, también hay otras dos opciones disponibles solo para tablas X100: [43]
Ingres utiliza control de concurrencia multiversión (MVCC), control de concurrencia determinista y bloqueo de dos fases (detección de interbloqueo). [44]
Ingres admite cuatro niveles de aislamiento, desde favorecer la coherencia hasta maximizar la concurrencia: serializable, lectura repetible, lectura confirmada. y Lectura no confirmada, Serializable es el nivel de aislamiento predeterminado y proporciona la garantía de coherencia más sólida. [45]
Ingres admite uniones con algoritmos de unión hash, unión de clasificación y fusión y unión de bucle anidado. El optimizador de consultas determina qué tipo de algoritmo de unión utilizar en función del análisis de la consulta. Las uniones de bucle anidado se ven con mayor frecuencia en consultas disjuntas, donde las variables de correlación y los nombres de las tablas se usan arbitrariamente en orden aleatorio. Cuando no hay restricciones en ninguna de las tablas de la cláusula de unión y las filas que se unen son espacialmente continuas, es probable que el optimizador de consultas elija una unión tipo clasificación-fusión o una unión hash. [46]
Ingres se puede instalar como cliente (Client Installation) o como servidor (Server Installation), el cliente no tiene una base de datos asociada, pero permite acceder a la base de datos creada en la instalación del servidor.
Un sitio típico instala el cliente Ingres para los trabajadores en las computadoras que interactuarán con el servidor Ingres en el núcleo del sitio.
Tenga en cuenta que la expresión "instancia" es sinónima de "instalación".
Se puede considerar una instalación como una colección de procesos de servidor, memoria compartida y semáforos para la comunicación entre procesos, así como archivos de disco utilizados para el procesamiento de transacciones y la recuperación en caso de una falla del host o de la instalación.
Una instalación suele recibir el nombre de su ID de instalación. Este identificador consta de dos caracteres que distinguen entre mayúsculas y minúsculas y comienzan con una letra. El valor predeterminado es II. El ID de instalación se utiliza para calcular en qué puertos escucharán los servidores de Ingres. Por ejemplo, "II" indica que los servidores están escuchando en el puerto 21064 y 7 puertos después.
Cualquier host (máquina o máquina virtual) puede tener múltiples instalaciones de Ingres, pero cada instalación debe tener un identificador único para garantizar que los clientes y componentes interactúen con la instalación correcta.
Una instalación puede utilizar varios ID de instalación. Un ejemplo clásico es cuando necesitas ejecutar más de 8 procesos en el servidor. Además, aunque los servidores de bases de datos Ingres (iidbms) y los servidores de comunicaciones Ingres (iigcc) utilizan convencionalmente el mismo ID de instalación, no es necesario hacerlo.
Se deben asignar algunas rutas importantes en la ubicación donde se creó la instalación. Las rutas no cambiarán sin la reinstalación, por lo que debes tener cuidado al elegirlas.
Las rutas se muestran en la siguiente tabla. Tenga en cuenta que el prefijo "II_" no indica que estas rutas sean para la instalación "II". Cada instalación, independientemente de su ID, tendrá su propio conjunto de estas variables.
Una instalación (o instancia) de Ingres puede admitir múltiples bases de datos, cada una de las cuales es propiedad de cualquier usuario conocido en la instalación. La instalación permite acceder a múltiples bases de datos al mismo tiempo. El número de bases de datos es un valor configurable. Tenga en cuenta que esto simplemente limita la cantidad de bases de datos disponibles en un momento dado y se pueden crear muchas más bases de datos.
Al crear una instalación del servidor Ingres se crearán las bases de datos "iidbdb" e "imadb", propiedad del usuario "$ingres". La base de datos iidbdb, también conocida como "base de datos del catálogo maestro", contiene muchas tablas especiales para gestionar la instalación en sí. La base de datos imadb (base de datos de Management Architecture) también incluye objetos registrados utilizados para gestionar la instalación.
Es de destacar que las bases de datos no tienen un tamaño predeterminado. Cada base de datos de la instalación puede crecer en tamaño tanto como lo permita el espacio libre en el disco.
Ingres apoya:
El proyecto Postgres se inició a mediados de la década de 1980 para abordar las limitaciones de las implementaciones existentes de gestión de bases de datos del modelo relacional. El principal de ellos fue su incapacidad para permitir que el usuario defina nuevos dominios (o "tipos") que son combinaciones de dominios más simples (consulte el modelo relacional para obtener una explicación del término "dominio"). El proyecto exploró otras ideas, incluida la incorporación de medios de escritura única (por ejemplo, discos ópticos), el uso de almacenamiento masivo (por ejemplo, nunca borrar datos), inferencias y modelos de datos orientados a objetos. La implementación también experimentó con nuevas interfaces entre la base de datos y los programas de aplicación (por ejemplo, "portales", a los que a veces se hace referencia como "cursores gruesos"). [47]
El proyecto resultante, denominado "Postgres", tenía como objetivo introducir la cantidad mínima de funciones necesarias para agregar soporte completo de tipos. Estas incluían la capacidad de definir tipos, pero también la capacidad de describir completamente las relaciones, que hasta ese momento habían sido ampliamente utilizadas pero mantenidas exclusivamente por el usuario. En Postgres, la base de datos "entendía" las relaciones y podía recuperar información en tablas relacionadas de forma natural utilizando reglas .
En la década de 1990, Stonebraker inició una nueva empresa para comercializar Postgres, bajo el nombre de Illustra . Posteriormente, la empresa y la tecnología fueron adquiridas por Informix Corporation .
El manual de referencia de INGRIS se subdivide en cuatro partes: Quel describe los comandos y funciones que se utilizan dentro de INGRES.
Unix describe el...
Para VAX-lls que ejecutan Unix, la tecnología relacional ofrece DBMS actualizados BERKELEY, California - Relational Technology, Inc. (RTI) ha anunciado el Ingres VAX...
(En Michael Stonebraker) ... titularidad en Berkeley, Postgres (Post INGRES) en 1986.
La Universidad INGRES tenía tres aplicaciones cliente: el monitor de terminal, EQUEL C y GeoQUEL.
En busca de más apoyo, Stonebraker se acercó a la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA)"
El DEC ha proporcionado el equipo a los investigadores financiados mediante esta subvención...
Youseffi (en Tandem Computers) creó un sistema que evolucionó hasta convertirse en NonStop SQL.
El sistema de base de datos Tandem fue una reimplementación de la tecnología Ingres.
Este artículo rastrea el desarrollo de Oracle RDBMS a través del mainframe, ... innovaciones que permitieron a Oracle competir con tanto éxito en el mercado.
Robert Epstein, el programador jefe de Ingres en la década de 1970, cofundó Britton-Lee Incorporated y luego Sybase.
Eugene Wong... En 1980 cofundó (con Michael Stonebraker y Lawrence A. Rowe)... Relational Technology, Inc., más tarde rebautizada como INGRES Corporation.
Dado que las instrucciones UPDATE/DELETE posicionadas de Transact-SQL funcionan, de forma predeterminada, en la primera fila de un
cursor grueso
, se debe usar sp_cursor SETPOSITION para posicionar el cursor antes de emitir la instrucción UPDATE/DELETE posicionada.