Category Archives: TABD

cloudDatabases

Bases de Datos en la Nube

        Una base de datos en la nube es aquella que corre en una plataforma de cloud computing, es decir, aquella que funciona bajo la demanda de los usuarios a través de una red de computadoras. Generalmente existen dos modelos de implementación: uno en el que los usuarios pueden correr maquinas virtuales de forma independiente y otro en cual pueden comprar el acceso a un servicio de bases de datos, que es mantenido por un proveedor. En la actualidad existen proveedores para casi cualquier tipo de bases de datos, tanto SQL como NoSQL.

        Un estudio reciente muestra que el 90% de las empresas aún tiene dudas de adoptar tecnologías en la nube. (Walker, 2015) Es normal que existan preocupaciones acerca de la fiabilidad, la rapidez y la seguridad de este tipo de servicios, por lo cual los departamentos de TI deben crear conciencia e implementar mejores prácticas para ir resolviendo estas dudas, para educar y demostrar los beneficios de una mentalidad abierta a la nube.

        Las preocupaciones surgen cuando se piensa en la habilidad para controlar la infraestructura donde se almacenan los datos, y este miedo es legítimo, ya que las bases de datos y sus contenidos es uno de los tesoros más valorados por los piratas informáticos. Aplicar medidas de seguridad adecuadas como la encriptación de datos y las gestión de accesos como parte del sistema de gestión de base de datos operando en la nube, se conseguirá un nivel de seguridad adecuado para que los equipos de seguridad IT y los gerentes y dueños de empresas puedan dormir por las noches. De igual manera, las empresas deben tomar en cuenta las leyes locales concernientes a la privacidad de los datos, ya que muchos países están implementado legislaciones más estrictas. Por ejemplo, Canada, Alemania y Rusia están discutiendo propuestas de ley que requerirán que los datos que tienen que ver con sus ciudadanos deben ser almacenados en sistemas que se ubiquen en su propio país.

        A pesar de estos miedos, las empresas continuarán explorando cuándo y cómo aceptar y explotar el uso de la nube pública, así como la respuesta a la interrogante de en qué momento tiene más sentido mantener los datos en sus propias instalaciones o usar un acercamiento de nube híbrida. A lo largo del 2016 se espera ver un gran enfoque en crear soluciones que mejoren la migración de datos, la seguridad y la eficiencia mediante arquitecturas híbridas. Características como la autenticación, la encriptación, los firewalls y un control de accesos basado en roles deberán convertirse en un estándar de la industria. Pero lo más importante a tener en cuenta es que independientemente de lo  rápido que se mueva el mercado, la necesidad de una educación robusta por parte de los departamentos de TI es crucial, y sólo a través de ellos es que el negocio podrá analizar y decidir si esta tendencia mejorará el funcionamiento del negocio o traerá más problemas que soluciones. (Vyas, 2016)

Referencias

nosql-databases

Bases de Datos NoSQL

        La  respuesta  a la  necesidad  de gestionar volúmenes masivos  de información  surge  de  la  base  de  datos NoSQL,  término  acuñado  a  finales  de  los  90  y  que  engloba  todas  las  tecnologías  de  almacenamiento estructurado que no cumplen el esquema relacional. La  cantidad  de  información  manejada  por  comunidades,  redes  sociales,  buscadores,  y  muchos otros proyectos en el ámbito de la Web 2.0 es abrumadora, lo que ha hecho que surjan nuevas arquitecturas de almacenamiento de información, que deben ser de alto rendimiento, escalables y distribuidas. Aunque esta tecnología surgió de unas necesidades muy concretas, su difusión y algunos proyectos para encapsular  sus  funcionalidades  y  hacerlas  más  amigables  a  desarrolladores  acostumbrados  a  SQL  está provocando que también se usen en proyectos de pequeño tamaño, con lo que todo indica que a medio plazo  convivirán  con  las  bases  de  datos  tradicionales  independientemente  del  volumen  de  datos  a gestionar. [1]

Dentro de las plataformas NoSQL encontramos varios grupos:

Basadas en clave/valor: Se almacenan valores asociados a una clave. Son sencillas y las de mayor rendimiento.

Basadas  en  documento:  Son  una  particularización  de  las  clave/valor,  en  las  que  el  valor  puedeser un documento. Permiten consultas complejas.

