1.1. Administrador
de Base de Datos (DBA)
Un administrador de bases de datos (o
DBA) tiene la responsabilidad de mantener y operar las bases de datos que
conforman el sistema de información de una compañía.
Debido a la importancia de los datos que
están a su cargo, el administrador de bases de datos debe ser experto en TI
(tecnología de la información), teniendo particular conocimiento de DBMS
(sistemas de administración de bases de datos) y el lenguaje de consulta SQL.
También debe tener conocimiento de varios tipos de lenguaje de programación
para poder automatizar ciertas tareas.
Una de sus tareas es la de asegurar la integridad del sistema de
información de la compañía. Además, es necesario que posea un buen
entendimiento de DBMS para optimizar las consultas, ajustar la configuración de
DBMS o para sincronizar en forma precisa las herramientas de control del acceso
a las bases de datos.
Es posible que el administrador de bases de datos tenga que
brindar asistencia técnica a usuarios de las aplicaciones cliente o equipos de
desarrollo para solucionar problemas, dar consejos o ayudar a resolver consultas
complicadas.
Al trabajar con el jefe de seguridad, el administrador de bases de
datos debe crear copias de seguridad, planes y procedimientos de restauración
para preservar los datos de los cuales es responsable.
Además de estas habilidades técnicas, el administrador de bases de
datos debe poseer un buen entendimiento de las aplicaciones de la compañía y
estar dispuesto a atender las necesidades de los usuarios cuando desarrolla o
edita una base de datos. En el mejor de los casos, debe tener experiencia en
diseño de sistemas de información y modelos UML (Lenguaje unificado de
modelos).
El salario de un administrador de bases de datos puede variar
entre 32.000 y 55.000 euros anuales, en función de la importancia y la
complejidad del sistema de información y de las responsabilidades que deberá
asumir.
Un administrador de bases de
datos (también conocido como DBA, en inglés database
administrator) es aquel profesional
que administra las tecnologías de la información y la
comunicación, siendo responsable de los aspectos técnicos, tecnológicos,
científicos, inteligencia de negocios y legales de bases de
datos, y de la calidad de datos.
Funciones de un DBA
Los DBA realizan pruebas de rendimiento,
pruebas de impacto, pruebas funcionales, pruebas de código, pruebas de carga de
datos, pruebas de implementación y pruebas de integración en proyectos
Investigación, desarrollo e innovación. Para la ejecución de pruebas es
necesario aplicar las metodologías basadas en Ingeniería del software, sus
aplicaciones funcionales y los requerimientos de calidad, añadiendo las líneas
base de la ingeniería requerimientos en la inteligencia de negocios y las
tecnologías de la información. Algunas de las actividades más relevantes de un
DBA son:
· Analistas
de datos.
·
Analistas
de sistemas.
·
Analistas
de programación.
·
Administradores
de bases de datos.
·
Consultores
de sistemas.
·
Consultores
de tecnologías de la información.
·
Consultores
de aplicaciones.
·
Consultores
de programación.
·
Programadores
de bases de datos.
·
Programadores
de procesos de negocio.
·
Integradores
de datos.
·
Ingenieros
de datos.
·
Ingenieros
estadísticos.
·
Jefes
de centros de datos.
·
Coordinadores
de área
·
Gestión
General de Base de Datos: El DBA es la persona con más conocimientos sobre
base de datos en una organización. Como tal, debe entender las reglas básicas
de la tecnología de base de datos relacional y ser capaz de comunicarlos con
precisión a los demás.
·
Modelado
de Datos y Diseño de Base de Datos: Un DBA debe ser un profesional experto
en la recopilación y análisis de las necesidades del usuario para obtener
modelos de datos conceptuales y lógicos. Esta tarea es más difícil de lo que
parece. Un modelo conceptual de datos describe los requisitos de datos a un
nivel muy alto, un modelo de datos lógico proporciona en profundidad los
detalles de los tipos de datos, longitudes, relaciones y cardinalidad. El DBA
utiliza técnicas de normalización para ofrecer modelos de datos que reflejen
las necesidades de los datos de la empresa.
·
Auditoria: Una
de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar,
actualizar o eliminar datos, y cuándo. Una auditoría NO sólo podría ser
necesaria por un tiempo limitado, para usuarios específicos o datos
específicos. También puede ser requerida 24/7 para todos los datos que se
introduzcan en el DBMS. Regularmente, para realizar las funciones de autorías
los DBAs tienen que trabajar en combinación con los auditores internos y
externos de la empresa.
·
Integración
con aplicaciones: La mayoría de las empresas hoy en día utilizan
aplicaciones de terceros (casi nadie ya desarrolla sus propias aplicaciones
in-house), muy pocas de estas aplicaciones funcionan de manera aislada. En
otras palabras, las aplicaciones tienen que interconectarse unas con otras,
generalmente utilizando base de datos como el medio para compartir los datos.
Los DBAs a menudo se involucran en los procesos de integrar las aplicaciones
existentes con las bases datos que administran. Esto puede incluir la creación
de aplicaciones a medida, scripts, etc.
·
Resguardo
y recuperación de datos: Uno de los aspectos más fundamentales del trabajo
del DBA es proteger los datos de la organización. Esto incluye hacer copias de
seguridad periódicas de los datos y mantenerlos a salvo de la destrucción
accidental o intencional. Además, diseñar, implementar y probar un plan de
recuperación para que cuando se presenten los problemas, los datos se pueden
restaurar rápidamente.
·
Inteligencia
de negocios y almacenamiento de datos: Una de las áreas de mayor crecimiento
para el DBA es la Inteligencia de Negocios (BI) y almacenamiento de datos. Esto
se debe a que cada vez más organizaciones están tratando de extraer toda la
información que pueda con el fin de tomar mejores decisiones de negocios.
·
Planificación
de capacidad: En la mayoría de las organizaciones, el número y tamaño de
las bases de datos crece rápidamente. Es la responsabilidad del DBA gestionar
el creciente volumen de datos y diseñar los planes apropiados para
administrarlos. Esto incluye también la gestión del hardware donde se almacenan
los datos.
·
Administración
de cambios: La configuración del servidor SQL Server o MySQL, el esquema
de base de datos, el código de Transact-SQL, y muchas otras facetas del
ecosistema de aplicaciones cambian con el tiempo. A menudo es la
responsabilidad del DBA realizar el análisis de impacto antes de realizar los
cambios dentro de una DBMS. Implementar cambios, hacer pruebas piloto y
documentar todos los cambios y procedimientos es parte del trabajo de un DBA.
·
Desarrollo
de aplicaciones: Muchos administradores de base datos deben de desarrollar
aplicaciones y scripts con el objetivo de automatizar tareas relacionadas con
la inserción, sustracción o borrado de información dentro del manejador de base
de datos. En general, éste debe de colaborar a nivel de integración de sistema
con los desarrolladores de aplicaciones, por lo que a veces se ve en la
obligación de desarrollar código para casos específicos.
Algunas tareas que ejecutan los DBA
tenemos:
·
Implementar,
dar soporte y gestionar bases de datos corporativas.
·
Crear
y configurar bases de datos relacionales.
·
Ser
responsables de la integridad de los datos y la disponibilidad.
·
Diseñar,
desplegar y monitorizar servidores de bases de datos.
·
Diseñar
la distribución de los datos y las soluciones de almacenamiento.
·
Garantizar
la seguridad de las bases de datos, realizar copias de seguridad y
llevar a cabo la recuperación de desastres.
·
Planificar
e implementar el aprovisionamiento de los datos y aplicaciones.
·
Diseñar planes
de contingencia.
·
Diseñar
y crear las bases de datos corporativas de soluciones avanzadas.
·
Analizar
y reportar datos corporativos que ayuden a la toma de decisiones en la
inteligencia de negocios.
·
Producir
diagramas de entidades relacionales y diagramas de flujos de datos,
normalización esquemática, localización lógica y física de bases de datos y
parámetros de tablas.
Los administradores
de bases de datos tienen competencias y capacidades en uno o más sistemas de
gestión de bases de datos, algunos ejemplos: Microsoft SQL Server, IBM DB2,
Oracle MySQL, Oracle database, IBM Informix y SQL Anywhere.
·
Gestión
General de Base de Datos: El DBA es la persona con más conocimientos sobre
base de datos en una organización. Como tal, debe entender las reglas básicas
de la tecnología de base de datos relacional y ser capaz de comunicarlos con
precisión a los demás.
·
Modelado
de Datos y Diseño de Base de Datos: Un DBA debe ser un profesional experto
en la recopilación y análisis de las necesidades del usuario para obtener
modelos de datos conceptuales y lógicos. Esta tarea es más difícil de lo que
parece. Un modelo conceptual de datos describe los requisitos de datos a un
nivel muy alto, un modelo de datos lógico proporciona en profundidad los
detalles de los tipos de datos, longitudes, relaciones y cardinalidad. El DBA
utiliza técnicas de normalización para ofrecer modelos de datos que reflejen
las necesidades de los datos de la empresa.
·
Auditoria: Una
de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar,
actualizar o eliminar datos, y cuándo. Una auditoría NO sólo podría ser
necesaria por un tiempo limitado, para usuarios específicos o datos
específicos. También puede ser requerida 24/7 para todos los datos que se
introduzcan en el DBMS. Regularmente, para realizar las funciones de autorías
los DBAs tienen que trabajar en combinación con los auditores internos y
externos de la empresa.
·
Integración
con aplicaciones: La mayoría de las empresas hoy en día utilizan
aplicaciones de terceros (casi nadie ya desarrolla sus propias aplicaciones
in-house), muy pocas de estas aplicaciones funcionan de manera aislada. En
otras palabras, las aplicaciones tienen que interconectarse unas con otras,
generalmente utilizando base de datos como el medio para compartir los datos.
Los DBAs a menudo se involucran en los procesos de integrar las aplicaciones
existentes con las bases datos que administran. Esto puede incluir la creación
de aplicaciones a medida, scripts, etc.
·
Resguardo
y recuperación de datos: Uno de los aspectos más fundamentales del trabajo
del DBA es proteger los datos de la organización. Esto incluye hacer copias de
seguridad periódicas de los datos y mantenerlos a salvo de la destrucción
accidental o intencional. Además, diseñar, implementar y probar un plan de
recuperación para que cuando se presenten los problemas, los datos se pueden
restaurar rápidamente.
·
Inteligencia
de negocios y almacenamiento de datos: Una de las áreas de mayor crecimiento
para el DBA es la Inteligencia de Negocios (BI) y almacenamiento de datos. Esto
se debe a que cada vez más organizaciones están tratando de extraer toda la
información que pueda con el fin de tomar mejores decisiones de negocios.
·
Planificación
de capacidad: En la mayoría de las organizaciones, el número y tamaño de
las bases de datos crece rápidamente. Es la responsabilidad del DBA gestionar
el creciente volumen de datos y diseñar los planes apropiados para
administrarlos. Esto incluye también la gestión del hardware donde se almacenan
los datos.
·
Administración
de cambios: La configuración del servidor SQL Server o MySQL, el esquema
de base de datos, el código de Transact-SQL, y muchas otras facetas del
ecosistema de aplicaciones cambian con el tiempo. A menudo es la
responsabilidad del DBA realizar el análisis de impacto antes de realizar los
cambios dentro de una DBMS. Implementar cambios, hacer pruebas piloto y
documentar todos los cambios y procedimientos es parte del trabajo de un DBA.
·
Desarrollo
de aplicaciones: Muchos administradores de base datos deben de desarrollar
aplicaciones y scripts con el objetivo de automatizar tareas relacionadas con
la inserción, sustracción o borrado de información dentro del manejador de base
de datos. En general, éste debe de colaborar a nivel de integración de sistema
con los desarrolladores de aplicaciones, por lo que a veces se ve en la
obligación de desarrollar código para casos específicos.
Algunas tareas que ejecutan los DBA
tenemos:
·
Implementar,
dar soporte y gestionar bases de datos corporativas.
·
Crear
y configurar bases de datos relacionales.
·
Ser
responsables de la integridad de los datos y la disponibilidad.
·
Diseñar,
desplegar y monitorizar servidores de bases de datos.
·
Diseñar
la distribución de los datos y las soluciones de almacenamiento.
·
Garantizar
la seguridad de las bases de datos, realizar copias de seguridad y
llevar a cabo la recuperación de desastres.
·
Planificar
e implementar el aprovisionamiento de los datos y aplicaciones.
·
Diseñar planes
de contingencia.
·
Diseñar
y crear las bases de datos corporativas de soluciones avanzadas.
·
Analizar
y reportar datos corporativos que ayuden a la toma de decisiones en la
inteligencia de negocios.
·
Producir
diagramas de entidades relacionales y diagramas de flujos de datos,
normalización esquemática, localización lógica y física de bases de datos y
parámetros de tablas.
Los administradores
de bases de datos tienen competencias y capacidades en uno o más sistemas de
gestión de bases de datos, algunos ejemplos: Microsoft SQL Server, IBM DB2,
Oracle MySQL, Oracle database, IBM Informix y SQL Anywhere.
1.2.
Análisis de los manejadores de bases de datos
Un Sistema
Manejador de Bases de Datos (SGBD) o Data Base Management System
(DBMS) es una colección de software muy específico, cuya función es servir
de interfaz entre la base de datos, el usuario y las distintas aplicaciones
utilizadas.
Lo
hace mediante una serie de rutinas de software para permitir su uso de una
manera segura, sencilla y ordenada. Se trata, en suma, de un conjunto de
programas que realizan tareas de forma interrelacionada para facilitar
la construcción y manipulación de bases de datos, adoptando la forma de
interfaz entre éstas, las aplicaciones y los mismos usuarios.
MySQL
Es
la base de datos de código abierto más popular del mercado. Gracias a su
rendimiento probado, a su fiabilidad y a su facilidad de uso, MySQL se ha
convertido en la base de datos líder elegida para las aplicaciones basadas en
web y utilizada por empresas web de perfil alto.
Gestor
de simple instalación que actúa del lado del cliente (servidor) y de código abierto
con licencia comercial disponible. Actualmente, pertenece a Oracle Corporation.
Gestiona bases de datos relacionales y es multiusuario. Destaca por requerir de
poca memoria y procesador para funcionar, dando lugar además a una mayor
velocidad en sus operaciones.
PostgreSQL
Es un sistema de gestión de
bases de datos relacional orientado a objetos, ya que incluye características
de la orientación a objetos, como puede ser la herencia, tipos de datos,
funciones, restricciones, disparadores, reglas e integridad transaccional, liberado
bajo la licencia BSD. Su desarrollo no es manejado por una empresa o
persona, sino que es dirigido por una comunidad de desarrolladores que trabajan
de forma desinteresada, altruista, libre o apoyados por organizaciones
comerciales.
SQLite
Es una biblioteca escrita en
leguaje C que implementa un Sistema de gestión de bases de datos
transaccionales SQL auto-contenido, sin servidor y sin configuración. No
necesita un proceso separado funcionando como servidor ya que lee y escribe
directamente sobre archivos que se encuentran en el disco duro. El formato de
la base
de datos es multiplataforma
e indistintamente se puede utilizar el mismo archivo en sistemas de 32 y 64
bits.
A diferencia de los sistemas
de gestión de bases de datos cliente-servidor, el motor de SQLite no es un
proceso independiente con el que el programa principal se comunica. En lugar de
eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte
integral del mismo.
FireBird
Es un sistema de
administración de base de datos relacional que trabaja con el lenguaje SQL para
manipular datos. Dispone de la mayoría de las instrucciones DDL y DML estándar
de SQL. Firebird es muy versátil, puede ejecutarse como servicio o aplicación.
Es compatible con Windows y Linux. Entre otras funciones, da soporte
completo para procedimientos
almacenados, transacciones compatibles con las características ACID y métodos
de acceso múltiple (nativo, Python, .NET, etc).
MariaDB
Es un sistema de gestión de
bases de datos derivado de MySQL con licencia GPL (General Public License). Es
desarrollado por Michael (Monty) Widenius —fundador de MySQL, la fundación
MariaDB y la comunidad de desarrolladores de software libre.
Introduce dos motores de
almacenamiento nuevos, uno llamado Aria que reemplaza a MyISAM y otro
llamado XtraDB —en sustitución de InnoDB—. Tiene una alta compatibilidad con
MySQL ya que posee las mismas órdenes, interfaces, API y bibliotecas, siendo su
objetivo poder cambiar un servidor por otro directamente.
Este
SGBD surge a raíz de la compra de Sun Microsystems compañía que había comprado
previamente MySQL AB por parte de Oracle. MariaDB es una bifurcación directa de
MySQL que asegura la existencia de una versión de este producto con licencia
GPL. Widenius decidió crear esta variante porque estaba convencido de que el
único interés de Oracle en MySQL era reducir la competencia que MySQL suponía
para el mayor proveedor de bases de datos relacionales del mundo, que es
Oracle.
MongoDB
Es un sistema de base de
datos NoSQL orientado a documentos de código abierto.
En lugar de guardar los
datos en tablas, tal y como se hace en las bases de datos relacionales, MongoDB
guarda estructuras de datos BSON (una especificación similar a JSON) con un
esquema dinámico, haciendo que la integración de los datos en ciertas
aplicaciones sea más fácil y rápida.
MongoDB es una base de datos
adecuado para su uso en producción y con múltiples funcionalidades. Esta base
de datos se utiliza mucho en la industria, contando con implantaciones en
empresas como MTV Network,Craiglist, BCI o Foursquare.
El código binario está
disponible para los sistemas operativos Windows, Linux, OS X y Solaris.
Manejadores
de bases de datos de pago
Oracle
Es uno de los sistemas de
gestión de base de datos relacional más fiable y usado. Pertenece a Oracle
Corporation y se desarrolló en 1977. Está construido alrededor de un marco en
el que se puede acceder directamente a los objetos a partir del lenguaje de
consulta SQL. Oracle es una arquitectura escalable y muy utilizada por las
empresas. Tiene su propio
componente de red para que pueda haber comunicación a través de las redes. Se
ejecuta en casi todas las plataformas (Windows, Unix, Linux, MAC OS…). La
principal y peculiar característica de Oracle es que, su arquitectura, se
divide entre la lógica y la
física. A grandes rasgos, esto permite una mayor flexibilidad en las redes de
datos y, a la vez, robustez en la estructura de los datos.
Es
un sistema de manejo de bases de datos del modelo relacional, desarrollado por
la empresa Microsoft. El lenguaje de desarrollo utilizado (por línea de
comandos o mediante la interfaz gráfica de Management Studio) es Transact-SQL
(TSQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para
manipular y recuperar datos (DML), crear tablas y definir relaciones entre
ellas (DDL). Integra un conjunto de programas que añaden características, como
pueden ser el tratamiento de errores y excepciones, procesamiento de datos,
extracción de datos directos de Web, uso de distintos lenguajes de
programación, etc… y más características que hacen de SQL Server un gestor muy
completo. Además, destaca por su carácter administrativo tanto en sus
funciones y seguridad como en la flexibilidad de las bases de datos.
DB2
Es
una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema
de gestión de base de datos. Utiliza XML como motor, además el modelo que
emplea es el jerárquico en lugar del modelo relacional que utilizan otros
gestores. Permite el manejo de objetos grandes (hasta 2 GB), definición de
datos y funciones por parte del usuario, el chequeo de integridad referencial,
SQL recursivo, soporte multimedia: texto, imágenes, video, audio; queries
paralelos, commit de dos fases, backup/recuperación on−line y offline.
Microsoft Access
Es un sistema de gestión de
bases de datos Relacional creado por Microsoft (DBMS) para uso personal de
pequeñas organizaciones. Se ha ofrecido siempre como un componente de la suite
Microsoft Office, aunque no se incluye en el paquete “básico”. Una posibilidad
adicional es la de crear ficheros con bases de datos que pueden ser
consultados por otros programas. Entre las principales funcionalidades
reseñables podemos indicar que: Ofrece un entorno de programación a través de
VBA y puede realizar llamadas a la API de Windows.
1.3.
Consideraciones para
elegir un SGBD
Computación
GPU
Hace mucho tiempo, las
tarjetas de video se construían para dibujar escenas elaboradas para los juegos
de niños, pero ahora las llamadas unidades de procesamiento de gráficos están
haciendo mucho procesamiento no gráfico. La búsqueda a través de datos es solo
una de las mejores operaciones no gráficas que deben abordar. Y ¿por qué no?
Abrirse paso entre las interminables pilas de datos buscando una pareja, es una
operación inherentemente paralela hecha de muchos trabajos rudimentarios
(probando la igualdad) repetidos millones de veces. Por lo tanto, es bastante
sencillo pasar el trabajo a los miles de procesadores en el GPU.
Las mayores victorias no están
en responder cada consulta (que obviamente son mucho más rápidas), sino en el
trabajo de preparación, porque hay poca necesidad de pre procesamiento. Muchas
bases de datos ahorran tiempo manteniendo un índice, que es efectivamente un
resultado precalculado de cada búsqueda posible. Si este índice es destruido o
dañado, reconstruirlo puede tardar horas, días o incluso meses. Sin embargo, si
los datos pueden caber dentro de la memoria del GPU, por lo general podrá
seguir sin el índice. Si los datos están cambiando rápidamente y la mayor parte
del índice no se utiliza nunca, saltarse el pre procesamiento puede ser muy
eficaz.
Memoria no volátil (NVRAM)
Los programadores novatos hace
cincuenta años la tenían fácil. No tenían que hacer malabares con los datos
entre la RAM y el disco con protocolos elaborados para asegurar la
consistencia. Eso se debe a que la memoria en ese entonces tenía núcleo de
hierro, y no se borraba cuando se apagaba la energía. Esos buenos tiempos
podrían regresar pronto, porque los fabricantes de chips están discutiendo para
reemplazar la RAM con NVRAM o memoria no volátil.
Este es un gran cambio de
juego para los programadores de bases de datos, porque uno de sus mayores
desafíos (e incluso su mayor razón para vivir) está desapareciendo. Algunos
sugieren que las bases de datos pueden ser mucho más rápidas, porque la
semántica de las transacciones puede ser más sencilla. Otros tienen la idea de
construir el registro de recuperación después de que los datos sean escritos en
los medios, no antes.
Nadie sabe qué pasará. ¿La
gente seguirá una base de datos, aunque no necesiten un registro permanente o
la búsqueda y la indexación los hará volver? Todos los algoritmos y
arquitecturas tienen que ser repensadas. Sabremos la mejor manera de usar NVRAM
en una década aproximadamente.
Amplíe
SQL
Cuando el movimiento de NoSQL
comenzó, una de las principales características era la capacidad de dispersar
el almacenamiento de sus datos a través de múltiples nodos. Las bases de datos
NoSQL como Cassandra y MongoDB hicieron parecer que conseguir todas las lindas
características del almacenamiento de gran escala significaba abandonar el
cómodo mundo de SQL.
En la realidad no necesita
haber una compensación. Aunque los primeros experimentos de bases de datos de
gran escala eran fáciles de crear porque dejaban atrás todo el bagaje de SQL,
no hay razón por la cual éste no pueda funcionar bien en múltiples máquinas
operando a gran escala. De hecho, empresas como Oracle han venido haciéndolo
por años.
Las nuevas bases de datos a
gran escala le permiten usar todo su conocimiento y conveniencia de SQL con un
conjunto de datos distribuidos en un gran clúster. CockroachDB, por ejemplo,
ofrece un motor de consulta SQL estándar que tiene acceso a los datos
replicados en múltiples nodos, todos con garantías de ACID. Sí, pagará por
algunos de estos apoyos para la coherencia de los datos, pero tal vez menos de
lo que esperaba.
Bases
de datos geoespaciales
Las bases de datos
tradicionales están hechas para conjuntos de datos unidimensionales, no las dos
coordenadas dimensionales de la geografía. Puede falsificarlo y usar una base
de datos estándar para realizar tareas básicas con coordenadas geográficas. Si
pega la latitud y longitud en columnas separadas, no es difícil buscar las
filas que caen dentro de un cuadro definido por un rango de latitudes y
longitudes. Sin embargo, una vez que quiera ir más allá, las consultas SQL
estándar no serán efectivas.
Las bases de datos
geoespaciales añaden algunas funciones adicionales que hacen que la búsqueda,
clasificación e intersección sean mucho más fáciles en el espacio
bidimensional. Los índices espaciales, por ejemplo, usualmente funcionan
añadiendo una cuadrícula encima del espacio de coordenadas para hacer que sea
mucho más rápido buscar las filas adyacentes en mundos bidimensionales y
tridimensionales.
Estos índices hacen posible escribir
consultas con operaciones como “contener”, “superponer”, e incluso “tocar” con
conjuntos definidos por polígonos. Todo esto hace que el razonamiento sobre el
mundo real sea mucho más eficiente.
Bases de datos gráficas
Las tablas son un buen repositorio
para muchas estructuras de datos, pero no hacen un muy buen trabajo al momento
de modelar una gran estructura de datos emergentes que ha impulsado los últimos
diez años de evolución de la Internet: la red. A medida que el llamado “gráfico
social” explota, estamos llenando nuestra computadora con más y más nodos con
enlaces entre ellos, y las conexiones entre estos son a menudo más importantes
que los datos en ellos. De hecho, almacenar y recuperar un enlace entre un par
de nodos es fácil de hacer en una base de datos relacional clásica, pero las
consultas más complicadas se hacen imposibles. ¿Bob está a dos o tres pasos de
Chris en la red de amistad? ¿Mary está saliendo con el ex de una de sus amigas?
Las bases de datos gráficas
hacen que consultas como estas sean más fáciles de ejecutar. No hay una
búsqueda sin fin de tablas porque la consulta sabe cómo buscar en el barrio
especificado por los enlaces. Herramientas como Neo4J, OrientDB, y DataStax son solo algunas de las pocas
opciones que pueden ser contadas con los dedos de las manos y de los pies.
Estas tienen sus propios lenguajes de consulta también.
Bases
de datos en la nube
Uno de los principales cambios
radica en la forma en la que compramos el software de base de datos. En el
pasado, comprábamos nuestras propias máquinas y firmábamos acuerdos de licencia
para ejecutar el software en ellas. Ahora las empresas de nube están ofreciendo
servicios que almacenan blobs de datos en algún lugar que no podemos ni ver ni
tocar. Lo único que nos dicen es que los datos van a estar ahí para cuando los
queramos.
Las ventajas son evidentes. No
hay necesidad de mantener el servidor que la sostiene ni de preocuparse por la
concesión de licencias, la configuración o instalación de parches. Otro se
ocupa de todo ese quebradero de cabeza. La solución es más barata también
-especialmente si no tiene una tonelada de datos que almacenar. Los servicios
generalmente cobran por byte.
Sin embargo, los peligros, si
es que hay alguno, están en las sombras. ¿Alguien más tiene acceso a los datos?
¿El servidor está protegido de las sobretensiones eléctricas, las tormentas o
las inundaciones? ¿Los datos tienen una copia de seguridad en una ubicación
externa confiable? Necesita confiar totalmente en el proveedor de nube.
Los principales proveedores de
servicios en la nube, tales como Google, Microsoft, y Amazon ofrecen una larga
lista de servicios de bases de datos. Actualmente, Oracle, MongoDB, y DataStax
también hacen que sus bases de datos estén disponibles en la nube.
Inteligencia
Artificial (AI)
Algunos dicen que la
inteligencia artificial es solo un término para la última generación de
investigación que está saliendo de los laboratorios y yendo a producción. Si es
así, hay una serie de nuevos productos y soluciones adornados con palabras de
moda, tales como “aprendizaje automático”, “redes neuronales” o “aprendizaje
profundo”. Pueden no parecer una base de datos, pero las llena de datos y les
hace preguntas. ¿Por qué no? La buena noticia de las soluciones de inteligencia
artificial es que no tiene que saber lo que está buscando. Puede simplemente
agitar su mano y pedir algo nebuloso como la “más interesante” o “más cercana”.
No hay necesidad de la clave correcta, el número de referencia infernal que los
del servicio al cliente siempre le piden que escriba.
La mala noticia es que no
sabrá si obtuvo la respuesta correcta, debido a que no especificó con precisión
la pregunta. ¿Esa publicación en el blog es realmente la más interesante? El
más grande secreto del éxito de Google es que no hay una respuesta correcta
absoluta. Si está en el estadio, nadie se puede quejar.
La lista de las herramientas
de aprendizaje automático es demasiado larga. Siempre puede preguntarle a su
motor de búsqueda favorito por la AI “más interesante”, o consultar nuestros
artículos sobre el tema.
Blockchain
La palabra blockchain puede
estar enredada con unas complicadas economía y política de Bitcoin, pero debajo
de toda esa charla sobre el dinero, hay un almacén de datos distribuidos
sumamente estable y práctico. Todos tienen la oportunidad de actualizar los
datos y todos llegan a compartir la respuesta. La gran emoción es el hecho de
que todos compartan las mismas respuestas. Es perfecto para los negocios que
son frenemies.
Algunos desarrolladores llevan
esto aún más lejos y hablan sobre los “contratos inteligentes”, que es otra
manera de decir que los bits en la base de datos son lo suficientemente
confiables como para que la gente base las cuestiones legales, tales como la
propiedad, sobre ellos. Eso no lo puede hacer con una base de datos regular,
que puede ser modificada por cualquiera con privilegios administrativos.
Sin embargo, hay puntos
débiles. Cada usuario debe mantener una clave de cifrado, porque todas las
transacciones deben ser firmadas de manera digital. Si la pierde o se la
olvida, los datos en esas filas serán congelados para siempre; y si le roban la
clave, no se sabe. El blockchain no es perfecto, pero es mucho más confiable
que el modelo estándar.
R3, Ripple e IBM son solo tres
de los muchos competidores explorando ese espacio. Muchos de los principales
bancos tienen sus propios proyectos internos. Además, están las empresas como
Bitcoin o Altcoin, las cuales también son una gran parte de este ecosistema.
Aplicaciones de los sistemas de bases de datos
SAP S/4HANA Cloud
SAP S/4HANA Cloud es una
aplicación desarrollada por la firma alemana SAP. Esta herramienta es un
sistema Enterprise Resource Planning (ERP) con capacidad de despliegue en la
nube cuyas funciones de gestión de datos permite, entre otros:
• Consolidar datos de múltiples áreas en una sola fuente
• Administrar el ciclo de vida de datos históricos y actuales
• Compartir en tiempo real los datos entre departamentos
• Definir y gestionar indicadores de analítica de datos
• Modelar datos complejos para su fácil visualización
Oracle Autonomous Database
Oracle Autonomous Database es
una novedosa herramienta de Oracle Cloud que permite crear una base de datos
completamente autónoma. Es decir, con capacidades de autogestión, autoprotección
y autorreparación.
Algunas de sus ventajas son:
• Permite desplegar la base de datos al 100% en minutos
• Dispone de escalabilidad de recursos de manera inmediata
• Posee un sistema de aprendizaje automática para suplir la
gestión manual
• Brinda autonomía en el procesamiento y almacenamiento de
datos
Azure Cosmos DB
Azure Cosmos DB es una
solución proporcionada por Microsoft Azure para bases de datos multimodelo. Su
principal función es el desarrollo de aplicaciones globales, rápidas y
potentes, cuya disponibilidad es del 99,999%.
Entre sus características,
están:
• API multimodelo compatible NoSQL, SQL, JavaScript y
MongoDB.
• Opciones de coherencia bien definidas: segura,
obsolescencia limitada, prefijo coherente, sesión y posible.
• Distribución global con alta disponibilidad y baja
latencia.
• Escalabilidad elástica e inmediata para evitar pérdidas de
rendimiento.
IBM Hybrid Data Management
Platform
IBM Hybrid Data Management
Platform es una suite consolidada por IBM Cloud para gestionar datos
estructurados y no estructurados en entornos locales y en clouds públicos y
privados.
Dicho producto es tan completo
y robusto, que incluye dentro de sí siete aplicaciones Db2 de IBM Cloud
anteriormente individualizadas, las cuales son:
• Database
• Warehouse
• Big SQL
• Event Store
• Hosted
• Db2 on Cloud
• Warehouse on Cloud
Amazon Relational Database Service
Amazon Relational Database
Service (RDS) es un servicio de Amazon Web Services para configurar, gestionar
y escalar una base de datos relacional en un entorno cloud. Este servicio
ofrece escalabilidad, automatización y aprovisionamiento en el uso de recursos.
RDS está conformado por los
seis motores de base de datos más potentes a los que se puede acceder mediante
Amazon Web Services, los cuales son:
• Amazon Aurora
• PostgreSQL
• MySQL
• MariaDB
• Oracle Database
• SQL Server
Google
Cloud Datalab
Cloud Datalab es una
herramienta de Google Cloud para la exploración avanzada de datos. Está basada
en Jupyter y permite examinar, analizar, transformar y visualizar datos de
manera sencilla.
Cloud Datalab es de código
abierto y compatible con Python, SQL y JavaScript, así como también con la
biblioteca scikit–learn y con modelos de aprendizaje automático profundo.
Esta solución optimiza el
procesamiento de datos mediante su integración con:
• Cloud BigQuery
• Stackdriver Monitoring
• Cloud Machine Learning Engine
• Cloud Storage
Tableau
Server
Tableau Server es uno de los
productos estrella de Tableau Software para el análisis, gobernanza y control
de datos complejos. Fue catalogada por Gartner como una de las soluciones más
importantes del mercado sobre la gestión de datos.
Algunas de sus ventajas son:
• Permite compartir los datos (y su análisis) entre toda la
organización
• Simplifica los métodos de visualización haciéndolos muy
intuitivos
• Facilita la capacidad de consulta mediante preguntas con
lenguaje natural
• Ofrece seguridad en todas las fuentes de datos tanto on
premise como en cloud
SAS Data Management
SAS Data Management es una
potente suite creada por la firma SAS que engloba múltiples funciones en la
gestión de base de datos. Su estructura es modular para poder controlar cada
componente de manera individual, aunque toda su configuración está pensada para
satisfacer necesidades tanto tecnológicas como de negocios.
Entre los beneficios que
aporta están:
• Aceleración de los procesos de integración en más del 60%
• Depuración de la base de datos según la calidad de los
mismos
• Preparación de los datos para su análisis y posterior
creación de reportes
• Optimización de los procesos ETL (extract – transform –
load)
• Gestión de procesos mediante una GUI basada en roles
La mayoría de estas
herramientas ofrecen capacidad de gestión mediante el cloud computing. De
hecho, una investigación de Statista revela que el 69% de las organizaciones
realiza las actividades de almacenamiento y respaldo de datos en la nube, y el
56% accede al cloud para funciones de análisis de datos.
No hay comentarios.:
Publicar un comentario