stringtranslate.com

Base de datos multivalor

Una base de datos MultiValue es un tipo de base de datos NoSQL y multidimensional , generalmente considerada sinónimo de PICK , una base de datos desarrollada originalmente como el sistema operativo Pick .

Las bases de datos MultiValue incluyen productos comerciales de Rocket Software , Revelation, InterSystems , Northgate Information Solutions , ONgroup, [1] y otras empresas. Estas bases de datos se diferencian de una base de datos relacional en que tienen características que admiten y fomentan el uso de atributos que pueden tomar una lista de valores, en lugar de que todos los atributos tengan un solo valor. A menudo se clasifican con MUMPS dentro de la categoría de bases de datos post-relacionales , aunque el modelo de datos en realidad es anterior al modelo relacional . A diferencia de las herramientas SQL-DBMS, se puede acceder a la mayoría de las bases de datos MultiValue con o sin SQL .

Historia

Don Nelson diseñó el modelo de datos MultiValue a principios y mediados de la década de 1960. [2] Dick Pick , un desarrollador de TRW , trabajó en la primera implementación de este modelo para el ejército de los EE. UU. en 1965. Pick consideró que el software era de dominio público porque estaba escrito para el ejército. Esta fue solo la primera disputa relacionada con las bases de datos MultiValue que se abordó en los tribunales. [3]

Ken Simms escribió DataBASIC, a veces conocido como S-BASIC, a mediados de la década de 1970. Estaba basado en Dartmouth BASIC , pero tenía características mejoradas para la gestión de datos. Simms jugó mucho a Star Trek (un juego de computadora temprano basado en texto escrito originalmente en Dartmouth BASIC) mientras desarrollaba el lenguaje, para asegurarse de que DataBASIC funcionara a su satisfacción. [4]

Tres de las implementaciones de MultiValue (PICK versión R77, Microdata Reality [5] 3.x y Prime Information 1.0) eran muy similares. A pesar de los intentos de estandarización, en particular por parte de International Spectrum y la Spectrum Manufacturers Association, que diseñaron un logotipo para que todos lo usen, [6] no existen estándares en todas las implementaciones de MultiValue. Posteriormente, estas versiones divergieron, aunque con algunas superposiciones. Estas corrientes de desarrollo de bases de datos MultiValue podrían clasificarse como una derivada de PICK R83, una de Microdata Reality y una de Prime Information. [7] Debido a las diferencias, algunas implementaciones tienen disposiciones para admitir varias versiones de los lenguajes. Se puede encontrar un intento de documentar las similitudes y diferencias en la Referencia de bases de datos post-relacionales (PRDB). [8]

Una hipótesis razonable para este modelo de datos que dura 50 años, [9] con nuevas implementaciones de bases de datos del modelo incluso en el siglo XXI, es que proporciona soluciones de bases de datos económicas.

Ejemplo de modelo de datos

En un sistema de base de datos MultiValue:

Los datos se almacenan utilizando dos archivos separados: un "archivo" para almacenar datos sin procesar y un "diccionario" para almacenar el formato para mostrar los datos sin procesar.

Por ejemplo, supongamos que hay un archivo (tabla) llamado "PERSONA". En este archivo, hay un atributo llamado "eMailAddress". El campo eMailAddress puede almacenar una cantidad variable de valores de direcciones de correo electrónico en un solo registro. La lista [[email protected], [email protected], [email protected]] se puede almacenar y acceder a ella mediante una sola consulta al acceder al registro asociado.

Para lograr la misma relación (de uno a muchos) dentro de un sistema de base de datos relacional tradicional, se necesitaría crear una tabla adicional para almacenar la cantidad variable de direcciones de correo electrónico asociadas con un único registro "PERSONA". Sin embargo, los sistemas de bases de datos relacionales modernos también admiten este modelo de datos de múltiples valores. Por ejemplo, en PostgreSQL , una columna puede ser una matriz de cualquier tipo base.

Datos BASIC de múltiples valores

Al igual que el lenguaje de programación Java , el compilador Data/BASIC típico compila en código P, o bytecode , y se ejecuta en una máquina P, siendo jBASE una notable excepción. [ cita requerida ] Tiene tantas implementaciones diferentes (compiladores) como bases de datos MultiValue.

Al igual que el lenguaje de programación PHP , el lenguaje Data/BASIC realiza toda la conversión de tipos para el programador.

Lenguaje de consulta multivalor

Conocido como ENGLISH, ACCESS, AQL, UniQuery, Retrieve, CMQL y con muchos otros nombres a lo largo de los años, correspondientes a las diferentes implementaciones de MultiValue, el lenguaje de consulta MultiValue difiere de SQL en varios aspectos. Cada consulta se emite contra un solo diccionario dentro del esquema, que podría entenderse como un archivo virtual o un portal a la base de datos a través del cual se pueden ver los datos.

LISTA DE PERSONAS APELLIDO NOMBRE DIRECCIONES DE CORREO ELECTRÓNICO CON APELLIDO COMO "Van..."

La declaración anterior enumeraría todas las direcciones de correo electrónico de cada persona cuyo apellido comience con "Van". Se generaría una única entrada para cada persona, con varias líneas que mostrarían las distintas direcciones de correo electrónico (sin repetir otros datos sobre la persona).

Véase también

Referencias

  1. ^ "ONgroup". www.ongroup.com .
  2. ^ Nelson, Don (1965). "Lenguaje y sistema de recuperación de información general (GIRLS)" (PDF) . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  3. ^ "Alumnos de microdatos". www.microdata-alumni.org .
  4. ^ Sisk, Jonathan (1987). PICK BASIC: Guía del programador. Tab Books.
  5. ^ "Inicio". www.northgate-is.com .
  6. ^ "Símbolo multivalor".
  7. ^ Wolthuis, Amanecer (2002). "Árbol genealógico de valores múltiples" (PDF) . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  8. ^ "Referencia de bases de datos post-relacionales".
  9. ^ Nelson, Don (1964). "Lenguaje y sistema de recuperación de información generalizada (GIRLS)" (PDF) . {{cite journal}}: Requiere citar revista |journal=( ayuda )

Enlaces externos