Tarea 3 BD

PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INFORMÁTICA Tarea 3 DAVID P

Views 78 Downloads 0 File size 414KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INFORMÁTICA

Tarea 3

DAVID PATRICIO ERAZO MARTINEZ MICHAEL ANTONY FERNANDEZ ORTEGA

INF – 2243 JUNIO, 2017

Lista

Lista figuras ................................................................................................................................ ii 1

Ejercicio 1 ............................................................................................................................ 1

2

Ejercicio 2 ............................................................................................................................ 2

3

Ejercicio 3 ............................................................................................................................ 3

4

Ejercicio 5 ............................................................................................................................ 4

5

Ejercicio 6 ............................................................................................................................ 5

6

Ejercicio 7 ............................................................................................................................ 5

7

Ejercicio 8 ............................................................................................................................ 6

i

Lista figuras

Figura 2-1 Código Ejercicio 2 ..................................................................................................... 2 Figura 2-2 Datos de salida Ejercicio 2......................................................................................... 2 Figura 3-1 Código de consulta Ejercicio 3 .................................................................................. 3 Figura 3-2 Datos de salida Ejercicio 3......................................................................................... 3 Figura 7-1 Código Ejercicio 8 ..................................................................................................... 6

ii

1

Ejercicio 1

1. Explica la consecuencias que tiene sobre los datos almacenados en la base de datos la ejecución de la sentencia de borrado DELETE FROM productos WHERE codpro = 'VJ1220'; 

Debes responder teniendo en cuenta los siguientes casos, indicando claramente qué filas de qué tablas se verán afectadas, de qué modo y por qué: a. En la base de datos no hay ninguna factura en la que se haya comprado dicho producto. b. En la base de datos hay 27 facturas en las que se ha comprado dicho producto.

RESPUESTA: 

CASO 1: En el caso que no haya factura con la compra eliminada, esta no afectara a ninguna otra fila de la tabla, dado que en ella solo se almacena el código de los productos vendidos.



CASO 2: En este caso al eliminar un producto, afectara a la ‘lineas_fac’ ya que en este se almacena el código del producto comprado, en el caso de ser eliminado, al consultar el detalle del producto adquirido esta nos debería arrojar un error dado que no existiría el código del producto en la fila ‘codart’ de ‘líneas_fac’.

1

2

Ejercicio 2

Se quieren hacer etiquetas para enviar una carta a los clientes que a lo largo del año 2016 han comprado el producto L76424 avisándoles de que lo vamos a descatalogar.

RESPUESTA:

Figura 2-1 Código Ejercicio 2

Para poder unir dos atributos y mostrarlos en una columna, se dio uso de la función CONCAT y para transformar en mayúscula el nombre de comuna se utilizó la función UPPER.

Figura 2-2 Datos de salida Ejercicio 2

2

3

Ejercicio 3

El jefe se ha planteado si convendría mandar la carta también a los clientes que compraron el producto L76424 en 2015 pero no en 2016, así que quiere saber cuántos clientes son para valorar si merece la pena. Escribe una sentencia SELECT que dé como resultado el número de clientes que en 2015 compraron el producto L76424 y en 2016 no lo compraron.

RESPUESTA:

Figura 3-1 Código de consulta Ejercicio 3

En primera instancia se realizó un filtro con ‘where’, en cual seleccionaba los clientes que han comprado el artículo con código ‘L76424’ realizada en el año 2015. Posteriormente se realizó una su subconsulta para poder filtrar las compras realizadas en el año 2016, utilizando el código de los clientes antes filtrado.

Figura 3-2 Datos de salida Ejercicio 3

3

4

Ejercicio 5

Busca una clave alternativa para cada una de las siguientes tablas teniendo en cuenta las columnas que las forman (no incluyas nuevas columnas). Si para alguna tabla no encuentras una clave alternativa, explica el motivo. a. CLIENTES: b. COMUNAS: c. LINEAS_FAC:

RESPUESTA: 

Clientes: No se encontró clave candidata ya que, si existe dos personas con un mismo nombre viviendo en una misma casa, se tendrá que el código postal, comuna y el nombre va a ser el mismo para los dos y la base de datos almacenara un dato duplicado, en el caso que el código cliente no se usara.



Comunas: Ya que el nombre de la comuna se puede repetir en alguna otra región, por sí sola no podría ser una clave candidata, pero en cambio sí se concatena con el código de la comuna estas podrían usarse como una clave candidata.



Lineas_Fac: No se encontró clave candidata, puede que haya clientes que compren la misma cantidad de un producto, en ese caso tendrán, en común el código del artículo, precio, descuento por cantidad y línea, por lo que se tendrá valores duplicados.

4

5

Ejercicio 6

Considerando la tabla VENDORES: ¿Qué significa el nulo que hay en la columna codjefe?

RESPUESTA: Puede existir casos que hayan mandos más altos dentro de una empresa en este caso una tienda, por lo que estos no tendrán jefe, es por ello que es conveniente que el código jefe lleve null.

6

Ejercicio 7

Los vendedores 5 y 455 van a abandonar la empresa, ¿podemos eliminar sus filas de la tabla VENDEDORES sin violar ninguna regla de integridad? Justifica la respuesta. En caso de que el borrado viole alguna regla de integridad ¿qué acciones compensatorias se podrían realizar para llevar a cabo dicho borrado sin violar la integridad?

RESPUESTA: Al eliminar un vendedor este dejara un valor null en el código vendedor, y dado que código vendedor es parte de la clave foránea de Facturas, se estará violando la regla de integridad referencial, ya que la clave foránea que esta almacenada en Facturas es distinto de null.

5

7

Ejercicio 8

¿Qué debemos escribir en el SELECT de la siguiente sentencia para ver todos los datos de la factura pero sin ver los nulos en iva y dto, sino ver ceros en su lugar? SELECT ... FROM facturas;

RESPUESTA: Para cambiar el valor de null a 0 al mostrar se utiliza de la función ifnull(dato,0), la figura muestra el código implementado para mostrar los datos de la tabla facturas, colocando un 0 en los valores nulos de iva y dto.

Figura 7-1 Código Ejercicio 8

6