Uploaded by Fernando Fernando Fernando

Autoevalucion 2018 Enunciados

advertisement
BASES DE DATOS. PRIMERA AUTOEVALUACIÓN
TEMA 1. INTRODUCCIÓN
Términos de repaso
Repasar en el libro de texto los siguientes términos:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Sistema gestor de bases de datos (SGBD).
Aplicaciones de sistemas de bases de datos.
Sistemas procesadores de archivos.
Inconsistencia de datos.
Restricciones de consistencia.
Abstracción de datos.
Ejemplar de la base de datos.
Esquema: esquema físico y esquema lógico.
Independencia física de los datos.
Modelos de datos: modelo entidad-relación, modelo de datos relacional, modelo de datos
basado en objetos y modelo de datos semiestructurados.
Lenguajes de bases de datos: lenguaje de definición de datos, lenguaje de manipulación de
datos y lenguaje de consultas.
Metadatos.
Programa de aplicación.
Normalización.
Diccionario de datos.
Gestor de almacenamiento.
Procesador de consultas.
Transacciones: atomicidad, recuperación de fallos y control de concurrencia.
Arquitecturas de bases de datos de dos y tres capas.
Minería de datos.
Administrador de bases de datos (ABD).
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. En cuanto a los inconvenientes relacionados con guardar la información de una
organización en un sistema de procesamiento de archivos, indicar cuál de las
afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
A) Uno de estos inconvenientes son los problemas de aislamiento de datos: dificultad al escribir
nuevos programas de aplicación para recuperar los datos correspondientes al estar estos
dispersos en varios archivos y pudiendo estar los archivos en diferentes formatos.
B) Uno de estos inconvenientes son los problemas de seguridad: es posible que determinados
usuarios puedan acceder a datos que no son de su competencia.
C) Uno de estos inconvenientes son las anomalías en el acceso concurrente: permitir que varios
usuarios actualicen los datos simultáneamente.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
2. Teniendo en cuenta las afirmaciones realizadas en I y II, en relación con los niveles de
abstracción de datos, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
El nivel físico describe en detalle las estructuras de datos complejas de bajo nivel.
II. El nivel lógico describe qué datos se almacenan en la base de datos y qué relaciones existen
entre esos datos.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
3. En relación con los ejemplares y esquemas de la base de datos y teniendo en cuenta las
afirmaciones realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es
correcta:
I.
La colección de información almacenada en la base de datos en un momento dado se denomina
esquema de la base de datos.
II. Los conceptos de esquemas y ejemplares de las bases de datos se pueden comprender por
analogía con los programas escritos en un lenguaje de programación. Así, los valores de las
variables de un programa se corresponden en cada momento con el concepto de esquema de la
base de datos.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
4. En relación con los modelos de datos, indicar cuál de las siguientes afirmaciones es
cierta.
A) Bajo la estructura de las bases de datos se encuentra el modelo de datos: se trata de una
colección de herramientas conceptuales para describir los datos, sus relaciones, su semántica y
las restricciones de consistencia.
B) El modelo orientado a objetos permite una especificación de datos en el que los elementos de
datos individuales del mismo tipo pueden tener diferentes conjuntos de atributos.
C) El modelo de datos semiestructurados se puede considerar como una extensión del modelo E-R
con los conceptos de la encapsulación, los métodos (funciones) y la identidad de los objetos.
D) Las afirmaciones anteriores son todas falsas.
5. Teniendo en cuenta las afirmaciones realizadas en I y II, indicar cuál de las siguientes
opciones (A, B, C, D) es correcta:
I.
Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los usuarios tener
acceso a los datos organizados mediante el modelo de datos correspondiente, o manipularlos.
II. Los lenguajes de manipulación de datos (LMD) declarativos son no procedimentales.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
6. Teniendo en cuenta las afirmaciones realizadas en I y II, indicar cuál de las siguientes
opciones (A, B, C, D) es correcta:
I.
El lenguaje de consultas de SQL usa como entrada una o varias tablas y devuelve siempre una
única tabla.
II. En determinados casos se utilizan programas de aplicación para interactuar con las bases de
datos.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
7. En relación con los componentes del gestor de almacenamiento, indicar cuál de las
siguientes afirmaciones es cierta.
A) El gestor de transacciones comprueba que se satisfagan las restricciones de integridad y la
autorización de los usuarios para tener acceso a los datos.
B) El gestor de la memoria intermedia, entre otros, garantiza que la base de datos quede en un
estado consistente a pesar de los fallos del sistema.
C) El gestor de archivos es el responsable de traer los datos desde el disco de almacenamiento a la
memoria principal y decidir sobre los datos a guardar en la memoria caché.
D) Las afirmaciones anteriores son todas falsas.
8. En relación con la componentes del procesador de consultas, indicar cuál de las
afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
A) El intérprete del LDD se encarga de interpretar las instrucciones del LDD y registra las
definiciones en el diccionario de datos.
B) El compilador del LMD, además de traducir las instrucciones del LMD en un lenguaje de
consultas, también realiza una optimización de consultas eligiendo el plan de evaluación de
menor coste de entre todas las opciones posibles.
C) El motor de evaluación de consultas ejecuta las instrucciones de bajo nivel generadas por el
compilador del LMD.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
9. Teniendo en cuenta las afirmaciones realizadas en I y II, en relación con la gestión de
transacciones, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
Es responsabilidad del gestor de recuperación de fallos controlar la interacción entre las
transacciones concurrentes para garantizar la consistencia de la base de datos.
II. El componente de gestión de transacciones es responsable de garantizar las propiedades de
atomicidad y de durabilidad.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
10. En relación con la arquitectura de las bases de datos y teniendo en cuenta las
afirmaciones realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es
correcta:
I. En una arquitectura de dos capas, la aplicación se divide en un componente que reside en la
máquina cliente, que invoca la funcionalidad del sistema de bases de datos en la máquina
servidora mediante instrucciones del lenguaje de consultas.
II. En una arquitectura de tres capas, la máquina cliente actúa simplemente como una parte visible al
usuario y no alberga llamadas directas a la base de datos.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
11. En relación con la minería y análisis de datos y teniendo en cuenta las afirmaciones
realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
El término minería de datos se refiere, en líneas generales, al proceso de análisis
semiautomático de grandes bases de datos para descubrir patrones útiles.
II. La minería de datos denomina también aprendizaje de la máquina.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
12. En relación con el modelo de datos orientado a objetos, indicar cuál de las afirmaciones
realizadas en A), B) y C) es falsa. Si considera todas son ciertas seleccione la opción D).
A) La herencia, la identidad de objetos y la encapsulación (ocultamiento de información), junto con
otros métodos que aportan una interfaz para con los objetos, se encuentran entre los conceptos
clave de la programación orientada a objetos que han encontrado aplicación en el modelado de
datos.
B) El modelo de datos orientado a objetos también enriquece el sistema de tipos, incluyendo tipos
estructurados y colecciones.
C) El modelo de datos orientado a objetos puede considerarse como una ampliación del modelo ER con las nociones de encapsulación, métodos (funciones) e identidad de objetos.
D) Las afirmaciones anteriores son todas ciertas.
13. En relación con los modelos de datos semiestructurados, indicar cuál de las siguientes
afirmaciones es cierta:
A) Los modelos de datos semiestructurados permiten la especificación de los datos, de modo que
cada elemento de datos del mismo tipo nunca puede tener conjuntos de atributos diferentes.
B) El lenguaje XML se diseñó inicialmente como un modo de añadir información de marcas a los
documentos de texto, pero se ha vuelto importante debido a sus aplicaciones en el intercambio
de datos.
C) XML ofrece un modo de representar los datos que tienen una estructura anidada, pero carece de
flexibilidad en la estructuración de los datos.
D) Las afirmaciones anteriores son todas falsas.
14. En relación con el administrador de bases de datos (ABD), indicar cuál de las
afirmaciones realizadas en A), B) y C) es falsa. Si considera que son todas ciertas
seleccione la opción D).
A) Una de las funciones del ABD es la definición del esquema de la base de datos.
B) Es función del ABD la realización de modificaciones en el esquema de la base de datos cuando
sea necesario.
C) El ABD no es el encargado de supervisar los trabajos que se están ejecutando en la base de
datos.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
TEMA 2. INTRODUCCIÓN AL MODELO RELACIONAL
Términos de repaso
Repasar en el libro de texto los siguientes términos:
•
•
•
•
•
•
•
•
Tabla, relación, tupla, atributo, dominio, dominio atómico y valor nulo.
Esquema de la base de datos, ejemplar de la base de datos, esquema de relación y ejemplar
de relación.
Claves: superclave, clave candidata, clave primaria y clave externa (relación referenciante y
Relación referenciada).
Restricción de integridad referencial.
Diagrama de esquema.
Lenguaje de consulta: lenguaje procedimental y lenguaje no procedimental.
Operaciones sobre relaciones: selección de tuplas, selección de atributos, reunión natural,
producto cartesiano y operaciones de conjuntos.
Álgebra relacional.
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. En relación con la estructura de las bases de datos relacionales, indicar cuál de las
afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
A) Una base de datos relacional consiste en un conjunto de tablas, a cada una de las cuales se le
asigna un nombre único y constan de una serie de columnas y filas. En términos matemáticos
existe una correspondencia entre los conceptos de: tabla - relación, fila - tupla y columna atributo.
B) El término ejemplar de relación se utiliza para referirse a una instancia específica de una
relación.
C) Para cada atributo de una relación existe un conjunto de valores permitidos, llamado dominio del
atributo.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
2. El relación con el esquema de la base de datos y teniendo en cuenta las afirmaciones
realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta.
I.
El concepto de relación se corresponde con el concepto de variable de los lenguajes de
programación.
II. El concepto esquema de la relación se corresponde con el concepto de definición de tipos de los
lenguajes de programación.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
3. En relación con las claves, indicar cuál de las afirmaciones realizadas en A), B) y C) es
falsa. Si considera que todas son ciertas seleccione la opción D).
A) Es posible que varios conjuntos diferentes de atributos puedan ejercer como claves candidatas.
B) Las claves candidatas pueden admitir subconjuntos que sean superclaves.
C) Una superclave es un conjunto de uno o varios atributos que, considerados conjuntamente,
permiten identificar de manera unívoca una tupla de la relación.
D) Las afirmaciones anteriores son todas ciertas.
4. Teniendo en cuenta I y II, en relación con los diagramas de esquema, indicar cuál de las
opciones (A, B, C, D) es correcta:
I.
El esquema de la base de datos, junto con las dependencias de claves primaria y externa, se
puede mostrar gráficamente mediante diagramas de esquema.
II. Las dependencias de clave externa aparecen como flechas desde los atributos de clave externa
de la relación referenciada a la clave primaria de la relación referenciante.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
5. En relación con los lenguajes de consulta relacional, indicar cuál de las siguientes
afirmaciones es cierta:
A) En los lenguajes no procedimentales, el usuario indica al sistema que lleve a cabo una serie de
operaciones en la base de datos para calcular el resultado deseado.
B) En los lenguajes procedimentales, el usuario describe la información deseada sin establecer un
procedimiento concreto para obtener esa información.
C) Existen varios lenguajes de consultas formales: el álgebra relacional es procedimental, mientras
que el cálculo relacional de tuplas y el cálculo relacional de dominios no lo son.
D) Las afirmaciones anteriores son todas falsas.
6. El relación con las operaciones relacionales y teniendo en cuenta las afirmaciones
realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
La operación producto cartesiano combina tuplas de dos relaciones, pero al contrario que la
operación reunión, su resultado contiene todos los pares de tuplas de las dos relaciones
independientemente de si sus atributos coinciden o no.
II. El resultado de una consulta puede contener tuplas duplicadas. Por defecto todos los lenguajes
relacionales eliminan los duplicados del resultado de las consultas.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
BASES DE DATOS. SEGUNDA AUTOEVALUACIÓN
TEMA 3. INTRODUCCIÓN A SQL
Términos de repaso
Repasar en el libro de texto los siguientes términos:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
LDD: lenguaje de definición de datos.
LMD: lenguaje de manipulación de datos.
Esquema de la base de datos.
Ejemplar de la base de datos.
Esquema de relación.
Ejemplar de relación.
Clave primaria.
Clave externa, relación referente y relación referenciada.
Valor nulo (null).
Lenguaje de consulta.
Estructura de consultas de SQL, cláusula select, cláusula from y cláusula where.
Operación de unión natural.
Cláusula as.
Cláusula order by.
Nombre de correlación (variable de correlación, variable de tupla).
Operaciones de conjuntos, unión, intersect y except.
Valores nulos, valor de verdad <<unknown>>.
Funciones de agregación, avg, min, max, sum, count, group by y having.
Subconsultas anidadas.
Comparación de conjuntos, {<, <=, >, >=}{some, all}, exists y unique.
Cláusula lateral.
Cláusula with.
Subconsulta escalar.
Modificación de la base de datos, borrado, inserción y actualización.
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Para resolver algunas preguntas se hará uso de la base de datos AUTOMÓVILES que se encuentra
descrita en el curso virtual.
Preguntas
1. En relación con los componentes del lenguaje SQL y teniendo en cuenta las afirmaciones
realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
El lenguaje de definición de datos proporciona comandos para la definición de esquemas de
relación, borrado de relaciones y modificación de los esquemas de relación.
II. El lenguaje interactivo de manipulación de datos incluye un lenguaje de consultas, comandos
para insertar, borrar y modificar tuplas en la base de datos y comandos para especificar las
restricciones de integridad que deben cumplir los datos almacenados en la base de datos.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
2. En relación con los tipos básicos de datos predefinidos en SQL, indicar cuál de las
afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
A) numeric(p,d) corresponde a un número de coma fija, cuya precisión la especifica el usuario. El
número está formado por p dígitos (más el signo), y de esos p dígitos, d pertenecen a la parte
decimal.
B) varchar(n) corresponde a una cadena de caracteres de longitud fija, con una longitud n
especificada por el usuario.
C) float(n) corresponde a un número de coma flotante cuya precisión es, al menos, de n dígitos.
D) Las afirmaciones anteriores son todas ciertas.
3. Teniendo en cuenta las expresiones (1), (2) y (3), indicar cuál de las siguientes
afirmaciones es cierta.
(1) drop table r
A)
B)
C)
D)
(2) delete from r
(3) alter table r drop A
(1) permite borrar todas las tuplas de la relación r.
(2) permite eliminar de la base de datos la relación r.
(3) permite eliminar el atributo A de la relación r.
Las afirmaciones anteriores son todas falsas.
4. En relación con I y II, indicar cuál de las siguientes afirmaciones es cierta:
I.
En la cláusula select se puede utilizar la palabra clave all para especificar de forma explícita que
no se eliminen los duplicados.
II. La cláusula select puede contener expresiones aritméticas.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
5. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
A)
B)
C)
D)
select modelo
from distribucion, coches, concesionarios
where concesionarios.cifc = distribucion.cifc
and distribucion.codcoche = coches.codcoche
and coches.nombre = ‘toledo’
and concesionarios.ciudad = ‘toledo’
En el resultado de la consulta nunca podrán aparecer tuplas repetidas.
Si en un concesionario de la ciudad de ‘toledo’ se dispone de un coche de nombre ‘toledo’, en el
resultado de la consulta aparecerá el modelo correspondiente a dicho coche.
Si en la ciudad de ‘toledo’ no existen concesionarios, esto no garantiza que el resultado de la
consulta sea una relación vacía.
Las afirmaciones anteriores son todas falsas.
6. Teniendo en cuenta la base de datos AUTOMÓVILES y las siguientes consultas, indicar
cuál de las afirmaciones realizadas es cierta.
Consulta 1:
select cantidad
from distribucion, coches
where coches.nombre = ‘ibiza’ and distribucion.codcoche = coches.codcoche
Consulta 2:
select cantidad
from distribucion
where codcoche in (select codcoche
from coches
where nombre = ‘ibiza’)
A) El resultado de la consulta 1 permite obtener todos los valores del atributo cantidad de la relación
distribución.
B) Las consultas 1 y 2 no llevan al mismo resultado.
C) En el resultado de la consulta 2 nunca pueden aparecer valores del atributo cantidad repetidos.
D) Las afirmaciones anteriores son todas falsas.
7. Teniendo en cuenta la base de datos AUTOMÓVILES y las consultas I y II, indicar cuál de
las siguientes afirmaciones es cierta.
A)
B)
C)
D)
CONSULTA I:
CONSULTA II:
select nombre,color
from clientes, ventas
where clientes.dni = ventas.dni
select nombre,color
from clientes natural join ventas
Las consultas I y II llevan al mismo resultado.
La consulta I permite obtener el nombre y el color de los coches vendidos.
En ningún caso, en el resultado de la consulta II pueden aparecer tuplas repetidas.
Las afirmaciones anteriores son todas falsas.
8. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select T.nombre, S.nombre
from clientes as T, clientes as S
where T.apellido = S.apellido and T.nombre < S.nombre
A) Si en la consulta se suprime la condición T.nombre < S.nombre esto no afectará en ningún caso
a su resultado.
B) T y S son variables de dominios.
C) Si dos clientes (con nombres distintos) tienen el mismo apellido, sus nombres aparecerán juntos
en alguna de las tuplas del resultado de la consulta.
D) Las afirmaciones anteriores son todas falsas.
9. En relación con las operaciones con cadenas de caracteres en SQL, indicar cuál de las
afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
A) SQL especifica las cadenas de caracteres encerrándolas entre comillas simples.
B) SQL permite buscar discordancias entre cadenas de caracteres utilizando el operador de
comparación not like.
C) SQL permite varias funciones que operan sobre cadenas de caracteres. La función lower(s)
permite la conversión a mayúsculas y la función upper(s) la conversión a minúsculas.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
10. Teniendo en cuenta la base de datos AUTOMÓVILES, la siguiente consulta y las
afirmaciones realizadas en I y II, indicar cuál de las opciones (A, B, C, D) es correcta.
select *
from clientes
order by nombre asc, apellido desc
I.
En el resultado de la consulta aparecerán todas las tuplas de la relación clientes ordenadas por
el atributo nombre de forma ascendente y, si varios clientes tienen el mismo nombre, las tuplas
correspondientes se ordenarán por el atributo apellido de forma descendente.
II. La consulta está mal expresada ya que no se indica la ordenación según el atributo dni.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
11. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select cifc
from distribucion
where cantidad not between 10 and 18
A) Si se sustituye ”cantidad not between 10 and 18” por ”cantidad > 10 and cantidad < 18”, el
resultado de la consulta no varía.
B) Si se sustituye ”cantidad not between 10 and 18” por ”cantidad >= 10 and cantidad <= 18”, el
resultado de la consulta no varía.
C) Si se sustituye ”cantidad not between 10 and 18” por ”cantidad <= 10 and cantidad >= 18”, el
resultado de la consulta no varía.
D) Las afirmaciones anteriores son todas falsas.
12. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
(select dni
from clientes
where nombre = ‘pepe’)
union
(select dni
from clientes
where nombre = ‘luis’)
A) Si no existe al menos un cliente de nombre ‘luis’ el resultado de la consulta será siempre una
relación vacía.
B) La consulta está mal expresada.
C) El resultado de la consulta tendrá como máximo dos tuplas.
D) Las afirmaciones anteriores son todas falsas.
13. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
(select nombre
from clientes
where apellido = ‘salas’)
intersect all
(select nombre
from clientes
where apellido = ‘hoyos’)
A) En el resultado de la consulta no podrán aparecer tuplas repetidas.
B) El resultado de la consulta será siempre una relación vacía.
C) Si en la relación clientes solo existen dos tuplas, la primera con el nombre y apellido ‘luis’ y
‘salas’, y la segunda con el nombre y apellido ‘maria’ y ‘hoyos’, en el resultado de la consulta
aparecerán los nombre ‘luis’ y ‘maria’.
D) Las afirmaciones anteriores son todas falsas.
14. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
(select cifc
from distribucion
where cantidad < 20)
except
(select cifc
from distribucion
where cantidad = 10)
A) En el resultado de la consulta nunca puede aparecer el valor de un cifc que se encuentre en la
misma tupla de la relación distribucion que un valor del atributo cantidad igual a 10.
B) En el resultado de la consulta nunca puede aparecer el valor de un cifc que se encuentre en la
misma tupla de la relación distribucion que un valor del atributo cantidad igual a 15.
C) En el resultado de la consulta pueden aparecer valores de cifc duplicados.
D) Las afirmaciones anteriores son todas falsas.
15. En relación con los valores nulos, indicar cuál de las afirmaciones realizadas en A), B) y
C) es falsa. Si considera que todas son ciertas seleccione la opción D).
A) El resultado de las expresiones aritméticas (+, -, *, /) es nulo si cualquiera de los valores de
entrada es nulo.
B) SQL trata como unknown (desconocido) el resultado de cualquier comparación en la que
intervenga el valor null (excepto para los predicados is null e is not null).
C) El predicado de una cláusula where puede implicar valores booleanos en operaciones como
and, or y not, siendo false el resultado de true and unknown.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
16. Teniendo en cuenta la base de datos AUTOMÓVILES y las siguientes consultas, indicar
cuál de las afirmaciones realizadas es cierta.
Consulta 1:
select avg (cantidad)
from distribucion
Consulta 2:
select max (dni)
from clientes
where ciudad = ’madrid’
A) La función de agregación que se utiliza en la consulta 1 admite como datos de entrada tanto
colecciones de números como colecciones de cadenas de caracteres.
B) La función de agregación que se utiliza en la consulta 2 admite como datos de entrada tanto
colecciones de números como colecciones de cadenas de caracteres.
C) Las función de agregación que se utilizan en las consultas 1 y 2 no pueden aparecer en la
cláusula select.
D) Las afirmaciones anteriores son todas falsas.
17. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select codcoche, cifc, sum(cantidad) as suma
from distribucion
group by codcoche
A) La consulta permite obtener los valores de los atributos codcoche, cifc y suma de los valores del
atributo cantidad para cada uno de los distintos valores del atributo codcoche que aparecen el la
relación distribucion.
B) La consulta está mal expresada (es errónea).
C) La consulta permite obtener un resultado distinto al indicado en A).
D) Las afirmaciones anteriores son todas falsas.
18. En relación con la cláusula having de SQL y teniendo en cuenta las afirmaciones
realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
En la cláusula having se pueden utilizar funciones de agregación, ya que SQL aplica los
predicados de dicha cláusula después de haber hecho los agrupamientos necesarios.
II. Cualquier atributo que se encuentre en la cláusula having sin haber estado agregado tiene que
aparecer en la cláusula group by, en otro caso la consulta se trata como errónea.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
19. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
select nombre, apellido
from clientes
where dni in (select dni
from ventas
where color = ‘verde’ or color = ‘azul’)
A) Si un cliente sólo ha comprado un coche de color ‘verde’, en el resultado de la consulta
aparecerá el nombre y el apellido de dicho cliente.
B) Si un cliente ha comprado un coche de color ‘verde’ y otro coche de color ‘azul’, en el resultado
de la consulta aparecerá el nombre y el apellido de dicho cliente.
C) La consulta está mal expresada y no conduce a ningún resultado.
D) Las afirmaciones anteriores son todas ciertas.
20. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select nombre, apellido
from clientes
where dni in (select dni
from ventas
where color = ‘blanco’ and color = ‘rojo’)
A) La consulta permite obtener el nombre y el apellido de aquellos clientes que han comprado al
menos un coche de color ‘rojo’ y otro coche de color ‘blanco’.
B) La consulta permite obtener el nombre y el apellido de aquellos clientes que sólo han comprado
coches de color ‘rojo’ y de color ‘blanco’.
C) La consulta permite obtener el nombre y el apellido de aquellos clientes que no han comprado
coches de color ‘rojo’ y de color ‘blanco’.
D) Las afirmaciones anteriores son todas falsas.
21. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las siguientes afirmaciones es cierta.
select nombre, apellido
from clientes
where dni in
(select dni
from ventas
where cifc in
(select cifc
from concesionarios
where ciudad = ‘madrid’
and cifc in
(select cifc
from distribucion
where codcoche in
(select codcoche
from coches
where modelo = ‘gtd’))))
A) En el resultado de la consulta puede aparecer el nombre y el apellido de un cliente que no haya
comprado coches del modelo ‘gtd’.
B) En el resultado de la consulta puede aparecer el nombre y el apellido de un cliente que no haya
comprado coches en concesionarios de ‘madrid’.
C) Para que aparezca en el resultado de la consulta el nombre y apellido de un cliente, es necesario
que dicho cliente haya comprado al menos un coche del modelo ‘gtd’ en un concesionario de
‘madrid’.
D) Las afirmaciones anteriores son todas falsas.
22. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select cifc
from distribucion
group by cifc
having avg (cantidad) <= all (select avg (cantidad)
from distribucion
group by cifc)
A) En el resultado de la consulta siempre aparecerán todos los valores de cifc de la relación
distribucion.
B) Si en la relación distribucion solo aparece el concesionario con cifc igual a 0001, dicho valor de
cifc aparecerá en el resultado de la consulta.
C) En el resultado de la consulta no puede aparecer más de un valor del atributo cifc.
D) Las afirmaciones anteriores son todas falsas.
23. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select apellido
from clientes
where dni < some (select dni
from clientes
where ciudad = ‘Burgos’)
and apellido like ‘%m%’
A) Si el dni de un cliente de apellido ‘Salas’ es menor que el dni de un cliente de la ciudad de
‘Burgos’, en el resultado de la consulta aparecerá el apellido ‘Salas’.
B) Si el dni de un cliente de apellido ‘Lomas’ es mayor que el dni de un cliente de la ciudad de
‘Burgos’, esto garantiza que en el resultado de la consulta aparecerá el apellido ‘Lomas’.
C) Si el dni de un cliente de apellido ‘Campos’ es menor que el dni de todos los clientes de la ciudad
de ‘Burgos’, en el resultado de la consulta aparecerá el apellido ‘Campos’.
D) Las afirmaciones anteriores son todas falsas.
24. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las siguientes afirmaciones es cierta.
select nombre
from concesionarios
where cifc in (select cifc
from ventas as v1
where not exists (select *
from ventas as v2
where v1.cifc = v2.cifc
and v2.dni <> 0001))
A) En el resultado de la consulta aparecerán todos los nombres de los concesionario que han
vendido coches al cliente con dni igual a 0001.
B) En el resultado de la consulta aparecerán todos los nombres de los concesionarios que no han
vendido coches al cliente con dni igual a 0001.
C) Si un concesionario sólo ha vendido coches al cliente con dni igual a 0001, en el resultado de la
consulta aparecerá el nombre de dicho concesionario.
D) Las afirmaciones anteriores son todas falsas.
25. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select T.dni
from clientes as T
where not unique (select R.dni
from ventas as R
where T.dni = R.dni
and R.color = ‘blanco’)
A) Si un cliente sólo ha comprado un coche de color ‘blanco’ el valor de su correspondiente dni
aparecerá en el resultado de la consulta.
B) Si un cliente no ha comprado coches de color ‘blanco’ el valor de su correspondiente dni
aparecerá en el resultado de la consulta.
C) Si un cliente sólo ha comprado dos coches de color ‘blanco’ el valor de su correspondiente dni
aparecerá en el resultado de la consulta.
D) Las afirmaciones anteriores son todas falsas.
26. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas es cierta.
select codcoche, media
from (select codcoche, avg (cantidad) as media
from distribucion
group by codcoche)
where media < 15
A) Si en la relación distribucion para codcoche igual a 0001 la media de valores del atributo
cantidad es igual a 10, en el resultado de la consulta aparecerá la tupla (0001, 10).
B) Si en la relación distribucion para codcoche igual a 0001 la media de valores del atributo
cantidad es igual a 19, en el resultado de la consulta aparecerá la tupla (0001, 19).
C) La consulta está mal expresada y no lleva a ningún resultado.
D) Las afirmaciones anteriores son todas falsas.
27. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las siguientes afirmaciones realizadas en A), B), C) y D) es cierta.
select dni, (select count(*) from ventas where cliente.dni = ventas.dni) as nventas
from clientes
A) El resultado de la consulta siempre será una relación vacía.
B) Si el dni de un cliente aparece en varias tuplas de la relación ventas, en el resultado de la
consulta aparecerá, en una misma tupla, el valor del dni de dicho cliente junto al número de
veces que aparece en las tuplas de la relación ventas.
C) La consulta está mal expresada.
D) Las afirmaciones anteriores son todas falsas.
BASES DE DATOS. TERCERA AUTOEVALUACIÓN
TEMA 4. SQL INTERMEDIO
Términos de repaso
Repasar en el libro de texto los siguientes términos:
•
•
•
•
•
•
Tipos de reunión, reunión interna y externa, reuniones externas por la izquierda, por la
derecha y completa, natural, using y on.
Definición de vistas, vistas materializadas y actualización de vistas.
Transacciones, compromiso, retroceso y transacción atómica.
Restricciones de integridad, restricciones de dominios, restricción de unicidad, cláusula
check, Integridad referencial, borrados en cascada, actualizaciones en cascada y asertos.
Tipos date y time, valores predeterminados, índices, objetos grandes, tipos definidos por el
usuario, dominios, catálogos y esquemas.
Autorizaciones, privilegios, select, insert, update y all privileges, concesión de privilegios,
revocación de privilegios, privilegio de conceder privilegios y opción de concesión, roles,
autorización sobre vistas, ejecutar autorización, invocador de privilegios y autorización de fila.
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Para resolver algunas preguntas se hará uso de la base de datos AUTOMÓVILES que se encuentra
descrita en el curso virtual.
Preguntas
1. En relación con las condiciones de reunión, teniendo en cuenta la base de datos
AUTOMÓVILES y las siguientes consultas, indicar cuál de las afirmaciones realizadas es
cierta.
Consulta 1:
select clientes.dni as dni, nombre, apellido, ciudad
from clientes join ventas on clientes.dni = ventas.dni
Consulta 2:
select *
from clientes, ventas
where clientes.dni = ventas.dni
A)
B)
C)
D)
Las dos consultas permiten obtener el mismo resultado.
La consulta 1 lleva al mismo resultado que: select * from clientes natural join ventas.
La consulta 2 lleva al mismo resultado que: select * from clientes natural join ventas.
Las afirmaciones anteriores son todas falsas.
2. En relación con la operación de reunión, indicar cuál de las siguientes afirmaciones es
cierta.
A) Para distinguir las reuniones internas y externas, se utiliza inner join y outer join,
respectivamente.
B) La operación reunión externa funciona como la reunión, creando tuplas en el resultado que
contienen valores no nulos.
C) La reunión externa derecha es simétrica a la reunión externa completa.
D) Las afirmaciones anteriores son todas falsas.
3. En relación con las vistas, indicar cuál de las siguientes afirmaciones es cierta.
A) SQL permite definir una relación virtual que contenga el resultado de una consulta. La relación
virtual calculada se guarda en la memoria para ser utilizada cuando sea necesario.
B) create view v as expresión de consulta, permite crear una vista sin nombre con el resultado de
la consulta.
C) Cuando se crea una vista con nombre, dicho nombre puede aparecer en cualquier lugar en el
que puedan hacerlo los nombres de las relaciones, pero los atributos de las vistas no se pueden
especificar explícitamente.
D) Las afirmaciones anteriores son todas falsas.
4. Teniendo en cuenta la base de datos AUTOMÓVILES, la vista modelo_ibiza y las
afirmaciones I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta.
create view modelo_ibiza as
select modelo, nombre
from distribucion, coches, concesionarios
where concesionarios.cifc = distribucion.cifc
and distribucion.codcoche = coches.codcoche
and concesionarios.ciudad = ‘ibiza’
I.
select distinct modelo from modelo_ibiza where nombre = ’ibiza’, dará como resultado los
distintos modelos que aparecen en las tuplas de la relación coches junto al nombre ‘ibiza’.
II. select distinct modelo from modelo_ibiza where nombre = ’ibiza’, dará como resultado los
distintos modelos de los coches comprados en concesionarios de ‘ibiza’.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
5. En relación con las vistas, indicar cuál de las siguientes afirmaciones es cierta.
A) Se puede utilizar una vista en una expresión que define otra vista.
B) Una vista materializada es una vista que se guarda, pero si las relaciones reales utilizadas en la
definición de la vista cambian la vista materializada no será actualizada.
C) Las vistas no presentan problemas serios si se expresan con ellas actualizaciones, inserciones o
borrados.
D) Las afirmaciones anteriores son todas falsas.
6. En relación con la actualización de vistas y teniendo en cuenta las afirmaciones realizadas
en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
En general, para que una vista de SQL sea actualizable se deben cumplir, entre otros, que: la
cláusula from solo tenga una relación de la bases de datos y que la cláusula select solo
contenga nombres de atributos de dicha relación y no tenga ninguna expresión, valor agregado
ni especificación distinct.
II. Una vista de SQL puede ser actualizable a pesar de que en su consulta se utilicen las cláusulas
group by o having.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
7. En relación con las transacciones y teniendo en cuenta las afirmaciones realizadas en I y
II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
La norma SQL especifica que una transacción comienza implícitamente cuando se ejecuta una
sentencia de SQL.
II. Una transacción consiste en una secuencia de instrucciones de consulta o de actualización.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
8. Teniendo en cuenta I y II, en relación con las transacciones, indicar cuál de las opciones
(A, B, C, D) es correcta:
I.
Una vez realizada una transacción, la sentencia Commit work hace que las actualizaciones
realizadas pasen a ser permanentes en la base de datos.
II. Si tras una transacción se ejecuta la sentencia Rollback work, ésta deshace todas las
actualizaciones realizadas por las sentencias SQL de la transacción.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
9. En relación con las restricciones de integridad, indicar cuál de las afirmaciones realizadas
en A), B) y C) es falsa. Si considera que son todas ciertas seleccione la opción D).
A) Las restricciones de integridad garantizan que las modificaciones realizadas en la base de datos
no den lugar a una pérdida de la consistencia de los datos.
B) La mayor parte de los sistemas de bases de datos permiten especificar restricciones de
integridad que puedan probarse con una sobrecarga mínima.
C) Las restricciones de integridad se pueden añadir a relaciones existentes utilizando el comando
alter table nombre-tabla add restricción.
D) Las afirmaciones anteriores son todas ciertas.
10. En relación con las restricciones de integridad, indicar cuál de las afirmaciones realizadas
en A), B) y C) es falsa. Si considera todas son ciertas seleccione la opción D).
A) Las restricciones de integridad garantizan que las modificaciones realizadas en la base de datos
(por los usuarios autorizados) no den lugar a una pérdida de la consistencia de los datos.
B) El comando create table puede incluir instrucciones para restricciones de integridad. En este
comando, además de la restricción de clave primaria, se pueden incluir otras: not null, unique y
check(<predicado>).
C) En la restricción de integridad unique (Aj1, Aj2, …, Ajm), la especificación unique indica que los
atributos Aj1, Aj2, …, Ajm forman una clave candidata. De forma predeterminada no se permite
que los atributos de la clave candidata tengan valores null (valores nulos).
D) Las afirmaciones anteriores son todas ciertas.
11. En relación con la integridad referencial y teniendo en cuenta las afirmaciones realizadas
en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es correcta:
I.
Las claves externas pueden especificarse como parte de la instrucción de SQL create table
mediante la cláusula foreign key. De manera predeterminada, en SQL las claves externas
hacen referencia a los atributos de la clave primaria de la tabla referenciada.
II. Cuando se viola una restricción de integridad referencial, el procedimiento normal es rechazar la
acción que ha causado esa violación; sin embargo, la cláusula foreign key puede especificar
que si una acción de borrado o de actualización de la relación a la que hace referencia viola la
restricción, el sistema lleve a cabo los pasos necesarios para modificar la tupla de la relación que
hace la referencia para que se restaure la restricción.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
12. En relación con las restricciones de integridad, indicar cuál de las afirmaciones realizadas
en A), B) y C) es falsa. Si considera que son todas ciertas seleccione la opción D).
A) Para las restricciones declaradas como diferibles, la ejecución de la instrucción set constraints
lista-restricciones deferred hace que se difiera la comprobación de las restricciones
especificadas hasta el final de esa transacción.
B) Un aserto es un predicado que expresa una condición que la base de datos debe satisfacer solo
en ocasiones.
C) En SQL los asertos adoptan la forma: create assertion nombre aserto check predicado.
D) Las afirmaciones anteriores son todas ciertas.
13. En relación con los tipos de datos fecha y hora en SQL y teniendo en cuenta las
afirmaciones realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es
correcta.
I.
extract(campo from d) permite extraer campos concretos de un valor d de date pero no de
time.
II. current_time devuelve la hora actual sin su huso horario.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
14. En relación con los tipos de datos, indicar cuál de las siguientes afirmaciones es cierta.
A) SQL no permite especificar un valor predeterminado para un atributo.
B) No se puede crear un índice de una lista de atributos.
C) SQL ofrece tipos de datos para objetos de gran tamaño. Para caracteres se utiliza clob y para
datos binarios blob.
D) Las afirmaciones anteriores son todas falsas.
15. En relación con la siguiente definición de dominio, indicar cuál de las afirmaciones
realizadas es cierta.
create domain SalarioPorHora numeric(5,2)
constraint prueba_valor_salario check(value >= 6.00)
A) La cláusula check se utiliza para garantizar que el dominio prueba_valor_salario solo permita
valores mayores o iguales a 6.00.
B) La cláusula constraint prueba_valor_salario permite asignar el nombre del dominio.
C) La cláusula constraint prueba_valor_salario es optativa.
D) Las afirmaciones anteriores son todas falsas.
16. En relación con los tipos definidos por los usuarios y la declaración de la tabla
departamento. Teniendo en cuenta las afirmaciones realizadas en I y II, indicar cuál de las
siguientes opciones (A, B, C, D) es correcta:
create table departamento
(nombre_dept varchar(20),
edificio varchar(15),
presupuesto Libras)
Estando definidos los tipo de datos Libras y Euros por:
create type Libras as numeric(12,2) final
create type Euros as numeric(12,2) final
I.
Cualquier intento de asignar un valor de tipo Euros a una variable de tipo Libras dará como
resultado un error de compilación.
II. Mediante “cast (departamento.presupuesto to numeric(12,2))” se pueden convertir valores en
Libras a numeric(12,2).
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
17. Teniendo en cuenta la base de datos AUTOMÓVILES y las sentencias (1) y (2), indicar cuál
de las afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
(1) create table clientes_temp like clientes
(2) create table t1 as (select * from clientes where nombre = 'juan') with data
A) La sentencia (1) crea una nueva tabla clientes_temp que tiene el mismo esquema que la tabla
clientes.
B) En la sentencia (2) la cláusula with data se utiliza para indicar que la tabla creada se rellene con
datos.
C) La instrucción (2) crea una tabla t1 donde, de forma predeterminada, los nombres y los tipos de
datos de las columnas se infieren del resultado de la consulta.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
18. En relación con los tipos de datos y esquemas, indicar cuál de las afirmaciones realizadas
en A), B) y C) es falsa. Si considera que son todas ciertas seleccione la opción D).
A) Las cláusulas drop type y alter type permiten eliminar o modificar los tipos de datos definidos
por los usuarios.
B) SQL proporciona la extensión create table like para la creación de tablas que tienen el mismo
esquema que una ya existente.
C) Los sistemas de bases de datos ofrecen una jerarquía de tres niveles para los nombres de las
relaciones. El nivel superior de la jerarquía lo forman los esquemas.
D) Las afirmaciones anteriores son todas ciertas.
19. En relación con la autorización, indicar cuál de las afirmaciones realizadas en A), B) y C)
es falsa. Si considera que son todas ciertas seleccione la opción D).
A) Se pueden asignar a los usuarios varios tipos de autorización para diferentes partes de la base
de datos.
B) Las autorizaciones sobre datos incluyen: lectura de datos, inserción de datos, actualización de
datos y borrado de datos. Cada uno de estos tipos de autorización se denomina privilegio, que
se pueden establecer para relaciones, pero no para vistas.
C) El privilegio all privileges se utiliza para conceder todos los privilegios posibles.
D) Las afirmaciones anteriores son todas ciertas.
20. En relación con la concesión y revocación de privilegios, teniendo en cuenta la base de
datos AUTOMÓVILES y las siguientes sentencias, indicar cuál de las afirmaciones
realizadas en A), B) y C) es falsa. Si considera que todas son ciertas seleccione la opción
D).
(1) grant select on concesionarios to Luis
(2) grant update (nombre) on concesionarios to Luis
(3) revoke insert on concesionarios from Luis
A) (1) concede al usuario de la base de datos de nombre Luis la autorización para leer las tuplas de
la relación concesionarios.
B) (2) concede al usuario de la base de datos de nombre Luis la autorización de actualizar sobre el
atributo nombre de la relación concesionarios.
C) (3) Revoca la autorización de insertar tuplas en la relación concesionarios al usuario de la base
de datos de nombre Luis.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
21. En relación con la autorización, indicar cuál de las siguientes afirmaciones es cierta.
A)
B)
C)
D)
Las autorizaciones se conceden a los roles de forma distinta que a los usuarios individuales.
No se pueden conceder roles a otros roles.
El usuario que crea una vista recibe todos los privilegios sobre ella.
Las funciones y procedimientos tienen todos los privilegios de su creador.
BASES DE DATOS. CUARTA AUTOEVALUACIÓN
TEMA 5. SQL AVANZADO
Términos de repaso
Repasar en el libro de texto los siguientes términos:
•
•
•
•
•
•
•
JDBC, ODBC, instrucciones preparadas, acceso a los metadatos e inyección de SQL.
SQL incorporado, cursores y cursores actualizables.
SQL dinámico, funciones de SQL, procedimientos almacenados, constructores
procedimentales y rutinas de otros lenguajes.
Disparadores, disparadores antes y después, variables y tablas de transición.
Consultas recursivas y consultas monótonas.
Funciones de clasificación, clasificación, clasificación densa, división por, ventanas.
Procesamiento analítico en línea (Online analytical processing, OLAP), datos
multidimensionales, atributos de medida, atributos de dimensiones, pivotado, cubos de datos,
corte (división) y creación de datos, abstracción y concreción y tablas cruzadas.
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. Teniendo en cuenta las afirmaciones realizadas en I y II, en relación con el acceso a SQL
desde lenguajes de programación, indicar cuál de las opciones (A, B, C, D) es correcta.
!
I.
SQL dinámico permite al programa construir una consulta de SQL como una cadena de
caracteres en tiempo de ejecución, enviar la consulta y obtener el resultado en variables del
programa tupla a tupla.
II. En SQL embebido las sentencias de SQL se identifican durante la compilación usando un
preprocesador que envía las sentencias de SQL al sistema de base de datos para su
precompilación y optimización.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
2. Teniendo en cuenta I y II, indicar cuál de las opciones (A, B, C, D) es correcta. SQL
proporciona un lenguaje de consultas declarativo muy potente. Sin embargo, los
programadores deben tener acceso a la base de datos desde los lenguajes de
programación de propósito general, al menos, por dos razones:
I.
No todas las consultas pueden expresarse en SQL, ya que SQL no ofrece toda la potencia
expresiva de los lenguajes de propósito general.
II. Las acciones no declarativas (como la impresión de informes, la interacción con los usuarios
o el envío de los resultados de las consultas a una interfaz gráfica) no se pueden llevar a
cabo desde el propio SQL.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
3. En relación con JDBC, indicar cuál de las siguientes afirmaciones es cierta:
I.
La norma JDBC (Java Database Connectivity) define una interfaz de programación de
aplicaciones (application program interface: API) que pueden utilizar los programas en Java para
conectarse a servidores de bases de datos.
II. Para acceder a una base de datos desde un programa en Java es preciso abrir una conexión a
la misma. Solo después de abrir la conexión el programa Java puede ejecutar sentencias de
SQL. Para abrir una conexión se usa el método getConnection.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
4. En relación con las sentencias preparadas, indicar cuál de las afirmaciones realizadas en
A), B) y C) es falsa. Si considera que son todas ciertas seleccione la opción D).
A) Se pueden crear sentencias preparadas en las que algunos valores sean sustituidos por “?”, lo
que indica que los valores reales se proporcionarán más tarde.
B) Las sentencias preparadas permiten una ejecución más eficiente en aquellos casos en que la
misma consulta se puede compilar una vez y ejecutar después muchas veces con diferentes
valores de los parámetros.
C) Mediante la técnica denominada inyección SQL los hackers maliciosos no pueden robar datos o
crear daños en la base de datos.
D) Las afirmaciones anteriores son todas ciertas.
5. En relación con los metadatos, indicar cuál de las afirmaciones realizadas en A), B) y C)
es falsa. Si considera que son todas ciertas seleccione la opción D).
A) La interfaz ResultSet tiene un método getMetaData() para obtener objetos ResultSetMetaData y
proporcionar los metadatos del conjunto de resultados.
B) ResultSetMetaData contiene métodos para determinar la información de los metadatos pero no
permite conocer el nombre de una columna concreta.
C) ResultSetMetaData contiene métodos para determinar la información de los metadatos, como
puede ser el número de columnas de un resultado.
D) Las afirmaciones anteriores son todas ciertas.
6. En relación con las características de JDBC, indicar cuál de las afirmaciones realizadas en
A), B) y C) es falsa. Si considera que son todas ciertas seleccione la opción D).
A) JDBC ofrece como característica los conjuntos de resultados actualizables.
B) De manera predeterminada, cada instrucción de SQL se trata como una transacción
independiente que se compromete de manera automática. El método setAutoCommit() de la
interfaz Connection de JDBC permite que este comportamiento se active o se desactive.
C) JDBC no proporciona interfaces para el tratamiento de objetos de gran tamaño que permitan no
tener que crearlos completamente en la memoria.
D) Las afirmaciones anteriores son todas ciertas.
7. En relación con ODBC, indicar cuál de las afirmaciones realizadas en A), B) y C) es falsa.
Si considera todas son ciertas seleccione la opción D).
A) La norma ODBC define una API que pueden utilizar las aplicaciones para abrir conexiones con
una base de datos, enviar consultas y actualizaciones y obtener resultados.
B) Cada sistema de bases de datos compatible con ODBC proporciona una biblioteca que se debe
enlazar con el programa cliente. Cuando el programa cliente realiza una llamada a la API de
ODBC, el código de la biblioteca se comunica con el servidor para llevar a cabo la acción
solicitada y obtener los resultados.
C) La norma ODBC define niveles de conformidad, que especifican subconjuntos de la
funcionalidad definida por la norma.
D) Las afirmaciones anteriores son todas ciertas.
8. En relación con SQL incorporado, indicar cuál de las afirmaciones realizadas en A), B) y
C) es falsa. Si considera todas son ciertas seleccione la opción D).
A) Por lo general un programa con SQL incorporado no necesariamente debe ser procesado, antes
de su compilación, para sustituir el SQL incorporado con declaraciones y llamadas a
procedimientos del lenguaje anfitrión.
B) El lenguaje en el que se incorporan las consultas SQL se denomina lenguaje anfitrión y las
estructuras de SQL que se admiten en el lenguaje anfitrión constituyen SQL incorporado.
C) Los programas escritos en el lenguaje anfitrión pueden usar la sintaxis de SQL incorporado para
actualizar y tener acceso a los datos almacenados en la base de datos.
D) Las afirmaciones anteriores son todas ciertas.
9. En relación con SQL incorporado, indicar cuál de las siguientes afirmaciones es cierta:
I.
La sintaxis exacta de las consultas de SQL incorporado no dependen del lenguaje en el que se
haya incorporado SQL.
II. Antes de ejecutar ninguna instrucción de SQL el programa debe conectarse con la base de
datos. Esto se logra mediante: EXEC SQL connect to servidor user nombre-usuario using
contraseña;
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
10. En relación con el siguiente procedimiento, indicar cuál de las afirmaciones realizadas en
A), B) y C) es falsa. Si considera que todas son ciertas seleccione la opción D).
create procedure cuenta_dept_proc
(in nombre_dept varchar(20), out cuenta integer)
begin
select count(*) into cuenta
from profesor
where profesor.nombre_dept = cuenta_dept_proc.nombre_dept
end
A) Las palabra clave out indica parámetros cuyos valores se establecen en el procedimiento para
devolver en ellos los resultados.
B) Las palabra clave in indica parámetros que se espera que tengan valores asignados.
C) Los procedimientos se pueden invocar mediante la sentencia call desde otro procedimiento de
SQL o desde SQL incorporado.
D) Las afirmaciones anteriores son todas ciertas.
11. Teniendo en cuenta la base de datos AUTOMÓVILES, la función recuento_clientes
(función que permite, a partir del dni de un cliente, obtener el número de coches que ha
comprado dicho cliente) y la siguiente consulta, indicar cuál de las afirmaciones
realizadas es cierta.
select dni, ciudad
from clientes
where recuento_clientes(dni) > 5
A) La consulta permite obtener el dni y la ciudad de todos los clientes que han comprado menos de
cinco coches.
B) La consulta permite obtener el dni y la ciudad de todos los clientes que han comprado al menos
cinco coches.
C) La consulta permite obtener el dni y la ciudad de todos los clientes que han comprado un
máximo de cinco coches.
D) Las afirmaciones anteriores son todas falsas.
12. En relación con los declaración de funciones en SQL y teniendo en cuenta la siguiente
función, indicar cuál de las afirmaciones realizadas es cierta.
create function cuenta_dept(nombre_dept varchar(20))
returns integer
begin
declare cuenta integer;
select count() into cuenta
from profesor
where profesor.nombre_dept = nombre_dept
return cuenta;
end
A) Dado el nombre de un departamento (nombre_dept), la función devuelva el número de
profesores de dicho departamento.
B) Dado el nombre de un profesor, la función devuelva el número de departamentos donde imparte
docencia dicho profesor.
C) Esta función no puede utilizarse para realizar consultas.
D) Las afirmaciones anteriores son todas falsas.
13. Teniendo en cuenta la base de datos AUTOMÓVILES, la función recuento_coches (función
que permite, a partir del cifm de una marca de coches, obtener el número de coches que
se han vendido de dicho marca) y la siguiente consulta, indicar cuál de las afirmaciones
realizadas es cierta.
select nombre, ciudad
from marcas
where recuento_coches(cifm) > 7
A) La consulta permite obtener el nombre y la ciudad de todas las marcas que han vendido menos
de siete coches.
B) La consulta permite obtener el nombre y la ciudad de todas las marcas que han vendido al
menos siete coches.
C) La consulta permite obtener el nombre y la ciudad de todas las marcas que han vendido más de
siete coches.
D) Las afirmaciones anteriores son todas falsas.
14. En relación con las construcciones del lenguaje para procedimientos y funciones, indicar
cuál de las siguientes afirmaciones es cierta.
A) SQL soporta varias construcciones que le proporcionan casi toda la potencia de los lenguajes de
programación de propósito general. La parte de la norma SQL que trata de estas construcciones
se denota con las siglas PSM.
B) Las asignaciones se realizan mediante la sentencia declare.
C) Se soportan las sentencias while y repeat pero no for.
D) Las afirmaciones anteriores son todas falsas.
15. En relación con las rutinas en otros lenguajes, indicar cuál de las siguientes afirmaciones
es cierta.
A) SQL permite definir funciones en lenguajes de programación, pero estas funciones siempre son
menos eficientes que las definidas en SQL.
B) Las funciones definidas en lenguajes de programación no permiten realizar cálculos distintos a
los que se pueden llevarse a cabo en SQL.
C) Las funciones definidas en un lenguaje de programación y compiladas fuera del sistema de base
de datos pueden cargarse y ejecutarse con el código del sistema de bases de datos. Sin
embargo, ello conlleva el riesgo de que un fallo del programa corrompa las estructuras internas
de la base de datos.
D) Las afirmaciones anteriores son todas falsas.
16. Teniendo en cuenta las afirmaciones realizadas en I y II en relación con los disparadores,
indicar cuál de las opciones (A, B, C, D) es correcta:
I.
Un disparador es una sentencia que el sistema ejecuta de manera automática como efecto
secundario de la modificación de la base de datos.
II. Para diseñar un mecanismo disparador se deben cumplir dos requisitos: especificar las
condiciones en las que se va a ejecutar el disparador y especificar las acciones que se van a
realizar cuando se ejecute el disparador.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
17. En relación con las necesidades de los disparadores y teniendo en cuenta las
afirmaciones realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es
correcta.
I.
Los disparadores se pueden utilizar para implementar ciertas restricciones de integridad que no
se pueden especificar utilizando el mecanismo de restricciones de SQL.
II. Los disparadores son mecanismos útiles para alertar a los usuarios o para iniciar de manera
automática ciertas tareas cuando se cumplen determinadas condiciones.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
18. Teniendo en cuenta el siguiente disparador en SQL (que permite sustituir una nota
introducida en blanco por un valor null), indicar cuál de las afirmaciones realizadas en A),
B) y C) es falsa. Si considera que todas son ciertas seleccione la opción D).
create trigger setnull before update on matricula
referencing new row as fila_nueva
for each row
when (fila_nueva.nota = ‘ ‘)
begin atomic
set fila_nueva.nota = null;
end;
NOTA. En la instrucción when, después del signo =, aparece un espacio en blanco entre dos
comillas simples.
A) El disparador se activará después insertar filas en la tabla matricula.
B) La cláusula referencing new row as crea una variable fila_nueva que almacena el valor de cada
fila afectada por el disparador.
C) Si se cumple la condición de la sentencia when se asignará el valor null al atributo nota.
D) Las afirmaciones anteriores son todas ciertas.
19. En relación con las consultas recursivas, indicar cuál de las siguientes afirmaciones es
cierta:
I.
SQL permite la creación de tablas temporales utilizando el comando create temporary table.
II. Es muy práctico especificar el cierre transitivo empleando la iteración.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
20. En relación con las características de agregación avanzadas (clasificación), indicar cuál
de las siguientes afirmaciones es cierta.
A) Para tratar el caso de varias tuplas que son iguales por el atributo o atributos de ordenación, las
funciones rank y denserank llevan a resultados idénticos.
B) Las funciones de clasificación no permiten encontrar las primeras n tuplas y las últimas n tuplas.
C) Los valores nulos nunca complican la definición de una clasificación, por lo que no es necesario
especificar dónde se deberían ubicar los nulos.
D) Las afirmaciones anteriores son todas falsas.
21. En relación con OLAP, indicar cuál de las siguientes afirmaciones es cierta.
A) OLAP (sistema de procesamiento analítico en línea) es un sistema interactivo que permite a los
analistas ver diferentes resúmenes de datos multidimensionales.
B) Las tablas cruzadas son similares a las tablas relacionales, ya que en las dos el número de
columnas depende de los datos.
C) SQL Server y Oracle no soportan la cláusula pívot que permite la creación de tablas cruzadas.
D) Las afirmaciones anteriores son todas falsas.
BASES DE DATOS. QUINTA AUTOEVALUACIÓN
TEMA 6. LENGUAJES FORMALES DE CONSULTA RELACIONAL
Términos de repaso
Repasar en el libro de texto los siguientes términos:
•
•
•
•
•
•
•
•
•
•
Álgebra relacional.
Operaciones del álgebra relacional: selección, proyección, unión, diferencia de conjuntos,
producto cartesiano y renombranúento.
Operaciones adicionales: intersección de conjuntos, reunión natural, operación asignación,
reunión externa (por la izquierda, por la derecha y completa).
Multiconjuntos.
Agrupación.
Valores nulos.
Cálculo relacional de tuplas.
Cálculo relacional de dominios.
Seguridad de las expresiones.
Potencia expresiva de los lenguajes.
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Para resolver algunas preguntas se hará uso de la base de datos AUTOMÓVILES que se encuentra
descrita en el curso virtual.
Preguntas
1. Teniendo en cuenta la base de datos AUTOMÓVILES y las expresiones (1) y (2) del álgebra
relacional (donde |x| representa la reunión natural), indicar cuál de las afirmaciones
realizadas en (A, B, C, D) es cierta.
(1) codcoche (ciudad = “Barcelona” (concesionarios |x| distribucion))
(2) codcoche (ciudad = “Barcelona” (concesionarios) |x| distribucion)
A) En la expresión (2) no es posible realizar la reunión natural ya que las relaciones implicadas en
dicha operación no tienen ningún atributo en común.
B) Las expresiones (1) y (2) llevan al mismo resultado.
C) En (1) la reunión natural de las relaciones concesionarios y distribucion se realiza por el atributo
codcoche.
D) Las afirmaciones anteriores son todas falsas.
2. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del álgebra
relacional, indicar cuál de las afirmaciones realizadas en (A, B, C, D) es cierta.
color (coches.codcoche = ventas.codcoche (nombre = “ibiza” (coches x ventas)))
A) La expresión incumple el criterio adoptado para la denominación de los atributos.
B) Si en la relación ventas aparece un valor del atributo codcoche correspondiente a un coche de
nombre “toledo” y color “rojo”, esto garantiza que dicho color aparecerá en el resultado de
evaluar la expresión.
C) Si en la relación ventas aparece un valor del atributo codcoche correspondiente a un coche de
nombre “ibiza” y color “rojo”, esto garantiza que dicho color aparecerá en el resultado de evaluar
la expresión.
D) Las afirmaciones anteriores son todas falsas.
3. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
select distinct color
from coches, ventas
where coches.codcoche = ventas.codcoche and coches.nombre = ‘ibiza’
A) La consulta lleva al mismo resultado que: color (coches.codcoche
“ibiza”
= ventas.codcoche
(nombre
=
(coches x ventas)))
B) La consulta lleva al mismo resultado que: color (nombre = “ibiza” (coches |x| ventas))
C) La consulta permite obtener los distintos valores del atributo color de todos los coches vendidos
de nombre “ibiza”.
D) Las afirmaciones anteriores son todas ciertas.
4. Teniendo en cuenta la base de datos AUTOMÓVILES y las afirmaciones realizadas en I y II,
indicar cuál de las opciones (A, B, C, D) es correcta.
I.
Se puede llegar al mismo resultado de evaluar la expresión marcas1 (marcas) x marcas sin
necesidad de renombrar la relación marcas como marcas1.
II. Para poder ser evaluada la expresión nombre = “seat” (marcas)  nombre = “audi” (marcas)
es preciso renombrar previamente alguna de las relaciones marcas que intervienen en la
expresión.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
5. Teniendo en cuenta la base de datos AUTOMÓVILES y las siguientes expresiones, indicar
cuál de las afirmaciones realizada es cierta.
Temp1  nombre,apellido,ciudad (clientes |x| ventas)
Temp2  apellido (nombre = “luis”  ciudad = “madrid" (Temp1))
Temp3  apellido (nombre = “antonio”  ciudad = “valencia" (Temp1))
Temp4  Temp2  Temp3
A) Temp1 lleva al mismo resultado que nombre,apellido,ciudad (clientes)
B) En el resultado de evaluar Temp4 aparecerán todos los apellidos que aparecen en Temp2 o en
Temp3 o en ambas.
C) Si en la relación clientes existe el apellido “ramos”, sea cual sea el contenido de las relaciones
clientes y ventas, dicho apellido aparecerá en el resultado de evaluar Temp4.
D) Las afirmaciones anteriores son todas falsas.
6. Teniendo en cuenta la base de datos AUTOMÓVILES y las siguientes expresiones, indicar
cuál de las afirmaciones realizada es cierta.
Temp1  nombre,apellido,ciudad (clientes |x| ventas)
Temp2  apellido (nombre = “luis”  ciudad = “madrid" (Temp1))
Temp3  apellido (nombre = “antonio”  ciudad = “valencia" (Temp1))
Temp4  Temp2 - Temp3
A) Temp1 lleva al mismo resultado que nombre,apellido,ciudad (clientes x ventas)
B) Si el apellido “ramos” aparece tanto en Temp2 y como en Temp3, dicho apellido aparecerá en el
resultado de evaluar Temp4.
C) Si en la relación clientes existe el apellido “ramos”, sea cual sea el contenido de las relaciones
clientes y ventas, dicho apellido nunca aparecerá en el resultado de evaluar Temp4.
D) Las afirmaciones anteriores son todas falsas.
7. Teniendo en cuenta la base de datos AUTOMÓVILES y el resultado de evaluar las
siguientes expresiones, indicar cuál de las afirmaciones realizadas es cierta:
temp1  ventas |x| concesionarios
temp2  color = “rojo”  ciudad = “madrid" (temp1)
temp3  dni (temp2)
temp4  dni (clientes) - temp3
nombre (temp4 |x| clientes)
A) El resultado final de evaluar todas las expresiones es el nombre de los clientes que sólo han
comprado coches de color “rojo” en concesionarios de “Madrid”.
B) El resultado final de evaluar todas las expresiones es el nombre de los clientes que no han
comprado coches de color “rojo” en concesionarios de “Madrid”.
C) El resultado final de evaluar todas las expresiones es otro distinto a los anteriores.
D) Las afirmaciones anteriores son todas falsas.
8. Teniendo en cuenta la base de datos AUTOMÓVILES y las siguientes expresiones, indicar
cuál de las afirmaciones realizadas es cierta.
temp1  apellido = “García”  ciudad = “Madrid” (clientes)
temp2  dni (temp1 |x| ventas)
A) temp2 lleva al mismo resultado que: dni (temp1) - dni (ventas)
B) Si un cliente con dni igual a 0001 aparece en el resultado de evaluar temp2, la ciudad
correspondiente a dicho cliente no puede ser otra que Madrid.
C) temp2 lleva al mismo resultado que: dni (temp1)  dni (ventas)
D) Las afirmaciones anteriores son todas falsas.
9. Teniendo en cuenta las afirmaciones realizadas en I y II, la base de datos AUTOMÓVILES y
las siguientes expresiones, indicar cuál de las opciones (A, B, C, D) es correcta.
NOTA: Suponer que en el atributo cantidad al menos hay dos valores distintos.
temp1  distribucion x nuevad(distribucion)
temp2  distribución.cantidad (distribución.cantidad > nuevad.cantidad (temp1))
temp3  cantidad (distribucion) - temp2
I.
El resultado de evaluar temp3 es el valor máximo del atributo cantidad de la relación distribucion.
II. En el resultado de evaluar temp2 aparecerá el valor máximo del atributo cantidad.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
10. En relación con la operación del álgebra relacional reunión externa y teniendo en cuenta
las afirmaciones realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es
correcta:
I.
La reunión externa por la izquireda rellena con valores nulos las tuplas de la relación de la
derecha que no coinciden con ninguna tupla de la relación de la izquierda y las añade al
resultado de la reunión natural.
II. La reunión externa por la derecha rellena con valores nulos las tuplas de la relación de la
izquierda que no coinciden con ninguna tupla de la relación de la derecha y las añade al
resultado de la reunión natural.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
11. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente consulta, indicar cuál
de las afirmaciones realizadas en A), B) y C) es falsa. Si considera que todas son ciertas
seleccione la opción D).
select cifc, sum(cantidad) as suma
from distribucion
group by cifc
A)
B)
C)
D)
La consulta permite obtener las mismas tuplas que: cifcĢsum(cantidad) (distribucion)
La consulta permite obtener las mismas tuplas que: Ģsum(cantidad) (distribucion)
En el resultado de la consulta no pueden aparecer tuplas duplicadas.
Las afirmaciones anteriores son todas ciertas.
12. En relación con las operaciones del álgebra relacional extendida y teniendo en cuenta las
afirmaciones realizadas en I y II, indicar cuál de las siguientes opciones (A, B, C, D) es
correcta:
I.
La proyección generalizada extiende la proyección permitiendo que se utilicen operaciones
aritméticas o de cadenas de caracteres en la lista de proyección.
II. Las funciones de agregación toman una colección de valores y devuelven como resultado un
único valor.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
13. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de tuplas, indicar cuál de las afirmaciones realizadas en A), B), C), D) es cierta.
{t   s  coches (s[modelo] = “glx”
  v  ventas (v[codcoche] = s[codcoche]
  u  clientes (u[dni] = v[dni]  t[nombre] = u[clientes.nombre])))}
