Recuperatorio Primer Parcial 1er Cuat 2013 (Bases de Datos)

De Cuba-Wiki

Modelización

Parte a

Una cadena de electrodomésticos desea informatizar parte de su operatoria.

La cadena se divide en sucursales, las cuales se identifican por un número de sucursal y se desea almacenar su nombre, dirección y teléfono.

Se comercializan productos, de los cuales interesa conocer su descripción, precio y país de origen. En cada sucursal, cada producto es provisto por un único provceedor. Los proveedores pueden trabajar con cualquier sucursal y proveer múltiples productos para cada una. A su vez, el precio de un producto puede ser distinto en cada sucursal.

Para ciertos productos, puede llegar a haber promociones de bancos. Esta promoción posee fecha de inicio y fin de vigencia, porcentaje a descontar y banco otorgante. Para cada producto no puede haber más de una promoción vigente por banco.

En las sucursales trabajan empleados. Cada empleado posee un número de legajo, fecha de nacimiento y nombre. Además, los empleados pueden ser de ventas, del sector de entregas o administrativos. De los administrativos desea almacenarse s unúmero de interno y de los de ventas su monto de bono mensual por cumplir los objetivos de venta.

Es importante tener en cuenta que ciertas sucursales donde hay poco personal, un empleado podría llegar a cumplir múltiples funciones.

Parte b

Ahora se le suma la restricción de que los empleados de ventas solamente pueden comercializar ciertos productos en la sucursal donde trabajan.

Parte c

Usando DER, definir un ejemplo donde se use agregación y hacer su pasaje a MR indicando PK, CKs y FKs (indicando a dónde apunta cada una).

Lenguajes de Consulta

Dada la siguiente base de datos:

  • Club(clubId,nombre,fechaFundacion)
  • Partido(pid,clubIdLocal,clubIdVisita,golesLocal,golesVisita,torneo,fecha)

Parte a

Mediante SQL, obtener una vista que tenga los nombres de los clubes y la cantidad de puntos obtenidos como local (3 puntos si ganó, 1 si empató, 0 si perdió) para el torneo "clausura" del año 2009. Es posible utilizar la función CASE(golesLocal>golesVisita,3,golesLocal=golesVisita,1,goleslocal<golesVisita,0).

Parte b

Mediante SQL obtener los nombres de los clubes que les ganaron al menos una vez a todos los clubes.

Parte c

Usando CRT obtener los pares de clubes (A,B) tales que todas las veces que jugaron A y B, B nunca ganó.

Normalización

Dados: R = (A,B,C,D,E) F = (A->B, B->D, CD->E, E->C) Se pide:

Parte a

Hallar las claves

Parte b

Indicar en qué FN se encuentra R. Justificar la respuesta.

Parte c

Indicar si la descomposición (ADC,CDE,ABC) es SPI. Justificar la respuesta.

Parte d

Ídem anterior pero con respecto a SPDF.

Parte e

Hallar una descomposición de R en FNBC que sea SPI. Utilizar el algoritmo visto en clase.