You are on page 1of 14

Actividad 5: Evidencia de aprendizaje unidad 3.

Un iversid ad A b i e r t Venegas a y a Prez Nombre del Facilitador: Beatriz Eugenia D i s t a n c i a d e M ico Nombre del Alumno: Paulo Cesar CasillasxMartnez. C a modelado r r e r a : I de n gun e ncaso i e r dado, a e n as Se realiza un Desarrollo de Software. como, se crea una base de datos mediante 5to.Cuatrimestre instrucciones SQL Materia: Diseo de Bases de Datos.

Grupo: DS-DBD-1301-002
26/03/2013

NDICE.

INSTRUCCIONES.
Evidencia de aprendizaje. Bases de datos en base a un caso.
Una vez estudiado los captulos de la unidad es de suma importancia que se ejercite el conocimiento, debido a que con ste tipo de actividad, se puede reforzar lo aprendido e identificar en qu punto no quedo tan claro el conocimiento.

El propsito de la actividad es realizar una base de datos en SQL y ensayar las operaciones de creacin de base de datos en base a comandos, realizacin de consultas en base a operadores del lgebra relacional y conocer el proceso de almacenamientos de las base de datos, las cuales, como se mencion, van desde el aspecto fsico, hasta el conceptual y lgico. Instrucciones: 1. Lee con atencin el siguiente caso y realiza lo que se te pide en los
puntos siguientes. Observa que despus del caso que te presentan las tablas que tendra las bases de datos y los atributos de cada una de ellas: Una pequea empresa distribuidora de productos requiere un sistema de base de datos que le ayude a controlar el procesamiento de los pedidos, dicha base de datos se llamar VentasProductos y est compuesta por las siguientes tablas:

Clientes: Contiene una fila por cada uno de los clientes de la empresa. Sus campos son: nmero de cliente, nombre de la empresa, nombre de la persona de contacto de la empresa y lmite de crdito. RepresentanteVentas: Contiene una fila por cada uno de los vendedores de la empresa. Sus campos son: nmero de empleado, nombre edad, nmero de la oficina en la que trabaja el vendedor, ttulo, fecha de contratacin, id del director del empleado (todo empleado tiene un director del cual depende), cuota de ventas previstas y nmero de ventas realizadas. Oficinas: Contiene una fila por cada una de las oficinas en las que trabajan los vendedores. Sus campos son: nmero de oficina, ciudad, regin, ventas realizadas y objetivo de ventas. Productos: Contiene una fila por cada producto disponible para ventas. Sus campos son: id del producto, descripcin, precio y existencia.

Pedidos. Contiene una fila por cada pedido ordenado por un cliente: Por simplicidad, se supone que cada pedido solo puede ser un solo producto. Sus campos son: nmero, fecha del pedido, nmero del cliente que hizo el pedido, nmero de empleado que realiz el pedido, el id del producto que fue pedido, la cantidad y el importe.

2. Crea los modelos para la base de datos del caso presentado (E-R y
Relacional). 3. Crea la BD VentasProductos en SQL server 2008, en base a comandos. 4. Crea las tablas que se mencionan en el caso, con sus respectivos atributos, con instrucciones de SQL.

5. Inserta por lo menos cinco registros a cada tabla por medio de


comandos con instrucciones SQL. 6. Realiza por lo menos diez consultas diferentes de las que se presentaron en la unidad, utilizando algunos operadores lgicos, y observa lo que sucede. 7. Guarda todas estas instrucciones en un documento de Word, con el nombre DBD_U3_EA_XXYZ. Enva el archivo a tu Facilitador(a).

Consulta la escala de evaluacin.

BASE DE DATOS EN BASE A UN CASO.


Modelado de base de datos
Modelo Entidad-Relacin (E-R).

Modelo Relacional.

Comandos SQL
Creacin de base de datos
CREATE DATABASE ventas_productos;

Creacin de tablas Tabla oficinas. CREATE TABLE ventas_productos.oficinas ( numeroOficina INT NOT NULL AUTO_INCREMENT, ciudad VARCHAR (40) NOT NULL, region VARCHAR (40) NOT NULL, ventasRealizadas DOUBLE NOT NULL, objetivoVentas DOUBLE NOT NULL, PRIMARY KEY (numeroOficina));