NOTA: como en la base de datos AUTOMÓVILES existen atributos nombre en distintas
relaciones, cuando se haga referencia a ellos se les antepondrá el nombre de la relación. Por lo
que “clientes.nombre” es correcto.
A) Si un cliente ha comprado un coche del modelo “glx”, en el resultado de evaluar la expresión
aparecerá el nombre de dicho cliente.
B) Si un cliente ha comprado un coche del modelo “glx”, en el resultado de evaluar la expresión
aparecerá el nombre de dicho coche.
C) El resultado de evaluar la expresión siempre será una relación vacía.
D) Las afirmaciones anteriores son todas falsas.
14. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de tuplas, indicar cuál de las afirmaciones realizadas en A), B), C) y D) es cierta.
{t    s  clientes (t[nombre] = s[clientes.nombre]  s[ciudad] = “madrid”)}
NOTA: como en la base de datos AUTOMÓVILES existen atributos nombre en distintas
relaciones, cuando se haga referencia a ellos se les antepondrá el nombre de la relación. Por lo
que “clientes.nombre” es correcto.
A) El resultado de evaluar la expresión es el nombre de los clientes de la ciudad de “madrid".
B) nombre (clientes) - nombre (ciudad = “madrid” (clientes)) lleva al mismo resultado que la
expresión del enunciado.
C) El resultado de evaluar la expresión siempre será una relación vacía.
D) Las afirmaciones anteriores son todas falsas.
15. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de tuplas, indicar cuál es el resultado de evaluar dicha expresión.
{t   s  coches (s[modelo] = “gtd”
  v  marco (v[codcoche] = s[codcoche]
  u  marcas (u[cifm] = v[cifm]  t[nombre] = u[marcas.nombre])))}
