<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992016000600006</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Características no relacionales de PostgreSQL: incremento del rendimiento en el uso de datos JSON]]></article-title>
<article-title xml:lang="en"><![CDATA[No relational features of PostgreSQL: increase performance in JSON types use]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Vazquez Ortíz]]></surname>
<given-names><![CDATA[Yudisney]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Mier Pierre]]></surname>
<given-names><![CDATA[Lisleydi]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Sotolongo León]]></surname>
<given-names><![CDATA[Anthony R.]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,DATEC-UCI  ]]></institution>
<addr-line><![CDATA[ La Habana]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,FORTES-UCI  ]]></institution>
<addr-line><![CDATA[ La Habana]]></addr-line>
</aff>
<aff id="A03">
<institution><![CDATA[,ARKADIOS KT  ]]></institution>
<addr-line><![CDATA[ Santiago de Chile]]></addr-line>
<country>Chile</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>00</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>00</month>
<year>2016</year>
</pub-date>
<volume>10</volume>
<fpage>70</fpage>
<lpage>81</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992016000600006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992016000600006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992016000600006&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[RESUMEN El empleo de datos semiestructurados para el almacenamiento de la información ha sido una tendencia en los últimos años. Situación por la que han surgido gestores de bases de datos especializados en manipular estos datos, los que no implementan el modelo relacional, hasta el momento ampliamente utilizado. Estas soluciones se agruparon bajo el nombre de gestores &#8220;no relacionales&#8221; o NoSQL; los que ofrecen características como escalabilidad y velocidad en sus tiempos de respuesta, superiores a las que los sistemas relacionales podían ofrecer. No obstante, los gestores NoSQL no se solapan con los relacionales ya que cada tipo garantiza las funcionalidades para las que fueron desarrollados, motivo por el que varias empresas los utilizan juntos. PostgreSQL ha ido incorporando gradualmente características NoSQL, lo que puede constituir una ventaja, sobre todo porque permite prescindir de una tercera herramienta. Uno de los pasos en este sentido fue la inclusión, en su versión 9.4, del tipo de dato JSONB, además del ya existente JSON. El propósito de este artículo es realizar un experimento para evaluar el comportamiento de PostgreSQL haciendo uso de ambos tipos de datos, respecto a sus tiempos de respuesta. Para ello se realizaron pruebas de rendimiento sobre la carga de los datos y consultas, determinándose que con la implementación de JSONB, PostgreSQL está avanzando en la implementación de características no relacionales, convirtiéndose en una opción a ser considerada.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[ABSTRACT The use of semi structured data for information storage has been a trend in the last years. Situation for which are emerging database management systems specialized in manipulate them, that not implement the relational model, widely used until now. These solutions were pooled under the name of &#8220;no relational&#8221; systems or NoSQL, which offer features like scalability and agility of its response times, higher than relational systems could offer. However, these databases do not overlap with relational types, because each one guarantees the functionalities for which they were developed, reason why many enterprises use them together. PostgreSQL has been included, gradually, NoSQL capabilities, which could be an advantage especially because it could be dispensed of a third tool. One of the steps for the gradual incorporation of these capabilities was the inclusion, in his 9.4 version, of the JSONB type, besides the existing JSON. The purpose of this paper is make an experiment to evaluate the PostgreSQL behavior using both types, respect to their response times. For this, were made benchmarking tests about data loads and selects, determining that with the JSONB implementation, PostgreSQL is moving in the NoSQL capabilities implementation, been an option to be considered.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[características no relacionales de PostgreSQL]]></kwd>
<kwd lng="es"><![CDATA[json]]></kwd>
<kwd lng="es"><![CDATA[jsonb]]></kwd>
<kwd lng="en"><![CDATA[json]]></kwd>
<kwd lng="en"><![CDATA[jsonb]]></kwd>
<kwd lng="en"><![CDATA[PostgreSQL no relational features]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ART&Iacute;CULO  ORIGINAL</B></font></p>     <p>&nbsp;</p>     <p><font size="4"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Caracter&iacute;sticas  no relacionales de PostgreSQL: incremento del rendimiento en el uso de datos  JSON</font></strong></font></p>     <p>&nbsp;</p>     <p><font size="3"><strong><font face="Verdana, Arial, Helvetica, sans-serif">No  relational features of PostgreSQL: increase performance in JSON types use</font></strong></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Yudisney Vazquez Ort&iacute;z<strong><sup>1*</sup></strong>, Lisleydi Mier Pierre<strong><sup>2</sup></strong>, Anthony R. Sotolongo Le&oacute;n</font></strong><font face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>3</sup></strong></font></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1</sup></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">DATEC-UCI, Carretera a San Antonio de los Ba&ntilde;os, Km 2 &frac12;, La Lisa, La  Habana. <a href="mailto:yvazquezo@uci.cu">yvazquezo@uci.cu</a>    <br>     <sup>2</sup></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">FORTES-UCI, Carretera a San Antonio de los Ba&ntilde;os, Km 2 &frac12;, La Lisa, La  Habana. <a href="mailto:lmpierre@uci.cu">lmpierre@uci.cu</a></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">    ]]></body>
<body><![CDATA[<br>         <sup>3</sup></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">ARKADIOS K&amp;T, Santiago de Chile, Chile. <a href="mailto:asotolongo@gmail.com">asotolongo@gmail.com</a></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">    <br>             </font></p>     <P><font face="Verdana, Arial, Helvetica, sans-serif"><span class="class"><font size="2">*Autor para la correspondencia: </font></span></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <a href="mailto:yvazquezo@uci.cu">yvazquezo@uci.cu</a><a href="mailto:agarcia@uci.cu"></a><a href="mailto:jova@uci.cu"></a></font><font face="Verdana, Arial, Helvetica, sans-serif"><a href="mailto:losorio@ismm.edu.cu"></a> </font>     <p>&nbsp;</p>     <p>&nbsp;</p> <hr>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b> </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El empleo de datos semiestructurados para el almacenamiento de la  informaci&oacute;n ha sido una tendencia en los &uacute;ltimos a&ntilde;os. Situaci&oacute;n por la que han  surgido gestores de bases de datos especializados en manipular estos datos, los  que no implementan el modelo relacional, hasta el momento ampliamente  utilizado. Estas soluciones se agruparon bajo el nombre de gestores &ldquo;no  relacionales&rdquo; o NoSQL; los que ofrecen caracter&iacute;sticas como escalabilidad y  velocidad en sus tiempos de respuesta, superiores a las que los sistemas  relacionales pod&iacute;an ofrecer. No obstante, los gestores NoSQL no se solapan con  los relacionales ya que cada tipo garantiza las funcionalidades para las que  fueron desarrollados, motivo por el que varias empresas los utilizan juntos.  PostgreSQL ha ido incorporando gradualmente caracter&iacute;sticas NoSQL, lo que puede  constituir una ventaja, sobre todo porque permite prescindir de una tercera herramienta.  Uno de los pasos en este sentido fue la inclusi&oacute;n, en su versi&oacute;n 9.4, del tipo  de dato JSONB, adem&aacute;s del ya existente JSON. El prop&oacute;sito de este art&iacute;culo es  realizar un experimento para evaluar el comportamiento de PostgreSQL haciendo  uso de ambos tipos de datos, respecto a sus tiempos de respuesta. Para ello se  realizaron pruebas de rendimiento sobre la carga de los datos y consultas,  determin&aacute;ndose que con la implementaci&oacute;n de JSONB, PostgreSQL est&aacute; avanzando en  la implementaci&oacute;n de caracter&iacute;sticas no relacionales, convirti&eacute;ndose en una  opci&oacute;n a ser considerada.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Palabras clave:</span></b></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">caracter&iacute;sticas no relacionales de PostgreSQL; json; jsonb</font></p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>ABSTRACT</span></b> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The use of semi structured data for information storage has been a trend  in the last years. Situation for which are emerging database management systems  specialized in manipulate them, that not implement the relational model, widely  used until now. These solutions were pooled under the name of &ldquo;no relational&rdquo;  systems or NoSQL, which offer features like scalability and agility of its  response times, higher than relational systems could offer. However, these  databases do not overlap with relational types, because each one guarantees the  functionalities for which they were developed, reason why many enterprises use  them together. PostgreSQL has been included, gradually, NoSQL capabilities,  which could be an advantage especially because it could be dispensed of a third  tool. One of the steps for the gradual incorporation of these capabilities was  the inclusion, in his 9.4 version, of the JSONB type, besides the existing  JSON. The purpose of this paper is make an experiment to evaluate the  PostgreSQL behavior using both types, respect to their response times. For  this, were made benchmarking tests about data loads and selects, determining  that with the JSONB implementation, PostgreSQL is moving in the NoSQL  capabilities implementation, been an option to be considered.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>json; jsonb; PostgreSQL no relational features</font></p> <hr>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El empleo de datos semiestructurados en los sistemas de almacenamiento ha  sido una tendencia en los &uacute;ltimos a&ntilde;os; surgiendo gestores de bases de datos  especializados en manipularlos, que no implementan el modelo relacional hasta  el momento ampliamente utilizado&nbsp;(Tauro, y otros, 2012).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Estas soluciones se agruparon bajo el nombre de gestores &ldquo;no relacionales&rdquo;  o NoSQL, que ofrecen caracter&iacute;sticas como la escalabilidad y velocidad en sus  tiempos de respuesta y la variabilidad de sus esquemas, superiores a las que  los sistemas relacionales pod&iacute;an ofrecer&nbsp;(Leavitt, 2010), (Han, y otros, 2011), (Pokorny, 2013), (Cattell, 2010).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Estas caracter&iacute;sticas las logran, principalmente, al no implementar el  modelo relacional (no garantizan las propiedades ACID, no utilizan tablas para  el almacenamiento de los datos y no usan SQL como lenguaje de consultas), no  permitir concatenaciones y tener una arquitectura distribuida, lo que incide  favorablemente en sus objetivos de flexibilizar los m&eacute;todos de manipulaci&oacute;n de  los datos para ganar en rapidez frente al alto volumen de datos generado en la  actualidad&nbsp;(Moniruzzaman, y otros, 2013), (Strauch, 2013), (Linux-Magazine, 2009).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Tal proliferaci&oacute;n ha favorecido la diversidad de herramientas&nbsp;(NoSQL, 2016). Algunas de ellas  almacenan los datos como documentos (generalmente sobre estructuras JSON o  XML), definiendo una clave &uacute;nica para cada registro y permitiendo la  realizaci&oacute;n de b&uacute;squedas por clave-valor, el indexado por sus propiedades y la  ejecuci&oacute;n de consultas m&aacute;s complejas sobre el contenido del documento, razones  por las que son empleadas considerablemente&nbsp;(Tiwary, 2011).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Independientemente de las ventajas que ofrecen, los gestores NoSQL no se  solapan con los relacionales, ya que cada tipo garantiza las funcionalidades  para las que fueron desarrollados; motivo por el que varias empresas los  utilizan juntos para diferentes actividades, tal es el caso de <em>Facebook</em> y <em>Tumblr</em>, entre otros&nbsp;(Tumblr, 2012).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PostgreSQL, ha ido incorporando gradualmente caracter&iacute;sticas NoSQL para  brindar mayores opciones a sus usuarios, acerc&aacute;ndose desde la versi&oacute;n 9.3 a los  tiempos de respuesta ofrecidos por MongoDB, base de datos documental  ampliamente utilizada&nbsp;(DB-engines-trend, 2015), seg&uacute;n experimento  realizado&nbsp;(Sotolongo Le&oacute;n, y otros, 2013).</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Caracter&iacute;sticas que se ampl&iacute;an en la versi&oacute;n 9.4, afirma la <em>EnterpriseDB</em>, mejorando su rendimiento  considerablemente con la incorporaci&oacute;n del tipo de dato JSONB, que se  diferencia del ya existente JSON fundamentalmente en la eficiencia&nbsp;(EnterpriseDB,   2014).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta situaci&oacute;n  puede constituir una ventaja, sobre todo porque pudiera prescindirse, en la  medida en que el gestor pueda suplir las necesidades de las empresas, de una  tercera herramienta para garantizar las funcionalidades requeridas por estas al  emplear ambos tipos de gestores.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Producto al uso que est&aacute; teniendo  JSON para el almacenamiento de los datos en las soluciones NoSQL, y que el  estudio realizado sobre su versi&oacute;n 9.3 concluy&oacute; que PostgreSQL se estaba  acercando a los tiempos de respuesta de MongoDB, ser&iacute;a bueno determinar qu&eacute;  tanto ha mejorado PostgreSQL con la implementaci&oacute;n de JSONB y, por tanto, si  sigue acortando la distancia, en materia de caracter&iacute;sticas no relacionales,  con la puntera. De ah&iacute; que el objetivo de esta investigaci&oacute;n sea evaluar su  comportamiento haciendo uso de los tipos de datos JSON y JSONB. </font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">M&eacute;todos para la evaluaci&oacute;n del comportamiento de  PostgreSQL</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para determinar la disponibilidad de PostgreSQL para ser empleado en  soluciones no relacionales, se emplearon sus caracter&iacute;sticas NoSQL  implementadas.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Caracter&iacute;sticas NoSQL implementadas en  PostgreSQL</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PostgreSQL es un sistema de gesti&oacute;n de bases de datos objeto-relacional  que, gracias a su extensibilidad, ha permitido la incorporaci&oacute;n de nuevas  funcionalidades encaminadas a agilizar y flexibilizar la manipulaci&oacute;n de los  datos, entre las que destacan el almacenamiento ef&iacute;mero y los tipos de datos  HSTORE y JSON.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los tipos de datos HSTORE y JSON proveen opciones de gesti&oacute;n de datos sin  esquema con la ventaja de cumplir con las propiedades ACID, permiti&eacute;ndole al  gestor dar soporte a aplicaciones que requieran flexibilidad en el modelo de  datos&nbsp;(EnterpriseDB, 2014).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">HSTORE fue a&ntilde;adido en la versi&oacute;n 8.2 como un m&oacute;dulo del <em>Contrib</em> que implementa un tipo de datos,  con el mismo nombre, para almacenar pares de clave-valor dentro de un &uacute;nico  valor de PostgreSQL; &uacute;til en situaciones como filas con muchos atributos  raramente examinados o semiestructurados&nbsp;(PGDG, 2015).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El almacenamiento ef&iacute;mero fue a&ntilde;adido en la versi&oacute;n 9.1 mediante la  implementaci&oacute;n de tablas UNLOGGED, opci&oacute;n especificada durante la creaci&oacute;n de  las tablas que detalla que los datos almacenados en ellas no se escribir&aacute;n en  los WAL, lo que las hace considerablemente m&aacute;s r&aacute;pidas que las tablas  ordinarias, pero no garantiza la permanencia de los datos en caso de fallas (se  pierde la propiedad Durabilidad)&nbsp;(PGDG, 2015).</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">JSON fue a&ntilde;adido en la versi&oacute;n 9.2 para dar soporte al almacenamiento de  datos en dicho formato y garantizar su validaci&oacute;n. Desde entonces ha sido  mejorado en las versiones posteriores, a&ntilde;adi&eacute;ndose en la 9.3 funciones para el  trabajo con este y, en la 9.4 el tipo de dato JSONB con una mejora sobre el ya  existente en cuanto a eficiencia (al no tener que analizarse durante cada  ejecuci&oacute;n las funciones y soportar el indexado)&nbsp;(PGDG, 2015).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Con estas  caracter&iacute;sticas PostgreSQL permite:</font></p> <ul type="disc">       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El almacenamiento de datos de forma &aacute;gil.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El almacenamiento de datos libres de esquema.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La lectura de datos relacionales de una tabla y su       retorno como JSON y viceversa, haciendo uso de sus operadores y funciones&nbsp;(EnterpriseDB,        2014).</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La integraci&oacute;n f&aacute;cil de sentencias convencionales       SQL con tipos de datos JSON y HSTORE, ejecutadas en el mismo entorno       transaccional ACID y basados en el mismo planificador de consultas,       optimizador y tecnolog&iacute;as de indexado&nbsp;(EnterpriseDB, 2014).</font></p>   </li>     ]]></body>
<body><![CDATA[</ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Elementos que  lo convierten en una opci&oacute;n v&aacute;lida para el desarrollo de aplicaciones NoSQL. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Dise&ntilde;o de las pruebas de rendimiento  entre PostgreSQL y MongoDB</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Al ser JSON uno de los formatos de intercambio de datos m&aacute;s populares de la  web, soportado por varias bases de datos NoSQL (incluida MongoDB), la  evaluaci&oacute;n del comportamiento del gestor frente a</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MongoDB, para determinar su  avance en las posibilidades brindadas en materia de capacidades NoSQL, se  realiza haciendo uso de este.    <br>   En la siguiente tabla se definen los indicadores y m&eacute;tricas evaluados  durante la ejecuci&oacute;n de las pruebas de comparaci&oacute;n, por ser elementos  esenciales en la determinaci&oacute;n del rendimiento del servidor de bases de datos.</font> <a href="/img/revistas/rcci/v10s2/t0106516.jpg" target="_blank"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Tabla 1.</font> </a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para la  realizaci&oacute;n de las pruebas:</font></p> <ul>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se utilizaron instancias de un  servidor de bases de datos PostgreSQL 9.4 y de un servidor de bases de datos  MongoDB 3.0.2, ambos con su configuraci&oacute;n inicial.</font></p>   </li>       <li>         ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se utiliz&oacute; una estaci&oacute;n de  trabajo con CPU Intel Core i5 a 2.8GHz, 4Gb de RAM, 500Gb de disco duro a  7200rpm y sistema operativo Windows 8 Pro.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se cre&oacute; en PostgreSQL una base de  datos db_generar donde se generaron los 1, 2 y 4 millones de registros JSON;  para ello:</font></p>   </li>   <ul>         <li>           <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se dise&ntilde;&oacute; un tipo de dato JSON con la estructura: </font></p>           <blockquote>             <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&ldquo;persona&rdquo; {    <br> &ldquo;identificador&rdquo;: &ldquo;<em>valor</em>&rdquo;,    <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &ldquo;cuenta&rdquo;: {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     <br> &ldquo;usuario&rdquo;: &ldquo;<em>valor</em>&rdquo;,    ]]></body>
<body><![CDATA[<br> &ldquo;contrasenna&rdquo;: &ldquo;<em>valor</em>&rdquo;,    <br> &ldquo;correo_electronico&rdquo;: &ldquo;<em>valor</em>&rdquo;,},    <br> &ldquo;perfil&rdquo;: {    <br> &ldquo;nombre_apellidos&rdquo;: &ldquo;<em>valor</em>&rdquo;,    <br> &ldquo;edad&rdquo;: &ldquo;<em>valor</em>&rdquo;,    <br> &ldquo;ciudad_vive&rdquo;: &ldquo;<em>valor</em>&rdquo;,    <br> &ldquo;estudios&rdquo;: &ldquo;<em>valor</em>&rdquo;,    <br> &ldquo;ocupacion&rdquo;: &ldquo;<em>valor</em>&rdquo;,},    <br>           }</font></p>       </blockquote>     </li>         <li>           ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se implement&oacute; la funci&oacute;n generar_json() donde se utiliz&oacute;  la funci&oacute;n <em>row_to_json() </em>para la generaci&oacute;n  de los registros JSON con el fragmento de la consulta siguiente, a ser  ejecutada tantas veces como registros se requieran: </font></p>     </li>       </ul>       <blockquote>         <blockquote>           <p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>SELECT  row_to_json(</strong>r<strong>)</strong>    <br>         <strong>FROM</strong> (    <br>         <strong>SELECT </strong>c <strong>AS</strong> cuenta, p <strong>AS </strong>perfil    <br>         <strong>FROM</strong> (    <br>         <strong>SELECT</strong> ''Usuario'' ||<strong> round((random()</strong>*100<strong>)::numeric</strong>,0<strong>)::text AS </strong>usuario,    <br>         ''Clave' ||<strong> round((random()</strong>*100<strong>)::numeric</strong>,0<strong>)::text AS </strong>contrasenna,    ]]></body>
<body><![CDATA[<br>         ''correo'' ||<strong> round((random()</strong>*100<strong>)::numeric</strong>,0<strong>)::text</strong> || ''@electronico.cu''<strong> AS </strong>correo_electronico) c,    <br>         (<strong>SELECT </strong>''Nombre'' ||<strong> round((random()</strong>*100<strong>)::numeric,0)::text </strong>|| '' Apellido'' ||<strong> round((random()</strong>*100<strong>)::numeric</strong>,0<strong>)::text AS </strong>nombre_apellidos,    <br>         <strong>round((random()</strong>*100+1<strong>)::int</strong>,0<strong>) AS </strong>edad,    <br>         ''Ciudad donde vive'' ||<strong> round((random()</strong>*100<strong>)::numeric</strong>,0<strong>)::text AS </strong>ciudad_vive,    <br>         ''Estudios'' ||<strong> round((random()</strong>*100<strong>)::numeric</strong>,0<strong>)::text AS</strong> estudios,    <br>         ''Labor'' ||<strong> round((random()</strong>*100<strong>)::numeric</strong>,0<strong>)::text AS </strong>ocupacion) p) r<strong>'</strong>;          </font></p>     </blockquote>   </blockquote>     </ul> <ul>   <ul>         <li>           <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se crearon (en  db_generar) las tablas tb_doc_json1, tb_doc_json2 y tb_doc_json4 para guardar los  1, 2 y 4 millones de registros JSON respectivamente; todas con la estructura:       </font></p>           <blockquote>             ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>CREATE TABLE</strong> tb_doc_json<em>x</em> (persona <strong>json</strong>); </font></p>       </blockquote>     </li>            <li>           <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se ejecut&oacute; la funci&oacute;n  generar_json() para guardar en cada tabla la cantidad de registros asociados a  cada una, de la forma: </font></p>           <blockquote>             <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong> SELECT </strong>* <strong>FROM</strong> generar_json(<em>1000000</em>, '<em>tb_doc_json1</em>');</font></p>       </blockquote>     </li>       </ul>     </ul>     <p>   <font size="2" face="Verdana, Arial, Helvetica, sans-serif">   <ul>   </font>   <ul>         <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se cre&oacute; en PostgreSQL la base de  datos db_pruebas_nosql donde se definieron 12 tablas con la siguiente  estructura (4 tablas para cargar en cada juego los 1, 2 y 4 millones de  registros):</font></li>       </ul>   <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>CREATE TABLE</strong> tb_json<em>x</em> (persona <strong>json</strong>); </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>CREATE UNLOGGED TABLE </strong>utb_json<em>x</em> (persona<strong> json</strong>);</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>CREATE TABLE</strong> tb_jsonb<em>x</em> (persona<strong> jsonb</strong>);</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>CREATE UNLOGGED TABLE </strong>utb_jsonb<em>x</em> (persona<strong> jsonb</strong>);</font></p> <ul>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se hicieron salvas en texto plano de las tablas tb_doc_json1,  tb_doc_json2 y tb_doc_json4 de db_generar y se realizaron las siguientes  acciones para contar con 12 ficheros .sql:</font></p>   </li>   <ul>         <li>           <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se crearon y  guardaron en un directorio nombrado Ficheros (y ubicado en D en este  experimento) 4 copias de los 3 ficheros salvados en texto plano, nombr&aacute;ndolos  json1.json, json2.json, json4.json, json1.sql, json2.sql, json4.sql, ujson1.sql,  ujson2.sql, ujson4.sql, jsonb1.sql, jsonb2.sql, jsonb4.sql, ujsonb1.sql,  ujsonb2.sql y ujsonb4.sql.</font></p>     </li>         <li>           <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A los ficheros se  les quitaron las l&iacute;neas generadas por PostgreSQL al inicio y final de cada uno,  excepto el comando COPY y, se cambiaron los nombres de las tablas asoci&aacute;ndolos  a las creadas en db_pruebas_nosql.</font></p>     </li>       </ul>       ]]></body>
<body><![CDATA[<li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se definieron las siguientes 5  consultas que devuelven de 30 mil a poco m&aacute;s de 80 mil documentos para la  selecci&oacute;n de registros que cumplan con: <a href="/img/revistas/rcci/v10s2/fo0106516.jpg" target="_blank">Ver Consultas </a></font></p>   </li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las pruebas,  que se realizaron 3 veces promedi&aacute;ndose sus tiempos para obtener un valor aproximado  (excepto la determinaci&oacute;n del tama&ntilde;o de las bases de datos), incluyeron la:</font></p> <ol start="1" type="1">       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Carga de 1, 2 y 4 millones de documentos JSON.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Determinaci&oacute;n del tama&ntilde;o de las bases de datos una       vez cargados los documentos JSON.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ejecuci&oacute;n de consultas de selecci&oacute;n de registros       aleatorios, para las que se utilizaron las tablas y colecciones de 4 millones de       registros sin definirse &iacute;ndices y entibiando la cach&eacute;. </font></p>   </li>     ]]></body>
<body><![CDATA[</ol>     <p>&nbsp;</p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Resultados de la ejecuci&oacute;n de las pruebas de rendimiento</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez realizadas las pruebas en ambos gestores de bases de datos se  obtuvieron los siguientes resultados.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Carga de los registros JSON</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La carga de los ficheros JSON se realiz&oacute; en 12 tablas en PostgreSQL (con y  sin la opci&oacute;n UNLOGGED y haciendo uso de los tipos de datos JSON y JSONB). La figura  siguiente muestra los tiempos requeridos para ello.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como muestra  la <a href="#f01">figura 1</a>, los tiempos de respuesta en la carga de registros son inferiores  haciendo uso de la opci&oacute;n UNLOGGED en ambos casos, demor&aacute;ndose m&aacute;s en cargar  los datos para tablas con tipos JSONB.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10s2/f0106516.jpg" alt="f01" width="557" height="288"><a name="f01"></a></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Determinaci&oacute;n del tama&ntilde;o de las bases de datos</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El tama&ntilde;o  indica el espacio en disco que ocupan las bases de datos. La <a href="#f02">figura 2</a> muestra  el espacio ocupado una vez cargados los 1, 2 y 4 millones de registros en  tablas JSON y JSONB.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rcci/v10s2/f0206516.jpg" alt="f02" width="407" height="212"><a name="f02"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como muestra la <a href="#f02">figura 2</a>, la base de datos que tiene tablas con el tipo de  datos JSON ocupa el 84.07% del utilizado por el tipo JSONB.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Ejecuci&oacute;n de consultas de selecci&oacute;n de registros aleatorios</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las consultas de  selecci&oacute;n se ejecutaron en las tablas de 4 millones de registros para contar  con la mayor cantidad de datos posibles y, poder evaluar los tiempos de  respuesta en la devoluci&oacute;n de varios miles de registros JSON. Para ello se  utiliz&oacute; PostgreSQL con y sin la opci&oacute;n UNLOGGED y los tipos de datos JSON y  JSONB.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como muestra la  <a href="/img/revistas/rcci/v10s2/f0306516.jpg" target="_blank">figura 3</a>, los tiempos de respuesta sobre tablas con las mismas opciones para el  registro de los datos en los WAL y el mismo tipo de dato son similares, con  diferencias no apreciables de menos de 1.5 segundos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sin embargo, s&iacute;  se observa una mejora considerable en los tiempos obtenidos entre JSON y JSONB,  comprob&aacute;ndose que este &uacute;ltimo es, efectivamente, m&aacute;s eficiente al consultar la  totalidad de los datos 4.3 veces m&aacute;s r&aacute;pido que haciendo uso de JSON.</font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>CONCLUSIONES</B></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La extensibilidad de PostgreSQL ha permitido la incorporaci&oacute;n de  caracter&iacute;sticas no relacionales a un gestor de bases de datos, inicialmente,  objeto-relacional.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De estas nuevas funcionalidades destacan los tipos de datos JSON y el  almacenamiento ef&iacute;mero, logrando con la adici&oacute;n del tipo JSONB, en su versi&oacute;n  9.4, una mejora considerable de su rendimiento.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dichas caracter&iacute;sticas fueron  evaluadas, mostr&aacute;ndose en los experimentos realizados que la versi&oacute;n 9.4 de  PostgreSQL, aun cuando en la carga de los datos y tama&ntilde;o de la base de datos,  el empleo de JSONB queda por debajo de JSON, los tiempos de respuesta para la  selecci&oacute;n de los registros es 4.3 veces m&aacute;s r&aacute;pido que usando JSON, lo que evidencia  que el gestor ha mejorado considerablemente sus respuestas en una m&eacute;trica tan  utilizada, una vez cargados los datos. </font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS    BIBLIOGR&Aacute;FICAS</B></font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">CATTELL, RICK. 2010. Scalable SQL and NoSQL Data Stor.  New York&nbsp;: ACM SIGMOD Record, 2010. Vol. 39, 4.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DB-engines-trend. 2015. DB-engines. <em>DB-engines  ranking - Trend of MongoDB Popularity. </em>[En l&iacute;nea] 2015.  [Citado el: 06 de abril de 2015.]  http://db-engines.com/en/ranking_trend/system/MongoDB.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ENTERPRISEDB. 2014. <em>Using the NoSQL Capabilities in  Postgres. </em>s.l.&nbsp;: EnterpriseDB Corporation, 2014. White paper.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">HAN, JING, y otros. 2011. Survey on NoSQL  database. Port Elizabeth&nbsp;: IEEE, 2011. 978-1-4577-0209-9.    </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">LEAVITT, NEAL. 2010. Will NoSQL Databases Live Up to  Their Promise? 2010. Vol. Vol. 43, No. 2, p&aacute;gs. 12-14.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">LINUX-MAGAZINE. 2009. NoSQL: distributed  and Scalable Non-Relational Database Systems. <em>Linux Magazine. </em>[En l&iacute;nea] 2009. http://www.linux-mag.com/id/7579/.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MONIRUZZAMAN, A B M Y HOSSAIN, SYED AKHTER. 2013. NoSQL  Database: New Era of Databases for Big data Analytics - Classification, Characteristics  and Comparison. s.l.&nbsp;: International Journal of Database Theory and  Application, 2013. Vol. 6, 4.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">NOSQL. 2016. List of NoSQL  databases. <em>NoSQL. </em>[En l&iacute;nea] 2016. http://nosql-database.org/.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PGDG. 2015. <em>PostgreSQL 9.4.0  Documentation. </em>California&nbsp;: s.n., 2015. p&aacute;gs. 151-155, 1479-1494,  2864-2869.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">POKORNY, JAROSLAV. 2013. NoSQL databases: a  step to database scalability in web environment. s.l.&nbsp;: International  Journal of Web Information Systems, 2013. 1744-0084.    </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">SOTOLONGO LE&Oacute;N, ANTHONY Y VAZQUEZ ORT&Iacute;Z, YUDISNEY. 2013. Evaluaci&oacute;n de caracter&iacute;sticas NoSQL en PostgreSQL. [En l&iacute;nea] 2013.  [Citado el: 02 de mayo de 2015.]  http://semanatecnologica.fordes.co.cu/?q=node/856.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Strauch, Christof. 2013. <em>NoSQl Databases. </em>2013.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">TAURO, CLARENCE J M, S, ARAVINDH Y A.B, SHREEHARSHA. 2012.  Comparative Study of the New Generation, Agile, Scalable, High Performance  NOSQL Databases. s.l.&nbsp;: International Journal of Computer Applications,  2012. Vol. 48, 5. 0975 888.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">TIWARY, SHASHANK. 2011. <em>Professional  NoSQL. </em>Indianapolis&nbsp;: John Wiley, 2011. p&aacute;gs. 10-20.  978-0-470-94224-6.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">TUMBLR. 2012. Tumblr. <em>TumblrArchitecture - 15 Billion Page Views  A Month And HarderToScaleThanTwitter. </em>[En l&iacute;nea] 2012. [Citado el: 13 de diciembre de 2012.] http://highscalability.com/blog/2012/2/13/tumblr-architecture-15-billion-pageviews-a-month-and-harder.html.     </font></p>     <p name="_ENREF_1">&nbsp;</p>     ]]></body>
<body><![CDATA[<p name="_ENREF_1">&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 15/04/2016    <br> Aceptado: 05/05/2016</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CATTELL]]></surname>
<given-names><![CDATA[RICK]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Scalable SQL and NoSQL Data Stor]]></article-title>
<source><![CDATA[]]></source>
<year>2010</year>
<volume>39</volume>
<numero>4</numero>
<issue>4</issue>
<publisher-name><![CDATA[ACM SIGMOD Record]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="">
<collab>DB-engines-trend</collab>
<source><![CDATA[DB-engines. DB-engines ranking - Trend of MongoDB Popularity]]></source>
<year>2015</year>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<collab>ENTERPRISEDB</collab>
<source><![CDATA[Using the NoSQL Capabilities in Postgres]]></source>
<year>2014</year>
<publisher-name><![CDATA[EnterpriseDB Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HAN]]></surname>
<given-names><![CDATA[JING]]></given-names>
</name>
</person-group>
<source><![CDATA[Survey on NoSQL database.]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LEAVITT]]></surname>
<given-names><![CDATA[NEAL]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Will NoSQL Databases Live Up to Their]]></article-title>
<source><![CDATA[]]></source>
<year>2010</year>
<volume>Vol. 43</volume>
<numero>No. 2</numero>
<issue>No. 2</issue>
<page-range>12-14</page-range></nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<collab>LINUX-MAGAZINE</collab>
<source><![CDATA[NoSQL: distributed and Scalable Non-Relational Database System]]></source>
<year>2009</year>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MONIRUZZAMAN]]></surname>
<given-names><![CDATA[A B M]]></given-names>
</name>
<name>
<surname><![CDATA[SYED AKHTER]]></surname>
<given-names><![CDATA[HOSSAIN]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[NoSQL Database: New Era of Databases for Big data Analytics - Classification]]></article-title>
<source><![CDATA[]]></source>
<year>2013</year>
<volume>Vol. 6,</volume>
<numero>4</numero>
<issue>4</issue>
<publisher-name><![CDATA[: International Journal of Database Theory and Application]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<collab>NOSQL</collab>
<source><![CDATA[List of NoSQL databases]]></source>
<year>2016</year>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="">
<collab>PGDG</collab>
<source><![CDATA[PostgreSQL 9.4.0 Documentation]]></source>
<year>2015</year>
<page-range>151-155</page-range><publisher-loc><![CDATA[^eCalifornia California]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[POKORNY]]></surname>
<given-names><![CDATA[JAROSLAV]]></given-names>
</name>
</person-group>
<source><![CDATA[NoSQL databases: a step to database scalability in web environment.]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SOTOLONGO LEÓN]]></surname>
<given-names><![CDATA[ANTHONY]]></given-names>
</name>
<name>
<surname><![CDATA[VAZQUEZ ORTÍZ]]></surname>
<given-names><![CDATA[YUDISNEY]]></given-names>
</name>
</person-group>
<source><![CDATA[Evaluación de características NoSQL en PostgreSQL]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Strauch]]></surname>
<given-names><![CDATA[Christof]]></given-names>
</name>
</person-group>
<source><![CDATA[NoSQl Databases]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CLARENCE J M]]></surname>
<given-names><![CDATA[TAURO]]></given-names>
</name>
<name>
<surname><![CDATA[ARAVINDH]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[SHREEHARSHA]]></surname>
<given-names><![CDATA[A.B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Comparative Study of the New Generation, Agile, Scalable, High Performance NOSQL Databases]]></article-title>
<source><![CDATA[]]></source>
<year>2012</year>
<volume>48</volume>
<numero>5</numero>
<issue>5</issue>
</nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[TIWARY]]></surname>
<given-names><![CDATA[SHASHANK]]></given-names>
</name>
</person-group>
<source><![CDATA[Professional NoSQL]]></source>
<year>2011</year>
<page-range>10-20</page-range><publisher-loc><![CDATA[^eIndianapolis Indianapolis]]></publisher-loc>
<publisher-name><![CDATA[John Wiley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="">
<collab>TUMBLR</collab>
<source><![CDATA[Tumblr. TumblrArchitecture]]></source>
<year>2012</year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
