Está en la página 1de 140

PARTE 1.

RECORRIDO POR LOS PRINCIPALES CONCEPTOS DE


DATOS

MÓDULO 1. Exploración de los conceptos de los datos principales

OBJETIVOS DE APRENDIZAJE

 Identificar cómo se definen y almacenan los datos


 Identificar las características de los datos relacionales y no relacionales
 Describir y diferenciar las cargas de trabajo de datos
 Describir y diferenciar los datos de streaming y por lotes

1.1 INTRODUCCIÓN

Durante las últimas décadas, la cantidad de datos que generan los sistemas, las aplicaciones y los
dispositivos ha aumentado considerablemente. Los datos están en todas partes. Están disponibles en
diferentes estructuras y formatos. Comprender los datos y explorarlos revela hechos interesantes y
ayuda a extraer conclusiones significativas.

En este módulo, obtendrá información sobre cómo organizar y procesar los datos. Aprenderá sobre
las bases de datos relacionales y no relacionales, y cómo se administran los datos mediante el
procesamiento de transacciones y mediante el procesamiento de datos de streaming y por lotes.

Para ver cómo se podrían aplicar a escenarios reales las herramientas y técnicas que hemos
aprendido a usar, imagine que es un analista de datos de una organización de gran tamaño. La
organización quiere comprender los patrones de compra de los consumidores en los supermercados.
Para ello, cuenta con varios conjuntos de datos procedentes de distintos orígenes, como información
de puntos de venta, datos meteorológicos y datos de días festivos. La organización quiere usar las
tecnologías de Azure para comprender y analizar estos conjuntos de datos. Este escenario se usará
en todo el módulo.

1.2 IDENTIFICACIÓN DE LA NECESIDAD DE SOLUCIONES DE DATOS

Ahora los datos pueden recopilarse de manera más fácil y hospedarse de forma más barata, lo que
permite que casi todas las empresas puedan tener acceso a ellos. Las soluciones de datos incluyen
tecnologías de software y plataformas que pueden facilitar la recopilación, el análisis y el
almacenamiento de información valiosa. Todas las empresas buscan aumentar sus ingresos y
obtener mayores ganancias. En este mercado competitivo, los datos son un recurso valioso. Cuando
se analizan correctamente, los datos se pueden convertir en una gran cantidad de información útil
que ayuda a tomar decisiones empresariales críticas.

1
¿Qué son los datos?

Los datos son una colección de elementos, como números, descripciones y observaciones, que se
usan en la toma de decisiones. Los datos se pueden clasificar en estructurados, semiestructurados o
no estructurados.

Los datos estructurados suelen ser datos tabulares que se representan mediante filas y columnas en
una base de datos. Las bases de datos que contienen tablas de este tipo se denominan bases de
datos relacionales (el término matemático relación hace referencia a un conjunto organizado de datos
que se almacenan como una tabla). Todas las filas de una tabla tienen el mismo conjunto de
columnas. La imagen siguiente muestra dos tablas de ejemplo de la base de datos de un comercio
electrónico. La primera tabla contiene los detalles de los clientes de una organización y la segunda
contiene información sobre los productos que vende la organización.

2
Los datos semiestructurados son información que no reside en una base de datos relacional, pero
que tiene cierta estructura. Entre los ejemplos se incluyen los documentos que se encuentran en
formato de notación de objetos JavaScript (JSON). En el ejemplo siguiente se muestran un par de
documentos que representan información de clientes. En ambos casos, cada documento de cliente
incluye documentos secundarios que contienen el nombre y la dirección, pero los campos de estos
documentos secundarios varían entre los dos clientes.

3
También hay otros tipos de datos semiestructurados. Por ejemplo, los almacenes de pares clave-
valor y las bases de datos de grafos.

Un almacén de pares clave-valor es similar a una tabla relacional, excepto que cada fila puede tener
un número diferente de columnas. En esta imagen, se muestra un ejemplo de los datos de clave-
valor.

Las bases de datos de grafos se pueden usar para almacenar y consultar información sobre
relaciones complejas. Un grafo contiene nodos (información sobre objetos) y bordes (información
sobre las relaciones entre los objetos). La imagen siguiente muestra un ejemplo de cómo pueden
estructurarse los datos en una base de datos de grafos.

No todos los datos están estructurados o semiestructurados. Por ejemplo, los archivos de audio y
vídeo, y los archivos de datos binarios, podrían carecer de una estructura específica. Estos datos se
conocen como no estructurados.

¿Cómo se definen y se almacenan los datos en la informática en la nube y cómo se accede a


ellos?

Dependiendo del tipo de datos, como estructurados, semiestructurados o no estructurados, los datos
se almacenan de diferentes maneras. Normalmente, los datos estructurados se almacenan en una
base de datos relacional, como SQL Server o Azure SQL Database. Azure SQL Database es un
servicio que se ejecuta en la nube. Se puede usar para crear tablas relacionales y acceder a ellas.
Azure se encarga de administrar y ejecutar el servicio, por lo que solo es necesario especificar que se

4
quiere crear un servidor de bases de datos. La acción de configurar el servidor de bases de datos se
denomina aprovisionamiento.

También se pueden aprovisionar otros servicios en Azure. Por ejemplo, para almacenar datos no
estructurados, como archivos de vídeo o audio, se puede usar Azure Blob Storage (Blob es el
acrónimo e inglés de objeto binario grande). Para almacenar datos semiestructurados, por ejemplo,
documentos, se puede usar un servicio como Azure Cosmos DB.

Después de aprovisionar el servicio, se debe configurar para que los usuarios puedan acceder a los
datos. Normalmente, se pueden definir varios niveles de acceso.

 El acceso de solo lectura significa que los usuarios pueden leer los datos, pero no pueden
modificar los datos existentes ni crear datos nuevos.
 El acceso de lectura y escritura permite a los usuarios ver y modificar los datos existentes.
 El acceso de propietario proporciona acceso completo a los datos, incluida la administración
de la seguridad, como agregar nuevos usuarios y quitar el acceso a usuarios existentes.

También se puede definir qué usuarios pueden tener acceso a los datos en primer lugar. Si los datos
son confidenciales (o secretos), es posible que se quiera restringir el acceso a usuarios
determinados.

Sigamos con el ejemplo en el que es un analista de datos de una organización grande e imaginemos
que ha decidido dar acceso de solo lectura a todo el equipo de administración. El equipo de
administración no necesita modificar los datos, pero tiene la autorización de seguridad para verlos. Se
concede acceso de lectura y escritura a la aplicación que usan los vendedores para registrar las
ventas. Los usuarios individuales no tendrán que acceder al sistema directamente, sino que
realizarán modificaciones a través de su aplicación. Los analistas de datos y los administradores de
datos tendrán privilegios de propietario, ya que necesitan administrar el acceso de otros usuarios y
administrar el sistema.

1.3 SOLUCIONES DE PROCESAMIENTO DE DATOS

Las soluciones de procesamiento de datos a menudo se dividen en estas dos amplias categorías:
sistemas analíticos y sistemas de procesamiento de transacciones.

¿Qué es un sistema transaccional?

Un sistema transaccional es lo que la mayoría de los usuarios suele considerar la función principal de
la informática empresarial. Un sistema transaccional registra transacciones. Las transacciones
pueden ser financieras, como el movimiento de dinero entre cuentas en un sistema bancario, o
pueden ser parte de un sistema minorista, como realizar un seguimiento de los pagos de bienes y
servicios de los clientes. Piense en una transacción como una unidad de trabajo pequeña y discreta.

Los sistemas transaccionales suelen ser de gran volumen; a veces, controlan muchos millones de
transacciones en un solo día. Se debe poder acceder a los datos que se procesan con mucha

5
rapidez. El trabajo que realizan los sistemas transaccionales a menudo se conoce como
procesamiento de transacciones en línea (OLTP).

Para admitir el procesamiento rápido, los datos de un sistema transaccional suelen dividirse en partes
más pequeñas. Por ejemplo, en un sistema relacional, cada tabla implicada en una transacción solo
contiene las columnas necesarias para realizar la tarea transaccional. En el caso de una transferencia
bancaria, una tabla que contiene información sobre los fondos de la cuenta solo puede contener el
número de cuenta y el saldo actual. Otras tablas que no participen en la operación de transferencia
contendrán información como el nombre y la dirección del cliente, y el historial de la cuenta. La
división de tablas en grupos independientes de columnas de esta forma se denomina normalización.
En la unidad siguiente se describe este proceso con más detalle. La normalización puede permitir a
un sistema transaccional almacenar en caché gran parte de la información necesaria para realizar
transacciones en memoria, así como acelerar el rendimiento.

Aunque la normalización permite un rendimiento rápido para las transacciones, también puede hacer
que las consultas sean más complejas. Con frecuencia, las consultas que implican tablas
normalizadas deberán combinar de nuevo los datos de varias tablas. Esto puede dificultar el examen
de los datos a los usuarios profesionales.

¿Qué es un sistema analítico?

A diferencia de los sistemas diseñados para admitir OLTP, un sistema analítico pensado para ayudar
a los usuarios profesionales que necesitan consultar datos y obtener una vista general de la
información contenida en una base de datos.

Los sistemas analíticos se ocupan de capturar datos sin procesar y usarlos para obtener
conclusiones. Una organización puede usar esta información para tomar decisiones empresariales.
Por ejemplo, la información detallada de una empresa de fabricación podría indicar tendencias que le
permiten determinar en qué líneas de producción se debe centrar para aumentar su rentabilidad.

La mayoría de los sistemas de procesamiento de datos analíticos necesita realizar tareas similares:
ingerir datos, transformar datos, consultar datos y visualizar datos. En la imagen siguiente se
muestran los componentes de un sistema típico de procesamiento de datos.

6
 Ingesta de datos: La ingesta de datos es el proceso de captura de datos sin procesar. Estos
datos podrían tomarse de dispositivos de control que miden condiciones medioambientales,
como la temperatura y la presión; dispositivos de punto de venta que registran los elementos
adquiridos por un cliente en un supermercado; datos financieros que registran el movimiento
de dinero entre cuentas bancarias; y datos meteorológicos de estaciones meteorológicas.
Algunos de estos datos podrían provenir de un sistema OLTP independiente. Para procesar y
analizar estos datos, primero se deben almacenar en un repositorio de algún tipo. El
repositorio podría ser un almacén de archivos, una base de datos de documentos o incluso
una base de datos relacional.
 Transformación y procesamiento de datos: Es posible que los datos sin procesar no estén
en un formato apropiado para la consulta. Los datos pueden contener anomalías que se
deben filtrar, o bien pueden requerir alguna transformación. Por ejemplo, es posible que las
fechas o direcciones se deban convertir a un formato estándar. Una vez que se introducen los
datos en un repositorio de datos, se pueden realizar algunas operaciones de limpieza y quitar
datos cuestionables o no válidos, así como realizar algunas agregaciones, como calcular el
beneficio, el margen y otros indicadores de rendimiento clave (KPI). Los KPI los usan las
empresas para medir el crecimiento y el rendimiento.
 Consulta de datos: Una vez que se han ingerido y transformado los datos, se pueden
consultar para analizarlos. Se puede buscar tendencias o intentar determinar la causa de los
problemas de los sistemas. Muchos sistemas de administración de bases de datos
proporcionan herramientas que permiten realizar consultas ad hoc en los datos y generar
informes periódicos.
 Visualización de datos: Los datos representados en tablas como filas y columnas (o como
documentos) no siempre son intuitivos. La visualización de los datos puede resultar útil a
menudo como una herramienta para examinarlos. Se puede generar gráficos (por ejemplo,
gráficos de barras o gráficos de líneas), trazar resultados en mapas geográficos o en gráficos
circulares, o bien ilustrar cómo cambian los datos a lo largo del tiempo. Microsoft ofrece
herramientas de visualización, como Power BI, para proporcionar una representación gráfica
enriquecida de los datos.

1.4 IDENTIFICACIÓN DE LOS TIPOS DE DATOS Y ALMACENAMIENTO DE DATOS

Los datos se pueden clasificar de muchas maneras diferentes en función de cómo están
estructurados, pero también de cómo se usan. En esta unidad, conocerá las características de los
distintos tipos de datos.

Características de los datos relacionales y no relacionales

Las bases de datos relacionales proporcionan probablemente el modelo más conocido de


almacenamiento de datos. La estructura sencilla de las tablas y las columnas facilita su uso inicial,
pero esta estructura rígida puede producir algunos problemas. Por ejemplo, en una base de datos
que contiene información de clientes, ¿cómo se administran los clientes que tienen más de una
dirección? ¿Se agregan columnas para almacenar los detalles de cada dirección? Si es así, ¿cuántas
columnas se deben agregar? Si se permiten hasta tres direcciones, ¿qué ocurre si un cliente tiene

7
solo una? ¿Qué se almacena en las columnas vacías? ¿Qué ocurre si de repente un cliente tiene
cuatro direcciones? Del mismo modo, ¿qué información se almacena en una dirección (nombre de la
calle, número de casa, ciudad, código postal)? ¿Qué ocurre si una casa tiene un nombre y no un
número o se encuentra en algún lugar donde no se usan códigos postales?

Estos problemas se pueden resolver mediante un proceso denominado normalización. Por lo general,
el resultado final del proceso de normalización es que los datos se dividen en un gran número de
tablas estrechas y bien definidas (una tabla estrecha es una tabla con pocas columnas) con
referencias de una tabla a otra, tal y como se muestra en la siguiente imagen. Pero para consultar los
datos, a menudo es necesario volver a agrupar la información de varias tablas combinando los datos
en tiempo de ejecución (como muestran las líneas del diagrama). Estos tipos de consultas pueden ser
caros.

Las bases de datos no relacionales permiten almacenar los datos en un formato que coincida mejor
con la estructura original. Por ejemplo, en una base de datos de documentos, se pueden almacenar
los detalles de cada cliente en un único documento, como se muestra en el ejemplo de la unidad
anterior. Para recuperar los detalles de un cliente, incluida su dirección, únicamente se necesita leer
un solo documento. Pero el uso de una base de datos de documentos presenta algunas desventajas.
Si dos clientes cohabitan y tienen la misma dirección, en una base de datos relacional solo se tendría
que almacenar la información de la dirección una única vez. En el siguiente diagrama, Jay y Frances
Adams comparten la misma dirección.

En una base de datos de documentos, la dirección se duplicaría en los documentos para Jay Adams
y Frances Adams. Esta duplicación no solo aumenta el espacio de almacenamiento necesario, sino
que también puede hacer que el mantenimiento sea más complejo (si la dirección cambia, se debe
modificar en dos documentos).

8
## Document for Jay Adams ##
{
"customerID": "1",
"name":
{
"firstname": "Jay",
"lastname": "Adams"
},
"address":
{
"number": "12",
"street": "Park Street",
"city": "Some City",
}
}

## Document for Frances Adams ##


{
"customerID": "4",
"name":
{
"firstname": "Francis",
"lastname": "Adams"
},
"address":
{
"number": "12",
"street": "Park Street",
"city": "Some City",
}
}

Cargas de trabajo transaccionales

Las bases de datos relacionales y no relacionales son adecuadas para diferentes cargas de trabajo.
El uso principal de las bases de datos relacionales es controlar el procesamiento de transacciones.

Una transacción es una secuencia de operaciones atómicas. Esto significa que todas las operaciones
de la secuencia se deben completar correctamente, o bien, si algo va mal, se deben deshacer todas
las operaciones ejecutadas hasta ese momento en la secuencia. Las transferencias bancarias son un
buen ejemplo: se deducen fondos de una cuenta y se abonan fondos equivalentes en otra. Si se
produce un error en el sistema después de la deducción de los fondos, se deben restituir en la cuenta
original (no se deben perder). Después, se puede volver a intentar la transferencia. De manera
similar, no debe poder abonar los mismos fondos dos veces en una cuenta.

Cada transacción de base de datos tiene un punto inicial definido, seguido de los pasos para
modificar los datos de la base de datos. Al final, la base de datos confirma los cambios para que sean

9
permanentes o los revierte al punto inicial, momento en el que se puede volver a intentar la
transacción.

Una base de datos transaccional debe adherirse a las propiedades ACID (atomicidad, coherencia,
aislamiento y durabilidad) para garantizar que la base de datos sigue siendo coherente mientras se
procesan las transacciones.

 La atomicidad garantiza que cada transacción se trata como una unidad única, la cual se
completa correctamente o produce un error general. Si alguna de las instrucciones que
conforman una transacción no se completa correctamente, se produce un error general en
toda la transacción y la base de datos permanece sin cambios. Un sistema atómico debe
garantizar la atomicidad en todas y cada una de las situaciones, incluso en caso de fallos
eléctricos, errores y bloqueos.
 La coherencia garantiza que una transacción solo puede pasar los datos de la base de datos
de un estado válido a otro. Una base de datos coherente nunca debe perder o crear datos de
una forma que no se pueda contabilizar. En el ejemplo de transferencia bancaria descrito
anteriormente, si se agregan fondos a una cuenta, debe haber una deducción de fondos
correspondiente en alguna parte, o un registro en el que se describa de dónde proceden los
fondos si se han recibido externamente. No se puede crear (o perder) dinero.
 El aislamiento garantiza que la ejecución simultánea de transacciones deja la base de datos
en el mismo estado que si las transacciones se ejecutan de forma secuencial. Un proceso
simultáneo no puede ver los datos en un estado incoherente (por ejemplo, los fondos se han
deducido de una cuenta, pero aún no se han abonado en otra).
 La durabilidad garantiza que, una vez confirmada una transacción, permanecerá confirmada
incluso si se produce un error del sistema, por ejemplo, una interrupción del suministro
eléctrico o un bloqueo.

Los sistemas de bases de datos que procesan cargas de trabajo transaccionales son inherentemente
complejos. Necesitan administrar usuarios simultáneos que posiblemente intenten acceder a los
mismos datos y modificarlos al mismo tiempo, por lo que procesan las transacciones de forma aislada
y mantienen la coherencia y la capacidad de recuperación de la base de datos. Muchos sistemas
implementan la coherencia y el aislamiento relacionales aplicando bloqueos a los datos cuando se
actualizan. El bloqueo impide que otro proceso lea los datos hasta que se libere. Y solo se libera el
bloqueo cuando la transacción se confirma o se revierte. Un exceso de bloqueos puede dar lugar a un
rendimiento deficiente mientras las aplicaciones esperan a que se liberen los bloqueos.

Las bases de datos distribuidas se usan habitualmente en muchas organizaciones. Una base de
datos distribuida es una base de datos en la que los datos se almacenan en distintas ubicaciones
físicas. Se pueden almacenar en varios equipos que se encuentren en la misma ubicación física (por
ejemplo, un centro de datos) o pueden estar dispersos a través de una red de equipos conectados.
En comparación con los sistemas de bases de datos no distribuidas, cualquier actualización de datos
en una base de datos distribuida tardará tiempo en aplicarse en varias ubicaciones. Si se necesita
coherencia transaccional en este escenario, los bloqueos se pueden conservar durante mucho
tiempo, especialmente si hay un error de red entre las bases de datos en un momento crítico. Para
contrarrestar este problema, muchos sistemas de administración de bases de datos distribuidas

10
rebajan los estrictos requisitos de aislamiento de las transacciones e implementan una "coherencia
final". En esta forma de coherencia, a medida que una aplicación escribe datos, cada cambio se
registra en un servidor y, después, se propaga de forma asincrónica al resto de servidores del
sistema de bases de datos distribuidas. Aunque esta estrategia ayuda a minimizar la latencia, puede
provocar incoherencias temporales en los datos. La coherencia final es ideal cuando la aplicación no
requiere ninguna garantía de ordenación. Algunos ejemplos son el recuento de recursos compartidos,
de Me gusta o de comentarios sin hilos en un sistema de redes sociales.

Cargas de trabajo analíticas

Las cargas de trabajo analíticas suelen ser sistemas de solo lectura que almacenan grandes
volúmenes de datos históricos o de métricas empresariales, como el rendimiento de ventas y los
niveles de inventario. Las cargas de trabajo analíticas se usan para analizar datos y tomar decisiones.
Los análisis se generan agregando los hechos presentados por los datos sin procesar en resúmenes,
tendencias y otros tipos de "información empresarial".

Los análisis pueden basarse en una instantánea de los datos en un momento concreto o en una serie
de instantáneas. Los responsables de la toma de decisiones normalmente no necesitan todos los
detalles de todas las transacciones. Quien una visión general más amplia.

Un ejemplo de información analítica es un informe sobre las ventas mensuales. Como jefe del
departamento de ventas, es posible que no necesite ver todas las transacciones diarias que han
tenido lugar (información transaccional), pero sí quiere tener un informe de las ventas mensuales para
identificar tendencias y tomar decisiones (información analítica).

Pero la información transaccional es una parte integral de la información analítica. Sin un buen
registro de las ventas diarias, no se puede generar un informe útil para identificar tendencias. Por esto
es muy importante controlar de forma eficaz la información transaccional.

1.5 DIFERENCIA ENTRE LOS DATOS DE STREAMING Y POR LOTES

El procesamiento de datos es simplemente la conversión de datos sin procesar en información


significativa a través de un proceso. En función de cómo se ingieren los datos en el sistema, se puede
procesar cada uno de los elementos de datos a medida que llegan, o bien se pueden almacenar en
búfer los datos sin procesar y procesarlos en grupos. El procesamiento de los datos a medida que
llegan se denomina streaming. El almacenamiento en búfer y el procesamiento de los datos en
grupos se denomina procesamiento por lotes.

Procesamiento por lotes

En el procesamiento por lotes, los elementos de datos se recopilan en un grupo conforme van
llegando. Después, todo el grupo se procesa más adelante como un lote. El momento en el que se
procesa cada grupo se puede determinar de varias maneras. Por ejemplo, los datos se pueden
procesar según un intervalo de tiempo programado (por ejemplo, cada hora), o bien el procesamiento

11
puede desencadenarse cuando se alcance una determinada cantidad de datos o como resultado de
algún otro evento.

Un ejemplo de procesamiento por lotes es la forma en la que se suelen contabilizar los votos en las
elecciones. Los votos no se contabilizan en el momento en que se produce cada uno, sino que se
contabilizan todos a la vez en un lote.

Entre las ventajas del procesamiento por lotes se incluyen las siguientes:

 Se pueden procesar grandes volúmenes de datos en un momento especificado.


 Se puede programar para ejecutarse mientras los equipos o sistemas están inactivos, como
por la noche o en horas de poca actividad.

Entre las desventajas del procesamiento por lotes están las siguientes:

 El tiempo de retardo entre la ingesta de los datos y la obtención de los resultados.


 Todos los datos de entrada de un trabajo por lotes deben estar listos para poder procesar un
lote. Esto significa que los datos deben comprobarse con cuidado. Los problemas con los
datos, los errores y los bloqueos de los programas que se producen durante los trabajos por
lotes provocan la detención de todo el proceso. Los datos de entrada deben comprobarse
cuidadosamente antes de volver a ejecutar el trabajo. Incluso los errores de datos pequeños,
como los errores tipográficos en fechas, pueden impedir que se ejecute un trabajo por lotes.

Un ejemplo de uso eficaz del procesamiento por lotes sería una conexión a un sistema central. Se
deben transferir grandes cantidades de datos a un sistema de análisis de datos y esto no se realiza
en tiempo real. Un ejemplo de procesamiento por lotes ineficaz sería transferir pequeñas cantidades
de datos en tiempo real, como los códigos bursátiles.

Procesamiento de datos de streaming y en tiempo real

En el procesamiento en streaming, cada nuevo fragmento de datos se procesa cuando llega. Por
ejemplo, la ingesta de datos es intrínsecamente un proceso de streaming.

El streaming trata los datos en tiempo real. A diferencia del procesamiento por lotes, no hay ningún
tiempo de espera hasta el siguiente intervalo de procesamiento por lotes y los datos se procesan
como partes individuales en lugar de procesarse de lote en lote. El procesamiento de datos de
streaming es beneficioso en la mayoría de los escenarios donde se generan datos dinámicos nuevos
de forma continua.

Entre los ejemplos de datos de streaming se incluyen:

 Una institución financiera realiza un seguimiento de los cambios en el mercado de valores en


tiempo real, calcula el valor en riesgo y reequilibra automáticamente las carteras en función de
los movimientos de precio de las acciones.

12
 Una empresa de juegos en línea recopila datos en tiempo real sobre las interacciones de los
jugadores con los juegos y los incorpora en su plataforma de juegos. Después, analiza los
datos en tiempo real y ofrece incentivos y experiencias dinámicas para atraer a los jugadores.
 Un sitio web inmobiliario hace un seguimiento de un subconjunto de datos de los dispositivos
móviles de los clientes y realiza recomendaciones en tiempo real de las propiedades que
pueden visitar los clientes en función de su ubicación geográfica.

El procesamiento en streaming es idóneo para las operaciones en las que la velocidad de ejecución
es importante y que requieren una respuesta instantánea en tiempo real. Por ejemplo, un sistema que
supervisa la presencia de humo y altas temperaturas en un edificio necesita activar alarmas y
desbloquear puertas para permitir que los residentes puedan salir inmediatamente en caso de que se
produzca un incendio.

Diferencias entre los datos de streaming y por lotes

Además de las diferencias en la forma en que el procesamiento por lotes y en streaming controlan los
datos, hay otras diferencias:

 Ámbito de los datos: El procesamiento por lotes puede procesar todos los datos del conjunto
de datos. Normalmente, el procesamiento en streaming solo tiene acceso a los datos recibidos
más recientemente recibidos o dentro de un período de tiempo cambiante (los últimos
30 segundos, por ejemplo).
 Tamaño de los datos: El procesamiento por lotes es adecuado para administrar grandes
conjuntos de valores de forma eficaz. El procesamiento en streaming está diseñado para
registros individuales o microlotes que constan de pocos registros.
 Rendimiento: la latencia del procesamiento por lotes suele ser de unas horas. Normalmente,
el procesamiento en streaming se produce inmediatamente, con la latencia en segundos o
milisegundos. La latencia es el tiempo que se tarda en recibir y procesar los datos.
 Análisis: normalmente se usa el procesamiento por lotes para realizar análisis complejos. El
