Está en la página 1de 25

Diseño físico de la base de datos MySQL

CORPORACIÓN DE
EDUCACIÓN TECNOLÓGICA
COLSUBSIDIO

Curso Análisis de datos y Big Data


Unidad 2

Diseño de bases de datos relacionales


Diseño físico de la base de datos MySQL

1. Introdución
Existen varios gestores donde se puede crear una base de datos tipo relacional, en
un módulo anterior se creó la base de datos de nuestro caso práctico utilizando
Microsoft Access; en esta oportunidad se realizará el mismo trabajo, pero utilizando
MySQL con Workbench partiendo del modelo del problema planteado en nuestro
caso práctico.
Caso práctico: La empresa ABC es una comercializadora de ropa, y desea realizar un
análisis completo de su proceso de facturación, con la finalidad de tomar decisiones
comerciales inmediatas, teniendo en cuenta los resultados que arrojen los datos.
Dentro de los procesos que maneja la empresa se destacan los siguientes:
Realiza un proceso de facturación, que incluye productos facturados a sus clientes,
donde los elementos de la factura son: el encabezado y el detalle.
El encabezado contiene el número de la factura, la fecha, el nombre del cliente, el tipo
de cliente, la zona (Norte, Sur, Centro) y la ciudad (solo se tienen clientes en las
siguientes ciudades: Bogotá D.C, Cali, Cartagena de indias y Medellín) y el valor total de
la factura; el detalle de la factura contiene los productos (Camisas, Pantalones,
Chaquetas y Buzos), que se identifican con un consecutivo, un código, el nombre del
producto, el precio de venta por unidad y la cantidad de productos vendidos.
La información del cliente es la siguiente: número de identificación, nombre, tipo
(frecuente, ocasional) y estado (Activo, Inactivo).
Es necesario tener en cuenta las siguientes restricciones:
1. Un cliente puede realizar muchas compras
2. Una factura puede contener muchos productos en su zona de detalle, pero este
detalle corresponde a una única factura.
3. Un producto puede estar contenido en muchas facturas, dentro de su respectivo
detalle.
El detalle de una factura puede contener muchos productos.

Una vez analizado el caso, se diseñó el diagrama entidad relación que se muestra
en la Figura 1, no olvide revisar el material “4. Unidad 2 Diseño conceptual de la
base de datos” para llegar el diseño de este modelo

Figura 1: diagrama entidad relación del problema “Caso práctico”


Diseño físico de la base de datos MySQL

Posteriormente se diseñó el Modelo Relacional con base al mismo caso, el cual se


puede apreciar en la Figura 2; recuerde revisar el material “5. Unidad 2 Diseño lógico
de la base de datos” para llegar hasta este punto

Figura 2: Modelo Relacional del problema “Caso práctico”

2. Creación de la base de datos en MySQL