NOTA: como en la base de datos AUTOMÓVILES existen atributos nombre y ciudad en distintas
relaciones, cuando se haga referencia a ellos se les antepondrá el nombre de la relación. Por lo
que “marcas.nombre” es correcto.
A)
B)
C)
D)
Los nombres de las marcas de las que se han vendido coches del modelo “gtd”.
Los nombres de las marcas de las que se han distribuido coches del modelo “gtd”.
Los nombres de las marcas que disponen de coches del modelo “gtd”.
Otro distinto de los anteriores.
16. Teniendo en cuenta la base de datos AUTOMÓVILES y las siguiente expresión del cálculo
relacional de tuplas, indicar cuál de las afirmaciones realizadas en A), B) y C) es falsa. Si
considera que todas son ciertas seleccione la opción D).
{t   s  ventas (t[dni] = s[dni]  s[color] = “rojo”  s[color] = “blanco”
  u  clientes (u[dni] = s[dni]  t[ciudad] = u[clientes.ciudad]))}
NOTA: como en la base de datos AUTOMÓVILES existen atributos nombre y ciudad en distintas
relaciones, cuando se haga referencia a ellos se les antepondrá el nombre de la relación. Por lo
que “clientes.ciudad” es correcto.
A) Si un cliente ha comprado un coche de color “rojo”, en el resultado de evaluar la expresión
aparecerán los valores de dni y ciudad correspondientes a dicho cliente.
B) Si un cliente ha comprado dos coches uno de color “rojo” y otro de color “blanco”, en el resultado
de evaluar la expresión aparecerán los valores de dni y ciudad correspondientes a dicho cliente.
C) Si un cliente ha comprado únicamente dos coches uno de color “verde” y otro de color “azul”, en
el resultado de evaluar la expresión no aparecerán los valores de dni y ciudad correspondientes
a dicho cliente.
D) Las afirmaciones realizadas en A), B) y C) son todas ciertas.
17. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de tuplas, indicar cuál de las afirmaciones realizadas es cierta.
{t   s  clientes (s[clientes.ciudad] = “Madrid”
  u  ventas (u[dni] = s[dni]  t[codcoche] = u[codcoche]
  v  concesionario (v[cifc] = u[cifc]
 v[concesionarios.ciudad] = “Madrid”)))}