procesamiento en streaming se usa para funciones de respuesta simples, agregaciones o
cálculos, como el cálculo de la media acumulada.

1.6 PRUEBA DE CONOCIMIENTOS

1. ¿Cómo se organizan los datos en una tabla relacional?

En filas y columnas

En el encabezado y en el pie de página

En páginas y párrafos

13
2. ¿Cuál de los siguientes constituye un ejemplo de datos no estructurados?

Una tabla de empleados con las columnas Id. del empleado, Nombre del empleado y Designación
del empleado

Archivos de audio y vídeo

Una tabla en una base de datos de SQL Server

3. ¿Cuál de los siguientes constituye un ejemplo de un conjunto de datos de streaming?

Datos de sensores y dispositivos

Datos de ventas del mes pasado

Una lista de los empleados que trabajan para una empresa

Solución.

1. En filas y columnas. 2. Archivos de audio y video. 3. Datos de sensores y dispositivos

14
MÓDULO 2. Exploración de los roles y las responsabilidades del mundo de
los datos

OBJETIVOS DE APRENDIZAJE

 Explorar los roles de trabajo de datos


 Explorar las tareas y las herramientas comunes de los roles de trabajo de datos

2.1 INTRODUCCIÓN

Durante la última década, la cantidad de datos que generan los sistemas y los dispositivos ha
aumentado considerablemente. Debido a este aumento, los expertos en el tratamiento de datos se
enfrentan a nuevas tecnologías, nuevos roles y nuevos enfoques para trabajar con los datos. Los
expertos en el tratamiento de datos suelen desempeñar diferentes roles a la hora de administrar, usar
y controlar los datos. En este módulo, conocerá los distintos roles que las organizaciones suelen
aplicar a estos expertos, así como las tareas y las responsabilidades asociadas a dichos roles.

2.2 EXPLORACIÓN DE LOS ROLES DE TRABAJO DEL MUNDO DE LOS DATOS

Hay una amplia variedad de roles implicados en la administración, el control y el uso de datos.
Algunos roles están orientados a los negocios, mientras que otros implican más ingeniería. También
los hay más centrados en la investigación, o incluso existen roles híbridos que combinan distintos
aspectos de la administración de datos. En esta unidad, explorará los roles de trabajo más comunes
del mundo de los datos. La organización puede definir roles de maneras distintas o asignarles
nombres diferentes, pero los que se describen en esta unidad resumen la clasificación más habitual
del trabajo y las responsabilidades.

¿Cuáles son los roles del mundo de los datos?

Hay tres roles de trabajo principales que se ocupan de los datos de la mayoría de las organizaciones:

 Los administradores de bases de datos se ocupan de la administración de las bases de


datos, para lo que asignan permisos a los usuarios, almacenan copias de seguridad de los
datos y restauran los datos en caso de que se produzcan errores.
 Los ingenieros de datos son esenciales cuando se trata de trabajar con datos, aplicar rutinas
de limpieza de datos, identificar reglas de negocio y convertir los datos en información útil.
 Los analistas de datos exploran y analizan los datos con el fin de crear visualizaciones y
gráficos para que las organizaciones tomen decisiones informadas.

Rol Administrador de base de datos

15
El administrador de base de datos de Azure es responsable del diseño, la
implementación, el mantenimiento y los aspectos operativos de las soluciones de
base de datos locales y en la nube que se basan en servicios de datos de Azure
y SQL Server. Son responsables de la disponibilidad general y de las
optimizaciones y el rendimiento coherentes de las soluciones de base de datos.
Trabajan con las partes interesadas para implementar directivas, herramientas y
procesos para la realización de copias de seguridad, así como planes de recuperación que permiten
reponerse tras un desastre natural o un error humano.

Los administradores de base de datos también son responsables de administrar la seguridad de los
datos en la base de datos, conceder privilegios sobre los datos, y conceder o denegar el acceso a los
usuarios según corresponda.

Rol Ingeniero de datos

Los ingenieros de datos colaboran con las partes interesadas para diseñar e
implementar recursos relacionados con datos, entre los que se incluyen
canalizaciones de ingesta de datos, actividades de transformación y limpieza, y
almacenes de datos para cargas de trabajo analíticas. Usan una amplia gama de
tecnologías de plataforma de datos, como bases de datos relacionales y no
relacionales, almacenes de archivos y flujos de datos.

También son responsables de garantizar que la privacidad de los datos se mantenga dentro de la
nube y que abarque desde el entorno local hasta los almacenes de datos en la nube. También se
ocupan de la administración y la supervisión de los almacenes de datos y las canalizaciones de
datos, con el fin de asegurarse de que las cargas de datos funcionen según lo previsto.

Rol Analista de datos

Los analistas de datos ayudan a las empresas a maximizar el valor de sus


recursos de datos. Son responsables de diseñar y crear modelos
escalables, limpiar y transformar los datos, y habilitar funciones de análisis
avanzado a través de informes y visualizaciones.

Los analistas de datos se ocupan del procesamiento de los datos sin


procesar para convertirlos en información pertinente, en función de los requisitos empresariales
establecidos, con el fin de ofrecer conclusiones de interés.

2.3 REVISIÓN DE LAS TAREAS Y LAS HERRAMIENTAS PARA LA ADMINISTRACIÓN DE


BASES DE DATOS

Los administradores de bases de datos llevan a cabo tareas de administración y organización de


bases de datos. El trabajo principal de un administrador de base de datos consiste en asegurarse de
que los datos estén disponibles, se encuentren protegidos contra la pérdida, los daños o el robo, y
sean fácilmente accesibles cuando sea necesario.

16
Tareas y responsabilidades del administrador de bases de datos

Estos son algunos de los roles y las responsabilidades más comunes de un administrador de base de
datos:

 Instalar y actualizar las herramientas de la aplicación y el servidor de bases de datos.


 Asignar almacenamiento del sistema y planear los requisitos de almacenamiento para el
sistema de base de datos
 Modificar la estructura de la base de datos, según sea necesario, a partir de la información
que proporcionen los desarrolladores de aplicaciones
 Inscribir usuarios y mantener la seguridad del sistema
 Garantizar el cumplimiento del contrato de licencia del proveedor de la base de datos
 Controlar y supervisar el acceso de los usuarios a la base de datos
 Supervisar y optimizar el rendimiento de la base de datos
 Planear la realización de copias de seguridad y la recuperación de la información de la base
de datos
 Mantener los datos archivados
 Realizar copias de seguridad de las bases de datos y restaurarlas
 Ponerse en contacto con el proveedor de la base de datos para obtener soporte técnico
 Generar varios informes consultando la base de datos según sea necesario.
 Administrar y supervisar la replicación de datos

Herramientas comunes del administrador de base de datos

La mayoría de los sistemas de administración de bases de datos proporcionan su propio conjunto de


herramientas para ayudar a la administración de las bases de datos. Por ejemplo, los administradores
de bases de datos de SQL Server usan SQL Server Management Studio para la mayoría de las
actividades diarias de mantenimiento de las bases de datos. Otros sistemas tienen sus propias
interfaces específicas de la base de datos, como pgAdmin para sistemas PostgreSQL o MySQL
Workbench para MySQL. También hay disponible una serie de herramientas de administración de
bases de datos multiplataforma. Un ejemplo es Azure Data Studio.

¿Qué es Azure Data Studio?

Azure Data Studio proporciona una interfaz gráfica de usuario para administrar numerosos sistemas
de base de datos diferentes. Actualmente, proporciona conexiones a bases de datos de SQL Server
locales, Azure SQL Database, PostgreSQL, Azure SQL Data Warehouse y Clústeres de macrodatos
de SQL Server, entre otros. Se trata de una herramienta extensible que le permite descargar e
instalar extensiones de desarrolladores de terceros que se conectan a otros sistemas, o proporcionar
asistentes que ayudan a automatizar muchas tareas administrativas.

17
¿Qué es SQL Server Management Studio?

SQL Server Management Studio proporciona una interfaz gráfica que permite consultar datos, realizar
tareas generales de administración de bases de datos y generar scripts para automatizar las
operaciones de mantenimiento y soporte técnico de las bases de datos. En el ejemplo siguiente se
muestra el uso de SQL Server Management Studio para realizar una copia de seguridad de una base
de datos.

18
Una característica útil de SQL Server Management Studio es la capacidad de generar scripts de
Transact-SQL para casi todas las funcionalidades que proporciona SSMS. Esto permite al
administrador de base de datos programar y automatizar muchas tareas comunes.

19
*Nota. Transact-SQL es un conjunto de extensiones de programación de Microsoft que agrega
varias características al Lenguaje de consulta estructurado (SQL), incluido el control de
transacciones, el control de excepciones y errores, el procesamiento de filas y las variables
declaradas.

Uso de Azure Portal para administrar Azure SQL Database

Azure SQL Database proporciona servicios de bases de datos en Azure. Es similar a SQL Server,
salvo que se ejecuta en la nube. Para administrar Azure SQL Database, puede usar Azure Portal.

Las tareas de configuración habituales, como el aumento del tamaño de la base de datos, así como la
creación o la eliminación de una base de datos, se realizan a través de Azure Portal.

Puede usar Azure Portal para administrar y ajustar de forma dinámica los recursos, como el tamaño
del almacenamiento de datos y el número de núcleos disponibles para el procesamiento de la base
de datos. Estas tareas requerirán la colaboración de un administrador del sistema si la base de datos
se ejecutaba de forma local.

2.4 REVISIÓN DE LAS TAREAS Y LAS HERRAMIENTAS PARA LA INGENIERÍA DE DATOS

Los ingenieros de datos se encargan de administrar y organizar los datos, al mismo tiempo que
supervisan las tendencias o las incoherencias que afectarán a los objetivos empresariales. Se trata
de un cargo muy técnico, que requiere experiencia y conocimientos en áreas como programación,
matemáticas e informática. Además, los ingenieros de datos deben contar con habilidades
interpersonales para comunicar las tendencias de los datos a los demás miembros de la organización
y ayudar a la empresa a usar los datos que se recopilan.

20
Tareas y responsabilidades de los ingenieros de datos

 Estos son algunos de los roles y las responsabilidades más comunes de un ingeniero de
datos:
 Desarrollar, construir, probar y mantener bases de datos y estructuras de datos
 Adaptar la arquitectura de datos a los requisitos empresariales
 Adquirir datos
 Desarrollar procesos para crear y recuperar información de conjuntos de datos
 Usar herramientas y lenguajes de programación para examinar los datos
 Identificar maneras de mejorar la confiabilidad, la eficacia y la calidad de los datos
 Investigar cuestiones comerciales y empresariales
 Implementar programas de análisis sofisticados, Machine Learning y métodos estadísticos
 Preparar los datos para el modelado predictivo y prescriptivo
 Usar datos para detectar tareas que se pueden automatizar

Herramientas habituales de la ingeniería de datos

Para dominar la ingeniería de datos, deberá estar familiarizado con diversas herramientas que le
permitirán crear bases de datos bien diseñadas y optimizadas para los procesos empresariales que
se ejecutarán. Debe tener un conocimiento exhaustivo de la arquitectura del sistema de
administración de bases de datos, la plataforma en la que se ejecuta el sistema y los requisitos
empresariales que se aplican a los datos almacenados en la base de datos.

Si usa un sistema de administración de bases de datos relacionales, debe tener conocimientos de


SQL. Debe poder usar SQL para crear bases de datos, tablas, índices, vistas y otros objetos
necesarios para la base de datos. Muchos sistemas de administración de bases de datos
proporcionan herramientas que permiten crear y ejecutar scripts SQL. Por ejemplo, SQL Server
Management Studio (que se describe en la unidad anterior) permite crear y consultar tablas
visualmente, aunque también puede crear sus propios scripts SQL de forma manual.

En algunos casos, es posible que necesite interactuar con una base de datos desde la línea de
comandos. Muchos sistemas de administración de bases de datos proporcionan una interfaz de línea
de comandos que admite estas operaciones. Por ejemplo, puede usar la utilidad sqlcmd para
conectarse a Microsoft SQL Server y Azure SQL Database y ejecutar consultas y comandos ad hoc.

Como profesional de SQL Server, su principal herramienta de manipulación de datos probablemente


sea Transact-SQL. Como ingeniero de datos, podría usar tecnologías adicionales, como Azure
Databricks y Azure HDInsight para generar y probar modelos predictivos. Si trabaja en el campo no
relacional, tal vez use Azure Cosmos DB como almacén de datos principal. Para manipular y
consultar los datos, se pueden usar lenguajes como HiveQL, R o Python.

21
2.5 REVISIÓN DE LAS TAREAS Y LAS HERRAMIENTAS PARA LA VISUALIZACIÓN DE
DATOS Y LA CREACIÓN DE INFORMES

Los analistas de datos se encargan de desentrañar qué significan realmente los datos. Un analista de
datos experimentado explorará los datos y los usará para determinar las tendencias, los problemas y
otra información que pueda ser útil para la empresa.

Gran parte del rol de analista de datos se centra en la comunicación y la visualización. La


visualización de los datos es fundamental para presentar grandes cantidades de información de
maneras que se entiendan universalmente o se puedan interpretar con facilidad y para detectar
patrones, tendencias y correlaciones. Estas representaciones incluyen gráficos, grafos, infografías y
otros recursos visuales. Los analistas de visualización de datos usan software y herramientas de
visualización para transmitir la información de estas maneras, ya sea para clientes o para su propia
empresa. Un buen analista de datos debe tener experiencia y conocimientos en el uso de
herramientas de generación de informes, como Microsoft Power BI y SQL Server Reporting Services.

Tareas y responsabilidades de los analistas de datos

Entre las principales funciones de los analistas de datos se suelen incluir las siguientes:

 Hacer que los conjuntos de datos grandes o complejos sean más accesibles, comprensibles y
utilizables
 Crear gráficos, grafos, histogramas, mapas geográficos y otros modelos visuales que ayuden
a explicar el significado de grandes volúmenes de datos y aislar las áreas de interés
 Transformar, mejorar e integrar datos de varios orígenes, en función de los requisitos
empresariales
 Combinar los conjuntos de resultados de datos de varios orígenes (por ejemplo, combinar los
datos de las ventas y los datos meteorológicos permite entender mejor cómo influye el tiempo
en la venta de determinados productos, como los helados)
 Buscar patrones ocultos mediante el uso de los datos
 Proporcionar información de manera práctica y atractiva a los usuarios mediante la creación
de informes y paneles gráficos enriquecidos

Herramientas habituales de visualización de datos

Tradicionalmente, muchos analistas de datos usaban aplicaciones de Microsoft Office, como


Microsoft Excel, para crear informes visuales enriquecidos. Hoy en día, numerosos analistas usan
Microsoft Power BI, una plataforma de visualización eficaz, para crear informes y paneles gráficos
enriquecidos con datos que pueden variar dinámicamente.

Power BI es una colección de servicios de software, aplicaciones y conectores que funcionan


conjuntamente para convertir orígenes de datos sin relación entre sí en información coherente,
interactiva y atractiva visualmente. Es posible que los datos estén guardados en una ubicación local,
como una hoja de cálculo de Excel, en una colección de bases de datos locales y basadas en la nube
o en otro conjunto de orígenes de datos. Power BI le permite conectarse fácilmente a los orígenes de

22
datos, descubrir qué es importante en esos datos y compartir sus hallazgos con otras personas de la
organización.

En la imagen siguiente se muestra un ejemplo de un panel creado mediante Power BI. En este
ejemplo, el analista usa Power BI para examinar los datos de las ventas al por menor de
determinados artículos en varias tiendas y distritos. Las métricas comparan el rendimiento del año
actual con las del año anterior en cuanto a ventas, unidades, margen bruto y varianza, así como
análisis de las nuevas tiendas.

2.6 PRUEBA DE CONOCIMIENTOS

1. ¿Cuál de las siguientes tareas corresponde a un rol de administrador de base de datos?

Realizar copias de seguridad de las bases de datos y restaurarlas

Crear paneles e informes

23
Identificar problemas relacionados con la calidad de los datos

2. ¿Cuál de las siguientes opciones es una herramienta de visualización y creación de informes?

SQL Server Management Studio

Power BI

SQL

3. ¿Cuál de los siguientes roles no es un rol de trabajo de datos?

Administrador de sistemas

Analista de datos

Administrador de base de datos

Solución.

1. Realizar copias de seguridad de las bases de datos y restaurarlas. 2. Power BI. 3. Administrador de
sistemas.

24
MÓDULO 3. Descripción de los conceptos referentes a los datos
relacionales

OBJETIVOS DE APRENDIZAJE

 Explorar las características de los datos relacionales.


 Definir tablas, índices y vistas.
 Explorar las ofertas de carga de trabajo de datos relacionales.

3.1 INTRODUCCIÓN

Cuando se empezaron a usar las bases de datos, cada aplicación almacenaba los datos en su propia
estructura, que era única. Cuando los desarrolladores querían crear aplicaciones para usar esos
datos, necesitaban mucha información sobre la estructura de datos en particular para encontrar los
que necesitaban. Estas estructuras de datos eran ineficaces, costosas de mantener y difíciles de
optimizar para que la aplicación tuviera un buen rendimiento. El modelo de base de datos relacional
se diseñó para resolver el problema de tener varias estructuras de datos arbitrarias. El modelo
relacional proporcionaba una forma estándar de representar y consultar datos que cualquier
aplicación podía usar. Desde el principio, los desarrolladores vieron que el punto fuerte del modelo de
base de datos relacional era el uso de tablas, que eran una forma intuitiva, eficaz y flexible de
almacenar información estructurada y acceder a ella.

El modelo relacional, sencillo pero eficaz, se usa en organizaciones de todo tipo y tamaño para
satisfacer diferentes necesidades de administración de la información. Las bases de datos
relacionales se utilizan para realizar un seguimiento de los inventarios, procesar transacciones de
comercio electrónico, administrar grandes cantidades de información de clientes críticos y mucho
más. También son útiles para almacenar cualquier información que contenga elementos de datos
relacionados que se deban organizar de una forma coherente y basada en reglas.

En este módulo, obtendrá información sobre las características clave de los datos relacionales y
explorará las estructuras de datos relacionales.

3.2 EXPLORACIÓN DE LAS CARACTERÍSTICAS REFERENTES A LOS DATOS


RELACIONALES

Una de las principales ventajas de las bases de datos informáticas es que facilitan el almacenamiento
de información, para que sea fácil y rápida de encontrar. Por ejemplo, un sistema de comercio
electrónico podría usar una base de datos para registrar información sobre los productos que vende
una organización, así como los detalles de los clientes y los pedidos que han realizado. Una base de
datos relacional proporciona un modelo para almacenar los datos y una funcionalidad de consulta que
permite recuperar los datos rápidamente.

25
En esta unidad, obtendrá más información sobre las características de los datos relacionales, y cómo
puede almacenar esta información y consultarla en una base de datos relacional.

Descripción de las características referentes a los datos relacionales

En una base de datos relacional, las colecciones de entidades del mundo real se modelan en forma
de tablas. Una entidad se describe como qué información debe conocerse o conservarse. En el
ejemplo del comercio electrónico, puede crear tablas para clientes, productos y pedidos. Una tabla
contiene filas, y cada fila representa una instancia única de una entidad. En el caso del comercio
electrónico, cada fila de la tabla de clientes contiene los datos de un solo cliente; cada fila de la tabla
de productos define un único producto; y cada fila de la tabla de pedidos representa un pedido hecho
por un cliente.

Las filas de una tabla tienen una o varias columnas que definen las propiedades de la entidad, como
el nombre del cliente o el id. del producto. Todas las filas de la misma tabla tienen las mismas
columnas. Algunas columnas se usan para mantener las relaciones entre las tablas. En la imagen
siguiente, la tabla de pedidos contiene un id. de cliente y un id. de producto. El id. de cliente se
relaciona con la tabla de clientes para identificar al cliente que realizó el pedido, y el id. de producto
se relaciona con la tabla de productos para indicar qué producto se adquirió.

26
Para diseñar una base de datos relacional, es necesario crear un modelo de datos. En el modelo
siguiente se muestra la estructura de las entidades del ejemplo anterior. En este diagrama, las
columnas marcadas como PK son la clave principal de la tabla. La clave principal indica la columna (o
combinación de columnas) que identifica de forma única cada fila. Todas las tablas deben tener una
clave principal.

En el diagrama también se muestran las relaciones entre las tablas. Las líneas que conectan las
tablas indican el tipo de relación. En este caso, la relación de los clientes con los pedidos es de uno a
varios (un cliente puede realizar muchos pedidos, pero cada pedido es para un solo cliente). Del
mismo modo, la relación entre pedidos y productos es de varios a uno (varios pedidos podrían ser
para el mismo producto).

Las columnas marcadas con FK son de clave externa. Hacen referencia a la clave principal de otra
tabla o establecen un vínculo con ella, y se usan para mantener las relaciones entre las tablas. Una
clave externa también ayuda a identificar y evitar anomalías, como pedidos de clientes que no existen
en la tabla de clientes. En el modelo siguiente, las columnas de id. de cliente e id. de producto de la
tabla de pedidos se vinculan al cliente que realizó el pedido y el producto solicitado:

27
Las características principales de una base de datos relacional son las siguientes:

 Todos los datos son tabulares. Las entidades se modelan como tablas; cada instancia de una
entidad es una fila de la tabla, y cada propiedad se define como una columna.
 Todas las filas de la misma tabla tienen el mismo conjunto de columnas.
 Una tabla puede contener cualquier número de filas.

28
 Una clave principal identifica de forma exclusiva cada fila de una tabla. Dos filas no pueden
compartir la misma clave principal.
 Una clave externa hace referencia a las filas de otra tabla relacionada. Para cada valor de la
columna de clave externa, debe haber una fila con el mismo valor en la columna de clave
principal correspondiente de la otra tabla.

*Nota. Crear un modelo de base de datos relacional para una organización grande no es una
tarea sencilla. Puede ser que se requieran varias iteraciones para definir tablas que coincidan con
las características descritas anteriormente. A veces hay que dividir una entidad en más de una
tabla. Este proceso se denomina normalización.

La mayoría de las bases de datos relacionales admiten lenguaje de consulta estructurado (SQL). Use
SQL para crear tablas, insertar, actualizar y eliminar filas en tablas, y consultar datos. Use el
comando CREATE TABLE para crear una tabla, la instrucción INSERT para almacenar los datos en
una tabla, UPDATE para modificar los datos de una tabla y DELETE para quitar las filas de una tabla.
La instrucción SELECT recupera datos de una tabla. La siguiente consulta de ejemplo busca los
detalles de todos los clientes de la base de datos de ejemplo que se muestra anteriormente.

SELECT CustomerID, CustomerName, CustomerAddress


FROM Customers

En lugar de recuperar todas las filas, puede filtrar los datos utilizando una cláusula WHERE. La
siguiente consulta obtiene el id. de pedido y el id. de producto de todos los pedidos realizados por el
cliente 1.

SELECT OrderID, ProductID


FROM Orders
WHERE CustomerID = 'C1'

Puede combinar los datos de varias tablas en una consulta mediante una operación de combinación.
Una operación de combinación abarca las relaciones entre las tablas, lo que le permite recuperar los
datos de más de una tabla a la vez. La siguiente consulta recupera el nombre de cada cliente, junto
con el nombre del producto y la cantidad de cada pedido que haya realizado. Tenga en cuenta que
cada columna está calificada con la tabla a la que pertenece:

29
SELECT Customers.CustomerName, Orders.QuantityOrdered,
Products.ProductName
FROM Customers JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
JOIN Products
ON Orders.ProductID = Products.ProductID

Encontrará todos los detalles sobre SQL en el sitio web de Microsoft, en la página Lenguaje de
consulta estructurado (SQL).

Exploración de casos de uso de bases de datos relacionales

Puede utilizar una base de datos relacional siempre que pueda modelar fácilmente los datos como
una colección de tablas con un conjunto fijo de columnas. En teoría, podría modelar así
prácticamente cualquier conjunto de datos, pero algunos escenarios se prestan mejor al modelo
relacional que otros.

Por ejemplo, intentar forzar una colección de música, vídeo u otros archivos multimedia en el modelo
relacional podría ser difícil. Es posible que sea mejor usar el almacenamiento no estructurado, como
el que está disponible en Azure Blob Storage. Del mismo modo, los sitios de redes sociales utilizan
bases de datos para almacenar datos sobre millones de usuarios, cada uno de los cuales puede estar
vinculado a un número cualquiera de otros usuarios en un sitio web de relaciones muy complejo. Este
tipo de datos se presta más a una estructura de base de datos de grafos que a una colección de
tablas relacionales.

Las bases de datos relacionales se suelen usar en los sistemas de comercio electrónico, pero uno de
los principales casos de uso para utilizar bases de datos relacionales es el procesamiento de
transacciones en línea (OLTP). Las aplicaciones OLTP se centran en tareas orientadas a
transacciones que procesan un gran número de transacciones por minuto. Las bases de datos
relacionales son adecuadas para las aplicaciones OLTP, porque admiten operaciones de inserción,
actualización y eliminación de forma natural. A menudo se puede optimizar una base de datos
relacional para que estas operaciones sean rápidas. Además, la naturaleza de SQL facilita a los
usuarios la realización de consultas ad hoc sobre los datos.

Estos son algunos ejemplos de aplicaciones OLTP que usan bases de datos relacionales:

 Soluciones bancarias
 Aplicaciones comerciales en línea
 Sistemas de reserva de vuelos
 Muchas aplicaciones de compras en línea

30
3.3 EXPLORACIÓN DE ESTRUCTURAS DE DATOS RELACIONALES

Una base de datos relacional se compone de un conjunto de tablas. Una tabla puede tener cero filas
(si la tabla está vacía) o más. Cada tabla tiene un número fijo de columnas. Puede definir las
relaciones entre las tablas usando claves principales y externas, y puede acceder a los datos de las
tablas mediante SQL.

Además de las tablas, una base de datos relacional típica contiene otras estructuras que ayudan a
optimizar la organización de los datos y a mejorar la velocidad de acceso. En esta unidad, veremos
dos de estas estructuras con más detalle: índices y vistas.

¿Qué es un índice?

