0% encontró este documento útil (0 votos)
2 vistas6 páginas

Fundamentos de Bases de Datos: Segundo Parcial

El documento detalla las instrucciones para la presentación de un examen parcial sobre fundamentos de bases de datos, incluyendo requisitos de formato y penalizaciones por respuestas incorrectas. Se presentan varios ejercicios relacionados con dependencias funcionales y multivaluadas, diseño de esquemas, y optimización de consultas SQL. Además, se abordan temas de concurrencia y recuperación en transacciones, solicitando la creación de historias que cumplan con diferentes propiedades de serialización y recuperabilidad.

Cargado por

Rick
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas6 páginas

Fundamentos de Bases de Datos: Segundo Parcial

El documento detalla las instrucciones para la presentación de un examen parcial sobre fundamentos de bases de datos, incluyendo requisitos de formato y penalizaciones por respuestas incorrectas. Se presentan varios ejercicios relacionados con dependencias funcionales y multivaluadas, diseño de esquemas, y optimización de consultas SQL. Además, se abordan temas de concurrencia y recuperación en transacciones, solicitando la creación de historias que cumplan con diferentes propiedades de serialización y recuperabilidad.

Cargado por

Rick
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

FUNDAMENTOS DE BASES DE DATOS

SEGUNDO PARCIAL 2000

Presentar la resolución del parcial:


• Con las hojas adicionales numeradas y escritas de un solo lado.
• Con las hojas escritas a lápiz.
• Poner cédula de identidad y nombre en cada hoja (incluidas estas).
• Escrito en forma prolija.
• Las opciones elegidas se deben marcar poniendo el identificador de la opción en un
círculo claramente identificado.
• Por cada pregunta múltiple opción mal respondida se descuenta del total la cantidad
de puntos de la pregunta dividido entre la cantidad de opciones.
• Poner la cantidad de hojas adicionales entregadas en la primer hoja.

Parte A: Diseño

Ejercicio 1 (3 ptos.)
Si se dice que se cumple la dependencia funcional X
    
diciendo que se cumple que:
a) Dada una instancia cualquiera r de R, no hay dos tuplas diferentes que tengan el mismo
valor en X.
b) Dada una instancia cualquiera r de R y dada cualquier pareja de tuplas t1 y t2 de r
tales que t1[X]=t2[X], se cumple que t1[Y]=t2[Y].
c) Dada una instancia cualquiera r de R y dada cualquier pareja de tuplas t1 y t2 de r
tales que t1[X]=t2[X], se cumple que existen en r dos tuplas t3 y t4 tales que t1[X]=t3[X] y
t2[X]=t4[X] y t1[Y]=t4[Y] y t2[Y]=t3[Y].
d) Dada una instancia cualquiera r de R y dada cualquier pareja de tuplas t1 y t2 de r
tales que t1[X]=t2[X], se cumple que existen en r dos tuplas t3 y t4 tales que t1[X]=t3[X] y
t2[X]=t4[X] y t1[Y]=t4[Y] y t2[Y]=t3[Y] y t1[R-XY]=t3[R-XY] y t2[R-XY]=t4[R-XY].
Ejercicio 2 (3 ptos).
Si se dice que se cumple la dependencia multivaluada X
diciendo que se cumple que:
 "!#$&%$' $)(*"%+
a) Dada una instancia cualquiera r de R, no hay dos tuplas diferentes que tengan el mismo
valor en X.
b) Dada una instancia cualquiera r de R y dada cualquier pareja de tuplas t1 y t2 de r
tales que t1[X]=t2[X], se cumple que t1[Y]=t2[Y].
c) Dada una instancia cualquiera r de R y dada cualquier pareja de tuplas t1 y t2 de r
tales que t1[X]=t2[X], se cumple que existen en r dos tuplas t3 y t4 tales que t1[X]=t3[X] y
t2[X]=t4[X] y t1[Y]=t4[Y] y t2[Y]=t3[Y].
d) Dada una instancia cualquiera r de R y dada cualquier pareja de tuplas t1 y t2 de r
tales que t1[X]=t2[X], se cumple que existen en r dos tuplas t3 y t4 tales que t1[X]=t3[X] y
t2[X]=t4[X] y t1[Y]=t4[Y] y t2[Y]=t3[Y] y t1[R-XY]=t3[R-XY] y t2[R-XY]=t4[R-XY].