NOTA: como en la base de datos AUTOMÓVILES existen atributos nombre y ciudad en distintas
relaciones, cuando se haga referencia a ellos se les antepondrá el nombre de la relación. Por lo
que “clientes.ciudad” y “concesionarios.ciudad” son correctos.
A) En las tuplas de la relación resultante de evaluar la expresión aparecerán los valores del atributo
codcoche de todos los coches vendidos en concesionarios de “Madrid”.
B) En las tuplas de la relación resultante de evaluar la expresión aparecerán los valores del atributo
codcoche de todos los coches comprados por clientes de “Madrid”.
C) Si un cliente de “Madrid” ha comprado un coche en un concesionario de “Madrid”, en el resultado
de la consulta aparecerá el valor del atributo codcoche correspondiente al coche comprado.
D) Las afirmaciones anteriores son todas falsas.
18. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de tuplas, indicar cuál de las afirmaciones realizadas es cierta.
{t    s  ventas (t[cifc] = s[cifc]   (s[dni] = 0001))}
A) Si el cifc de un concesionario aparece en dos tuplas de la relación ventas junto a los valores de
dni igual a 0001 y 0002 (uno en cada tupla), dicho valor de cifc aparecerá en el resultado de
evaluar la expresión.
B) Si el cifc de un concesionario aparece en dos tuplas de la relación ventas junto a los valores de
dni igual a 0001 y 0001 (uno en cada tupla), dicho valor de dni aparecerá siempre en el resultado
de evaluar la expresión.
C) Si un concesionario solamente ha vendido un coche y su cifc aparece en la relación ventas junto
al valor de dni igual a 0001, dicho valor de cifc aparecerá en el resultado de evaluar la expresión.
D) Las afirmaciones anteriores son todas falsas.
Solución
La respuesta correcta es la C). Al evaluar la expresión se obtienen los valores del atributo cifc de
los concesionarios que sólo han vendido coches al cliente con dni igual a 0001 (valores del atributo
cifc de los concesionarios que en la relación ventas no les corresponde ningún valor de dni distinto
de 0001), por lo que A) es falsa y C) es cierta (el valor de cifc sólo aparece una vez en la relación
ventas). B) es falsa, en el resultado de la consulta aparecerán valores de cifc y no de dni.
19. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de tuplas, indicar cuál de las afirmaciones realizadas es cierta.
{t    s  ventas (t[dni] = s[dni]  s[color] = “rojo”)
  v  ventas (t[dni] = v[dni]  v[color] = “blanco”)}