Un índice le ayuda a buscar datos en una tabla. Piense en el índice de una tabla como en el índice de
la parte final de un libro. El índice de un libro contiene un conjunto ordenado de contenido, junto a las
páginas en las que aparece. El índice le servirá para buscar la referencia a un elemento del libro.
Puede usar los números de página del índice para ir directamente a las páginas correctas del libro.
Sin el índice, es posible que tenga que leer todo el libro para encontrar el contenido que está
buscando.

Cuando se crea un índice en una base de datos, se especifica una columna de la tabla; el índice
contiene una copia de estos datos con un criterio de ordenación y punteros a las filas
correspondientes de la tabla. Cuando el usuario ejecuta una consulta que especifica esa columna en
la cláusula WHERE, el sistema de administración de bases de datos puede utilizar el índice para
capturar los datos más rápidamente que si tuviera que examinar toda la tabla fila por fila. En el
ejemplo siguiente, la consulta recupera todos los pedidos del cliente C1. La tabla de pedidos tiene un
índice en la columna de id. de cliente. El sistema de administración de bases de datos puede
consultar el índice para encontrar rápidamente todas las filas coincidentes en la tabla de pedidos.

Puede crear muchos índices en una tabla. Por lo tanto, si también quiere buscar todos los pedidos de
un producto determinado, le puede ser útil crear otro índice en la columna de id. de producto en la
tabla de pedidos. Sin embargo, los índices no son gratuitos. Un índice puede consumir espacio de
almacenamiento adicional y, cada vez que inserte datos en una tabla, los actualice o los elimine,
tendrá que hacer el mantenimiento de sus índices. Este trabajo adicional puede ralentizar las
operaciones de inserción, actualización y eliminación, y comportar gastos de procesamiento
adicionales. Por lo tanto, al decidir qué índices va a crear, debe conseguir un equilibrio entre tener
índices que aceleren las consultas frente al costo de realizar otras operaciones. En tablas de solo

31
lectura o que contengan datos que se modifican con poca frecuencia, un mayor número de índices
mejorará el rendimiento de las consultas. Si una tabla se consulta con poca frecuencia, pero está
sujeta a un gran número de inserciones, actualizaciones y eliminaciones (como una tabla implicada
en OLTP), la creación de índices en esa tabla puede ralentizar el sistema.

Algunos sistemas de administración de bases de datos relacionales también admiten índices


agrupados. Un índice agrupado reorganiza físicamente una tabla por la clave de índice. Esta
disposición puede mejorar aún más el rendimiento de las consultas, ya que el sistema de
administración de bases de datos relacionales no tiene que seguir las referencias del índice para
buscar los datos correspondientes en la tabla subyacente. En la imagen siguiente se muestra la tabla
de pedidos con un índice clúster en la columna de id. de cliente.

En los sistemas de administración de bases de datos que los admiten, una tabla solo puede tener un
índice agrupado único.

¿Qué es una vista?

Una vista es una tabla virtual basada en el conjunto de resultados de una consulta. En el caso más
simple, puede pensar en una vista como una ventana para las filas especificadas de una tabla
subyacente. Por ejemplo, puede crear una vista en la tabla de pedidos en la que se muestren los
pedidos de un producto específico (en este caso, el producto P1), como se indica a continuación:

CREATE VIEW P1Orders AS


SELECT CustomerID, OrderID, Quantity
FROM Orders
WHERE ProductID = "P1"

32
Puede consultar la vista y filtrar los datos de la misma forma que una tabla. La siguiente consulta
busca los pedidos del cliente C1 usando la vista. Esta consulta solo devolverá los pedidos del
producto P1 realizados por el cliente:

SELECT CustomerID, OrderID, Quantity


FROM P1Orders
WHERE CustomerID = "C1"

Una vista también puede combinar tablas. Si necesita consultar información de los clientes y los
productos que han pedido, puede crear una vista basada en la consulta de combinación que se
muestra en la unidad anterior:

CREATE VIEW CustomersProducts AS


SELECT Customers.CustomerName, Orders.QuantityOrdered,
Products.ProductName
FROM Customers JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
JOIN Products
ON Orders.ProductID = Products.ProductID

La siguiente consulta busca el nombre del cliente y los nombres de los productos de todos los
pedidos realizados por el cliente C2, usando esta vista:

SELECT CustomerName, ProductName


FROM CustomersProducts
WHERE CustomerID = "C2"

3.4 ELECCIÓN DE LA PLATAFORMA CORRECTA PARA UNA CARGA DE TRABAJO


RELACIONAL

La informática en la nube es cada vez más popular, ya que promete flexibilidad a las empresas, la
posibilidad de ahorrar tiempo y dinero, y mejoras en la agilidad y la escalabilidad. Por otro lado, el
software local, instalado en los servidores de la empresa y protegido por su firewall, sigue siendo útil.
Las aplicaciones locales son confiables y seguras, y las empresas pueden controlarlas de cerca.

Los sistemas de administración de bases de datos relacionales son un ejemplo del lugar en el que la
nube ha permitido a las organizaciones aprovechar la escalabilidad mejorada. Sin embargo, esta
escalabilidad tiene que estar en línea con la necesidad de tener un estrecho control sobre los datos.
Los datos son posiblemente uno de los activos más valiosos que tiene una organización, y algunas
empresas no quieren o no pueden ceder la responsabilidad de proteger esos datos a terceros.

33
En esta unidad, veremos algunas de las ventajas y desventajas de ejecutar un sistema de
administración de bases de datos en la nube.

Comparación del hospedaje local con el hospedaje en la nube

Tanto si la empresa almacena su carga de trabajo relacional en la nube como si decide mantenerla
en el entorno local, la seguridad de los datos siempre es un aspecto primordial. Sin embargo, en el
caso de las empresas de sectores altamente regulados, es posible que la decisión sobre si hospedar
las aplicaciones en el entorno local ya esté tomada. Saber que los datos se encuentran en la
infraestructura de TI y los servidores locales también puede proporcionar más tranquilidad.

Para hospedar una base de datos relacional de forma local, la empresa no solo tiene que comprar el
software de la base de datos, sino que también debe hacer el mantenimiento del hardware necesario
para ejecutarla. La organización es responsable del mantenimiento del hardware y el software, de
aplicar revisiones, de realizar copias de seguridad de las bases de datos, de restaurarlas cuando sea
necesario y, por lo general, de realizar toda la administración diaria necesaria para mantener la
plataforma operativa. La escalabilidad también es un factor que conviene tener en cuenta. Para
escalar el sistema, deberá actualizar los servidores o agregar más. A continuación, tendrá que
expandir la base de datos a estos servidores. Puede tratarse de una tarea enorme que requiera dejar
sin conexión una base de datos mientras se realiza la operación. En la nube, el personal del centro de
datos puede controlar muchas de estas operaciones, en muchos casos sin que esto implique un
tiempo de inactividad (o que este tiempo sea mínimo). De este modo, podrá centrarse en los datos
mientras otros se encargan de los problemas de administración (después de todo, por eso paga las
cuotas de Azure).

El enfoque basado en la nube usa tecnología virtual para hospedar las aplicaciones de la empresa de
forma externa. No implica ningún gasto de capital, permite realizar copias de seguridad de los datos
de forma regular y las empresas solo tienen que pagar por los recursos que usan. En el caso de las
organizaciones que planean una expansión agresiva de forma global, la nube tiene incluso más
recursos, ya que permite conectarse con clientes, asociados y otras empresas en cualquier lugar con
un esfuerzo mínimo. Además, la informática en la nube ofrece un aprovisionamiento casi instantáneo,
porque ya está todo configurado. Por lo tanto, cualquier software nuevo que esté integrado en su
entorno estará listo para usarse inmediatamente una vez que la empresa se haya suscrito. Con el
aprovisionamiento instantáneo, se elimina el tiempo empleado en la instalación y configuración, y los
usuarios pueden acceder a la aplicación de inmediato.

34
Definición de IaaS y PaaS

Normalmente, al mover las bases de datos y las operaciones a la nube, tiene dos opciones:
seleccionar un enfoque de IaaS o de PaaS.

IaaS es el acrónimo de infraestructura como servicio. Azure le permite crear una infraestructura virtual
en la nube que imita la manera en que podría funcionar un centro de datos local. Puede crear un
conjunto de máquinas virtuales, conectarlas entre sí mediante una red virtual y agregar diversos
dispositivos virtuales. En muchos sentidos, este enfoque es similar a la forma en la que se ejecutan
los sistemas dentro de una organización, salvo que no tiene que preocuparse por comprar ni
mantener el hardware. Sin embargo, sigue siendo responsable de muchas de las operaciones
cotidianas, como la instalación y configuración del software, la revisión, la creación de copias de
seguridad y la restauración de datos cuando sea necesario. Puede entender IaaS como una
transición a operaciones totalmente administradas en la nube; no tiene que preocuparse por el
hardware, pero la ejecución y administración del software siguen siendo principalmente su
responsabilidad.

Con este enfoque, puede ejecutar cualquier software del que tenga las licencias adecuadas. No
existe ninguna restricción en cuanto al sistema de administración de las bases de datos.

El enfoque de IaaS es el mejor para las migraciones y aplicaciones que requieren acceso de nivel de
sistema operativo. Las máquinas virtuales SQL se migran mediante lift-and-shift. Es decir, puede
copiar la solución local directamente en una máquina virtual en la nube. El sistema debería funcionar
más o menos igual que antes en su nueva ubicación, excepto por algunos pequeños cambios en la
configuración (por ejemplo, en las direcciones de red), para tener en cuenta el cambio en el entorno.

PaaS corresponde a plataforma como servicio. En lugar de crear una infraestructura virtual y de
instalar y administrar el software de base de datos, una solución de PaaS hace esto
automáticamente. Usted especifica los recursos que necesita (según el tamaño que cree que tendrán
las bases de datos, el número de usuarios y el rendimiento que necesita) y Azure crea
automáticamente las máquinas virtuales, las redes y otros dispositivos necesarios. Normalmente se
puede escalar o reducir verticalmente (aumentar o disminuir el tamaño y el número de recursos) de
forma rápida, ya que el volumen de los datos y la cantidad de trabajo que se realiza varían. Azure se
encarga de este escalado, por lo que no necesita agregar o quitar manualmente las máquinas
virtuales ni realizar ninguna otra configuración.

Azure ofrece varias soluciones de PaaS para bases de datos relacionales, como Azure SQL
Database, Azure Database for PostgreSQL, Azure Database for MySQL y Azure Database for
MariaDB. Estos servicios ejecutan versiones administradas de los sistemas de administración de
bases de datos en su nombre. Solo tiene que conectarse a ellos, crear las bases de datos y cargar
los datos. Sin embargo, es posible que se encuentre con algunas restricciones funcionales y que no
estén disponibles todas las características del sistema de administración de bases de datos
seleccionado. Estas restricciones suelen deberse a cuestiones de seguridad. Por ejemplo, pueden
exponer el sistema operativo y el hardware subyacentes a las aplicaciones. En estos casos, puede
que tenga que reutilizar las aplicaciones para quitar las dependencias de estas características.

35
En la imagen siguiente se muestran las ventajas y los inconvenientes de ejecutar un sistema de
administración de bases de datos local (en este caso, SQL Server), usar máquinas virtuales en Azure
(IaaS) o usar Azure SQL Database (PaaS). Las mismas consideraciones generalizadas se aplican a
otros sistemas de administración de bases de datos.

3.5 PRUEBA DE CONOCIMIENTOS

1. ¿Cuál de las siguientes afirmaciones es una característica de una base de datos relacional?

Todos los datos se deben almacenar como cadenas de caracteres.

Una fila de una tabla representa una sola entidad.

Las distintas filas de la misma tabla pueden contener columnas diferentes.

2. ¿Qué es un índice?

36
Es una estructura que permite buscar filas en una tabla rápidamente, utilizando un valor
indexado.

Es una tabla virtual basada en el conjunto de resultados de una consulta.

Es una estructura que consta de filas y columnas que se usan para almacenar datos.

3. ¿Cuál de las siguientes afirmaciones describe una de las ventajas de usar un servicio de PaaS en
lugar de un sistema local para ejecutar los sistemas de administración de bases de datos?

Mayores costos de administración cotidianos

Escalabilidad ilimitada

Funcionalidad limitada

Solución.

1. Una fila de una tabla representa una sola entidad. 2. Es una estructura que permite buscar filas en
una tabla rápidamente, utilizando un valor indexado. 3. Escalabilidad ilimitada.

37
MÓDULO 4. Elección de los servicios de Azure adecuados según los acuerdos de nivel de
servicio y el ciclo de vida del servicio

OBJETIVOS DE APRENDIZAJE

 Describir qué es un acuerdo de nivel de servicio (SLA) y por qué son importantes los SLA;

 Identificar los factores que pueden influir en un acuerdo de nivel de servicio, como el nivel de
servicio que se elija;

 Combinar acuerdos de nivel de servicio para calcular un SLA compuesto;

 Describir el ciclo de vida del servicio en Azure, incluido el acceso a las nuevas funcionalidades
que se incorporarán a Azure en el futuro.

4.1 introducción

En este módulo, obtendrá información sobre los acuerdos de nivel de servicio (SLA) en Azure y cómo

38
MÓDULO 4. Exploración de los conceptos sobre datos no relacionales

OBJETIVOS DE APRENDIZAJE

 Explorar las características de los datos no relacionales


 Definir los tipos de datos no relacionales
 Describir los tipos de bases de datos no relacionales y NoSQL.

4.1 INTRODUCCIÓN

Los datos pueden tener cualquier forma y tamaño, y se pueden usar con muchas finalidades. Para
almacenar estos datos, muchas organizaciones emplean bases de datos relacionales, pero hay veces
en las que el modelo relacional no es la estructura más adecuada. Puede que el formato de los datos
sea demasiado variado para modelarlos fácilmente como un conjunto de tablas relacionales. Por
ejemplo, puede que los datos contengan elementos como vídeo, audio, imágenes, información
temporal, grandes volúmenes de texto sin formato u otros tipos de datos que no son intrínsecamente
relacionales. Además, es posible que los requisitos de procesamiento de datos no sean los más
adecuados al intentar convertir estos datos al formato relacional. En estas situaciones, puede que lo
mejor sea usar repositorios no relacionales donde almacenar datos en su formato original, pero que
permitan un acceso rápido para almacenar y recuperar estos datos.

Imagine que es un ingeniero de datos que trabaja en Contoso, una organización que realiza grandes
operaciones de fabricación. La organización tiene que recopilar y almacenar información de una
amplia variedad de orígenes, como la supervisión en tiempo real del estado de la maquinaria de la
línea de producción, los datos de control de calidad de los productos, los registros de producción
históricos, los volúmenes de productos en existencias y los datos de inventario de materias primas.
Esta información es crítica para el funcionamiento de la organización. Le han pedido que averigüe
cuál es la mejor manera de almacenar esta información, para que se pueda almacenar rápidamente y
consultar de forma sencilla.

4.2 EXPLORACIÓN DE LAS CARACTERÍSTICAS DE LOS DATOS NO RELACIONALES

Las bases de datos relacionales son una herramienta excelente para almacenar y recuperar datos
que tienen una estructura conocida, con campos que se pueden definir de antemano. En algunas
situaciones, puede que no conozcamos del todo la estructura de los datos antes de que lleguen a la
base de datos, para registrarlos como un conjunto de filas y columnas en un formato tabular. Esto es
bastante habitual en los sistemas que consumen datos procedentes de una amplia variedad de
orígenes, como las canalizaciones de ingesta de datos. En estas situaciones, una base de datos no
relacional nos puede resultar muy útil.

39
En esta unidad, veremos con más detalle las características comunes de las bases de datos no
relacionales. Comprobaremos cómo permiten capturar datos rápidamente y modelar datos con
estructuras diferentes.

¿Cuáles son las características de los datos no relacionales?

Usamos las bases de datos para modelar algún aspecto del mundo real. A menudo, las entidades del
mundo real tienen estructuras tremendamente variables. Por ejemplo, en una base de datos de
comercio electrónico donde se almacena información sobre los clientes, ¿cuántos números de
teléfono tiene un cliente? Porque un cliente puede tener un número de teléfono fijo y otro móvil, pero
otro puede tener un número de empresa, un número particular adicional y, quizás, varios números
móviles. Del mismo modo, las direcciones de los clientes podrían no tener siempre el mismo formato:
las direcciones de los clientes en diferentes estados y regiones pueden contener elementos
diferentes, como en el caso de los códigos postales, por ejemplo.

En otro escenario, si se van a ingerir datos rápidamente, querremos capturar los datos y guardarlos
con mucha rapidez. El procesamiento de los datos y su manipulación en un conjunto de filas en tablas
diferentes de una base de datos relacional podría no ser adecuado en este caso; estas tareas se
pueden realizar en una fecha posterior. En el momento de la ingesta, solo necesitamos almacenar los
datos en su estado y formato originales.

Un aspecto clave de las bases de datos no relacionales es que permiten almacenar los datos de
forma muy flexible. Las bases de datos no relacionales no imponen un esquema en los datos, sino
que se centran en los datos en sí, no en su estructura. Este enfoque permite almacenar información
en un formato natural que refleje la manera en que se pueden consumir, consultar y usar.

En un sistema no relacional, la información de las entidades se almacena en colecciones o


contenedores, en lugar de en tablas relacionales. Dos entidades de la misma colección pueden tener
un conjunto de campos diferente, y no el conjunto de columnas habitual que encontramos en las
tablas relacionales. La falta de un esquema fijo significa que cada entidad debe describirse a sí
misma, algo que a menudo se consigue etiquetando cada campo con el nombre de los datos que
representa. Por ejemplo, una colección no relacional de entidades de cliente podría tener el siguiente
aspecto:

40
## Customer 1
ID: 1
Name: Mark Hanson
Telephone: [ Home: 1-999-9999999, Business: 1-888-8888888, Cell: 1-777-
7777777 ]
Address: [ Home: 121 Main Street, Some City, NY, 10110,
Business: 87 Big Building, Some City, NY, 10111 ]

## Customer 2
ID: 2
Title: Mr
Name: Jeff Hay
Telephone: [ Home: 0044-1999-333333, Mobile: 0044-17545-444444 ]
Address: [ UK: 86 High Street, Some Town, A County, GL8888, UK,
US: 777 7th Street, Another City, CA, 90111 ]

En este ejemplo, los campos van precedidos de un nombre. Estos campos pueden tener también
varios subcampos, también con nombres. En el ejemplo, los distintos subcampos se indican
poniéndolos entre corchetes.

Para agregar un cliente nuevo, hay que insertar una entidad con sus campos etiquetados de forma
clara. Una aplicación que consulte estos datos deberá estar preparada para analizar la información de
la entidad que recupera.

Las capacidades de recuperación de datos de una base de datos no relacional pueden variar. Cada
entidad debe tener un valor de clave única. Las entidades de una colección se suelen almacenar
ordenadas como pares clave-valor. En el ejemplo anterior, la clave única es el campo del
identificador. El tipo más sencillo de base de datos no relacional permite a una aplicación especificar
como criterio de consulta bien la clave única, bien un intervalo de claves. En nuestro ejemplo de los
clientes, la base de datos permitiría a una aplicación consultar clientes únicamente por el
identificador. Para filtrar los datos de otros campos, habría que recorrer toda la colección de
entidades, analizar cada entidad y, después, aplicar el criterio de consulta correspondiente a cada
entidad para hallar coincidencias. En el siguiente ejemplo, una consulta que captura los detalles de un
cliente por su identificador puede detectar rápidamente qué entidad se va a recuperar. Una consulta
que intente encontrar todos los clientes con una dirección en el Reino Unido tendría que recorrer
todas las entidades y, por cada entidad, examinar cada campo a cambio. Si la base de datos contiene
muchos millones de entidades, esta consulta podría tardar un tiempo considerable en ejecutarse.

41
Los sistemas no relacionales más avanzados admiten la indexación, de forma similar a los índices de
las bases de datos relacionales. Así pues, las consultas pueden usar el índice para identificar y
capturar datos basados en campos que no son de clave. Los sistemas no relacionales, como Azure
Cosmos DB (un sistema de administración de bases de datos no relacionales disponible en Azure),
admiten la indexación incluso cuando la estructura de los datos indexados puede ser distinta entre un
registro y otro. Para más información, vea Indexación en Azure Cosmos DB: introducción.

Al diseñar una base de datos no relacional, es importante conocer las capacidades del sistema de
administración de bases de datos y los tipos de consultas para las que dicho sistema debe tener
cabida.

*Nota: Muchas veces, las bases de datos no relacionales proporcionan su propio lenguaje
propietario para administrar y consultar los datos. Este lenguaje puede ser un procedimiento
(es decir, seguir un conjunto de comandos en orden) o puede ser parecido a SQL; depende
del modo en el que el sistema de administración de bases de datos implemente la base de
datos.

Identificación de casos de uso de bases de datos no relacionales

Las bases de datos no relacionales son perfectas para los siguientes escenarios:

 IoT y telemática. Estos sistemas suelen ingerir grandes cantidades de datos en ráfagas de
actividad frecuentes. Las bases de datos no relacionales pueden almacenar esta información
de forma muy rápida, lo que permite que servicios analíticos como Azure Machine Learning,
Azure HDInsight o Microsoft Power BI puedan hacer uso de esos datos. Además, los datos se
pueden procesar en tiempo real a través de funciones de Azure Functions que se activan a
medida que los datos van llegando a la base de datos.
 Comercio y marketing. Microsoft usa Cosmos DB en sus plataformas de comercio
electrónico propias que se ejecutan como parte de la Tienda Windows y Xbox Live. También

42
se usa en el sector comercial para almacenar los datos de catálogo y para el suministro de
eventos en las canalizaciones de procesamiento de pedidos.
 Juegos. El nivel de base de datos es un componente fundamental de las aplicaciones de
juegos. Los juegos modernos realizan el procesamiento de los elementos grafos en los
clientes de consola o dispositivos móviles, pero utilizan la nube para ofrecer contenido
personalizado y a medida, como estadísticas dentro del juego, integración con las redes
sociales y los marcadores de puntuaciones. A menudo, los juegos requieren latencias de un
solo milisegundo en las lecturas y escrituras para proporcionar una experiencia de juego
inmersiva. Una base de datos de un juego debe ser rápida y capaz de manejar los picos
masivos en la velocidad de las solicitudes cuando se inicia un nuevo juego y se actualizan las
características.
 Aplicaciones web y para dispositivos móviles. Una base de datos no relacional como
Azure Cosmos DB se usa normalmente en aplicaciones web y móviles, y está preparada para
modelar interacciones sociales, integrarse con servicios de terceros y crear experiencias
personalizadas completas. Se pueden usar SDK (kits de desarrollo de software) de
Cosmos DB con el fin de compilar aplicaciones para iOS y Android completas con el marco
Xamarin Framework, muy popular.

Una base de datos relacional reestructura los datos en un formato fijo diseñado para responder a
consultas específicas. Cuando es necesario ingerir datos muy rápidamente, o cuando la consulta es
desconocida y no está restringida, una base de datos relacional puede ser menos adecuada que una
base de datos no relacional.

4.3 DESCRIPCIÓN DE LOS TIPOS DE DATOS NO RELACIONALES

Los datos no relacionales se suelen dividir en dos categorías: semiestructurados y no estructurados.


En esta unidad, veremos qué significan estos términos y algunos ejemplos.

¿Qué son los datos semiestructurados?

Los datos semiestructurados son datos que contienen campos. No es necesario que los campos sean
los mismos en todas las entidades, sino que solo hay que definir aquellos que sean necesarios en
cada entidad. Las entidades de cliente que vimos en la unidad anterior son ejemplos de datos
semiestructurados. Estos datos deben tener un formato determinado que permita a una aplicación
analizarlos y procesarlos. Una forma habitual de darles formato es almacenar los datos de cada
entidad como un documento JSON. El término JSON significa "notación de objetos JavaScript"; es el
formato que las aplicaciones JavaScript usan para almacenar datos en memoria, si bien también se
puede usar para leer y escribir documentos de archivos.

Un documento JSON se encierra entre llaves ({ X }). Cada campo tiene un nombre (una etiqueta)
seguido de dos puntos y, después, el valor del campo. Los campos pueden contener valores simples
o subdocumentos (cada uno dentro de sus correspondientes llaves). Los campos también pueden
tener varios valores, contenidos en matrices y entre corchetes ([ ]). Los literales (o valores fijos) de un
campo van entrecomillados, mientras que los campos se separan con comas. En el siguiente ejemplo
se muestran los clientes de la unidad anterior con un formato de documento JSON:

43
{
"ID": "1",
"Name": "Mark Hanson",
"Telephone": [
{ "Home": "1-999-9999999" },
{ "Business": "1-888-8888888" },
{ "Cell": "1-777-7777777" }
],
"Address": [
{ "Home": [
{ "StreetAddress": "121 Main Street" },
{ "City": "Some City" },
{ "State": "NY" },
{ "Zip": "10110" }
] },
{ "Business": [
{ "StreetAddress": "87 Big Building" },
{ "City": "Some City" },
{ "State": "NY" },
{ "Zip": "10111" }
] }
]
}

{
"ID": "2",
"Title": "Mr",
"Name": "Jeff Hay",
"Telephone": [
{ "Home": "0044-1999-333333" },
{ "Mobile": "0044-17545-444444" }
],
"Address": [
{ "UK": [
{ "StreetAddress": "86 High Street" },
{ "Town": "Some Town" },
{ "County": "A County" },
{ "Postcode": "GL8888" },
{ "Region": "UK" }
] },
{ "US": [
{ "StreetAddress": "777 7th Street" },
{ "City": "Another City" },
{ "State": "CA" },
{ "Zip": "90111" }
] }
]
}

44
Podemos definir los campos que queramos; lo importante es que sigan la gramática de JSON.
Cuando una aplicación lee un documento, puede usar un analizador de JSON para dividir el
documento en campos de componentes y extraer datos concretos.

Otros formatos que podemos ver son Avro, ORC y Parquet:

 Avro es un formato basado en filas creado por Apache. Cada registro contiene un
