Diseño de Base de Datos
Página 1Unidad: 3
Tarea: Evidencia de aprendizaje. Bases de datos en base a un caso
Fecha: 25/01/2014
El propósito de la actividad es realizar una base de datos en SQL y ensayar las operaciones de creación de base de datos en base a comandos, realización 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 físico, hasta el conceptual y lógico.
Lee con atención el siguiente caso y realiza lo que se te pide en los puntos siguientes. Observa que después del caso que te presentan las tablas que tendría las bases de datos y los atributos de cada una de ellas:
Diseño de Base de Datos
Página 2“Una pequeña 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:
1. Clientes: Contiene una fila por cada uno de los clientes de la empresa. Sus campos son: número de cliente, nombre de la empresa, nombre de la persona de contacto de la empresa y límite de crédito.
2. RepresentanteVentas: Contiene una fila por cada uno de los vendedores de la empresa. Sus campos son: número de empleado, nombre edad, número de la oficina en la que trabaja el vendedor, título, fecha de contratación, id del director del empleado (todo empleado tiene un director del cual depende), cuota de ventas previstas y número de ventas realizadas.
3. Oficinas: Contiene una fila por cada una de las oficinas en las que trabajan los vendedores. Sus campos son: número de oficina, ciudad, región, ventas realizadas y objetivo de ventas. 4. Productos: Contiene una fila por cada producto disponible para ventas. Sus campos son: id del
producto, descripción, precio y existencia.
5. 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: número, fecha del pedido, número del cliente que hizo el pedido, número de empleado que realizó el pedido, el id del producto que fue pedido, la cantidad y el importe.
Diseño de Base de Datos
Página 3 cliente Representante venta Id-cliente Id-empleado director oficina producto pedido nombre edad Id-oficina titulo Fecha-contratacion Couta-ventaa No-venta-realizada Nombre-empresa Nombre-contacto empresa Limite-credito nombre Id-director Id-oficina ciudad region Venta-realizada Objetivo-venta Id-producto descripcion precio existencia Id-pedido Fecha-pedido Id-cliente Id-empleado cantidad importe Id-director tiene Realiza Tiene Realiza Id-empleado Representante-venta Id-director director Nombre Nombre Id-oficina Id-cliente cliente Nombre-empresa Nombre-contato-empresa Limite-credito edad tituloId-oficina ciudad region Ventas-realizadas Objetivo-ventas
Id-producto producto descripcion precio Id-pedido pedido Fecha-pedido Id-cliente oficina existencia
Id-empleado cantidad importe Fecha-contratacion Cuota-ventas
No-ventas-realizadas Id-director Id-cliente
Id-empleado
Id-empleado
Id-producto Id-pedido
Diseño de Base de Datos
Página 4Crea la BD VentasProductos en SQL server 2008, en base a comandos.
CREATE DATEBASE VentasProductos
Crea las tablas que se mencionan en el caso, con sus respectivos atributos, con instrucciones de SQL.
CREATE TABLE `producto` (
`id-productos` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, `descripcion` VARCHAR(200) NOT NULL,
`precio` DECIMAL(10,0) NOT NULL, `existencia` INT NOT NULL,)
CREATE TABLE `pedido` (
`id-pedido` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, `fecha-pedico` DATE NOT NULL,
`id-cliente` INT NOT NULL, `id-empleado` INT NOT NULL, `cantidad` INT NOT NULL,
`importe` DECIMAL(10,0) NOT NULL, `producto_id-productos` INT NOT NULL,) FOREIGN KEY (`producto_id-productos`)
CREATE TABLE`cliente` (
Diseño de Base de Datos
Página 5`nombre-empresa` VARCHAR(60) NOT NULL,
`nombre-contacto-empresa` VARCHAR(90) NOT NULL, `limite-credito` DECIMAL(10,0) NOT NULL,
`pedido_id-pedido` INT NOT NULL,) FOREIGN KEY (`pedido_id-pedido`)
CREATE TABLE `representante-venta` (
`id-empleado` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(90) NOT NULL,
`edad` INT NOT NULL,
`id-oficina` INT NOT NULL, `titulo` VARCHAR(60) NOT NULL, `fecha-contratacion` DATE NOT NULL, `cuota-ventas` INT NOT NULL,
`No-ventas-realizadas` INT NOT NULL, `id-director` VARCHAR(45) NOT NULL,) FOREIGN KEY (`cliente_id-clientes`)
Diseño de Base de Datos
Página 6CREATE TABLE `director` (
`id-director` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(60) NOT NULL,)
FOREIGN KEY (`representante-venta_id-empleado`)
CREATE TABLE `oficina` (
`id-oficina` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, `ciudad` VARCHAR(60) NOT NULL,
`region` VARCHAR(60) NOT NULL, `ventas-realizadas` INT NOT NULL,
`objetivo-ventas` VARCHAR(200) NOT NULL,) FOREIGN KEY (`representante-venta_id-empleado`)
Inserta por lo menos cinco registros a cada tabla por medio de comandos con instrucciones SQL.
Insertando valores en la tabla producto.
INSERT INTO `ventasprodutos`.`producto` (`id-productos`, `descripcion`, `precio`, `existencia`) VALUES ('3001', 'jabon de tocador 125 gr.', '12.50', '12');
INSERT INTO `ventasprodutos`.`producto` (`id-productos`, `descripcion`, `precio`, `existencia`) VALUES ('3002', 'detergente para ropa 500 gr.', '17.25', '25');
INSERT INTO `ventasprodutos`.`producto` (`id-productos`, `descripcion`, `precio`, `existencia`) VALUES ('3003', 'acido para uso comun 1 lt.', '13.45', '10');
INSERT INTO `ventasprodutos`.`producto` (`id-productos`, `descripcion`, `precio`, `existencia`) VALUES ('3004', 'fabuloso diferentes aromas 1 lt.', '19.00', '16');
Diseño de Base de Datos
Página 7INSERT INTO `ventasprodutos`.`producto` (`id-productos`, `descripcion`, `precio`, `existencia`) VALUES ('3005', 'cloro blanquedor 1 lt.', '15.00', '18');
Insertando valores en la tabla pedido
INSERT INTO `ventasprodutos`.`pedido` (pedido`, `fecha-pedico`, `id-cliente`, `id-empleado`, `cantidad`, `importe`, `producto_id-productos`) VALUES ('2001', '2014/02/15', '1001', '6001', '1', '12.50', '3001'); INSERT INTO `ventasprodutos`.`pedido` (pedido`, `fecha-pedico`, `id-cliente`, `id-empleado`, `cantidad`, `importe`, `producto_id-productos`) VALUES ('2002', '2014/03/16', '1002', '6002', '1', '17.25', '3002'); INSERT INTO `ventasprodutos`.`pedido` (pedido`, `fecha-pedico`, `id-cliente`, `id-empleado`, `cantidad`, `importe`, `producto_id-productos`) VALUES ('2003', '2014/04/17', '1003', '6003', '1', '13.45', '3003'); INSERT INTO `ventasprodutos`.`pedido` (pedido`, `fecha-pedico`, `id-cliente`, `id-empleado`, `cantidad`, `importe`, `producto_id-productos`) VALUES ('2004', '2014/05/18', '1004', '6004', '1', '19.00', '3004'); INSERT INTO `ventasprodutos`.`pedido` (pedido`, `fecha-pedico`, `id-cliente`, `id-empleado`, `cantidad`, `importe`, `producto_id-productos`) VALUES ('2005', '2014/06/19', '1005', '6005', '1', '15.00', '3005');
Insertando valores en la tabla cliente
INSERT INTO `ventasprodutos`.`cliente` (`id-clientes`, `nombre-empresa`, `nombre-contacto-empresa`, `limite-credito`, `pedido_id-pedido`) VALUES ('1001', 'chedraui', 'jose perez', '5000.00', '2005');
INSERT INTO `ventasprodutos`.`cliente` (`id-clientes`, `nombre-empresa`, `nombre-contacto-empresa`, `limite-credito`, `pedido_id-pedido`) VALUES ('1002', 'walmart', 'juan castillo', '7500.00', '2004');
INSERT INTO `ventasprodutos`.`cliente` (`id-clientes`, `nombre-empresa`, `nombre-contacto-empresa`, `limite-credito`, `pedido_id-pedido`) VALUES ('1003', 'megaComercial', 'adela diaz', '10000.00', '2003');
INSERT INTO `ventasprodutos`.`cliente` (`id-clientes`, `nombre-empresa`, `nombre-contacto-empresa`, `limite-credito`, `pedido_id-pedido`) VALUES ('1004', 'superAki', 'marina salazar', '12000.00', '2002');
Diseño de Base de Datos
Página 8INSERT INTO `ventasprodutos`.`cliente` (`id-clientes`, `nombre-empresa`, `nombre-contacto-empresa`, `limite-credito`, `pedido_id-pedido`) VALUES ('1005', 'soriana', 'miguel castañeda', '11500.00', '2001');
Insertando valores en la tabla director
INSERT INTO `ventasprodutos`.`director` (`id-director`, `nombre`,
`representante-venta_id-empleado`) VALUES ('4001', 'camilo cesto', '6001'); INSERT INTO `ventasprodutos`.`director` (`id-director`, `nombre`,
`representante-venta_id-empleado`) VALUES ('4002', 'juan gabriel', '6002'); INSERT INTO `ventasprodutos`.`director` (`id-director`, `nombre`,
`representante-venta_id-empleado`) VALUES ('4003', 'selena gomez', '6003'); INSERT INTO `ventasprodutos`.`director` (`id-director`, `nombre`,
`representante-venta_id-empleado`) VALUES ('4004', 'luis miguel', '6004'); INSERT INTO `ventasprodutos`.`director` (`id-director`, `nombre`,
`representante-venta_id-empleado`) VALUES ('4005', 'jenny rivera', '6005');
Insertando valores en tabla oficina
INSERT INTO `ventasprodutos`.`oficina` (`id-oficina`, `ciudad`, `region`, `ventas-realizadas`, `objetivo-ventas`, `representante-venta_id-empleado`) VALUES ('5001', 'cancun', 'q.roo', '5', '7', '6001');
INSERT INTO `ventasprodutos`.`oficina` (`id-oficina`, `ciudad`, `region`, `ventas-realizadas`, `objetivo-ventas`, `representante-venta_id-empleado`) VALUES ('5002', 'puertomorelos', 'q.roo', '10', '11', '6002');
INSERT INTO `ventasprodutos`.`oficina` (`id-oficina`, `ciudad`, `region`, `ventas-realizadas`, `objetivo-ventas`, `representante-venta_id-empleado`) VALUES ('5003', 'playacarmen', 'q.roo', '15', '20', '6003');
INSERT INTO `ventasprodutos`.`oficina` (`id-oficina`, `ciudad`, `region`, `ventas-realizadas`, `objetivo-ventas`, `representante-venta_id-empleado`) VALUES ('5004', 'tulum', 'q.roo', '30', '25', '6004');
INSERT INTO `ventasprodutos`.`oficina` (`id-oficina`, `ciudad`, `region`, `ventas-realizadas`, `objetivo-ventas`, `representante-venta_id-empleado`) VALUES ('5005', 'chetumal', 'q.roo', '20', '20', '6005');
Diseño de Base de Datos
Página 9Insertando valores en la tabla representanteventa
INSERT INTO `ventasprodutos`.`representanteventa` (`id-empleado`, `nombre`, `edad`, `id-oficina`, `titulo`, `fecha-contratacion`, `cuota-ventas`, `No-ventas-realizadas`, `id-director`, `cliente_id-clientes`) VALUES ('6001', 'carlos', '36', '5001', 'LAE', '2012/05/07', '10', '8', '4001', '1005'); INSERT INTO `ventasprodutos`.`representanteventa` (`id-empleado`, `nombre`, `edad`, `id-oficina`, `titulo`, `fecha-contratacion`, `cuota-ventas`, `No-ventas-realizadas`, `id-director`, `cliente_id-clientes`) VALUES ('6002', 'pedro', '25', '5002', 'LAET', '2011/06/12', '13', '15', '4002', '1004'); INSERT INTO `ventasprodutos`.`representanteventa` (`id-empleado`, `nombre`, `edad`, `id-oficina`, `titulo`, `fecha-contratacion`, `cuota-ventas`, `No-ventas-realizadas`, `id-director`, `cliente_id-clientes`) VALUES ('6003', 'enrrique', '28', '5003', 'contador', '2000/12/12', '15', '20', '4003', '1003');
INSERT INTO `ventasprodutos`.`representanteventa` (`id-empleado`, `nombre`, `edad`, `id-oficina`, `titulo`, `fecha-contratacion`, `cuota-ventas`, `No-ventas-realizadas`, `id-director`, `cliente_id-clientes`) VALUES ('6004', 'cataliano', '32', '5004', 'LAE', '2005/11/09', '20', '18', '4004', '1002'); INSERT INTO `ventasprodutos`.`representanteventa` (`id-empleado`, `nombre`, `edad`, `id-oficina`, `titulo`, `fecha-contratacion`, `cuota-ventas`, `No-ventas-realizadas`, `id-director`, `cliente_id-clientes`) VALUES ('6005', 'camila', '23', '5005', 'LAET', '2002/03/26', '15', '15', '4005', '1001');
Realiza por lo menos diez consultas diferentes de las que se presentaron en la unidad, utilizando algunos operadores lógicos, y observa lo que sucede.
SELECT * FROM ventasprodutos.director,representanteventa SELECT * FROM ventasprodutos.representanteventa where edad < 25 SELECT precio,existencia FROM producto where existencia >10 SELECT nombre, edad FROM representanteventa
select nombre, edad FROM m representanteventa WHERE edad>25 SELECT nombre,titulo FROM representanteventa WHERE titulo='LAE' SELECT *FROM oficina WHERE ciudad='cancun'
SELECT descripcion,precio,existencia FROM product ORDER BY descripcion DESC
SELECT descripcion,precio,existenciaFROM productowhere (existencia IN ('10'))ORDER BY descripcion DESC