El motor de base de datos MySQL almacena toda la información de tablas y también
se pueden realizar las inserciones y reportes de sus datos almacenados. A
continuación, se demuestra el paso a paso para la creación de la base de datos con
relación al “caso práctico” que se viene desarrollando en las guías del curso; no
olvide que para el desarrollo de esta práctica debe tener instalada la aplicación para
esto puede revisar los materiales: 1. unidad 2. Instalación del WampServer.pdf, y 2.
unidad 2. Instalación del Workbench.pdf; dende se dan las indicaciones paso a paso
para instalar y dejar a punto este motor de base de datos.
Activando el servidor de bases de datos:
Inicialmente se debe encender el servidor de base de datos (puede acceder a este
a través de la aplicación WampServer desde el menú de aplicaciones de su sistema
operativo tal como se muestra a continuación:
Diseño físico de la base de datos MySQL

Una vez se acceda a la aplicación esta se alojará en la barra de notificaciones

1. El icono de la aplicación debe estar de color verde para que se pueda iniciar el
servidor, de lo contrario debe activarla dando clic a este botón y luego
seleccionar la opción “Start All Services”, tal como se indica a continuación.

De esta manera el botón de la aplicación debe cambiar a un color verde (Si los
colores son Rojo o Naranja, el servidor aun no estará disponible para ser usado)
Creando la conexión a la base de datos:
Una vez activo el servidor accederemos a la conexión de la base de datos a través
de Workbench. Para acceder a esta aplicación se procede desde el menú
aplicaciones de su sistema operativo tal como se muestra en la siguiente imagen:
Diseño físico de la base de datos MySQL

Posteriormente debe una ventana para crear la conexión de la base de datos

1. En esta ventana se debe presionar clic en el ícono del (+)


2. Aparece una ventana de conexión donde se debe indicar el nombre de la
conexión, para nuestro caso la llamaremos “Facturación”
3. Posteriormente presionar clic en el botón “Test Connection”
4. Aparecerá una ventana informativa donde se debe dar clic en el botón “Continue
Anyway” que generará el resultado de la conexión, tal como se evidencia en la
siguiente imagen:
Diseño físico de la base de datos MySQL

1. La nueva ventana debe mostrar un mensaje con la conexión satisfactoria, en


esta ventana hay que presionar el botón “OK”.
2. Finalmente presionar el Botón “OK” sobre la ventana de conexión para terminar
el proceso; tras este paso se deberá generar el nuevo módulo de conexión
llamado “Facturación”

1. Posteriormente se deberá acceder a esta conexión presionando Clic sobre ella


2. Se generará un mensaje de conexión donde habrá que presionar clic sobre el
botón “Continue Anyway”. Con lo cual se desplegará el entorno de MySQL
Workbench como se evidencia en la siguiente imagen:
Diseño físico de la base de datos MySQL

Creando la base de datos (Esquema):


En este punto se dispone a crear el esquema de la base de datos, para lo cual se
deben realizar los pasos que se señalan en las siguientes imágenes y cuyo proceso
a seguir se define a continuación:

1. Clic en el botón “Create a new schema in the connected server”


2. Dar un nombre al esquema de la base de datos, para nuestro caso la llamaremos
“Facturación”
3. Posteriormente presionar clic en el botón “Aplicar”
4. Se generará una nueva ventana para aplicar los cambios, sobre esta presionar
el botón “OK”. Esto mostrará una ventana con el “Script” o “Código” de los pasos
realizados anteriormente:

1. Sobre esta se debe presionar sobre el botón “Apply”


Diseño físico de la base de datos MySQL

1. Finalmente aparecerá otra ventana en la que se deberá presionar el botón


“Finish” para aplicar el Script.
Posteriormente definimos nuestro nuevo esquema como el esquema
predeterminado, con los pasos que se indican a continuación:

1. Presionar clic en la pestaña “Schemas”


2. Luego clic derecho sobre el esquema creado “Facturación”
3. En la lista que se despliega seleccionar la opción “Set as Default Schema”
Diseño físico de la base de datos MySQL

Creando las tablas de la base de datos:


Para dar inició con la creación de las tablas, presionar clic sobre la opción “Tables”
y luego “Create Table”

Se abrirá una ventana para la creación de la primera tabla. A continuación, se


indican los pasos para su creación (iniciaremos con la creación de la tabla
TIPO_CLIENTE; esto con base a nuestro Modelo Relacional, el cual se muestra en
la introducción de este documento y fue creado en unidades anteriores).
Diseño físico de la base de datos MySQL

1. Confirmar que se encuentre sobre el espacio de “Columns”, en caso contrario


presionar clic allí.
2. Indicar el nombre de la tabla “TIPO_CLIENTE” para esta tabla
3. Crear cada uno de los campos de la tabla con su correspondiente tipo (Tener en
cuenta los tipos de datos para el motor de bases de datos MySQL, que se
tratarán más adelante en este documento)
4. Definir la llave primaria para esta tabla con base al Modelo Relacional ya definido
(Ver modelo en la introducción de este documento). De igual manera definir la
opción “NN” que indica que esta columna será Not Null (No puede quedar vacía
por ser llave primaria.
5. Presionar el botón “Apply” para crear la tabla
6. De igual manera aparecerá una ventana para aplicar los cambios en el objeto (si
se desea que no aparezca mas esta ventana durante la creación de las
siguientes tablas se debe seleccionar la opción “No mostrar más este mensaje”
7. Presionar el botón “OK” para finalizar
Finalmente aparecerá un mensaje indicando que se han aplicado los cambios en en
TIPO_CLIENTE.
Posteriormente saldrá una ventana con el Script o Código de la creación de la tabla,
al cual le indicaremos “Apply”, tal como se muestra a continuación:

Finalmente presionamos Clic en el botón “Finish” para terminar este proceso.


Diseño físico de la base de datos MySQL

NOTA: En este punto es importante aclarar la necesidad de crear cada una de las
tablas en un orden específico; es decir, primero se deben de crear la tabla padre y
posteriormente las tabla hija. Las tablas hijas son aquellas que poseen la llave
foránea, y esta llave foránea corresponderá a la llave primaria de la tabla padre.
Con base a esto, el orden adoptado para la creación de las tablas en este manual
es el siguiente en su orden: TIPO_CLIENTE, ZONA_CLIENTE, CIUDAD_CLIENTE,
ESTADO_CLIENTE, CLIENTES, FACTURA, PRODUCTOS Y
DETALLE_FACTURA.
Continuando con la creación de las tablas, se evidencia que una vez cambiado el
nombre de la tabla se muestra el espacio para agregar cada uno de los campos tal
como se aprecia en la siguiente imagen:
Llave primaria: Como se pudo apreciar durante la creación de la tabla, al primer
campo se le asigna de manera automática la llave principal (En nuestro caso
práctico, cada una de las tablas posee una llave definida). Aquí es importante tener
en cuenta que los nombres de los campos son los mismos que se relacionaron en
el Modelo Relacional, de allí la facilidad de crear una base de datos.
En cuanto a los tipos de datos, es necesario identificar los tipos de datos que maneja
MySQL, de los cuales se muestra un resumen a continuación:
DATOS NUMERICOS:
TINYINT, SMALLINT, MEDIUMINT, INT o INTEGER, BIGINT
DATOS ALFANUMERICOS (Para cadenas de caracteres):
CHAR, VARCHAR, BINARY, VARBINARY, TINYBLOB, TINYTEXT, BLOB,
TEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEX, ENUM,
SET
DATOS PARA ALMACENAR FECHAS Y HORAS:
DATE, DATETIME, TIME, TIMESTAMP, YEAR,
Diseño físico de la base de datos MySQL

ATRIBUTOS DE CAMPOS:
NULL, DEFAULT, BINARY, INDEX, PRIMARY KEY, AUTO_INCREMENT,
UNIQUE, FULLTEXT
Nota: para conocer los datos que se almacenarán en esta base de datos (Tablas)
descargue el archivo “Tablas Base de datos Compañía ABC.txt” que se encuentra
dentro de la plataforma (Fundamentación/1. Material de estudio/Archivos MySQL /
Archivos Plano) de esta manera tendrá una mayor comprensión de la configuración
del tipo de datos de cada uno de los campos de las tablas que se construyan.
De manera similar se procederá a crear la segunda y cada una de las tablas
restantes de la base de datos Facturación (No olvide ir guardando los cambios
realizados):
Para crear la siguiente tabla se debe dirigir a la pestaña “crear” y dentro del grupo
tablas seleccionar la opción “Tabla” tal como se muestra en la siguiente imagen:
Es importante aclarar que durante la creación de las tablas hijas, se deben crear los
campos que serán las llaves foráneas, los cuales deben se ser del mismo tipo de
datos de la llave primaria de la tabla padre, tal como se evidencia durante la creación
de la tabla CLIENTES, que tiene las 4 llaves foráneas de sus correspondientes
tablas padre, donde su tipo de datos debe ser el mismo (Lo contrario crearía un
error al momento de crear las relaciones entre estas tablas), a continuación se
muestra la imagen de la creación de esta tabla.
Diseño físico de la base de datos MySQL

En la tabla FACTURA, el campo fecha_factura de debe ser tipo fecha y


n_identificacion es una llave foránea, lo cual indica que su tipo de datos debe ser
INT tal como se definió en su tabla padre (CLIENTE).

En la tabla PRODUCTOS el tipo de datos para el precio de venta se debe definir


como Decimal, ya que en MySQL no existe un tipo de dato moneda.

Las tablas de relación (en este caso DETALLE_FACTURA), para un par de tablas
cuando su relación es de muchos a muchos (para el caso de FACTURA –
PRODUCTOS), esta no lleva llave primaria, solo lleva las llaves foráneas, esto
quiere decir que a la tabla DETALLE_FACTURA de nuestro ejemplo, no le
crearemos llave primaria y se deberá eliminar el indicador PK y NN tal como se
muestra en la siguiente imagen:
Diseño físico de la base de datos MySQL

Una vez creadas las tablas en su totalidad, se apreciará una base de datos con
todas las tablas tal como se muestra en la siguiente imagen. Y el siguiente paso
consiste en crear las relaciones entre ellas, para lo cual es necesario cerrar todas
las tablas de la base de datos si se encuentran abiertas, como en el siguiente caso:

Una vez cerradas las tablas, se procederá a crear las relaciones, presionando clic
en la pestaña “Database” y posteriormente presionando clic en la opción “Reverse
Engineer” como se muestra en la siguiente imagen:

Aparecerá un asistente, en donde se debe seguir los pasos que se indican en las
siguientes imágenes en su orden:
1. Inicialmente se debe seleccionar la conexión realizada (En nuestro caso la
habíamos llamado “Facturación”
2. Posteriormente presionamos el botón “Next” para continuar con el asistente
Diseño físico de la base de datos MySQL
Diseño físico de la base de datos MySQL
Diseño físico de la base de datos MySQL
Diseño físico de la base de datos MySQL

Finalmente se mostrará la imagen de cada una de las tablas creadas, las cuales se
pueden mover para una mejor visualización y gestión de las relaciones que se
realizarán en los siguientes pasos:
Diseño físico de la base de datos MySQL

En la imagen anterior también se evidencian los iconos (Barra lateral izquierda) que
se utilizaran para realizar las relaciones.

Para la tabla TIPO_CLIENTE con la tabla CLIENTES se tomará la relación (opción


o herramienta) que indica la imagen de uno a muchos (1:n – Claves foráneas)
luego se presiona clic sobre la tabla hija (CLIENTES) y posteriormente clic sobre la
tabla padre (TIPO_CLIENTE) de esta manera se generará la relación como se
muestra en la siguiente imagen:

De la misma manera se relacionan las demás tablas (No olvide revisar el Modelo
Relacional, ya que allí se muestra claramente como deberían quedar estas
relaciones).
Tras realizar todas las relaciones, en la siguiente imagen se muestra el Modelo
Relacionar que genera MySQL para esta base de datos:
Diseño físico de la base de datos MySQL

Este modelo debe ser idéntico al Modelo Relacional que se encuentra en la


introducción de este documento
Si se desea exportar este diagrama a un formato de imagen se deben realizar los
siguientes pasos:

1. Menú “Archivo” o “File”


2. Seleccionar la opción “Export”
3. Y finalmente escoger la opción “Exportar as PNG”, este también se puede
exportar en otros formatos como PDF, etc.
Diseño físico de la base de datos MySQL

Para guardar todo el modelo de datos realizado se siguen los siguientes pasos:

1. Menú “Archivo” o “File”


2. Seleccionar la opción “Save Model”

Inserción de datos a la base de datos:


Una vez creadas las tablas y las relaciones, se procede a insertar los datos a cada
una de las tablas, para este trabajo es necesario que descargue los archivos planos
datos que se encuentran en el archivo “Tablas Base de datos Compañía ABC.txt”
que se encuentra dentro de la plataforma (Fundamentación/1. Material de
estudio/Archivos MySQL / Archivos Plano), y guárdelos en su computador.
Aunque hay varias formas de ingresar datos a las tablas, en este manual se usa el
método de importación. A continuación, se procederá a importar los datos, es
recomendable primero importar los datos de las tablas padres y posteriormente a
las tablas hijas (Se realizará la importación a la tabla TIPO_CLIENTE, ya que el
procedimiento es similar para todas las tablas restantes)
Para importar los datos a la tabla TIPO_CLIENTE presione clic derecho sobre la
tabla en la base de datos, luego sobre la opción “Table Data Import Wizard”
1. Desde la pestaña “Schemas” o Facturación acceder al listado de las tablas que
se encuentran en la base de datos
2. Presionar Clic derecho sobre la tabla TIPO_CLIENTE
3. Seleccionar la opción “Table data Import Wizard”
Diseño físico de la base de datos MySQL

En este punto le aparecerá un asistente para la importación de los datos

1. Presionar Clic en el botón “Browse” para buscar el archivo plano correspondiente


a los datos TIPO_CLIENTE.csv
2. Luego presionar el botón “Next”
Diseño físico de la base de datos MySQL
Diseño físico de la base de datos MySQL

Para verificar que los datos se insertaron correctamente se puede realizar a través
de el código SQL (select * from tipo_cliente) en la ventana de código; o también se
pueden visualizar presionando clic sobre la tabla en miniatura que aparece sobre
las tablas en el panel Schemas, tal como se muestra en la siguiente imagen:

1. Clic en la tabla miniatura para visualizar los datos (Para visualizar esta tabla en
miniatura se debe pasar el mouse por encima de la tabla ya que no es una opción
visible)
Diseño físico de la base de datos MySQL

Errores al importar datos: en caso que se presente algún error al importar las tablas
plantee cambiar el Encoding a un latin2, como se muestra en la siguiente imagen:

También podría gustarte