encabezado que describe la estructura de los datos en ese registro. Este encabezado se
almacena como JSON. Los datos, por su parte, se almacenan como información binaria. Una
aplicación usa la información del encabezado para analizar los datos binarios y extraer los
campos que contienen. Avro es un formato fantástico para comprimir datos, y reducir los
requisitos de almacenamiento y ancho de banda de red. Este ejemplo es un subconjunto de la
información de encabezado del ejemplo anterior, con el formato Avro:
{
"type": "record",
"name": "contact_schema",
"fields": [
{
"name": "id",
"type": "int",
"doc": "ID of the contact"
},
{
"name": "name",
"type": "string",
"doc": "Name of the contact"
},
{
"name": "telephone",
"type": [
"null",
{
"type": "array",
"items": {
"type": "record",
"name": "contact_schema.telephone",
"fields": [
{
"name": "phoneid",
"type": "int"
},
{
"name": "phonetype",
"type": [ "null", "string" ]
}
]
}
}
]
}
]
} 45
 ORC (formato de columnas de filas optimizadas) organiza los datos en columnas en lugar de
en filas. Fue desarrollado por HortonWorks para optimizar las operaciones de lectura y
escritura en Apache Hive. Hive es un sistema de almacenamiento de datos que permite
resumir datos rápidamente y consultar conjuntos de datos muy grandes. Hive admite
consultas de tipo SQL de datos no estructurados. Un archivo ORC contiene franjas de datos.
Cada franja contiene los datos de una columna o de un conjunto de columnas. Una franja
contiene un índice de las filas de dicha franja, los datos de cada fila y un pie de página que
contiene información estadística (count, sum, max, min, etc.) de cada columna.
 Parquet es otro formato de datos en columnas creado por Cloudera y Twitter. Un archivo
Parquet contiene grupos de filas. Los datos de cada columna se almacenan juntos en el
mismo grupo de filas. Cada grupo de filas contiene uno o varios fragmentos de datos. Un
archivo Parquet incluye metadatos que describen el conjunto de filas que hay en cada
fragmento. Una aplicación puede usar estos metadatos para localizar rápidamente el
fragmento correcto para un conjunto determinado de filas y, a continuación, para recuperar los
datos de las columnas especificadas relativos a esas filas. Parquet destaca por almacenar y
procesar tipos de datos anidados de forma eficaz. Admite esquemas de compresión y
codificación muy eficaces.

¿Qué son los datos no estructurados?

Los datos no estructurados son datos que no contienen campos de forma natural. Algunos ejemplos
son los vídeos, los audios y demás transmisiones de contenido multimedia. Cada elemento es un blob
sin forma de datos binarios. En estos datos no se pueden buscar elementos específicos.

Lo más conveniente es almacenar datos de este tipo en almacenes diseñados específicamente para
el propósito que tienen. En Azure, probablemente almacenaríamos los datos de audio y de vídeo
como blobs en bloques en una cuenta de Azure Storage. (El término blob es el acrónimo en inglés de
"objeto binario grande"*). Un blob en bloques solo admite operaciones básicas de lectura y escritura.

Los archivos también se podrían considerar como una forma de datos no estructurados, aunque a
veces un archivo puede incluir metadatos que indican qué tipo de archivo es (una fotografía, un
documento de Word, una hoja de cálculo de Excel, etc.), el propietario y otros elementos que se
pueden almacenar como campos. Pese a lo anterior, el contenido principal de los archivos no está
estructurado.

4.4 DESCRIPCIÓN DE LOS TIPOS DE BASES DE DATOS NO RELACIONALES Y NOSQL

El término "datos no relacionales" abarca todo lo que sea algo que no está estructurado como un
conjunto de tablas. Existen muchos tipos diferentes de datos no estructurados, y esa información se
usa con una amplia variedad de propósitos. En consecuencia, hay muchos tipos diferentes de
sistemas de administración de bases de datos no relacionales, cada uno pensado para una serie
específica de escenarios.

En esta unidad, conoceremos algunos de los tipos más comunes de bases de datos no relacionales.

46
¿Qué es NoSQL?

Es posible que el término NoSQL aparezca al leer sobre las bases de datos no relacionales. NoSQL
es un término bastante impreciso que significa simplemente "no relacional". Existe cierta controversia
sobre si está pensado para querer decir no SQL o no solo SQL. Algunas bases de datos no
relacionales (Azure Cosmos DB, sin ir más lejos) admiten una versión de SQL adaptada para
documentos en lugar de tablas.

Las bases de datos NoSQL (no relacionales) se dividen por lo general en cuatro categorías:
almacenes de clave-valor, bases de datos de documentos, bases de datos de familia de columnas y
bases de datos de grafos. En las siguientes secciones hablaremos sobre estos tipos de bases de
datos NoSQL.

¿Qué es un almacén de pares clave-valor?

Un almacén de pares clave-valor es el tipo más sencillo (y, a menudo, el más rápido) de base de
datos NoSQL para insertar y consultar datos. Cada elemento de datos de un almacén de pares clave-
valor posee dos elementos: una clave y un valor. La clave identifica de forma única el elemento,
mientras que el valor contiene los datos del elemento. El valor es opaco para el sistema de
administración de bases de datos. Los elementos se almacenan ordenados según la clave.

*Nota: El término opaco significa que el sistema de administración de bases de datos solo ve
el valor como un bloque sin estructura. La aplicación es la única que sabe cómo están
estructurados los datos en el valor y qué campos contiene. Lo contrario
de opaco es transparente. Si los datos son transparentes, el sistema de administración de
bases de datos sabrá cómo se organizan los campos en los datos. Una tabla relacional es un
ejemplo de estructura transparente.

Una consulta especifica las claves para identificar los elementos que se van a recuperar. Los valores
no se pueden buscar. Una aplicación que recupera datos de un almacén de pares clave-valor es
responsable de analizar el contenido de los valores devueltos.

Las operaciones de escritura se limitan a únicamente inserciones y eliminaciones. En el caso de que


necesitemos actualizar un elemento, habrá que recuperar ese elemento, modificarlo en la memoria

47
(en la aplicación) y, después, escribirlo de nuevo en la base de datos sobrescribiendo el original (en
esencia, esto equivale a una eliminación y una inserción).

Lo más importante de un almacén de pares clave-valor es la capacidad de leer y escribir datos muy
rápidamente. Las funcionalidades de búsqueda son secundarias. Un almacén de pares clave-valor es
una opción excelente para la ingesta de datos, cuando un gran volumen de datos llega como una
secuencia continua y debe almacenarse inmediatamente.

El almacenamiento de tablas de Azure es un ejemplo de almacén de pares clave-valor. Cosmos DB


también implementa un almacén de pares clave-valor usando Table API

¿Qué es una base de datos de documentos?

Una base de datos de documentos representa el extremo opuesto en el espectro de NoSQL a un


almacén de pares clave-valor. En una base de datos de documentos, cada uno tiene un identificador
único, pero los campos de estos son transparentes para el sistema de administración de bases de
datos. Como vimos en la unidad anterior, las bases de datos de documentos suelen almacenar los
datos en formato JSON, o bien se pueden codificar con otros formatos, como XML, YAML, JSON y
BSON. Los documentos se pueden almacenar incluso como texto sin formato. Los campos de los
documentos se exponen al sistema de administración de almacenamiento, lo que permite que una
aplicación consulte y filtre los datos usando los valores de esos campos.

Normalmente, un documento contiene todos los


datos de una entidad. Los elementos que
constituyen una entidad son específicos de la
aplicación. Por ejemplo, una entidad puede
contener los detalles de un cliente, un pedido o una
combinación de ambos. Un solo documento puede
contener información que puede estar diseminada
por varias tablas relacionales de un sistema de
administración de bases de datos relacionales
(RDBMS).

Un almacén de documentos no requiere que todos


los documentos tengan la misma estructura. Este
enfoque de forma libre proporciona gran
flexibilidad. Las aplicaciones pueden almacenar
datos diferentes en documentos a medida que
cambian los requisitos empresariales.

Una aplicación puede recuperar documentos por


medio de la clave de documento, que es un
identificador único de dicho documento. Algunas
bases de datos de documentos crean
automáticamente la clave del documento. Otras le
permiten especificar un atributo del documento para usarlo como clave. La aplicación también puede

48
consultar documentos según el valor de uno o más campos. Algunas bases de datos de documentos
admiten la indexación para facilitar la búsqueda rápida de documentos basándose en uno o más
campos indexados.

Algunos sistemas de administración de bases de datos de documentos admiten actualizaciones en


contexto, lo que permite a una aplicación modificar los valores de campos específicos de un
documento sin tener que volver a escribir todo el documento. Otros sistemas de administración de
bases de datos de documentos (como Cosmos DB) solo pueden leer y escribir documentos
completos. En estos casos, una actualización reemplaza todo el documento por una versión nueva.
Este método ayuda a reducir la fragmentación de la base de datos, lo que, a su vez, se puede traducir
en una mejora del rendimiento.

La mayoría de las bases de datos de documentos ingerirán grandes volúmenes de datos con más
rapidez que una base de datos relacional, pero no son tan buenas como un almacén de pares clave-
valor para este tipo de procesamiento. Lo más importante de una base de datos de documentos es su
capacidad de consulta.

Azure Cosmos DB implementa un enfoque de base de datos de documentos en su Core (SQL) API.

¿Qué es una base de datos de familia de columnas?

Una base de datos de familia de columnas organiza los datos en filas y columnas. Entre los ejemplos
de esta estructura tenemos los archivos ORC y Parquet, que ya vimos en la unidad anterior.

En su forma más sencilla, una base de datos de familia de columnas puede ser muy parecida a una
base de datos relacional, al menos conceptualmente. La eficacia real de una base de datos de familia
de columnas radica en su enfoque desnormalizado para estructurar datos dispersos.

Por ejemplo, si necesitamos almacenar información sobre los clientes y sus direcciones en una base
de datos relacional (sin pensar en mantener los datos históricos, como vimos en la sección anterior),
podemos diseñar un esquema similar al mostrado aquí. En este diagrama se muestran también
algunos datos de ejemplo. En este ejemplo, el cliente 1 y el cliente 3 comparten la misma dirección, y
el esquema garantiza que esta información de dirección no va a estar duplicada. Se trata de un
método estándar de poner en marcha una relación uno a varios.

49
Tabla de clientes

Tabla de direcciones

El modelo relacional admite un enfoque muy generalizado para implementar este tipo de relación,
pero para hallar la dirección de un cliente determinado, una aplicación debe realizar una consulta que
combine dos tablas. Si esta es la consulta más común realizada por la aplicación, la sobrecarga
derivada de realizar esta operación de combinación puede llegar a ser bastante intensa cuando existe
un gran número de solicitudes y las tablas son grandes.

El propósito de una base de datos de familia de columnas es mantener a raya situaciones como esta
de forma eficaz. Podríamos pensar en una base de datos de familia de columnas como si contuviera
datos tabulares con filas y columnas, pero con la posibilidad de dividir esas columnas en grupos,
conocidos como familias de columnas. Cada familia de columnas contiene un conjunto de columnas
que tienen una relación lógica entre sí. En la siguiente imagen se muestra una forma de estructurar la
misma información que en la imagen anterior, pero usando una base de datos de familia de columnas
para agrupar los datos en dos familias de columnas que contienen información sobre el nombre y la
dirección del cliente. Existen otros modos de organizar las columnas, pero es recomendable
implementar las familias de columnas para optimizar las consultas más comunes que la aplicación
lleva a cabo. En este caso, las consultas que recuperan las direcciones de los clientes podrán
capturar los datos con menos lecturas de las que serían necesarias en la base de datos relacional
correspondiente, ya que podrán capturar los datos directamente de la familia de
columnas AddressInfo.

50
La ilustración anterior es más conceptual que física y está pensada para mostrar la estructura lógica
de los datos, y no cómo podrían estar organizados físicamente. Cada fila de una base de datos de
familia de columnas contiene una clave a través de la cual podemos capturar los datos de esa fila.

En la mayoría de las bases de datos de familia de columnas, las familias de columnas se almacenan
por separado. En nuestro ejemplo anterior, la familia de columnas CustomerInfo se puede almacenar
en un área de almacenamiento físico, y la familia de columnas AddressInfo, en otra, en un sencillo
formato de división en vertical. Debemos considerar esta estructura en términos de familias de
columnas, más que de filas. Los datos de una misma entidad que abarquen varias familias de
columnas tendrán la misma clave de fila en cada familia de columnas. Como alternativa al diseño
conceptual anterior, podemos visualizar los datos mostrados como la siguiente pareja de estructuras
físicas.

51
El sistema de administración de bases de datos de familia de columnas más usado es Apache
Cassandra. Azure Cosmos DB da cabida al método de familia de columnas mediante Cassandra API.

¿Qué es una base de datos de grafos?

Las bases de datos de grafos permiten almacenar entidades, pero lo más importante son las
relaciones que estas entidades mantienen entre sí. Una base de datos de grafos almacena dos tipos
de información: nodos (que pueden considerarse como instancias de entidades) y aristas (que
especifican las relaciones entre los nodos). Los nodos y las aristas pueden tener propiedades que
aporten información sobre ese nodo o esa arista (al igual que las columnas de una tabla). Además,
las aristas pueden tener una dirección, que indica la naturaleza de la relación.

El propósito de una base de datos de grafos es permitir que una aplicación pueda realizar
eficazmente consultas que recorran la red de nodos y aristas, así como analizar las relaciones entre
las entidades. En la siguiente imagen se muestra la base de datos del personal de una organización
estructurada como un grafo. Las entidades son los empleados y los departamentos de la
organización, y las aristas, las relaciones de subordinación y el departamento en el que los
empleados trabajan. En este grafo, las flechas de las aristas señalan la dirección de las relaciones.

Una estructura como esta hace que resulte sencillo realizar consultas como "Encontrar todos los
empleados que trabajan directa o indirectamente para Sarah" o "¿Quién trabaja en el mismo
departamento que John?". En el caso de los grafos de gran tamaño con una gran cantidad de

52
entidades y relaciones, se pueden realizar análisis muy complejos con mucha rapidez. Un gran
número de bases de datos de grafos proporcionan un lenguaje de consulta que sirve para recorrer
una red de relaciones de forma eficaz. A menudo, la misma información se puede almacenar en una
base de datos relacional, pero el SQL necesario para consultar esta información podría requerir
muchas operaciones de combinación, y subconsultas anidadas repetitivas y costosas.

Azure Cosmos DB admite bases de datos de grafos gracias a Gremlin API. Gremlin API es un
lenguaje estándar para crear y consultar grafos.

4.5 PRUEBA DE CONOCIMIENTOS

1. ¿Cuál de los siguientes servicios hay que usar para implementar una base de datos no relacional?

Azure Cosmos DB

Azure SQL Database

Gremlin API

2. ¿Cuál de las siguientes es una característica de las bases de datos no relacionales?

Las bases de datos no relacionales contienen tablas con registros de columna fija sin formato.

Las bases de datos no relacionales requieren el uso de técnicas de normalización de datos para
reducir la duplicación de datos.

Las bases de datos no relacionales no tienen esquemas, o bien tienen esquemas muy flexibles.

3. Estamos creando un sistema que supervisa la temperatura de un conjunto de bloques de oficinas y


que establece el aire acondicionado en cada habitáculo de cada bloque para mantener una
temperatura ambiente agradable. El sistema tiene que administrar el aire acondicionado en varios
miles de edificios distribuidos por el país o la región, y cada edificio suele contener al menos
100 habitáculos con aire acondicionado. ¿Qué tipo de almacén de datos NoSQL es el más adecuado
para capturar los datos de temperatura para permitir que se procesen rápidamente?

Almacén de pares clave-valor

Una base de datos de familia de columnas

Escribir las temperaturas en un blob en Azure Blob Storage

53
Solución

1. Azure Cosmos DB 2. Las bases de datos no relacionales no tienen esquemas, o bien tienen
esquemas muy flexibles. 3. Almacén de pares clave-valor.

54
MÓDULO 5. Exploración de los conceptos de análisis de datos

OBJETIVOS DE APRENDIZAJE

 Obtener información sobre el procesamiento y la ingesta de datos


 Explorar la visualización de datos
 Explorar los análisis de datos

5.1 INTRODUCCIÓN

Las empresas de éxito toman decisiones fundamentadas para encontrar nuevas oportunidades,
identificar debilidades, aumentar la eficacia y mejorar la satisfacción del cliente. El análisis de datos
es el proceso por el que se examinan los datos sin procesar para detectar tendencias y se detecta
información usada a fin de formular preguntas relacionadas con el rendimiento de la organización y
responderlas.

Por ejemplo, los complejos turísticos y los casinos pueden combinar datos de visitas de clientes
anteriores a fin de determinar el mejor momento para ejecutar actividades y juegos específicos. Un
analista de datos podría tomar datos como el gasto de los clientes y buscar correlaciones con otros
factores, como el tiempo, eventos regionales, o incluso la presencia o ausencia de incentivos, como la
comida y la bebida.

Otro ejemplo es el sector sanitario. Existe una gran cantidad de datos en el sector sanitario, incluidos
los registros de pacientes y la información de los seguros. Dado el volumen, la administración de
estos datos puede ser difícil. El análisis de datos permite una visión completa de los datos y puede
conducir a un diagnóstico o un plan de tratamiento más rápido.

En este módulo se explorarán los elementos clave implicados en el análisis de datos. Observará la
recopilación de datos, el procesamiento de estos datos para generar información y la visualización de
los resultados para detectar tendencias.

5.2 DESCRIPCIÓN DEL PROCESAMIENTO Y LA INGESTA DE DATOS

El análisis de datos se encarga de tomar datos y encontrar información significativa e inferencias a


partir de ellos. Esto puede ser tan diverso como seleccionar la gama ideal de productos para un
distribuidor o elegir los mejores candidatos para recibir una vacuna de una empresa de biotecnología.

Por ejemplo, en una empresa, el análisis de datos podría encargarse de tomar los datos que produce
la organización y usarlos para presentar una imagen de cómo funciona la organización y qué puede
hacer para mantener el rendimiento empresarial. El análisis de datos puede ayudarle a identificar las
fortalezas y las debilidades de su organización, y permite tomar decisiones empresariales adecuadas.

55
Los datos que usa una empresa pueden proceder de muchos orígenes. Podría existir una masa de
datos históricos para revisar con atención y datos actualizados que no paran de llegar en todo
momento. Estos datos pueden ser el resultado de las compras de los clientes, las transacciones
bancarias, los movimientos de precios de las acciones, los datos meteorológicos en tiempo real, los
dispositivos de supervisión o incluso las cámaras. En una solución de análisis de datos, se pueden
combinar estos datos y construir un almacenamiento de datos que se pueda usar para formular
preguntas sobre las operaciones empresariales (y responderlas). La compilación de un
almacenamiento de datos requiere que se puedan capturar los datos que necesita y transformarlos en
un formato adecuado. Después, puede usar las herramientas de análisis y las visualizaciones para
examinar la información e identificar las tendencias y sus causas.

*Nota: La transformación es el proceso por el que los datos sin procesar se transforman y se
asignan en un formato más útil para el análisis. Puede implicar la escritura de código para
capturar, filtrar, limpiar, combinar y agregar datos de muchos orígenes.

En esta unidad, obtendrá información sobre dos fases importantes del análisis de datos: la ingesta de
datos y el procesamiento de datos. En el diagrama siguiente se muestra cómo encajan estas fases.

¿Qué es la ingesta de datos?

La ingesta de datos es el proceso de obtener e importar datos para su uso inmediato o


almacenamiento en una base de datos. Los datos pueden llegar como un flujo continuo o pueden
venir en lotes, en función del origen. El propósito del proceso de ingesta es capturar estos datos y
almacenarlos. Estos datos sin procesar se pueden conservar en un repositorio, como un sistema de

56
administración de bases de datos, un conjunto de archivos o algún otro tipo de almacenamiento
rápido y de fácil acceso.

El proceso de ingesta también puede realizar el filtrado. Por ejemplo, la ingesta podría rechazar datos
sospechosos, dañados o duplicados. Los datos sospechosos podrían ser datos procedentes de un
origen no previsto. Los datos dañados o duplicados podrían deberse a un error de dispositivo, a un
error de transmisión o a una alteración.

También es posible realizar algunas transformaciones en esta fase, convirtiendo los datos en un
formato estándar para su posterior procesamiento. Por ejemplo, puede que quiera volver a formatear
todos los datos de fecha y hora para que usen las mismas representaciones de fecha y hora, y
convertir todos los datos de medida para que usen las mismas unidades. Sin embargo, estas
transformaciones deben realizarse rápidamente. En esta fase no intente ejecutar cálculos complejos
ni agregaciones en los datos.

¿Qué es el procesamiento de datos?

La fase de procesamiento de datos se produce una vez que se han ingerido y recopilado los datos. El
procesamiento de datos toma los datos en su formato sin procesar, los limpia y los convierte en un
formato que aporta más significado (tablas, gráficos, documentos, etc.). El resultado es una base de
datos de aquellos datos que se pueden usar para realizar consultas y generar visualizaciones, lo que
les da la forma y el contexto necesarios para que los equipos los interpreten y los empleados de toda
la organización los usen.

*Nota: La limpieza de datos es un término generalizado que abarca una serie de acciones,
como la eliminación de anomalías y la aplicación de filtros y transformaciones, que durante la
fase de ingesta tardarían mucho en ejecutarse.

El objetivo del procesamiento de datos es convertir los datos sin procesar en uno o varios modelos
empresarial. Un modelo empresarial describe los datos en términos de entidades empresariales
significativas, y puede agregar elementos de forma conjunta y resumir la información. La fase de
procesamiento de datos también puede generar modelos predictivos u otros modelos de análisis a
partir de los datos. El procesamiento de datos puede ser complejo, y podría implicar scripts
automatizados y herramientas como Azure Databricks, Azure Functions y Azure Cognitive Services
para examinar y volver a formatear los datos, así como generar modelos. Un analista de datos podría
usar aprendizaje automático para ayudar a determinar las tendencias futuras en función de estos
modelos.

57
¿Qué es ELT y ETL?

El mecanismo de procesamiento de datos puede adoptar dos enfoques para recuperar los datos
ingeridos, procesar estos datos con el fin de transformarlos y generar modelos y, después, guardar
los datos y los modelos transformados. Estos enfoques se conocen como ETL y ELT.

ETL son las siglas en inglés de Extracción, transformación y carga. Los datos sin procesar se
recuperan y transforman antes de guardarse. Los pasos de extracción, transformación y carga se
pueden realizar como una canalización de operaciones continua. Es adecuado para sistemas que
solo requieren modelos sencillos, con poca dependencia entre los elementos. Por ejemplo, este tipo
de proceso se usa a menudo para las tareas básicas de limpieza de datos, la desduplicación de datos
y la vuelta a formatear el contenido de campos individuales.

58
Un enfoque alternativo es ELT. ELT son las siglas en inglés de Extracción, carga y transformación. El
proceso difiere de ETL en que los datos se almacenan antes de transformarse. El motor de
procesamiento de datos puede adoptar un enfoque iterativo, recuperando y procesando los datos
desde el almacenamiento, antes de escribir los datos y los modelos transformados de nuevo en el
almacenamiento. ELT es más adecuado para construir modelos complejos que dependen de varios
elementos de la base de datos, a menudo con procesamiento por lotes frecuente.

59
ELT es un enfoque escalable adecuado para la nube, ya que puede emplear la amplia potencia de
procesamiento disponible. El enfoque de ETL más orientado a flujos hace más hincapié en el
rendimiento. Sin embargo, ETL puede filtrar los datos antes de almacenarlos. De esta manera, ETL
puede ayudar con la privacidad y el cumplimiento de los datos, eliminando los datos confidenciales
antes de que lleguen a los modelos de datos analíticos.

Azure proporciona varias opciones que se pueden usar para implementar los enfoques de ELT y ETL.
Por ejemplo, si almacena datos en Azure SQL Database, puede usar SQL Server Integration
Services. Integration Services puede extraer y transformar datos de muchos orígenes distintos, como
archivos de datos XML, archivos planos y orígenes de datos relacionales, y, posteriormente, cargarlos
en uno o varios destinos.

Esta es una tabla simple en la que se muestran las ventajas de ETL y ELT en la mayoría de los
casos.

Otro enfoque más generalizado es usar Azure Data Factory. Azure Data Factory es un servicio de
integración de datos basado en la nube que permite crear flujos de trabajo basados en datos para
coordinar el movimiento y la transformación de datos a gran escala. Con Azure Data Factory, puede
crear y programar flujos de trabajo basados en datos (llamados canalizaciones) que pueden ingerir
datos de distintos almacenes de datos. Puede compilar procesos ETL complejos que transformen
datos visualmente con flujos de datos o mediante el uso de servicios de proceso, como Azure
HDInsight Hadoop, Azure Databricks y Azure SQL Database.

5.3 EXPLORACIÓN DE LA VISUALIZACIÓN DE DATOS

Un modelo empresarial puede contener una gran cantidad de información. El propósito de generar un
modelo como este es ayudarle a razonar en torno a la información que contiene, formular preguntas
y, con suerte, obtener respuestas que pueden ayudarle a impulsar su negocio.

En esta unidad se describen algunas de las técnicas que puede usar para analizar y comprender la
información de los modelos.

60
¿Qué es la creación de informes?

La creación de informes es el proceso de organizar los datos en resúmenes informativos para


supervisar el rendimiento de las distintas áreas de una organización. La creación de informes ayuda a
las empresas a supervisar sus negocios en línea y saber cuándo quedan los datos fuera de los
intervalos esperados. Una buena creación de informes debería plantear preguntas acerca de la
empresa a partir de sus usuarios finales. La creación de informes muestra lo que ha sucedido,
mientras que el análisis se centra en explicar por qué ha sucedido y qué puede hacer al respecto.

¿Qué es la inteligencia empresarial?

El término inteligencia empresarial (BI) hace referencia a las tecnologías, aplicaciones y prácticas
disponibles para la recopilación, integración, análisis y presentación de información empresarial. El
propósito de la inteligencia empresarial es respaldar una mejor toma de decisiones.

Los sistemas de inteligencia empresarial proporcionan vistas históricas, actuales y predictivas de


