Base de datos multivalor
Una base de datos multivalor es un tipo de base de datos NoSQL y multidimensional. Generalmente se la considera 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 y otras empresas. Estas bases de datos se diferencian de las bases de datos relacionales 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 las clasifica con MUMPS dentro de la categoría de bases de datos posrelacionales, 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. 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.
Ken Simms escribió DataBASIC, a veces conocido como S-BASIC, a mediados de los años 70. Estaba basado en Dartmouth BASIC, pero tenía funciones mejoradas para la gestión de datos. Simms jugó mucho a Star Trek (un juego de computadora basado en texto escrito originalmente en Dartmouth BASIC) mientras desarrollaba el lenguaje, para asegurarse de que DataBASIC funcionara a su entera satisfacción.
Tres de las implementaciones de MultiValue (PICK versión R77, Microdata Reality 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, no existen estándares en 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. 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).
Una hipótesis razonable para este modelo de datos que dura 50 años, 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:
- una base de datos o esquema se llama "cuenta"
- una tabla o colección se llama "archivo"
- una columna o campo se llama un campo o un "atributo", que se compone de "atributos multivalor" y "atributos subvalor" para almacenar múltiples valores en el mismo atributo.
- una fila o documento se llama "record" o "item"
Los datos se almacenan en dos archivos separados: un "archivo" para almacenar los datos sin procesar y un "diccionario" para almacenar el formato de visualización de los datos sin procesar.
Por ejemplo, supongamos que hay un archivo (tabla) llamado "PERSON". 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 [joe@example.com, jdb@example.net, joe_bacde@example.org] se puede almacenar y acceder a ella mediante una sola consulta al acceder al registro asociado.
Lograr la misma relación (uno a muchos) dentro de un sistema de base de datos relacional tradicional implicarí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 multivaloresBASIC
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. 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 único 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.
- PEOPLE LAST_NAME FIRST_NAME EMAIL_ADDRESSES Con LAST_NAME 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
- Rocket U2 (UniVerse y UniData)
- OpenQM by Ladybridge Systems
- Realidad por Northgate-IS
- Caché por InterSystems
Referencias
- ^ "ONgroup". www.ongroup.com.
- ^ Nelson, Don (1965). "Lengua y sistema de recuperación de información general" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(Ayuda) - ^ "Microdata Alumni". www.microdata-alumni.org.
- ^ Sisk, Jonathan (1987). Una guía de programador. Tab Books.
- ^ "Home". www.northgate-is.com.
- ^ "MultiValue Symbol".
- ^ Wolthuis, Dawn (2002). "MultiValue Family Tree" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(Ayuda) - ^ "Post-Relational Database Reference".
- ^ Nelson, Don (1964). "Lengua y sistema de recuperación de información generalizada" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(Ayuda)
Enlaces externos
- DB-Engines Ranking of Multivalue DBMS por popularidad, actualizado mensual
- Zeobase: Una base de datos multivalor