Fundamentos de las Bases de Datos, grados I. Informática e I. Multimedia
1
SOLUCIONES SEGUNDA HORA
SB02
1) Las claves candidatas no pueden almacenar NULOS porque... el nulo es ignorancia, no sé si tiene valor y, si lo tiene, no puedo
asegurar cuál es y, por tanto, podría ser un duplicado en un estado de base de datos concreto.
2) Oracle 10g, MySQL, etc., al ser sistemas de gestión de bases de datos (SGBD) relacionales
jamás permitirán tablas sin clave primaria FALSO
a)
b) si definimos una tabla sin clave primaria, utilizarán automáticamente todas sus columnas para definir la clave. FALSO
Estos son productos comerciales y, como tales, implementaciones del modelo relacional que dan servicio a quien los
adquiera. A veces es necesario definir tablas sin clave primaria, mayormente por cuestiones de mantenimiento y desarrollo
de una base de datos. Podemos resumir que "una cosa es la teoría y otra el trabajo diario en base de datos".
En cualquier caso, y finalizadas esas tareas de mantenimiento o desarrollo, si queremos una base de datos relacional que
vigile las propiedades de integridad de nuestro sistema de información, es poco aconsejable permitir tablas sin clave primaria.
3) Sea tablaX (A, B, C, D)
Si definimos Clave Primaria (A, B, C) entonces ¿podrían ser claves alternativas los siguientes grupos de atributos?
(A) no
a)
(B) no
b)
(C) no
c)
(D) sí
d)
(A, B) no
e)
(A, C) no
f)
(A,D) sí
g)
(B, C) no
h)
(B,D) sí
i)
(C,D) sí
j)
(A,B,D) sí
k)
l)
(A,C,D) sí
m) (B,C,D) sí
n)
(A,B,C,D) no
4) Sea una tabla R(A, B, C, D). Suponiendo que la propiedad de identificación se va a cumplir elijamos lo que elijamos y que
quisiéramos obtener la máxima cantidad de claves candidatas, esto es, elegir conjuntos de atributos de tal forma que se utilicen
todas las columnas y que ninguno fuera subconjunto de otro, ¿hasta cuántas CC podría llegar a tener R?
Si empezáramos eligiendo (A,B,C) como clave primaria solo podríamos elegir (D) como clave alternativa, es decir, podríamos
llegar a tener 2 claves candidatas.
Si elegimos (A) como clave primaria, también podríamos definir (B), (C) y (D) como alternativas, es decir, 4 claves candidatas
en la tabla.
La combinación de claves candidatas más poblada, en esta tabla concreta, es aquella se forma agrupando 2 columnas, lo
que nos da una clave primaria y 5 alternativas: (A,B), (A,C), (A,D), (B,C), (B,D), (C,D).
5) Dado el esquema siguiente, ¿cuáles de las siguientes operaciones no llegarán a realizarse (el motor de la base de datos nos
devolverá un error de ejecución)?
T1(a,b,c) CP(a)
a)
b)
c)
d)
e)
f)
g)
insertar(1,10,100)
insertar(NULO,20,NULO)
insertar(2,20,NULL)
insertar(3,NULL,300)
insertar(2,NULO,NULO)
insertar(2,20,NULO)
insertar(1,20,200)
BDgite (GITE-11014-UA)
6) Dado el esquema siguiente, ¿cuáles de las siguientes operaciones no llegarán a realizarse (el motor de la base de datos nos
Fundamentos de las Bases de Datos, grados I. Informática e I. Multimedia
2
devolverá un error de ejecución)?
T1(a,b,c) CP(b,c)
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
insertar(1,10,100)
insertar(NULO,20,NULO)
insertar(2,20,NULL)
insertar(3,NULL,300)
insertar(2,NULO,NULO)
insertar(2,20,NULO)
insertar(1,10,200)
insertar(1,20,200)
insertar(1,20,100)
insertar(2,10,100)
7) Dado el esquema y ejecutándose la siguiente secuencia de órdenes, ¿cuáles de las siguientes operaciones no llegarán a
insertar(1,10,100)
insertar(2,20,200)
realizarse (el motor de la base de datos nos devolverá un error de ejecución)?
T1(a,b,c) CP(b,c)
a)
b)
c) modificar(1,10,100) a (1,20,100)
d) modificar(1,20,100) a (1,20,200)
insertar(1,10,10)
e)
insertar(2,20,100)
f)
g) eliminar(1,20,100)
insertar(2,20,100)
h)
i)
insertar(3,30,300)
j) modificar(2,20,100) a (1,20,200)
k) modificar(3,30,300) a (2,30,300)
SB03
1) ¿Cuáles de los siguientes esquemas es posible y cuáles no? (se supone que los dominios están correctamente definidos y son
coherentes con las definiciones de claves; cada apartado es un esquema diferente).
a) T1(a,b,c,d) CP(a,b,c,d)
b) T1(a,b,c,d) CP(a,b,c)
c) T1(a,b,c,d) CP(a) CAlt(b)
d) T1(a,b,c,d) CP(b) CAlt(a), CAlt(b,c)
e) T1(a,b,c,d) CP(a,b,c,d) CAlt(a,c,d)
f) T1(a,b,c,d) CP(a,b,c) CAlt(a,c,d)
g) T1(a,b,c,d) CP(a,b) CAlt(a,c) CAlt(a,d) CAlt(b,c) CAlt(b,d) CAlt(d,c)
h) T1(a,b,c,d) CP(a) CAj(b) T2
i) T1(a,b,c,d) CP(a) CAj(a) T2
j) T1(a,b,c,d) CP(a) CAj(a,b,c,d) T2
k) T1(a,b,c,d) CP(a,b) CAj(b) T2
l) T1(a,b,c,d) CP(a) CAlt(b,c) CAj(b,a) T2 CAj(b)T3 CAj(a,c)T4
BDgite (GITE-11014-UA)
2) Dado el esquema siguiente, ¿cuáles de las siguientes operaciones son “ilegales”? (Las órdenes se ejecutan en secuencia y
dependen de las anteriores; se supone que los dominios están correctamente definidos y son coherentes con las definiciones de
claves).
Fundamentos de las Bases de Datos, grados I. Informática e I. Multimedia
3
T1(a,b,c) CP(a) T2(a,d,e) CP(d) CAj(a) T1
insertar en T1(1,10,100)
insertar en T1(NULO,20,NULO)
insertar en T1(2,20,NULL)
insertar en T1(3,NULL,300)
insertar en T2(2,NULO,NULO)
insertar en T2(2,20,NULO)
insertar en T1(1,20,200)
insertar en T2(4,10,100)
insertar en T2(2,30,230)
a)
b)
c)
d)
e)
f)
g)
h)
i)
j) modificar T1(1,10,100) a (2,10,100)
k) modificar T1(1,10,100) a (5,10,100)
l) modificar T2(2,20,NULO) a (2,20,220)
m) modificar T2(2,20,220) a (5,20,220)
n) modificar T2(5,20,220) a (2,10,100)
o) modificar T1(2,20,200) a (6,60,600)
p) modificar T1(3,NULO,300) a (7,70,700)
q) modificar T2(2,10,100) a (7,10,100)
r) modificar T2(2,30,230) a (7,30,230)
s) modificar T1(2,20,200) a (6,60,600)
t)
borrar T2(7,30,230)
u) borrar T1(7,70,700)
v) borrar T1(5,10,100)
w) borrar T2(7,10,100)
x) borrar T1(7,70,700)
y) borrar T1(6,60,600)
3) Dado el esquema siguiente, ¿cuáles de las siguientes operaciones son “ilegales”? (Las órdenes se ejecutan en secuencia y
dependen de las anteriores; se supone que los dominios están correctamente definidos y son coherentes con las definiciones de
claves).
T1(a,b,c) CP(a,b) T2(a,d,e) CP(d) CAj(a,d) T1
insertar en T1(1,NULO,100)
insertar en T1(NULO,10,100)
insertar en T1(NULO,NULO,100)
insertar en T1(1,10,110)
insertar en T2(1,10,1000)
insertar en T2(1,10,2000)
insertar en T1(1,20,120)
insertar en T1(2,20,220)
insertar en T2(2,10,2100)
a)
b)
c)
d)
e)
f)
g)
h)
i)
j) modificar T2(1,10,1000) a (1,NULO,NULO)
k) modificar T1(1,10,110) a (1,30,130)
l) modificar T2(1,10,1000) a (1,NULO,NULO)
m) borrar T1(1,10,110)
n) modificar T2(1,10,1000) a (1,20,1200)
o) borrar T1(1,10,110)
p) borrar T1(2,20,220)
q) borrar T2(1,20,1200)
r) borrar T1(1,20,120)
BDgite (GITE-11014-UA)
Fundamentos de las Bases de Datos, grados I. Informática e I. Multimedia
4
SB04
1)
a) Card(alumno, matrícula) = (0, 1) Card(asignatura, matrícula) = (0, N)
b) Card(alumno, matrícula) = (0, N) Card(asignatura, matrícula) = (0, 1)
c) Card(alumno, matrícula) = (1, 1) Card(asignatura, matrícula) = (0, N)
d) Card(alumno, matrícula) = (0, 1) Card(asignatura, matrícula) = (1, 1)
e) Card(alumno, matrícula) = (0, N) Card(asignatura, matrícula) = (0, N)
f) Card(alumno, matrícula) = (0, 1) Card(asignatura, matrícula) = (0, 1)
g) Card(alumno, matrícula) = (1, 1) Card(asignatura, matrícula) = (1, 1)
(para dar esta solución es necesaria más información, alguien debe decirnos que se trata de una relación ya que no hay claves ajenas
que nos permitan suponerlo
SB05
1)
a) Card(DEPARTAMENTO, trabaja-en) = (0 ,N) Card(EMPLEADO, trabaja-en) = (0,1)
b) Card(DEPARTAMENTO, trabaja-en2) = (0,N) Card(EMPLEADO, trabaja-en2) = (1,1)
c) Card(DEPARTAMENTO, dirige) = (0,1)
Card(EMPLEADO, dirige) = (0,N)
d) Card(ALUMNO, matrícula) = (0,N)
Card(ASIGNATURA, matrícula) = (0,N)
e) Card(BARCO, capitanea) = (0,1)
Card(CAPITÁN, capitanea) = (0,1)
f) Card(ASIGNATURA, coordina) = (1,1)
Card(PROFESOR, coordina) = (0,1)
g) Card(DEPARTAMENTO, trabaja-en) = (0,N) Card(EMPLEADO, trabaja-en) = (1,1)
Card(DEPARTAMENTO, dirige) = (0,1)
Card(EMPLEADO, dirige) = (0,N)
(si se elige EMPLEADO.dpto para "trabaja_en" y DEPARTAMENTO.jefe para "dirige")
2)
3)
2 tablas que se relacionan, con 1 clave ajena que se aloja en una de ellas.
2 tablas que se relacionan, con 1 clave ajena que se aloja en una de ellas y es de VNN.
2+1 tablas que se relacionan, con 2 claves ajenas que se alojan en la tercera tabla componiendo la clave primaria.
2+1 tablas que se relacionan, con 2 claves ajenas que se alojan en la tercera tabla, una como clave primaria y la otra
como alternativa.
2 tablas que se relacionan, con 1 clave ajena que se aloja en una de ellas y es clave alternativa.
1 única tabla, con 1 clave alternativa (aparte, claro está, de la clave primaria).
BDgite (GITE-11014-UA)
a)trabaja_enb)trabaja_en2c)diriged)matrículae)capitaneaf)coordina4)
Fundamentos de las Bases de Datos, grados I. Informática e I. Multimedia
5
a)
PROGRAMA(siglas, nombre, inv)
CP(siglas)
CAj(inv) INVITADO
VNN(inv)
INVITADO(dni, nombre)
CP(dni)
c)
PROGRAMA(siglas, nombre)
CP(siglas)
INVITADO(dni, nombre)
CP(dni)
COTILLEA(inv, prog)
CP(inv, prog)
CAj(prog) PROGRAMA
CAj(inv) INVITADO
e)
PROGRAMA(siglas, nombre)
CP(siglas)
INVITADO(dni, nombre, prog, prog2)
CP(dni)
CAj(prog) PROGRAMA
CAlt(prog2)
CAj(prog2) PROGRAMA
SB06
1.
b)
PROGRAMA(siglas, nombre)
CP(siglas)
INVITADO(dni, nombre, prog)
CP(dni)
CAj(prog) PROGRAMA
VNN(prog)
d)
PROGRAMA(siglas, nombre)
CP(siglas)
INVITADO(dni, nombre, prog)
CP(dni)
CAj(prog) PROGR
Comentarios de: Fundamentos de las Bases de Datos - Soluciones segunda hora (0)
No hay comentarios