stringtranslate.com

Sistema de gestión de identidades

El sistema de gestión de bases de datos integrado ( IDMS ) es un sistema de gestión de bases de datos de modelo de red ( CODASYL ) para mainframes . Fue desarrollado por primera vez en BF Goodrich y luego comercializado por Cullinane Database Systems (rebautizado Cullinet en 1983). Desde 1989, el producto ha sido propiedad de Computer Associates (ahora CA Technologies), que lo rebautizó Advantage CA-IDMS y luego simplemente a CA IDMS . En 2018, Broadcom adquirió CA Technologies, rebautizándolo nuevamente como IDMS . [1]

Historia

Las raíces de IDMS se remontan al sistema pionero de gestión de bases de datos llamado Integrated Data Store (IDS), desarrollado en General Electric por un equipo dirigido por Charles Bachman y lanzado por primera vez en 1964. [2] A principios de la década de 1960, el grupo informático de la división química de BF Goodrich tomó el IDS de su forma original y lo reescribió en un lenguaje llamado lenguaje de sistema intermedio (ISL). [3] ISL se diseñó como un lenguaje de programación de sistemas portátil capaz de producir código para una variedad de máquinas de destino. Dado que ISL estaba escrito en ISL, se podía trasladar a otras arquitecturas de máquinas con relativa facilidad y luego producir código que se ejecutara en ellas.

El grupo informático de la División Química había pensado en vender copias de IDMS a otras empresas, pero la dirección le dijo que no estaban en el negocio de los productos de software. Finalmente, se llegó a un acuerdo con John Cullinane para comprar los derechos y comercializar el producto. Como Cullinane estaba obligado a remitir las regalías a BF Goodrich , todos los productos complementarios se enumeraban y facturaban como productos separados, aunque fueran obligatorios para que funcionara el producto principal de IDMS. Esto a veces confundía a los clientes.

Las plataformas originales fueron el ordenador GE 235 y el ordenador de conmutación de mensajes GE DATANET-30 : más tarde, el producto se adaptó a los mainframes de IBM y al hardware DEC e ICL . La versión adaptada a IBM funciona en sistemas mainframe de IBM ( System/360 , System/370 , System/390 , zSeries , System z9 ). A mediados de los años 80, se afirmó que se habían vendido unas 2.500 licencias de IDMS. Entre los usuarios se encontraban Strategic Air Command , Ford of Canada, Ford of Europe, Jaguar Cars, Clarks Shoes UK, AXA /PPP, MAPFRE , Royal Insurance, Tesco , Manulife, Hudson's Bay Company , Cleveland Clinic, Bank of Canada , General Electric, Aetna y BT en el Reino Unido.

Una versión para su uso en la serie de ordenadores PDP-11 de Digital Equipment Corporation se vendió a DEC y se comercializó como DBMS-11. En 1976, el código fuente fue licenciado a ICL , que adaptó el software para que se ejecutara en sus mainframes de la serie 2900 y, posteriormente, también en la antigua gama 1900. ICL continuó el desarrollo del software independientemente de Cullinane, vendiendo el producto original adaptado bajo el nombre de ICL 2900 IDMS y una versión mejorada como IDMSX . En esta forma, fue utilizado por muchos grandes usuarios del Reino Unido, un ejemplo es el sistema Pay-As-You-Earn operado por Inland Revenue. Muchos de estos sistemas IDMSX para el gobierno del Reino Unido todavía estaban en funcionamiento en 2013.

A principios y mediados de los años 1980, los sistemas de gestión de bases de datos relacionales empezaron a ganar popularidad, impulsados ​​por la creciente potencia del hardware y la transición a las minicomputadoras y la arquitectura cliente-servidor . Las bases de datos relacionales ofrecían una mayor productividad de desarrollo en comparación con los sistemas CODASYL , y las objeciones tradicionales basadas en el bajo rendimiento fueron disminuyendo lentamente.