operaciones empresariales, la mayoría de las veces mediante el uso de los datos que se han
recopilado en un almacenamiento de datos y, en ocasiones, con el trabajo realizado a partir de datos
operativos activos. Los elementos de software admiten la creación de informes, análisis segmentados
de tablas dinámicas, visualización y minería de datos estadísticos. Las aplicaciones abordan las
ventas, la producción, las finanzas y muchos otros orígenes de datos empresariales con fines que
incluyen la administración del rendimiento empresarial. A menudo se recopila información sobre otras
compañías del mismo sector para obtener una comparación. Este proceso de comparación con otras
compañías del mismo sector se conoce como análisis comparativo.

¿Qué es la visualización de datos?

La visualización de datos es la representación gráfica de la información y los datos. Mediante el uso


de elementos visuales como gráficos, grafos y mapas, las herramientas de visualización de datos
proporcionan una manera accesible de detectar y comprender tendencias, valores atípicos y patrones
en los datos. Si usa Azure, la herramienta de visualización de datos más popular es Power BI.

Con Power BI, puede conectarse a varios orígenes de datos diferentes y combinarlos en un modelo
de datos. Este modelo de datos permite compilar objetos visuales y colecciones de objetos visuales
que puede compartir como informes, con otras personas de su organización.

Exploración de las opciones de visualización para representar datos

La visualización de datos permite centrarse en el significado de los datos, en lugar de examinar los
propios datos. Una buena visualización de datos permite detectar rápidamente tendencias, anomalías
y posibles incidencias. Las formas más comunes de visualizaciones son las siguientes:

 Gráficos de barras y de columnas: los gráficos de barras y de columnas permiten ver cómo
cambia un conjunto de variables en distintas categorías. Por ejemplo, en el primer gráfico que
aparece a continuación se muestra cómo las ventas de un par de minoristas ficticios varían en
función de la ubicación de las tiendas.

61
En este gráfico se muestra cómo varían las ventas por mes.

 Gráficos de líneas: los gráficos de líneas resaltan la forma general de toda una serie de
valores, normalmente a lo largo del tiempo.

62
 Matriz: un objeto visual de matriz es una estructura tabular que resume los datos. A menudo,
los diseñadores de informes incluyen matrices en informes y paneles para permitir a los
usuarios seleccionar uno o varios elementos (filas, columnas, celdas) de la matriz para realizar
el resaltado cruzado de otros objetos visuales de una página del informe.

 Elementos influyentes clave: un gráfico de elementos influyentes clave muestra los


colaboradores principales de un resultado o valor seleccionado. Los elementos influyentes
clave son una excelente opción para ayudarle a comprender los factores que influyen en una
métrica clave. Por ejemplo, qué influye para que los clientes realicen un segundo pedido o por
qué las ventas fueron tan altas el junio pasado.

63
 Gráfico de rectángulos: son gráficos de rectángulos coloreados, cuyo tamaño representa el
valor relativo de cada elemento. Pueden ser jerárquicos, con rectángulos anidados en los
rectángulos principales.

64
 Dispersión: un gráfico de dispersión muestra la relación entre dos valores numéricos.
Un gráfico de burbujas es un gráfico de dispersión que reemplaza los puntos de datos por
burbujas y el tamaño de la burbuja representa una tercera dimensión de datos adicional.

Un gráfico de trazados de puntos es similar a un gráfico de burbujas y a un gráfico de


dispersión, pero puede trazar datos de categorías a lo largo del eje X.

65
 Mapa coroplético: si tiene datos geográficos, puede utilizar un mapa coroplético para mostrar
cómo un valor varía en proporción en una geografía o región. Puede ver las diferencias
relativas gracias al sombreado, que varía de claro (menos frecuente o menor) a oscuro (más
frecuente o mayor).

5.4 EXPLORACIÓN DE LOS ANÁLISIS DE DATOS

El análisis de datos se ocupa del examen, transformación y organización de los datos, de tal forma
que pueda estudiarlos y extraer información útil de ellos. El análisis de datos es una disciplina que
abarca toda la gama de tareas de administración de datos. Estas tareas no solo incluyen el análisis,
sino también la recopilación, la organización y el almacenamiento de datos, así como todas las
herramientas y técnicas que se usan para ello.

Análisis de datos es un término comodín que cubre una variedad de actividades, cada una con su
propio enfoque y objetivos. Estas actividades se pueden clasificar como análisis descriptivo, de
diagnóstico, predictivo, prescriptivo y cognitivo.

66
En esta unidad, obtendrá información sobre estas categorías de análisis de datos.

Análisis descriptivo

El análisis descriptivo ayuda a responder preguntas sobre lo que ha sucedido, en función de datos
históricos. Las técnicas de análisis descriptivo resumen grandes conjuntos de datos para describir
resultados para las partes interesadas.

Mediante el desarrollo de KPI (indicadores clave de rendimiento), estas estrategias pueden facilitar el
seguimiento del éxito o el fracaso de los objetivos clave. En muchos sectores se usan métricas como
la rentabilidad de la inversión (ROI). Se desarrollan métricas especializadas para realizar el
seguimiento del rendimiento en industrias específicas.

Entre los ejemplos de análisis descriptivo se incluye la generación de informes para proporcionar una
visión de los datos financieros y de ventas de una organización.

Análisis de diagnóstico

El análisis de diagnóstico ayuda a responder preguntas sobre las causas de algo. Las técnicas de
análisis de diagnóstico complementan el análisis descriptivo más básico. Toman los resultados del
análisis descriptivo y profundizan en la búsqueda de la causa. Los indicadores de rendimiento se
investigan aún más para descubrir por qué han sido mejores o peores. Esto se suele realizar en tres
pasos:

Identificación de anomalías en los datos. Pueden ser cambios inesperados en una métrica o en un
mercado determinado.

Recopilación de datos relacionados con estas anomalías.

Uso de técnicas estadísticas para detectar relaciones y tendencias que expliquen estas anomalías.

Análisis predictivo

El análisis predictivo ayuda a responder a preguntas sobre lo que ocurrirá en el futuro. Las técnicas
de análisis predictivo usan datos históricos para identificar tendencias y determinar la probabilidad de
que se repitan. Las herramientas de análisis predictivo proporcionan conclusiones valiosas sobre lo
que puede ocurrir en el futuro. Engloban diversas técnicas estadísticas y de aprendizaje automático,
como las de redes neuronales, árboles de decisión y regresión.

Análisis prescriptivo

El análisis prescriptivo ayuda a responder preguntas sobre las acciones que se deben llevar a cabo
para lograr un objetivo. Mediante las conclusiones del análisis predictivo, se pueden tomar decisiones
basadas en datos. Esta técnica permite que, en caso de incertidumbre, las empresas tomen
decisiones fundamentadas. Las técnicas de análisis prescriptivo dependen de estrategias de
aprendizaje automático para buscar patrones en conjuntos de datos de gran tamaño. Mediante el
análisis de eventos y decisiones anteriores, se puede calcular la probabilidad de otros resultados.

67
Análisis cognitivo

El análisis cognitivo intenta obtener inferencias a partir de datos y patrones existentes, derivar
conclusiones en función de KB existentes y, después, agregar estos resultados a la KB para futuras
inferencias, un bucle de comentarios de autoaprendizaje. El análisis cognitivo ayuda a saber lo que
podría ocurrir si cambiaran las circunstancias y cómo se podrían controlar estas situaciones.

Las inferencias no son consultas estructuradas basadas en una base de datos de reglas, sino
supuestos no estructurados que se recopilan de varios orígenes y se expresan con distintos grados
de confianza. El análisis cognitivo eficaz depende de algoritmos de aprendizaje automático. Usa
varios conceptos de NLP (Procesamiento de lenguaje natural) para entender orígenes de datos
desaprovechados anteriormente, como los registros de conversaciones de centros de llamadas y
revisiones de productos.

Teóricamente, al aprovechar las ventajas de la informática en paralelo y distribuida masiva, y los


costos decrecientes del almacenamiento de datos y de la capacidad de computación, no hay ningún
límite en el desarrollo cognitivo que estos sistemas pueden lograr.

5.5 PRUEBA DE CONOCIMIENTOS

1. ¿Qué es la ingesta de datos?

El proceso de transformar datos sin procesar en modelos que contienen información significativa.

Analizar datos para detectar anomalías.

Capturar flujos de datos sin procesar de varios orígenes y almacenarlos.

2. ¿Cuál de los objetos visuales siguientes muestra los colaboradores principales de un resultado o
valor seleccionado?

Elementos influyentes clave

Gráfico de columnas y barras

Gráfico de matriz

3. ¿Qué tipo de análisis ayuda a responder preguntas sobre lo que ha sucedido en el pasado?

Análisis descriptivo

Análisis prescriptivo

68
Análisis predictivo

Solución.

1. Capturar flujos de datos sin procesar de varios orígenes y almacenarlos. 2. Elementos influyentes
clave 3. Análisis descriptivo

69
PARTE 2. USO DE LOS DATOS RELACIONALES EN AZURE

MÓDULO 1. Exploración de los servicios de datos relacionales en Azure

OBJETIVOS DE APRENDIZAJE

 Identificar los servicios de datos relacionales de Azure


 Explorar las consideraciones a tener en cuenta al elegir un servicio de datos relacionales

1.1 INTRODUCCIÓN

Una base de datos es una colección de datos. Las bases de datos pueden ser algo tan simple como
una hoja de cálculo de escritorio o tan complejo como un sistema global que contiene petabytes de
datos muy estructurados. Los datos se pueden estructurar de muchas maneras distintas. Un enfoque
común consiste en almacenar los datos en formato tabular, con filas y columnas. Además, se pueden
definir relaciones entre tablas. Estas bases de datos se denominan bases de datos relacionales.

Las bases de datos también pueden ser semiestructuradas o no estructuradas, según si contienen
una gran cantidad de datos procesados parcialmente o sin procesar. Normalmente, estas bases de
datos se conocen como no relacionales. Las bases de datos se administran mediante un sistema de
administración de bases de datos (DBMS). El DBMS controla los aspectos físicos de una base de
datos, como dónde y cómo se almacena, quién puede acceder a ella y cómo se garantiza que esté
disponible cuando sea necesario.

Muchas organizaciones dependen de la información almacenada en sus bases de datos para tomar
decisiones empresariales críticas. En el pasado, estas organizaciones ejecutaban sus DBMS de
forma local. Pero este enfoque requiere que la organización mantenga su propia infraestructura de
hardware. Por eso un número creciente de empresas está migrando sus bases de datos a la nube,
donde los costos de configuración y de mantenimiento de la infraestructura son muy reducidos.

Imagine que es un administrador de base de datos de la empresa mayorista Wide World Importers.
Usted es responsable del diseño y el mantenimiento de las bases de datos, así como de proporcionar
información a los directivos y de crear listas de clientes para el departamento de marketing. Tiene una
base de datos de SQL Server que depende en gran medida de los procedimientos almacenados y de
otras características de base de datos avanzadas, como los servidores vinculados. La base de datos
está ubicada en su red interna. Le han pedido que se encargue de que esté disponible globalmente
para los partners de todo el mundo.

*Nota: Un procedimiento almacenado es un bloque de código que se ejecuta dentro de la base


de datos. Las aplicaciones a menudo usan procedimientos almacenados porque están
optimizados para ejecutarse en el entorno de la base de datos y pueden acceder a los datos

70
con mucha rapidez. Un servidor vinculado es la conexión de un servidor de bases de datos a
otro. SQL Server puede usar servidores vinculados para ejecutar consultas en un servidor que
puede incluir datos recuperados de otros servidores. Estas consultas se conocen
como consultas distribuidas.

En este módulo, explorará las opciones disponibles al elegir una plataforma de datos relacionales
para hospedar una base de datos en Azure.

1.2 SERVICIOS DE DATOS RELACIONALES DE AZURE

Azure ofrece una gama de opciones para ejecutar un sistema de administración de bases de datos en
la nube. Por ejemplo, puede migrar sus sistemas locales a una colección de máquinas virtuales de
Azure. Este enfoque requiere que administre cuidadosamente su DBMS. De forma alternativa, puede
aprovechar los diversos servicios disponibles de datos relacionales de Azure. Estos servicios de
datos administran el DBMS automáticamente, lo que le permite centrarse en los datos que contienen
y las aplicaciones que los usan.

Definición de IaaS, PaaS y SaaS

Antes de profundizar en Azure Data Services, debe conocer algunos de los términos comunes que se
usan para describir las distintas formas en que se puede hospedar una base de datos en Azure.

IaaS es el acrónimo de infraestructura como servicio. Azure le permite crear una infraestructura virtual
en la nube que imita la manera en que podría funcionar un centro de datos local. Puede crear un
conjunto de máquinas virtuales, conectarlas entre sí mediante una red virtual y agregar diversos
dispositivos virtuales. Usted se encarga de instalar y configurar el software, como el DBMS, en estas
máquinas virtuales. En muchos sentidos, este enfoque es similar a la forma en que se ejecutan los
sistemas dentro de una organización, salvo que no tiene que preocuparse por comprar ni mantener el
hardware.

*Nota: Las redes virtuales de Azure son una representación de su propia red en la nube. Una
red virtual permite conectar máquinas virtuales y servicios de Azure de forma muy similar a
como usaríamos una red física local. Azure garantiza que cada red virtual está aislada de
otras redes virtuales creadas por otros usuarios y de Internet. Además, Azure le permite
especificar qué máquinas (reales o virtuales) y qué servicios tienen permiso para acceder a los
recursos de la red virtual, y qué puertos pueden usar.

PaaS corresponde a plataforma como servicio. En lugar de crear una infraestructura virtual y de
instalar y administrar el software de base de datos, una solución de PaaS hace esto
automáticamente. Usted especifica los recursos que necesita (según el tamaño que cree que tendrán
las bases de datos, el número de usuarios y el rendimiento que necesita) y Azure crea
automáticamente las máquinas virtuales, las redes y otros dispositivos necesarios. Normalmente se
puede escalar o reducir verticalmente (aumentar o disminuir el tamaño y el número de recursos) de
forma rápida, ya que el volumen de los datos y la cantidad de trabajo que se realiza varían. Azure se

71
encarga de este escalado, por lo que no necesita agregar o quitar manualmente las máquinas
virtuales ni realizar ninguna otra configuración.

SaaS es la abreviatura de software como servicio. Los servicios de SaaS suelen ser paquetes de
software específicos que se instalan y ejecutan en hardware virtual en la nube. Los paquetes de SaaS
suelen ser aplicaciones hospedadas en lugar de un software más generalizado, como un DBMS. Los
paquetes de SaaS comunes disponibles en Azure incluyen Microsoft 365 (anteriormente Office 365).

¿Qué es Azure Data Services?

Azure Data Services pertenece a la categoría de PaaS. Se trata de servicios que son una serie de
DBMS administrados por Microsoft en la nube. Cada servicio de datos se encarga de la configuración,
la administración diaria, las actualizaciones de software y la seguridad de las bases de datos que
hospeda. Lu único que tiene que hacer usted es crear sus bases de datos bajo el control del servicio
de datos.

Azure Data Services está disponible para varios sistemas comunes de administración de bases de
datos relacionales. El servicio más conocido es Azure SQL Database. Otros servicios disponibles
actualmente son servidores de Azure Database for MySQL, servidores de Azure Database for
MariaDB y servidores de Azure Database for PostgreSQL. Las unidades restantes de este módulo
describen las características que proporcionan estos servicios.

72
*Nota: Microsoft también proporciona servicios de datos para sistemas de administración de
bases de datos no relacionales, como Cosmos DB.

El uso de Azure Data Services reduce la cantidad de tiempo que se necesita invertir para administrar
un DBMS. Pero estos servicios también pueden limitar las tareas de administración personalizadas
que puede realizar, ya que llevar a cabo algunas tareas manualmente podría poner en peligro la
manera en que se ejecuta el servicio. Por ejemplo, algunos DBMS permiten instalar software
personalizado en una base de datos o ejecutar scripts como parte de una operación de base de
datos. Es posible que este software no sea compatible con el servicio de datos y permitir que una
aplicación ejecute un script de una base de datos puede afectar a la seguridad del servicio. Debe
estar preparado para trabajar con estas restricciones.

Además de reducir la carga de trabajo administrativa, Azure Data Services garantiza que las bases de
datos están disponibles durante al menos el 99,99 % del tiempo.

Existen costos asociados con la ejecución de una base de datos en Azure Data Services. El precio
base de cada servicio abarca la infraestructura subyacente y las licencias, junto con los cargos de
administración. Además, estos servicios están diseñados para estar siempre activos. Esto significa
que no se puede apagar una base de datos y reiniciarla más adelante.

No todas las características de un sistema de administración de bases de datos están disponibles en


Azure Data Services. Esto se debe a que Azure Data Services realiza la tarea de administrar el
sistema y mantenerlo en ejecución usando el hardware que hay en un centro de datos de Azure.
Exponer algunas funciones administrativas podría hacer que la plataforma subyacente fuera
vulnerable a un uso indebido e incluso crear algunos problemas de seguridad. Por lo tanto, no tiene
ningún control directo sobre la plataforma en la que se ejecutan los servicios. Si necesita más control
del que permite Azure Data Services, puede instalar el sistema de administración de bases de datos
en una máquina virtual que se ejecute en Azure. En la unidad siguiente se examina este enfoque con
más detalle para SQL Server, aunque se aplican los mismos problemas al resto de sistemas de
administración de bases de datos compatibles con Azure Data Services.

En la imagen siguiente se resaltan las diferentes formas en que puede ejecutar un DBMS como
SQL Server, empezando por un sistema local en la esquina superior derecha y terminando con PaaS

73
en la esquina inferior izquierda. En el diagrama se muestran las ventajas de pasar a un enfoque de
PaaS.

1.3 SQL SERVER EN AZURE VIRTUAL MACHINES

Microsoft SQL Server es un DBMS relacional conocido. Tiene una larga historia y características que
facilitan la administración de bases de datos a organizaciones de todos los tamaños. En el pasado,
las organizaciones ejecutaban SQL Server de forma local, pero ahora muchas organizaciones buscan
cambiar a operaciones en línea para aprovechar los servicios disponibles en la nube. SQL Server
ofrece varias maneras de ejecutar una base de datos en Azure. En esta unidad, veremos cómo
migrar SQL Server a una instancia de Azure Virtual Machines.

¿Qué es SQL Server en Azure Virtual Machines?

SQL Server en Virtual Machines le permite usar versiones completas de SQL Server en la nube sin
tener que administrar ningún hardware local. Este es un ejemplo del enfoque de IaaS.

74
Al ejecutar SQL Server en una máquina virtual de Azure, se replica la base de datos que se ejecuta
en un hardware local real. La migración desde el sistema local a una máquina virtual de Azure no es
diferente a migrar las bases de datos de un servidor local a otro.

En el escenario de ejemplo descrito en la introducción, una base de datos ejecuta procedimientos


almacenados y scripts como parte de la carga de trabajo de la base de datos. Si estos procedimientos
almacenados y estos scripts dependen de características que están restringidas siguiendo un
enfoque de PaaS, entonces, puede ser una buena opción ejecutar SQL Server en sus propias
máquinas virtuales. Pero sigue siendo responsable de mantener el software de SQL Server y de
realizar las diversas tareas administrativas necesarias para mantener la base de datos en ejecución
día a día.

Este enfoque es adecuado para las migraciones y aplicaciones que requieren acceso a
características del sistema operativo que podrían no admitirse en el nivel de PaaS. Las máquinas
virtuales de SQL están listas para migrar mediante lift-and-shift las aplicaciones existentes que
requieren una migración rápida a la nube con unos cambios mínimos.

*Nota: El término lift-and-shift se refiere a la manera en que se puede migrar una base de
datos directamente desde un servidor local a una máquina virtual de Azure sin necesidad de
realizar cambios en ella. Las aplicaciones que estaban conectadas previamente a la base de
datos local se pueden volver a configurar rápidamente para conectarse a la base de datos que
se ejecuta en la máquina virtual, de lo contrario, deben permanecer sin cambios.

Casos de uso

Este enfoque está optimizado para migrar aplicaciones existentes a Azure o para extender las
aplicaciones locales existentes a la nube en implementaciones híbridas.

*Nota: Una implementación híbrida es un sistema en el que una parte de la operación se


ejecuta de forma local, y otra parte, en la nube. La base de datos podría formar parte de un

75
sistema más grande que se ejecuta de forma local, aunque los elementos de la base de datos
podrían estar hospedados en la nube.

Puede usar SQL Server en una máquina virtual para desarrollar y probar aplicaciones de SQL Server
tradicionales. Con una máquina virtual, tiene todos los derechos administrativos sobre el sistema
operativo y el DBMS. Es una opción perfecta cuando una organización ya tiene recursos de TI
disponibles para mantener las máquinas virtuales.

Estas funcionalidades le permiten:

 Crear escenarios rápidos de desarrollo y de pruebas cuando no quiera comprar hardware local
de SQL Server que no es de producción.
 Tener todo preparado para migrar mediante lift-and-shift las aplicaciones existentes que
requieren una migración rápida a la nube con cambios mínimos o sin cambios.
 Escalar verticalmente la plataforma en la que se ejecuta SQL Server asignando más memoria,
potencia de CPU y espacio en disco a la máquina virtual. Puede cambiar rápidamente el
tamaño de una máquina virtual de Azure sin tener que reinstalar el software que se ejecuta en
ella.

Ventajas empresariales

La ejecución de SQL Server en máquinas virtuales le permite satisfacer necesidades empresariales


exclusivas y diversas a través de una combinación de implementaciones locales y hospedadas en la
nube, a la vez que usa el mismo conjunto de productos de servidor, herramientas de desarrollo y
conocimientos en estos entornos.

No siempre es fácil para las empresas cambiar su DBMS a un servicio totalmente administrado.
Puede ser necesario cumplir requisitos específicos para poder migrar a un servicio administrado que
requiere realizar cambios en la base de datos y en las aplicaciones que lo usan. Por esta razón, el

76
uso de máquinas virtuales puede ser una solución, pero su uso no elimina la necesidad de
administrar el DBMS con el mismo cuidado que en un entorno local.

1.4 AZURE SQL DATABASE

Si no quiere incurrir en la sobrecarga de administración asociada con la ejecución de SQL Server en


una máquina virtual, puede usar Azure SQL Database.

¿Qué es Azure SQL Database?

Azure SQL Database es una oferta de PaaS de Microsoft. Después de crear un servidor de bases de
datos administrado en la nube, debe implementar las bases de datos en este otro servidor.

*Nota: Un servidor de SQL Database es una construcción lógica que actúa como punto
administrativo central para varias bases de datos individuales o agrupadas, inicios de sesión,
reglas de firewall, reglas de auditoría, directivas de detección de amenazas y grupos de
conmutación por error.

Azure SQL Database está disponible con varias opciones: Base de datos única, Grupo
elástico e Instancia administrada. En las secciones siguientes se describen las opciones Base de
datos única y Grupo elástico. La opción Instancia administrada se trata en la unidad siguiente.

Base de datos única

Esta opción le permite configurar y


ejecutar rápidamente una sola base de
datos de SQL Server. Puede crear y
ejecutar un servidor de bases de datos en
la nube y acceder a la base de datos a
través de este servidor. Microsoft
administra el servidor, por lo que solo
tiene que configurar la base de datos,
crear las tablas y rellenarlas con sus
datos. Puede escalar la base de datos si
necesita más espacio de almacenamiento,
memoria o capacidad de procesamiento.
De forma predeterminada, los recursos
están preasignados y se le cobra por hora
por los recursos solicitados. También
puede especificar una configuración sin
servidor. En esta configuración, Microsoft
crea su propio servidor, que se puede
compartir entre varias bases de datos que
pertenecen a otros suscriptores de Azure.
En este caso, Microsoft garantiza la

77
privacidad de su base de datos. Su base de datos se escala automáticamente y los recursos se
asignan o desasignan según sea necesario. Para obtener más información, consulte el artículo ¿Qué
es una base de datos única en Azure SQL Database?

Grupo elástico

Esta opción es similar a la opción Base de


datos única excepto en que, de forma
predeterminada, varias bases de datos
pueden compartir los mismos recursos,
como la memoria, el espacio de
almacenamiento de datos y la capacidad
de procesamiento mediante la
arquitectura multiinquilino. Se hace
referencia a los recursos como un grupo.
Al crear un grupo, solo sus bases de
datos pueden usarlo. Este modelo es útil
si tiene bases de datos con requisitos de
recursos que varían con el tiempo,
además, puede ayudarle a reducir los
costos. Por ejemplo, su base de datos de
nóminas puede requerir una gran
cantidad de potencia de CPU al final de
cada mes a medida que se encarga del
procesamiento de nóminas, pero en otras ocasiones la base de datos podría estar mucho menos
activa. Es posible que tenga otra base de datos para ejecutar informes. Esta base de datos podría
activarse durante varios días a mediados del mes mientras se generan informes de administración,
pero podría tener una carga más ligera en otras ocasiones. La opción Grupo elástico le permite usar
los recursos disponibles en el grupo y liberarlos una vez que se haya completado el procesamiento.

Casos de uso

Azure SQL Database ofrece la mejor opción por un costo bajo con administración mínima. Aunque no
es totalmente compatible con instalaciones locales de SQL Server, a menudo se usa en nuevos
proyectos en la nube en los que el diseño de una aplicación puede aceptar cualquier cambio
necesario en ella.

*Nota: Puede usar la herramienta Data Migration Assistant para detectar problemas de
compatibilidad con sus bases de datos que pueden afectar a su funcionalidad en Azure SQL
Database. Para obtener más información, consulte Información general de Data Migration
Assistant.

Azure SQL Database se suele usar para:

78
 Aplicaciones modernas en la nube que necesitan usar las características estables más
recientes de SQL Server.
 Aplicaciones que requieren alta disponibilidad.
 Sistemas con una carga variable que necesitan escalar y reducir verticalmente el servidor de
bases de datos de forma rápida.

Ventajas empresariales

Azure SQL Database actualiza y revisa automáticamente el software de SQL Server para asegurarse
de que siempre se ejecuta la versión más reciente y más segura del servicio.

Las características de escalabilidad de Azure SQL Database garantizan que pueda aumentar los
recursos disponibles para almacenar y procesar los datos sin tener que llevar a cabo una
actualización manual costosa.

