Sie sind auf Seite 1von 18

Encabezado: EVIDENCIA DE APRENDIZAJE 3.

Unidad 3. Evidencia de aprendizaje. Bases de datos en base a un caso.


Por:
Jorge Ricardo Escobar Carrasco.
AL12509938@unadmexico.mx

Diseo de bases de datos.


Universidad abierta y a distancia de Mxico.
mircoles 30 de abril de 2014

Facilitador:
Irma Flores Ros.
DL13FORI0534@unadmexico.mx

EVIDENCIA DE APRENDIZAJE 3.

Tabla de contenido
Sumario............................................................................................................................................3
Unidad 3. Evidencia de aprendizaje. Bases de datos en base a un caso..........................................4
Anlisis del caso..............................................................................................................................6
Tablas del caso............................................................................................................................6
Clientes...................................................................................................................................6
RepresentanteVentas...............................................................................................................6
Oficinas...................................................................................................................................6
Productos................................................................................................................................6
Pedidos...................................................................................................................................7
Directores...............................................................................................................................7
Modelo entidad relacin...............................................................................................................7
Modelo Relacional...........................................................................................................................8
Creacin de las tablas con instrucciones SQL.................................................................................9
// Estructura de tabla para la tabla `Clientes`..............................................................................9
// Estructura de tabla para la tabla `Directores`...........................................................................9
// Estructura de tabla para la tabla `Oficinas`..............................................................................9
// Estructura de tabla para la tabla `Pedidos`.............................................................................10
// Estructura de tabla para la tabla `Productos`.........................................................................10
// Estructura de tabla para la tabla `RepresentanteVentas`........................................................11
// Estructura de tabla para la tabla `RepresentanteVentas`........................................................12
Relaciones entre tablas..............................................................................................................12
Filtros para la tabla `Pedidos`...............................................................................................12
Filtros para la tabla `RepresentanteVentas`..........................................................................12
Insercin de los registros en las tablas por medio de cdigo SQL................................................13
// INSERTAR Oficinas..............................................................................................................13
// INSERTAR Directores...........................................................................................................13
// INSERTAR Clientes..............................................................................................................13
// INSERTAR Productos............................................................................................................14
// INSERTAR RepresentantesVentas.........................................................................................14
// INSERTAR Pedidos...............................................................................................................14
Consultas de prueba.......................................................................................................................15
Conclusin.....................................................................................................................................17
Bibliografa....................................................................................................................................18

EVIDENCIA DE APRENDIZAJE 3.

3
Sumario.

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.
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 que punto no quedo tan claro el conocimiento.

EVIDENCIA DE APRENDIZAJE 3.
Unidad 3. Evidencia de aprendizaje. Bases de datos en base a un caso.
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

EVIDENCIA DE APRENDIZAJE 3.
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.
1. Crea los modelos para la base de datos del caso presentado (E-R y Relacional).
2. Crea la BD VentasProductos en SQL server 2008, en base a comandos.
3. Crea las tablas que se mencionan en el caso, con sus respectivos atributos, con
instrucciones de SQL.
4. Inserta por lo menos cinco registros a cada tabla por medio de comandos con
instrucciones SQL.
5. Realiza por lo menos diez consultas diferentes de las que se presentaron en la unidad,
utilizando algunos operadores lgicos, y observa lo que sucede. Guarda todas estas
instrucciones en un documento de texto, con el nombre
DBD_U3_INSTRUCCIONESSQL_XXYZ. Enva el archivo a tu Facilitador(a).

EVIDENCIA DE APRENDIZAJE 3.

6
Anlisis del caso.

Por lo que se entiende de la oracin la base de datos registra las ventas de productos que
realiza cada vendedor, y estos vendedores estn distribuidos entre varias oficinas.
En este caso, las tablas ya estn definidas. Probablemente necesite agregar alguna entidad
nueva o cambiar los campos de acuerdo a las necesidades. Por ejemplo, cambiare el campo
numero de cliente de la tabla clientes a idCliente y repetir este proceso para estandarizar
los campos llave de las tablas.
En la tabla RepresentanteVentas existe un campo llave secundaria llamado idDirector
para hacerlo coherente con el diseo, agregar la entidad directores y la relacionar con
RepresentanteVentas con una relacin uno a muchos.
Las tablas son las siguientes:
Tablas del caso.
Clientes.
idCliente

nombreEmpresa

nombreContacto

limiteCredito

RepresentanteVentas.
idEmpleado nombreEmpleado edad idOficina titulo fechaContratacion idDirector cuotaPrevista ventasEmpleado

Oficinas.
idOficina

ciudad

