Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2.
a1
b1
c1
d1
a2
b1
c2
a3
b2
c1
e1
a2
b2
c2
d1
e2
d1
e1
a1
b2
c1
d2
e1
d1
e2
a1
b2
c1
d2
e2
Dadas las siguientes instancias de relacin y las siguientes dependencias funcionales indicar para
cada una de ellas si son verdaderas o falsas. Justificar.
a)
A
a1
b1
c1
d2
a2
b1
c1
a2
b2
c1
b)
e1
a1
b1
c1
d2
e1
d2
e1
a1
b2
c2
d1
e1
d1
e2
a2
b3
c3
d2
e2
DF
A->B
ABC->AC
B->C
C->B
B->CD
AB->E
BE->C
E->B
E->C
3.
b)
Instancia a)
Instancia b)
AB->D
f)
b) AB->F
ABC->E
c)
D->G
d) D->C
e)
E->D
a)
ii. D
iii. E
5.
6.
7.
8.
b) reconoce alguna relacin entre las respuestas del ejercicio anterior y los resultados del
clculo de la clausura de los conjuntos del punto a).
Cmo podra probar que una dependencia funcional es falsa?
Indique para cada uno de los conjuntos de atributos del punto a) del ejercicio anterior si los
mismos constituyen claves candidatas de R. Justifique su respuesta
Calcular todas las claves candidatas para el conjunto R del ejercicio 3. Indicar la clave primaria del
mismo
Dado los siguientes R y F, indicar para cada uno de los siguientes conjuntos de atributos si los
mismos representan una clave candidata, una superclave o ninguna de las dos.
f)
FC
g)
DA
h) G
d) E
i)
e)
j)
EA
C
Dadas las siguientes relaciones y los siguientes conjuntos de dependencias funcionales hallar el
cubrimiento minimal para cada uno de los mencionados conjuntos
a)
c)
e)
10. De los ejercicios anteriores reconoce alguna mejora emprica que se le pueda hacer al
algoritmo que usualmente se utiliza para calcular el F minimo.
11. Indicar para cada uno de los R del ejercicio 9 en qu forma normal se encuentra
indicar un conjunto de dfs de tal forma que R no est en segunda forma normal
c)
indicar un conjunto de dfs de tal forma que R est en tercera forma normal
a)
c)
est en FNBC
b) indicar un conjunto de dfs de tal forma que R no est en tercera forma normal, aunque si en
segunda
13. Dar un ejemplo de una relacin que:
14. Dados los R y F del ejercicio 9 hallar, siempre que sea posible, una descomposicin de R que este
en FNBC y que sea SPDF y SPDI
15. Dados los siguientes F, R y sus descomposiciones, completar el siguiente cuadro
R
A,B,C,D,E,F
A,B,C,D,E,F
A,B,C,D,E,F,G
N, O, P
,Q,R,S,T,U,V
F
AB->CDEF, E->F
AB->CDEF, E->F
AB->CDEF, E->F,F->G
NO->Q; N->PR; P->T; O->SU; O>V; V->O
Descomposicin
{ABCD};{EF}
{ABCDE};{EF}
{ABCDF};{EF};{FG}
{NOQ},{PQRV},{NOST},{UV}
SPDF
SPDI
16. Supongamos que se desean modelar los datos de los empleados, as como tambin la
informacin referida a las categoras a los que pertenecen los mismos. Los atributos a tomar en
cuenta son: tipo y nmero de documento, legajo, cuil, apellido y nombre y direccin del
empleado. Adems se desea conocer a que categora pertenecen, cul es la descripcin de la
misma y cul es el sueldo base que la mencionada categora tiene asociado. Cada empleado
trabaja en un nico departamento. Los departamentos tienen una descripcin y adems se desea
conocer el nombre del gerente del mismo.
a)
c)
Empleado(E)
nro_e(4) (clave)
nom_e(32)
domicilio(24)
ciudad(10)
edad(2)
dni(8)
tel(12)
sueldo(6)
Trabaja_en(T)
nro_e (clave)
nro_depto (clave)
desde(8)
hasta(8)
Departamento(D)
nro_depto(4) (clave)
nom_depto(20)
ubicacin(20)
ciudad(10)
Gerencia (G)
nro_e (clave)
nro_depto (clave)
desde(8)
hasta(8)
b.
c.
d.
e.
f.
2.
Select e.nro_e
From empleado E
Where edad < 35
Select nro_depto
From departamento
Where ciudad = Rosario
Select nro_e
From empleado
Where sueldo > 10.000
And edad < 35
Aclaracin: En el caso de los select que involucran joins se deben proponer 2 mtodos
alternativos de resolver los mismos
Dada la relacin R(A, B, C) y la consulta
select *
from R
where A > 10 and B=10 and C=5;
Asumir que:
TR=10000, BR=1000
IR.A=90, IR.B=150, IR.C=150
El 10% de los registros satisface que A > 10
3.
Definir la mejor estrategia de evaluacin y calcular su costo sobre la base de datos del ejercicio
1 para las siguientes consultas y las siguientes situaciones:
Asumir que:
t empleados = 100.000, tamao de bloque = 4.000 bytes
I(Empleado.ciudad)=100, I(Empleado.edad)=35,
I(Empleado.sueldo)=50
1.
select *
from Empleado
where ciudad = "Crdoba" and edad = 45;
select *
from Empleado
where ciudad = "Crdoba" or edad = 45;
6.
2.501 bloques
501 bloques
301 bloques
101 bloques
3) SELECT *
FROM member
WHERE member_no IN (100,101,102,103,104,105,106,107,108,109,200,201,
202,203,204,205,206,207,208,209,210,211,212,213,
214,215,216,217,218,219,220,221,222,223,224,225,
226,227,228,229,230,231,232)
4) SELECT *
FROM member
WHERE member_no IN (100,101,102,103,104,105,106,107,108,109,200,201,
202,203,204,205,206,207,208,209,210,211,212,213,
214,215,216,217,218,219,220,221,222,223,224,225,
226,227,228,229,230,231,232, 233)
6)SELECT *
FROM member
WHERE member_no=1234 OR corp_no=410
7) SELECT *
FROM member
WHERE region_no = 5 OR corp_no = 410
B)
a) Crear el ndice corp_no sobre la tabla member y borrar todos los dems
b) Revisar el plan de ejecucin de la siguiente consulta
SELECT *
FROM member
WHERE corp_no = 450
c) Que cantidad de filas estima que va a devolver?
d) Ejecutar el comando
DBCC SHOW_STATISTICS ('member', corp_no)
e) Ese comando devuelve un resultado que puede dividirse en 3 partes, en la ltima parte hay un cuadro
que tiene una primera columna RANGE-HI_KEY, buscar en esa tabla la fila correspondiente al nmero
450 (que es el valor de la clave del ndice), cual es la columna cuyo valor coincide con el nmero estimado
de filas?
f) Revisar el plan de ejecucin de la siguiente consulta:
SELECT *
FROM member
WHERE corp_no = 448
g) Cual es ahora el nmero de filas estimadas? Ejecutar nuevamente el comando dbcc show_statistics, existe el
valor 448 entre los valores de la range_hi_key? Buscar en la documentacin el significado de las columnas
range_row and distinct_range_row. En el siguiente link
http://www.sqlservercentral.com/blogs/aschenbrenner/2014/01/28/inside-thestatistics-histogram-density-vector/
pueden encontrar un artculo muy interesante sobre el tema
C) El siguiente ejemplo fue tomado de A Hazard of Using the SQL Update Statement
(http://www.sqlservercentral.com/articles/T-SQL/101464/)
a) Ejecutar las siguientes instrucciones SQL
1, 'Tom'
2, 'Chris'
1, 'Jeff'
2, 'Lynn';
UPDATE a
SET Value = b.Value
FROM #Test1 a
JOIN #Test2 b ON a.ID = b.ID;
d) Cuantos registros modifica esta instruccin? Puede predecirse el resultado? Por que?
e) Usando las vistas updated y deleted compruebe su respuesta al punto d)
f) Analice el plan de ejecucin de la consulta. Que puede concluir?
10
Escribir
a)
b)
c)
d)
e)
3. Dada las siguientes historias, construir para cada una el grafo de seriabilidad e indicar cuales de las
siguientes caractersticas satisface : RC, ACA, ST, SR
a)
b)
c)
d)
H = { R1(x), R1(y), R2(z), R2(w), R4(y), R4(z), w1(x), w1(y),c1, w2(w), w2(z), R3(x),
R3(z), w3(x), w4(y), w4(z),c4, w3(z),c2, c3,}
H = { R1(x), R1(y), R2(z), w1(x), w1(y),c1, R2(w), R4(y), R4(z), w2(w), w2(z), R3(x),
R3(z), w3(x), w4(y), w4(z),c4, w3(z),c2, c3,}
H = { R1(x), R1(y), R2(z), R2(w), w1(x), w1(y),R4(y), R4(z), c1,w2(w), w2(z), R3(x),
R3(z), w3(x), w4(y), w4(z),c4, w3(z),c2, c3,}
H = { R1(x), R1(y), R2(z), R2(w), R4(y), R4(z), w1(x), w1(y),c1, w2(w), w2(z), R3(x),
R3(z), w3(x), w4(y), w3(z),c2, w4(z),c4,c3}
11
2. Dadas las siguientes historias indicar si cumplen con las reglas establecidas en el 2PL, en caso de que
no cumplan indicar que regla no cumplen y en que operaciones y proponer las modificaciones
necesarias para que si cumplan con las reglas del 2PL
a)
b)
c)
d)
e)
f)
rl1(a), rl1(b), rl2(a), rl2(c), r1(a), r1(b), r2(a), r2(c), ru1(a), ru1(b), ru2(a), ru2(c)
wl1(a), rl1(b), rl2(a), rl2(c), w1(a), r1(b), r2(a), r2(c), wu1(a), ru1(b), ru2(a), ru2(c)
rl1(a), wl1(b), rl2(a), rl2(c), r1(a), w1(b), r2(a), r2(c), ru1(a), wu1(b), ru2(a), ru2(c)
rl1(a), rl1(b), wl2(a), rl2(c), r1(a), r1(b), w2(a), r2(c), ru1(a), ru1(b), wu2(a), ru2(c)
rl1(a), rl1(b), ru1(a), rl2(a), rl2(c), r1(a), r1(b), r2(a), r2(c), ru1(b), ru2(a), ru2(c)
rl1(a), ru1(a), rl1(b), rl2(a), rl2(c), r1(a), r1(b), r2(a), r2(c), ru1(b), ru2(a), ru2(c)
a)
b)
c)
d)
e)
f)
g)
3. Dadas las siguientes historias indicar si son ejecuciones correctas de control de concurrencia por
timestamp, en caso de que no lo sean proponga modificaciones que las transformen en historias
adecuadas
4. Modificar las historias del punto anterior indicando en cada caso la versin que corresponde
leer/escribir
12
13
14
1- Usando la base de datos utilizada para resolver las consultas SQL definir:
a) un grupo para aquellos usuarios que van a efectuar slo consultas sobre las tablas
b) un grupo para los usuarios que cargan los pedidos
c) un grupo para el sector de recursos humanos que es el que da de alta empleados.
Para realizar este ejercicio primero crear una matriz donde se indique para cada grupo que permisos se le
asignan sobre cada tabla.
2- Definir la seguridad en el tema de auditora de tal forma que ningn usuario de los que da alta de
facturas y pagos pueda modificar las tablas de auditoria. Probarlo haciendo un insert sobre cualquiera de
dichas tablas.
15