A) {t   s  ventas (t[dni] = s[dni]  s[color] = “rojo”)    v  ventas (t[dni] = v[dni]  v[color] =
“blanco”)}
B) {t   v  ventas (t[dni] = v[dni]  v[color] = “blanco”)   s  ventas (t[dni] = s[dni]  s[color] =
“rojo”)}
C) {t   s  ventas (t[dni] = s[dni]  s[color] = ‘rojo’)   v  ventas (t[dni] = v[dni]  v[color] =
“blanco”)}
D) Las afirmaciones anteriores son todas falsas.
20. Respecto al resultado de evaluar la siguiente expresión del cálculo relacional de
dominios, indicar cuál de las afirmaciones realizadas es cierta:
{< f >   a, b, c (< a, b, c >  concesionarios  b = “acar”   d, e (< a, d, e, f >  ventas))}
A) La expresión permite obtener los valores del atributo codcoche de los coches vendidos por el
concesionario “acar”.
B) La expresión permite obtener el valor del atributo cifc correspondiente al concesionario “acar”.
C) La expresión permite obtener el valor del atributo dni de los clientes que han comprado choches
en el concesionario “acar”.
D) Las afirmaciones anteriores son todas falsas.
21. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de dominios, indicar cuál de las afirmaciones realizadas es cierta.
{< e, h >   a, b, c, d (< a, b, c, d >  clientes  d = “ibiza”
  f, g (< e, f, g, h >  ventas  f = a))}
