Recuperatorio Primer Parcial 1er Cuat 2013 (Bases de Datos)
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.