Este servicio proporciona garantías de alta disponibilidad para garantizar que las bases de datos
están disponibles al menos el 99,99 % del tiempo. Azure SQL Database admite la restauración a un
momento dado, lo que le permite recuperar una base de datos al estado en que se encontraba en
cualquier momento del pasado. Las bases de datos se pueden replicar en diferentes regiones para
proporcionar garantías adicionales y recuperación ante desastres.

Advanced Threat Protection proporciona funcionalidades de seguridad avanzadas, como las


evaluaciones de vulnerabilidad, para ayudar a detectar y corregir posibles problemas de seguridad
con las bases de datos. También detecta actividades anómalas que indican intentos poco habituales
y posiblemente dañinos de acceder a sus bases de datos o aprovecharse de ellas. Supervisa
constantemente una base de datos para detectar actividades sospechosas y proporciona de forma
inmediata alertas de seguridad de posibles puntos vulnerables, ataques por inyección de código SQL
y patrones anómalos de acceso a las bases de datos. Las alertas de detección de amenazas
proporcionan detalles de la actividad sospechosa y recomiendan acciones para investigar y mitigar la
amenaza.

La auditoría hace un seguimiento de los eventos de una base de datos y los escribe en un registro de
auditoría de su cuenta de almacenamiento de Azure. La auditoría puede ayudarle a mantener el
cumplimiento de normativas, comprender la actividad de las bases de datos y conocer las
discrepancias y anomalías que pueden indicar problemas en el negocio o infracciones de seguridad
sospechosas.

SQL Database ayuda a proteger sus datos mediante el cifrado. Para los datos en movimiento, se usa
el protocolo Seguridad de la capa de transporte. En el caso de los datos en reposo, se usa el Cifrado
de datos transparente. Y para los datos en uso, se usa Always Encrypted. Para más información
sobre Seguridad de la capa de transporte, el Cifrado de datos transparente y Always Encrypted,
consulte los vínculos de la unidad de resumen.

En el escenario de Wide World Importers, los servidores vinculados se emplean para realizar
consultas distribuidas. Pero las opciones Base de datos única y Grupo elástico no admiten servidores
vinculados. Si quiere usar Base de datos única o Grupo elástico, es posible que tenga que modificar

79
las consultas que usan los servidores vinculados y cambiar las operaciones que dependen de estas
características.

1.5 INSTANCIA ADMINISTRADA DE AZURE SQL DATABASE

Una empresa puede querer eliminar la mayor cantidad de sobrecarga de administración posible de la
administración de bases de datos y servidores, pero las limitaciones de las opciones Base de datos
única y Grupo elástico pueden significar que esas opciones no son adecuadas. En estas situaciones,
Instancia administrada de Azure SQL Database puede ser una buena opción a tener en cuenta.

¿Qué es Instancia administrada de Azure SQL?

Las opciones Base de datos única y Grupo elástico restringen algunas de las características
administrativas disponibles para SQL Server. Instancia administrada ejecuta eficazmente una
instancia totalmente controlable de SQL Server en la nube. Además, puede instalar varias bases de
datos en la misma instancia y tiene un control total sobre esta instancia, como el que tendría sobre un
servidor local. El servicio de Instancia administrada automatiza las copias de seguridad, las revisiones
de software, la supervisión de bases de datos y otras tareas generales, pero le proporciona control
total sobre la seguridad y la asignación de recursos para las bases de datos. Puede encontrar
información detallada en el artículo ¿Qué es Instancia administrada de Azure SQL?

Las instancias administradas dependen de otros servicios de Azure, como Azure Storage para las
copias de seguridad, Azure Event Hubs para la telemetría, Azure Active Directory para la
autenticación, Azure Key Vault para el cifrado de datos transparente (TDE), y un par de servicios de
la plataforma de Azure que proporcionan características de seguridad y compatibilidad. Las instancias
administradas realizan conexiones con estos servicios.

Todas las comunicaciones se cifran y firman mediante certificados. Para comprobar la confiabilidad
de las partes en comunicación, las instancias administradas comprueban constantemente estos
certificados mediante listas de revocación de certificados. En caso de revocación de los certificados,
la instancia administrada cierra la conexión para proteger los datos.

En la imagen siguiente se resumen las diferencias entre las opciones Instancia administrada, Base de
datos única y Grupo elástico de SQL Database

80
Casos de uso

Considere usar Instancia administrada de Azure SQL Database si quiere migrar mediante lift-and-
shift una instancia local de SQL Server y todas sus bases de datos a la nube, todo ello sin incurrir en
la sobrecarga de administración que supone ejecutar SQL Server en una máquina virtual.

Instancia administrada de SQL Database proporciona características que no están disponibles con las
opciones Base de datos única o Grupo elástico. Si su sistema usa características como servidores
vinculados, Service Broker (un sistema de procesamiento de mensajes que se puede usar para
distribuir el trabajo entre servidores) o Correo electrónico de base de datos (que permite a la base de
datos enviar mensajes de correo electrónico a los usuarios), debe usar la opción Instancia
administrada. Si quiere comprobar la compatibilidad con un sistema local existente, puede
instalar Data Migration Assistant (DMA). Esta herramienta analiza sus bases de datos en SQL Server
e informa de los problemas que podrían bloquear la migración a una instancia administrada.

Ventajas empresariales

Instancia administrada de SQL Database proporciona todas las ventajas de administración y de


seguridad disponibles al usar Base de datos única y Grupo elástico. La implementación de instancia
administrada permite a un administrador del sistema dedicar menos tiempo a las tareas
administrativas porque el servicio SQL Database las realiza de forma automática o las simplifica
considerablemente. Entre las tareas automatizadas se incluyen: la instalación y revisión del software
del sistema operativo y del sistema de administración de bases de datos, el cambio de tamaño y la
configuración de instancias dinámicas, la realización de copias de seguridad, la replicación de bases

81
de datos (incluidas las bases de datos del sistema), la configuración de alta disponibilidad, y la
configuración de flujos de datos de supervisión del estado y del rendimiento.

Instancia administrada tiene una compatibilidad casi del 100 % con SQL Server Enterprise Edition,
cuando se ejecuta de forma local.

La opción de implementación de Instancia administrada de SQL Database admite inicios de sesión


tradicionales del motor de base de datos de SQL Server e inicios de sesión integrados con Azure
Active Directory (AD). Los inicios de sesión tradicionales del motor de base de datos de SQL Server
incluyen un nombre de usuario y una contraseña. Debe escribir sus credenciales cada vez que se
conecta al servidor. Los inicios de sesión de Azure AD usan las credenciales asociadas con el inicio
de sesión del equipo actual y no es necesario que las proporcione cada vez que se conecta al
servidor.

En el escenario de Wide World Importers, Instancia administrada de SQL Database puede ser una
opción más adecuada que Base de datos única o Grupo elástico. La instancia administrada de SQL
Database admite servidores vinculados, aunque algunas de las características avanzadas que
requiere la base de datos podrían no estar disponibles. Si quiere tener compatibilidad total, entonces,
ejecutar SQL Server en una máquina virtual puede ser la única opción, pero deberá equilibrar las
ventajas de la funcionalidad completa con la sobrecarga administrativa y de mantenimiento necesaria.

1.6 POSTGRESQL, MARIADB Y MYSQL

Además de Azure SQL Database, está disponible Azure Data Services para otras soluciones de base
de datos populares basadas en SQL. Actualmente, los servicios de datos de Azure Data Services
están disponibles para PostgreSQL, MySQL y MariaDB. El objetivo principal de estos servicios es
permitir que las organizaciones que ejecutan PostgreSQL, MySQL o MariaDB migren a Azure
rápidamente, sin realizar grandes cambios en sus aplicaciones.

¿Qué son MySQL, MariaDB y PostgreSQL?

PostgreSQL, MariaDB y MySQL son sistemas de administración de bases de datos relacionales que
se adaptan a diferentes especializaciones.

MySQL comenzó siendo un sistema de administración de bases de datos de código abierto fácil de
usar. Es la base de datos relacional de código abierto líder para aplicaciones apiladas (LAMP)
en Linux, Apache, MySQL y PHP. Está disponible en varias ediciones; Community, Estándar y
Enterprise. La edición Community está disponible de forma gratuita y se ha usado históricamente
como sistema de administración de bases de datos para aplicaciones web que se ejecutan en Linux.
También hay versiones disponibles para Windows. La edición Estándar ofrece mayor rendimiento y
usa una tecnología diferente para almacenar los datos. La edición Enterprise proporciona un
completo conjunto de herramientas y características, entre las que se incluyen seguridad mejorada,
disponibilidad y escalabilidad. Las ediciones Estándar y Enterprise son las más usadas por las
organizaciones comerciales, aunque estas versiones del software no son gratuitas.

82
MariaDB es un sistema de administración de bases de datos más reciente creado por los
desarrolladores originales de MySQL. El motor de base de datos se ha reescrito y se ha optimizado
para mejorar el rendimiento. MariaDB ofrece compatibilidad con Oracle Database (otro sistema de
administración de bases de datos comerciales conocido). Una característica notable de MariaDB es
su compatibilidad integrada con los datos temporales. Una tabla puede contener varias versiones de
datos, lo que permite que una aplicación consulte los datos tal y como aparecían en algún momento
del pasado.

PostgreSQL es una base de datos híbrida de objetos relacionales. Una base de datos de PostgreSQL
permite almacenar datos en tablas relacionales, pero también tipos de datos personalizados con sus
propias propiedades no relacionales. El sistema de administración de bases de datos es extensible,
es decir, se pueden agregar módulos de código a la base de datos, los cuales pueden ejecutarse
mediante consultas. Otra característica clave es su capacidad de almacenar y manipular datos
geométricos, como líneas, círculos y polígonos.

PostgreSQL dispone de su propio lenguaje de consulta llamado pgsql. Este lenguaje es una variante
del lenguaje de consulta relacional estándar, SQL, y cuenta con características que permiten escribir
procedimientos almacenados que se ejecutan en la base de datos.

¿Qué es Azure Database for MySQL?

Azure Database for MySQL es una implementación de PaaS de MySQL en la nube de Azure que se
basa en la edición Community de MySQL.

El servicio Azure Database for MySQL incluye alta disponibilidad sin costos adicionales y
escalabilidad según sea necesario. Solo paga por lo que usa. Se proporcionan copias de seguridad
automáticas con restauración a un momento dado.

83
El servidor ofrece seguridad de conexión para aplicar las reglas de firewall y, opcionalmente, requerir
conexiones SSL. Muchos parámetros de servidor permiten configurar opciones del servidor, como los
modos de bloqueo, el número máximo de conexiones y los tiempos de espera.

Azure Database for MySQL proporciona un sistema de base de datos global que se puede escalar
verticalmente a bases de datos grandes sin necesidad de administrar el hardware, los componentes
de red, los servidores virtuales, las revisiones de software y otros componentes subyacentes.

Hay algunas operaciones que no están disponibles con Azure Database for MySQL. Estas funciones
están relacionadas principalmente con la seguridad y la administración. Azure administra estos
aspectos del propio servidor de bases de datos.

Ventajas de Azure Database for MySQL

Azure Database for MySQL ofrece las siguientes características:

 Características de alta disponibilidad integradas.


 Rendimiento predecible.
 Escalado sencillo que responde rápidamente a la demanda.
 Protección de los datos, tanto en reposo como en movimiento.
 Copias de seguridad automáticas y restauración a un momento dado de los últimos 35 días.
 Seguridad de categoría empresarial y cumplimiento normativo.
 El sistema usa el modelo de precios de pago por uso, por lo que solo paga por lo que usa.
 Los servidores de Azure Database for MySQL proporcionan funcionalidades de supervisión
para agregar alertas y para ver las métricas y los registros.

¿Qué es Azure Database for MariaDB?

Azure Database for MariaDB es una implementación del sistema de administración de bases de datos
de MariaDB adaptada para ejecutarse en Azure. Se basa en la edición Community de MariaDB.

Azure administra y controla totalmente la base de datos. Una vez aprovisionado el servicio y
transferidos los datos, el sistema no requiere prácticamente ninguna administración adicional.

Ventajas de Azure Database for MariaDB

 Azure Database for MariaDB proporciona:


 Alta disponibilidad integrada sin coste adicional.
 Rendimiento predecible, con precios de pago por uso inclusivos.
 Escalado según sea necesario en cuestión de segundos.
 Protección segura de los datos confidenciales en reposo y en movimiento.
 Copias de seguridad automáticas y restauración a un momento dado durante un máximo de
35 días.
 Seguridad y cumplimiento de nivel empresarial.

84
¿Qué es Azure Database for PostgreSQL?

Si prefiere PostgreSQL, puede elegir Azure Database for PostgreSQL para ejecutar una
implementación de PaaS de PostgreSQL en la nube de Azure. Este servicio proporciona las mismas
ventajas de disponibilidad, rendimiento, escalado, seguridad y administración que MySQL.

Algunas características de las bases de datos locales de PostgreSQL no están disponibles en Azure
Database for PostgreSQL. Estas características están relacionadas principalmente con las
extensiones que los usuarios pueden agregar a una base de datos para realizar tareas
especializadas, como escribir procedimientos almacenados en varios lenguajes de programación
(distintos de pgsql, el cual está disponible) e interactuar directamente con el sistema operativo. Se
admite un conjunto básico de las extensiones que se usan con más frecuencia, y la lista de
extensiones disponibles se revisa continuamente.

Azure Database for PostgreSQL tiene dos opciones de implementación: Servidor único e Hiperescala.

Servidor único de Azure Database for PostgreSQL

La opción de implementación de servidor único para PostgreSQL proporciona ventajas similares a


Azure Database for MySQL. Puede elegir entre tres planes de tarifa: Básico, De uso general y
Optimizado para memoria. Cada nivel admite una cantidad de procesadores, una capacidad de
memoria y tamaños de almacenamiento diferentes (puede seleccionar uno en función de la carga que
espera admitir).

Hiperescala (Citus) de Azure Database for PostgreSQL

Hiperescala (Citus) es una opción de implementación que escala las consultas entre varios nodos de
servidor para admitir grandes cargas de base de datos. Una base de datos se divide en nodos y los
datos se dividen en fragmentos según el valor de una clave de partición o de particionamiento. Se
recomienda usar esta opción de implementación para las implementaciones de PostgreSQL de bases
de datos más grandes en la nube de Azure.

Ventajas de Azure Database for PostgreSQL

Azure Database for PostgreSQL es un servicio de alta disponibilidad. Integra mecanismos de


conmutación por error y de detección de errores.

Los usuarios de PostgreSQL estarán familiarizados con la herramienta pgAdmin, que puede usar
para administrar y supervisar una base de datos de PostgreSQL. Puede seguir usando esta
herramienta para conectarse a Azure Database for PostgreSQL, pero algunas funcionalidades
centradas en el servidor, como la realización de copias de seguridad y la restauración del servidor, no
están disponibles porque Microsoft se encarga de administrar y mantener el servidor.

Los servidores de Azure Database for PostgreSQL registran información de las consultas que se
ejecutan en las bases de datos del servidor y las guarda en una base de datos llamada azure_sys.
Puede consultar la vista query_store.qs_view para ver esta información y usarla para supervisar las

85
consultas que ejecutan los usuarios. Esta información puede resultar muy valiosa si necesita ajustar
las consultas que realizan las aplicaciones.

Migración de datos a Azure

Si tiene bases de datos MySQL, MariaDB o PostgreSQL que se ejecutan de forma local y quiere
trasladar los datos a una base de datos que ejecuta los servicios de datos correspondientes en Azure,
puede usar Azure Database Migration Service (DMS).

Database Migration Service le permite restaurar una copia de seguridad de las bases de datos locales
directamente en las bases de datos que se ejecutan en Azure Data Services. También puede
configurar la replicación desde una base de datos local para que los cambios realizados en los datos
de esa base de datos se copien en la base de datos que se ejecuta en Azure Data Services. Esta
estrategia le permite volver a configurar los usuarios y las aplicaciones para que se conecten a la
base de datos en la nube mientras el sistema local todavía está activo; no es necesario apagar el
sistema local mientras se transfieren los usuarios a la nube.

1.7 PRUEBA DE CONOCIMIENTOS

1. ¿Qué implementación requiere el menor número de cambios al migrar una solución local
existente de SQL Server?

Instancia administrada de Azure SQL Database


La ejecución de SQL Server en una máquina virtual
Base de datos única de Azure SQL Database

2. ¿Cuál de las siguientes afirmaciones sobre la ejecución de SQL Server en una máquina
virtual es verdadera?
Debe instalar y mantener el software para el sistema de administración de bases de datos
usted mismo, pero las copias de seguridad están automatizadas
La instalación y el mantenimiento del software están automatizados, pero debe hacer sus
propias copias de seguridad
Usted es responsable de la instalación y el mantenimiento del software, así como de la
realización de copias de seguridad

3. ¿Cuál de las siguientes afirmaciones sobre Azure SQL Database es verdadera?


El escalado vertical no surte efecto hasta que se reinicia la base de datos
El escalado horizontal no surte efecto hasta que se reinicia la base de datos

86
El escalado vertical u horizontal surtirá efecto sin necesidad de reiniciar la base de datos
SQL

4. Al usar Instancia administrada de Azure SQL Database, ¿cuál es la manera más sencilla de
implementar copias de seguridad?
La configuración manual de SQL Server
La creación de una tarea programada para realizar copias de seguridad
Las copias de seguridad se administran de forma automática

5. ¿Cuál es la mejor manera de transferir los datos de una base de datos de PostgreSQL que
se ejecuta de forma local a una base de datos que se ejecuta en el servicio Azure Database for
PostgreSQL?
Exportar los datos de la base de datos local e importarlos de forma manual en la base de
datos que se ejecuta en Azure.
Cargar un archivo de copia de seguridad de la base de datos de PostgreSQL en la base de
datos que se ejecuta en Azure
Usar Azure Database Migration Service

Solución

1. La ejecución de SQL Server en una máquina virtual. 2. Usted es responsable de la instalación y el


mantenimiento del software, así como de la realización de copias de seguridad. 3. El escalado vertical
u horizontal surtirá efecto sin necesidad de reiniciar la base de datos SQL. 4. Las copias de
seguridad se administran de forma automática. 5. Usar Azure Database Migration Service.

87
MÓDULO 2. Exploración del aprovisionamiento y la implementación de
servicios de bases de datos relacionales en Azure

OBJETIVOS DE APRENDIZAJE

 Aprovisionar servicios de datos relacionales


 Configurar servicios de datos relacionales
 Explorar problemas de conectividad básicos
 Explorar la seguridad de los datos

2.1 INTRODUCCIÓN

Azure admite una serie de servicios de base de datos, lo que permite ejecutar en la nube diversos
sistemas de administración de bases de datos conocidos, por ejemplo, SQL Server, PostgreSQL y
MySQL.

Los servicios de base de datos de Azure están totalmente administrados, con lo cual dispondrá de un
tiempo muy valioso que, de otro modo, desperdiciaría administrando la base de datos. El rendimiento
de nivel empresarial con alta disponibilidad integrada significa que es posible realizar un escalado
rápidamente y conseguir una distribución global sin preocuparse de los costosos tiempos de
inactividad. Los desarrolladores pueden sacar partido de innovaciones punteras en el sector, como la
seguridad integrada con supervisión automática y detección de amenazas, y el ajuste automático
para mejorar el rendimiento. Además, aparte de todas estas características, la disponibilidad está
garantizada.

Imagine que es un ingeniero de datos de Contoso responsable de crear y administrar bases de datos.
Le han pedido que configure tres nuevos almacenes de datos relacionales: Azure SQL Database,
PostgreSQL y MySQL.

En este módulo, exploraremos las distintas opciones disponibles para crear y configurar servicios de
datos relacionales de Azure.

2.2 DESCRIPCIÓN DEL APROVISIONAMIENTO DE SERVICIOS DE DATOS RELACIONALES

En nuestro escenario de ejemplo, Contoso ha decidido que la organización va a necesitar varios


almacenes relacionales diferentes. Como ingeniero de datos, se le ha pedido que configure
almacenes de datos con Azure SQL Database, PostgreSQL y MySQL.

En este módulo, aprenderemos a aprovisionar estos servicios.

88
¿Qué es el aprovisionamiento?

El aprovisionamiento es el acto de llevar a cabo una serie de tareas que un proveedor de servicios,
como Azure SQL Database, realiza para crear y configurar un servicio. En segundo plano, el
proveedor de servicios configurará los distintos recursos (discos, memoria, CPU, redes, etc.)
necesarios para ejecutar el servicio. Estos recursos se nos asignarán y permanecerán asignados a
nosotros (y deberemos pagar por ellos) hasta que eliminemos el servicio.

El modo en el que el proveedor de servicios aprovisiona los recursos es opaco y no tenemos que
preocuparnos de cómo funciona este proceso. Lo único que haremos será especificar los parámetros
que determinan el tamaño de los recursos necesarios (cantidad de espacio en disco, memoria,
capacidad de proceso y ancho de banda de red). Estos parámetros se determinan calculando el
tamaño de la carga de trabajo que se va a ejecutar por medio del servicio. En muchos casos, estos
parámetros se pueden modificar una vez creado el servicio; por ejemplo, puede que aumentando la
cantidad de espacio de almacenamiento o memoria cuando la carga de trabajo sea mayor de lo
previsto inicialmente. La acción de aumentar (o disminuir) los recursos usados por un servicio se
denomina escalado.

El proceso que Azure lleva a cabo al aprovisionar un servicio es: El usuario especifica los parámetros
de aprovisionamiento, como el tipo de servicio, almacenamiento, memoria y poder de computo. Los
parámetros de aprovisionamiento se envían a Azure para aprovisionar el servicio. Azure asigna los
recursos necesarios para crear el servicio. El servicio está listo y el usuario usa el servicio.

Azure proporciona varias herramientas que se pueden usar para aprovisionar servicios:

 Azure Portal. Esta es la forma más cómoda de aprovisionar un servicio para la mayoría de los
usuarios. Azure Portal muestra una serie de páginas específicas del servicio en las que
debemos indicar la configuración necesaria y, luego, valida esta configuración antes de
aprovisionar realmente el servicio.
 Interfaz de la línea de comandos (CLI) de Azure. La CLI proporciona un conjunto de
comandos que se pueden ejecutar desde el símbolo del sistema del sistema operativo o Cloud
Shell en Azure Portal. Estos comandos se pueden usar para crear y administrar recursos de
Azure. La CLI es adecuada si necesitamos automatizar la creación de servicios; podemos
almacenar comandos de la CLI en scripts y ejecutar estos scripts mediante programación. La
CLI se puede ejecutar en equipos con Windows, macOS y Linux. Para obtener información
detallada sobre la CLI de Azure, lea Qué es la CLI de Azure.
 Azure PowerShell. Muchos administradores están familiarizados con el uso de comandos de
PowerShell para crear scripts y automatizar tareas administrativas. Azure proporciona
diversos cmdlets (comandos específicos de Azure) que se pueden usar en PowerShell para
crear y administrar recursos de Azure. Encontrará más información sobre Azure PowerShell
en Internet, en la documentación de Azure PowerShell. Al igual que la CLI, PowerShell está
disponible para Windows, macOS y Linux.
 Plantillas de Azure Resource Manager. Una plantilla de Azure Resource Manager describe
el servicio (o servicios) que queremos implementar en un archivo de texto en un formato

89
conocido como es JSON (notación de objetos JavaScript). En el siguiente ejemplo se muestra
una plantilla que se puede usar para aprovisionar una instancia de Azure SQL Database.

"resources": [
{
"name": "sql-server-dev",
"type": "Microsoft.Sql/servers",
"apiVersion": "2014-04-01-preview",
"location": "[parameters('location')]",
"tags": {
"displayName": "SqlServer"
},
"properties": {}
}
]

La plantilla se envía a Azure a través del comando az deployment group create (CLI de Azure)
o del comando New-AzResourceGroupDeployment (Azure PowerShell). Vea ¿Qué son las
plantillas de Resource Manager? para obtener más información sobre cómo crear y usar plantillas de
Azure Resource Manager para aprovisionar recursos de Azure.

2.3 DESCRIPCIÓN DEL APROVISIONAMIENTO DE AZURE SQL DATABASE

Una de las implementaciones más populares dentro de los servicios de datos relacionales de Azure
es Azure SQL Database.

La manera más fácil de aprovisionar una instancia de Azure SQL Database es usar Azure Portal.
Seleccione la base de datos SQL en la pagina principal.

Aparece en Azure Portal la página para crear una base de datos SQL .

90
En la pestaña Aspectos básicos de esta página puede especificar los detalles fundamentales del
servicio de base de datos que se va a crear.

Puede seleccionar su suscripción de Azure, en la mayoría de casos, solo tendrá una suscripción y
puede aceptar el valor predeterminado. Todos los servicios de Azure se recopilan en grupos de
recursos, el cual, le permite juntar elementos relacionados. Si aún no ha creado un grupo de
recursos, seleccione Crear nuevo para hacerlo y póngale un nombre.

91
Database name es el nombre de su base de datos, puede utilizar un servidor de base de datos
existente que se haya configurado previamente o seguir los pasos para crear un nuevo servidor de
base de datos para almacenar la base de datos que está creando.

Si crea uno nuevo, cada servidor de base de datos SQL debe tener
un nombre único que nadie más haya usado todavía, si especifica
un nombre que ya está en uso, recibirá un mensaje para que lo
cambie al no estar disponible.

Se asigna una cuenta al inicio de sesión del administrador del


servidor para que la use al conectarse al servidor, proporcionando
una contraseña nueva para la cuenta de administrador del servidor,
debe contener entre 8 y 128 caracteres.

La ubicación es la región geográfica en la que se crearán los


recursos del servidor, debe seleccionar laregión más cercana a
usted si esta desarrollando una aplicación nueva, o bien la región
más cercana a los usuarios si está implementando una aplicación
existente.

Cuando haya terminado, haga clic en Aceptar.

Los grupos elásticos proporcionan una solución rentable y sencilla


para administrar el rendimiento de varias bases de datos en un
presupuesto fijo. Un grupo elástico proporciona recursos de
procesos y almacenamiento compartidos entre todas las bases de
datos que contiene.

Las bases de datos dentro de un grupo solo usan los recursos que
necesitan y cuando los necesitan, dentro de límites configurables.
El precio de un grupo se basa únicamente en la cantidad de