A) Si un cliente ha comprado un coche en un concesionario de la ciudad de “ibiza”, esto garantiza
que en el resultado de la consulta aparezca el cifc de dicho concesionario junto al color del
coche comprado.
B) Si un cliente ha comprado un coche en un concesionario de la ciudad de “toledo”, esto garantiza
que en el resultado de la consulta no aparezca el cifc de dicho concesionario junto al color del
coche comprado.
C) Si un cliente de la ciudad de “ibiza” ha comprado un coche en un determinado concesionario,
esto no garantiza que en el resultado de la consulta aparezca el cifc de dicho concesionario junto
al color del coche comprado.
D) Las afirmaciones anteriores son todas falsas.
22. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de dominios, indicar cuál de las afirmaciones realizadas es cierta.
{< f >   a, b, c, d (< a, b, c, d >  clientes
  e, g (< e, a, f, g >  ventas
  h, i (< e, h, i >  concesionarios  i = d)))}
A) Si un cliente de Madrid compra un coche en un concesionario de Madrid, esto garantiza que en
el resultado de la consulta aparezca el dni de dicho cliente.
B) Si un cliente de Murcia compra un coche en un concesionario de Murcia, esto garantiza que en
el resultado de la consulta aparezca el valor del atributo codcoche correspondiente al coche
comprado.
C) Si un cliente de Burgos compra un coche en un concesionario de Madrid, esto garantiza que en
el resultado de la consulta aparezca el valor del atributo codcoche correspondiente al coche
comprado.
D) Las afirmaciones anteriores son todas falsas.
23. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de dominios, indicar cuál es el resultado de evaluar dicha expresión.
{< e >   a, b, c (< a, b, c >  coches  c = “gti”
  d (< d, a >  marco   f (< d, e, f >  marcas)))}