Tabla representante Ventas. CREATE TABLE ventas_productos.representante_Ventas ( numeroDeEmpleado INT NOT NULL AUTO_INCREMENT, nombre VARCHAR (40) NOT NULL, edad CHAR (10) NOT NULL, numeroOficina INT NOT NULL, titulo VARCHAR (10) NOT NULL, fechaContratacion DATE NOT NULL, idDirectorEmpleado INT NOT NULL, cuotaDeVentas DOUBLE NOT NULL, numeroVentasRealizadas INT NOT NULL, PRIMARY KEY (numeroDeEmpleado), FOREIGN KEY (numeroOficina) REFERENCES oficinas (numeroOficina)ON DELETE NO ACTION ON UPDATE CASCADE); Tabla clientes. CREATE TABLE ventas_productos.clientes ( numeroDeCliente int NOT NULL AUTO_INCREMENT, nombreDeLaEmpresa VARCHAR (40) NOT NULL, nombreContacto VARCHAR (40) NOT NULL, limiteDeCredito DOUBLE NOT NULL, numeroDeEmpleado int NOT NULL, PRIMARY KEY (numeroDeCliente), FOREIGN KEY (numeroDeEmpleado) REFERENCES representante_Ventas (numeroDeEmpleado) ON DELETE NO ACTION ON UPDATE CASCADE);

Tabla productos. CREATE TABLE ventas_productos.productos ( idProducto INT NOT NULL AUTO_INCREMENT, descripcion VARCHAR (40) NOT NULL, precio DOUBLE NOT NULL, existencias INT NOT NULL, PRIMARY KEY (idProducto) ); Tabla pedidos. CREATE TABLE ventas_productos.pedidos ( numeroPedido INT NOT NULL AUTO_INCREMENT, fechaPedido DATE NOT NULL, numeroDeCliente INT NOT NULL, numeroDeEmpleado INT NOT NULL, cantidad INT NOT NULL, importe DOUBLE NOT NULL, idProducto INT NOT NULL, PRIMARY KEY (numeroPedido), FOREIGN KEY (numeroDeCliente) REFERENCES clientes (numeroDeCliente)ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY (numeroDeEmpleado)REFERENCES representante_Ventas (numeroDeEmpleado)ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY (idProducto) REFERENCES productos (idProducto)ON DELETE NO ACTION ON UPDATE NO ACTION);

Insercin de registros. Tabla oficinas. 1. INSERT INTO ventas_productos.`oficinas`(`numeroOficina`, `ciudad`, `region`, `ventasRealizadas`, `objetivoVentas`) VALUES (1,'Sahuayo','Centro',120000.00,200000.00); 2. INSERT INTO ventas_productos.oficinas(ciudad, region, ventasRealizadas, objetivoVentas) VALUES ('Guadalajara','Occidente',150000.00,250000.00); 3. INSERT INTO ventas_productos.oficinas (ciudad, region, ventasRealizadas, objetivoVentas) VALUES ('Monterrey', 'Norte', 150000, 230000); 4. INSERT INTO ventas_productos.oficinas (ciudad, region, ventasRealizadas, objetivoVentas) VALUES ('Mxico, D.F.', 'Centro', 250000, 350000); 5. INSERT INTO ventas_productos.oficinas (ciudad, region, ventasRealizadas, objetivoVentas) VALUES ('Morelia', 'Centro', 250000, 350000); Tabla representante Ventas. 1. INSERT INTO ventas_productos.representanteventas (nombre, edad, numeroOficina, titulo, fechaContratacion, idDirectorEmpleado, cuotaDeVentas, numeroVentasRealizadas) VALUES ('Paulo Cesar Casillas Martnez', '40', 1, 'estudiante', 2013/01/15, 1, 10000, 8); 2. INSERT INTO ventas_productos.representanteventas (nombre, edad, numeroOficina, titulo, fechaContratacion, idDirectorEmpleado, cuotaDeVentas, numeroVentasRealizadas) VALUES ('Lilia Erika Guillen Garca', '35', 1, 'Lic. en Contabilidad', 2013/01/31, 1, 10000, 12); 3. INSERT INTO ventas_productos.representanteventas (nombre, edad, numeroOficina, titulo, fechaContratacion, idDirectorEmpleado, cuotaDeVentas, numeroVentasRealizadas) VALUES ('Gerardo Macias Torres', '55', 2, 'Pasante Ingeniera', 2012/01/15, 2, 20000, 15); 4. INSERT INTO ventas_productos.representanteventas (nombre, edad, numeroOficina, titulo, fechaContratacion, idDirectorEmpleado, cuotaDeVentas, numeroVentasRealizadas) VALUES ('Julieta Ramirez Garca', '30', 2, 'Pasante Ingeniera', 2012/01/15, 2, 20000, 4); 5. INSERT INTO ventas_productos.representanteventas (nombre, edad, numeroOficina, titulo, fechaContratacion, idDirectorEmpleado, cuotaDeVentas, numeroVentasRealizadas) VALUES ('Guadalupe Sanchez Ramirez', '58', 5, 'Pasante Ingeniera', 2012/06/15, 3, 15000, 2);