Basadas en columna: Los valores se almacenan en columnas en lugar de filas. Son útiles cuando se gestionan datos agregados.

Basadas en grafo: Las relaciones se tratan como un dato más.

Basadas  en  objetos:  Los  datos  son  objetos  y  las  relaciones  punteros  entre  ellos.  Permiten operaciones muy complejas pero suelen tener bajo rendimiento.

Otras:  Cubren  necesidades  muy  específicas  y  tienen  escasa  implantación:  basadas  en  tupla, multivaluadas, jerárquicas, etc. [2]

Desventajas y ventajas de las bases de datos NoSQL

        Desde la visión de los adeptos a los RDBMS (Relational Data Base Management System) podemos mencionar las siguientes críticas a las bases de datos NoSQL: [3]

  • No hay un claro líder: El mercado de NoSQL está muy fragmentado, lo cual es un  problema  para  el  open-source  porque  se  requiere  una  gran  cantidad  de desarrolladores para tener éxito .
  • Cada  una  de  las  bases  de  datos  NoSQL  posee  su  propia  interfaz  no estándar: La  adaptación  a  una  base  de  datos  NoSQL  requiere  una  inversión significativa para poder ser utilizada. Debido a la especialización, una compañía podría  tener  que  instalar  más  de  una  de  estas  bases  de  datos.  Por  ello, algunos  describen  el  mercado  NoSQL  como  monopolísticamente  competitivo (bajas barreras para entrar  y salir, muchos pequeños proveedores con productos técnicamente  heterogéneos  y  diferenciados,  y  un  mercado  inconsistente  con  las condiciones  para  la  perfecta  competencia),  donde  las  empresas NoSQL  están condenadas a obtener cero ganancias económicas a largo plazo.
  • Escalabilidad  no  tan  simple: Una  de  las  características  más  difundida  de  las bases  de  datos  NoSQL  es  su capacidad  de  escalar horizontalmente.  Esta  es promovida como   una   manera   de   manejar   el   crecimientoimpredecible   oexponencial  delas  necesidades  de  negocio,  pero con  frecuencia es  más  fácil decirlo  que  hacerlo,  tal  como  lo  demostraron  los  problemas  de  sharding  que generaron el apagado en el Foursquare.
  • Se   requiere   una   reestructuración   de   los   modelos   de   desarrollo   de aplicaciones: Utilizar  una  base  datos  NoSQL  típicamente  implica  usar  un modelo de desarrollo de aplicaciones diferente a la tradicional arquitectura de 3 capas.   Por   lo   tanto,   una   aplicación   existente   de   3   capas   no   puede   ser simplemente  convertida  para  bases  de  datos  NoSQL,  debe  ser  reescrita,  sin mencionar  que  no  es  fácil  reestructurar los  sistemas  para  que  no  ejecuten consultas  con  join  o no  poder  confiar  en  el  modelo  de  consistencia  read-after-write.
  • Modelos de  datos  sin  esquema  podría  ser  una  mala  decisión  de  diseño: Si bien los modelos de datos sin esquema son flexibles desde el punto de vista del diseñador,  son  difíciles  para  consultar  sus  datos.  El  modelo  Entidad-Atributo-Valor  (EAV)  funciona  bien  para  consultas  clave-valor,  pero  para  consultas  de rango o más complejas (por ejemplo para reportes), éste esquema es complicado y    lento.    EAV    solo    tiene    sentido    para    esquemas    que    cambian frecuentemente. En  los  modelos  de  datos  sin  esquema,  el  manejo  de  los  datos  es  delegado  a  la capa  de  aplicación.  Dado  que  la  aplicación  necesita  conocer  que  información almacena  y  como,  a  medida  que  evolucionan  los  datos  la  aplicación  debe  ser capaz de manejar todos los diferentes formatos.

        Por  otro  lado,  desde  la  visión  de  los  adeptos  a  las  bases  de  datos  NoSQL  podemos mencionar las siguientes razones para desarrollar y utilizar éstos almacenamientos: [3]

  • Evitar  la  complejidad innecesaria: Los  RDBMS  proveen  un  conjunto  amplio de  características  y  obligan  el  cumplimiento  de  las  propiedades  ACID,  sin embargo,   para   algunas   aplicaciones   éste   set   podría   ser   excesivo   y   el cumplimiento  estricto  de  las  propiedades  ACID  innecesario.
  • Alto  rendimiento: En  la  década  de  los  80  las  consultas  a  las  bases  de  datos podían  correr  de  noche  como  procesos  batch,  hoy  día  esto  no  es  aceptable.  Si bien algunas funciones analíticas pueden ejecutarse de noche, la evolución de la web  requiere  respuestas  inmediatas  a  las  consultas.  Las  bases  de  datos NoSQL proveen un rendimiento mayor a las relacionales, incluso de hasta varios órdenes de magnitud: De acuerdo a una presentación realizada por los ingenieros Avinash Lakshman  y Prashant Malik de Facebook, Cassandra puede escribir en un almacenamiento de datos más de 50 GB en solo 0.12 milisegundos, mientras que MySQL tardaría 300 milisegundos para la mismatarea [4].
  • Incremento  del  volumen  de  información  no  estructurada  y  empleo  de hardware  más  económico: En  contraste  con  los  RDBMS,  la  mayoría  de  las bases  de  datos  NoSQL  son  diseñadas  para  poder  escalar  horizontalmente  y  no tener  que  confiar  en  hardware  altamente  disponible.  Las  máquinas  pueden  ser agregadas o quitadas sin el esfuerzo operacional que implica realizar sharding en soluciones de cluster de RDBMS.
  • Evitar  el  costoso  mapeo  objeto-relacional: La  mayoría  de  las  bases  de  datos NoSQL  son  diseñadas  para  almacenar  estructuras  de  datos  más  simples  o  más similares a las utilizadas en los lenguajes de programación orientados a objetos. De   esta   forma,   se   evita   costosos   mapeos   objeto-relacional,   beneficiando principalmente   a   aplicaciones   de   baja   complejidad   que   difícilmente   se benefician de un RDBMS.
