Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AGRADECIMIENTOS
Agradezco a mi familia por el apoyo brindado a lo largo de toda la carrera que me ha
permitido llegar hasta la culminacin de la profesin de ingeniera informtica, quiero
agradecer tambin a todos los profesores tan capaces y excelentes que tiene la
universidad y al director del trabajo de grado y las personas de las empresas encuestadas
que me guiaron y colaboraron durante la realizacin del trabajo de grado.
CONTENIDO
pg.
INTRODUCCIN ............................................................................................................. 13
1.
PRELIMINARES ....................................................................................................... 14
1.1
1.2
1.2.1
Objetivo General......................................................................................... 14
1.2.2
1.3
1.3.1
2.
METODOLOGA ....................................................................................................... 24
5.
Resultados de la encuesta................................................................................. 28
4.2
4.3
BIBLIOGRAFA ................................................................................................................ 52
ANEXO 1. ENCUESTA .................................................................................................... 54
LISTA DE TABLAS
pg.
Tabla 1. Requisitos Neo4j ................................................................................................ 21
Tabla 2. Caractersticas NoSQL ...................................................................................... 24
Tabla 3. Lista de chequeo................................................................................................ 41
LISTA DE FIGURAS
pg.
Figura 1. Tendencias NoSQL........................................................................................... 15
Figura 2. Respuesta 1 de la encuesta.............................................................................. 29
Figura 3. Respuesta 2 de la encuesta.............................................................................. 30
Figura 4. Respuesta 3 de la encuesta.............................................................................. 31
Figura 5. Respuesta 4 de la encuesta.............................................................................. 32
Figura 6. Respuesta 5 de la encuesta.............................................................................. 32
Figura 7. Respuesta 7 de la encuesta.............................................................................. 34
Figura 8. Respuesta 10 de la encuesta............................................................................ 35
Figura 9. Respuesta 13 de la encuesta............................................................................ 37
Figura 10. Respuesta 14 de la encuesta.......................................................................... 38
Figura 11. Respuesta 15 de la encuesta.......................................................................... 39
Figura 12. Respuesta 16 de la encuesta.......................................................................... 40
Figura 13. Replicacin MongoDB .................................................................................... 44
Figura 14. Resultados lista chequeo ................................................................................ 47
Figura 15. Caractersticas bases de datos ....................................................................... 49
LISTA DE ANEXOS
pg.
ANEXO 1. Encuesta53
GLOSARIO
GUI: Graphic User Interface, traducido como interfaz grfica de usuario, es una
herramienta o marco de trabajo visual para la interaccin con el usuario.
Integridad: mantenimiento de la exactitud y completitud de la informacin y sus mtodos
de proceso. (Lpez Neira & Ruiz Spohr)
IRC: Internet Relay Chat. Sistema para chatear de tipo cliente-servidor.
JSON: JavaScript Object Notation. Es un formato para almacenar e intercambiar datos,
independiente del lenguaje de programacin que se est utilizando. (JSON Tutorial)
JRE: Java Runtime Enviroment, traducido como ambiente de ejecucin de Java, es
necesario que se encuentre instalado en las mquinas para correr aplicaciones basadas
en Java.
Key Value database: modelo que se puede considerar como 2 columnas, una con el valor
de la clave conocido como id o identificador- y otra con el valor real al que referencia
la llave.
Little-endian: formato en el sistema operativo en el que el byte de menor peso se
almacena en la direccin ms baja de memoria y el byte de mayor peso en la ms alta.
Madurez: experiencia y conocimiento que tiene una empresa.
Mantenibilidad: segn la IEEE (Institute of Electrical and Electronics Engineers, 1990), se
define como facilidad con la que un sistema de software o componente puede ser
modificado para corregir fallos, mejorar el rendimiento u otros atributos o adaptarse a
cambios en el entorno.
MapReduce: Consta de 2 partes map y reduce. Esta divide los flujos de trabajo (map)
para procesarlos en paralelo y recombinar los datos procesados en la solucin final
(reduce). (Amazon.com Inc.)
Normalizacin: cuando se asocia a las bases de datos, es un trmino que se utiliza
usualmente durante el diseo de software por medio del modelo entidad relacin. Existen
varios niveles o formas de la normalizacin para organizar los datos, permitir flexibilidad y
evitar redundancias.
NoSQL: definido como Not only SQL, es un tipo de sistema de gestin de bases de datos
que pretende ser la siguiente generacin sobre estas tecnologas.
Replicacin: copiar los datos de una ubicacin a otras ubicaciones para evitar perder
informacin.
RUP: Rational Unified Process, traducido como Proceso Racional Unificado, es un
proceso iterativo e incremental de buenas prcticas para el ciclo de vida del desarrollo de
software, desde la planeacin hasta despliegue.
RESUMEN
A medida que pasa el tiempo, la demanda de almacenamiento y velocidad de operaciones
en las bases de datos se ha incrementado, esto se debe a que ms y ms empresas
tienen ms aplicaciones, ms clientes y quieren dar un mejor servicio.
En algunas empresas la demanda de los servicios de bases de datos es tan elevada que
no se pueden permitir hacer esperar al usuario, y como solucin hasta el momento en
algunas empresas- es optimizar el sistema de informacin, esto es tanto a nivel lgico
como fsico, desde verificar y optimizar las consultas internamente hasta adquirir
servidores con mejores especificaciones que permitan responder rpidamente a la
demanda. Como otra solucin, surgi una nueva tecnologa denominada NoSQL, que se
desprende del estndar por el que estaban regidos los anteriores motores de bases de
datos, logrando mejores resultados en la realizacin de operaciones al motor como
escritura y lectura de datos.
Este trabajo de grado pretende proponer una alternativa NoSQL a los sistemas de gestin
de bases de datos que utilizan las empresas en Medelln, de forma que puedan ser
competitivas y hagan uso de las tecnologas emergentes que abordan las necesidades de
hoy en da.
Para lograr esta propuesta, se realizan varias encuestas a personas que estn
relacionadas con la adquisicin, operacin y mantenimiento de las bases datos en
organizaciones con alto grado de madurez y que se encuentren en la ciudad de Medelln,
de tal forma que permitan conocer las necesidades y requisitos organizacionales para
posteriormente optar por una opcin de bases de datos NoSQL.
ABSTRACT
As the time passes, the storage demand and speed of transactions in the databases has
increased, this is because more and more enterprises have more applications, more
clients and they want to give a better service.
But in some enterprises the service demand of databases is so high that they cant allow
to make wait the user, and up until now in some enterprises- have optimized the
information system, this is from logic layer to physic layer, from verity and optimize queries
to acquire servers with better requirements allowing agile responses to the demand. As
another variant of solution, a new technology appeared named NoSQL, that doesnt follow
the standard the older databases engines had, achieving better transactions results on the
engine like data writing and reading.
In this degree work, I pretend to propose a NoSQL alternative to the database
management system used by enterprises in Medellin; this way, they can be competitive
and use emerging technologies.
To achieve this proposal, some surveys were carried out to persons related to the
database acquisition, operation and maintenance in high level maturity organizations
located in the city of Medelln, in order to realize their needs and requirements and
subsequently find at least one NoSQL database option.
Key words: Databases, NoSQL
INTRODUCCIN
Actualmente las organizaciones que manejan bases de datos operan con gran cantidad
de datos, esto se debe a la cantidad de usuarios, aplicaciones y necesidades internas o
externas. Tanto es el crecimiento de estas tecnologas que no es mantenible ni escalable
continuar en algunos casos con los mismos motores de bases de datos ya que dificulta la
administracin y mantenimiento de la informacin.
Hasta ahora se pueden identificar a grandes rasgos dos tecnologas de gestin para el
almacenamiento de datos: Las basadas en SQL y las que no siguen este estndar,
denominadas NoSQL; las primeras son las mayormente conocidas como MySQL y Oracle
de la compaa Oracle, SQL Server de Microsoft, PostgreSQL de PostgreSQL Global
Developer Group.
Las bases de datos NoSQL surgieron como consecuencia de los rendimientos de los
motores basados en SQL, ya que no cumplan las expectativas de tiempo de respuesta.
Esta siguiente generacin de sistemas de gestin de bases de datos contiene unas
caractersticas particulares, ya que es no relacional, distribuida, de cdigo abierto y
horizontalmente escalable estas caractersticas se explicarn en detalle ms adelante-,
de esta forma se optimiza el tiempo de consulta sobre las bases de datos y soportan una
mayor cantidad de datos.
Adicionalmente esta generacin presenta divisiones: se pueden encontrar bases de datos
de tipo key-value, column families, almacenamiento de documentos, grficas, entre otras
ms, pero se trabajar principalmente sobre estas ya que son las ms comunes de
encontrar.
Para el trabajo de grado se seleccionaron las ms relevantes, correspondientes a:
Cassandra, MongoDB y Neo4j. Sobre estas se investigar sus caractersticas de acuerdo
a varios factores como la mantenibilidad, caractersticas de la mquina, instalacin e
implementacin, usabilidad, versin, soporte, madurez, documentacin y caractersticas
adicionales.
Con esta informacin presente, y la realizacin de encuestas a diferentes empresas en
Medelln relacionadas con las caractersticas que requieren a la hora de adoptar los
sistemas de gestin de bases de datos, se proceder a proponer una alternativa de base
de datos NoSQL.
1. PRELIMINARES
En este captulo se retoma la informacin presentada en el anteproyecto y se mejora con
el fin de hacer una presentacin clara de lo que se aprob y lo que se realiz.
1.1
1.2
Proponer alternativas que cumplan las expectativas de las empresas con base en
lo registrado con el cumplimiento de caractersticas en el objetivo especfico
anterior.
1.3
MARCO DE REFERENCIA
.
Figura 1. Tendencias NoSQL
Como se puede ver, NoSQL comenz a tener popularidad a mediados de abril de 2009,
por lo que es relativamente un concepto nuevo y la mayora de la informacin que se
puede obtener se basa en artculos, noticias y trabajos en formato virtual.
NoSQL puede ser definido como Not only SQL y es un sistema de gestin de bases de
datos que pretende ser la siguiente generacin de tecnologas de estas que es no
relacional, distribuida, de cdigo abierto, horizontalmente escalable y ms rpida, ya que
no implementa las propiedades ACID para asegurar la confiabilidad de las transacciones
sobre las bases de datos. NoSQL fue definida inicialmente para modernizar las bases de
datos en la nube pero se aplica en general, ya que por la cantidad de informacin que se
almacena en ellas, pueden no responder tan rpidamente como se espera en horas pico o
de alto trfico de datos incumpliendo los ANS.
Entre las caractersticas que posee NoSQL se encuentra que no presentan esquemas,
tienen fcil soporte de replicacin, API simple, eventualmente consistente (conocido como
BASE, y contrario al concepto de ACID) y contienen enormes cantidades de datos.
(Informacin NoSQL)
Retomando lo que nos indica la Figura 1, al ser un concepto nuevo, se est incursionando
en esta modalidad y se puede ver como Amazon y Oracle han creado bases de datos
NoSQL; Twitter, Netflix, Facebook, Cisco, entre otros, utilizan estos tipos de motores;
CouchDB y SQLite crearon un lenguaje de consulta llamado UnQL (Jackson, 2011).
Hasta el momento existen muchos motores ya que son de cdigo abierto, por lo que se
tendra que revisar cuales son los que presentan mejores funcionalidades, y reafirmando
la conclusin de Orend, se tiene que analizar varias alternativas para determinar cul es
la que satisface mejor una necesidad.
Para dar una mayor calidad y pofundidad de las propiedades NoSQL mencionadas al
principio de este trabajo se realizar una comparacin frente a su trmino opuesto:
o
No relacional vs. relacional: las bases de datos no relacionales son listas de datos
almacenados en una sola tabla sin definir relaciones entre los registros. Por otro
lado las relacionales reparten los datos en varias tablas ms pequeas eliminando
datos duplicados y asegurando consistencia y estableciendo restricciones y
relaciones con otras tablas por medio de claves primarias y forneas; esto genera
que se ocupe menos espacio ya que no tiene redundancias y hasta cierto punto es
conveniente esta reparticin ya que de otro modo, si se realiza un SELECT
multiple en la no relacional se tendra que recorrer la nica tabla varias veces para
devolver todos la informacin debido a duplicidad en ciertos datos.
eBay: Usado para soportar mltiples aplicaciones con anillos extendidos sobre varios
data centers.
Caractersticas de la mquina: Requiere la ltima versin estable de Java 1.6 JRE o una
ms actualizada. En cuanto a sistema operativo y versin no se encuentra explcitamente,
por lo que depende de la instalacin del ambiente de java.
Instalacin/Implementacin: En el sitio web oficial cassandra.apache.org se encuentra una
seccin dedicada a la descarga y otra a instalacin y requerimientos necesarios.
Usabilidad: Comandos ingresados por medio de Cassandra CLI (interfaz de lnea de
comandos) o por medio de las herramientas grficas y de gestin.
Versin: La ltima versin estable es la 1.1.5, lanzada el 10 de septiembre de 2012.
Soporte y solucin de inquietudes: Contiene una seccin llamada Wiki con informacin
general y configuraciones; y otra nombrada FAQ (Frequently Asked Questions) con un
listado de posibles preguntas. Adicionalmente contiene un vnculo IRC a irc.freenode.net canales de chat gratuito- donde los desarrolladores y los miembros de la comunidad estn
disponibles para responder preguntas e inquietudes.
Madurez: Gran recorrido ya que fue inicialmente desarrollo interno de Facebook, y en
2008 sali a la luz como cdigo abierto, se encuentra en versin estable. La primera
versin para el pblico fue lanzada durante el segundo semestre de 2009.
Documentacin: Como se mencion en los tems anteriores, contiene varios apartados
que pueden guiar al usuario en diferentes actividades. Para el caso del lenguaje CQL,
contiene un repositorio con las consultas soportadas, sus notaciones y respectivos
ejemplos.
Ventajas: Orientada a ColumFamilies, tolerante a fallos, ya que replica los datos de forma
automtica a mltiples nodos; cuando un nodo falla pueden ser reemplazado sin ningn
periodo de inactividad. Permite replicacin a mltiples data centers; almacenamiento de
los datos tipo ColumnFamily.
Limitaciones: El valor de una columna no debe ser mayor a 2GB, el mximo nmero de
columnas por fila es de 2 billones, la llave y los nombres de las columnas deben ser
menores a 64 KB.
MongoDB
Base de datos creada por la compaa 10gen, su nombre proviene de la palabra
humongous que se traduce como enorme.
Escrita en lenguaje C++, de cdigo abierto, orientada a documentos, y pensada para ser
escalable y de desarrollo gil. Contrario a almacenar los datos en tablas y filas como se
realizara en una base de datos relacional, MongoDB almacena documentos similares a
JSON con esquemas dinmicos. La finalidad es cerrar la brecha entre almacenamiento
key-value (rpido y escalable) y las bases de datos relacionales (ricas en
funcionalidades). (10gen, 2011)
MongoDB no incluye interfaz administrativa al estilo GUI, estos son realizados desde la
misma consola mongo shell pero s existen proyectos comunitarios aparte que han
elaborado varias herramientas para la administracin y visualizacin de datos. La mayora
son de distribucin libre como Edda, Fang of Mongo, Umongo, etc., aunque tambin
existen dos opciones comerciales de Nucleon Software: Database Master y Business
Intelligence Studio no slo para MongoDB, sino tambin para bases de datos
relacionales como Oracle, DB2, SQL Server, entre otros-.
Lenguaje de consulta: Mongo Query Language
Entre algunos usuarios se encuentran:
o
Neo4j
Base de datos grfica (graph database) de alto rendimiento y desarrollada por Neo
Technology. Esta almacena los datos en los nodos y relaciones de un grafo y opera con
una estructura de red flexible y orientada a objetos en vez de tablas estticas y rigurosas,
pero a la vez obteniendo todos los beneficios de una base de datos transaccional.
A pesar de que es open source correspondiente a la versin Comunitaria-, tambin
cuenta con otras 2 licencias comerciales: Avanzada y Empresarial-, contando con
mayores beneficios como soporte, monitoreo, recuperacin de desastres, back up online y
mayor disponibilidad.
Para las licencias comerciales, Neo Technology considera a Neo4j como un servicio, por
lo que ofrece un acuerdo de servicio que incluye actualizaciones, correccin de bugs y
asistencia para los proyectos.
Independiente de las versiones ofrecidas, Neo Technology ofrece otros servicios:
Adobe
Cisco
Caractersticas:
Mantenibilidad: Lenguaje de consulta similar a SQL y adaptado al modelo key-value.
Caractersticas de la mquina:
Sistema Operativo
CPU
Memori
a
Disco
Sistema de
archivos
Software
Mnimo
Intel 486
1GB
SCSI, EIDE
Requerid
o
Linux y Windows: 32 y 64
bits
Intel Core
i7
4GB
SSD con
SATA
ext3 (o
similar)
ext4, ZFS
Java JRE
1.6
Java JRE
1.6+
(Neo
DynamoDB
Es un servicio de base de datos NoSQL abarcado por AWS (Amazon Web Services) y
ofrecido por Amazon a comienzos del presente ao (2012) de tipo key-value, que provee
flexibilidad y alto rendimiento, disponibilidad y escalabilidad.
Esta base de datos est diseada para abordar problemas de gestin, rendimiento,
escalabilidad y fiabilidad de los datos ya que el cliente no realiza acciones de instalacin,
configuracin, revisin, ni dems actividades de mantenimiento ni soporte del motor.
Para ayudar a gestionar las actividades propias de cada usuario como la infraestructura
de la base de datos, los recursos informticos y el almacenamiento, se cuenta con AWS
Management Console, una interfaz web de tipo sealar y pulsar para diferentes acciones
dentro del conjunto de servicios de Amazon Web Services.
Este motor, a diferencia de los anteriormente nombrados, este es de pago ya que cuenta
con servicios provistos por Amazon, los datos se almacenan en sus servidores y es
escalable en cuanto a que slo se paga por lo que los usuarios usen, si se generan ms
solicitudes o concurrencia de usuarios, entonces Amazon destinar ms servidores y
continuar gestionando la seguridad de los datos y realizando operaciones de
mantenimiento cuando sean necesarias.
De igual manera, Amazon provee la interfaz grfica para usuario por medio de AWS
Management Console para crear elementos en la base de datos y controlar recursos y
medir el rendimiento sobre el motor
Sitio web oficial: http://aws.amazon.com/es/dynamodb/
Caractersticas:
Mantenibilidad: Altamente escalable y gestionado en cuanto a recursos necesarios por las
aplicaciones que pueden acceder a la base de datos por parte de Amazon.
Caractersticas de la mquina: Navegadores web: Mozilla Firefox 12 y 13; Apple Safai 5;
Google Chrome 19 y 20 y Windows Internet Explorer 8 y 9. Cabe resaltar que para hacer
uso de AWS, no se admiten las versiones beta de los navegadores anteriores.
Instalacin/Implementacin: Tener cuenta de AWS.
Usabilidad: Uso de interfaz grfica por medio de AWS Management Console.
Versin: Beta
Soporte y solucin de inquietudes: La pgina web oficial contiene bajo la seccin Support
varios elementos de ayuda como foros, estado de los servicios de AWS, preguntas
tcnicas, entre otros elementos no slo de este motor sino tambin de los dems servicios
que ofrece AWS.
Madurez: Amazon como tal, contiene una amplia gama de soluciones por lo que es
reconocido mundialmente y a pesar de que DynamoDB se encuentra en una versin beta
para los usuarios, Amazon mismo utiliza esta misma base de datos y variantes para el
procesamiento interno.
Documentacin: Amazon tiene un manual de usuario llamado Amazon DynamoDB
Developer Guide acerca de los conceptos e instrucciones para el uso de las operaciones
en el motor.
Ventajas: No requiere administracin sobre las bases de datos, ya que de esta parte se
encarga el servicio de Amazon; por ejemplo: Adquisicin de nuevo hardware,
configuracin general, replicacin, aplicacin de parches, configuracin de particiones o
clusterizacin.
Limitaciones: DynamoDB se encuentra en versin beta y no todos los navegadores de
internet admitidos por AWS Management Console.
2. METODOLOGA
Para lograr el objetivo final de este trabajo de grado, el cual es identificar una alternativa
viable NoSQL, es necesario un conocimiento suficiente de informacin tanto de bases de
datos de este tipo como las SQL, as como los requisitos y necesidades de las empresas,
para lograr este proceso se procedi como se muestra a continuacin:
Caractersticas
Mantenibilidad
Caractersticas
mquina
de
la Instalacin/Implementacin
Usabilidad
Versin
Madurez
Documentacin
Ventajas/Desventajas/Limitaciones
Madurez: experiencia tanto del proveedor como del motor de bsqueda, ya que
genera confianza y seguridad en los usuarios, indica el esfuerzo y desarrollo en las
versiones.
Versin: todo programa o aplicacin cuenta con varias versiones, en las que el
proveedor modifica, corrige o implementa nuevas funcionalidades. Se encuentran
versiones estables e inestables, se recomienda usar la versin estable ya que es
ms confiable, segura y en la cual se corrigieron la mayora de los errores
encontrados durante el proceso de pruebas.
La bsqueda se realiza en internet debido a que es un tema que pocos conocen y que es
relativamente nuevo, por lo que encontrar informacin fsica es difcil; con el objeto de
complementar la informacin obtenida se proceder a indagar en trabajos de grado, tesis
o noticias sobre temas relacionados que puedan corroborar la veracidad de los datos
encontrados en las diferentes pginas web durante la bsqueda.
Paralelamente a esta actividad se comienza a obtener contactos en diferentes empresas
para la realizacin de una encuesta (correspondiente al objetivo especfico 1) que ser el
ncleo del trabajo de grado sobre el que giren las decisiones a tomar de la alternativa
NoSQL. La encuesta se realiz inicialmente en Microsoft Word 2007 y luego se adapt a
Google forms, un servicio de formularios que presta Google para la realizacin de
encuestas por medio de internet.
La encuesta consta de 16 preguntas basadas en su mayora en conocer qu bases de
datos utiliza la empresa para la que trabaja el encuestado y las actividades que involucra
poseerlas, como mantenimiento, polticas de uso, requisitos, entre otras; y la parte
restante, en decisiones sobre el uso de los motores relacionadas tambin con las polticas
de la empresa y conocimiento breve de NoSQL. Seguidamente se analizarn las
respuestas dadas a cada pregunta en base a la muestra de empresas encuestadas y con
4. DISCUSIN DE RESULTADOS
4.1
RESULTADOS DE LA ENCUESTA
Series1;
1. Qu bases de datos ha adquirido/usado
la organizacin
MySQL; 1; 6%
para el almacenamiento de informacin en los ltimos 5
aos?
Series1;
PostgreSQL; 2;
13%
Series1;
Otros; 3;
19%
MySQL
Series1; Microsoft SQL Server
Microsoft SQL
Oracle
Server; 5; 31%
PostgreSQL
Series1; Oracle;
5; 31%
Otros
Series1;
3. Qu factor es ms importante cuando una
aplicacin
Almacenamient
hace uso de la base de datos?o de datos;
20%; 20%
Almacenamiento de datos
Tiempos de respuesta
Series1;
Tiempos de
respuesta;
80%; 80%
deber al desarrollo o compra de productos de software que slo son compatibles con
Windows, ya sea a nivel de formato de archivos o a integracin con otras aplicaciones.
La informacin de la figura 6 se utilizar en los siguientes objetivos especficos de este
trabajo de grado, de forma que se pueda identificar una base de datos NoSQL que sea
compatible con la mayor cantidad de sistemas operativos anteriores.
Pregunta 6: Cada cunto tiempo realizan respaldos a la informacin contenida en la
base de datos?
Pregunta de tipo excluyente con nica respuesta de cuatro posibles y relacionada a la
frecuencia con que se realizan procesos de back up. Las posibles de respuesta son:
Cada semana
Cada mes
se
se
un
en
Menos de $500.000
Series1; Ms de
$1.000.000;
60%; 60%
Series1; Entre
$500.000 y
$1.000.000;
40%; 40%
Entre $500.000 y
$1.000.000
Ms de $1.000.000
Pregunta 10: Cuando sale al mercado una nueva versin del motor, lo adquieren
inmediatamente?
Pregunta es de tipo excluyente (Si No).
El 80% de las empresas encuestadas respondieron que no lo adquiran mientras que un
20% si lo haca como lo muestra la figura 8.
Esto no indica que contradice lo analizado en la pregunta 8 concerniente al valioso
soporte que del proveedor para las empresas. Cuando se realiza un nuevo lanzamiento
del motor, este permanece en una etapa beta para que los clientes la evalen y exploren
las correcciones realizadas y nuevas funcionalidades; adems no indica que la versin del
sistema de bases de datos vaya a quedar obsoleta o desatendida por el proveedor, en
este caso si an cumple con las caractersticas vistas anteriormente (Vase Figura 3)
entonces se puede conservar por un poco ms de tiempo.
Para el caso del 20% se podra afirmar que tiene recursos suficientes para estar a la
vanguardia y prestar servicios ms completos.
Desarrollo interno
Soporte: tiene que ver con el soporte por parte del proveedor tanto del motor
actual, ya que se ha dicho que si an se tiene y no existe necesidad, las empresas
prefieren quedarse en este estado. Tambin tiene que ver con el soporte y
condiciones que se tendrn una vez se migre a otro sistema.
Segn la figura 9, el 60% de las empresas obligan a que los datos permanezcan en
servidores propios, siendo estos administrados por la empresa misma. El restante 40%
puede que tengan una poltica ms liberal y que tengan informacin mantenida por un
tercero. En algunos casos los nuevos modelos de bases de datos proveen el servicio
completo de control y mantenimiento, que se tendr en cuenta ms adelante para la
seleccin de bases de datos que cumplan con los requisitos de las compaas.
Series1; No;
40%; 40%
Series1; Si;
60%; 60%
Si
No
4.2
LISTA DE CHEQUEO
Cassandra
MongoDB Neo4j
DynamoDB
Si
Si
Si
Si
No
No
Si
Si
Se puede
aplicaciones?
otras
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
integrar
con
Almacena
ptima?
forma
Si
Si
Si
Si
Contiene
procedimientos
almacenados, vistas, triggers, etc.?
Si
No
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
10
Puede funcionar
operativo Windows?
bajo
sistema
Si
Si
Si
Si
11
Puede funcionar
operativo AIX?
bajo
sistema
No
No
Si
No
12
Si
Si
Si
Si
13
Si
Si
Si
Si
14
Se
asegura
la
integridad,
confidencialidad y disponibilidad de
los datos?
Si
Si
Si
Si
15
Si
Si
Si
Si
16
Si
Si
No
Si
17
Si
Si
Si
No
18
Es usuario es el encargado de la
gestin y mantenimiento de los datos?
Si
Si
Si
No
los
datos
de
acuerdo con lo anterior, todas opciones son consideradas optimizadas, claro que algunas
estn dirigidas conceptos y pblicos diferentes.
Pregunta 5: Tiene una versin estable de por lo menos este ao?
En lo que lleva de este ao, se debe esperar que se haya lanzada al pblico una versin
estable, de lo contrario indica que el proyecto est atrasado o parado y se puede
considerar un riesgo implementar el motor debido a errores futuros que no sern
corregidos o tomarn una larga espera, adems muestra el inters y esfuerzo por darse a
conocer en el mercado.
En este caso, los 4 motores seleccionados cumplen este requisito:
o
Neo4j: como sus anteriores contiene componentes que realizan tareas similares: para el
caso de triggers, cuenta con funciones para registrar las tareas por medio de
controladores de eventos para cambios en los nodos; de igual forma estas funciones son
similares a las funciones SQL.
En los sistemas Cassandra y Neo4j, la posibilidad de programar las propias funciones con
caractersticas de trigger, permiten agendar cundo ejecutar estas por lo que cumpliran
con la creacin de eventos programados.
DynamoDB: usando Amazon Elastic MapReduce (EMR) facilita el desarrollo de scripts en
diferentes lenguajes de programacin para la creacin de funcionalidades y consultas a la
base de datos.
Con las descripciones anteriores se tomar que Cassandra, Neo4j y DynamoDB soportan
las caractersticas o funcionalidades mencionadas en la pregunta.
Pregunta 8: Se pueden particionar las tablas que contienen los datos?
La particin de las tablas o los conceptos anlogos en los sistemas NoSQL se permiten a
travs del sharding o fragmentacin, esto permite reducir el nmero de filas por tabla, lo
que incrementa el rendimiento de las transacciones cuando se realizan operaciones sobre
ellas. Esto hace que el concepto NoSQL sea escalable horizontalmente adquiriendo ms
nodos en vez de mayores recursos para un solo servidor o nodo.
Pregunta 9: Permite la replicacin de los datos?
Cassandra almacena copias, llamadas replicas, de cada fila basada en la clave de la fila,
este proceso se realiza cuando se est creando el keyspace elemento que contiene las
tablas de la base de datosMongoDB soporta la replicacin asncrona entre varios servidores en caso de fallas y para
redundancia de datos, de modo que es posible proveer un servicio continuo. De este
modo un servidor escribe solamente mientras los otros estn atentos para la lectura y se
asegura que los datos estn actualizados como se observa brevemente en la figura 13.
4.3
Requisitos
Lista de chequeo
No
Cassandra
2
MongoDB
3
Neo4j
1
DynamoDB
3
Si
16
15
17
15
2. Cassandra
3. DynamoDB
4. MongoDB
DynamoDB, de Amazon, aunque obtuvo un tercer lugar, consideramos que debera ser el
primer acercamiento NoSQL para las empresas ya que es un concepto que an no es
muy reconocido y con esta se facilita la operacin y mantenimiento de los elementos del
motor, contienen un costo directo asociado para utilizarlo, pero no sera un problema
debido a las ventajas de integracin, soporte, respaldo, entre otros atributos vistos en los
numerales anteriores.
Se debe tener en cuenta que en este sistema los datos son almacenados y administrados
por un tercero, es decir que para las polticas de la compaa en la cual se restringe el
almacenamiento externo, no sera posible; pero s sera viable y posiblemente a
considerar como opcin en aquellas que respondieron afirmativamente a la pregunta
nmero 14 de la encuesta (80% de los encuestados), en la que se preguntaba sobre la
disposicin a utilizar instalaciones de un proveedor con garantas de confidencialidad,
integridad y disponibilidad sobre los datos.
Como segunda alternativa a considerar para las empresas que no sea posible almacenar
ninguna informacin fuera de la empresa es Neo4j, preferiblemente la versin Empresarial
que tiene soporte y mayor disponibilidad, aunque es de resaltar que esta solucin NoSQL
est ms enfocada a actividades del negocio donde se utilicen nodos e interacciones
entre estos como lo son los grafos, de igual forma el resultado o el sistema con el que
interacta el usuario final son grficas de datos geoespaciales. Para las compaas cuyo
propsito no es el anteriormente mencionado, esta base de datos no es una opcin viable.
Segn la figura 14, la opcin que cumple con la mayor cantidad de requisitos despus de
Neo4j es Cassandra, con propsitos ms generales. Este motor es administrado y
controlado completamente por el usuario y todas las responsabilidades de configuracin,
integracin y mantenimiento deben ser realizadas por el cliente. Se debe considerar como
riesgo el hecho de que no tenga soporte asociado.
Finalmente el orden que consideramos es el siguiente:
1. DynamoDB como primer acercamiento y entendimiento NoSQL.
2. Neo4j para grficos con nodos.
3. Cassandra o MongoDB, optando por Cassandra que cumpli ms requisitos.
De forma resumida y grfica se puede identificar lo siguiente:
El outsourcing les permite a las organizaciones enfocarse en los procesos core del
negocio y es una modalidad muy utilizada, incluso ms frecuente que desarrollar
internamente.
Migrar es un proceso que toma tiempo e incluye desde la planeacin para la identificacin
de riesgos, esfuerzo y aprovechamiento de nuevas funcionalidades hasta el traspaso de
los datos como tal.
Segn las directrices de la empresa, algunas estn obligadas a almacenar los datos
internamente pero estaran dispuestas a que el tercero los guarde siempre y cuando
cumplan ciertos requisitos de confidencialidad, integridad y disponibilidad.
NoSQL es un concepto que an en el medio empresarial no es muy reconocido, lo que
dificultara la introduccin de este tipo de bases de datos.
La mayora de las empresas tienen directrices que obligan a mantener los datos
almacenados sus instalaciones, pero estaran dispuestas a que un tercero los almacene
siempre que protejan y aseguren la informacin.
NoSQL cambia los paradigmas de los sistemas SQL y permite un almacenamiento y
tiempos de respuesta ms rpidos y optimizados de forma que sea escalable.
Algunas bases de datos NoSQL presentan varias versiones al pblico, siendo las de pago
las que mayores beneficios traeran para las empresas, ya que cuentan con acuerdo de
servicios y soporte.
Las alternativas NoSQL seleccionadas a evaluar durante este trabajo de grado cumplieron
la mayora de los requisitos que las empresas hoy en da buscan.
Los motores que son open source buscan atraer usuarios que aporten ideas y
funcionalidades nuevas.
Las bases de datos NoSQL estn en constante implementacin y actualizacin y se
pueden encontrar en aplicaciones o servicios que usamos a diario sin darnos cuenta.
Introducir un sistema NoSQL, al igual que cualquier otro componente a la arquitectura de
una empresa, exige una ardua gestin del cambio y un proceso constante de adquisicin
de conocimiento por parte de los empleados y consideracin de los riesgos.
Se debe considerar el objeto de la empresa o las caractersticas de la aplicacin o servicio
para realizar una acertada eleccin de las bases de datos.
BIBLIOGRAFA
de
Agosto
de
8,
de
w3school:
Lpez Neira, A., & Ruiz Spohr, J. (s.f.). ISO 27001. Recuperado el 20 de 10 de 2012, de
Qu es un SGSI?: http://www.iso27000.es/sgsi.html#section2a
MSDN. (s.f.). Escalabilidad. Recuperado el 18 de
http://msdn.microsoft.com/es-es/library/aa292172(v=vs.71).aspx
10
de
2012,
de
ANEXO 1. ENCUESTA
Anlisis de las bases de datos NoSQL como alternativa a las bases de datos SQL
Respuesta excluyente
Respuesta mltiple
Respuesta abierta
Precio