Una breve descripción del ámbito de las bases de datos

Gente de negocios en la oficina

Una mirada más cercana al ámbito de las bases de datos a través de licencias y modelado de datos.

Si recién está comenzando a explorar el mundo de las bases de datos, probablemente ya sepa dos cosas: usar los datos de manera efectiva es lucrativo y elegir una base de datos para administrar esos datos puede ser abrumador. 

Es cierto, la capacidad de los datos para mejorar los ingresos de primera línea es cada vez mayor. Puede optimizar las experiencias de usuario y potenciar el machine learning. Pero eso significa que hay cientos de proveedores que luchan por almacenarlo y analizarlo por usted. ¿Cómo elegir? Bueno, como ocurre con la mayoría de las cosas en la vida, el conocimiento es poder.

Consulte esta descripción general del panorama de las bases de datos, específicamente cómo poner las bases de datos en un contexto empresarial. Comenzaremos con un análisis en profundidad de las licencias y el modelado de datos.

 

El espectro de licencias de software: desmitificado

Las licencias de software son, por decirlo suavemente, complejas. No solo los derechos de propiedad intelectual (para eso, sugiero consultar “An Introduction to the Law and Economics of Intellectual Property” de Besen & Raskind y Open Source Licensing: Software Freedom and Intellectual Property Law de Rosen), sino específicamente por qué debería importarle una licencia y tendencias en el ámbito de las bases de datos de código abierto que tienen implicaciones para su negocio.

¿Está listo?

Primero, hablemos de licencias

Todas las licencias de software conllevan reglas y regulaciones sobre cómo usar la tecnología que debe seguir. Eso significa que las licencias del software que adopte pueden tener un impacto tangible en su forma de hacer negocios. Ignorar o violar estas reglas puede exponerlo a riesgos legales, pérdidas financieras y, francamente, empañar la reputación de su empresa. Ya sea que esté comprando software o adoptando tecnologías de código abierto, la licencia en última instancia limitará el uso del código de alguna manera. Todo esto para decir que tenga en cuenta estas limitaciones a medida que desarrolla su producto para ayudar a mitigar el riesgo legal a largo plazo.

A continuación, tenga en cuenta que las licencias no son fijas. De hecho, en este momento, muchas empresas que respaldan proyectos de bases de datos de código abierto están en proceso de cambiar sus licencias de bases de datos para que sean más restrictivas. Dependiendo de su caso de uso, eso puede significar que si ha estado usando una base de datos de forma gratuita, ahora puede estar expuesto a acciones legales. No es para asustarlo; es solo para asegurarse de que se mantenga alerta. A medida que se producen estos cambios, es importante reaccionar adecuadamente. En algunos casos, un cambio de licencia puede requerir rediseñar un servicio, adoptar una base de datos diferente o celebrar un acuerdo comercial con el proveedor.

Exploremos este problema con más detalle

Aquellos que frecuentan Hacker NewsTechCrunch no serán ajenos a la conversación en torno al software de código abierto y de bases de datos comerciales. Esto es lo esencial: en los últimos tres años, ha estallado un debate debido a una confluencia de factores como el crecimiento de los principales proveedores de nube pública y el éxito en el mercado, o la falta de este, de los proveedores de bases de datos centradas en código abierto.

Dicho esto, la relación entre el software libre y el software propietario no es binaria; es, por supuesto, un espectro:

Nota: La distancia ilustrada no es científica: la relatividad es más importante.

En el espectro anterior, en el extremo izquierdo, hay licencias de software de bases de datos comerciales o patentadas, como Oracle, IBM Db2 y Microsoft SQL Server. Se trata de tecnologías potentes y ricas en características que impulsan las cargas de trabajo en todos los verticales de las industrias. Al comprar este software de un proveedor, o como un servicio en la nube, está pagando una prima para obtener acceso a lo siguiente:

  • Soporte a nivel de código

  • Un sólido ecosistema de herramientas

  • Servicios profesionales y consultores

  • Visibilidad e influencia en la hoja de ruta de esa base de datos