Productos.
idProducto descripcion precio existencias

region

ventasOficina

objetivoVentas

EVIDENCIA DE APRENDIZAJE 3.

Pedidos.
idPedido

fechaPedido

idCliente

idProducto

cantidad

importe

Directores.
idDirector nombreDirector

Modelo entidad relacin.


A continuacin, anexo la figura 1, con el modelo E/R del caso:

Figura 1. Modelo E/R sin campos.


En la figura 1, se aprecian las relaciones entre las entidades del diseo de base de datos. A
continuacin, tenemos en la figura 2, el mismo modelo con los atributos anexados.

EVIDENCIA DE APRENDIZAJE 3.

Figura 2. Modelo E/R con atributos anexados.


Se puede apreciar que ante la aparente complejidad del diseo, an se mantienen las
mismas relaciones entre las entidades. Los atributos subrayados, son llaves primarias.
Modelo Relacional.
En la figura 3, podemos ver como se relacionan las entidades entre si a mayor detalle:

Figura 3. Modelo relacional del caso.


Como se puede apreciar, en el modelo relacional se definen las relaciones de forma
detallada. Ahora solo resta crear la base de datos.

EVIDENCIA DE APRENDIZAJE 3.
Creacin de las tablas con instrucciones SQL.
Ahora crear la base de datos con las siguientes instrucciones SQL:
// Estructura de tabla para la tabla `Clientes`
CREATE TABLE IF NOT EXISTS `Clientes` (
`idCliente` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nombreEmpresa` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`nombreContacto` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`limiteCredito` decimal(19,4) NOT NULL,
PRIMARY KEY (`idCliente`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
AUTO_INCREMENT=6 ;
// Estructura de tabla para la tabla `Directores`
CREATE TABLE IF NOT EXISTS `Directores` (
`idDirector` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nombreDirector` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
PRIMARY KEY (`idDirector`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
AUTO_INCREMENT=6 ;
// Estructura de tabla para la tabla `Oficinas`
CREATE TABLE IF NOT EXISTS `Oficinas` (
`idOficina` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ciudad` varchar(50) COLLATE latin1_spanish_ci NOT NULL,

EVIDENCIA DE APRENDIZAJE 3.
`region` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`ventasOficina` decimal(19,4) NOT NULL,
`objetivoVentas` decimal(19,4) NOT NULL,
PRIMARY KEY (`idOficina`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
AUTO_INCREMENT=6 ;
// Estructura de tabla para la tabla `Pedidos`
CREATE TABLE IF NOT EXISTS `Pedidos` (
`idPedido` int(10) unsigned NOT NULL AUTO_INCREMENT,
`idProducto` int(10) unsigned NOT NULL,
`idCliente` int(10) unsigned NOT NULL,
`fechaPedido` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`cantidad` int(11) NOT NULL,
`importe` decimal(19,4) NOT NULL,
PRIMARY KEY (`idPedido`),
KEY `idProducto` (`idProducto`,`idCliente`),
KEY `idCliente` (`idCliente`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
AUTO_INCREMENT=6 ;
// Estructura de tabla para la tabla `Productos`
CREATE TABLE IF NOT EXISTS `Productos` (
`idProducto` int(10) unsigned NOT NULL AUTO_INCREMENT,

10

EVIDENCIA DE APRENDIZAJE 3.
`descripcion` varchar(200) COLLATE latin1_spanish_ci NOT NULL,
`precio` decimal(19,4) NOT NULL,
`existencias` int(11) NOT NULL,
PRIMARY KEY (`idProducto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
AUTO_INCREMENT=6 ;
// Estructura de tabla para la tabla `RepresentanteVentas`
CREATE TABLE IF NOT EXISTS `RepresentanteVentas` (
`idEmpleado` int(10) unsigned NOT NULL AUTO_INCREMENT,
`idOficina` int(10) unsigned NOT NULL,
`idDirector` int(10) unsigned NOT NULL,
`nombreEmpleado` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`edad` tinyint(4) NOT NULL,
`titulo` varchar(5) COLLATE latin1_spanish_ci NOT NULL,
`fechaContratacion` date NOT NULL,
`cuotaPrevista` decimal(19,4) NOT NULL,
`ventasEmpleado` decimal(19,4) NOT NULL,
PRIMARY KEY (`idEmpleado`),
KEY `idOficina` (`idOficina`,`idDirector`),
KEY `idDirector` (`idDirector`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
AUTO_INCREMENT=6 ;

11

EVIDENCIA DE APRENDIZAJE 3.
// Estructura de tabla para la tabla `RepresentanteVentas`
Relaciones entre tablas.
Se deben establecer llaves e indices para realizar las relaciones en la base de datos. Las
relaciones se especifican de la siguiente manera:
Filtros para la tabla `Pedidos`
ALTER TABLE `Pedidos`
ADD CONSTRAINT `Pedidos_ibfk_2` FOREIGN KEY (`idCliente`) REFERENCES
`Clientes` (`idCliente`) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINT `Pedidos_ibfk_1` FOREIGN KEY (`idProducto`) REFERENCES
`Productos` (`idProducto`) ON DELETE NO ACTION ON UPDATE NO ACTION;
Filtros para la tabla `RepresentanteVentas`
ALTER TABLE `RepresentanteVentas`
ADD CONSTRAINT `RepresentanteVentas_ibfk_2` FOREIGN KEY (`idDirector`)
REFERENCES `Directores` (`idDirector`) ON DELETE NO ACTION ON UPDATE NO
ACTION,
ADD CONSTRAINT `RepresentanteVentas_ibfk_1` FOREIGN KEY (`idOficina`)
REFERENCES `Oficinas` (`idOficina`) ON DELETE NO ACTION ON UPDATE NO
ACTION;

12

EVIDENCIA DE APRENDIZAJE 3.

13

Insercin de los registros en las tablas por medio de cdigo SQL.


Ya con las tablas creadas, procedemos a insertar valores en las mismas. He aqu las
sentencias usadas para poblar las tablas con cinco registros cada una.
// INSERTAR Oficinas
INSERT INTO `DBD_U3_EA_JOEC`.`Oficinas` (`idOficina`, `ciudad`, `region`,
`ventasOficina`, `objetivoVentas`) VALUES (NULL, 'VERACRUZ', 'CENTRO', '', '500000.00'),
(NULL, 'OAXACA', 'SUR', '', '300000.00'), (NULL, 'POZA RICA', NORTE', '', '350000.00'),
(NULL, 'CANCUN', 'OESTE', '', '300000.00'), (NULL, 'COATZACOALCOS', 'CENTRO', '',
'530000.00');

// INSERTAR Directores
INSERT INTO `DBD_U3_EA_JOEC`.`Directores` (`idDirector`, `nombreDirector`) VALUES
(NULL, 'RAMIRO JIMENEZ'), (NULL, 'FRANCISCO GOMEZ'), (NULL, 'NANCY
HERRERA'), (NULL, 'JOSUE VILLA'), (NULL, 'MARIA DURAN');

// INSERTAR Clientes
INSERT INTO `DBD_U3_EA_JOEC`.`Clientes` (`idCliente`, `nombreEmpresa`,
`nombreContacto`, `limiteCredito`) VALUES (NULL, 'CSA CONSTRUCTORA', 'MARIO
MARTINEZ', '5000'), (NULL, 'FERRETERIA LA ESPECIAL', 'ANASTASIA HERNANDEZ',
'25000'), (NULL, 'CEMENTOS UNIDOS DEL NORTE', 'FEDERICO CANTU', '60000'),
(NULL, 'LADRILLOS Y CEMENTOS DEL CENTRO', 'MAGDALENA MORIN', '53000'),
(NULL, 'FIERROS Y CONSTRUCCIONES SA', 'MARIA FERNANDEZ', '78000');

EVIDENCIA DE APRENDIZAJE 3.

14

// INSERTAR Productos
INSERT INTO `DBD_U3_EA_JOEC`.`Productos` (`idProducto`, `descripcion`, `precio`,
`existencias`) VALUES (NULL, 'RUEDA CIRCULAR', '536.00', '783'), (NULL, 'MAQUINA
DEL TIEMPO', '475.5', '1'), (NULL, 'CONJUNTO MUSICAL', '358.5', '21'), (NULL,
'BANDERA DE MEXICO', '1280.60', '58'), (NULL, 'CUBETA CON AGUA', '85.9', '2501');

// INSERTAR RepresentantesVentas
INSERT INTO `DBD_U3_EA_JOEC`.`RepresentanteVentas` (`idEmpleado`, `idOficina`,
`idDirector`, `nombreEmpleado`, `edad`, `titulo`, `fechaContratacion`, `cuotaPrevista`,
`ventasEmpleado`) VALUES (NULL, '1', '1', 'RICARDO', '30', 'SR.', '2008-02-12', '25000',
'15200'), (NULL, '1', '1', 'DIANA', '25', 'LIC.', '2012-12-4', '65000', '78000'), (NULL, '2', '2',
'ANACLETO', '48', 'SR.', '1996-08-21', '10000', '500'), (NULL, '2', '2', 'SELENE', '35', 'ING.',
'2010-03-04', '15000', '32600'), (NULL, '3', '3', 'LUCIA', '21', 'SRA.', '2006-09-11', '25000',
'1500');
// INSERTAR Pedidos
INSERT INTO `Pedidos` (`idPedido`, `idProducto`, `idCliente`, `fechaPedido`, `cantidad`,
`importe`) VALUES (1, 1, 1, '2014-04-30 18:13:25', 2, 1072.0000), (2, 3, 1, '2014-04-30
18:13:25', 2, 7170.0000), (3, 4, 1, '2014-04-30 18:13:25', 10, 12806.0000), (4, 5, 2, '2014-04-30
18:13:25', 2500, 2147500.0000), (5, 2, 2, '2014-04-30 18:13:25', 1, 475.5000);

EVIDENCIA DE APRENDIZAJE 3.

15
Consultas de prueba.

Para terminar, realizar 10 consultas que obtienen informacin de la base de datos:


Listar el contenido de las tablas: Clientes, Directores, Oficinas, Productos y
RepresentanteVentas.
SELECT * FROM Directores;
SELECT * FROM Clientes WHERE limiteCredito > 55000;
SELECT * FROM Oficinas WHERE `region` NOT LIKE 'CENTRO';
SELECT * FROM Productos WHERE existencias < 40;
SELECT * FROM `RepresentanteVentas` WHERE `ventasEmpleado`>= `cuotaPrevista`;
Listar a los empleados relacionados por oficina.
SELECT `Oficinas`.*,`RepresentanteVentas`.* FROM Oficinas JOIN
`DBD_U3_EA_JOEC`.`RepresentanteVentas` ON `Oficinas`.`idOficina` =
`RepresentanteVentas`.`idOficina`
Listar a los empleados relacionados por director.
SELECT `Directores`.*,`RepresentanteVentas`.* FROM Directores JOIN
`DBD_U3_EA_JOEC`.`RepresentanteVentas` ON `Directores`.`idDirector` =
`RepresentanteVentas`.`idDirector`
Listar al empleado y oficina con mayores ventas:
SELECT `nombreEmpleado`, max(`ventasEmpleado`) FROM `RepresentanteVentas`;
SELECT `ciudad`, `region`, max(`ventasOficina`) FROM `Oficinas`;
Listado de pedidos :
SELECT `Productos`. `descripcion`, `Productos`. `precio`,`Clientes`. `nombreEmpresa`,

EVIDENCIA DE APRENDIZAJE 3.

16

`Clientes`. `nombreContacto`, `Pedidos`.`fechaPedido`,`Pedidos`.`cantidad`,`Pedidos`.`importe`


FROM Pedidos JOIN `DBD_U3_EA_JOEC`.`Clientes` ON `Pedidos`.`idCliente` =
`Clientes`.`idCliente` JOIN `DBD_U3_EA_JOEC`.`Productos` ON `Pedidos`.`idProducto` =
`Productos`.`idProducto`

EVIDENCIA DE APRENDIZAJE 3.

17
Conclusin.

A primera vista, el trabajo parece titnico: crear la base de datos con relaciones y datos
que sean coherentes. Pero aunque si es un trabajo laborioso, lo es solo al inicio. Una vez que el
diseo y la estructura de la base de datos ha sido terminada, esta puede funcionar para cualquier
numero de datos que se le introduzcan.
Al final del da, la labor del administrador de bases de datos, consta de dar mantenimiento
y generar consultas para obtener informacin.
Los sistemas gestores de bases de datos, siguen estos principios de diseo y son
herramientas que ayudan a preservar la informacion de forma coherente. Aun cuando desconozco
la mayora de los DBMS, estoy casi seguro que podre aprender a usarlos ya que si siguen el
modelo relacional, es casi seguro que los mecanismos van enfocados a ese modelo y por lo tanto
su aprendizaje no debera ser difcil.

EVIDENCIA DE APRENDIZAJE 3.

18
Bibliografa.

UNAD (2014), Ingeniera en desarrollo de software, Programa de la asignatura. Mxico:


Universidad abierta y a distancia de Mxico.
Cuadra D., Castro E., Iglesias A. M., Mrtinez P., Calle F. J., de Pablo C,..., Moreno L. (2008,
abril) Desarrollo de bases de datos: casos prcticos desde el anlisis a la
implementacin. (Primera Edicin), Mxico: Alfaomega.
Prez C. (2008, marzo), MySQL para Windows y Linux, (Segunda edicin), Mxico: Alfaomega.

Das könnte Ihnen auch gefallen