Sunteți pe pagina 1din 5

Nombre: ……………………………………………………………………………… Legajo: ….

……………… 1

Final de Base de Datos

Ej 1 Ej 2 Ej 3.1 Ej 3.2 Ej 3.3 Ej 4.1 Ej 4.2 Ej 4.3 Nota


/2 /2 /1 /1 /1 /1 /1 /1 /10

Adicionales:

Ej 5.1 Ej 5.2 Ej 5.3 Ej 5.4


/1 /1 /1 /1

 Los ejercicios se suben a Campus en archivos separados en formato


apropiado, .png, .jpg pero en una única entrega (numerar los
archivos como 3.1.jpg, 3.2.jpg, etc). Pueden directamente
embeberse en el doc o bien zippearlos.

 La última entrega realizada dentro del horario que dura la actividad


será corregida.

 Ser sucintos en las explicaciones solicitadas. Es decir, explicar


exactamente lo que se les pregunta. Con 3 o 4 renglones, si no se
dispersan, es más que suficiente.

 El examen dura 1 h y 20 min.

Si eligen reemplazar alguno de estos ítems (son independientes entre


sí): 1, 2, 3.1, 3.2, 3.3, 4.1, 4.2, 4.3 entonces, dejar claro cuál de los
adicionales los reemplaza.

Ejemplo:
reemplazo el ejercicio 2 (que vale 2 puntos) por los ejercicios 5.1 y 5.3
reemplazo el ejercicio 3.2 (vale 1 punto) por el ejercicio 5.4

Base de datos I
Nombre: ……………………………………………………………………………… Legajo: ….……………… 2
Ejercicio 1

Dado el esquema de relación R = (A, B, C, D, E, F) con


Dep= {ABF → C, CF → B, CD → A, BD → AE, C → F, B → F}

Encontrar un recubrimiento minimal y mostrar los pasos seguidos para encontrarlo.

Rta 1

Ejercicio 2

Se tiene la siguiente tabla tabla

create table empleado


(
legajo int NOT NULL PRIMARY KEY,
edad int,
sueldo decimal(10,3) NOT NULL
)

Explicar cómo se llama la técnica que se usa para detectar en el lenguaje externo
C que un SELECT del atributo EDAD recupera su valor cuando este vale null. Mostrar
cómo se usa la técnica en un pedazo de código C.

Rta 2

Ejercicio 3

Dado el siguiente esquema de entidad/relación

id1 id2

id
b2

1 R
A N
m B b1

1 b3

c2 C c1

Base de datos I
Nombre: ……………………………………………………………………………… Legajo: ….……………… 3

3.1) Escribir las sentencias SQL que permitan crear la tabla R que representa
a la relación R. Asumir que todos los atributos son de tipo entero. No omitir PKs,
FKs y las restricciones que muestre el DER. Las entidades ya han sido creadas.

Rta 3.1

3.2) De acuerdo al modelo E/R, completar el siguiente cuadro indicando cuáles de


las siguientes afirmaciones son V y cuales son F en todo el esquema (ya sea porque
se dan en forma directa o pueden inferirse). No hace falta justificar.

Afirmación Decir V o F
b2 m  m

id1 id2  c1 b1

id1 id2  m

b1  b3

3.3) Analizar si la siguiente consulta del cálculo es segura. Justificar la


respuesta.

{ t | A(t)  (  u) ( R(u)  t[id1]=u[id1]  t[id2]=u[id2] ) }

Rta 3.3

Ejercicio 4

Dada la siguiente instancia para el modelo de relación del ejercicio 3 (solo


se muestran las tablas que son usadas en la consultas).

Base de datos I
Nombre: ……………………………………………………………………………… Legajo: ….……………… 4

B C
b1 b2 b3 c1 c2
5 50 500 10 100
6 60 600 20 200
7 70 800 30 200
8 50 900 40 100
50 500

R
id1 id2 b1 c1
25 50 5 10
26 60 6 20
27 50 7 30
28 50 8 40

(los valores id1 e id2 refieren a valores válidos de la tabla A)

Indicar cuánta tuplas se obtienen al ejecutar cada consulta y mostrar cuáles


son dichas tuplas. No omitir mostrar las columnas de la tabla resultante.

4.1)

SELECT *
FROM R NATURAL JOIN B
WHERE b2 = 50 AND NOT EXISTS (SELECT * FROM C)

Rta 4.1

4.2)

SELECT b1
FROM R
Except
Select cast( b3/100 AS integer)
From B

Rta 4.2

4.3)

SELECT c2, min(id1), min(id2)


FROM C left outer join R ON C.c1 = R.c1
GROUP BY c2;

Base de datos I
Nombre: ……………………………………………………………………………… Legajo: ….……………… 5

Rta 4.3

Adicionales

5.1) Enunciar por lo menos 2 características por las cuales la sentencia


PreparedStatement es preferible a CreateStatement.

Rta 5.1)

5.2) En el ejercicio 3 se tiene una entidad A cuya clave es compuesta id1+id2


(ambos enteros). Explicar:
a) en qué escenario sería deseable usar un atributo auto-numérico (por ejemplo,
serial)
b) cuál sería su ventaja de uso
c) cuál es la estrategia para poblar la información de la tabla A y las relacionadas
con ella.

Rta 5.2)

5.3) Explicar por qué hay 2 tipos de validaciones de tipo CHECK (a nivel atributo y
a nivel tupla). Ejemplificar claramente qué permite una que la otra no.

Rta 5.3)

5.4) JDBC (basado en ODBC) fue creado con el objetivo de permitir que una clase
Java ya compilada (class) pueda ejecutar sus sentencias SQL conectándose a bases
de datos que soporten JDBC y a las cuales se las pueda conectar dinámicamente
(en tiempo de ejecución, sin recompilar).

Obviamente cada driver de JDBC tiene un grupo de clases que se corresponden con
la especificación, pero Oracle, Postgresql, DB2, etc. llaman a sus clases de
diferente forma (aunque implementan la misma interface).
Para poder hacer uso de ese binding dinámico con clases cuyo nombre no se
conoce en tiempo de compilación no se debe usar “import” en el código Java.
Explicar qué estrategia hay que seguir para evitar el “import”.

Rta 5.4)

Base de datos I

S-ar putea să vă placă și