Cullinet intentó seguir compitiendo contra DB2 de IBM y otras bases de datos relacionales desarrollando un front-end relacional y una gama de herramientas de productividad, entre las que se incluía Automatic System Facility (ASF), que utilizaba una función preexistente de IDMS llamada LRF (Logical Record Facility). ASF era un generador de bases de datos que permitía rellenar los espacios en blanco y que también desarrollaría una miniaplicación para mantener las tablas.

Es difícil juzgar si tales características pudieron haber tenido éxito en extender la vida útil del producto, pero tuvieron poco impacto en el largo plazo. Aquellos usuarios que se quedaron con IDMS estaban interesados ​​principalmente en su alto rendimiento, no en sus capacidades relacionales. Se reconoció ampliamente (con la ayuda de una campaña de alto perfil de EF Codd , el padre del modelo relacional ) que había una diferencia significativa entre una base de datos relacional y una base de datos de red con una apariencia relacional.

En 1989, Computer Associates continuó con el desarrollo y la publicación de la versión 12.0 con SQL completo tras la adquisición de Cullinet [4] en 1992-93. CA Technologies siguió comercializando y dando soporte a CA IDMS y a IDMS mejorado en versiones posteriores mediante compatibilidad con TCP/IP , compatibilidad con confirmación en dos fases , publicación XML , compatibilidad con procesadores especializados zIIP , acceso habilitado para Web en combinación con CA IDMS Server, SQL Option y administración de bases de datos GUI a través de la herramienta CA IDMS Visual DBA. Los sistemas CA-IDMS siguen funcionando en empresas de todo el mundo. Muchos clientes han optado por habilitar sus aplicaciones para la Web a través de CA-IDMS SQL Option, que forma parte de la estrategia de base de datos dual de CA Technologies.

Diccionario de datos integrado

Una de las características sofisticadas de IDMS era su diccionario de datos integrado (IDD). El IDD se desarrolló principalmente para mantener definiciones de bases de datos. Era en sí mismo una base de datos IDMS. Los administradores de bases de datos y otros usuarios interactuaban con el IDD mediante un lenguaje llamado lenguaje de definición de diccionario de datos (DDDL). El IDD también se utilizaba para almacenar definiciones y códigos para otros productos de la familia IDMS, como ADS/Online e IDMS-DC. La ventaja del IDD era que era extensible y podía utilizarse para crear definiciones de prácticamente cualquier cosa. Algunas empresas lo utilizaban para desarrollar documentación interna.

Descripción general

Modelo de datos lógicos

El modelo de datos que se ofrece a los usuarios es el modelo de red CODASYL . Los principales conceptos de estructuración de este modelo son los registros y los conjuntos. Los registros siguen esencialmente el patrón COBOL , que consiste en campos de diferentes tipos: esto permite una estructura interna compleja, como elementos y grupos repetidos.

El concepto de estructuración más distintivo en el modelo Codasyl es el conjunto . No debe confundirse con un conjunto matemático, un conjunto Codasyl representa una relación de uno a muchos entre registros: un propietario, muchos miembros. El hecho de que un registro pueda ser miembro de muchos conjuntos diferentes es el factor clave que distingue al modelo de red del modelo jerárquico anterior . Al igual que con los registros, cada conjunto pertenece a un tipo de conjunto nombrado (los diferentes tipos de conjuntos modelan diferentes relaciones lógicas). De hecho, los conjuntos están ordenados y la secuencia de registros en un conjunto se puede utilizar para transmitir información. Un registro puede participar como propietario y miembro de cualquier número de conjuntos.

Los registros tienen identidad, que se representa mediante un valor conocido como clave de base de datos . En IDMS, como en la mayoría de las demás implementaciones de Codasyl, la clave de base de datos está directamente relacionada con la dirección física del registro en el disco. Las claves de base de datos también se utilizan como punteros para implementar conjuntos en forma de listas enlazadas y árboles. Esta estrecha correspondencia entre el modelo lógico y la implementación física (que no es una parte estrictamente necesaria del modelo de Codasyl, pero era una característica de todas las implementaciones exitosas) es responsable de la eficiencia de la recuperación de la base de datos, pero también hace que operaciones como la carga y la reestructuración de la base de datos sean bastante costosas.

