9. Respuesta: (1) Primero dibuje algunas dependencias funcionales importantes. Todas estas dependencias funcionales se derivan de las descripciones del texto y los supuestos semánticos de los ejercicios. Los supuestos semánticos son los siguientes:
1) Un empleado no puede ser líder de varios departamentos al mismo tiempo; 2) Un empleado no puede trabajar en varios departamentos al mismo tiempo; en múltiples proyectos de producción al mismo tiempo;
4) Un empleado no puede trabajar en dos oficinas diferentes al mismo tiempo; 5) Un empleado no puede tener dos o más teléfonos al mismo tiempo;
ÁREA
DBUDGET
OFF#DEPT#MGR_EMP#
TELÉFONO#EMP#PROJ#PBUDGET#
TRABAJO p>
FECHA
SALARIO
6) Un proyecto de producción no se puede asignar a varios departamentos al mismo tiempo 7) Una oficina no se puede asignar a varios departamentos al mismo tiempo; tiempo;
8) El número de departamento, el número de empleado, el número de proyecto, el número de oficina y el número de teléfono son únicos a nivel mundial. (2) Primero diseñe un conjunto de patrones de relación de acuerdo con la Figura 5.12, todos los cuales pertenecen a INF. DEPT(DEPT#, DBUDGET, MGR_EMP#) PRIMARY KEY(DEPT#)
DEPT# y MGR_EMP# son códigos candidatos y DEPT# se utiliza como código principal.
F={DEPT#→DBUDGET,DEPT#→MGR_EMP#,MGR_EMP#→DEPT#} EMPI(EMP#,DEPT#,PROJ#,OFF#,PHONE# CLAVE PRIMARIA (EMP#)
F={EMP#→DEPTO#, EMP#→PROY#, EMP#→OFF#, EMP#→TELÉFONO#, TELÉFONO#→OFF#, APAGADO#→DEPTO#, PROJ#→DEPTO# } TRABAJO(EMP#,JOBTITLE)
CLAVE PRIMARIA(EMP#,JOBTITLE)
F={EMP#,JOBTITLE→EMP#,EMP#,JOBTITLE→JOBTITLE} SALHIST( EMP#, TRABAJO, FECHA, SALARIO) CLAVE PRIMARIA (EMP#, FECHA)
F={EMP#, FECHA→TRABAJO, EMP#, FECHA→SALARIO} PROJ(PROY#, DEPT#, PBUDGET ) LLAVE PRIMARIA (PROJ#)
F={PROJ#→DEPT#,PROJ#→PBUDGET} OFICINA(OFF#,DEPT#,AREA) LLAVE PRIMARIA (OFF#)
F={OFF#→DEPTO#, OFF#→AREA} TELÉFONO(TELÉFONO#,OFF#) TECLA PRIMARIA (TELÉFONO#)
F={PHQNE#→OFF#}
(3) Ahora analicemos estos 7 patrones de relación y encontremos que: los atributos de SALHIST(EMP#, DATE, JOBTITLE, SALARY) contienen los atributos de JOB(EMP#, JOBTLTLE), entonces JOB(EMP#, JOBTITLE) Se puede eliminar
Tanto OFF# como DEPT# en EMP1 dependen del código principal (EMP#).
OFF# pasa por PHONE#, DEPT# pasa por PROJ# o OFF# (y luego por PHONE#) dependiendo transitivamente de {EMP#}, por lo que EMP1 (EMP#, DEPT#, PROJ#, OFF#, PHONE#) puede descomponerse en los siguientes cuatro patrones de relación 3NF: EMP(EMP#, PROJ#, PHONE#) PRIMARY KEY (EMP#) X(PHONE#, OFF#)
PRIMARY KEY(PHONE#) Y( PROJ# , DEPT#)
LLAVE PRIMARIA(PROJ#) Z(OFF#, DEPT#) LLAVE PRIMARIA(OFF#)
Sin embargo, X es TELÉFONO e Y es la proyección de PROJ, Z es la proyección de OFFICE, por lo que X, Y y Z pueden eliminarse.
Finalmente, se pueden obtener los siguientes seis patrones de relación. Todos estos patrones de relación pertenecen a 3NF. Además, se descubre que también son BCNF.
DEPT(DEPT#, DBUDGET, MGR_EMP#) CLAVE PRIMARIA(MGR_EMP#) EMP(EMP#, PROJ#, PHONE#) CLAVE PRIMARIA(EMP#)
SALHIST(EMP #,FECHA,TÍTULO DE TRABAJO,SALARIO) CLAVE PRIMARIA (EMR#)
PROJ(PROJ#,DEPT#,PBUDGET) CLAVE PRIMARIA(PROJ#)
OFICINA(OFF#,DEPT #,ÁREA) TECLA PRIMARIA(OFF#) TELÉFONO(TELÉFONO#,OFF#)
TECLA PRIMARIA(TELÉFONO#)
10. Respuesta: Los supuestos semánticos son los siguientes:
(1) Las direcciones de envío de dos clientes cualesquiera son diferentes (2) Cada pedido tiene un número de pedido único;
(3) Los detalles del pedido de cada pedido tienen un número único en el pedido. El gráfico de dependencia de la función es el siguiente:
ADDRESSADDRESS
QTYORD
ORD#
DESCUENTO
CREDLIM
BAL
CUST#
CANTIDADOUTDANGER
PLANTA#CANTIDADOH
ITEM#DESCNLINE#
El patrón de relación BCNF correspondiente es el siguiente:
CUST(CUST#,BAL,CREDLIM,DISCOUNT) PRIMARY KEY(CUST#) SHIPTO(ADDRESS,CUST#) PRIMARY KEY(DIRECCIÓN)
ORDHEAD (ORD#,DIRECCIÓN,FECHA) CLAVE PRIMARIA(ORD#)
ORDLINE(ORD#,LINE#,ITEM#,QTYORD,QTYOUT) CLAVE PRIMARIA (ORD#,LINE#) ARTÍCULO(ARTÍCULO#, DESCN)
CLAVE PRIMARIA(ARTÍCULO#)
IP(ARTÍCULO#, PLANTA#, CANTIDADOH, PELIGRO) CLAVE PRIMARIA (ARTÍCULO#, PLANTA#) p>