Articulo de referencia

Base de datos MultiValue

Una base de datos MultiValue es un tipo de base de datos NoSQL y multidimensional . Generalmente se considera sinónimo de PICK , una base de datos desarrollada originalmente com...

Una base de datos MultiValue es un tipo de base de datos NoSQL y multidimensional . Generalmente se 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, [ 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 sean de valor único. A menudo se clasifican junto 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, la mayoría de las bases de datos MultiValue se pueden acceder tanto con SQL como sin él .

Historia

Don Nelson diseñó el modelo de datos MultiValue a principios y mediados de la década de 1960. [ 2 ] Dick Pick , 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 fue escrito para uso militar; esta fue solo la primera disputa relacionada con las bases de datos MultiValue que fue abordada por los tribunales. [ 3 ]

Ken Simms escribió DataBASIC, también conocido como S-BASIC, a mediados de la década de 1970. Estaba basado en Dartmouth BASIC , pero contaba con funciones mejoradas para la gestión de datos. Simms jugó mucho a Star Trek (un antiguo videojuego de texto escrito originalmente en Dartmouth BASIC) mientras desarrollaba el lenguaje, para asegurarse de que DataBASIC funcionara a su entera 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 uso común, [ 6 ] no existen estándares comunes entre las implementaciones de MultiValue. Posteriormente, estas variantes divergieron, aunque con cierta superposición. Estas líneas de desarrollo de bases de datos MultiValue podrían clasificarse como una derivada de PICK R83, otra de Microdata Reality y otra de Prime Information. [ 7 ] Debido a las diferencias, algunas implementaciones ofrecen soporte para varias variantes de los lenguajes. Un intento de documentar las similitudes y diferencias se puede encontrar en la Post-Relational Database Reference (PRDB). [ 8 ]

Una hipótesis razonable para que este modelo de datos haya durado 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 multivalor:

  • Una base de datos o esquema se denomina "cuenta".
  • Una tabla o colección se denomina "archivo".
  • Una columna o campo se denomina campo o "atributo", que se compone de "atributos multivalor" y "atributos subvalor" para almacenar múltiples valores en el mismo atributo.
  • Una fila o documento se denomina "registro" o "elemento".

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

Por ejemplo, supongamos que existe un archivo (tabla) llamado "PERSONA". En este archivo, hay un atributo llamado "eMailAddress". El campo eMailAddress puede almacenar un número variable 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 consultar mediante una sola consulta al acceder al registro correspondiente.

Lograr la misma relación (de uno a muchos) en 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 a un único registro de "PERSONA". Sin embargo, los sistemas de bases de datos relacionales modernos también admiten este modelo de datos multivalor. Por ejemplo, en PostgreSQL , una columna puede ser una matriz de cualquier tipo base.

Lenguaje básico multivalor

Multivalue Basic (ahora comúnmente conocido como mvBasic ) es una familia de lenguajes de programación más o menos comunes (y portátiles) para todas las bases de datos multivalor derivadas del sistema operativo Pick original. Las variaciones entre las implementaciones se conocen como variantes .

El lenguaje tiene su origen en Dartmouth Basic y en la primera implementación de PickBASIC (ahora D3 FlashBasic). Con el tiempo, se han añadido diversas personalizaciones y extensiones para aprovechar las capacidades incorporadas a las diferentes versiones, manteniendo en gran medida la coherencia.

Las sentencias y funciones de mvBasic están diseñadas para acceder al modelo de base de datos multivalor y aprovechar sus funcionalidades, ofreciendo además las capacidades habituales de la mayoría de los lenguajes modernos, como la criptografía y las comunicaciones. mvBasic es un lenguaje sin tipado estático, lo que facilita su uso con técnicas de programación estructurada .

Hay ejemplos de código disponibles, pero son limitados. Si bien existen aplicaciones y herramientas comerciales, la comunidad de bases de datos multivalor no ha adoptado el modelo de bibliotecas / paquetes de código abierto en la misma medida que otros lenguajes.

El compilador típico de mvBasic compila el código fuente del programa en un objeto ejecutable de código P y lo ejecuta en un intérprete, siendo D3 FlashBasic [ 10 ] y jBASE [ 11 ] excepciones notables.

Lenguaje de consulta multivalor

Conocido como ENGLISH, ACCESS, AQL, UniQuery, Retrieve, CMQL y por 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 realiza sobre un único diccionario dentro del esquema, que puede entenderse como un archivo virtual o un portal a la base de datos a través del cual se visualizan los datos.

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

La instrucción anterior mostraría todas las direcciones de correo electrónico de cada persona cuyo apellido comience con "Van". Se generaría una única entrada por persona, con varias líneas que mostrarían las diferentes 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). "General Information Retrieval Language and System (GIRLS)" (PDF) .{{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  3. «Exalumnos de Microdatos» . www.microdata-alumni.org .
  4. Sisk, Jonathan (1987). PICK BASIC: A Programmer's Guide . 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}}: Para citar una revista se requiere |journal=( ayuda )
  8. "Referencia a bases de datos post-relacionales" .
  9. Nelson, Don (1964). "Lenguaje y sistema generalizado de recuperación de información (GIRLS)" (PDF) .{{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  10. "Introducción a D3" .
  11. "Compilación de jBase" .
  • Clasificación de DB-Engines de los sistemas de gestión de bases de datos multivalor por popularidad, actualizada mensualmente.
  • Zeobase: Una base de datos multivalor gratuita