Tabla clientes. 1. INSERT INTO ventas_productos.clientes (nombreDeLaEmpresa, nombreContacto, limiteDeCredito, numeroDeEmpleado) VALUES ('Casa del Estudiante', 'Luis Silva Victor', 50000, 1); 2. INSERT INTO ventas_productos.clientes (nombreDeLaEmpresa, nombreContacto, limiteDeCredito, numeroDeEmpleado) VALUES ('Papeleria la prepa', 'Rafael Herrejn', 50000, 1); 3. INSERT INTO ventas_productos.clientes (nombreDeLaEmpresa, nombreContacto, limiteDeCredito, numeroDeEmpleado) VALUES ('INEA', 'Bertha Alicia Chavez Cabezas', 70000, 2); 4. INSERT INTO ventas_productos.clientes (nombreDeLaEmpresa, nombreContacto, limiteDeCredito, numeroDeEmpleado) VALUES ('H. Ayuntamiento Sahuayo', 'Rafael Ramirez Sanchez', 70000, 2); 5. INSERT INTO ventas_productos.clientes (nombreDeLaEmpresa, nombreContacto, limiteDeCredito, numeroDeEmpleado) VALUES ('Hispamex', 'Jos Mauricio Ramirez Buenrostro', 50000, 4); Tabla productos. 1. INSERT INTO ventas_productos.productos (descripcion, precio, existencias) VALUES ('Laptop TOSHIBA', 6500, 20); 2. INSERT INTO ventas_productos.productos (descripcion, precio, existencias) VALUES ('Laptop COMPAQ 2150', 7500, 20); 3. INSERT INTO ventas_productos.productos (descripcion, precio, existencias) VALUES ('PC COMPAQ 210', 5500, 20); 4. INSERT INTO ventas_productos.productos (descripcion, precio, existencias) VALUES ('Caon PANASONIC', 10500, 15); 5. INSERT INTO ventas_productos.productos (descripcion, precio, existencias) VALUES ('Pantalla GENERIC', 3200, 25); Tabla pedidos. 1. INSERT INTO ventas_productos.pedidos (fechaPedido, numeroDeCliente, numeroDeEmpleado, cantidad, importe, idProducto) VALUES ('2013/02/20', 1, 1, 1, 6500, 1); 2. INSERT INTO ventas_productos.pedidos (fechaPedido, numeroDeCliente, numeroDeEmpleado, cantidad, importe, idProducto) VALUES ('2013/02/25', 2, 1, 1, 7500, 2); 3. INSERT INTO ventas_productos.pedidos (fechaPedido, numeroDeCliente, numeroDeEmpleado, cantidad, importe, idProducto) VALUES ('2013/02/28', 3, 2, 1, 10500, 4); 4. INSERT INTO ventas_productos.pedidos (fechaPedido, numeroDeCliente, numeroDeEmpleado, cantidad, importe, idProducto) VALUES ('2013/03/01', 3, 2, 1, 3200, 5); 5. INSERT INTO ventas_productos.pedidos (fechaPedido, numeroDeCliente, numeroDeEmpleado, cantidad, importe, idProducto) VALUES ('2013/03/03', 1, 1, 1, 5500, 3); Creacin de vistas. 1. Vista para conocer los vendedores, con su respectiva oficina, ciudad y regin. CREATE VIEW vendedores_oficina AS SELECT representanteventas.nombre, representanteventas.fechaContratacion, representanteventas.numeroOficina, representanteventas.cuotaDeVentas, oficinas.ciudad,oficinas.region 10