Referencias consultadas:
  1.  Gracia del Busto. H.; Yanes Enríquez, O.: «Bases de Datos NoSQL«, Revista Telem@tica. Vol. 11. No. 3, septiembre-diciembre, 2012. Disponible en http://revistatelematica.cujae.edu.cu/index.php/tele/article/view/74
  2. Strauch, C: “NoSQL Databases”. Disponible en http://www.christof-strauch.de/nosqldbs.pdf
  3.  Antiñanco, M.: «Bases de Datos NoSQL: escalabilidad y alta disponibilidad a través de patrones de diseño» Universidad Nacional de La Plata, 2014. Disponible en http://hdl.handle.net/10915/36338
  4. Avinash, L.; Prashant, M.: «Cassandra-Structured Storage System over a P2P Network» 2009. Disponible en  http://static.last.fm/johan/nosql-20090611/cassandra_nosql.pdf

Big Data

Big Data

Cuando hablamos de Big Data, hacemos referencia al almacenamiento de grandes cantidades de datos y a los procedimientos usados para encontrar patrones repetitivos dentro de dichos datos. Si bien esta técnica también es llamada «datos a gran escala», en los textos científicos en español con frecuencia se usa directamente el término en inglés Big Data, tal como aparece en el ensayo seminal de Viktor Schönberger Big data: La revolución de los datos masivos.1

Ya en el año 2001, el analista de la industria Doug Laney articulaba la definición principal manejada actualmente, interpretando la Big Data como  tres grandes V: volumen, velocidad y variedad.2

Volumen: Muchos factores contribuyen al aumento de volumen de datos: datos basados en transacciones, almacenados a través de los años; datos no estructurados que fluyen desde los medios y las redes sociales; mayor cantidad de datos capturados por sensores y comunicaciones máquina a máquina, etc. En el pasado, el volumen excesivo de datos era un problema de almacenamiento; sin embargo, con la disminución de los costos de almacenamiento, surgen otros problemas, incluyendo la forma de determinar la pertinencia dentro de grandes volúmenes de datos y cómo usar la analítica para crear valor a partir de los datos pertinentes.

Velocidad: Los datos se transmiten a una velocidad sin precedentes y deben ser tratados de manera oportuna. Las etiquetas RFID, sensores y contadores inteligentes están impulsando la necesidad de tratar con ráfagas de datos en tiempo casi real. Reaccionar con la suficiente rapidez para hacer frente a la velocidad de datos es un reto para la mayoría de las organizaciones.