A la derecha, hay software de dominio público. Este software no tiene derechos de autor, lo que significa que puede modificarse, distribuirse o venderse sin restricciones. Los proyectos que se encuentran cerca del extremo derecho del espectro a menudo se rigen por los estándares de un tercero imparcial y sin sesgo, como Apache Software Foundation o Linux Foundation.

La Open Source Initiative (OSI) mantiene una lista generalmente aceptada de lo que es y lo que no es una licencia de código abierto. En general, el software de código abierto se caracteriza por la capacidad de "bifurcar el código". Esto significa que si la dirección del proyecto (software) no concuerda con lo que necesita o desea, puede modificar o editar el código como mejor le parezca.

El uso de una tecnología de código abierto es particularmente atractivo debido a los cero costos de licencia, una mayor transparencia en el desarrollo y la innovación que proviene de una diversidad de partes interesadas, mantenedores y espacios problemáticos. En comparación con el software comercial, con el software de código abierto, se renuncia a la influencia de la hoja de ruta, a las garantías en torno a la corrección de errores o parches de seguridad y a los contratos, y se obtiene una dependencia cero del proveedor y una mayor flexibilidad de la línea de negocio. (Puede ver que es una compensación que usted y su equipo deben considerar cuidadosamente).

Siguiendo el recorrido del gráfico anterior de izquierda a derecha, hay diferentes niveles de permisividad de licencias, como Apache 2.0, MPL y GPL 3.0.

Ejemplos de bases de datos asignadas a licencias

Un poco de historia para el contexto

A finales de la década de 2000, la mayoría de los proveedores de bases de datos nacientes se dirigían al mercado como "código abierto" para obtener un fácil acceso a la adopción y la mentalidad de los desarrolladores. Es posible que conozca empresas de este campo, como Mongo Inc., Redis Labs y Elastic. Estas empresas desarrollaron proyectos comunitarios como MongoDB, Redis y Elasticsearch, pero buscaron monetizar esa inversión con versiones de Enterprise License, implementaciones gestionadas en la nube o servicios profesionales.

Sin embargo, el cambio de paradigma de la computación en la nube ha hecho que este modelo de negocio sea precario porque los principales proveedores pueden proporcionar fácilmente estas tecnologías como un servicio gestionado nativo de la plataforma de primera clase. Estas ofertas se entregan con integraciones atractivas para seguridad, cumplimiento, monitoreo y registro en sus respectivas nubes, sin proporcionar una compensación garantizada a los creadores del software.

En los últimos años, las empresas han reevaluado su ruta al mercado. Ahora, los vemos adoptar modelos de licencias que protegen sus inversiones en desarrollo. Por ejemplo, MongoDB , Redis Labs y Confluent, con diversos grados de gravedad, cambiaron las licencias de partes de código para evitar que otras compañías las ejecuten como un servicio sin compensación.

“Entonces, Josh, ¿cuál es su consejo?” Gran pregunta.

Mire, hay buenas razones para usar bases de datos comerciales y/o de código abierto. Lo importante es que sepa en qué se está metiendo usted y su empresa. Revise la licencia antes de construir una aplicación para asegurarse de que su proyecto es conforme, y si, en cambio, está buscando elegir una licencia para un proyecto de código abierto, consulte la página web "Elegir una licencia" de Github.
Por lo tanto, una consideración importante son las licencias porque nadie quiere ser demandado. La otra son las familias de modelos de datos, pero por una razón diferente. Al crear una aplicación, conocer los tipos de modelos de datos le ayudará a elegir la herramienta adecuada para el trabajo.

Familias de modelos de datos: Los 5 fantásticos

Ahora que conoce las licencias, hablemos de otra consideración crítica al seleccionar su base de datos: los modelos de datos.

Cuando empecé en IBM, necesitaba ponerme al día rápidamente, así que recurrí a NoSQL Distilled de Martin Fowler.

En sus escritos, y en la industria en general, las personas tienden a categorizar las bases de datos en cinco familias de “modelos de datos”: documento, clave-valor, grafo, relacional y columnar ancho. Aquí hay una descripción general rápida de cada uno, incluidos casos de uso y ejemplos específicos de bases de datos. Esto le ayudará a determinar, en función de sus conjuntos de datos y necesidades empresariales, qué base de datos necesita.