FROM ventas_productos.oficinas, ventas_productos.representanteventas WHERE (representanteventas.numeroOficina = oficinas.numeroOficina); 2. Vista para conocer los clientes, con su respectivos vendedores. CREATE VIEW cliente_repVtas AS SELECT clientes.nombreDeLaEmpresa AS Cliente, clientes.nombreContacto AS Contacto, clientes.limiteDeCredito AS Credito, representanteventas.nombre AS Vendedor FROM ventas_productos.clientes INNER JOIN ventas_productos.representanteventas ON clientes.numeroDeEmpleado = representanteventas.numeroDeEmpleado 3. Vista para conocer los pedidos de los clientes, con sus respectivos productos. CREATE VIEW pedidos_cliente_gen AS SELECT clientes.nombreDeLaEmpresa, pedidos.numeroPedido, pedidos.fechaPedido, productos.descripcion, pedidos.cantidad, pedidos.importe FROM ventas_productos.pedidos, ventas_productos.productos, ventas_productos.clientes WHERE clientes.numeroDeCliente = pedidos.numeroDeCliente AND pedidos.idProducto = productos.idProducto

11

4. Vista para conocer los pedidos de los clientes, con sus respectivos productos. CREATE VIEW pedidos_cliente_Vendedor AS SELECT clientes.nombreDeLaEmpresa, pedidos.numeroPedido, pedidos.fechaPedido, productos.descripcion, pedidos.cantidad, pedidos.importe, representanteventas.nombre FROM ventas_productos.pedidos, ventas_productos.productos, ventas_productos.clientes, ventas_productos.representanteventas WHERE clientes.numeroDeCliente = pedidos.numeroDeCliente AND pedidos.idProducto = productos.idProducto AND representanteventas.numeroDeEmpleado = pedidos.numeroDeEmpleado 5. Vista para conocer los pedidos de los clientes, con sus respectivos productos, con bsqueda comodin. CREATE VIEW pedidos_cliente_part AS SELECT clientes.nombreDeLaEmpresa, pedidos.numeroPedido, pedidos.fechaPedido, productos.descripcion, pedidos.cantidad, pedidos.importe FROM ventas_productos.pedidos, ventas_productos.productos, ventas_productos.clientes WHERE clientes.numeroDeCliente = pedidos.numeroDeCliente AND pedidos.idProducto = productos.idProducto AND clientes.nombreDeLaEmpresa LIKE '%nombre_variable%' 6. Vista para conocer la cantidad de productos vendidos CREATE VIEW conteo_producto_pedidos AS SELECT pedidos.idProducto, COUNT(pedidos.idProducto) AS Cantidad, productos.descripcion AS Nombre FROM ventas_productos.pedidos INNER JOIN ventas_productos.productos ON pedidos.idProducto = productos.idProducto GROUP BY pedidos.idProducto 7. Vista para conocer el producto ms vendido. CREATE VIEW producto_mas_vendido AS SELECT idProducto, nombre, MAX(Cantidad) FROM ventas_productos.conteo_producto_pedidos

12

8. Vista para mostrar los clientes con ventas superiores a 10 mil pesos en un solo pedido CREATE VIEW mostrar_cliente_pedido_mayor_10mil AS SELECT clientes.nombreDeLaEmpresa AS Cliente FROM clientes INNER JOIN pedidos ON clientes.numeroDeCliente = pedidos.numeroDeCliente WHERE pedidos.importe >= 10000 9. Vista para mostrar mostar las ventas de todo el ao. CREATE VIEW tot_vta_ao AS SELECT SUM(pedidos.importe) AS 'TOTAL VENTAS' FROM ventas_productos.pedidos WHERE pedidos.fechaPedido >= '2013/01/01' 10. Correccin a vista anterior. CREATE OR REPLACE VIEW tot_vta_ao AS SELECT SUM(pedidos.importe) AS 'TOTAL VENTAS' FROM ventas_productos.pedidos WHERE pedidos.fechaPedido BETWEEN '2013/01/01' AND '2013/12/31' 11. Vista para mostar la cantidad de pedidos del mes de febrero CREATE VIEW tot_ped_mes_feb AS SELECT COUNT(*) AS 'TOTAL DEL MES' FROM ventas_productos.pedidos WHERE pedidos.fechaPedido BETWEEN '2013/02/01' AND ' 2013/02/28'

13

Bibliografa
Mxico, U. a. (2013). Diseo de Bases de Datos. En Modelado de Bases de Datos. Unidad 3 (pgs. 7-43). Mxico, D.F.: Secretara de Educacin Pblica.

14

You might also like