Tag Archives: bases de datos

Oracle Cloud

Base de Datos Autónoma en el 2019

Esta publicación es parte de una serie de temas que giran alrededor de la Base de Datos Autónoma de Oracle y Oracle Cloud.

Fue hace dos años ya, durante el Oracle OpenWorld 2017, que Larry Ellison presentó la Base de Datos Autónoma en la Nube de Oracle, una base de datos que logra su automatización mediante una capa de machine learning que se encarga de gestionar y actualizar el sistema, aplicando ajustes y parches mientras se encuentra en funcionamiento y sin necesidad de un ser humano vigilándola, pudiendo incluso detectar y contrarrestar ciberataques en tiempo real.

Larry Ellison, uno de los principales portavoces de Oracle
Larry Ellison, uno de los principales portavoces de Oracle (Foto de Justin Sullivan/Getty Images)

Bajo este concepto, no es extraño que la tecnología fuese presentada como “revolucionaria” y como “verdadera computación bajo demanda”, más aún al tomar en cuenta los puntos resaltados en el discurso del ejecutivo de Oracle:

  • Prescinde del trabajo humano, al automatizar las actualizaciones de seguridad y ajustes necesarios mientras se ejecuta, reduciendo al mínimo los tiempos de inactividad.
  • Acuerdos de nivel de servicio (SLA) que garantizan un 99,995% de disponibilidad anual, lo que representa un tiempo de fallos de menos de 30 minutos al año.
  • Costes de administración más bajos en comparación con la competencia, dada su naturaleza automática e inteligente en combinación con algoritmos de compresión y aprendizaje.

Este último punto fue especialmente recalcado haciendo varias comparaciones con el principal competidor de la compañía, Amazon, en las cuales se presentó que la operación podía llegar a ser de cinco a ocho veces más costosa que una implementación de Base de Datos Autónoma de Oracle ejecutando la misma carga de trabajo.

Con todo esto, surgen algunas preguntas: A dos años de su presentación inicial, ¿ha logrado Oracle mantener sus promesas? ¿Es la Base de Datos Autónoma una opción verdaderamente adecuada para las compañías que quieran migrar sus servicios a la nube? Continue reading Base de Datos Autónoma en el 2019

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