Se puede acceder a los registros directamente por clave de base de datos, siguiendo las relaciones de conjunto o mediante acceso directo utilizando valores de clave. Inicialmente, el único acceso directo era a través de hash, un mecanismo conocido en el modelo Codasyl como acceso CALC. En IDMS, el acceso CALC se implementa a través de un conjunto interno, que vincula todos los registros que comparten el mismo valor hash a un registro propietario que ocupa los primeros bytes de cada página del disco.

En los años siguientes, algunas versiones de IDMS agregaron la capacidad de acceder a los registros utilizando índices similares a BTree .

Almacenamiento

IDMS organiza sus bases de datos como una serie de archivos. Estos archivos están mapeados y preformateados en las llamadas áreas . Las áreas están subdivididas en páginas que corresponden a bloques físicos en el disco. Los registros de la base de datos se almacenan dentro de estos bloques.

El administrador de bases de datos asigna una cantidad fija de páginas en un archivo para cada área. Luego, define qué registros se almacenarán en cada área y los detalles de cómo se almacenarán.

IDMS intercala páginas especiales de asignación de espacio en toda la base de datos. Estas páginas se utilizan para realizar un seguimiento del espacio libre disponible en cada página de la base de datos. Para reducir los requisitos de E/S, solo se realiza un seguimiento del espacio libre de todas las páginas cuando el espacio libre del área cae por debajo del 30 %.

Hay cuatro métodos disponibles para almacenar registros en una base de datos IDMS: directo, secuencial, CALC y VIA. La versión Fujitsu/ICL IDMSX amplía esta función con dos métodos más: Page Direct y Random.

En el modo directo, la clave de la base de datos de destino es especificada por el usuario y se almacena lo más cerca posible de esa clave de base de datos, y la clave de base de datos real en la que está almacenado el registro se devuelve al programa de aplicación.

La colocación secuencial (que no debe confundirse con la colocación secuencial indexada) simplemente coloca cada registro nuevo al final del área. Esta opción rara vez se utiliza.

CALC utiliza un algoritmo de hash para decidir dónde colocar el registro; la clave de hash proporciona entonces una recuperación eficiente del registro. Toda el área de CALC está preformateada, cada una con un encabezado que consiste en un registro "propietario" especial de CALC. El algoritmo de hash determina un número de página (a partir del cual se puede determinar la dirección física del disco), y el registro se almacena entonces en esta página, o lo más cerca posible de ella, y se vincula al registro de encabezado en esa página utilizando el conjunto CALC. Los registros CALC se vinculan al registro CALC Owner de la página utilizando una única lista de enlaces (punteros). El CALC Owner ubicado en el encabezado de la página posee así el conjunto de todos los registros que apuntan a su página particular (ya sea que los registros se almacenen en esa página o, en el caso de un desbordamiento, en otra página).

CALC proporciona un almacenamiento y una recuperación extremadamente eficientes: IDMS puede recuperar un registro CALC en operaciones de E/S 1.1. Sin embargo, el método no se adapta bien a los cambios en el valor de la clave principal y se necesita una reorganización costosa si es necesario ampliar el número de páginas. Una solución alternativa es ampliar el área y, a continuación, ejecutar un programa de aplicación que escanee el área de forma secuencial en busca de cada registro CALC y, a continuación, utilice el verbo MODIFY para actualizar cada registro. Esto hace que cada registro CALC se conecte al conjunto CALC para la página de destino correcta, tal como se calculó para el nuevo rango de páginas del área. La desventaja de este método es que ahora habrá muy pocos registros CALC en sus páginas de destino y es probable que navegar por el conjunto CALC de cada página implique muchas operaciones de E/S. Como resultado, se recomienda utilizar esta solución alternativa solo en circunstancias extremas, ya que el rendimiento se verá afectado.

