4.1. La base de datos demo

Podeís ver la creación de la base de datos demo en el apartado “Proceso por lotes” de esta misma unidad didáctica.

En esta sección utilizaremos la base de datos demo que hemos creado con el comando source demo.sql. Así que, antes de estudiar las consultas en MySQL, revisaremos brevemente la estructura de esta base de datos, que consta de las siguientes tablas:

 

Las cuatro tablas representan, de manera ficticia, la base de datos de un distribuidor de equipos de procesamiento. Están diseñadas para servir de ejemplo a los casos presentados en este capítulo, por lo que no necesariamente serán útiles en la vida real.

En nuestro ejemplo imaginario representamos la siguiente situación.

•    Nuestro vendedor tiene una relación de proveedores que venden sus productos a crédito, en efectivo o ambos. Las compras a crédito pagan intereses, pero son útiles porque no siempre es posible pagar en  efectivo. Se utiliza una columna de tipo conjunto para pago, que puede tomar los valores ’crédito’, ’efectivo’ o ambos:

create table proveedores (
empresa varchar(20) not null,
pago set(’crédito’,’efectivo’),
primary key (empresa)
);

Los productos que se distribuyen son partes de equipo de cómputo. Para la mayoría de los productos en el mercado, los fabricantes sugieren un precio de venta al público que, aunque no es obligatorio, los consumidores no están dispuestos a pagar más. Las claves de los productos son asignadas para control interno con un número consecutivo. Con estas especificaciones, la tabla productos se define de la manera siguiente:

create table productos (
parte varchar(20),
tipo varchar(20) ,
especificación varchar (20) ,
psugerido float(6,2),
clave int(3) zerofill not null auto_increment,
primary key (clave)
);

•    La empresa define una política para las ganancias mínimas que se deben obtener en ventas: el 5% al por mayor y el 12% al por menor. Estos valores se almacenan en la tabla ganancias, donde se decidió incluir una columna de nombre factor, con el número por el que se multiplica el precio de compra para obtener el precio de venta. Los tipos de venta ‘Por mayor’ y ‘Por menor’ se definen con un tipo de datos enum:

create table ganancia(
venta enum(’Por mayor’,’Por menor’),
factor decimal (2,2)
);

•    La lista de precios se define a partir de la empresa proveedor y el producto, asignándole un precio. Por ese motivo, las columnas empresa y clave se definen como foreign key.

create table precios (
empresa varchar(20) not null,
clave int(3) zerofill not null,
precio float(6,2),
foreign key (empresa) references proveedores,
foreign key (clave) references productos
);