¿Qué aprenderá?

En este corto tutorial, aprenderá a crear bases de datos relacionales.

¿Qué construirá?

Construirá una base de datos relacional a partir de un modelo multidimensional.

¿Para qué?

Es común que modelos multidimensionales sean implementados en bases de datos relacionales, por lo tanto es necesario saber cómo crear tablas y bases de datos.

¿Qué necesita?

  1. Servidor SQL Developer 2019
  2. Microsoft SQL Server Management Studio
  3. Conocimientos básicos sobre bases de datos relacionales
  4. Archivo SQL: En el siguiente repositorio puede encontrar los archivos de datos requeridos para el desarrollo de este tutorial: https://github.com/MIAD-Modelo-Datos/Recursos/tree/main/WWImporters/Tutoriales/Crear%20base%20de%20datos

Suponga que WideWorldImporters ha definido el modelo multidimensional que se muestra en la imagen a continuación:

La compañía ha decidido realizar la implementación de este modelo multidimensional en una base de datos relacional. Para comenzar, deberá conectarse al servidor de la base de datos. Para esto, abra Microsoft SQL Server Management Studio conéctese al servidor local. Asegúrese de que el Authentication type sea SQL Login.

.

Una vez se haya conectado exitosamente, verá el servidor de la base de datos en el menú lateral izquierdo

Haga clic derecho sobre databases y seleccione la opción new database, esto abre una nueva pestaña en la cual podrá crear una nueva base de datos. Para esto, ingrese el nombre de la base de datos: WWImportersDWH, otra manera de crear una base de datos es usando sentencias de definición DDL (Data definition language), por medio del comando CREATE DATABASE DB_NAME

Una vez creada la base de datos, es necesario crear las tablas. Una tabla en SQL puede ser creada siguiendo el formato:

CREATE TABLE <nombre_tabla> (

<atributo_1> <tipoDato_1>,

<atributo_2><tipoDato_2>,

...

<atributo_n><tipoDato_n>

)

Adicional a la información de los atributos, debe también especificarse las restricciones de llaves primarias, foráneas y no nulidad. Por ejemplo, para crear una tabla correspondiente a la dimensión package se utiliza el siguiente comando:

CREATE TABLE package (

package_key INT NOT NULL,

package VARCHAR(255)

PRIMARY KEY (package_key)

)

Note que se está creando una tabla con dos atributos, uno de nombre package_key de tipo entero, que no permite valores nulos, y otro de nombre package de tipo varchar con límite de 255 caracteres. Adicionalmente, el atributo package_key es la llave primaria de la tabla package.

Adjunto, a este tutorial, encuentra un archivo ".sql" con los scripts de creación de todas las tablas requeridas para crear el modelo multidimensional completo. Tómese un momento para explorarlo, haga énfasis en la forma como la tabla de hechos se relaciona por medio de llaves foráneas con todas las dimensiones.

Es posible usar el comando insert para insertar nuevos datos en las tablas creadas, lo que denominamos poblar una tabla, para lo cual se utiliza el siguiente formato:

INSERT INTO <nombre_tabla>(<atributo_1>, <atributo_2>,...<atributo_n>)

VALUES (<valor_1>, <valor_2>,...<valor_n>)

Por ejemplo, para insertar una nueva fila en la tabla package, con package_key = 1 y package = ‘Caja de cartón' se usaría:

INSERT INTO package(package_key, package)

VALUES (1, ‘Caja de cartón')

También es posible actualizar filas de una tabla, con el comando update que tiene el siguiente formato:

UPDATE <nombre_tabla>

SET <atributo_1>=<valor_1>, <atributo_2>=<valor_2>, ..., <atributo_3>=<valor_3>

WHERE <condicion>

Por ejemplo, para actualizar el nombre del paquete que se creó anteriormente a ‘Botella de vidrio', se utiliza la siguiente sentencia:

UPDATE package

SET package = ‘Botella de vidrio'

WHERE package_key = 1

Otra opción para realizar la misma acción, si se conoce el contenido del atributo package es la siguiente:

UPDATE package

SET package = ‘Botella de vidrio'

WHERE package like ‘Caja de cart%'

Finalmente, para hacer consultas sobre una tabla, se usa el comando select. Una consulta sencilla, sigue el formato:

SELECT <atributo_1>, <atributo_2>, ..., <atributo_n>

FROM <nombre_tabla>

WHERE <condicion>

Por ejemplo, para obtener todas las filas de la tabla de paquetes, se ejecuta la siguiente sentencia:

SELECT package_key, package

FROM package

O si se quiere consultar un grupo de filas en particular, se puede incluir la cláusula where, por ejemplo, para obtener toda la información del paquete "1". se ejecuta la siguiente sentencia:

SELECT *

FROM package

WHERE package_key = 1

Para ejecutar sentencias SQL desde Management Studio, de clic derecho sobre el nombre de la base de datos y luego clic en New Query

Aparecerá en la parte derecha un editor de texto, en este editor, usted puede ingresar consultas SQL, y ejecutarlas con el botón superior .

Management Studio le notifica si una sentencia se ejecutó exitosamente o no, en la parte inferior derecha. Para visualizar los cambios, de clic derecho sobre la base de datos en el menú lateral izquierdo y luego en Refresh

Ahora lo invitamos a que utilice el archivo ".sql" anexo a este tutorial, para que termine de crear todas las tablas del modelo dimensional y poblarlas con algunos registros ejemplo. En particular, revise la forma de ingresar datos a la tabla de hechos factOrder . Recuerde que dado que existen llaves foráneas a las tablas de dimensiones, los valores a ingresar que hagan referencia a dichas dimensiones deben existir como filas en las respectivas tablas de dimensiones.

En este breve tutorial, debió haber recordado la forma de crear bases de datos y tablas relacionales, conceptos básicos del modelo relacional, al igual que a utilizar comandos para la inserción, actualización y consulta de datos utilizando SQL. Esto le será útil para implementar modelos multidimensionales en bases de datos relacionales.

La página https://www.w3schools.com/sql/default.asp contiene ejemplos e información de los varios tipos de operaciones que se pueden realizar con SQL.