Cuestionario de Bases de Datos

Anuncio
&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
(OHVTXHPDOyJLFRGHXQDEDVHGHGDWRVVHGHILQH
D En función del contenido, el equipo físico, el equipo lógico y los usuarios del sistema de información.
E En función de los contenidos del sistema de información, dependiente de la perspectiva que cada uno
de los usuarios tiene de ellos.
F En función de los contenidos del sistema de información, independiente de la perspectiva que cada uno
de los usuarios tiene de ellos.
G En función de la visión particular que cada usuario o aplicación tiene del sistema de información.
(Q XQ tQGLFH HQ iUERO % GH 1 HQWUDGDV FRQ IDFWRU GH EORTXHR IE VXSRQLHQGR TXH WRGR HO ILFKHUR
tQGLFH FDEH HQ XQ EORTXH GH GLVFR ¢FXiQWRV DFFHVRV D EORTXH GH PHPRULD VHFXQGDULD Pi[LPRV \
PtQLPRVKDUtDQIDOWDSDUDEXVFDU\REWHQHUXQUHJLVWURSRUHOFDPSRTXHRUGHQDGLFKRtQGLFH"
D Mín: logfb N, Máx: fb.
E Mín: logN fb, Máx: fb.
F Mín: logfb N, Máx: logfb N.
G Mín: 2, Máx 2.
¢&yPR VH GHILQLUtD HQ HO 6*%' 2UDFOH OD UHVWULFFLyQ GH LQWHJULGDG OD HGDG GH XQD SHUVRQD QR
SXHGHGHFUHFHU"
D Mediante una regla de actividad (TRIGGER).
E No se pueden definir restricciones de integridad en Oracle 8.0, ya que el CRT no las permite.
F Mediante una restricción de tabla (una instrucción CHECK sobre el atributo "edad").
G Mediante la instrucción "CREATE ASSERTION" del SQL estándar.
8QDDJUXSDFLyQRFO~VWHUHV
D Es un tipo de organización de ficheros especial en la que dos tablas se agrupan en los mismos bloques
de memoria secundaria según una clave ajena de frecuente uso.
E Es cada hoja interna de un árbol B.
F Es la lista de nodos ordenados que se establece entre las hojas de un árbol B+.
G Es el bloque mínimo (normalmente 512 Kb) de transferencia de memoria secundaria a memoria
principal, que agrupa varios cilindros no contiguos.
'DGDXQDEGDWRVVREUHODTXHIXQFLRQDQYDULDVDSOLFDFLRQHVODFUHDFLyQGHXQtQGLFHHQXQDWDEOD
D Se considera una modificación del nivel externo, ya que cada aplicación trabaja con su esquema
externo.
E No cumple la propiedad de independencia lógica, ya que una aplicación no puede crear índices.
F Se considera una modificación del nivel interno o físico, que afectaría al rendimiento de las otras
aplicaciones.
G No cumple la propiedad de independencia física, ya que afectaría al funcionamiento de las otras
aplicaciones sobre la misma base de datos.
ANULADA
'DGRHOVLJXLHQWHHVTXHPDGHEDVHGHGDWRVGHWUiILFRHVTXHPD
Persona(GQL:entero, QRPEUH:cadena,
GLUHFF:cadena)
CP:{GQL}
Multa(YHKtFXOR:cadena, SURS:entero, IHFKD:cadena, SWV:entero)
CP:{YHKtFXOR, SURS, IHFKD}
VNN:{SWV}
CAj:{YHKtFXOR, SURS} → Vehículo
f(YHKtFXOR)=PDWULF
f(SURS)=SURS
Integridad referencial completa
Vehículo(PDWULF:cadena, SURS:entero, IHFKDBFRPSUD: cadena)
CP:{PDWULF, SURS}
CAj:{SURS} → Persona
Borrado en cascada
Modificación en cascada
Integridad referencial completa
¿Cuál de las siguientes afirmaciones es CIERTA?
D Es necesaria la definición de la biyección sobre el atributo de la clave ajena de la relación Vehículo.
E El tipo de restricción de integridad referencial definida sobre la clave ajena de Vehículo es redundante
y, por tanto, se podría eliminar.
F En la relación Multa se podría eliminar la biyección.
G El tipo de integridad referencial completa de la CAj de Multa NO es redundante.
'DGRHOHVTXHPD¢FXiOVHUiODFDUGLQDOLGDGPi[LPD\PtQLPDGHODVLJXLHQWHFRQVXOWD"
Vehículo >< Multa
D La cardinalidad mínima es 0 y la máxima 0 porque no hay atributos en común.
E La cardinalidad mínima y máxima coinciden y es Card(Vehículo)xCard(Multa).
F La cardinalidad mínima es 0 y la máxima Card(Vehículo).
G La cardinalidad mínima es Card(Multa) y la máxima Card(Vehículo)xCard(Multa).
(Q HO HVTXHPD ¢VH SHUPLWH OD LQVHUFLyQ GH XQD WXSOD HQ OD UHODFLyQ 9HKtFXOR TXH QR WHQJD
SURSLHWDULR"
D Sí, si se cambia la restricción de integridad referencial a parcial.
E No, nunca.
F Sí, sin realizar ningún cambio.
G Sí, si se cambia la restricción de integridad referencial a débil.
'DGRHOHVTXHPD¢VHSRGUtDHOLPLQDUXQDWXSODGHODUHODFLyQ3HUVRQDFRQPXOWDV"
D Nunca.
E Sí, siempre, y además se borrarían todos los vehículos que, dentro de la relación Vehículo, estuvieran
relacionados con dicha persona.
F Sí, si previamente se ha modificado el valor asociado al atributo “dni” a nulo.
G Sí, siempre y cuando no tuviera ningún vehículo asociado en la relación Vehículo.
6XSRQLHQGRTXHHQHOHVTXHPDVHOHDxDGHODVLJXLHQWHUHVWULFFLyQGHLQWHJULGDGJHQHUDO
¬∃X (Multa(X) ^ ¬∃Y(Persona(Y) ^ X.prop = Y.dni))
D Es sintácticamente correcta aunque no evaluable dado que es una fórmula no segura.
E Es sintácticamente incorrecta.
F Es correcta y necesaria, dado que permitiría asegurar que no se le pueda poner una multa a una persona
que no existe (es decir, no está en la base de datos).
G Es correcta aunque innecesaria dado que está incluida en las restricciones de integridad que ya están
definidas.
'DGRHOHVTXHPD¢VRQHTXLYDOHQWHVODVVLJXLHQWHVFRQVXOWDV"
1. (Persona >< (Vehículo(matric, vehículo) >< Multa)(prop, dni))[nombre]
2. (Persona >< Multa(prop, dni))[nombre]
D No y, además, la primera es sintácticamente incorrecta.
E Sí y obtiene el nombre de las personas que poseen o han poseído algún vehículo.
F No: La primera obtiene el nombre de las personas que, poseyendo o habiendo poseído un vehículo,
tienen multas, mientras que la segunda obtiene también el nombre de las personas con multas, aunque
no hayan poseído nunca ningún vehículo.
G Sí y obtiene el nombre de las personas con multas.
6XSyQJDVH GRV SURFHVRV 3 \ 3 TXH TXLHUHQ DxDGLU GyODUHV FDGD XQR D XQD PLVPD FXHQWD
FRUULHQWHLQLFLDOPHQWHFRQVDOGR PHGLDQWHGRVWUDQVDFFLRQHVTXHVHVRODSDQFRPRVHLOXVWUDHQ
ODILJXUD
Ingreso
P1
Ingreso
P2
i1
i2
i3
i4
i5
Ante un funcionamiento normal del sistema ¿Qué saldo tendría su cuenta corriente si se consultará por una
tercera transacción en los instantes i1, i2, i3, i4 y i5?
D i1: 0$, i2: 0$, i3: 1000$, i4:1000$, i5: 1000$.
E i1: 0$, i2: 0$, i3: 0$, i4: 0$, i5: 2000$.
F i1: 0$, i2: 0$, i3: 1000$, i4: 2000$, i5: 2000$.
G i1: 0$, i2: 0$, i3: 0$, i4: 1000$, i5: 2000$.
6XSyQJDVHXQVLVWHPDGHJHVWLyQGHEDVHVGHGDWRVFX\D~QLFDPHPRULDVHFXQGDULDFRQVLVWHHQGRV
GLVFRVGXURV'\'WHQLHQGRXQDIUHFXHQFLDGHFKHFNSRLQWVGHSRUKRUD\KDFLHQGRFRSLDVGHO
ILFKHURGLDULRFDGDPLQ6LODEDVHGHGDWRV\HOILFKHURGLDULRHVWiQHQHOGLVFR'\ODVFRSLDVGH
VHJXULGDG GH OD EDVH GH GDWRV \ ODV FRSLDV GH VHJXULGDG GHO ILFKHUR GLDULR HQ ' ¢FXiO GH ODV
VLJXLHQWHVDILUPDFLRQHVHV)$/6$"
D Si se pierde D1, se perderán, como mucho, los últimos 10 min. de trabajo.
E Si se pierde D1, habrá que restaurar la copia de seguridad de la base de datos más reciente de D2 y
rehacer las transacciones confirmadas de la última copia de seguridad del fichero diario, también en
D2.
F Si se pierde D2, el sistema podrá continuar su funcionamiento normal, aunque con el riesgo de que si a
continuación se pierde D1, se perdería toda la información.
G Si se pierde D2, la base de datos podría estar en un estado inconsistente si se anula alguna transacción
que estuviera empezada antes de la última copia de seguridad del fichero diario.
&RQVLGHUDHOVLJXLHQWHHVTXHPDHQ64/GH2UDFOH
CREATE TABLE PERSONA(
dni NUMBER PRIMARY KEY NOT DEFERRABLE,
nombre VARCHAR(40));
CREATE TABLE AMIGO(
dni1 NUMBER CONSTRAINT fk1 REFERENCES PERSONA DEFERRABLE,
dni2 NUMBER CONSTRAINT fk2 REFERENCES PERSONA DEFERRABLE,
CONSTRAINT CP_Amigo PRIMARY KEY (dni1, dni2) DEFERRABLE,
CONSTRAINT CP_No_reflexiva CHECK (dni1 < > dni2));
Y los datos siguientes:
PERSONA
AMIGO
dni
Nombre
dni1
dni2
1111
Alba
1111
2222
2222
Joan
1111
3333
3333
Lluïsa
2222
1111
¿Cómo modificarías el dni de Joan del valor 2222 al valor 4444 en cascada?
D Mediante las instrucciones SQL siguientes:
COMMIT;
SET CONSTRAINT fk1 DEFERRED;
SET CONSTRAINT fk2 DEFERRED;
UPDATE PERSONA SET dni=4444 WHERE dni=2222;
UPDATE AMIGO SET dni1=4444 WHERE dni1=2222;
UPDATE AMIGO SET dni2=4444 WHERE dni2=2222;
COMMIT;
E No se puede porque la restricción de clave primaria en persona no es diferible.
F No se puede porque no se ha definido la opción "ON CASCADE".
G Mediante las instrucciones SQL siguientes:
COMMIT;
SET CONSTRAINT CP_AMIGO DEFERRED;
UPDATE PERSONA SET dni= 4444 WHERE dni=2222;
COMMIT;
%$6(6'('$726
El siguiente esquema relacional representa el sistema de información de control de vehículos.
3URSLHWDULR (GQL: d_dni, QRP: d_nom, GLU: d_dir, IHFKDBQDF: d_fecha)
CP: {dni}
VNN: {nom}
VNN: {dir}
VNN: {fecha_nac}
7LSRB9(FRG: d_cod, GHVF: d_desc, WDVD: d_tasa)
CP:{cod}
VNN: {desc}
VNN: {tasa}
9HKtFXOR(QBPDW: d_n_mat, WLSR: d_tipo, DxRBIDE: d_año, SURSBDFW: d_dni)
CP: {n_mat}
VNN: {año_fab}
CAj: {prop_act} → Propietario f(prop_act)→dni
VNN: {prop_act}
CAj: {tipo} → Tipo_V f(tipo)→cod
&RPSUD(QBPDW: d_n_mat, SURS: d_dni, IHFKDBF: d_fecha)
CP: {n_mat, fecha_c}
VNN: {prop}
CAj: {prop} → Propietario f(prop)→dni
CAj: {n_mat} → Vehículo
5HVWULFFLRQHVGHLQWHJULGDG
(1) Todo propietario está en Compra
(2) Todo vehículo está en Compra
(3) Un propietario no puede venderse a sí mismo un vehículo
(4) Para cada vehículo, no puede haber ninguna compra posterior a la fecha de compra por
parte del propietario actual
donde los atributos tienen el siguiente significado:
3URSLHWDULRGQL: D.N.I. del propietario
QRPnombre del propietario
GLU: dirección del propietario
IHFKDBQDF: fecha de nacimiento del propietario
7LSRB9
FRG: código del tipo de vehículo
WDVD: impuesto del tipo de vehículo
GHVFdescripción del tipo de vehículo
9HKtFXOR QBPDW: número de matrícula
DxRBIDE:año de fabricación
WLSR:del vehículo
SURSBDFW: D.N.I del propietario actual
&RPSUD
SURS:D.N.I. del propietario antiguo
(que compra o ha comprado el veh.)
QBPDW: número de matrícula
IHFKDBF:fecha de compra del vehículo
'(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:
DDiferentes vehículos del mismo tipo, ¿pueden pagar diferentes tasas? Justifique
brevemente la respuesta. (0.25)
E¿Puede un propietario aparecer como propietario actual de varios vehículos? Justifique
brevemente la respuesta. (0.25)
Escriba en SQL/92 las siguientes consultas:
DObtener el nombre y dirección de los propietarios que poseen actualmente algún vehículo,
junto con la matrícula de los mismos. (0.25)
EObtener el nombre y fecha de nacimiento de los propietarios que poseen actualmente más
de un vehículo.
(0.25)
FObtener el nombre de los propietarios actuales de los vehículos cuyo tipo se describe
como “turismo”. (0.25)
GObtener la matrícula del vehículo y el nombre del propietario actual de los vehículos que
sólo han tenido ese propietario. (0.5)
HObtener para cada tipo con más de 3 vehículos, el número de vehículos de ese tipo que
hayan tenido más de 2 propietarios. (1)
IObtener la descripción del tipo de vehículo del que hay más vehículos y el número de
éstos. (1)
JObtener el nombre de los propietarios que han tenido o tienen algún vehículo de cada uno
de los tipos cuya tasa es superior a 10000. (1)
Dada la restricción de integridad:
“Todo propietario está en Compra”
DEnumere las operaciones sobre la base de datos que podrían violar la restricción. (0.5)
EDiseñe un disparador, “trigger”, de ORACLE8 para controlar alguna de las operaciones
enumeradas en la cuestión anterior. (0.5)
Exprese la siguiente restricción de integridad en &iOFXOR5HODFLRQDOGH7XSODV:
“Para cada vehículo, no puede haber ninguna compra posterior a la fecha de compra por
parte del propietario actual”. (0.75)
%$6(6'('$726-81,262/8&,21(6
1) a) No, porque aparecerían dos tuplas en la relación 7LSRB9 con el mismo cod y diferente tasa, lo
cual no es posible, porque cod es la clave primaria.
b) Sí, ya que no hay ninguna R.I. que lo impida. Por ejemplo, las siguientes tuplas de Vehículo:
{(n_mat, 'V-1111-GG'), (tipo, 'tt'), (año_fab, '1999'), (prop_act, '33333333') }
{(n_mat, 'V-2222-HH'), (tipo, 'ss'), (año_fab, '1998'), (prop_act, '33333333') }
son consistentes e indicarían que dos vehículos tendrían el propietario con dni '33333333'.
2) a)6(/(&73QRP3GLU9QBPDW)520SURSLHWDULR3YHKtFXOR9
:+(5(3GQL 9SURSBDFW
b)
6(/(&73QRP3IHFKDBQDF)520SURSLHWDULR3
:+(5(6(/(&7&2817)520YHKtFXOR9
:+(5(3GQL 9SURSBDFW
c)
6(/(&7',67,1&73QRP)520SURSLHWDULR3YHKtFXOR9WLSRBY7
:+(5(3GQL 9SURSBDFW$1'9WLSR 7FRG$1'7GHVF WXULVPR
d)
6(/(&79QBPDW3QRP)520SURSLHWDULR3YHKtFXOR9
:+(5(3GQL 9SURSBDFW$1'
127(;,6766(/(&7)520FRPSUD&
:+(5(&QBPDW 9QBPDW$1'3GQL!&SURS
e)
6(/(&7&2817
)520YHKtFXOR9
:+(5(6(/(&7&2817)520YHKLFXOR9:+(5(9WLSR 9WLSR
$1'
6(/(&7&2817)520FRPSUD&:+(5(&QBPDW 9QBPDW
*5283%<9WLSR
f)
6(/(&77GHVF&2817
)520WLSRBY7YHKtFXOR9
:+(5(9WLSR 7FRG
*5283%<7FRG7GHVF
+$9,1*&2817! $//6(/(&7&2817
)520YHKtFXOR9
:+(5(9WLSR,612718//
*5283%<9WLSR
6(/(&73QRP
)520SURSLHWDULR3
:+(5(127(;,6766(/(&7)520WLSRBY7
:+(5(7WDVD!$1'
127(;,6766(/(&7)520YHKtFXOR9FRPSUD&
:+(5(9WLSR 7FRG$1'
&QBPDW 9QBPDW$1'&SURS 3GQL
$1'(;,6766(/(&7)520YHKtFXOR9WLSRBY7
:+(5(9WLSR 7FRG$1'7WDVD!
g)
3) a)
INSERCIÓN en PROPIETARIO
BORRADO en COMPRA
MODIFICACIÓN del atributo 'prop' de COMPRA
b)
4)
&5($7(75,**(57
$)7(5'(/(7(21&2035$
)25($&+52:
'(&/$5(
DX[180%(5
%(*,1
6(/(&7&2817,172DX[
)520&2035$&
:+(5(ROGSURS &SURS
,)DX[ 7+(15$,6(B$33/,&$7,21B(5525
1RVHSXHGH
ERUUDUODFRPSUDSRUTXHGHMDUtDPRVXQSURSLHWDULRVLQFRPSUDV
(1',)
(1'
VX: VEHICULO, CX, CY: COMPRA
∀VX,CX (VEHICULO(VX) ∧ COMPRA(CX) ∧ CX.n_mat = VX.n_mat
∧ CX.prop = VX.prop_act ) →
¬∃CY (COMPRA(CY) ∧ CY.n_mat = VX.n_mat ∧ CY.fecha_c > CX.fecha_c)
o bien,
∀VX (VEHICULO(VX) →
¬∃CX∃CY (COMPRA(CX) ∧ CX.n_mat = VX.n_mat ∧ CX.prop = VX.prop_act ∧
COMPRA(CY) ∧ CY.n_mat = VX.n_mat ∧ CY.fecha_c > CX.fecha_c)
o bien,
¬∃VX∃CX∃CY(VEHICULO(VX) ∧ COMPRA(CX) ∧ CX.n_mat = VX.n_mat ∧ CX.prop =
VX.prop_act ∧ COMPRA(CY) ∧ CY.n_mat = VX.n_mat ∧ CY.fecha_c > CX.fecha_c)
y cualquier expresión equivalente a las anteriores.
&8(67,21$5,2'(%$6(6'('$726
4
$
C
D
A
A
Anul
B
D
B
A
D
D
D
D
A
%
C
A
D
A
Anul
D
B
B
B
B
A
C
A
C
&
A
C
C
B
C
A
B
B
D
Anul
D
A
A
D
'
B
A
B
C
C
D
B
B
B
Anul
B
B
B
A
(
A
A
C
A
C
B
D
B
B
A
B
B
Anul
A
62/8&,21(6
)
Anul
A
C
C
C
A
A
D
D
B
A
A
D
B
Al anularse una pregunta, la fórmula a aplicar es: (Bien - Mal / 3.0) * 0.27
Descargar