1. Documento

En este caso, los datos se modelan en documentos similares a JSON, en lugar de filas y columnas. Estas bases de datos, por naturaleza, valoran la disponibilidad sobre la coherencia transaccional. Las bases de datos de documentos se prestan a la simplicidad y la escalabilidad, así como a la rápida iteración en el desarrollo.

Casos de uso empresarial:

  • Aplicaciones móviles que requieren iteraciones rápidas

  • Registro de eventos, compras en línea, gestión de contenido y procesamiento analítico en profundidad

  • Catálogos de venta minorista con atributos de productos

Ejemplos:

2. Clave-valor 

Este tipo de modelo representa el tipo más básico de base de datos no relacional, donde cada elemento de la base de datos se almacena como un nombre de atributo (denominado clave) con su valor correspondiente.

Casos de uso empresarial:

  • Almacenes de preferencias y perfiles de usuario

  • Recomendaciones de productos basadas en datos de navegación

  • Carritos de compras

Ejemplos:

  • DynamoDB

  • Redis

  • etcd

3. Grafo

Los datos aquí se modelan como vértices y bordes (valores y conexiones). De manera similar a cómo las personas piensan y procesan la información, las bases de datos gráficas recuerdan las relaciones entre unidades discretas de datos. Estas bases de datos hacen que la persistencia, la exploración y la visualización de datos y relaciones sean más intuitivas.

Casos de uso empresarial:

  • Detección de fraude

  • Motores de recomendación en tiempo real

  • Master data management

  • Operaciones de red y TI

  • Gestión de identidad y acceso

Ejemplos:

4. Relacional 

El modelo relacional , introducido por R.F. Codd, mientras está aquí en IBM, es el titán de la industria. Los datos se almacenan en tablas como filas y columnas y, a menudo, tienen motores de consulta sofisticados para analytics y exploración. Las bases de datos relacionales admiten garantías transaccionales y cumplimiento ACID (atomicidad, coherencia, aislamiento y durabilidad), mientras que la mayoría de las bases de datos de las otras cuatro familias son finalmente coherentes.

Casos de uso empresarial:

  • Comercio electrónico

  • Planificación de recursos empresariales

  • Gestión de las relaciones con los clientes

Ejemplos:

5. Columnar ancho

Los almacenes de familias de columnas permiten un acceso muy rápido a los datos mediante una clave de fila, un nombre de columna y una marca de tiempo de celda. El esquema flexible de este tipo de bases de datos significa que las columnas no tienen que ser coherentes entre registros, y puede agregar una columna a filas específicas sin tener que agregarlas a cada registro. Los almacenes de columnar ancho se derivan del documento BigTable de Google. Estos modelos de datos no deben confundirse con los modelos de almacenamiento orientados a columnas, que son más relevantes para las tecnologías de almacenamiento de datos y los patrones de acceso analítico debido a una mejor compresión de los datos en el disco y un uso más eficiente de la CPU.

Casos de uso empresarial:

  • Analytics de seguridad y del mercado de valores

  • Analíticas de clics

  • IoT y telemetría

Ejemplos:

  • Apache Cassandra

  • DataStax Enterprise

  • BigTable de Google Cloud

En resumidas cuentas, hay ventajas y desventajas en cada modelo de datos primarios (y apenas vimos detalles superficiales). Pero en caso de duda, opte por algo a prueba de batallas y omnipresente como PostgreSQL. Para aprender más sobre el arquetipo de familias de modelos de datos, consulte el libro NoSQL Distilled de Martin Fowler, en particular los capítulos 8-11.

¿Está listo para aprender más sobre las bases de datos?

¡Uf! He cubierto un poco el tema aquí, pero si desea aprender más, estas son algunas sugerencias basadas en la inversión de tiempo:

¿Quiere empezar a construir? IBM Cloud tiene una amplia gama de servicios de bases de datos gestionadas para ayudar a su equipo a moverse rápidamente.

Autor

Josh Mintz

Program Director