92
recursos configurados y es independiente de la cantidad de bases de datos que contiene.

Está ya es la configuración de proceso, almacenamiento y copia de seguridad del nuevo servidor.


Haciendo clic en Configure database para cambiarla.

En la página de configuración, puede especificar el nivel de servicio SQL y el nivel de rendimiento que
mejor se adapta a las necesidades de la aplicación. El nivel de servicio incluye la generación de
proceso, núcleo virtual, almacenamiento y período de retención de copia de seguridad. Después de
seleccionar lo necesario, clic en Aceptar.

En este punto, puede seleccionar Revisar y crear para revisar la configuración o seleccionar Crear
para aprovisionar el servidor y la base de datos. El aprovisionamiento tardará unos minutos.

2.4 DESCRIPCIÓN DEL APROVISIONAMIENTO DE POSTGRESQL Y MYSQL

Los servicios de datos relacionales de Azure nos permiten trabajar con otros proveedores de bases
de datos relacionales de primer nivel, como PostgreSQL y MySQL. Estos servicios se denominan
Azure Database for PostgreSQL y Azure Database for MySQL.

En esta unidad, veremos cómo aprovisionar estos almacenes de datos en Azure.

Procedimiento para aprovisionar Azure Database for PostgreSQL y Azure Database for MySQL

Al igual que sucede con Azure SQL Database, una base de datos de PostgreSQL o de MySQL se
puede aprovisionar de forma interactiva usando Azure Portal. Estos dos servicios se encuentran en
Azure Marketplace:

93
Los procesos para aprovisionar Azure Database for PostgreSQL y Azure Database for MySQL son
muy parecidos.

*Nota: PostgreSQL también ofrece una opción de hiperescala, que admite cargas de trabajo
de rendimiento extremadamente elevado.

La opción de implementación de hiperescala admite lo siguiente:

94
 Escalado horizontal entre varios equipos. Con esta opción, el servicio puede agregar y quitar
equipos a medida que las cargas de trabajo van aumentando y disminuyendo.
 Paralelización de consultas en los servidores. El servicio puede dividir las consultas que
consumen muchos recursos en partes que se pueden ejecutar en paralelo en los distintos
servidores. Al término del proceso, los resultados de cada servidor se suman para generar un
resultado final. Este mecanismo proporciona respuestas más rápidas en consultas que se
realizan en conjuntos de valores muy grandes.
 Una excelente compatibilidad con aplicaciones de varios inquilinos, análisis operativos en
tiempo real y cargas de trabajo transaccionales de alto rendimiento

La siguiente información resume los campos y las opciones de configuración necesarios al


aprovisionar un servicio de base de datos de PostgreSQL o MySQL:

95
En la pestaña Conceptos básicos se piden los siguientes detalles:

 Suscripción. Seleccione la suscripción de Azure.


 Grupo de recursos. Elija un grupo de recursos existente o seleccione Crear nuevo para
crear uno desde cero.
 Nombre del servidor. Cada base de datos de MySQL o PostgreSQL debe tener un nombre
único que nadie más haya usado todavía. El nombre debe tener entre 3 y 31 caracteres de
longitud, y solo puede contener letras en minúsculas, dígitos y el carácter "-".
 Origen de datos. Seleccione None para crear un servidor desde cero. Puede
seleccionar Copia de seguridad si va a crear un servidor a partir de una copia de seguridad
geográfica de un servidor de Azure Database for MySQL existente.
 Ubicación. Aquí seleccionaremos la región más cercana a nosotros o a los usuarios.
 Versión. Versión de MySQL o PostgreSQL que se va a implementar.
 Proceso y almacenamiento. Configuración de los recursos de proceso, almacenamiento y
copia de seguridad para el nuevo servidor. El vínculo Configurar servidor permite
seleccionar los recursos necesarios para dar cabida a las cargas de trabajo de base de datos.
Estos recursos engloban la cantidad de capacidad de proceso, la memoria, las copias de
seguridad y las opciones de redundancia (para la alta disponibilidad).

*Nota: El término proceso hace referencia a la cantidad de energía del procesador disponible,
pero en lo relativo al tamaño y el número de CPU asignadas al servicio.

96
Se pueden seleccionar tres planes de tarifa, cada uno de ellos diseñado para admitir diferentes
cargas de trabajo:

 Básico. Este plan es adecuado con cargas de trabajo que requieren menos proceso y
rendimiento de E/S, como, por ejemplo, los servidores que se emplean para desarrollo o
pruebas o las aplicaciones de escala pequeña que se usan con poca frecuencia.
 De uso general. Use este plan con las cargas de trabajo empresariales que requieren
equilibrio de memoria y proceso con rendimiento de E/S escalable, Por ejemplo, servidores
para hospedar aplicaciones web y móviles, y otras aplicaciones empresariales.
 Optimizado para memoria. Este plan admite cargas de trabajo de base de datos de alto
rendimiento que requieren rendimiento en memoria para acelerar el procesamiento de
transacciones y aumentar la simultaneidad. Por ejemplo, servidores para procesar datos en
tiempo real y aplicaciones de análisis y transacciones de alto rendimiento.

Los recursos disponibles se pueden ajustar al plan seleccionado. También se pueden escalar más
adelante si fuera necesario.

*Nota: En la página Configurar, el rendimiento que proporcionan las configuraciones De uso


general y Optimizado para memoria aparece reflejado en IOPS. IOPS es un acrónimo que
significa operaciones de entrada/salida por segundo, y es una medida de la capacidad de
lectura y escritura que hay disponible con los recursos configurados.

 Nombre de usuario de administrador. Una cuenta de inicio de sesión para usarla al


conectarse al servidor. El nombre de inicio de sesión de administrador no puede
ser azure_superuser, admin, administrator, root, guest ni public.
 Contraseña. Proporcione una nueva contraseña para la cuenta de administrador del servidor.
