Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CORPORACIÓN DE
EDUCACIÓN TECNOLÓGICA
COLSUBSIDIO
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
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
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
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.
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
Para guardar todo el modelo de datos realizado se siguen los siguientes pasos:
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: