Method Article
Este estudo compara relacionais e não relacionais (NoSQL) padronizado de sistemas de informação médica. A complexidade computacional dos tempos de resposta da consulta de tais sistemas de gerenciamento de banco de dados (DBMS) é calculada usando bancos de dados de dobrar de tamanho. Estes resultados ajudam a discussão sobre a adequação de cada abordagem de banco de dados para diferentes cenários e problemas.
Esta pesquisa mostra um protocolo para avaliar a complexidade computacional de uma consulta relacional e não-relacionais (NoSQL (não só de Structured Query Language)) padronizado de sistemas de banco de dados eletrônico de saúde record (EHR) informações médicas (DBMS). Ele usa um conjunto de três dobrando de tamanho bancos de dados, ou seja, bancos de dados armazenar 5000, 10.000 e 20.000 realista padronizado extractos de RSE, em sistemas de gestão de três diferentes banco de dados (DBMS): relacionais MySQL o mapeamento objeto-relacional (ORM), baseado em documento NoSQL MongoDB e nativo extensible markup language (XML) NoSQL existe.
Foram calculados os tempos de resposta média de seis consultas de complexidade crescente, e os resultados mostraram um comportamento linear nos casos NoSQL. No campo de NoSQL, MongoDB apresenta um declive linear muito mais plano do que existe.
NoSQL sistemas também podem ser mais apropriados manter os sistemas de informação médica padronizada devido à natureza especial das políticas atualização de informações médicas, que não deverá afectar a consistência e a eficiência dos dados armazenados em bancos de dados NoSQL.
Uma limitação do presente protocolo é a falta de resultados diretos da melhoria dos sistemas relacional, tais como mapeamento relacional do arquétipo (braço) com os mesmos dados. No entanto, a interpolação dos resultados de duplicação-tamanho de banco de dados com aqueles apresentados na literatura e outros resultados publicados sugerem que sistemas NoSQL podem ser mais apropriados em muitos cenários específicos e problemas a serem resolvidos. Por exemplo, NoSQL pode ser apropriado para tarefas baseadas em documentos como EHR extratos utilizados na prática clínica, ou edição e visualização ou situações onde o objectivo é não só a informação de consulta médica, mas também para restaurar a RSE em sua forma original, exatamente.
NoSQL (não apenas SQL) DBMS recentemente surgiram como uma alternativa ao SGBD relacional tradicional (RDMBS). RDBMS têm dominado o caminho de dados foram armazenados em sistemas de banco de dados por décadas. Cálculo e álgebra relacional bem estudada e compreendida tem garantido a eficácia e a coerência do RDBMS1. Sistemas NoSQL não tornará substitutos para sistemas relacionais, mas eles poderiam comportar-se vantajosamente em determinados cenários e sob várias condições.
Alguns destes cenários específicos e condições ocorreria ao projetar a persistência de banco de dados dos sistemas de registo de saúde electrónico (RSE), usado para gerenciar e armazenar informações médicas. A fim de ser interoperável e sustentável na prática, várias normas internacionais como ISO/EN 13606, openEHR e HL72,3,4,5 têm sido utilizados para padronizar os extratos de RSE.
Diversos padrões como ISO/EN 13606 e openEHR tem separado a informação e conhecimento em dois níveis diferentes de abstração, representado pelo modelo de referência (RM) e estruturas de dados especial chamadas arquétipos. Esta separação é muitas vezes chamada o modelo dual e permite sistemas RSE ser semanticamente interoperável e médico conhecimento evoluir sem reprogramar todo o sistema de RSE e, consequentemente, para ser de fácil manutenção e sustentável na prática6 . No entanto, o dupla modelo implementado em sistemas padronizados de RSE requer que a organização das informações segue uma estrutura específica, e isso tem consequências profundas na maneira que o nível de persistência do banco de dados do sistema é projetado7.
Objeto de mapeamento relacional (ORM)8 é uma metodologia para implementar um sistema de RSE, utilizando o paradigma de banco de dados relacional. ORM exaustivamente mapeia a estrutura do padronizado EHR extrai arquivos XML (eXtensible Markup Language) usado pelo sistema para um banco de dados relacional. ORM constrói muitas tabelas relacionais exaustivamente seguindo a estrutura dos arquivos XML extratos EHR padronizadas. Estas tabelas relacionais relacionam-se através de muitas chaves estrangeiras e o sistema resultante pode não ser muito eficiente.
Foram propostas várias melhorias relacionais de ORM. Caminho do nó +9 do openEHR reduz o número de tabelas relacionais por serialização subárvores do extrato todo arquivo XML em BLOBs (objetos binários grandes). No entanto, essa simplificação faz com que lógica de recuperação complexa, danificando consultas complexas. Arquétipo de mapeamento relacional (braço)10 gera um modelo de banco de dados conduzido por arquétipos, construindo uma nova esquema relacional com base em mapeamentos entre arquétipos e tabelas relacionais. Consequentemente, algumas das informações não-médicos do extracto de RSE é perdida.
Muitos documentos com base em bancos de dados NoSQL armazenam documentos todo como BLOBs inteiras respeitando um original de XML ou JSON (JavaScript Object Notation) formato. Isto significa que não há tabelas relacionais são construídas. Esses bancos de dados NoSQL não tem nenhum esquema e eles não suportam junções ou de Propriedades (ácido)11, ou seja, atomicidade, consistência, isolamento ou durabilidade. Como resultado, eles podem ser muito ineficientes se um elemento de um documento faz referência a elementos do mesmo ou outros tais documentos utilizando um link de indireção. Isso acontece porque, a fim de manter a consistência, a totalidade dos documentos referenciados têm de ser processadas sequencialmente. No entanto, um banco de dados não-relacionais pode ser continua a justificar-se a principal tarefa realizada pelo SGBD é uma tarefa com base em documento. Isso ocorre porque os dados podem permanecer em um formulário mais pròxima aproximando sua verdadeira representação usando um documento-base NoSQL de dados, embora isto é também devido as condições de persistência especial realizadas pelos documentos médicos de RSE (consulte a seção de discussão).
A finalidade destes métodos é apresentar vários experimentos para comparar a implementação da camada de persistência de um sistema padronizado de RSE usando três diferentes SGBDs: uma relacional (MySQL) e dois NoSQL (baseado no documento MongoDB e XML nativo existem). Sua complexidade computacional tem sido calculado e comparados usando três crescente tamanho bancos de dados diferentes e seis consultas diferentes de complexidade crescente. Os servidores de banco de três dados foram instalados e configurados localmente no mesmo computador onde foram executadas as consultas. Consulte a Tabela de materiais para detalhes técnicos.
Também foram realizados experimentos de simultaneidade para comparar o desempenho de MySQL e de NoSQL MongoDB DBMSs relacional. As melhorias de ORM descritas (caminho do nó + e braço) também foram comparadas usando relevantes resultados adequados do literatura10.
Sistemas de gerenciamento de banco de dados estão evoluindo continuamente a um ritmo acelerado. Ninguém pensaria sobre este desenvolvimento exponencial quando o único paradigma existente foi o modelo relacional. Para dar um exemplo, ver por exemplo12, onde um modelo foi proposto para implementar o tempo de resposta melhorados bancos de dados relacionais mantendo as propriedades ACID.
1. construir um SGBD relacional do MySQL para armazenar três duplo tamanho padronizado EHR extratos de bancos de dados
2. Construa um DBMS NoSQL MongoDB para armazenar três duplo tamanho padronizado EHR extratos de bancos de dados
3. construir um NoSQL existe DBMS para loja três duplo tamanho padronizado EHR extrai os bancos de dados
4. projetar e executar em 3 bancos de dados relacionais MySQL 6 consultas de complexidade crescente
5. projetar e executar em 3 bancos de dados NoSQL MongoDB 6 consultas de complexidade crescente
6. projetar e executar no 3 NoSQL existem consultas de crescente complexidade de 6 bancos de dados
7. projetar e executar um experimento de simultaneidade usando o MySQL e MongoDB 5.000 extrai os bancos de dados
Nota: O banco de dados existe foi removido o experimento neste momento devido ao pior desempenho nas experiências anteriores.
Seis diferentes consultas executadas em realistas extratos padronizados de RSE que contém informações sobre os problemas dos pacientes, incluindo seus nomes, datas inicial e final e severidade, são mostradas na tabela 1.
Tempos de resposta média das seis consultas das três bases de dados da duplicação-tamanho em cada SGBD são mostrados nas tabelas 2-4. Figuras 1-6 , mostrar os mesmos resultados graficamente (Observe que os eixos verticais usam muito diferentes escalas ao longo destas figuras).
O comportamento linear forte da complexidade computacional é evidente durante todo todas as consultas de bancos de dados NoSQL, embora com cuidado apropriado devido ao tamanho relativamente pequeno de 3 conjuntos de dados utilizados. No entanto, o banco de dados relacional de ORM mostra um comportamento linear pouco claro. Banco de dados MongoDB tem uma inclinação muito mais plana do que o banco de dados existe.
Resultados pela melhoria dos sistemas relacional, discutido na introdução publicada na literatura podem ser encontrados na tabela 5. MongoDB resultados da tabela 3 com consultas semelhantes e tamanhos de banco de dados dos resultados de braço de tabela 5 de interpolação é igual a ambos os sistemas de banco de dados no Q1, mas favorece o MongoDB no 3º trimestre.
Os resultados dos experimentos simultaneidade podem ser encontrados na tabela 5 e tabela6. MongoDB bate MySQL tanto na taxa de transferência e tempo de resposta. Na verdade, o MongoDB se comporta melhor em simultaneidade do que isoladamente e se destaca como um impressionante banco de dados em execução simultânea.
Figura 1 : Complexidade algorítmica de ORM MySQL, MongoDB, e existem DBMS para consultas Q1 e Q4. Esta figura foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/ licenses/by/4.0/) e mostra os tempos de resposta em segundos para 5.000, 10.000 e 20.000 porte EHR extrai os bancos de dados para cada SGBD e consultas Q1 e Q4. Clique aqui para ver uma versão maior desta figura.
Figura 2 : Complexidade algorítmica de ORM SGBD de MySQL para consulta Q2. Esta figura mostra tempos de resposta em segundos para 5.000, 10.000 e 20.000 porte EHR extrai ORM MySQL banco de dados para consulta Q2. Clique aqui para ver uma versão maior desta figura.
Figura 3 : Complexidade algorítmica do MongoDB e existem DBMS para consultas Q2 e Q5. Esta figura foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/licenses/ por / 4.0) e mostra os tempos de resposta em segundos para 5.000, 10.000 e 20.000 tamanho EHR extrai os bancos de dados para cada SGBD e consultas Q2 e Q5. Clique aqui para ver uma versão maior desta figura.
Figura 4 : Complexidade algorítmica de ORM MySQL SGBD para consultas Q3 e Q5. Mostra tempos de resposta em segundos para 5.000, 10.000 e 20.000 porte EHR extrai os bancos de dados para cada SGBD e consultas Q3 e Q5. Clique aqui para ver uma versão maior desta figura.
Figura 5: complexidade algorítmica de eXist e MongoDB DBMS para consulta Q3. Esta figura foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/licenses/ por/4.0 /) e mostra os tempos de resposta em segundos para 5.000, 10.000 e 20.000 porte EHR extrai os bancos de dados para cada SGBD e consulta Q3. Clique aqui para ver uma versão maior desta figura.
Figura 6 : Complexidade algorítmica de ORM MySQL, existir e MongoDB DBMS para consultar Q6. Esta figura foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/licenses/ por/4.0 /) e mostra os tempos de resposta em segundos para 5.000, 10.000 e 20.000 porte EHR extrai os bancos de dados para cada SGBD e consulta Q6. Clique aqui para ver uma versão maior desta figura.
Consulta | |
Q1 | Encontrar todos os problemas de um único paciente. |
Q2 | Encontrar todos os problemas de todos os pacientes |
Q3 | Encontrar a data inicial, a data de resolução e a gravidade |
de um único problema de um único paciente. | |
Q4 | Encontrar a data inicial, a data de resolução e a gravidade |
algum problema problemas de um único paciente. | |
Q5 | Encontrar a data inicial, a data de resolução e a gravidade |
algum problema problemas de todos os pacientes | |
Q6 | Encontrar todos os pacientes com faringite problema' ', |
inicial data > = 16 de outubro de 2007 ', data de resolução | |
< = 5 de junho de 2008 ' e severidade 'alta' |
Tabela 1: as seis consultas realizadas sobre o relacional e bancos de dados NoSQL EHR padronizada contendo extratos sobre os problemas dos pacientes. Esta tabela foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/ licenses/by/4.0/) e mostra as seis consultas complexidade crescente realizadas três tamanho crescimento bancos de dados para cada SGBD expressado em natural linguagem.
ORM/MySQL | 5000 docs | docs de 10.000 | 20.000 docs |
Q1 (s) | 25.0474 | 32.6868 | 170.7342 |
Q2 (s) | 0.0158 | 0.0147 | 0.0222 |
Q3 (s) | 3.3849 | 6.4225 | 207.2348 |
Q4 (s) | 33.5457 | 114.6607 | 115.4169 |
Q5 (s) | 9.6393 | 74.3767 | 29.0993 |
Q6 (s) | 1.4382 | 2.4844 | 183.4979 |
Tamanho de banco de dados | 4.6 GB | 9.4 GB | 19.4 GB |
Total de extratos | 5000 | 10.000 | 20.000 |
Tabela 2: média de tempos de resposta em segundos das seis consultas em bancos de dados de duplicação-tamanho do DBMS relacionais MySQL ORM. Esta tabela mostra seis tempos de resposta para cada consulta para os três dobrando de tamanho bancos de dados usando o SGBD relacional MySQL ORM e o tamanho de memória de três bancos de dados.
MongoDB | 5000 docs | docs de 10.000 | 20.000 docs | inclinação (*10exp(-6)) |
Q1 (s) | 0,046 | 0,057 | 0.1221 | 5.07 |
Q2 (s) | 34.5181 | 68.6945 | 136.2329 | 6,780.99 |
Q3 (s) | 0,048 | 0.058 | 0.1201 | 4.81 |
Q4 (s) | 0.052 | 0.061 | o.1241 | 4.81 |
Q5 (s) | 38.0202 | 75.4376 | 149.933 | 7460.85 |
Q6 (s) | 9.5153 | 18.5566 | 36.7805 | 1,817.68 |
Tamanho de banco de dados | 1,95 GB | 3,95 GB | 7,95 GB | |
Total de extratos | 5000 | 10.000 | 20.000 |
Tabela 3: média de tempos de resposta em segundos das seis consultas em bancos de dados de duplicação-tamanho do DBMS de NoSQL MongoDB. Esta tabela foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/ licenses/by/4.0/) e mostra os tempos de resposta de seis de cada consulta para os três dobrando de tamanho bancos de dados usando o NoSQL MongoDB DBMS e o tamanho de memória os três bancos de dados. Também é mostrado o declive linear de cada consulta.
Existem | 5000 docs | docs de 10.000 | 20.000 docs | inclinação (*10exp(-6)) |
Q1 (s) | 0.6608 | 3.7834 | 7.3022 | 442.76 |
Q2 (s) | 60.7761 | 129.3645 | 287.362 | 15,105.73 |
Q3 (s) | 0.6976 | 1.771 | 4.1172 | 227.96 |
Q4 (s) | 0.6445 | 3.7604 | 7.3216 | 445.17 |
Q5 (s) | 145.3373 | 291.2502 | 597.7216 | 30,158.93 |
Q6 (s) | 68.3798 | 138.9987 | 475.2663 | 27,125.82 |
Tamanho de banco de dados | 1,25 GB | 2,54 GB | 5,12 GB | |
Total de extratos | 5000 | 10.000 | 20.000 |
Tabela 4: média de tempos de resposta em segundos das seis consultas em bancos de dados de duplicação-tamanho do existe NoSQL DBMS. Esta tabela foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/ licenses/by/4.0/) e mostra os tempos de resposta de seis de cada consulta para os três dobrando de tamanho bancos de dados usando o NoSQL existem DBMS e o tamanho de memória de os três bancos de dados. Também é mostrado o declive linear de cada consulta.
Papel de braço | BRAÇO (s) | + Caminho do nó (s) | |
Q1 | Consulta 2.1 | 0.191 | 24.866 |
Q3 | Consulta 3.1 | 0,27 | 294.774 |
Tamanho de banco de dados | 2,90 GB | 43,87 GB | |
Total de extratos | 29.743 | 29.743 |
Tabela 5: média de tempos de resposta em segundos de consultas semelhantes a Q1 e Q3 dos sistemas relacionais melhorados apresentado em 10 . Esta tabela foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/ licenses/by/4.0/) e mostra as duas consultas a maioria-semelhante a Q1 e Q3, apresentado em10 correspondente a dois sistemas de banco de dados relacional melhorada e seus tempos de resposta. Os tamanhos de dois banco de dados também são mostrados.
ORM/MySQL | Taxa de transferência | Tempo de resposta |
Q1 (s) | 4,711.60 | 0.0793 |
Q3 (s) | 4,711.60 | 0.1558 |
Q4 (s) | 4,711.60 | 0.9674 |
Tabela 6: média de tempo de resposta e throughput em segundos de consultas Q1, Q3 e Q4 de ORM MySQL SGBD relacional em execução simultânea. Esta tabela foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/ licenses/by/4.0/) e mostra a maior taxa de transferência média de três consultas único paciente e seus tempos de resposta média em simultâneo o experiência de execução usando o sistema relacional MySQL ORM.
MongoDB | Taxa de transferência | Tempo de resposta |
Q1 (s) | 178,672.60 | 0,003 |
Q3 (s) | 178,672.60 | 0.0026 |
Q4 (s) | 178,672.60 | 0.0034 |
Tabela 7: média de tempo de resposta e throughput em segundos de consultas Q1, Q3 e Q4 de DBMS de NoSQL MongoDB em execução simultânea. Esta tabela foi modificada em7 usando a licença Creative Commons (http://creativecommons.org/ licenses/by/4.0/) e mostra a maior taxa de transferência média de três consultas único paciente e seus tempos de resposta média em simultâneo o experiência de execução usando o sistema de MongoDB NoSQL.
Complementar Figura 1: A imagem mostra a tela do software para se conectar ao servidor MySQL. Clique aqui para baixar esta figura.
Complementar Figura 2: A captura de tela mostra a interface do SQL para o servidor MySQL onde foi escrita a primeira consulta SQL. Clique aqui para baixar esta figura.
Complementar Figura 3: O MongoDB 2.6 localhost servidor é iniciado usando uma janela de sistema do DOS, executando o servidor mongod. Clique aqui para baixar esta figura.
Complementar Figura 4: A imagem mostra a consulta escrita nas caixas de texto do construtor de consultas, conforme mostrado nas etapas 5.7.1 através de 5.7.4. A imagem ilustra passo 5.7.3. , Por favor clique aqui para baixar esta figura.
Complementar Figura 5: A imagem mostra o passo 5.7.6. Clique aqui para baixar esta figura.
Complementar Figura 6: A imagem ilustra a escrita da consulta XPath no Upper parte da caixa de diálogo. Clique aqui para baixar esta figura.
Este protocolo mostra que sistemas ORM relacionais puros não parece práticos para consultas único paciente (Q1, Q3 e Q4) desde os tempos de resposta são mais lentos, provavelmente devido a um elevado número de tabelas relacionais realizando muitas operações de junção caro e devido à sistema de armazenamento usado pelo tipo específico de banco de dados. Bancos de dados NoSQL armazenam dados em uma forma com base em documento, enquanto os sistemas relacionais usam uma forma baseada na tabela que se espalha cada documento em todo o banco de dados inteiro. NoSQL sistemas mostram uma inclinação linear, com MongoDB realizando consideravelmente mais rápido do que existe de DBMS. Simultaneidade, MongoDB também se comporta muito melhor do que relacionais MySQL ORM7.
Este protocolo apresenta um protocolo de resolução de problemas para os resultados apresentados em7 sobre o SGBD MySQL de ORM. O sistema MySQL foi atualizado para a versão mais recente e os resultados foram ligeiramente modificados. Além disso, um ponto crítico em sistemas baseados em documentos de NoSQL como MongoDB é que eles podem preservar a consistência quando armazenar informações médicas7 , porque quando um extrato de RSE é atualizado, ele não é substituído, mas um todo novo extrato com os novos dados é gerado e armazenado no sistema, e o extrato original é mantido. Isto é uma exigência rigorosa de informação médica, porque alguns médicos podem ter feito importantes decisões médicas baseadas nos dados originais.
O sistema de braço relacional melhorado drasticamente diminui o número de tabelas relacionais e melhora o desempenho relacional. Desde que ele modifica o esquema relacional, informação médica, realizada pelos extractos pode ser consultada, porém, extractos não possam ser recuperados em suas formas exatas do originais.
Para bancos de dados muito grandes no secundário usam (pesquisa), não está claro qual sistema de banco de dados é mais apropriado, já que as consultas de todos-paciente (Q2 e Q5) comportar-se melhor em ORM do que em sistemas NoSQL, mas esses sistemas executam melhor do que o simplificado relacional sistemas em 12. Consideramos o Q6 uma consulta especial entre prática clínica e secundário usar cujo comportamento não pode ser determinado pelos resultados gerados por estas experiências.
No entanto, uma limitação do método é o inavailability de experiências diretas comparando o relacional braço sistema melhorado com NoSQL MongoDB sobre prática único paciente, médico consultas com exatamente os mesmos dados usados no protocolo. Mantivemos os resultados de interpolação tabela 3 e tabela 5 sobre consultas único paciente até que a experiência incluindo braço otimizado no protocolo foi realizada. Deixamos estas experiências para aplicações futuras. Um passo crítico no âmbito do protocolo é a seleção de base de dados gratuita, versões de software semelhante de anos recentes, para que nós pode comparar o exato estado-de-the-art das três tecnologias.
Esta é uma das primeiras tentativas de comparar diretamente relacional e sistemas NoSQL usando informação médica real, realista, padronizada. No entanto, o sistema específico a ser usado depende muito o cenário real e o problema ser resolvido8.
Os autores não têm nada para divulgar. Os conjuntos de dados utilizados nesses experimentos foram fornecidos por vários hospitais espanhóis sob licença para estas experiências e, consequentemente, não são acessíveis ao público. O esquema XML de RM ISO/EN 13606 foi fornecido pelo centro da University College London para informática em saúde & multiprofissional educação (sinal sonoro).
Os autores gostaria de agradecer o Dr. Dipak Kalra, líder da força-tarefa EHRCom que definiu o ISO/EN 13606 padrão e sua equipe do University College de Londres para sua permissão usar o ISO/EN 13606 W3C XML Schema.
Este trabalho foi financiado pelo Instituto de Salud Carlos III [concessão números PI15/00321, PI15/00003, PI1500831, PI15CIII/00010 e RD16CIII].
Name | Company | Catalog Number | Comments |
MySQL 5.7.20 | MySQL experiments | ||
Red Hat Enterprise Linux Server release 7.4 (Maipo), 2.60GHz, RAM 16GB | |||
MongoDB 2.6 | MongoDB experiments | ||
Windows 7, 2.66GHz, RAM 12GB | |||
eXist 3.0RC1 | eXist experiments | ||
Windows 7, 2.66GHz, RAM 12GB | |||
Studio 3T 5.5.1 | 3T Software Labs Gmbh | MongoDB GUI |
Solicitar permissão para reutilizar o texto ou figuras deste artigo JoVE
Solicitar PermissãoThis article has been published
Video Coming Soon
Copyright © 2025 MyJoVE Corporation. Todos os direitos reservados