BASES DE DATOS JUNIO 1999 El siguiente esquema

Anuncio
%$6(6'('$726-81,2
El siguiente esquema relacional representa el sistema de información de una cooperativa de
taxis.
7D[L(PDWUtFXOD: d_mat, WIQR: d_tfno, NPBUHY: d_km)
CP: {matrícula}
Uni: {tfno}
VNN: {km_rev}
7D[LVWD(GQL:d_dni, QRPEUH:d_nom, WIQR:d_tfno, GLUHFFLyQ: d_dir, HGDG: d_edad)
CP: {dni}
VNN: {nombre}
7DOOHU(FRGW: d_cod, QRPEUH: d_nom1, WIQR:d_tfno, UHVSRQVDEOH: d_nom)
CP: {codt}
VNN: {responsable}
&RQGXFH(GQL:d_dni, PDWUtFXOD: d_mat, IHFKD: d_fecha, KBLQLFLR: d_hora, KBILQ: d_hora)
CP: {dni, fecha}
VNN: {matrícula}
CAj: {dni}→ Taxista
CAj: {matrícula}→ Taxi
VNN: {h_inicio}
5HYLVLRQ(FRGW: d_cod, PDWUtFXOD: d_mat, IHFKD: d_fecha)
CP: {matrícula,fecha}
VNN:{codt}
CAj: {codt}→ Taller
CAj: {matrícula}→ Taxi
donde los atributos tienen el siguiente significado:
7D[L
PDWUtFXOD: matrícula del coche
WIQRteléfono del coche
NPBUHY: kilómetros a los que se tiene que hacer la próxima revisión
7D[LVWD
GQL: D.N.I. del taxista QRPEUHnombre del taxista
HGDG: del taxista
WIQR: teléfono particular del taxista GLUHFFLyQ: dirección del taxista
7DOOHU
FRGW: código del taller
WIQR: teléfono del taller
&RQGXFH
el taxista de DNI GQLcondujo (o conduce) el taxi de matrícula PDWUtFXODel día
IHFKDdesde las KBLQLFLRhasta las KBILQ
5HYLVLyQ
el taller de código FRGWrevisó el taxi de matrícula PDWUtFXODel día IHFKD
QRPEUH:nombre del taller
UHVSRQVDEOH: persona responsable del taller
'(638e6 '( /((5 $7(17$0(17( (/ (648(0$ 5(/$&,21$/ $17(5,25
5(68(/9$/266,*8,(17(6(-(5&,&,26
Resuelva las siguientes cuestiones sobre el esquema anterior:
D¿Puede un taxista conducir dos coches distintos el mismo día a distintas horas? Justifique
brevemente la respuesta.
E¿Puede un taxi ser conducido por dos taxistas distintos el mismo día a distintas horas?
Justifique brevemente la respuesta.
¿Qué condiciones cumplen los taxis cuyos datos se obtienen como resultado de la
siguiente sentencia SELECT?
6(/(&7PDWUtFXOD)520&21'8&(
,17(56(&7
6(/(&7PDWUtFXOD)5205(9,6,Ï1
Escriba en SQL/92 las siguientes consultas:
DObtener el D.N.I. y el nombre de los taxistas de los que no se conoce la dirección o el
teléfono particular.
EObtener cuántos taxis que han sido conducidos por algún taxista de menos de 30 años no
han sido revisados nunca.
FEscribir una consulta que permita saber cuántos taxis ha revisado cada taller cada día que
haya revisado más de 5 taxis. Del taller especificar el código y el nombre, del día
especificar la fecha.
GObtener la matrícula y el teléfono de los taxis que hayan sido conducido por algún
conductor con edad superior a la edad media de todos los taxistas y que hayan sido
revisados al menos en dos talleres diferentes.
HSuponiendo que hay al menos un taxista con más de 50 años que ha conducido alguna vez
un taxi, obtener el código y el nombre de los talleres que han revisado todos los taxis que
han sido conducidos por taxistas de más de 50 años
IObtener para cada taxi que no haya sido conducido nunca por taxistas menores de 40 años
y que haya sido conducido por dos taxistas distintos, la matrícula del taxi, el teléfono del
taxi y la cantidad de taxistas que lo han conducido al menos una vez.
Dada la restricción de integridad:
"El día que está en revisión un taxi no puede ser conducido por ningún taxista"
DEnumere las operaciones sobre la base de datos que podrían violar la restricción. EDiseñe un disparador (WULJJHU) de ORACLE8 para controlar alguna de las operaciones
enumeradas en la cuestión anterior.
Exprese la siguiente restricción de integridad en &iOFXOR5HODFLRQDOGH7XSODV:
"Entre las 22:00 y las 6:00 sólo se puede iniciar turnos de conducción de taxis con
teléfono"
&8(67,21$5,2'(%$6(6'('$726
7LSR$
• 5HOOHQHFRQODVUHVSXHVWDVFRUUHFWDVHOFDVLOOHURDGMXQWR
• &DGD FXHVWLyQ YDOH SXQWRV 6yOR KD\ XQD RSFLyQ FRUUHFWD &DGD FXHVWLyQ PDO
FRQWHVWDGDDQXODGHFXHVWLyQFRUUHFWDSRUORWDQWRODQRWDREWHQLGDHQHOWHVWHVHO
UHVXOWDGRGHODVLJXLHQWHIyUPXOD%LHQB&RQWHVWDGDV−0DOBFRQWHVWDGDV
Dado el siguiente esquema relacional:
R(a: dom_a, b: dom_b)
S(c: dom_a, d: dom_d)
CP: {a}
CP: {c}
CAj: {a} → S f (a) = c
CAj: {c} → R f (c) = a
DEs incorrecto, puesto que una clave primaria no puede ser a su vez clave ajena.
EEs incorrecto, puesto que no se permiten claves ajenas reflexivas.
FSí que es correcto, aunque habría que diferir la comprobación de la integridad referencial
y utilizar transacciones para añadir tuplas a ambas relaciones.
GSí que es correcto, aunque se debería utilizar el valor nulo para poder dar de alta tuplas en
ambas relaciones.
La sentencia de SQL "DROP VIEW":
DEn ningún caso afecta a las tablas o vistas a partir de las cuales se define su expresión de
tabla.
EDestruye todas las tablas a partir de las cuales se define su expresión de tabla sólo en el
caso de que se haya puesto la opción CASCADE en la creación de la vista.
FDestruye todas las tablas a partir de las cuales se define su expresión de tabla sólo en el
caso de que se haya puesto la opción WITH CHECK OPTION en la creación de la vista.
GDestruye todas las tablas a partir de las cuales se define su expresión de tabla.
Una base de datos se encuentra repartida en los discos D1 y D2, el fichero de diario se
encuentra en el disco D2 y las copias de seguridad de la base de datos y del diario en una
cinta C3, suponiendo que la copia del diario es más reciente que la copia de la base de datos.
Ante un fallo fatal del disco D2, ¿cómo se debe actuar?
DSe recupera la copia de seguridad de la base de datos y se repiten PDQXDOPHQWH todas las
transacciones realizadas desde la fecha de dicha copia.
ESe recuperan las copias de seguridad de la base de datos y del fichero de diario y se
repiten DXWRPiWLFDPHQWH las transacciones confirmadas en el diario desde la fecha de la
copia de la base de datos.
FSe mantienen las tablas de D1, y las tablas de D2 se recuperan de la copia de seguridad de
la base de datos.
GSe recuperan las copias de seguridad de la base de datos y del fichero de diario, se
deshacen DXWRPiWLFDPHQWH las transacciones anuladas en el diario después de la fecha de
la copia de la base de datos, y por último se repiten PDQXDOPHQWH todas las transacciones
realizadas desde la fecha de la copia de la base de datos.
Dado el siguiente esquema relacional:
Alumno(dni:dom_dni, nombre:dom_nom)
CP:{dni}
Asignatura(cod:dom_cod, nombre:dom_nom, créditos:dom_cre)
CP:{cod}
Cursa(dni:dom_dni, cod:dom_cod, nota:dom_not)
CP: {dni,cod}
CAj: {dni} →Alumno
CAj: {cod} →Asignatura
La cardinalidad máxima de la relación &XUVDes
DInfinita.
ELa cardinalidad de la relación $OXPQR.
FLa cardinalidad de la relación $VLJQDWXUD.
GEl producto de la cardinalidad de $OXPQR por la cardinalidad de $VLJQDWXUD.
Dado el esquema relacional de la cuestión 4, ¿qué información devuelve la siguiente
consulta?
SELECT Alumno.dni, Alumno.nombre, COUNT (cod)
FROM Alumno NATURAL LEFT JOIN Cursa
GROUP BY Alumno.dni, Alumno.nombre
DEl dni, el nombre y el número de asignaturas matriculadas de los alumnos matriculados de
alguna asignatura.
EEl dni y nombre de todos los alumnos, y el número de asignaturas de las que están
matriculados.
FEl dni, el nombre y el número de asignaturas matriculadas de los alumnos que se han
matriculado al menos de una asignatura.
GEl dni y nombre de todos los alumnos, y el número de asignaturas de las que están
matriculados siempre que este número sea distinto de cero.
La propiedad de atomicidad de una transacción consiste
DEn que su ejecución debe llevar a la base de datos a un estado consistente.
EEn que las modificaciones realizadas por una transacción no confirmada no son visibles al
resto de transacciones.
FEn que la confirmación de una transacción implica la grabación de los cambios realizados
en la base de datos.
GEn que en una transacción o se ejecutan todas sus operaciones o no se ejecuta ninguna.
¿Cuál de los siguientes puntos 12 es una característica de las técnicas de bases de datos?
DIntegración de toda la información de la organización.
EPersistencia de los datos.
FDescripción unificada de los datos, dependiente de las aplicaciones.
GMecanismos para asegurar la integridad y la seguridad de los datos.
Dados los siguientes esquemas de relación:
R(a: dom_a, b:dom_b, c:dom_c)
S(a:dom_a, b:dom_b, c:dom_c)
y la igualdad siguiente, 5[D]
6[D] 5[D], indicar cuál de las siguientes afirmaciones es
cierta.
DSi la igualdad es cierta, entonces ninguna tupla de 6tiene un valor en el atributo Dque no
sea igual al valor en el atributo Dde alguna tupla de 5.
ELa igualdad sólo es cierta si 5 está vacía.
FLa igualdad sólo es cierta si 5[D] ⊆6[D].
GLa igualdad sólo es cierta si 5[D] ∩6[D] = ∅.
Dada la relación R de la cuestión 8 ¿cuál de estas igualdades es cierta?
DR[b,c] R[b] × R[c]).
E(R DONDE b=‘b1’ [b,c]) (R[b,c] DONDE b= ‘b1’).
FR[b,c] (R[b]
R[c]).
G(R DONDE (b=‘b1’ ∧ c=‘c1’)) (R DONDE b=‘b1’ ∪ R DONDE c=‘c1’).
Dados los esquemas de relación de la cuestión 8, a los que se les añaden las restricciones
de que el atributo Den 6es la clave primaria y de que el atributo Den 5es una la clave ajena
que hace referencia a 6indica cuál de las siguientes afirmaciones es cierta
DPara cualquier base de datos, se cumple que 5[D] ∩6[D] = ∅.
EPara cualquier base de datos, se cumple que 5[D] ∩6[D] ≠ ∅.
FPara cualquier base de datos, se cumple que 5[D] ⊆6[D].
GPuede existir alguna base de datos en la que se cumple 5[D] ⊃6[D].
¿Cuáles son las tres organizaciones primarias de ficheros?
DOrdenada, inversión completa, dispersión.
EDesordenada, ordenada y dispersión.
FIndización primaria, indización secundaria y dispersión.
GIndización ordenada de un nivel, indización multinivel, indización lógica.
¿Qué se puede afirmar de un sistema de gestión de bases de datos que procese
transacciones como indica la figura inferior? (T1 y T2 son transacciones)
T1
leer(X)
Tiempo
X=X+1
escribir(X)
confirmar
…
X en T1
T2
X en T2
5
6
6
6
6
leer(X)
…
6
6
DEl sistema de gestión no asegura la atomicidad de las transacciones.
EEl sistema de gestión no asegura la consistencia en el procesamiento de las transacciones.
FEl sistema de gestión no asegura el aislamiento de las transacciones.
GEl sistema de gestión no asegura la persistencia de las transacciones.
Dado el siguiente esquema relacional:
R(a: dom_a, b:dom_b, c:dom_c)
CP={a} CAj={b,c} → S Integridad referencial parcial
S(b:dom_b, c:dom_c, d:dom_d)
CP={b,c} CAj={b} → T Borrado en Cascada
T(b:dom_b, e: dom_e)
CP={b}
y la siguiente extensión de dicho esquema:
5
6
7
D
E
F
E
F
G
E
H
a1 nulo c2
b1
c2
d1
b1
e1
a2 b3 nulo
b1
c5 nulo
b3
e5
b3
c6 nulo
¿Cuál será el comportamiento del SGBD frente al borrado de la tupla {(b,‘b1’), (e,‘e1’)}
de T?
DRechazar la operación de borrado.
EBorrar la tupla de T y borrar en cascada las tuplas {(b,‘b1’), (c,‘c2’), (d,‘d1’)} y {(b,‘b1’),
(c,‘c5’), (d,nulo)} de S.
FBorrar la tupla de T y borrar en cascada las tuplas {(b,‘b1’), (c,‘c2’), (d,‘d1’)} y {(b,‘b1’),
(c,‘c5’), (d,nulo)} de S y la tupla {(a,‘a1’), (b,nulo), (c,‘c2’)} de R.
GBorrar sólo la tupla de T.
Una vista en un esquema relacional es siempre:
DUn subconjunto de tuplas de una relación del esquema.
EUna relación derivada (virtual) definida por una sentencia SELECT.
FUna o varias relaciones del esquema.
GUna relación derivada (virtual) definida por medio de una sentencia SELECT sobre una
única relación del esquema.
%$6(6'('$726-81,262/8&,21(6
1) a) No, porque aparecerían dos tuplas en la relación &RQGXFH con la misma clave primaria,
lo cual no es posible.
b) Sí, porque al variar el dni las claves primarias serían diferentes. Basta también con
poner un ejemplo:
{(dni, 1), (matrícula, 'V-1111-AA'), (fecha, '21-6-99'), (h_inicio, '2:00'), (h_fin, '6:00')}
{(dni, 2), (matrícula, 'V-1111-AA'), (fecha, '21-6-99'), (h_inicio, '7:00'), (h_fin, '12:00')}
2) que hayan sido conducidos alguna vez < que hayan sido revisados al menos una vez.
3) a)6(/(&7GQLQRPEUH)5207$;,67$
:+(5(WIQR,618//25GLUHFFLyQ,618//
b) 6(/(&7&2817',67,1&7PDWUtFXOD)520&21'8&(&7$;,67$7
:+(5(&PDWUtFXOD127,16(/(&7PDWUtFXOD)5205(9,6,Ï1
$1'&GQL 7GQL$1'7HGDG
c) 6(/(&77$FRGW7$QRPEUH5IHFKD&2817
)5207$//(57$5(9,6,Ï15
:+(5(7$FRGW 5FRGW
*5283%<7$FRGW7$QRPEUH5IHFKD
+$9,1*&2817!
d) 6(/(&7',67,1&77PDWUtFXOD7WIQR
)5207$;,7&21'8&(&27$;,67$&
:+(5(7PDWUtFXOD &2PDWUtFXOD$1'&2GQL &GQL$1'
&HGDG!6(/(&7$9*HGDG
)5207$;,67$
$1' 6(/(&7&2817',67,1&75FRGW
)5205(9,6,Ï15
:+(5(7PDWUtFXOD 5PDWUtFXOD
e) 6(/(&77$FRGW7$QRPEUH)5207$//(57$
:+(5(127(;,6766(/(&7 )520&21'8&(&27$;,67$&
:+(5(&2GQL &GQL$1'&HGDG!$1'
127(;,6766(/(&7)5205(9,6,Ï15
:+(5(5PDWUtFXOD &2PDWUtFXOD$1'
5FRGW 7$FRGW
f)
6(/(&77PDWUtFXOD7WIQR&2817',67,1&7&2GQL
)5207$;,7&21'8&(&2
:+(5(&2PDWUtFXOD 7PDWUtFXOD$1'
127(;,6766(/(&7)520&21'8&(&27$;,67$&
:+(5(&2PDWUtFXOD 7PDWUtFXOD$1'
&2GQL &GQL$1'&HGDG
*5283%<7PDWUtFXOD7WIQR
+$9,1*&2817',67,1&7&2GQL! 4) a)
b)
5)
INSERCIÓN en REVISIÓN
MODIFICACIÓN del atributo 'matrícula' de REVISIÓN
MODIFICACIÓN del atributo 'fecha' de REVISIÓN
INSERCIÓN en CONDUCE
MODIFICACIÓN del atributo 'matrícula' de CONDUCE
MODIFICACIÓN del atributo 'fecha' de CONDUCE
&5($7(75,**(57
$)7(5,16(57215(9,6,Ï1
)25($&+52:
'(&/$5(
$X[180%(5
%(*,1
6(/(&7&2817,172DX[
)520&21'8&(&
:+(5(QHZPDWUtFXOD &PDWUtFXOD$1'QHZIHFKD &IHFKD
,)DX[!7+(15$,6(B$33/,&$7,21B(5525
1RVHSXHGH
UHYLVDUXQWD[LTXHHVWiVLHQGRFRQGXFLGRHQHVHPLVPRGtD
(1',)
(1'
CX: CONDUCE, TX: TAXI
∀CX ( (CONDUCE(CX) ∧ (CX.h_inicio ≥ '22:00' ∨ CX.h_inicio ≤ '06:00') ) →
∃TX ( TAXI(TX) ∧ TX.matrícula = CX.matrícula ∧ ¬nulo(TX.tfno) ) ) }
o bien,
∀CX ∀TX ( (CONDUCE(CX) ∧ (CX.h_inicio ≥ '22:00' ∨ CX.h_inicio ≤ '06:00') ∧
TAXI(TX) ∧ TX.matrícula = CX.matrícula) → ¬nulo(TX.tfno) ) }
y cualquier expresión equivalente a las anteriores.
62/8&,21(6
&8(67,21$5,2'(%$6(6'('$726
4
$
c
a
b
d
b
d
c
c
b
c
b
c
a
b
%
a
b
d
b
d
c
c
b
c
b
c
a
b
c
&
b
d
b
d
c
c
b
c
b
c
a
b
c
a
'
d
b
d
c
c
b
c
b
c
a
b
c
a
b
(
d
c
c
b
c
b
c
a
b
c
a
b
d
b
)
c
c
b
c
b
c
a
b
c
a
b
d
b
d
*
c
b
c
b
c
a
b
c
a
b
d
b
d
c
+
a
b
c
a
b
d
b
d
c
c
b
c
b
c
,
c
a
b
c
a
b
d
b
d
c
c
b
c
B
Descargar