Variedad: Al día de hoy, los datos viene en todo tipo de formatos: datos numéricos estructurados en bases de datos tradicionales; información generada desde las aplicaciones de línea de negocio, documentos de texto no estructurados, correo electrónico, vídeo, audio,  transacciones financieras, etc. Gestionar y fusionar  las diferentes variedades de datos es algo con lo que muchas organizaciones luchan todavía.

¿Por qué debe importarnos la Big Data?

El verdadero problema no está en poseer grandes cantidades de datos, es lo que se hace con los datos lo que cuenta. La visión que se tiene es que las organizaciones serán capaces de tomar datos de cualquier fuente, aprovechar los datos relevantes y analizarlos para encontrar respuestas que permitan: 1) la reducción de costes, 2) las reducciones de tiempo, 3) desarrollo de nuevos productos y ofertas optimizadas, y 4) que la toma de decisiones de negocio sea más inteligente. Por ejemplo, mediante la combinación de Big Data y análisis de alta potencia, sería posible:

  • Determinar las causas fundamentales de los fracasos, problemas y defectos en  tiempo casi real, ahorrando potencialmente mucho dinero.
  • Analizar millones de SKUs para determinar los precios que maximicen los beneficios y el manejo del inventario existente.
  • Generar cupones de venta al por menor en el punto de venta basado en las compras actuales y anteriores del cliente.
  • Enviar recomendaciones adaptadas a dispositivos móviles mientras que los clientes están en el área correcta para aprovechar las ofertas.
  • Volver a calcular las carteras enteras de riesgo en cuestión de minutos,  identificando rápidamente a los clientes que más importan.
  • Utilizar el análisis de clics y la minería de datos para detectar comportamientos fraudulentos.

Es importante entonces tomar en cuenta esta potente herramienta a la hora de la toma de decisiones, puesto que podría significar la diferencia entre un negocio exitoso y uno infructuoso. Por supuesto, esta información siempre debería ser analizada junto al contexto en el que se obtuvo, de forma tal de evitar conclusiones erradas.

Referencias
  1.  http://www.eldiario.es/turing/Big-data_0_161334397.html
  2. http://www.sas.com/en_ph/insights/big-data/what-is-big-data.html
Bases de Datos y la Web

Web semántica

La web semántica es el futuro de la web, una web que facilitará la localización de recursos, la comunicación entre sistemas y programas, que nos ayudará a gestionar nuestro día a día, hasta llegar a niveles que hoy pueden ser considerados como de ciencia ficción.

La red semántica no es una red independiente de la actual, sino una ampliación; una red en la cual la información está dotada de significados bien definidos, con el fin de que la coordinación del trabajo entre humanos y ordenadores sea más completa. Se han dado ya los primeros pasos para incluir la red semántica en la estructura de la red ya existente. En un futuro no lejano, estos desarrollos introducirán prestaciones nuevas e importantes, al lograr que las máquinas multipliquen su capacidad de procesar y comprender los datos que hoy tan sólo se exhiben en pantalla. En su universalidad el hipertexto permite «conectar cualquier cosa con todo», por tanto la técnica no debe discriminar entre un borrador y la prestación más depurada, entre información comercial y académica, ni entre culturas, idiomas, etc. No generamos el mismo tipo de información si estamos pensando en una persona o en una máquina, así tenemos por un lado un video de 5 sec. a una poesía y por el otros están las bases de datos, programas hechos por friskis informáticos,…

Hasta ahora, la red estaba concebida más para proporcionar documentos a los humanos que para manipular datos o y procesar información de manera automática, pero a partir de ahora tenemos que cambiar el chip pues nos encontramos frente a una potente herramienta facilitadora de la comunicación, que es la red semántica,además ésta no pierda una de las características esenciales que es ser descentralizada.

El eje principal de la web semántica gira en torno a ontologías que representan formalmente los nombres y definiciones de los tipos, propiedades e interrelaciones lógicas de entidades que existan para un tema en particular. El lenguaje empleado por esta gran base de datos, es OWL (Ontology Web Language), que a su vez se sustenta en un esquema RDF (Resource Description Framework) que establece los métodos de descripción de los recursos más importantes de un sitio web, empleando para tal fin el metalenguaje XML (Extensive Markup Language) el cual es usado para almacenar información de datos estructurados.