A)
B)
C)
D)
Los nombres de las marcas que tienen modelos “gti”.
Los nombres de las marcas que sólo tienen modelos “gti”.
Los nombres de los coches que tienen modelos “gti”.
Otro distinto a los indicados en A), B) y C).
24. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de dominios, indicar cuál de las afirmaciones realizadas es cierta:
{< e >   a, b, c (< a, b, c >  marcas  c = “madrid”
  d (< a, d >  marco   f (< d, e, f >  coches  f = “gti”)))}
A) Si una marca de “madrid" dispone de coches del modelo “gti”, en el resultado de evaluar la
expresión aparecerá el nombre de dicha marca.
B) Si una marca de “madrid" dispone de coches del modelo “gti”, en el resultado de evaluar la
expresión aparecerán los valores del atributo codcoche de los coches de dicha marca que
disponen de modelo “gti”.
C) Si una marca de “madrid" dispone de coches del modelo “gti”, en el resultado de evaluar la
expresión aparecerán los nombres de los coches de dicha marca que disponen de modelo “gti”.
D) Las afirmaciones anteriores son todas falsas.
25. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de dominios, indicar cuál de las afirmaciones realizadas es cierta.
{< e, f >   a, b, c (< a, b, c >  concesionarios  b = “bcar”
  d (< d, e, f >  distribucion  d = a))}
A) La expresión permite obtener como único atributo los valores de codcoche para los coches
distribuidos al concesionario de nombre “bcar”.
B) La expresión permite obtener los valores de los atributos cifc y cantidad para los coches
distribuidos al concesionario de nombre “bcar”.
C) El resultado de evaluar la expresión siempre será una relación vacía.
D) Las afirmaciones anteriores son todas falsas.
26. Teniendo en cuenta la base de datos AUTOMÓVILES y la siguiente expresión del cálculo
relacional de dominios, indicar cuál de las afirmaciones realizadas es cierta.
{< d, f >   a, b, c (< a, b, c >  coches  b = “toledo”
  e (< d, e, f >  distribucion  e = a))}