1
Ejercicio 3 (3 ptos)
A partir de la siguiente instancia particular de una tabla R con esquema A,B,C, se puede
decir que:

A B C
1 2 Juan
1 3 Lucia
1 2 Lucia
1 3 Juan

a)En la tabla R se cumple la dependencia funcional A ,.-


b) En la tabla R se cumple la dependencia multivaluada A /10
c) En la tabla R no se cumple la dependencia funcional A 2.3
d) Nada en particular con respecto a A y B.

Ejercicio 4
Dado un esquema R(A,B,C,D,E,G,H) sobre el que se cumplen las siguientes dependencias:
{A D, CD E, E GH, GH C, B C}

1) (2 ptos).
Indique la opción que contenga solamente a todas las claves de R.
a) AB
b) ABC, ABE.
c) ABC, ABE, ABHG.
d) ABCD.

2) (2 ptos).
Indicar el resultado de aplicar a R el algoritmo para llevar a 3NF con join sin pérdida visto en
el curso.
a) R1(AD),R2(CDE),R3(BC),R4(EGHC)
b) R1(AD),R2(CDE),R3(EGH),R4(GHC),R5(BC)
c) R1(AD),R2(CDE),R3(EGH),R4(GHC)
d) R1(AD),R2(CDE),R3(EGH),R4(GHC),R5(BCA)

2
3) (2 ptos)
Indicar el resultado de aplicar el algoritmo para llevar 4NF con join sin pérdida visto en el
curso. Durante el algoritmo, las dependencias se deben considerar en el orden en que
aparecen escritas.
a) R1(AD), R2(CDE), R3(EGH), R4(GHC),R5(BC)
b) R1(AD), R2(EGH), R3(BC), R4(ABE)
c) R1(AD), R2(EGH), R3(BC), R4(ABEG)
d) R1(AD), R2(ABC), R3(ABE)

4) (2 ptos).
Indicar la opción que contiene más dependencias funcionales que se pierden en el proceso
de llevar a 4NF considerando las dependencias en el orden en que están escritas. Si considera
que no se pierde ninguna dependencia marque la opción d.
a) GH C, CD E
b) EG H, GH C
c) A D, EG H
d) No se pierde ninguna dependencia funcional.
Ejercicio 5
El siguiente diagrama Entidad-Relación describe una parte de la base de datos corporativa
de una agencia de publicidad.

CI direccion
nom tel* Empleados tel
RUC fec. ing.
dir nombre
contactos*

N N N N
Clientes Tiene Cuentas Creativo
1
Trab. Arte
1 1
De % com.

N
Producto Pub. Venta

brief preusp. fec. fin

Crea

3
1) (3 ptos.)
Indique la opción que representa mejor a la entidad Clientes.
a) Clientes(Ruc, contactos, nom, tel, dir)

b) Clientes(Ruc, nom,dir)
Tel_Cli(Ruc,Tel) Tel_Cli.Ruc ⊆ [Link]
Contactos_Cli(Ruc,Contacto) Contactos_Cli.Ruc ⊆ [Link]

c) Clientes(Ruc)
Nom_cli(Ruc,nom) Nom_cli.Ruc ⊆ [Link]
Dir_cli(Ruc,dir) Dir_cli.Ruc ⊆ [Link]
Tel_Cli(Ruc,Tel) Tel_Cli.Ruc ⊆ [Link]
Contactos_Cli(Ruc,Contacto) Contactos_Cli.Ruc ⊆ [Link]

d) Tel_cli(Ruc,Tel,nom,dir)
Contactos_Cli(Ruc,contacto) Contactos_Cli.Ruc ⊆Tel_cli.Ruc

2) (3 ptos.)
Asumiendo que la categorización de Empleados está implementada utilizando una tabla
para la entidad principal y una tabla para cada una de las categorías, indique la opción que
represente mejor la entidad Producto Publicitario y la relación Venta.
a) Prod_pub(brief, presup., fec_fin,CI) Prod_pub.CI ⊆ [Link]
b) Prod_pub(brief, presup, fec_fin)
Venta(brief,presup, fec_fin,CI)
c) Prod_pub(Ruc, brief, presup, fec_fin) Prod_pub.Ruc ⊆ [Link]
d) Venta(brief,presup,fec_fin,Ruc,CI) [Link] ⊆ [Link]
[Link] ⊆ [Link]
Prod_pub≡πbrief,Presup,fec_fin,ruc(Venta)

