MultiValue - MultiValue

MultiValue é um tipo de banco de dados NoSQL e multidimensional , normalmente considerado sinônimo de PICK, um banco de dados originalmente desenvolvido como o sistema operacional Pick .

Os bancos de dados MultiValue incluem produtos comerciais da Rocket Software , Zumasys, Revelation, Ladybridge, InterSystems , Northgate Information Solutions , ONgroup e outras empresas. Esses bancos de dados diferem de um banco de dados relacional porque possuem recursos que suportam e incentivam o uso de atributos que podem receber uma lista de valores, em vez de todos os atributos serem de valor único. Eles são frequentemente categorizados com MUMPS dentro da categoria de bancos de dados pós-relacionais , embora o modelo de dados seja anterior ao modelo relacional . Ao contrário das ferramentas SQL-DBMS, a maioria dos bancos de dados MultiValue pode ser acessada com ou sem SQL .

História

Don Nelson projetou o modelo de dados MultiValue do início a meados da década de 1960. Dick Pick , um desenvolvedor da TRW , trabalhou na primeira implementação desse modelo para o Exército dos EUA em 1965. Pick considerou o software de domínio público porque foi escrito para os militares. Esta foi apenas a primeira disputa em relação às bases de dados MultiValue que foi tratada pelos tribunais.

Ken Simms escreveu o DataBASIC, também conhecido como S-BASIC, em meados dos anos 70. Era baseado no Dartmouth BASIC , mas tinha recursos aprimorados para gerenciamento de dados. Simms jogou muito Star Trek enquanto desenvolvia a linguagem, a fim de que a linguagem funcionasse de forma satisfatória.

Três das implementações do MultiValue - PICK versão R77, Microdata Reality 3.x e Prime Information 1.0 - eram muito semelhantes. Apesar das tentativas de padronização, particularmente pela International Spectrum e pela Spectrum Manufacturers Association, que projetou um logotipo para todos usarem, não há padrões nas implementações MultiValue. Posteriormente, esses sabores divergiram, embora com alguns cruzamentos. Esses fluxos de desenvolvimento de banco de dados MultiValue podem ser classificados como um proveniente de PICK R83, um de Microdata Reality e um de Prime Information. Por causa das diferenças, algumas implementações oferecem suporte a vários sabores de idiomas. Uma tentativa de documentar as semelhanças e diferenças pode ser encontrada no Post-Relational Database Reference (PRDB).

Ao longo dos anos, grupos de marketing e outros do setor classificaram os bancos de dados MultiValue como pré-relacionais, pós-relacionais, relacionais e incorporados, com detratores frequentemente classificando-os como legados. Agora ele pode ser classificado como NoSQL . Com um modelo de dados que se alinha bem com JSON e XML e que permite o acesso com ou sem o uso de SQL.

Uma hipótese razoável para este modelo de dados com duração de 50 anos, com novas implementações de banco de dados do modelo mesmo no século 21, é que ele fornece soluções de banco de dados de baixo custo. Historicamente, com benchmarks do setor vinculados a transações SQL, esta tem sido uma hipótese difícil de testar, embora haja casos consideráveis ​​de tentativas fracassadas de obter a funcionalidade de um aplicativo MultiValue em uma estrutura de banco de dados relacional .

Apesar de um histórico de mais de 40 anos de implementações, começando com TRW , muitos na indústria MultiValue permaneceram atuais, de modo que várias implementações MultiValue agora empregam versões orientadas a objetos de Data / BASIC, suportam estruturas AJAX e porque ninguém precisa para usar SQL (mas alguns podem) com esses bancos de dados, eles se encaixam no guarda-chuva NoSQL . Na verdade, os desenvolvedores MultiValue foram os primeiros a adquirir nomes de domínio nosql, provavelmente antes de outros produtos de banco de dados classificarem suas ofertas como NoSQL também. MultiValue é um modelo de dados experiente com vários fornecedores competindo no espaço MultiValue. Tem sido continuamente aprimorado ao longo dos anos.

Exemplo de modelo de dados

Em um sistema de banco de dados MultiValue:

  • um banco de dados ou esquema é chamado de "conta"
  • uma tabela ou coleção é chamada de "arquivo"
  • uma coluna ou campo é chamado de campo ou "atributo", que é composto de "atributos de vários valores" e "atributos de subvalores" para armazenar vários valores no mesmo atributo.
  • uma linha ou documento é chamado de "registro" ou "item"

Os dados são armazenados usando dois arquivos separados: um "arquivo" para armazenar dados brutos e um "dicionário" para armazenar o formato para exibir os dados brutos.

Por exemplo, suponha que haja um arquivo (tabela) chamado "PESSOA". Neste arquivo, existe um atributo chamado "eMailAddress". O campo eMailAddress pode armazenar um número variável de valores de endereço de e-mail em um único registro. A lista [joe@example.com, jdb@example.net, joe_bacde@example.org] pode ser armazenada e acessada por meio de uma única consulta ao acessar o registro associado.

Alcançar o mesmo relacionamento (um para muitos) em um sistema de banco de dados relacional tradicional incluiria a criação de uma tabela adicional para armazenar o número variável de endereços de e-mail associados a um único registro "PESSOA". No entanto, os sistemas de banco de dados relacionais modernos também oferecem suporte a esse modelo de dados de vários valores. Por exemplo, no PostgreSQL , uma coluna pode ser uma matriz de qualquer tipo base.

MultiValue DataBASIC

Como a linguagem de programação Java , o compilador Data / BASIC típico compila em código P, ou bytecode , e roda em uma máquina P, com jBASE sendo uma exceção notável. Ele tem tantas implementações diferentes (compiladores) quanto bancos de dados MultiValue.

Como a linguagem de programação PHP , a linguagem Data / BASIC faz todo o typecasting para o programador.

Linguagem de consulta MultiValue

Conhecida como ENGLISH, ACCESS, AQL, UniQuery, Retrieve, CMQL e por muitos outros nomes ao longo dos anos, correspondendo às diferentes implementações MultiValue, a linguagem de consulta MultiValue difere do SQL em vários aspectos. Cada consulta é emitida contra um único dicionário dentro do esquema, que pode ser entendido como um arquivo virtual ou um portal para o banco de dados através do qual os dados são visualizados.

LIST PEOPLE LAST_NAME FIRST_NAME EMAIL_ADDRESSES COM LAST_NAME LIKE "Van ..."

A declaração acima listaria todos os endereços de e-mail de cada pessoa cujo sobrenome começa com "Van". Uma única entrada seria produzida para cada pessoa, com várias linhas mostrando os vários endereços de e-mail (sem repetir outros dados sobre a pessoa).

Veja também

Referências

links externos