A) La expresión permite obtener los valores de los atributos cifc y cantidad para los concesionarios
de la ciudad de “toledo”.
B) Si existen concesionarios en la ciudad de “toledo", esto garantiza que la relación resultante de
evaluar la expresión no será vacía.
C) Si se dispone de al menos un coche de nombre “toledo” en un concesionario de la ciudad de
“burgos", esto garantiza que la relación resultante de evaluar la expresión no será vacía.
D) Las afirmaciones anteriores son todas falsas.
BASES DE DATOS. SEXTA AUTOEVALUACIÓN
TEMA 7. Diseño de bases de datos y el modelo E-R
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. Indicar si las dos siguientes afirmaciones son ciertas o falsas sobre el modelo E-R:
I. Un atributo es multivalorado cuando tiene un conjunto de valores para una entidad concreta.
II. Se pueden establecer apropiadamente límites inferior y superior al número de valores en el
atributo multivalorado.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
2. Indicar cuál de las siguientes afirmaciones sobre este diagrama E-R es cierta:
A) El conjunto de relaciones prestatario es uno a uno.
B) El conjunto de relaciones prestatario es varios a uno desde cliente a préstamo.
C) El conjunto de relaciones prestatario es uno a varios, desde cliente a préstamo.
D) Las afirmaciones anteriores son todas falsas.
3. Indicar cuál de las siguientes afirmaciones sobre este diagrama E-R es cierta:
A) fecha_acceso es un atributo descriptivo.
B) fecha_acceso es un atributo compuesto.
C) fecha_acceso es un atributo multivalorado.
D) Las afirmaciones anteriores son todas falsas..
4. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. En el modelo de datos E-R se emplean únicamente dos conceptos básicos: los conjuntos de
entidades y los conjuntos de relaciones.
II. En el modelo de datos E-R las entidades pueden ser concretas, como las personas o los
libros, o abstractas, como los préstamos, las vacaciones o los conceptos.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
5. Indicar cuál de las siguientes afirmaciones sobre este diagrama E-R es cierta:
A) El conjunto de relaciones prestatario es uno a uno.
B) El conjunto de relaciones prestatario es varios a uno desde cliente a préstamo.
C) El conjunto de relaciones prestatario es uno a varios, desde cliente a préstamo.
D) Las afirmaciones anteriores son todas falsas.
6. Indicar cuál de las siguientes afirmaciones sobre este diagrama E-R es cierta:
A) número_teléfono es un atributo descriptivo.
B) número_teléfono es un atributo compuesto.
C) número_teléfono es un atributo derivado.
D) Las afirmaciones anteriores son todas falsas.
7. Indicar si las dos siguientes afirmaciones sobre este diagrama E-R son ciertas o falsas:
I. El conjunto de entidades débiles pago depende del conjunto de entidades fuertes préstamo
mediante el conjunto de relaciones pago-préstamo.
II. Un pago puede ser para uno o varios préstamos.
A)
B)
C)
D)
I es cierta y II es cierta.
I es cierta y II es falsa.
I es falsa y II es cierta.
I es falsa y II es falsa.
8. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. El valor nulo de un atributo puede indicar "no aplicable", es decir, que el valor no existe para
esa entidad.
II. El valor nulo de un atributo puede designar que el valor del atributo es desconocido.
A)
B)
C)
D)
I es cierta y II es cierta.
I es cierta y II es falsa.
I es falsa y II es cierta.
I es falsa y II es falsa.
9. ¿Cuántas tablas se producirían del siguiente modelo E-R:
A) 5
B) 6
C) 11.
D) Las afirmaciones anteriores son todas falsas.
10. En un diagrama E-R, ¿qué significa el siguiente símbolo?:
A)
B)
C)
D)
Participación total del conjunto de entidades en la relación.
Generalización disjunta.
Conjunto de relaciones identificador de un conjunto de entidades débiles.
Las afirmaciones anteriores son todas falsas.
11. Indicar cuál de las siguientes afirmaciones sobre el diagrama E-R mostrado es cierta:
A)
B)
C)
D)
Cada préstamo puede tener uno o varios clientes asociados.
Cada cliente tiene, al menos, un préstamo.
La relación prestatario es uno a varios de cliente a préstamo.
Ninguna de las anteriores es cierta.
12. Indicar cuál de las siguientes afirmaciones sobre el modelo E-R es cierta:
A) Los atributos simples se pueden dividir en subpartes.
B) Se pueden establecer límites inferior y superior al número de valores en un atributo
multivalorado.
C) El valor de un atributo derivado se almacena para no calcularlo cada vez que hace falta.
D) Ninguna de las anteriores es cierta.
BASES DE DATOS. SÉPTIMA AUTOEVALUACIÓN
TEMA 8. Diseño de bases de datos relacionales
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. Suponer que la relación R(A,B,C,D,E) cumple las dependencias funcionales F = {A→B,
B→D, C→E, E→B}. Indicar si los siguientes ejemplares de R satisfacen F.
I.
A) I sí y II sí.
B) I sí y II no.
II.
C) I no y II sí.
D) I no y II no.
2. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. Hay algunos aspectos del diseño de bases de datos que la normalización no aborda y, por
tanto, pueden llevar a un mal diseño de la base de datos.
II. A veces los diseñadores de bases de datos escogen un esquema no normalizado con
información redundante para mejorar el rendimiento de aplicaciones concretas.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
3. Indicar si las dos siguientes afirmaciones sobre reglas adicionales a los axiomas de
Armstrong son ciertas o falsas:
I. Si se cumple que A→BC entonces se cumple que A→B y que A→C.
II. Si se cumple que A→B y que A→C entonces se cumple que B→C.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
4. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. El proceso de tomar un esquema normalizado y hacer que no esté normalizado se denomina
desnormalización.
II. Los diseñadores utilizan la desnormalización para ajustar el rendimiento de los sistemas para
que den soporte a las operaciones críticas en el tiempo.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
5. Sea F un conjunto dependencias funcionales de un esquema de relación y supóngase que
se tienen las dependencias funcionales AB→C y A→C de F. Indicar cuál de las siguientes
afirmaciones es cierta:
A)
B)
C)
D)
A es raro en AB→C.
B es raro en AB→C.
C es raro en AB→C.
Las afirmaciones anteriores son todas falsas
6. Indicar si las dos siguientes afirmaciones sobre reglas adicionales a los axiomas de
Armstrong son ciertas o falsas:
I. Si se cumple que A→B y que CB→D entonces se cumple que AC→D.
II. Si se cumple que A→B y que A→C entonces se cumple que A→BC.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
7. Suponer que la relación R(A,B,C) únicamente tiene la tupla (0,0,0) y que además satisface
las dependencias funcionales A → B y B → C. ¿Cuál de las siguientes tuplas puede ser
insertada en R cumpliendo esas dependencias funcionales?
A)
B)
C)
D)
(1,2,0)
(1,0,2)
(0,1,2)
Las afirmaciones anteriores son todas falsas.
8. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. La forma normal de Boyce-Codd (FNBC) elimina todas las redundancias que se pueden
descubrir a partir de las dependencias funcionales.
II. Los diseños de bases de datos están en la FNBC si cada miembro del conjunto de esquemas
de relación que constituye el diseño se halla en la FNBC.
A)
B)
C)
D)
I es cierta y II es cierta.
I es cierta y II es falsa.
I es falsa y II es cierta.
I es falsa y II es falsa.
9. Suponer que la relación R(A,B,C) únicamente tiene la tupla (0,0,0) y que además satisface
las dependencias funcionales A → B y B → C. ¿Cuál de las siguientes tuplas puede ser
insertada en R cumpliendo esas dependencias funcionales?
A)
B)
C)
D)
(0,1,0)
(0,0,2)
(1,1,0)
Las afirmaciones anteriores son todas falsas.
10. Indicar cuál de las siguientes afirmaciones es cierta:
A) Se dice que algunas dependencias funcionales son triviales porque las satisfacen casi todas las
relaciones.
B) Las dependencias funcionales de la forma α → β son triviales si se cumple la condición β Í α.
C) A → B es una dependencia trivial.
D) Las afirmaciones anteriores son todas falsas.
11. Dada la relación Película(Título, Año, Duración, Tipo, Estudio, Dirección, Actor) con las
tuplas mostradas a continuación:
Título
Star Wars
Star Wars
Star Wars
Mighty Ducks
Ben Hur
Ben Hur
El retorno del Jedi
Año
Duración
Tipo
1977
1977
1977
1991
1959
1959
1983
124
124
124
104
212
212
124
Color
Color
Color
Color
Color
Color
Color
Estudio
Fox
Fox
Fox
Disney
MGM
MGM
Fox
Dirección
Hollywood
Hollywood
Hollywood
Buena Vista
Hollywood
Hollywood
Hollywood
Actor
Carrie Fisher
Mark Hamill
Harrison Ford
Emilio Estévez
Charlton Heston
Martha Scott
Carrie Fisher
En esta relación se cumple que:
• De un título se pueden haber realizado varias versiones en distintos años, pero nunca
con los mismos actores.
• Un determinado actor puede haber participado en varias películas durante un año.
• No existe ningún estudio que esté ubicado en varias direcciones.
• Un actor puede trabajar en varios estudios.
Se van emplear las siguientes abreviaturas para los atributos: Título (T), Año (A), Duración
(D), Tipo (Ti), Estudio (E), Dirección (Di), Actor (Ac).
Contestar si las siguientes ocho afirmaciones, numeradas del I al VIII, son ciertas o no
I.
La relación Película cumple las siguientes dependencias funcionales: {T A → Ti, T A → E, T A →
D, E → Di, T → D}
II. {T, A, Ac} es clave candidata de la relación.
III. La relación Película está en la primera forma normal (1FN)
IV. La relación Película está en la forma normal de Boyce-Codd (FNBC)
Si se descompone la relación Película en dos relaciones:
R1(Titulo, Año, Duración, Tipo, Estudio, Dirección)
R2(Titulo, Año, Actor)
V. La relación R1 está en la forma normal de Boyce-Codd (FNBC)
VI. La relación R2 está en la forma normal de Boyce-Codd (FNBC)
Si se descompone la relación Película en tres relaciones:
R11(Estudio, Dirección)
R12(Titulo, Año, Duración, Tipo, Estudio)
R2(Titulo, Año, Actor)
VII. La relación R11 está en la forma normal de Boyce-Codd (FNBC)
VIII. La relación R12 está en la forma normal de Boyce-Codd (FNBC)
BASES DE DATOS. OCTAVA AUTOEVALUACIÓN
TEMA 9. Diseño y desarrollo de aplicaciones
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. Un disparador es una instrucción que el sistema ejecuta de manera automática como efecto
secundario de la modificación de la base de datos.
II. Una vez que se introduce un disparador en la base de datos, el usuario asume la
responsabilidad de ejecutarlo cada vez que se produzca el evento especificado y se satisfaga la
condición correspondiente.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
2. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. Una cookie no es más que un pequeño fragmento de texto, sin un nombre asociado, que
contiene información de identificación.
II. Con objeto de realizar un seguimiento de las sesiones de usuario, una aplicación puede
generar un identificador de sesión y enviar una cookie que contenga ese identificador de sesión.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
3. El URL http://www.google.com/search?q=uned envía información introducida por el
usuario al servidor empleando:
A)
B)
C)
D)
Método post.
Método get.
Cookie.
Las afirmaciones anteriores son todas falsas.
4. Utilizando las instrucciones de privilegios de SQL, la expresión
grant select on cuentas to Pablo with grant option
permite:
A) Conceder al usuario Pablo el privilegio select sobre la relación cuentas y permitirle que pueda
conceder a otros ese privilegio.
B) Conceder al usuario Pablo crear relaciones que hagan referencia a la clave cuentas y permitirle
que pueda conceder a otros ese privilegio.
C) Conceder al usuario Pablo autorización de actualización sobre la relación cuentas y permitirle
que pueda conceder a otros ese privilegio.
D) Las afirmaciones anteriores son todas falsas.
5. Indicar si las dos siguientes afirmaciones son ciertas o falsas, sobre maneras que define
HTTP de enviar al servidor Web los valores introducidos por el usuario.
A)
B)
C)
D)
I. El método post codifica los valores como parte del URL.
II. El método get envía el valor de los parámetros como parte del intercambio del protocolo
HTTP entre el servidor Web y el navegador.
I es cierta y II es cierta.
I es cierta y II es falsa.
I es falsa y II es cierta.
I es falsa y II es falsa.
6. Los formularios y las interfaces gráficas de usuario:
A) Permiten que los usuarios examinen y analicen los datos de manera interactiva.
B) Son herramientas que permiten generar informes predefinidos sobre el contenido de la base de
datos.
C) Permiten a los usuarios introducir valores para consultas predefinidas.
D) Las afirmaciones anteriores son todas falsas.
7. Indicar cuál de las siguientes afirmaciones es cierta:
A) La capacidad de las vistas de ocultar datos no sirve para mejorar la seguridad.
B) Aunque se puede negar a un usuario el acceso directo a una relación, se le puede permitir a ese
usuario el acceso a parte de esa relación mediante una vista.
C) El usuario que crea una vista recibe necesariamente todos los privilegios sobre esa vista.
D) Ninguna de las anteriores es cierta.
8. En SQL para retirar autorizaciones se emplea la instrucción:
A)
B)
C)
D)
grant.
restrinct.
delete privileges.
Ninguna de las anteriores es cierta.
9. Indicar cuál de las siguientes afirmaciones es cierta:
A) Un disparador es una instrucción que el sistema ejecuta de manera automática como efecto
secundario de la modificación de la base de datos.
B) Los disparadores no son mecanismos útiles para alertar a los usuarios o para iniciar de manera
automática ciertas tareas cuando se cumplen determinadas condiciones.
C) Una vez que se introduce un disparador en la base de datos, el usuario asume la
responsabilidad de ejecutarlo cada vez que se produzca el evento especificado y se satisfaga la
condición correspondiente.
D) Las afirmaciones anteriores son todas ciertas.
10. Indicar cuál de las siguientes afirmaciones es cierta:
A) En la arquitectura Web de dos capas las aplicaciones se ejecutan como parte del propio servidor
Web.
B) Un modo de implementar la arquitectura Web de dos capas es cargar los programas Java en el
servidor Web.
C) La especificación servlet de Java define una interfaz de programación de aplicaciones para la
comunicación entre el servidor Web y los programas de aplicaciones.
D) Las afirmaciones anteriores son todas ciertas.
BASES DE DATOS. NOVENA AUTOEVALUACIÓN
TEMA 10. Almacenamiento y estructura de archivos
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. ¿Qué nivel de RAID, también denominado esquema de redundancia P+Q, guarda
información redundante adicional para la protección contra los fallos de disco múltiples?
A) Nivel 1 de RAID.
B) Nivel 3 de RAID.
C) Nivel 4 de RAID.
D) Las afirmaciones anteriores son todas falsas.
2. A la hora de elegir entre el nivel 1 de RAID y el nivel 5 de RAID, indicar si las dos siguientes
afirmaciones son ciertas o falsas:
I. Para las aplicaciones en las que los datos se leen con frecuencia y se escriben raramente, el
nivel 1 es la opción preferida.
II. El nivel 1 tiene menos sobrecarga de almacenamiento que el nivel 5, pero presenta una
mayor sobrecarga temporal en las operaciones de escritura.
A)
B)
C)
D)
I es cierta y II es cierta.
I es cierta y II es falsa.
I es falsa y II es cierta.
I es falsa y II es falsa.
3. RAID significa:
A)
B)
C)
D)
Redundant Array of Independent Disks.
Redundant Access of Interlaced Disks.
Redundant Access of Indexed Disks.
Las afirmaciones anteriores son todas falsas.
4. En un sistema de bases de datos relacional, entre los tipos de información que se guarda
en el diccionario de datos o catálogo del sistema está:
A)
B)
C)
D)
El nombre de las vistas definidas en la base de datos, y la definición de estas vistas.
El valor de las tuplas de cada relación.
El valor de los índices de la relación.
Las afirmaciones anteriores son todas ciertas.
5. Los registros de longitud variable surgen en los sistemas de bases de datos para:
A)
B)
C)
D)
Almacenamiento de varios tipos de registros en un mismo archivo.
Tipos de registro que permiten longitudes variables para uno o varios de los campos.
Tipos de registro que permiten campos repetidos, como los arrays o los multiconjuntos.
Las afirmaciones anteriores son todas ciertas.
6. ¿Qué nivel de RAID es también conocido como organización de paridad con bloques
entrelazados? :
A)
B)
C)
D)
RAID 1.
RAID 2.
RAID 4.
RAID 5.
7. En un disco de almacenamiento, se define el tiempo de latencia rotacional como:
A) Es el tiempo transcurrido desde que se formula una solicitud de lectura o de escritura hasta que
comienza la transferencia de datos.
B) Es el promedio de los tiempos de búsqueda medido en una sucesión de solicitudes aleatorias
uniformemente distribuidas.
C) Una vez que la cabeza ha alcanzado la pista deseada, es el tiempo de espera hasta que el
sector al que hay que acceder aparece bajo la cabeza.
D) Las afirmaciones anteriores son todas falsas.
BASES DE DATOS. DÉCIMA AUTOEVALUACIÓN
TEMA 11. Indexación y asociación
Enunciado
A continuación se proponen una serie de preguntas con cuatro respuestas de las cuales sólo una es
correcta. Para cada pregunta, indicar cuál de las opciones es la correcta y justificar la respuesta.
Preguntas
1. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. Los índices de mapas de bits son un tipo de índices especializado diseñado para la consulta
sencilla sobre varias claves, aunque cada índice de mapas de bits se construya para una única
clave.
II. Para que se utilicen los índices de mapas de bits, los registros de la relación deben estar
numerados secuencialmente.
A) I es cierta y II es cierta.
C) I es falsa y II es cierta.
B) I es cierta y II es falsa.
D) I es falsa y II es falsa.
2. Indicar si las dos siguientes afirmaciones son ciertas o falsas:
I. Los índices ordenados están basados en una distribución uniforme de los valores a través de
una serie de cajones (buckets).
II. El valor asignado a cada cajón en un índice ordenado está determinado por una función,
llamada función de asociación (hash function).
A)
B)
C)
D)
I es cierta y II es cierta.
I es cierta y II es falsa.
I es falsa y II es cierta.
I es falsa y II es falsa.
3. La figura muestra un ejemplo de:
A)
B)
C)
D)
Índice denso.
Índice multinivel.
Índice disperso.
Las afirmaciones anteriores son todas falsas.
4. Los índices NO es necesario actualizarlos:
A) En operaciones de inserción empleando índices densos.
B) En operaciones de borrado empleando índices densos.
C) En operaciones de borrado empleando índices dispersos, si el índice no contiene un registro
índice con el valor de la clave de búsqueda del registro borrado.
D) Ninguna de las anteriores es cierta.
5. La figura muestra un ejemplo de:
A)
B)
C)
D)
Índice multinivel.
Índice disperso.
Índice denso.
Ninguna de las anteriores es cierta.
6. Indicar cuál de las siguientes afirmaciones es cierta:
A) Los índices de mapas de bits son un tipo de índices especializado diseñado para la consulta
sencilla sobre varias claves.
B) En su forma más sencilla, un índice de mapas de bits sobre el atributo A de la relación r
consiste en un mapa de bits para cada valor que pueda tomar A.
C) Los índices de mapas de bits resultan útiles para las selecciones sobre todo cuando hay
selecciones bajo varias claves.
D) Las afirmaciones anteriores son todas ciertas.
7. Indicar cuál de las siguientes afirmaciones es cierta:
A) Algunas técnicas de asociación dinámica permiten modificar dinámicamente la función de
asociación para adaptarse al aumento o disminución de tamaño de la base de datos.
B) La técnica de asociación estática permite modificar dinámicamente la función de asociación
para adaptarse al aumento o disminución de tamaño de la base de datos.
C) Una forma de asociación estática es la asociación extensible.
D) Las afirmaciones anteriores son todas falsas..
8. Teniendo en cuenta las afirmaciones realizadas en I y II, indicar cuál de las siguientes
opciones (A, B, C, D) es correcta:
I.
Generalmente es más rápido localizar un registro si se usa un índice disperso en vez de un
índice denso.
II. Los índices densos utilizan un espacio más reducido y un mantenimiento adicional menor para
las inserciones y borrados que los índices dispersos.
A) I cierta, II cierta.
B) I cierta, II falsa.
C) I falsa, II cierta.
D) I falsa, II falsa.
9. En relación con la figura, indicar cuál de las afirmaciones realizadas en A), B) y C) es
cierta. Si considera que todas son falsas seleccione la opción D).
A) Representa la estructura de un archivo en agrupaciones de varias tablas con cadenas de
punteros.
B) Representa la estructura de un archivo en agrupaciones de varias tablas
C) Representa la estructura de un archivo secuencial.
D) Las afirmaciones realizadas en A), B) y C) son todas falsas.
10. En SQL para crear un índice en el que no se permitan valores repetidos, indicar cuál de
las afirmaciones realizadas en A), B) y C) es cierta. Si considera que todas son falsas
seleccione la opción D).
A)
B)
C)
D)
Se utiliza el comando create index
Se utiliza el comando create unique index
Se utiliza el comando drop index
Las afirmaciones realizadas en A), B) y C) son todas falsas.
Download