Parte B: Optimización y Vistas


Ejercicio 6 (8 ptos.)

Dadas las siguientes tablas en SQL-92-Standard:

CREATE TABLE País


(Nombre VARCHAR2(32),
Codigo VARCHAR2(4) PRIMARY KEY,
Capital VARCHAR2(10),
Provincia VARCHAR2(10),
Area INTEGER,
Poblacion INTEGER,

4
CONSTRAINT CapitalRefsCiudad
FOREIGN KEY(Capital,Codigo, Provincia) REFERENCES
Ciudad(Nombre,CodigoPaís,Provincia));
CREATE TABLE Ciudad
(Nombre VARCHAR2(10),
CodigoPaís VARCHAR2(4),
Provincia VARCHAR2(10),
PRIMARY KEY (Nombre, País, Provincia)
CONSTRAINT CiudadRefsPaís REFERENCES País(Codigo));

a) Escribir una vista que muestre el nombre del país, el código y la densidad de población.
b) Indicar si esta vista es actualizable. Justificar.
c ) Escribir una vista de nombre CiudadPaís que muestre las ciudades de cada país. Debe
tener dos atributos, uno Ciudad y otro NombrePaís.
d) Indicar si es posible realizar las siguientes operaciones:
d.1) UPDATE CiudadPais SI NO
SET Ciudad = “Wien”
WHERE Ciudad = “Vienna”;

d.2) UPDATE CiudaPais


SET NombrePaís = “Germany” SI NO
WHERE Capital = ”Berlin”;

d.3) DELETE FROM CiudadPaís


WHERE Ciudad = “Berlin”; SI NO

Ejercicio 7 (12 Ptos.)

Considere el siguiente esquema relacional que captura información acerca de empleados,

departamentos y finanzas de una empresa organizada por departamentos,

EMP(eid,, deptoid, salario, hobby)


DEPT(deptoid,depto-nombre,ubicación,telefono)
FINANZAS(deptoid,asignado,gastos)

Considere la siguiente consulta:

SELECT [Link]-nombre, [Link]


FROM Emp E, Dept D, Finanzas F
WHERE [Link]-id = D. depto-id
AND D. depto-id = F. depto-id
AND [Link]ón = 1
AND [Link] > 20000
AND [Link] = ¨modelado de arcilla¨;

5
a) Dibuje el árbol canónico en operadores del álgebra relacional.

b) Dibuje un árbol de álgebra relacional que refleje el orden de operaciones


que un optimizador de consultas decente eligiría. (Aplicar solo heurísticas)

c) ¿Qué información acerca de estas relaciones necesita el optimizador de consultas para


seleccionar un buen plan de ejecución para la consulta planteada?

d) ¿Qué índices podrían ser de ayuda para procesar esta consulta?

Ejercicio 8
Describa una situación en la cual la operación de proyección preceda a la operación de
selección en el procesamiento de una consulta ¨ proyección-selección¨ y describa una
situación donde el orden de procesamiento opuesto es mejor.

Parte C: Concurrencia y Recuperación


Ejercicio 9 (18 Ptos.)
Sea un sistema de ventas de entradas para un espectáculo público, existiendo distintos
puntos de venta.
Procedure Venta_entradas

cant := input(c);
if entradas_disp > 0 then
entradas_disp := read(X);
write (X, entradas_disp – c);
ganancia := read(Y);
write(Y, ganancia + valor_entrada * c);
end;
end;

a) Escribir una historia H1 donde se ejecuten 2 transacciones de Venta_entradas, que


cumpla:

I. H1 serializable y no recuperable.
II. H1 no serializable y estricta.
III. H1 serial.
IV. H1 serializable y que evita abortos en cascada.
b) Escribir una historia H2 donde se ejecuten 2 transacciones de Venta_entradas y éstas
sigan el protocolo 2PL básico. Decir si H2 es serializable y si es recuperable,
justificando.
c) Escribir una historia H2 donde se ejecuten 2 transacciones de Venta_entradas y éstas
sigan el protocolo 2PL estricto. Decir si H2 es serializable y si es recuperable,
justificando.

También podría gustarte