Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 Nombre de los clientes del banco que tienen una cuenta, un préstamo o ambas cosas
4 Relación de clientes que tienen abierta una cuenta pero no tienen ninguna de préstamo.
5 Nombre de todos los clientes que tienen un préstamo y una cuenta abierta.
Álgebra Relacional – Práctico Constructora
Sea una base de datos de una empresa de construcciones con los siguientes esquemas de
relación:
1. Directores de las obras que comenzaron en el 2022 cuyo tipo de obra sea
“Remodelación”.
2. Descripción de las tareas cuya duración sea entre 15 y 25 días.
3. Especialidad del obrero Mario
4. Nro de obra en las que trabaja el obrero Mario
5. Descripción de las tareas que se realizan en la obra nro 23
6. Obtener los números de las obras tales que todas las tareas realizadas en ella tiene
una duración de por lo menos 10.
7. Obtener los números de obra, director y fecha de comienzo de las mismas tal que en
las obras solo participaron obreros cuya especialidad es “Albañil”.
8. Obtener los números de obra, director y fecha de comienzo de las mismas tal que en
las obras participaron obreros cuya especialidad es “Albañil” y obreros de otras
especialidades.
9. Obtener los números de obra, director y fecha de comienzo de las mismas tal que en
las obras participaron obreros con especialidad “Albañil”.
Álgebra Relacional – Práctico Instituto
La siguiente base de datos relacional describe ciertas materias dictadas en centro de formación
docente:
CURSOS (código, nombre, cant_inscriptos) Esta tabla contiene información acerca de los cursos
que se ofrecen. De cada curso se conoce un código que lo identifica, un nombre y la cantidad
de inscriptos
PREVIATURAS (código, códigoPrevia) Esta tabla contiene información acerca de las previaturas
entre cursos
ASIGNADOS (código, docente) Esta tabla contiene información acerca de los docentes
asignados a los cursos.
HORARIOS_DICTADO (código, docente, horario, salón) Esta tabla contiene información acerca
de los salones y horarios de clase. Para cada docente que dicte clase de un curso en un
determinado horario se almacena el salón correspondiente.
DOCENTES (nombre, oficina, teléfono, departamento) Esta tabla contiene información acerca
de los docentes.
FK: PREVIATURAS(código) -> CURSOS(código)
PREVIATURAS(códigoPrevia) -> CURSOS(código)
ASIGNADOS(código) -> CURSOS(código)
ASIGNADOS (docente)-> DOCENTES (nombre)
HORARIOS_DICTADO(código, docente) -> ASIGNADOS (código, docente)
Resolver las siguientes consultas en álgebra relacional.
En caso de que alguna de las consultas no sea expresable, justificar adecuadamente el por qué.
a. Encontrar todos los salones usados por cursos con más de 100 alumnos inscriptos.
b. Encontrar los nombres de los docentes que no están asignados a ningún curso.
c. Encontrar los nombres de todos los cursos asignados a docentes del departamento de
‘Programación’.
d. Encontrar los salones de clase que utiliza el docente Mario M.
e. Encontrar la cantidad de inscriptos promedio.
f. Encontrar la cantidad de inscriptos total en todos los cursos asignados a Mario M.
g. Mostrar los códigos y cantidad de inscriptos de todos los cursos cuya cantidad de inscriptos
sea menor que el promedio.
h. Mostrar los códigos de todos los cursos que se dictan en algún salón donde se dicta el curso
con código ‘BD1’.
i. Encontrar los nombres de los docentes que dictan cursos que se dictan en 2 o más salones.
j. Encontrar los códigos de todas las previas inmediatamente anteriores al curso con código
‘BD1’.
k. Encontrar los códigos de todos los cursos que deben ser aprobados antes de poder cursar
‘BD1’.
l. Mostrar para cada docente el total de inscriptos en los cursos que tiene asignados.
2°N BD I INET 2022
Ejercicio 1
RNE:
La cantidad de camas de un hospital debe ser igual a la suma de la cantidad de camas de sus salas.
Un paciente internado en un cierto hospital debe ser atendido exclusivamente por médicos que trabajen en ese
hospital.
Se pide:
Utilizando las reglas vistas en el curso realizar el pasaje a Modelo Relacional especificando el conjunto de tablas y el
conjunto de dependencias de inclusión.
Página 1 de 3
Tecnólogo en Informática - Base de Datos 1 - Práctico
Ejercicio 2
RNE:
El producto promovido por cada promotor debe ser producido por la empresa que lo emplea.
Se pide:
Utilizando las reglas vistas en el curso realizar el pasaje a Modelo Relacional especificando el conjunto de tablas y el
conjunto de dependencias de inclusión.
Página 2 de 3
Tecnólogo en Informática - Base de Datos 1 - Práctico
Ejercicio 3
RNE:
LUGAR = YATE ∪ LOCAL
YATE ∩ LOCAL = ∅
Se pide:
Utilizando las reglas vistas en el curso realizar el pasaje a Modelo Relacional especificando el conjunto de tablas y el
conjunto de dependencias de inclusión.
Página 3 de 3
Tecnólogo en Informática - Base de Datos 1 - Solución Práctico 2
Ejercicio 2
Conjunto de tablas
EMPRESAS(nroEmp, nomEmp)
PRODUCTOS(nroProd, desc)
PROMOTORES(nroProm, nomProm)
PRODUCE(nroEmp, nroProd)
TRABAJA(nroProm, nroEmp)
PROMUEVE(nroProm, nroProd)
( ) ⊆ ( )
( ) ⊆ ( )
( ) ⊆ ( )
( ) ⊆ ( )
( ) ⊆ ( )
( ) ⊆ ( )
Página 1 de 2
Tecnólogo en Informática - Base de Datos 1 - Solución Práctico 2
Ejercicio 3
Conjunto de tablas
COMIDA(nomComida)
CONFITERIA(nomConf, dirConf)
CONF_TEL(nomConf, telConf)
CONF_SUC(nomConf, dirSuc)
LUGAR(nomLug, capacidad, nomConf)
YATE(nomLug, puerto)
LOCAL(nomLug, dirLocal)
INGREDIENTE(cod, nomComida, cantidad)
PREPARA(nomConf, nomComida)
( _ ) ⊆ ( ! ! )
( _ ) ⊆ ( ! ! )
( " ) ⊆ ( ! ! )
(# ) ⊆ ( " )
$%& $%&
( ) ⊆ ( " )
$%& $%&
( ) ⊆ ( ! ! )
( ! ! ) ⊆ ( )
( ) ⊆ ( ! )
' ( ' (
(! " ! ) ⊆ ( ! )
' ( ' (
Página 2 de 2
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 1
Se cuenta con una base de datos relacional con información sobre los campeonatos mundiales de
fútbol que incluye el año y lugar en que se realizaron y los equipos que participaron.
Con relación a los equipos se almacena el nombre y la cantidad de campeonatos que ganó.
Nota: como sólo se consideran los campeonatos mundiales el año determina el campeonato, sin
necesidad del lugar.
c. ¿Cuántos campeonatos han ganado cada uno de los equipos que perdieron en el
campeonato del 86 con el primero de la serie de Uruguay?
Ejercicio 2
La siguiente base de datos relacional describe ciertas materias dictadas en una hipotética
universidad:
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 1 de 6
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Parte 1
Resolver las siguientes consultas en álgebra relacional. En caso de que alguna de las consultas
no sea expresable, justificar adecuadamente el por qué.
a. Encontrar todos los salones usados por cursos con más de 100 alumnos inscriptos.
b. Encontrar los nombres de los docentes que no están asignados a ningún curso.
c. Encontrar los nombres de todos los cursos asignados a docentes del departamento de
‘Programacion’.
d. Encontrar todos los pares de códigos de cursos que tienen una previatura en común.
Nota: si el par (c1,c2) aparece en la respuesta, el par (c2,c1) no debe aparecer; ni tampoco el
par(c1,c1).
f. Encontrar la cantidad de inscriptos total en todos los cursos asignados a Speedy González.
g. Mostrar los códigos y cantidad de inscriptos de todos los cursos cuya cantidad de inscriptos sea
menor que el promedio.
h. Mostrar los códigos de todos los cursos que se dictan en algún salón donde se dicta el curso
con código ‘CSC434’.
i. Encontrar los nombres de los docentes que dictan cursos que se dictan en 2 o más salones.
j. Encontrar los códigos de todas las previas inmediatamente anteriores al curso con
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 2 de 6
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
código ‘CSC444’.
k. Encontrar los códigos de todos los cursos que deben ser aprobados antes de poder cursar
‘CSC434’.
l. Mostrar para cada instructor el total de inscriptos en los cursos que tiene asignados.
Parte 2
En caso de que sea correcta demostrarlo y en caso contrario dar un contraejemplo, indicar qué resuelve
la expresión planteada y dar una solución correcta a la consulta original.
Ejercicio 3
La primera relación indica los bares que cada bebedor visita, la segunda la cerveza que sirve
cada bar, y la tercera las cervezas que le gustan a cada bebedor.
a. ¿Qué bares sirven alguna cerveza que le gusta al bebedor Juan Fernández?
b. ¿Cuáles son los bebedores que frecuentan un bar que sirve al menos alguna cerveza que les
guste?
c. ¿Cuáles son los bebedores que solo frecuentan bares que sirven alguna cerveza que les
gusta? (Asumir que a cada bebedor le gusta al menos una cerveza y frecuenta al menos un
bar)
d. ¿Cuáles son los bebedores que no frecuentan ningún bar que sirva una cerveza que les guste?
(Asumir lo mismo que en c.)
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 3 de 6
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 4
Se posee información sobre una empresa que tiene distintos locales con maquinitas.
Los datos de cada local son: su identificación (#local), dirección, la cantidad de maquinitas que
posee, el promedio diario de fichas que vende y el valor de la ficha; y se encuentran en el
esquema relación:
- LOCALES (#local, dirección, cantidad_maq, prom_fichas, valor_ficha )
Los datos de cada juego son: su identificación (#juego), su origen y su tipo (ej.: deportivo,
bélicos, etc.); y se encuentran en el esquema relación:
- JUEGOS (#juego, origen, tipo)
Los datos sobre cada maquinita son: su identificación (#maquina), la identificación del juego
que tiene y la identificación del local en el que se encuentra; y se encuentran en el esquema
relación:
- MAQUINAS (#maquina, #juego, #local )
Con la información almacenada en los esquemas relacionales anteriores resolver mediante operaciones
de Álgebra Relacional las siguientes consultas:
a. Las parejas (identificación del local, promedio de fichas del local) tal que entre los juegos del
local estén todos los juegos de origen "JAPONES".
b. Identificación de los locales que tienen por lo menos un juego de cada uno de los tipos de juego
relacionados con los juegos de origen "COREANO". Observar que no necesariamente los
locales solución tienen algún juego de origen "COREANO".
d. Identificación de los locales que tienen exactamente los mismos juegos y distinto promedio de
fichas que el local con #local 28.
Ejercicio 5
Sean las siguientes tablas pertenecientes a una base de datos:
Proveedores:
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 4 de 6
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
a. Obtener los números de los proveedores que proveen a los proyectos número 1 y al mismo
tiempo al proyecto número 2.
b. Obtener los números de proveedores que proveen al proyecto número 1 de alguna parte roja.
c. Obtener los números de los proveedores que proveen con partes rojas a algún proyecto de
Londres o alguno de París.
d. Dar las parejas de ciudades, tales que un proveedor de la primera provee a un proyecto de la
segunda.
e. Dar todas las triplas (ciudad, #par, ciudad), donde un proveedor de la primera ciudad provee
con la parte especificada a un proyecto de la segunda ciudad, con la condición de que las
ciudades no deben ser la misma.
f. Obtener todos los números de partes tales que no hay otra parte con peso menor.
g. Dar los números de los proyectos provistos solamente por el proveedor número 9.
h. Dar los nombres de los proveedores que proveen alguna parte (pero la misma) a todos los
proyectos.
i. Dar los nombres de los proveedores que solo proveen una parte.
Ejercicio 6
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 5 de 6
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
En este esquema no existen tablas vacías y se cumplen las siguientes dependencias de inclusión:
y la siguiente restricción:
1) Identificación de los pacientes tales que existe algún medicamento indicado para cada uno de
los síntomas reportados por el paciente.
Fuente: Fundamentos de Bases de Datos 2010. Ejercicio Primer Parcial – Fing - Udelar
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 6 de 6
Tecnólogo en Informática - Base de Datos 1 - Solución Práctico 3
Ejercicio 3
La primera relación indica los bares que cada bebedor visita, la segunda la cerveza que sirve cada bar, y la
tercera las cervezas que le gustan a cada bebedor. Expresar mediante operaciones de álgebra relacional los
requerimientos:
a. ¿Qué bares sirven alguna cerveza que le gusta al bebedor Juan Fernández?
b. ¿Cuáles son los bebedores que frecuentan un bar que sirve al menos alguna cerveza que les guste?
c. ¿Cuáles son los bebedores que solo frecuentan bares que sirven alguna cerveza que les gusta?
(Asumir que a cada bebedor le gusta al menos una cerveza y frecuenta al menos un bar)
Parejas (bebedor, bar) tal que el bar sirve una cerveza que al bebedor le gusta.
B = FRECUENTA – A
Devuelve las parejas (bebedor, bar) tal que el bebedor frecuenta el bar y en dicho bar no sirven cerveza que le
gusta al bebedor (ninguna de las que le gusta).
d. ¿Cuáles son los bebedores que no frecuentan ningún bar que sirva una cerveza que les guste?
(Asumir lo mismo que en c.)
SOL = Πbebedor (FRECUENTA) – Πbebedor (FRECUENTA >< Πbebedor, bar (SIRVE >< LEGUSTA))
$1 = $3 ∧ $2 = $4 $2 = $4
Esta consulta devuelve los bebedores que no frecuentan bares que sirven alguna cerveza que les gusta.
Página 1 de 3
Tecnólogo en Informática - Base de Datos 1 - Solución Práctico 3
Ejercicio 6
En un centro clínico se dispone de información de apoyo a los médicos de la misma. La información se
encuentra almacenada en una base de datos con los siguientes esquemas relación:
En este esquema no existen tablas vacías y se cumplen las siguientes dependencias de inclusión:
1) Identificación de los pacientes tales que existe algún medicamento indicado para cada uno de los
síntomas reportados por el paciente.
B = ∏idpaciente (REPORTA * A)
Identificación de los pacientes que reportan por lo menos un síntoma para el cual no hay medicamentos
indicados
Página 2 de 3
Tecnólogo en Informática - Base de Datos 1 - Solución Práctico 3
C = ∏$1,$2 (A >< B)
$1=$4 ∧ $2=$5 ∧ $6≤$3
Paciente medicamento tal que el medicamento esta indicado para un síntoma del paciente pero esta
contraindicado en una dosis menor o igual a la indicada.
SOL = ∏$1, $2 A - C
Página 3 de 3
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Práctico 4 – SQL
Ejercicio 1
Dada la base de datos del ejercicio 2 del práctico 2:
En ASIGNADOS
docente: son cadenas de no más de 30 caracteres
∏ codigo (ASIGNADOS) ⊆ ∏ codigo (CURSOS)
c. Actualizar el nombre del curso con código CSC 324 a "Arquitectura de Computadores".
d. Actualizar los datos de la tabla de cursos de forma de corregir un error del ingreso para lo que es
necesario multiplicar por 1.5 los inscriptos a todos los cursos.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 1 de 8
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
1. Obtener el nombre de los cursos que tienen horarios de dictado en los salones
107, 108, 202, 401 o 105.
2. Obtener el código de los cursos que tienen como prerrequisito (inmediato) cursos del
primer semestre (o sea, que su código comienza con CSC 1....).
3. Obtener las parejas (Nombre_curso, horasdocentes) donde para cada curso se calcula
las horas docentes a dedicar asumiendo que se dedican 5 horas por inscripto al curso.
5. Encontrar la cantidad de inscriptos total en todos los cursos dictados por Speedy
González.
6. Obtener los códigos y cantidad de inscriptos de todos los cursos cuya cantidad de
inscriptos sea menor que el promedio.
8. Obtener la cantidad de inscriptos para aquellos cursos a los que fueron asignados
más de 5 docentes.
Ejercicio 2
Considerando los siguientes esquemas relación:
Donde:
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 2 de 8
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
a. Nombre y ciudad donde viven las personas que trabajan en la compañía de nombre
INCA.
c. Nombre y dirección de las personas que viven en la misma ciudad en la cual está ubicada
la compañía para la cual trabaja o viven en la misma ciudad que su gerente.
e. Nombre y dirección de las personas que viven en la misma ciudad que su gerente y que no
viven en la ciudad de la compañía RAMF.LTDA.
f. ¿Cómo deberá modificarse el esquema relacional para que una compañía pueda estar
ubicada en varias ciudades? En ese nuevo esquema, encontrar los nombres de las
compañías que están ubicadas en todas las ciudades donde está ubicada la compañía
FARM.SA.
Ejercicio 3
Debido a la desorganización reinante en una empresa de plaza, la mesa directiva de la misma
decidió nombrar a un encargado de organización. Este encargado decidió automatizar el
sistema de control de asignaciones de tareas a secciones y empleados de la empresa. Para
esto creó una base de datos con los siguientes esquemas relación:
Una tupla (p,s) de esta relación, significa que la tarea con código p debe realizarse inmediatamente
antes que la tarea con código s.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 3 de 8
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Una tupla (fun, tar, fe) de esta relación representa que al funcionario de número "fun" se le ha
asignado la tarea con código "tar" en la fecha "fe".
b. Obtener los nombres y año de ingreso de los funcionarios que tienen algún sueldo mayor
que algún sueldo del funcionario con número 812.
c. Obtener las parejas de números de funcionarios tales que el primero tiene asignada una
tarea que debe realizarse inmediatamente antes que una tarea asignada al segundo
funcionario.
d. Obtener los nombres de los funcionarios tales que en la misma fecha le asignaron más de
una tarea.
e. Obtener los códigos, nombre y duración de las tareas que están obligadas a realizar la
sección con nombre "PROMOCION" y/o la sección con nombre "COMPUTOS".
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 4 de 8
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
g. Obtener los datos de las tareas inmediatamente previas e inmediatamente sucesoras de las
tareas de mayor duración.
h. Hallar los nombres de los funcionarios que ingresaron antes del año 1986 y sólo fueron
asignados a tareas cuya duración no supera los 60 días.
i. Obtener los datos de las secciones, tal que cada sección está obligada a realizar todas las
tareas con nombre "URGENTE1".
j. Obtener los sueldos totales de los funcionarios que tienen la mayor carga horaria total.
k. Obtener los datos de las tareas asignadas a funcionarios que trabajan en secciones que
están en locales donde hay un sólo teléfono interno para todo el local.
Ejercicio 4
Una importante empresa de venta de pinturas con varias sucursales decide formar una sección
que se encargue de realizar las combinaciones de colores requeridas por los clientes. A su vez
mantienen una base de datos con los pedidos para poder obtener estadísticas acerca de las
mezclas más frecuentes.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 5 de 8
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Representa las solicitudes de mezclas realizadas por las diferentes sucursales. Sólo se solicitan
mezclas, no colores puros. IdSol es un identificador. Fecha es la fecha en que se realizó la
solicitud, y sucursal la sucursal de la empresa desde la que se hizo la misma. IdC es el
identificador de color y tamaño es la cantidad de litros de la mezcla pedida.
a. Dar las marcas, que entre sus productos, tienen todos los colores necesarios para
realizar todas las mezclas.
c. Dar la lista de mezclas mates solicitadas más de 5 veces, y la cantidad total de litros
solicitados de cada una.
d. Dar la lista de colores que pueden prepararse mezclando, únicamente, colores del
producto P13.
Ejercicio 5
Una automotora que se dedica a la comercialización de autos usados utiliza una base de
datos con el siguiente esquema:
∏ ciCliente(VENTAS) ⊆ ∏ ciCliente(CLIENTES)
∏ nroChasis(VENTAS) ⊆ ∏ nroChasis(AUTOMOVILES)
∏ ciCliente(SE_INTERESA) ⊆ ∏ ciCliente(CLIENTES)
∏ nroChasis(SE_INTERESA) ⊆ ∏ nroChasis(AUTOMOVILES)
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 6 de 8
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
a. Cédula de identidad, nombre y teléfono (ordenados por nombre) de los clientes que demostraron
interés sobre todos los autos para los que hay alguna venta por más de U$S 8000.
b. Número de chasis de automóviles marca “Ford” por los cuales han demostrado interés más de 10
clientes pero que no han sido vendidos.
Ejercicio 6
La información se encuentra almacenada en una base de datos con los siguientes esquemas
relación:
y la siguiente restricción:
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 7 de 8
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
a. Parejas nombre del paciente, descripción del síntoma tal que el paciente es el único que reporta ese
síntoma.
b. Nombre de los síntomas junto con la cantidad de medicamentos indicados para ellos, para los
síntomas que han sido reportados por más de 10 pacientes.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 8 de 8
Tecnólogo en Informática – Base de Datos 1 – Solución Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 2
Donde:
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 1 de 6
Tecnólogo en Informática – Base de Datos 1 – Solución Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
a. Nombre y ciudad dónde viven las personas que trabajan en la compañía de nombre
INCA.
c. Nombre y dirección de las personas que viven en la misma ciudad en la cual está ubicada la compañía para la cual
trabaja o viven en la misma ciudad que su gerente.
select t.nombreEmp
from TRABAJA as t
where t.nombreEmp not in
(select nombre_emp
from TRABAJA as t
where t.nombreComp = ‘AMIP’)
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 2 de 6
Tecnólogo en Informática – Base de Datos 1 – Solución Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
e. Nombre y dirección de las personas que viven en la misma ciudad que su gerente y que no viven en la ciudad de la
compañía RAMF.LTDA.
f. ¿Cómo deberá modificarse el esquema relacional para que una compañía pueda estar ubicada en varias ciudades? En
ese nuevo esquema, encontrar los nombres de las compañías que están ubicadas en todas las ciudades donde está
ubicada la compañía FARM.SA.
select c.nombreComp
from COMPAÑIA as c1
where not exists
(select * From COMPAÑIA as c2 –las que no están en la ciudad que está
FARM
where c2.nombreComp = ‘FARM.SA’
and (c1.nombreComp, c2.ciudad) not in (select * from COMPAÑÍA)
)
Ejercicio 3
Debido a la desorganización reinante en una empresa de plaza, la mesa directiva de la misma decidió nombrar a un
encargado de organización. Este encargado decidió automatizar el sistema de control de asignaciones de tareas a
secciones y empleados de la empresa. Para esto creó una base de datos con los siguientes esquemas relación:
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 3 de 6
Tecnólogo en Informática – Base de Datos 1 – Solución Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Una tupla (p,s) de esta relación, significa que la tarea con código p debe realizarse inmediatamente antes que la tarea
con código s.
Una tupla (fun, tar, fe) de esta relación representa que al funcionario de número "fun" se le ha asignado la tarea con
código "tar" en la fecha "fe".
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 4 de 6
Tecnólogo en Informática – Base de Datos 1 – Solución Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
La mesa directiva de la empresa, le propone a usted que resuelva las siguientes consultas en SQL. En caso de ser
necesario utilice vistas para su resolución.
a. Obtener el código, el nombre y la duración de las tareas que se deben realizar inmediatamente antes de la tarea con
código "c42".
b. Obtener los nombres y año de ingreso de los funcionarios que tienen algún sueldo mayor que algún sueldo del
funcionario con número 812.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 5 de 6
Tecnólogo en Informática – Base de Datos 1 – Solución Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
d. Obtener los nombres de los funcionarios tales que en la misma fecha le asignaron más de una tarea.
select f.nomF
from FUNCIONARIOS as f, ASIGNACION as a
where f.nroF = a.nroF
group by f.nroF, f.nomF, a.fAsig
having count (∗) > 1
e. Obtener los códigos, nombre y duración de las tareas que están obligadas a realizar la sección con nombre
"PROMOCION" y/o la sección con nombre "COMPUTOS".
h. Hallar los nombres de los funcionarios que ingresaron antes del año 1986 y sólo fueron asignados a tareas cuya
duración no supera los 60 días.
select f.nomF
from FUNCIONARIOS as f, ASIGNACION as a, TAREAS as t
where f.nroF = a.nroF and t.codT = a.codT and
t.duracion < 60 and f.aaIng < 1986
and not exists(select ∗
from ASIGNACION as a1, TAREAS as t1
where a1.nroF = f.nroF and a1.codT = Tt1.codT and t1.duracion >= 60)
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 6 de 6
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 1
Ejercicio 2
Sea el siguiente esquema de base de datos, donde se cumplen las dependencias funcionales indicadas
entre llaves:
select count(*)
from FABS, VENDE
where FABS.#f=VENDE.#f and #f=4;
a. Sabiendo que no hay tuplas repetidas en las tablas y que el resultado de la consulta anterior es 10,
¿Cuál es el resultado de las siguientes consultas?
1. select count(*)
from FABS where #f=4;
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 1 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
3. select #f,#p,sum(precio)
from VENDE
group by #f,#p
having count(*) > 1;
b. ¿Qué consulta debe realizarse para saber si no se cumple la dependencia funcional #p → descripción
en PROD y cómo debe interpretarse?
select nombre
from FABS, VENDE
where FABS.#f = VENDE.#f and #p = 10;
es:
Dar el resultado de
d. ¿Cual es el resultado de la consulta de la parte c si las tuplas (f1 p1 r1) y (f1 p1 r2) son válidas en
VENDE?
Ejercicio 3
Sean las siguientes definiciones alternativas de dependencia funcional. Sea R(X, Y, Z), donde X, Y, Z
son conjuntos no vacíos de atributos. Indicar cuales son correctas y cuales no.
c. ∀r de R, ∀ t, u ∈ r, t[XY] = u[XY].
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 2 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 4
Indicar cuales de las siguientes derivaciones de dependencias funcionales son válidas demostrando
mediante las reglas de inferencia para dependencias funcionales o usando un contraejemplo.
a. { X →Y, Z → Y } |- XZ → Y
b. { XZ → Y } |- X → Y
c. { XZ → Y, X → Z } |- X → Y
d. { Z → W , X →Y } |- XZ →YW
e. { XY → Z, Z → X } |- Z → Y
f. { X → Y, Y → Z } |- X → YZ
g. { X → Y, W → Z, W ⊆ Y } |- X → Z
h. { XY →Z, Y →W } |- XW →Z
Ejercicio 5
a. A+
b. B+
c. (CD ) +
d. (BEI) +
e. (BE) +
f. (HA) +
g. (ABH) +
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 3 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
a. X+ U Y + = XY +
b. X + U Y + ⊆ XY +
c. XY + ⊆ X + U Y +
Fuente: Fundamentos de Bases de Datos 2011 Práctico 5 – Fing – Udelar
Ejercicio 6
Sea F = { AB → C, C → D, B → C, C → E, HB → D }
a. B → D
b. E → D
c. C → DE
d. A → C
e. HA → CD
f. CD → E
g. A → D
Ejercicio 7
1. ( AD) +
2. (D) +
3. (BC ) +
4. (EB ) +
5. (B ) +
6. (EBC ) +
c. ¿Alguno es clave?
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 4 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 8
Para cada uno de los siguientes esquemas relación y sus correspondientes conjuntos de dependencias
funcionales, hallar todas las claves. Justificar la respuesta.
a. R1(A, B, C, D, E, G, H) y
F1 = {AB → CDE, C → A, D → E, H → E, HE → G }
b. R2(A, B, C, D, E, G) y
F2 = { B → CD, ACD → Β, C → AE }
c. R3(A,B,C,D,E,G,H,I) y
F3 = {A → B, B → C, E → I, EGC → B, G → H , B → A }.
Ejercicio 9
Decir cuáles de los conjuntos de dependencia funcionales son equivalentes a F. En caso de no serlo dar
relaciones de R que ejemplifiquen este hecho.
Ejercicio 10
Ejercicio 11
Una inmobiliaria desea construir una base de datos con las casas que tiene para alquilar, los clientes y
los propietarios. De cada casa se conoce un código que la identifica, su dirección, la cédula de su
propietario, la cantidad de dormitorios, la cantidad de baños y el alquiler mensual.
De los clientes se conoce la cédula de identidad, su nombre, su ultima dirección conocida, su último
teléfono conocido (uno solo) y la cédula del propietario que le sale de garantía (uno solo). De los
propietarios se conoce su cédula, su dirección y su teléfono (único). Para cada casa alquilada se
establece un contrato que tiene un número que lo identifica y registra la cédula del cliente, el código de
la propiedad y la fecha de inicio y de fin del contrato. En una fecha de inicio de un contrato, no se puede
alquilar una misma casa a más de un cliente.
Identificar todas las dependencias funcionales que se cumplen en la realidad descripta.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 5 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
Ejercicio 5:
a. (A)+ = { A }
b. (B)+ = { B, G, A, E, C, H, D, I }
c. (CD) + = { C, D, B, G, A, E, H, I }
d. (BEI) + = { B, E, I, G, A, C, H, D }
e. (BE) + = { B, E, G, A, C, H, D, I }
f. (HA) + = { H, A, D, I }
g. (ABH) + = { A, B, H, C, D, I, B , E }
Ejercicio 6:
Ejercicio 7:
c. El conjunto que podría ser clave es (EB), pero primero hay que verificar que no
contiene una clave.
(E) + = { E, A, C } no es clave.
(B) + = { B } no es clave
(EB) es clave
Ejercicio 9:
F = { AB C, CDE, E C }
a. F1 = { AB CDE, E CD, C D }
No son equivalentes.
(C E) F1+
F es minimal sii
equivalente a F
Ejercicio 1
Sea el esquema relación R(A,B,C,D,E,G) y ρ = { (AB), (CDE), (EG), (BC) } una descomposición de R.
Indicar en cuáles de los siguientes conjuntos de dfs, la descomposición ρ tiene join sin pérdida.
Si no tiene jsp dar relaciones que ejemplifiquen el hecho.
Ejercicio 2
Sea el esquema relación R(A,B,C,D,E,G) y F = { A →BC, C →DG, BD →E, AB →D, BC →G } el
conjunto de dependencias funcionales sobre R.
Ejercicio 3
Sean R(A,B,C,D) y F = { A →B, B →C, A →D, D →C }.
Sea la descomposición ρ = {(AB), (AC), (BD)}.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 1 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 4
Dado un esquema relación R y F un conjunto de dfs sobre R.
Demostrar o dar contraejemplo para las siguientes afirmaciones:
a. Si una descomposición de R tiene join sin pérdida respecto a F, entonces preserva las dfs de F.
b. Si una descomposición de R preserva las dfs de F, entonces tiene join sin pérdida con respecto
a F.
Ejercicio 5
Ejercicio 6
a. La descomposición ρ está en una determinada forma normal si algún esquema de ρ está en esa
forma normal.
a. La descomposición ρ está en una determinada forma normal si a lo sumo hay un esquema de
ρ que no está en esa forma normal.
b. La descomposición ρ está en una determinada forma normal si la mayoría simple (la mitad + 1)
de los esquemas de ρ está en esa forma normal.
c. R está en 3NF según F si y solo si R esta en BCNF según F.
d. Si en F no hay dfs transitivas se cumple que: R esta en 3NF según F si y solo si R esta en 2NF
según F.
e. Si en F hay dfs parciales entonces ni R ni ρ están en BCNF.
f. Si en F hay dfs cuya parte izquierda no es superclave de R, entonces ρ no está en
g. BCNF.
h. Si ∀ Ri ∈ ρ se cumple que en cada ∏ Ri (F) las dfs (todas) tienen en su parte izquierda un
conjunto de atributos que son superclave en Ri, entonces ρ está en BCNF.
i. Si se está en las hipótesis anteriores, entonces ρ está en 3NF.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 2 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 7
Ejercicio 8
Sean R un esquema relación y F un conjunto de dfs sobre R.
Para obtener una descomposición de R en BCNF, se aplica el algoritmo visto en el curso. En cierto
momento se detiene el proceso en un paso del algoritmo que no es el final, obteniendo una
descomposición ρ = {R1,..., Rk}.
a. Determinar cuáles de las siguientes afirmaciones son correctas y cuáles no. Justificar la
respuesta.
b. Idem a., pero suponiendo que el proceso se detiene cuando el algoritmo llega al final.
Ejercicio 9
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 3 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 10
Ejercicio 11
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 4 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Ejercicio 12
A su vez el número de la calle y la identificación del plano de la calle y la empresa constructora son
únicos dado el nombre de la calle. El nombre de la calle fue elegido durante el ejercicio de un
intendente, es decir que el nombre del intendente queda determinado por el nombre de la calle. Dado el
nombre y el número de la calle y el nombre del intendente queda determinado el año de inauguración de
la calle.
Se sabe que una identificación del plano de una calle puede describir a distintas calles, pero un plano es
diseñado por una única empresa constructora. Las mismas empresas que se encargaron de diseñar los
planos de las calles, construyeron hospitales y canchas de fútbol. En la construcción de un hospital ó de
una cancha de fútbol designa un único ingeniero responsable. A su vez dichos ingenieros trabajan en
una única empresa constructora.
. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Página 5 de 5
Tecnólogo en Informática – Base de Datos 1 – Práctico
Ejercicio 1:
a.
Ejercicio 2:
Ejercicio 7:
Ejercicio 10:
b. 1. Primer paso, llevar todas las dependencias funcionales a la forma X A, donde A es
un solo atributo.
F1 = { ABC, ABE, AB D, C A, D E, EHG }
2. Segundo paso, eliminar atributos redundantes a la izquierda.
(A)+ = {A}B no es redundante en AB C, AB E y AB D
(B) + = {B}A no es redundante en ABC, AB E y AB D
(E) + = {E}H no es redundante en EH G
(H) + = {H}E no es redundante en EH G
F2 = F1
3. Tercer paso, eliminación de dependencias redundantes
F' = F2 { AB C }
(AB)+F, = {A,B,E,D} AB C no es una dependencia redundante en F2
F' = F2 { AB E }
(AB)+F, = {A,B,C,E,D} ABE es una dependencia redundante en F2
F3 = F'
F' = F3 { AB D }
(AB)+F, = {A,B,C} ABD no es una dependencia redundante en F3
F' = F3 { C A }
(C)+F, = {C} C A no es una dependencia redundante en F3
F' = F3 { DE }
(D)+F, = {D} D E no es una dependencia redundante en F3
F' = F3 { EH G }
(EH)+F, = {E,H} EHG no es una dependencia redundante en F3
Se concluye entonces que
Fminimal = F3 = { ABC, AB D, C A, DE, EH G }
c. Sea la descomposición:
R(A,B,C,D,E,H,G) F = { AB CED, C , D, EHG}
R1(A,B,D,E) FR1 = { AB D, D E }
R2(A,B,C,H,G) FR2 = { AB C, C A }
1. ¿ Es una descomposición con join sin pérdida ?
R1 R2 = (AB), R1 R2 = (DE) y R2 R1 = (CHG)
ABDE F+ La descomposición es con join sin pérdida.
2. ¿ Preserva las dependencias ?
R1(F) = FR1 = { ABD, DE }
R2(F) = FR2 = { ABC, C A }
K = { AB D, DE } { AB C, C A }
Conserva las dependencias?, considero la dependencia EH G.
(EH)+K = { E,H }
por lo que al no estar G en el resultado de la clausura, no se conservan las dependencias.
3. ¿ En qué forma normal se encuentran R1 y R2 ?
R1(A,B,D,E), (AB) única clave.
DE, D no superclave y E no primo viola 3NFR1 está en 2NF pues no es
dependencia parcial
R2(A,B,C,H,G), { (ABHG) ,(CBHG) } son claves
ABC , donde (AB) no es superclave viola BCNF. C primo y en C A A primo
R2 está en 3NF
d.
1. Fminimal = F3 = { ABC, AB D, C A, DE, EH G }
2. Se juntan en un único esquema relación todas las dependencias de la forma XAi, para
formar R(X,A1,A2,...,An)
Obtenemos: { R1(A,B,C,D) , R2(C,A) , R3(D,E) , R4(E,H,G) }
3. Se colocan todos los atributos que no se colocaron antes, en un único esquema de
relación.
No se da en este caso. Podemos simplificar la descomposición, quitando los subesquemas
incluidos dentreo de otros.
Obtenemos: { R1(A,B,C,D) , R2(D,E) , R3(E,H,G) }
4. Si ninguno de los subesquemas contiene una clave de R, se agrega un esquema relación
mas que contenga los atributos que forman una clave de R.
Se agrega un esquema con la clave de R,
R5(B,H,A)
Se obtiene entonces:
R(A,B,C,D,E,H,G) F = { AB CED, C , D, EHG}
R1(A,B,C,D) FR1 = { AB CD, C }
R2(D,E) FR2 = { D }
R3(E,G,H) FR3 = { EHG}
R4(A,B,H) FR4 = { }
3NF = { (ABCD), (DE), (EGH), (BHA) }
e. En la descomposición anterior sólo el esquema R1(A,B,C,D) está en 3NF, los demás
están en BCNF.
R1(A,B,C,D) está en 3NF y no en BCNF, ya que la dependencia C A viola BCNF,
porque C noes superclave.
Por lo tanto descompongo está en dos:
R1(A,B,C,D) FR1 = { AB CD, C }, Claves: (AB, BC) , C A viola BCNF
R11(B,C,D) FR11 = { } , Clave: (BCD)
R12(C,A) FR12 = { C A } , Clave: (C)
BCNF = { (BCD), (CA), (DE), (EGH), (BHA) }
Aclaramos que:
Práctico 3
Álgebra Relacional
OBJETIVOS
Ejercicio 1
La siguiente base de datos relacional describe ciertos cursos dictados en una hipotética uni-
versidad:
a. Resolver las siguientes consultas en álgebra relacional. En caso de que alguna de las con-
sultas no sea expresable, justificar adecuadamente el motivo.
I. Encontrar todos los salones usados por cursos con más de 100 alumnos inscriptos.
II . Encontrar los nombres de los docentes que no están asignados a ningún curso.
III . Encontrar los nombres de todos los cursos asignados a docentes del departamento de
‘Programación’.
Página 1
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
IV . Encontrar todos los pares de códigos de cursos que tienen una previatura en común.
Nota: si el par (c1,c2) aparece en la respuesta, el par (c2,c1) no debe aparecer; ni
tampoco el par(c1,c1).
V. Mostrar los códigos y cantidad de inscriptos de todos los cursos cuya cantidad de
inscriptos sea menor que el promedio.
VI . Encontrar los códigos de todas las previas inmediatamente anteriores al curso con
código ‘1911’.
VII . Mostrar los códigos de todos los cursos que se dictan en algún salón donde se dicta el
curso con código ‘1027’.
VIII . Encontrar los nombres de los docentes que dictan cursos que se dictan en 2 o más
salones.
b. Se pretende resolver la siguiente consulta: Encontrar los nombres de todos los docentes que
dictan cursos que se dictan en exactamente un salón.
Se propone la siguiente solución:
Ejercicio 2 (*)
Se cuenta con una base de datos relacional con información sobre los campeonatos mundia-
les de fútbol que incluye el año y lugar en que se realizaron y los equipos que participaron.
Para cada equipo se almacena su nombre y la cantidad de campeonatos que ganó.
Nota: como sólo se consideran los campeonatos mundiales el año determina el campeo-
nato, sin necesidad del lugar.
Página 2
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
b. Dada la siguiente consulta en cálculo relacional de tuplas escribir una consulta en Álgebra
Relacional equivalente:
R = {t.nomEquipo/P ART ICIP A(t) ∧ (∃p)(P ART ICIP A(p) ∧ p.nomEquipo = U ruguay
∧ p.anio = t.anio ∧
p.serie = t.serie ∧ p.anio = 2010
)
}
En esta base de datos no hay tablas vacías y se cumplen las siguientes restricciones de
inclusión:
{t.#prov / P roveen(t)} ⊆ {t.#prov / P roveedores(t)}
{t.#prod / P roveen(t)} ⊆ {t.#prod / P roductos(t)}
{t.#proy / P roveen(t)} ⊆ {t.#proy / P royectos(t)}
a. Obtener los números de los proveedores que proveen al proyecto número 1 y al proyecto
número 2. (Deben proveer a los dos proyectos).
b. Obtener los números de proveedores que proveen al proyecto número 1 de algún producto
de color “rojo”.
c. Obtener los números de los proveedores que proveen productos de color “rojo” a algún
proyecto de “Mercedes” o alguno de “Dolores”.
Página 3
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
d. Dar las parejas de ciudades, tales que un proveedor de la primera provee a un proyecto de
la segunda.
e. Dar todas las ternas (ciudad, #prod, ciudad), donde un proveedor de la primera ciudad
provee con el producto especificado a un proyecto de la segunda ciudad, con la condición
de que las ciudades no deben ser la misma.
f. Obtener todos los números de producto tales que no hay otro producto con peso menor.
g. Dar los números de los proyectos provistos solamente por el proveedor número 9.
h. Dar los nombres de los proveedores que proveen el mismo producto a todos los proyectos.
i. Dar los nombres de los proveedores que sólo proveen un producto y que proveen dicho
producto al menos a un proyecto.
Ejercicio 4
Considere la realidad descripta en el ejercicio 2 del práctico 2, donde se utiliza la siguiente
base de datos de una compañía aérea:
En esta base de datos se cumplen las siguientes restricciones de inclusión y no hay tablas
vacías:
a. Número de los pilotos con menos de 10 vuelos que pilotearon a todos los aviones del tipo
“Boeing 737” de la compañía.
b. Número de los pilotos con la máxima cantidad de vuelos.
c. Número de los pilotos con más de 30 vuelos que pilotearon sólo aviones de tipo “DC-10”.
d. Números de los pilotos que solo realizaron vuelos que tienen a “Montevideo” como ciudad
de origen o ciudad de destino.
e. Número de vuelo de los vuelos con distancia mayor a 7000 km que nunca fueron realiza-
dos por pilotos con 20 vuelos o más.
Página 4
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
f. Parejas número de piloto, número de avión tal que todos los vuelos realizados por el piloto
fueron en ese avión.
Ejercicio 5
Considere la realidad descripta en el ejercicio 3 del práctico 2, donde se utiliza la siguiente
base de datos de locales de maquinitas:
Página 5
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
c. Dada la siguiente consulta en cálculo relacional dar una expresión en álgebra relacional
equivalente:
R = {t.#juego/JU EGOS(j) ∧ (∀l)(LOCALES(l) ∧ l.valorF icha = 20
→ (∃m)(M AQU IN AS(m) ∧ m.#juego = t.#juego ∧
m.#local = l.#local
)
)
}
d. Dada la siguiente consulta en álgebra relacional dar una expresión en cálculo relacional
de tuplas equivalente:
RES = A − B
A = Π#local (σtipo=Accion (M AQU IN AS ∗ JU EGOS))
B = Π#local (σtipo=Aventura (M AQU IN AS ∗ JU EGOS))
Ejercicio 6
Considere la realidad descripta en el ejercicio 4 del práctico 2, donde se utiliza la siguiente
base de datos de una compañía de construcciones:
En esta base de datos se cumplen las siguientes restricciones de inclusión y no hay tablas
vacías:
ΠnroObrero (T RABAJA) ⊆ ΠnroObrero (P ERSON AL)
ΠnroObra (T RABAJA) ⊆ ΠnroObra (OBRAS)
ΠcodT area (T RABAJA) ⊆ ΠcodT area (T AREAS)
Resolver las siguientes consultas en álgebra relacional:
a. Dar las ternas (nroObra, codTarea, nroObrero) tales que la tarea corresponde a la obra y
el obrero trabajó en la obra pero no realizó (en dicha obra) la tarea mencionada.
b. Dar los nombres de los obreros que trabajaron en todas las obras que tienen como director
a “AL GUT”.
c. Dar las parejas de números de obreros que trabajan en la misma obra y en la misma tarea.
No debe pertenecer a la solución un obrero con si mismo.
d. Dar las parejas de números de obreros que siempre realizaron las mismas tareas en todas
las obras donde trabajaron juntos.
e. Nombre de los obreros de especialidad “CARPINTERIA” que solo realizaron tareas con
duración menor a 5 en todas las obras de tipo “RECONSTRUCCIÓN”
Página 6
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 7 (*)
Considere la realidad descripta en el ejercicio 7 del práctico 2, donde se utiliza la siguiente
base de datos de una empresa de pinturas:
a. Dar relaciones entre expresiones algebraicas que expresen las restricciones indicadas en la
descripción de las tablas (por ejemplo: que los colores que participan en las mezclas son
colores puros.)
Página 7
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Práctico 5
Diseño Relacional (Dependencias Funcionales)
OBJETIVOS Trabajar sobre los siguientes conceptos fundamentales del diseño relacional:
Dependencias funcionales
Aclaración:
Ejercicio 1
Sea R(A,B,C,D,E) con F = { A → B, B → D, C → E, E → B }.
Ejercicio 2 (*)
Sean las siguientes definiciones alternativas de dependencia funcional.
Sea R(X, Y, Z), donde X, Y, Z son conjuntos no vacíos de atributos.
Indicar cuales son correctas y cuales no. Justifique su respuesta.
c. ∀r de R, ∀ t, u ∈ r, t[XY] = u[XY].
Página 1
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 3 (*)
Se cuenta con una tabla con esquema R(A, B, C, D) y la siguiente consulta:
select count(distinct C)
from R
where exists (
select A
from R Aux
where Aux.A = R.A and Aux.B <> R.B
)
Si se asume que el sistema de bases de datos puede controlar todas las restricciones nece-
sarias, indicar cuales de las siguientes afirmaciones son verdaderas o falsas. Fundamentar las
respuestas.
select count(distinct A)
from R
Ejercicio 4
Sea el siguiente esquema de base de datos, donde se cumplen las dependencias funcionales
indicadas entre llaves:
select count(*)
from FABS, VENDE
where FABS.#f=VENDE.#f and #f=4;
a. Sabiendo que no hay tuplas repetidas en las tablas y que el resultado de la consulta ante-
rior es 10. ¿Cuál es el resultado de las siguientes consultas?
I. select count(*)
from FABS where #f=4;
Página 2
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
II .
select #f, count(*)
from FABS
group by #f
having count(*) > 1;
III .
select #f,#p,sum(precio)
from VENDE
group by #f,#p
having count(*) > 1;
select nombre
from FABS, VENDE
where FABS.#f = VENDE.#f and #p = 10;
es:
nombre
Juan
Juan
d. ¿Cuál es el resultado de la consulta de la parte c si las tuplas (f1 p1 r1) y (f1 p1 r2) son
válidas en VENDE?
Ejercicio 5
Indicar cuales de las siguientes derivaciones de dependencias funcionales son válidas de-
mostrando mediante las reglas de inferencia para dependencias funcionales o usando un
contraejemplo.
a. { X →Y, Z → Y } ` XZ → Y
b. { XZ → Y } ` X → Y
c. { XZ → Y, X → Z } ` X → Y
d. { Z → W , X →Y } ` XZ →YW
Página 3
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
e. { XY → Z, Z → X } ` Z → Y
f. { X → Y, Y → Z } ` X → YZ
g. { X → Y, W → Z, W ⊆ Y } ` X → Z
h. { XY →Z, Y →W } ` XW →Z
Ejercicio 6
Sea R(X, Y, Z) donde X, Y, Z son conjuntos no vacíos de atributos y F un conjunto de depen-
dencias funcionales que se cumplen en R. Demostrar o dar un contraejemplo de los siguientes
enunciados.
X+ U Y+ = (XY)+
X+ U Y+ ⊆ (XY) +
(XY) + ⊆ X+ U Y+
Ejercicio 7 (*)
Sea F = {AB → C, C → D, B → C, C → E, HB → D}, determinar cuales de las siguientes
dependencias funcionales están en F + . Justifique su respuesta.
a. B → D
b. E → D
c. C → DE
d. A → C
e. HA → CD
f. CD → E
g. A → D
Ejercicio 8 (*)
Sea R(A B C D E G) y F = { AB → D, CD → G, E → A, A → C, BG → C, D → A }
c. ¿Alguno es clave?
Página 4
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 9 (*)
Considere un esquema relacional R donde X es un conjunto de atributos de R, A un atributo
de R y existe un conjunto de dependencias funcionales F que se cumplen en R. Demostrar o
dar un contraejemplo de los siguientes enunciados:
d. Si existe X tal que ninguno de los atributos de X está a la derecha de ninguna dependencia
funcional de F, entonces X es clave de R según F y es única.
e. Si existe X tal que ninguno de los atributos de X está a la derecha de ninguna dependencia
funcional de F y X es superclave de R según F, entonces X es clave de R según F y es única.
f. Si existe X tal que todos los atributos de X aparecen a la izquierda de alguna dependencia
funcional de F y X es superclave de R según F, entonces hay una sola clave de R según F y
es X.
g. Si el atributo A solo aparece del lado derecho de las dependencias funcionales, entonces
no aparece en ninguna clave.
Ejercicio 10
Para cada uno de los siguientes esquemas relación y sus correspondientes conjuntos de de-
pendencias funcionales, hallar todas las claves. Justificar la respuesta.
c. R3 (A,B,C,D,E,G,H,I) y F3 = {A → B, B → C, E → I, EGC → B, G → H , B → A }.
Ejercicio 11 (*)
Sea R(A,B,C,D,E) y F = { AB → C, C → DE, E → C }.
Página 5
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
d. F4 = {A → C, B → C,C → DE, E → C}
Ejercicio 12 (*)
Hallar cubrimientos minimales de los siguientes conjuntos:
Ejercicio 13
Se define como cubrimiento superminimal de F al cubrimiento minimal de F que sólo tie-
ne un atributo en la parte izquierda de cada una de las dependencias funcionales que lo compone.
Ejercicio 14
Se desea llevar el control del consumo de agua de una zona balnearia. Cada predio está
identificado, tanto por el número de padrón como por el número de manzana y solar. En
cada solar, pueden existir uno o más contadores de los que se conoce un número, y un tipo
(A, B, C). Un contador nunca es compartido, es decir, no pertenece a más de un predio. Para
cada contador y padrón, se tiene un número de contrato y para cada contrato se conoce la
cédula de identidad de quien realiza el contrato con la empresa. Además cada contrato es
para un único contador. Para cada contador, se conoce los metros cúbicos consumidos en el
mes (de un año). Tenga en cuenta que se mantiene información de varios años.
Para el esquema relación R (P, M, S, C, T, N, I, R, A, E), identificar todas las dependencias
funcionales que se cumplen en la realidad descripta, siendo cada atributo, los que se presen-
tan a continuación.
Ejercicio 15 (*)
Una inmobiliaria desea construir una base de datos con las casas que tiene para alquilar, los
clientes y los propietarios. De cada casa se conoce un código que la identifica, su dirección,
la cédula de su propietario, la cantidad de dormitorios, la cantidad de baños y el alquiler
mensual. De los clientes se conoce la cédula de identidad, su nombre, su ultima dirección
conocida, su ultimo teléfono conocido (uno solo) y la cédula del propietario que le sale de
garantía (uno solo). De los propietarios se conoce su cédula, su dirección y su teléfono (úni-
co). Para cada casa alquilada se establece un contrato que tiene un número que lo identifica
y registra la cédula del cliente, el código de la propiedad y la fecha de inicio y de fin del
contrato. En una fecha de inicio de un contrato, no se puede alquilar una misma casa a más
de un cliente.
Página 6
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Práctico 6
Diseño Relacional - Descomposiciones y Formas
Normales
Contenido:
Cubrimiento minimal.
Descomposición con join sin pérdida (jsp).
Concepto de clave y superclave.
Descomposición preservando dependencias funcionales.
Formas normales para esquemas relación (definición y algoritmos)
Identificación de dependencias funcionales.
Aclaración:
A, B, C, D, E, G, H, I son considerados atributos atómicos.
W, X, Y, Z son considerados conjuntos de atributos atómicos.
R es considerado un esquema relación.
r es considerado una instancia.
Ejercicio 1 (*)
Sea el esquema relación R(A,B,C,D,E,G) y ρ = { (AB),(CDE), (EG), (BC) } una descomposi-
ción de R. Indicar en cuáles de los siguientes conjuntos de dfs, la descomposición ρ tiene join
sin pérdida. Si no tiene jsp dar relaciones que ejemplifiquen el hecho.
a. F = {A → CB → D, E → G, C → E, D → G, G → C, CD → A}
b. F = {B → D, E → G, C → E, D → G, G → C, GE → D, CD → A}
Ejercicio 2
a. Probar que la relación R(A,B,C) es igual al join de sus proyecciones R1 (A,B), R2 (A,C) sii
la df A→B se cumple en R.
b. Sean R un esquema relación, F conjunto de dfs sobre R y X una clave de R según F. Sea ρ
una descomposición de R tal que existe Ri ∈ ρ y X ⊆ Ri . Demostrar o dar contraejemplo
de que ρ tiene jsp respecto a F.
Ejercicio 3 (*)
Sea el esquema relación R(A,B,C,D,E,G) y F = {A → BC, C → DG, BD → E, AB →
D, BC → G} el conjunto de dependencias funcionales sobre R. Sean las siguientes descom-
posiciones de R:
ρ1 = { (ABC), (CDG), (BDE) }
ρ2 = { (ADE), (ABC), (ADG) }
ρ3 = { (ABCDG), (BE), (DE) }
Para cada una de las descomposiciones anteriores:
Página 1
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 4
Dado un esquema relación R y F un conjunto de dfs sobre R, demostrar o dar contraejemplo
para las siguientes afirmaciones:
a. Si una descomposición de R tiene join sin pérdida respecto a F, entonces preserva las
dependencias funcionales de F.
Ejercicio 5
Sean R un esquema relación, F un conjunto de dfs sobre R y ρ una descomposición de R
obtenida de la siguiente forma:
Ejercicio 6
Sean R un esquema relación, F un conjunto de dependencias funcionales sobre R y ρ una
descomposición de R. Indicar cuáles de las siguientes afirmaciones son correctas. Justificar la
respuesta.
c. La descomposición ρ está en una determinada forma normal si la mayoría simple (la mitad
+ 1) de los esquemas de ρ está en esa forma normal.
Página 2
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
h. Si (∀Ri ∈ ρ) se cumple que en cada ΠRi (F ) todas las dfs tienen en su parte izquierda un
conjunto de atributos que son superclave en Ri , entonces ρ está en BCNF.
Ejercicio 7 (*)
Dado el esquema relación R(A,B,C,D,E,G,H) y el conjunto de dependencias F sobre R.
F = {AB → CE, B → GH, D → A, H → BD}
Para cada una de las siguientes afirmaciones indicar si son verdaderas o falsas. Justificar todas
las respuestas:
Ejercicio 8
Sea el esquema relación R (A,B,C,D,E,G,H). F es un conjunto de dependencias funcionales
que se cumplen en R, tales que en todas ellas el lado derecho de la dependencia esta formado
por un único atributo.
Una persona P1 aplica un primer paso del algoritmo visto en el curso que permite obtener
una descomposición de R en BCNF obteniendo la siguiente descomposición:
ρ1 = (R1 (A, B, C), R2 (A, B, D, E, G, H)).
Una persona P2 aplica un primer paso del mismo algoritmo también sobre R obteniendo
la siguiente descomposición:
ρ2 = (R3 (A, D, G), R4 (D, E, A, B, C, H))
a. Sabiendo que todas las claves de R según F son de un único atributo dar una superclave
de R según F que no tenga más de 4 atributos. Justificar su respuesta.
Página 3
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 9 (*)
Sean R(A,B,C,D,E,G) y F = {AB → CD, A → E, B → G, EG → C}
Sea la descomposición:
ρ = {R1, R2, R3, R4} con: R1 (A, B, C, D), R2 (A, E), R3 (B, G), R4 (E, G, C).
Ejercicio 10
Considere las siguientes partes:
a. Sea R un esquema relación y F conjunto de dfs sobre R. Demostrar que si en R hay una
única clave X según F y R está en 3NF según F entonces R está en BCNF según F.
b. Demostrar que todo esquema relación R con dos atributos está en BCNF según cualquier
conjunto de dependencias sobre ese esquema.
Ejercicio 11
Sean R un esquema relación y F un conjunto de dfs sobre R.
a. Determinar cuáles de las siguientes afirmaciones son correctas y cuáles no. Justificar la
respuesta.
I. La descomposición ρ es con join sin pérdida respecto a F.
II . La descomposición ρ está en BCNF respecto a F.
III . La descomposición ρ está en 3NF respecto a F.
IV . La descomposición ρ está en 1NF respecto a F.
V. La descomposición ρ preserva las dfs de F.
Página 4
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
b. Idem a., pero suponiendo que el proceso se detiene cuando el algoritmo llega al final.
Ejercicio 12 (*)
Sea R(A,B,C,D) y F conjunto de dfs sobre R con un solo atributo a la derecha.
Sean R1 (A,B) y R2 (B,C,D) obtenidos al aplicar un paso del algoritmo para llegar a BCNF con
join sin pérdida.
Q Q
Supongamos que se tiene una relación r de R tal que: r1 = R1 (r) y r2 = R2 (r) son
relaciones para R1 y R2 .
Decir cual debe ser el resultado de las siguientes consultas (si es que se puede predecir dicho
resultado); sino explicar porque no es posible.
a. select count(*)
from R1,R2
where R1.B = R2.B and not exists
(select *
from R
where R1.A = R.A and R1.B = R.B and R2.C = R.C and R2.D = R.D
)
b. select count(*)
from R1
group by B
having count(*) > 1
c. select count(*)
from R1
group by A
having count(*) > 1
d. select count(*)
from R2
group by B
having count(*) > 1
Página 5
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 13
Sea el siguiente algoritmo para descomponer a 3NF con join sin pérdida.
Entrada:
Esquema relación R
F un conjunto de dependencias funcionales sobre R.
Salida:
Pseudocodigo
Rho = {R}
Mientras (existe S perteneciente a Rho que no esta en 3NF)
hacer
finhacer
finMientras
% Al salir del loop todos los esquemas estarán en 3NF
Devolver(Rho)
Página 6
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 14
Sea el esquema relación R(A,B,C,D,E,H,G) con A, B, C, D, E, H y G atributos atómicos y el
conjunto de dependencias funcionales:
F = {AB → CED, C → A, D → E, EH → G}
e. Llevar la descomposición de la parte d a BCNF con join sin pérdida. Indicar si se pierden
dependencias funcionales y cuales.
Ejercicio 15 (*)
Dado el esquema relación R (A,B,C,D) y el conjunto de dependencias F = {AB → CD}
b. Agregue las dependencias que considere necesarias al conjunto F original de forma tal que
la máxima forma normal en que se encuentra R según el nuevo conjunto de dependencias
sea 3NF.
c. Agregue las dependencias que considere necesarias al conjunto F original de forma tal que
la máxima forma normal en que se encuentra R según el nuevo conjunto de dependencias
sea 1NF.
Justifique todas las respuestas.
Ejercicio 16
Una empresa de alquiler de vehículos desea implementar una base de datos con la informa-
ción de su negocio. Se tienen vehículos identificados por su nro de matrícula, y de los que
se conoce su marca, color, modelo y año. También se tienen clientes identificados por su nro
de cédula de identidad, y de los que se conoce su nombre, dirección y teléfono. Un contrato
de alquiler de vehículo está identificado por un número de contrato y se realiza en una fecha
dada entre un cliente y un vehículo, registrándose el período de alquiler en días y el precio
del servicio. Se considera que en una misma fecha no se puede alquilar más de una vez el
mismo vehículo al mismo cliente.
a. Determinar que dependencias funcionales (no triviales) se cumplen.
Página 7
Instituto de Computación Facultad de Ingeniería Fundamentos de Base de Datos 2022
Ejercicio 17 (*)
Un club esta organizando un campeonato de tenis individual. A cada persona que se inscribe
se le pide el nombre, la edad, la cédula y la fecha de vencimiento de la ficha medica. El torneo
se juega en un determinado conjunto de canchas de las que se conoce la dirección de cada
una, un código que las identifica, y si tienen iluminación o no. A partir de estos datos, se
organizan los partidos del campeonato con los siguientes criterios.
A cada partido se le asigna un código que lo identifica dentro del torneo, una hora, una
cancha, dos inscriptos diferentes (local y visitante), una etapa (eliminatorias, octavos, cuar-
tos, semifinales y final) y un ganador. No se pueden jugar dos partidos a la misma hora en la
misma cancha. En cada etapa, cada jugador juega un solo partido.
e. Teniendo en cuenta las dependencias encontradas, indicar en que forma normal se en-
cuentra el esquema que contiene todos los atributos. Si no se encuentra en una forma
normal aceptable, lleve el esquema a la forma normal que considere adecuada. Justifique
las respuestas.
Página 8