La colocación de VIA intenta almacenar un registro cerca de su propietario en un conjunto particular. Por lo general, los registros se agrupan en la misma página física que el propietario. Esto permite una navegación eficiente cuando se accede al registro siguiendo esa relación de conjunto. (VIA permite almacenar registros en un área IDMS diferente para que puedan almacenarse por separado del propietario, pero permanecer agrupados juntos para mayor eficiencia. Dentro de IDMSX también pueden estar separados del propietario por una cantidad determinada de páginas).

Page Direct (sólo IDMSX) es similar al modo directo, sin embargo, se especifica un número de página de la base de datos de destino y el registro se conecta a la cadena CALC para esa página.

Aleatorio (sólo IDMSX) asigna un número de página de destino a la ocurrencia del registro cuando se almacena utilizando el algoritmo CALC (esto utiliza una clave dentro del registro o, en el caso de aleatorio sin clave, utiliza la fecha y hora de almacenamiento como una semilla para el algoritmo CALC).

Los conjuntos se mantienen generalmente como listas enlazadas, utilizando la clave de la base de datos como puntero. Cada registro incluye un enlace directo al registro siguiente; el diseñador de la base de datos puede elegir si desea incluir punteros de propietario y punteros anteriores (si no se proporcionan, la navegación en esas direcciones será más lenta).

Algunas versiones de IDMS incluyeron posteriormente la capacidad de definir índices: ya sean índices de registros, que permiten localizar registros a partir del conocimiento de una clave secundaria, o índices de conjuntos, que permiten recuperar los miembros de un conjunto por valor de clave.

Los registros de ubicación directa y aleatoria de la página IDMSX se utilizan normalmente junto con los índices de registros, como se describió anteriormente. Los índices en sí están sujetos a reglas de ubicación, ya sea directa (lo que realmente significa "CALC utilizando el ID del índice como clave") o CALC.

Historial de versiones (era de Computer Associates/CA)

Grupos de usuarios

IDMS cuenta con asociaciones de usuarios sin fines de lucro que utilizan o brindan soporte a CA IDMS o productos relacionados. Entre ellas se incluyen:

Véase también

Referencias

  1. ^ "Broadcom adquirirá CA Technologies por 18.900 millones de dólares en efectivo". 11 de julio de 2018.
  2. ^ Andrew L. Russell (9 de abril de 2011). «Historia oral: Charles Bachman». IEEE Oral History Network . Consultado el 3 de septiembre de 2013 .
  3. ^ Karasz, Peter (1977). "Un lenguaje de sistemas intermedios para el PDP-11". ACM SIGPLAN Notices . 12 (7): 85–100. doi :10.1145/954639.954646.
  4. ^ Información y resultados de 'CA completa la fusión con Cullinet. (Computer Associates International Inc., Cullinet Software Inc.)' | AccessMyLibrary – Promoción de la defensa de las bibliotecas
  5. ^ findarticles.com
  6. ^ Computer Associates anuncia la versión 15.0 de CA-IDMS para OS390 y zOS Las funciones avanzadas de disponibilidad y escalabilidad respaldan las mayores demandas de los clientes para las transacciones de comercio electrónico... [ enlace roto ]
  7. ^ Ventaja de CA La base de datos CA-IDMS r16 para zOS optimiza el rendimiento, la facilidad de uso y la flexibilidad La base de datos de clientes de 1,7 terabytes de BT procesa 10 mil millones de transacciones al año con... [ enlace roto ]
  8. ^ CA IDMS r17 aprovecha el motor zIIP para ofrecer mayor capacidad La última versión de la base de datos destaca el liderazgo de CA en la utilización de procesadores especializados para mainframes de IBM Ar mejorado... [ enlace muerto ]
  9. ^ http://www.ca.com/~/media/Files/productbriefs/idms_db_ps_190116.pdf Archivado el 8 de julio de 2011 en Wayback Machine [ URL básica PDF ]

Enlaces externos