Debe contener entre ocho y 128 caracteres. La contraseña debe contener caracteres de tres
de las siguientes categorías: Letras del alfabeto inglés mayúsculas y minúsculas, números (0-
9) y caracteres no alfanuméricos (!, $, #, %, etc.).

Después de especificar la configuración adecuada, seleccione Revisar y crear para aprovisionar el


servidor.

2.5 DESCRIPCIÓN DE LA CONFIGURACIÓN DE SERVICIOS DE DATOS RELACIONALES

Después de aprovisionar un recurso, a menudo necesitaremos configurarlo para satisfacer las


necesidades de las aplicaciones y del entorno. Por ejemplo, puede que debamos configurar el acceso
de red o abrir un puerto de firewall para permitir que las aplicaciones se conecten al recurso.

En esta unidad, aprenderemos a habilitar el acceso de red a los recursos y a evitar una exposición
accidental de los recursos a terceros. Veremos cómo usar la autenticación y el control de acceso para
proteger los datos administrados por los recursos.

97
Configuración de la conectividad y los firewalls

La conectividad predeterminada de los servicios de datos relacionales de Azure consiste en no


permitir el acceso a todo el mundo.

Configuración de la conectividad a redes virtuales y equipos locales

Para habilitar la conectividad, use la página Firewalls y redes virtuales de un servicio. Para ello,
elija Redes seleccionadas. Aparecerán tres secciones más: Red virtual, Firewall y Excepciones.

*Nota: Las redes virtuales de Azure son una representación de nuestra propia red en la nube.
Una red virtual permite conectar máquinas virtuales y servicios de Azure de forma muy similar
a como usaríamos una red física local. Azure garantiza que cada red virtual está aislada de
otras redes virtuales creadas por otros usuarios y de Internet. Además, nos permite especificar
qué máquinas (reales o virtuales) y qué servicios tienen permiso para acceder a los recursos
de la red virtual, y qué puertos pueden usar.

En la sección Redes virtuales, se especifican las redes virtuales que pueden enrutar tráfico al
servicio. Al crear elementos, como aplicaciones web y máquinas virtuales, podemos agregarlos a una
red virtual. Si estas aplicaciones y máquinas virtuales requieren acceso a nuestro recurso, incorpore
la red virtual que contiene estos elementos a la lista de redes permitidas.

Si necesitamos conectarnos al servicio desde un equipo local, agregue la dirección IP del equipo
correspondiente en la sección Firewall. Esta configuración crea una regla de firewall que permite que
el tráfico procedente de esa dirección llegue al servicio.

La configuración de Excepciones permite habilitar el acceso a cualquier otro servicio que no se pueda
aislar de forma exclusiva a través de las reglas de red virtual o de dirección IP.

En la siguiente imagen se muestra la página Firewalls y redes virtuales de una base de datos de SQL
Azure. MySQL y PostgreSQL tienen una página similar.

98
*Nota: Azure SQL Database se comunica a través del puerto 1433. Si intenta conectarse
desde una red corporativa, es posible que el firewall de la red no permita el tráfico saliente a
través del puerto 1433. En ese caso, no puede conectarse al servidor de Azure SQL
Database, salvo que el departamento de TI abra el puerto 1433.

*Importante: Una regla de firewall de 0.0.0.0 permite que todos los servicios de Azure pasen a
través de la regla de firewall de nivel de servidor e intenten conectarse a una base de datos
única o agrupada a través del servidor.

99
Configuración de la conectividad desde puntos de conexión privados

Un punto de conexión privado de Azure es una interfaz de red que nos conecta de forma privada y
segura a un servicio por medio de la tecnología Azure Private Link. Los puntos de conexión privados
emplean una dirección IP privada de la red virtual, lo que hace que el servicio se incluya en la red
virtual. Este servicio podría ser un servicio de Azure, como Azure App Service, o nuestro propio
servicio de vínculo privado. Vea ¿Qué es un punto de conexión privado de Azure? para obtener
información detallada.

La página Conexiones de punto de conexión privado de un servicio permite especificar qué puntos de
conexión privados, si los hay, tienen permiso para acceder a nuestro servicio. Podemos usar las
opciones de configuración de esta página junto con la página Firewalls y redes virtuales para impedir
completamente el acceso de usuarios y aplicaciones a puntos de conexión públicos para conectarse
a nuestra cuenta de Azure SQL Database.

Configurar la autenticación

Con la autenticación de Azure Active Directory (AD) podemos administrar de forma centralizada las
identidades de los usuarios de la base de datos y otros servicios de Microsoft. La administración de
identificadores central ofrece una ubicación única para administrar usuarios de base de datos y
simplifica la administración de permisos.

Podemos usar estas identidades y configurar el acceso a los servicios de datos relacionales.

Para obtener información detallada sobre cómo usar Azure AD con Azure SQL Database, visite la
página Uso de la autenticación de Azure Active Directory en el sitio web de Microsoft. También
podemos autenticar a los usuarios que se conectan a Azure Database for PostgreSQL y Azure
Database for MySQL con AD.

Configuración del control de acceso

Azure AD nos permite especificar quién o qué puede acceder a nuestros recursos. El control de
acceso define lo que un usuario o una aplicación pueden hacer con los recursos una vez que se han
autenticado.

La administración de acceso de los recursos en la nube es una función importantísima para cualquier
organización que use la nube. El control de acceso basado en rol (Azure RBAC) sirve para
administrar quién accede a los recursos de Azure y qué pueden hacer con esos recursos. Por
ejemplo, con RBAC podríamos hacer lo siguiente:

 Permitir que un usuario administre las máquinas virtuales de una suscripción y que otro
usuario administre las redes virtuales
 Permitir a un grupo de administradores de base de datos que administren bases de datos SQL
de una suscripción
 Permitir que un usuario administre todos los recursos de un grupo de recursos, como las
máquinas virtuales, los sitios web y las subredes

100
 Permitir que una aplicación acceda a todos los recursos de un grupo de recursos.

El acceso a los recursos se controla mediante Azure RBAC para crear asignaciones de roles. Una
asignación de roles consta de tres elementos: una entidad de seguridad, una definición de roles y un
ámbito.

 Una entidad de seguridad es un objeto que representa a un usuario, un grupo, una entidad de
servicio o una identidad administrada que solicita acceso a recursos de Azure.
 Una definición de roles (a menudo abreviada como rol) es una colección de permisos. Una
definición de roles enumera las operaciones que se pueden realizar, por ejemplo, de lectura,
escritura y eliminación. Los roles pueden tener nombres genéricos (como "propietario") o
específicos (como "lector de máquina virtual"). Azure incluye varios roles integrados que se
pueden usar, a saber:
o Propietario: tiene acceso total a todos los recursos, incluido el derecho a delegar este
acceso a otros.
o Colaborador: puede crear y administrar todos los tipos de recursos de Azure, pero no
puede conceder acceso a otros.
o Lector: puede ver los recursos existentes de Azure.
o Administrador de acceso de usuario: permite administrar el acceso de los usuarios a
los recursos de Azure.
También podemos crear nuestros propios roles personalizados. Para obtener información
detallada, vea Creación o actualización de roles personalizados de Azure mediante Azure
Portal en el sitio web de Microsoft.
 Un ámbito muestra el conjunto de recursos a los que se aplica el acceso. Cuando se asigna
un rol, es posible limitar aún más las acciones permitidas si se define un ámbito. Esto resulta
útil, por ejemplo, si queremos convertir a alguien en colaborador del sitio web, pero solo en un
grupo de recursos concreto.

Las asignaciones de roles se asignan a un recurso en Azure Portal, en la página Control de acceso
(IAM). La pestaña Asignaciones de roles permite asociar un rol a una entidad de seguridad, lo que
define el nivel de acceso al recurso que ese rol tiene. Para más información, vea Incorporación o
eliminación de asignaciones de roles de Azure mediante Azure Portal.

101
Configuración de Advanced Data Security

Aparte de la autenticación y la autorización, muchos servicios ofrecen una protección extra a través
de Advanced Data Security.

Advanced Data Security implementa una protección contra las amenazas, así como evaluaciones de
estas. La protección contra amenazas incorpora inteligencia de seguridad al servicio. Esta inteligencia
supervisa el servicio y detecta patrones de actividad poco habituales que podrían ser dañinos o poner
en peligro los datos administrados por el servicio. La evaluación identifica posibles vulnerabilidades
de seguridad y recomienda acciones para mitigarlas.

En la siguiente imagen se muestra la página Advanced Data Security de SQL Database. Las
páginas correspondientes de MySQL y PostgreSQL son similares.

102
2.6 DESCRIPCIÓN DE LA CONFIGURACIÓN DE AZURE SQL DATABASE, AZURE DATABASE
FOR POSTGRESQL Y AZURE DATABASE FOR MYSQL

En esta unidad exploraremos las opciones de configuración específicas disponibles para cada tipo de
almacén de datos en los servicios de datos relacionales de Azure.

Configuración de Azure SQL Database

El principio general de seguridad de red de la oferta de Azure SQL Database es permitir únicamente
la conexión y la comunicación necesarias para que el servicio funcione. Todos los otros puertos,
protocolos y conexiones se bloquean de manera predeterminada. Las redes de área local virtual
(VLAN) y las listas de control de acceso (ACL) se usan para restringir las comunicaciones de red
según las redes de origen y destino, los protocolos y los números de puerto.

*Nota: Una ACL contiene una lista de recursos y los objetos (usuarios, equipos y aplicaciones)
con permiso para acceder a ellos. Cuando un objeto que no está en la ACL intenta usar un
recurso que está protegido por esa lista, no se le dará acceso.

Los elementos que implementan ACL basadas en red son los enrutadores y los equilibradores de
carga. Para controlar el flujo de tráfico a través de estos elementos, se definen reglas de firewall.

En los pasos siguientes se describe cómo se establece una conexión a una base de datos de Azure
SQL:

 Los clientes se conectan a una puerta de enlace que tiene una dirección IP pública y que
escucha en el puerto 1433.
 En función de la directiva de conexión en vigor, la puerta de enlace redirige el tráfico al clúster
de base de datos o actúa como un proxy del clúster de base de datos.

103
*Nota: Azure SQL Database usa una topología de clúster para proporcionar alta
disponibilidad. Cada servidor y cada base de datos se replican de forma transparente
para garantizar que el acceso a un servidor siempre va a ser posible, incluso en caso
de que se produzca un error en la base de datos o en el servidor.
 Dentro del clúster de base de datos, el tráfico se reenvía a la base de datos de SQL Azure
adecuada.

Conectividad desde dentro de Azure

Si estamos intentando conectarnos desde otro servicio de Azure (como, por ejemplo, desde una
aplicación web que se ejecuta en Azure App Service), las conexiones tienen una directiva de
conexión de redireccionamiento de forma predeterminada. Una directiva de redireccionamiento
significa que, una vez que la aplicación establece una conexión con una base de datos de Azure SQL
a través de la puerta de enlace, todas las solicitudes posteriores de la aplicación irán directamente a
esa base de datos en vez de atravesar la puerta de enlace. Si posteriormente se produce un error en
la conectividad a la base de datos, la aplicación tendrá que volver a conectarse a través de la puerta
de enlace, de modo que existirá la posibilidad de dirigirla a otra copia de la base de datos que se
ejecuta en otro servidor del clúster.

104
Conectividad desde fuera de Azure

Si vamos a conectarnos desde fuera de Azure (por ejemplo, a través de una aplicación local), las
conexiones tienen una directiva de conexión de proxy de forma predeterminada. Una directiva de
proxy significa que la conexión se establece a través de la puerta de enlace, y todas las solicitudes
posteriores fluyen a través de la puerta de enlace. Así pues, cada solicitud podría recibir servicio (en
teoría) de una base de datos diferente del clúster.

Configuración de DoSGuard

Los ataques por denegación de servicio (DoS) se reducen mediante un servicio de puerta de enlace
de SQL Database denominado DoSGuard. DoSGuard realiza un seguimiento activo de inicios de
sesión erróneos desde direcciones IP. Si se producen varios intentos de inicio de sesión fallidos
desde una dirección IP específica durante un período de tiempo determinado, la dirección IP no podrá
tener acceso a los recursos del servicio durante un tiempo.

Además, la puerta de enlace de Azure SQL Database realiza las siguientes tareas:

 Valida todas las conexiones a los servidores de bases de datos para asegurarse de que son
de clientes genuinos.
 Cifra todas las comunicaciones entre un cliente y los servidores de bases de datos.

105
 Inspecciona cada paquete de red enviado a través de una conexión de cliente. La puerta de
enlace valida la información de conexión contenida en el paquete y lo reenvía al servidor físico
que proceda en función del nombre de base de datos especificado en la cadena de conexión.

Configuración de Azure Database for PostgreSQL

Al crear el servidor de Azure Database for PostgreSQL, también se crea la base de datos
predeterminada denominada postgres. Para conectarnos al servidor de base de datos, necesitamos
el nombre completo del servidor y las credenciales de inicio de sesión de administrador. Encontrará
fácilmente el nombre del servidor y la información de inicio de sesión en la página Información
general del servidor, en Azure Portal. Esta página contiene el nombre del servidor y el nombre de
inicio de sesión del administrador del servidor.

*Nota: Las conexiones al servidor de Azure Database for PostgreSQL se comunican a través
de puerto 5432. Si intenta conectarse desde una red corporativa, es posible que el firewall de
la red no permita el tráfico saliente a través del puerto 5432. En ese caso no podrá conectarse
al servidor, salvo que el departamento de TI abra el puerto 5432.

Configuración de parámetros y extensiones del servidor

Un servidor de base de datos PostgreSQL tiene varios parámetros de configuración que se pueden
establecer, y que permiten optimizar la base de datos y depurar código en la base de datos. Estos
parámetros se pueden modificar en la página Parámetros del servidor de Azure Portal.

106
Si conoce PostgreSQL, comprobará que no todos los parámetros se admiten en Azure. En la
página Parámetros del servidor del sitio web de Microsoft se describen los parámetros de
PostgreSQL que hay disponibles.

PostgreSQL también ofrece la posibilidad de ampliar la funcionalidad de la base de datos por medio
de extensiones. Las extensiones agrupan varios objetos SQL relacionados en un solo paquete que se
puede cargar o quitar de la base de datos con un solo comando. Después de cargarse en la base de
datos, las extensiones funcionan como características integradas. Para poder usarlas, las
extensiones se deben instalar en la base de datos. Para instalar una extensión determinada, ejecute
el comando CREATE EXTENSION desde la herramienta psql para cargar los objetos empaquetados
en la base de datos. No todas las extensiones de PostgreSQL se admiten en Azure. Para ver una
lista completa, vea Extensiones de PostgreSQL en Azure Database for PostgreSQL: un solo servidor.

Configuración de réplicas de lectura

Los datos de un servidor de Azure Database for PostgreSQL se pueden replicar en un servidor de
solo lectura. Azure Database for PostgreSQL admite la replicación desde el servidor maestro en hasta
cinco réplicas. Las réplicas se actualizan de manera asincrónica mediante la tecnología de replicación
nativa del motor de PostgreSQL.

107
Las réplicas de lectura ayudan a mejorar el rendimiento y la escala de las cargas de trabajo que
hacen un uso intensivo de operaciones de lectura. Las cargas de trabajo de lectura se pueden aislar
en las réplicas, mientras que las cargas de trabajo de escritura se pueden dirigir al servidor maestro.

Un escenario común es que las cargas de trabajo de inteligencia empresarial y de BI usen réplicas de
lectura como orígenes de datos para crear informes.

Dado que las réplicas son de solo lectura, no reducen directamente la carga de las operaciones de
escritura en el servidor maestro. Esta característica no está destinada a cargas de trabajo intensivas
de escritura.

Las réplicas son nuevos servidores que se administran de forma similar a los servidores de Azure
Database for PostgreSQL normales. Por cada réplica de lectura, se le facturará la cantidad de
procesos aprovisionados en núcleos virtuales y el almacenamiento en GB/mes.

Use la página Replicación de un servidor PostgreSQL en Azure Portal para agregar réplicas de
lectura a la base de datos:

Configuración de Azure Database for MySQL

Para conectarnos a la base de datos MySQL que hemos aprovisionado, debemos especificar la
información de conexión. Esta información incluye el nombre completo del servidor y las credenciales
de inicio de sesión. Esta información se encuentra en la página Información general del servidor:

*Nota: Las conexiones con el servidor de Azure Database for MySQL se establecen a través
del puerto 3306. Si intentamos conectarnos desde una red corporativa, es posible que el
firewall de la red no permita el tráfico saliente a través del puerto 3306. Si es así, no podremos
conectarnos a nuestro servidor a menos que el departamento de TI abra el puerto 3306.

*Importante: De forma predeterminada, la seguridad de conexión SSL es necesaria y se aplica


al servidor de Azure Database para MySQL.

108
Configuración de parámetros del servidor

Al igual que sucede en PostgreSQL, un servidor de base de datos MySQL tiene varios parámetros de
configuración que se pueden establecer. Estos parámetros se pueden modificar en la
página Parámetros del servidor de Azure Portal.

En la página Configuración de parámetros del servidor en Azure Database for MySQL mediante
Azure Portal del sitio web de Microsoft encontrará más información sobre los parámetros disponibles
para MySQL en Azure.

109
Configuración de réplicas de lectura

Esta característica es similar a la disponible en PostgreSQL. Se pueden crear hasta cinco réplicas de
lectura para una base de datos MySQL. Esta característica permite replicar datos geográficamente
entre regiones y distribuir la sobrecarga asociada con las cargas de trabajo que hacen un uso
intensivo de operaciones de lectura. La replicación es asincrónica desde el servidor maestro, por lo
que puede haber algún retraso entre que los registros se escriben en el servidor maestro y pasan a
estar disponibles en todas las réplicas.

La replicación de lectura no está pensada para admitir cargas de trabajo con que hacen un uso
intensivo de operaciones de escritura.

Use la página Replicación de un servidor MySQL en Azure Portal para agregar réplicas de lectura a
la base de datos.

2.7 EJERCICIO: APROVISIONAMIENTO DE SERVICIOS DE BASE DE DATOS RELACIONALES


DE AZURE

https://docs.microsoft.com/es-mx/learn/modules/explore-provision-deploy-relational-database-
offerings-azure/7-exercise-provision-relational-azure-data-services?pivots=azuresql

110
MÓDULO 3. Consulta de datos relacionales en Azure

OBJETIVOS DE APRENDIZAJE

 Describir técnicas de consulta de datos mediante el lenguaje SQL


 Consultar datos relacionales

3.1 INTRODUCCIÓN

Azure le permite crear bases de datos relacionales mediante varias tecnologías, como Azure SQL
Database, Azure Database for PostgreSQL, Azure Database for MySQL y Azure Database for
MariaDB.

Imagine que trabaja como desarrollador para una cadena de supermercados grande denominada
Contoso. La empresa ha creado un almacén de datos que se usará para almacenar el inventario de
productos. El equipo de desarrollo ha utilizado una base de datos de Azure SQL para almacenar sus
datos. Necesitan saber cómo consultar y manipular estos datos mediante SQL.

En este módulo, aprenderá a usar estos servicios de base de datos para almacenar y recuperar
datos. Examinará cómo usar algunas de las herramientas comunes disponibles para estos sistemas
de administración de bases de datos con el objetivo de conectarse a los servicios de base de datos
que se ejecutan en Azure.

*Nota: Este módulo se centra en el uso de Azure SQL Database, Azure Database for PostgreSQL y
Azure Database for MySQL. Si usa Azure Database for MariaDB, el dialecto de SQL es muy parecido
al que usa MySQL.

3.2 INTRODUCCIÓN A SQL

SQL es la sigla de "lenguaje de consulta estructurado". SQL se utiliza para comunicarse con una
base de datos relacional. Se trata del lenguaje estándar para los sistemas de administración de bases
de datos relacionales. Las instrucciones SQL se usan para realizar tareas como actualizar o
recuperar datos de una base de datos. Algunos sistemas de administración de bases de datos
relacionales habituales que utilizan SQL incluyen Microsoft SQL Server, MySQL, PostgreSQL,
MariaDB y Oracle.

*Nota: El Instituto Nacional Estadounidense de Estándares (ANSI) estandarizó originalmente


el lenguaje SQL en 1986 y, luego, la Organización Internacional de Normalización (ISO), en
1987. Desde entonces, el estándar se ha ampliado varias veces a medida que los
proveedores de bases de datos relacionales han agregado nuevas características a sus
sistemas. Además, la mayoría de los proveedores de bases de datos incluyen sus propias

111
extensiones que no forman parte del estándar, lo que ha dado lugar a la creación de varios
dialectos de SQL.

En esta unidad obtendrá información sobre SQL. Verá cómo se usa para consultar y mantener datos
en una base de datos, así como los diferentes dialectos disponibles.

Descripción de los dialectos de SQL

Puede usar instrucciones SQL como SELECT, INSERT, UPDATE, DELETE, CREATE y DROP para
realizar prácticamente cualquier tarea que deba llevarse a cabo con una base de datos. Si bien estas
instrucciones SQL forman parte del estándar SQL, muchos sistemas de administración de bases de
datos también cuentan con extensiones propias adicionales para controlar los detalles de ese sistema
de administración de bases de datos. Estas extensiones proporcionan una funcionalidad que no se
incluye en el estándar de SQL y contienen áreas como la administración de la seguridad y la
capacidad de programación. Por ejemplo, Microsoft SQL Server utiliza Transact-SQL. Esta
implementación incluye extensiones propias para escribir procedimientos almacenados y
desencadenadores (código de aplicación que se puede almacenar en la base de datos), y administrar
cuentas de usuario. PostgreSQL y MySQL también tienen sus propias versiones de estas
características.

Algunos dialectos populares de SQL incluyen:

 Transact-SQL (T-SQL). Microsoft SQL Server y Azure SQL Database usan esta versión de
SQL.
 pgSQL. Se trata del dialecto, con extensiones, que se implementa en PostgreSQL.
 PL/SQL. Se trata del dialecto que utiliza Oracle. PL/SQL significa "lenguaje de
procedimientos/SQL".

Los usuarios que planeen trabajar específicamente con un sistema de base de datos única deben
conocer los pormenores del dialecto y la plataforma de SQL preferidos.

Descripción de los tipos de instrucción SQL

Las instrucciones SQL se agrupan en dos grupos lógicos principales, que son los siguientes:

 Lenguaje de manipulación de datos (DML)


 Lenguaje de definición de datos (DDL)

Uso de las instrucciones DML

Las instrucciones DML se usan para manipular las filas de una tabla relacional. Estas instrucciones
permiten recuperar (consultar) datos, insertar nuevas filas o editar las existentes. También puede
eliminar filas si ya no las necesita.

Las cuatro instrucciones DML principales son las siguientes:

112
La forma básica de una instrucción INSERT insertará una fila cada vez. De forma predeterminada, las
instrucciones SELECT, UPDATE y DELETE se aplican a todas las filas de una tabla. Normalmente,
se aplica una cláusula WHERE con estas instrucciones para especificar criterios, de forma que solo
se seleccionen, actualicen o eliminen las filas que cumplan estos criterios.

*Advertencia: SQL no ofrece solicitudes de confirmación, por lo que debe tener cuidado al
usar DELETE o UPDATE sin una cláusula WHERE, ya que podría perder o modificar una gran
cantidad de datos.

El código siguiente es un ejemplo de una instrucción SQL que selecciona todas las filas que coinciden
con un solo filtro de una tabla. La cláusula FROM especifica la tabla que se va a usar:

SELECT *
FROM MyTable
WHERE MyColumn2 = 'contoso'

Si una consulta devuelve muchas filas, estas no necesariamente aparecen en una secuencia
concreta. Si quiere ordenar los datos, puede agregar una cláusula ORDER BY. Los datos se
ordenarán por la columna especificada:

SELECT *
FROM MyTable
ORDER BY MyColumn1

También puede ejecutar instrucciones SELECT que recuperen datos de varias tablas mediante una
cláusula JOIN. Las combinaciones indican cómo las filas de una tabla se conectan con las filas de la
otra para determinar qué datos se van a devolver. Una condición de combinación define la forma en
la que dos tablas se relacionan en una consulta al:

 Especificar la columna de cada tabla que debe usarse para la combinación. Una condición de
combinación típica especifica una clave externa de una tabla y su clave principal asociada de
la otra tabla.

113
 Puede especificar un operador lógico (por ejemplo, = o < >) que se va a utilizar para comparar
los valores de las columnas.

En la consulta siguiente se muestra un ejemplo que combina dos tablas, Inventory y CustomerOrder.
Recupera todas las filas en las que el valor de la columna ID de la tabla Inventory coincide con el
valor de la columna InventoryID de la tabla CustomerOrder.

SELECT *
FROM Inventory
JOIN CustomerOrder
ON Inventory.ID = CustomerOrder.InventoryID

SQL proporciona funciones de agregado. Una función de agregado calcula un único resultado en un
conjunto de filas o en toda una tabla. En el ejemplo siguiente se busca el valor mínimo de la
columna MyColumn1 en todas las filas de la tabla MyTable:

SELECT MIN(MyColumn1)
FROM MyTable

Hay disponibles otras funciones de agregado, como MAX (que devuelve el valor más grande de una
columna), AVG (que devuelve el valor medio, pero solo si la columna contiene datos numéricos) y
SUM (que devuelve la suma de todos los valores de la columna, pero solo si la columna es
numérica).

En el ejemplo siguiente se muestra cómo actualizar una fila existente mediante SQL. Modifica el valor
de la segunda columna, pero solo para las filas que tienen el valor 3 en MyColumn1. Todas las
demás filas permanecen sin cambios:

UPDATE MyTable
SET MyColumn2 = 'contoso'
WHERE MyColumn1 = 3

*Advertencia: Si omite la cláusula WHERE, una instrucción UPDATE modificará todas las filas
de la tabla.

Use la instrucción DELETE para quitar filas. Debe especificar la tabla en la que se va a realizar la
eliminación y una cláusula WHERE que identifique las filas que se van a eliminar:

DELETE FROM MyTable


WHERE MyColumn2 = 'contoso'

114
*Advertencia: Si omite la cláusula WHERE, una instrucción DELETE quitará todas las filas de
la tabla.

La instrucción INSERT tiene un formato ligeramente diferente. Debe especificar una tabla y las
columnas en una cláusula INTO, y una lista de valores que se van a almacenar en estas columnas. El
lenguaje SQL estándar solo admite la inserción de una fila cada vez, tal como se muestra en el
ejemplo siguiente. Algunos dialectos le permiten especificar varias cláusulas VALUES para agregar
varias filas a la vez:

INSERT INTO MyTable(MyColumn1, MyColumn2, MyColumn3)


VALUES (99, 'contoso', 'hello')

Uso de instrucciones DDL

Las instrucciones DDL se usan para crear, modificar y quitar tablas y otros objetos de una base de
datos (tabla, procedimientos almacenados, vistas, etc.).

Las instrucciones de DDL más habituales son las siguientes:

*Advertencia: La instrucción DROP es muy eficaz. Al quitar una tabla, se pierden todas las
filas de esa tabla. Salvo en el caso de que tenga una copia de seguridad, no podrá recuperar
los datos.

En el siguiente ejemplo se crea una nueva tabla de base de datos. Los elementos entre paréntesis
especifican los detalles de cada columna, como el nombre, el tipo de datos, si la columna debe
contener siempre un valor (distinto de NULL) y si los datos de la columna se usan para identificar de
forma única una fila (CLAVE PRINCIPAL). Cada tabla debe tener una clave principal, aunque SQL no
aplica forzosamente esta regla.

*Nota: Las columnas marcadas como NOT NULL se denominan columnas obligatorias. Si
omite la cláusula NOT NULL, puede crear filas que no contengan un valor en la columna. Se
considera que una columna vacía de una fila tiene un valor NULL.

115
CREATE TABLE MyTable
(
MyColumn1 INT NOT NULL PRIMARY KEY,
MyColumn2 VARCHAR(50) NOT NULL,
MyColumn3 VARCHAR(10) NULL
);

Los tipos de datos disponibles para las columnas de una tabla variarán en función del sistema de
administración de bases de datos. Aun así, la mayoría de los sistemas de administración de bases de
datos admiten tipos numéricos como INT (un número entero) y tipos de cadena como VARCHAR
(VARCHAR significa "datos de caracteres de longitud variable"). Para obtener más información,
consulte la documentación del sistema de administración de bases de datos que ha seleccionado.

3.3 CONSULTA DE DATOS RELACIONALES EN AZURE SQL DATABASE

Los comandos SQL se ejecutan desde herramientas y utilidades que se conectan a la base de datos
adecuada. Las herramientas disponibles dependen del sistema de administración de bases de datos
que esté usando. En esta unidad, obtendrá información sobre las herramientas que puede usar para
conectarse a Azure SQL Database.

Recuperación de información de conexión para Azure SQL Database

Para consultar datos contenidos en Azure SQL Database, puede usar cualquiera de estas
herramientas:

 Editor de consultas de Azure Portal


 Utilidad sqlcmd desde la línea de comandos o Azure Cloud Shell
 SQL Server Management Studio
 Azure Data Studio
 SQL Server Data Tools

Para usar estas herramientas, primero tiene que establecer una conexión con la base de datos.
Necesitará los detalles del servidor al que se va a conectar, una cuenta de Azure SQL Database (un
nombre de usuario y una contraseña) que tenga acceso a este servidor y el nombre de la base de
datos que va a usar en este servidor. Puede encontrar el nombre del servidor de una base de datos
mediante Azure Portal; vaya a la página de la base de datos y, en la página de información general,
encontrará el nombre completo del servidor en el campo Nombre del servidor.

116
Algunas herramientas y aplicaciones requieren una cadena de conexión que identifique el servidor, la
base de datos, el nombre de cuenta y la contraseña. Puede encontrar esta información en la página
de información general de una base de datos en Azure Portal; seleccione Mostrar las cadenas de
conexión de la base de datos.

*Nota: La cadena de conexión de la base de datos que se muestra en Azure Portal no incluye
la contraseña de la cuenta. Solicite esta información al administrador de la base de datos.

Uso de Azure Portal para consultar una base de datos

Para acceder al editor de consultas en Azure Portal, vaya a la página de la base de datos y
seleccione Editor de consultas. Se le pedirán las credenciales. Puede establecer Tipo de
autorización en Autenticación de SQL Server y escribir el nombre de usuario y la contraseña que
configuró al crear la base de datos. También puede seleccionar Autenticación de contraseña de
Active Directory y proporcionar las credenciales de un usuario autorizado en Azure Active Directory.
Si el inicio de sesión único de Active Directory está habilitado, puede conectarse mediante la
identidad de Azure.

117
Escriba la consulta SQL en el panel consulta y haga clic en Ejecutar para ejecutarlo. Las filas
devueltas aparecen en el panel Resultados. El panel Mensajes muestra información como el número
de filas devueltas o los errores que ocurrieron:

118
También puede escribir las instrucciones INSERT, UPDATE, DELETE, CREATE y DROP en el panel
de consultas.

Uso de SQLCMD para consultar una base de datos

La utilidad sqlcmd se ejecuta desde la línea de comandos y también está disponible en Cloud Shell.
Debe especificar los parámetros que identifican el servidor, la base de datos y sus credenciales. El
código siguiente muestra un ejemplo. Reemplace <server> con el nombre del servidor de base de
datos que ha creado, <database> con el nombre de la base de datos y <user
name> y <password> con sus credenciales.

*Nota: Para usar la utilidad sqlcmd desde la línea de comandos, debe instalar las utilidades de
línea de comandos de Microsoft en el equipo. En la página web Utilidad sqlcmd podrá
descargar instrucciones y obtener más información sobre su ejecución.

Bash

119
sqlcmd -S <server>.database.windows.net -d <database> -U <username> -P
<password>

Si el comando de inicio de sesión se realiza correctamente, verá un símbolo del sistema 1>. Puede
escribir comandos SQL y, a continuación, escribir GO en una línea independiente para ejecutarlos.

Uso de Azure Data Studio

Azure Data Studio es una utilidad gráfica para crear y ejecutar consultas SQL desde el escritorio.
Para obtener instrucciones sobre la descarga e instalación, visite la página Descarga e instalación de
Azure Data Studio en el sitio web de Microsoft.

La primera vez que ejecute Azure Data Studio, se abrirá la página principal. Si no ve la página
principal, seleccione Ayuda y, a continuación, seleccione Página principal. Seleccione Crear una
conexión para abrir el panel Conexión:

1. Rellene los campos siguientes con el nombre del servidor, el nombre de usuario y la contraseña de
su servidor de SQL Server de Azure:

120
2. Seleccione Conectar.

Si el servidor no tiene una regla de firewall que permita a Azure Data Studio conectarse, se abre el
formulario Crear nueva regla de firewall. Rellene el formulario para crear una regla de firewall nueva.
Para obtener más información, consulte Inicio rápido: Creación de una regla de firewall de nivel a
servidor mediante Azure Portal.

3. Una vez que se haya conectado correctamente, el servidor estará disponible en la barra
lateral SERVIDORES de la página Conexiones. Ahora puede usar el comando Nueva consulta para
crear y ejecutar scripts de comandos SQL.

121
En el ejemplo siguiente se usan comandos Transact-SQL para crear una nueva base de datos (los
comandos CREATE DATABASE y ALTER DATABASE forman parte del dialecto de Transact-SQL y
no de SQL estándar). A continuación, el script crea una nueva tabla denominada Customers e inserta
cuatro filas en esta tabla. De nuevo, la versión de la instrucción INSERT, con cuatro cláusulas
VALUES, forma parte del dialecto de Transact-SQL. Los caracteres -- inician un comentario en
Transact-SQL. Los caracteres [ y ] delimitan los identificadores, como el nombre de una tabla, una
base de datos, una columna o un tipo de datos. El carácter N delante de una cadena indica que esta
utiliza el juego de caracteres Unicode.

*Nota: No se pueden crear nuevas bases de datos SQL desde una conexión en Azure Data
Studio si se ejecutan una base de datos única o grupos elásticos de SQL Database. Solo
puede crear bases de datos nuevas de esta manera si utiliza una instancia administrada de
SQL Database.

122
IF NOT EXISTS (
SELECT name
FROM sys.databases
WHERE name = N'TutorialDB'
)
CREATE DATABASE [TutorialDB];
GO

ALTER DATABASE [TutorialDB] SET QUERY_STORE=ON;


GO

-- Switch to the TutorialDB database


USE [TutorialDB]
GO

-- Create a new table called 'Customers' in schema 'dbo'


-- Drop the table if it already exists
IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL
DROP TABLE dbo.Customers;
GO

-- Create the table in the specified schema


CREATE TABLE dbo.Customers
(
CustomerId INT NOT NULL PRIMARY KEY, -- primary key column
Name [NVARCHAR](50) NOT NULL,
Location [NVARCHAR](50) NOT NULL,
Email [NVARCHAR](50) NOT NULL
);
GO

-- Insert rows into table 'Customers'


INSERT INTO dbo.Customers
([CustomerId],[Name],[Location],[Email])
VALUES
( 1, N'Orlando', N'Australia', N''),
( 2, N'Keith', N'India', N'keith0@adventure-works.com'),
( 3, N'Donna', N'Germany', N'donna0@adventure-works.com'),
( 4, N'Janet', N'United States', N'janet1@adventure-works.com');
GO

Para ejecutar el script, seleccione Ejecutar en la barra de herramientas. Aparecerán notificaciones en


el panel MENSAJES que indicarán el progreso de la consulta.

123
Uso de SQL Server Management Studio

SQL Server Management Studio es otra herramienta que puede descargar y ejecutar en el escritorio.
Consulte Descarga de SQL Server Management Studio (SSMS) para obtener más información.

Para conectarse a un servidor y una base de datos, siga estos pasos:

1. Abra SQL Server Management Studio.

2. Cuando aparezca el cuadro de diálogo Conectarse al servidor, escriba la información siguiente:

124
3. Seleccione Conectar. Se abre la ventana del Explorador de objetos.

4. Para ver los objetos de la base de datos, expanda Bases de datos y luego expanda el nodo de su
base de datos.

5. En la barra de herramientas, seleccione Nueva consulta para abrir una ventana de consulta.

6. Escriba las instrucciones SQL y, a continuación, seleccione Ejecutar para ejecutar consultas y
recuperar datos de las tablas de la base de datos.

125
Uso de SQL Server Data Tools en Visual Studio

Visual Studio es una herramienta de desarrollo popular para crear aplicaciones. Está disponible en
varias ediciones. Puede descargar la edición gratuita de la comunidad en la página Descargas de
Visual Studio del sitio web de Microsoft.

SQL Server Data Tools está disponible en el menú Herramientas de Visual Studio. Para conectarse a
una instancia de Azure SQL Database existente, haga lo siguiente:

1. En el menú Herramientas de Visual Studio, seleccione SQL Server y, a continuación, Nueva


consulta.

2. En el cuadro de diálogo Conectar, escriba la información siguiente y, a continuación,


seleccione Conectar:

126
127
3. En la ventana Consulta, escriba la consulta SQL y, a continuación, seleccione el
botón Ejecutar de la barra de herramientas. Los resultados aparecen en el panel Resultados.

3.4 CONSULTA DE DATOS RELACIONALES EN AZURE DATABASE FOR POSTGRESQL

PostgreSQL proporciona muchas herramientas que puede usar para conectarse a una base de datos
de PostgreSQL y ejecutar consultas. Estas herramientas incluyen la interfaz gráfica de
usuario pgAdmin y la utilidad de línea de comandos psql. También puede usar una gran cantidad de
utilidades de terceros.

En esta unidad, verá cómo conectarse a una base de datos de PostgreSQL que se ejecuta en Azure
Database for PostgreSQL desde la línea de comandos mediante psql y desde Azure Data Studio.

Recuperación de información de conexión para Azure Database for PostgreSQL

Para conectarse a una base de datos de PostgreSQL, necesita el nombre del servidor y las
credenciales de una cuenta que tenga derechos de acceso para conectarse al servidor. Puede
encontrar el nombre del servidor y el nombre de la cuenta de administrador predeterminada en

128
la página de información general de la instancia de Azure Database for PostgreSQL en Azure Portal.
Póngase en contacto con el administrador para obtener la contraseña.

Al igual que con Azure SQL Database, debe abrir el firewall de PostgreSQL para permitir que las
aplicaciones cliente se conecten al servicio. Para obtener información detallada, consulte Reglas de
firewall de Azure Database for PostgreSQL con un único servidor.

Uso de psql para consultar una base de datos

La utilidad psql está disponible en Azure Cloud Shell. También puede ejecutarla desde una ventana
del símbolo del sistema en el equipo de escritorio, pero primero deberá descargar e instalar el cliente
de psql. Puede encontrar el cliente de psql en el sitio web postgresql.org.

Para conectarse a Azure Database for PostgreSQL mediante psql, realice las operaciones siguientes:

1. Ejecute el siguiente comando. Asegúrese de reemplazar el nombre del servidor y el nombre del
administrador por los valores de Azure Portal.

Bash

psql --host=<server-name>.postgres.database.azure.com --username=<admin-


user>@<server-name> --dbname=postgres

Escriba la contraseña cuando se le solicite.

*Nota: postgres es la base de datos de administración predeterminada que se crea con Azure
Database for PostgreSQL. Puede crear bases de datos adicionales mediante el
comando CREATE DATABASE desde psql.

2. Si la conexión se realiza correctamente, verá el mensaje postgres=>.

129
3. Puede crear una nueva base de datos con el siguiente comando SQL:

SQL

CREATE DATABASE "Adventureworks";

*Nota: Puede escribir comandos en varias líneas. El carácter de punto y coma actúa como
finalizador del comando.

4. Dentro de psql, puede ejecutar el comando \c Adventureworks para conectarse a la base de datos.

5. Puede crear tablas e insertar datos mediante los comandos CREATE e INSERT, tal como se
muestra en los ejemplos siguientes:

SQL

CREATE TABLE PEOPLE(NAME TEXT NOT NULL, AGE INT NOT NULL);
INSERT INTO PEOPLE(NAME, AGE) VALUES ('Bob', 35);
INSERT INTO PEOPLE(NAME, AGE) VALUES ('Sarah', 28);
CREATE TABLE LOCATIONS(CITY TEXT NOT NULL, STATE TEXT NOT NULL);
INSERT INTO LOCATIONS(CITY, STATE) VALUES ('New York', 'NY');
INSERT INTO LOCATIONS(CITY, STATE) VALUES ('Flint', 'MI');

6. Puede recuperar los datos que acaba de agregar mediante los siguientes comandos SQL:

SQL

SELECT * FROM PEOPLE;


SELECT * FROM LOCATIONS;

7. Otros comandos de psql incluyen:

 \l para mostrar bases de datos.


 \dt para mostrar las tablas de la base de datos actual.

8. Puede usar el comando \q para salir de psql.

Conexión a la base de datos de PostgreSQL mediante Azure Data Studio

Para conectarse a Azure Database for PostgreSQL desde Azure Data Studio, primero debe instalar la
extensión de PostgreSQL.

1. En la página Extensiones, busque PostgreSQL.

130
2. Seleccione la extensión PostgreSQL y, a continuación, seleccione Instalar.

A continuación, puede usar la extensión para conectarse a PostgreSQL:

1. En Azure Data Studio, vaya a la barra lateral SERVIDORES y seleccione Nueva conexión.

131
2. En el cuadro de lista desplegable Tipo de conexión del cuadro de diálogo Conexión,
seleccione PostgreSQL.

3. Rellene los campos restantes con el nombre del servidor, el nombre de usuario y la contraseña del
servidor de PostgreSQL.

132
133
4. Seleccione Conectar para establecer la conexión. Una vez que se haya conectado correctamente,
el servidor se abrirá en la barra lateral SERVIDORES. Puede expandir el nodo Bases de datos para
conectarse a las bases de datos del servidor y ver su contenido. Use el comando Nueva consulta de
la barra de herramientas para crear y ejecutar consultas.

134
En el ejemplo siguiente se agrega una nueva tabla a la base de datos y se insertan cuatro filas.

SQL

-- Create a new table called 'customers'


CREATE TABLE customers(
customer_id SERIAL PRIMARY KEY,
name VARCHAR (50) NOT NULL,
location VARCHAR (50) NOT NULL,
email VARCHAR (50) NOT NULL
);

-- Insert rows into table 'customers'


INSERT INTO customers
(customer_id, name, location, email)
VALUES
( 1, 'Orlando', 'Australia', ''),
( 2, 'Keith', 'India', 'keith0@adventure-works.com'),
( 3, 'Donna', 'Germany', 'donna0@adventure-works.com'),
( 4, 'Janet', 'United States','janet1@adventure-works.com');

5. En la barra de herramientas, seleccione Ejecutar para ejecutar la consulta. Al igual que con Azure
SQL, aparecerán notificaciones en el panel MENSAJES para mostrar el progreso de la consulta.

6. Para consultar los datos, escriba una instrucción SELECT y, a continuación, haga clic en Ejecutar:

SQL

-- Select rows from table 'customers'


SELECT * FROM customers;

7. Los resultados de la consulta aparecerán en el panel de resultados.

3.5 CONSULTA DE DATOS RELACIONALES EN AZURE DATABASE FOR MYSQL

Al igual que con PostgreSQL, hay muchas herramientas disponibles para conectarse a MySQL que le
permiten crear y ejecutar scripts de comandos SQL. Puede usar la utilidad de línea de
comandos mysql, que también está disponible en Azure Cloud Shell, o bien usar herramientas
gráficas del escritorio como MySQL Workbench.

En esta unidad, verá cómo conectarse a Azure Database for MySQL mediante MySQL Workbench.

*Nota: Actualmente no hay extensiones disponibles para conectarse a MySQL desde Azure
Data Studio.

135
Recuperación de información de conexión para Azure Database for MySQL

Al igual que con SQL Database y PostgreSQL, necesita el nombre del servidor y las credenciales de
una cuenta que tenga derechos de acceso para conectarse al servidor. Puede encontrar el nombre
del servidor y el nombre de la cuenta de administrador predeterminada en la página de información
general de la instancia de Azure Database for MySQL en Azure Portal. Póngase en contacto con el
administrador para obtener la contraseña.

También debe abrir el firewall de MySQL para permitir que las aplicaciones cliente se conecten al
servicio. Para obtener información detallada, consulte Reglas de firewall del servidor de Azure
Database for MySQL.

Uso de MySQL Workbench para consultar una base de datos

Puede descargar e instalar MySQL Workbench desde la página Descargas de la comunidad de


MySQL.

Para conectarse al servidor de Azure MySQL mediante MySQL Workbench, siga estos pasos:

1. Inicie MySQL Workbench en el equipo.

2. En la página principal, seleccione Conectarse a una base de datos.

136
3. En la pestaña Parámetros del cuadro de diálogo Conectarse a una base de datos, escriba la
siguiente información:

137
4. Seleccione Aceptar para crear la conexión. Si la conexión es correcta, se abrirá el editor de
consultas.

5. Puede usar este editor para crear y ejecutar scripts de comandos SQL. En el ejemplo siguiente se
crea una base de datos denominada quickstartdb y, a continuación, se agrega una tabla
denominada inventory. Inserta algunas filas y luego las lee. Cambia los datos con una instrucción de
actualización y vuelve a leer las filas. Finalmente, elimina una fila y vuelve a leer las filas.

SQLCopiar

138
-- Create a database
-- DROP DATABASE IF EXISTS quickstartdb;
CREATE DATABASE quickstartdb;
USE quickstartdb;

-- Create a table and insert rows


DROP TABLE IF EXISTS inventory;
CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity
INTEGER);
INSERT INTO inventory (name, quantity) VALUES ('banana', 150);
INSERT INTO inventory (name, quantity) VALUES ('orange', 154);
INSERT INTO inventory (name, quantity) VALUES ('apple', 100);

-- Read
SELECT * FROM inventory;

-- Update
UPDATE inventory SET quantity = 200 WHERE id = 1;
SELECT * FROM inventory;

-- Delete
DELETE FROM inventory WHERE id = 2;
SELECT * FROM inventory;

6. Para ejecutar el código SQL de muestra, seleccione el icono de rayo en la barra de herramientas.

139
Los resultados de la consulta aparecen en la sección Cuadrícula de resultados en medio de la
página. La lista Salida de la parte inferior de la página muestra el estado de cada comando a medida
que se ejecuta.

3.6 EJERCICIO: USO DE SQL PARA CONSULTAR AZURE SQL DATABASE

https://docs.microsoft.com/es-mx/learn/modules/query-relational-data/6-exercise-perform-query

140

También podría gustarte