0% encontró este documento útil (0 votos)
80 vistas7 páginas

Ejercicios de Álgebra Relacional

1. El documento presenta varios ejercicios de álgebra relacional sobre diferentes bases de datos relacionales, incluyendo ejercicios sobre editoriales, libros, papelerías; programas, usuarios, ordenadores; socios de videoclubes y películas; trabajos agrícolas realizados por máquinas; prácticas universitarias de alumnos; y competiciones ciclistas. Para cada ejercicio, se describen diferentes consultas y se provee su resolución en notación de álgebra relacional.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
80 vistas7 páginas

Ejercicios de Álgebra Relacional

1. El documento presenta varios ejercicios de álgebra relacional sobre diferentes bases de datos relacionales, incluyendo ejercicios sobre editoriales, libros, papelerías; programas, usuarios, ordenadores; socios de videoclubes y películas; trabajos agrícolas realizados por máquinas; prácticas universitarias de alumnos; y competiciones ciclistas. Para cada ejercicio, se describen diferentes consultas y se provee su resolución en notación de álgebra relacional.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TAREA BASE DE DATOS ALGEBRA RELACIONAL

EJERCICIOS DE ÁLGEBRA RELACIONAL

1.- Sean las relaciones siguientes:

EDITORIALES (E#, NOME, CIUDAD)

LIBROS (L#, TITULO, AUTOR, AÑO)

PAPELERIAS (P#, NOMP, CIUDAD)

ELP (E#, L#, P#, CANTIDAD)

Se pide escribir en álgebra relacional las respuestas a las preguntas siguientes:

a) Obtener los nombres de las papelerías abastecidas por alguna editorial de "Madrid".
Π (E#, NOME, CIUDAD)(σ (Ciudad = “Madrid”)(Persona))
b) Obtener los valores de E# para las editoriales que suministran a las papelerías P1 y P3 libros
publicados en el año 1.978.
Π (EDITORIALES.E#, PAPELERIAS.P#, LIBROS.AÑO) (σ (P#=P1 v P#=P3 ꓥ AÑO=1978)
(editorialesxpapeleríasxlibros))
c) Obtener los valores de P# de las papelerías abastecidas completamente por la editorial E1.
Π (Editoriales.E#, Papelerias.P#) (σ(Editoriales.E#=E1)(EditorialesxPapelerias))
d) d) Obtener los valores de L# para los libros suministrados para todas las papelerías que no
sean de "Madrid".
Π (Papelerias.Ciudad, Libros.L#) (σ(Papelerias.Ciudad ¬”Madrid”)(LibrosxPapelerias))

2.- Dada la base de datos compuesta por las siguientes relaciones:

PROGRAMAS (P#, MEMORIA, S.O, DISTRIBUIDOR)

USUARIOS (U#, EDAD, SEXO )

ORDENADOR (O#,Modelo)

USOS (U#, P#, O#, TIEMPO)

Se pide expresar en términos de álgebra relacional la secuencia de operaciones necesaria para


efectuar las siguientes consultas a la Base de Datos:
a) Obtener los usuarios (U#) que usan al menos todos los programas del distribuidor 'D1'.
Π (usuarios.U#, programas.distribuidor, programas.P#)( σ(usuarios.U#=usos.U# ^
programas.P#=Usos.P# ^ distribuidor=”D1”)(UsosxProgramasxUsuarios))
b) Obtener los programas (P#) que sólo son usados por el usuario 'U5'.
Π (usuarios.U#,programas.P#)( σ(usuarios.U#=usos.U# ^ programas.P#=Usos.P# ^
usuarios.U#=”U5”)(UsosxProgramasxUsuarios))
c) Obtener distribuidores que venden los programas 'P5' y 'P8'.
Π (Distribuidores, P#)( σ(P#=”P5” v P#=”P8”)(Programas))
d) Obtener los modelos de los ordenadores que son usados por personas mayores de 30 años
durante más de 3 horas.
Π (ordenador.o#, usuarios.u#, ordenador.modelo )( σ(usuarios.u#=usos.u# ^
ordenador.o#=usos.o# ^ usos.tiempo>3 ↔ usuarios.edad>30 ))

3.- Sean las relaciones siguientes:

SOCIO (AFICIONADO, VIDEOCLUB)

GUSTA (AFICIONADO, PELICULA)

VIDEOTECA (VIDEOCLUB, PELICULA)

Se pide escribir en álgebra relacional las sentencias necesarias para responder a las preguntas
siguientes:

a) Películas que le gustan al aficionado José Pérez.


Π (Aficionado, Pelicula)( σ(Aficionado=” José Pérez”)(Gusta))
b) Videoclubes que disponen de alguna película que le guste al aficionado José Pérez.
Π (Aficionado, Pelicula, Videoteca.videoclub)( σ(socio.videoclub=videoteca.videoclub ^
socio.aficionado=” José Pérez”))
c) Aficionados que son socios al menos de un videoclub que dispone de alguna película de su
gusto.
Π (Gusta.Pelicula, Socio.Videoclub)( σ(Gusta.Aficionado=Socio.Aficionado) (GUSTAxSOCIO))
d) Aficionados que no son socios de ningún videoclub donde tengan alguna película de su gusto.
Π (GUSTA.AFICIONADO, VIDEOTECA.PELICULA) ( σ(GUSTA.AFICIONADO=SOCIO.AFICIONADO ^
GUSTA.PELICULA=VIDEOTECA.PELICULA ^ PELICUA ¬ No de su Gusto))
4.- Dada la base de datos formada por las siguientes tablas:

MAQUINAS (M#, TIPO, MATRICULA, PRECIO_HORA)

FINCAS (F#, NOMBRE, EXTENSION)

TRABAJADOR (T#, NOMBRE, DIRECCION)

PARTES (T#, M#, F#, FECHA, TIPO_FAENA, TIEMPO)

Se pide dar soluciones algebraicas a las siguientes consultas:

a) Obtener todos los T# que usan todas las máquinas del tipo 1.
Π (TRABAJADOR.T#, MAQUINAS.TIPO(σ (TRABAJADOR.T#=PARTES.T# ^
MAQUINAS.M#=PARTES.M# ^ TIPO=1) MAQUINASXTRABAJADORXPARTES))
b) Obtener todos los F# para aquellas fincas en las que han realizado trabajos las máquinas M1 y
M3
Π (FINCAS.F#, MAQUINAS.M#) (σ FINCAS.F#=PARTES.F# ^ MAQUINAS.M#=PARTES.M# ^
MAQUINAS=M1 v MAQUINAS=M3) MAQUINASXFINCASXPARTES))
c) Obtener el valor de M# para aquellas máquinas que no han sido utilizadas nunca en ningún
trabajo.
Π (MAQUINAS.M#, PARTES.TIEMPO) (σ (MAQUINAS.M#=PARTES.M# ^ TIEMPO=0)
MAQUINASXPARTES)
d) Obtener todos los nombres de fincas en las que se ha trabajado más de 5 horas con máquinas
cuyo precio por hora sea superior a 2000 pts.
Π (FINCA.NOMBRE, MAQUINAS.M#, MAQUINAS.PRECIO_HORA, PARTES.TIEMPO) (σ
FINCA.F#=PARTES.F# ^ MAQUINAS.M#=PARTES.M# ^ TIEMPO>5 ^ PRECIO_HORA>2000)
FINCAXMAQUINAXPARTE))

5.- Dada la base de datos compuesta por las siguientes tablas:

ALUMNOS (A#, NOMBRE, GRUPO)

PRACTICAS (P#, CURSO, FECHA)

ENTREGA (A#, P#, NOTA)


Se pide dar solución en álgebra relacional a las consultas:

a) Obtener los nombres de los alumnos que han aprobado todas las prácticas de tercer curso.
Π (Alumnos.A#,Alumnos.Nombre,Practicas.P#,Practicas.Curso)( σ(Alumnos.A#=Entrega.A# ^
Practicas.P#=Entrega.P# ^ Practicas.Curso=”Tercer” ^ Entrega.Nota >70
)(EntregaxPracticasxAlumnos))
b) Obtener los nombres de los alumnos que han entregado todas las prácticas de tercer curso.
Π (Alumnos.A#,Alumnos.Nombre,Practicas.P#,Practicas.Curso)( σ(Alumnos.A#=Entrega.A# ^
Practicas.P#=Entrega.P# ^ Practicas.Curso=”Tercer”)(EntregaxPracticasxAlumnos))
c) Obtener los alumnos que han entregado prácticas de segundo y tercer curso.
Π (Alumnos.A#,Alumnos.Nombre,Practicas.P#,Practicas.Curso)( σ(Alumnos.A#=Entrega.A# ^
Practicas.P#=Entrega.P# ^ Practicas.Curso=”Tercer” v Practicas.Curso=”Segundo”
)(EntregaxPracticasxAlumnos))
d) Obtener los alumnos que sólo han entregado prácticas de segundo curso.
Π (Alumnos.A#,Alumnos.Nombre,Practicas.P#,Practicas.Curso)( σ(Alumnos.A#=Entrega.A# ^
Practicas.P#=Entrega.P# ^ Practicas.Curso=”Segundo”) (EntregaxPracticasxAlumnos))
e) Obtener los alumnos que han entregado prácticas de segundo curso y pertenecen al grupo 'BD-
11'.
Π (Alumnos.Nombre,Alumnos.Grupos, Practicas.Cursos)( σ(Alumnos.A#=Entrega.A# ^
Practicas.P#=Entrega.E# ^ Practicas.Cursos=”Segundo” v Alumnos.Grupo=”BD-11”)
(PracticasxEntregaxAlumnos))
f) Obtener el nombre de los alumnos que no han suspendido ninguna práctica de las que han
entregado.
Π (Alumnos.Nombre, Entrega.Nota)( σ(Alumnos.A#=Entrega.A# ^ Entrega.Nota < 70)
(EntregaxAlumnos))

6.- La Federación Internacional de Ciclismo Profesional desea tener una BDR con las siguientes tablas:

EQUIPOS (E#, NOMBRE, PAIS)

CICLISTAS (C#, NOMBRE, E#)

COMPETICIONES (M#, NOMBRE, PAIS, DURACION)

CLASIFICACION (M#, C#, PUESTO)


Bases de Datos Ejercicios de Álgebra Relacional

Se pide escribir las sentencias necesarias en álgebra relacional para:

a) Obtener los ciclistas que sólo han participado en competiciones de duración inferior a 15 días.
Π (CICLISTAS.C#, COMPETICIONES.M#) (σ (CLICLISTAS.C#=CLASIFICACION.C# ^
COMPETICIONES.M#=CLASIFICACION.M# ^ DURACION<15dias)
CICLISTASXCOMPETICIONESXCLASIFICACION))
b) Obtener los ciclistas de equipos españoles que han competido en todas las competiciones de
España
Π (CICLISTA.NOMBRE, EQUIPOS.PAIS) (σ (EQUIPOS.E#=CICLISTA.E# ^ EQUIPOS.PAIS=ESPAÑA)
CICLISTAXEQUIPOS))
c) Obtener los ciclistas que han obtenido un primer y un segundo puestos en competiciones con
una duración inferior a 15 días.
Π (CICLISTAS.C#, COMPETICIONES.M#, CLASIFICACION.PUESTO) (σ
(CLICLISTAS.C#=CLASIFICACION.C# ^ COMPETICIONES.M#=CLASIFICACION.M# ^ PUESTO=1 v
PUESTO = 2 ^DURACION<15dias) CICLISTASXCOMPETICIONESXCLASIFICACION))

7.- Dadas las tablas siguientes:

CONDUCTOR (C#, DNI, NOMBREC)

AGENTE (A#, NOMBREA, RANGO)

INFRACCION (I#, DESCRIP, IMPORTE)

DENUNCIA (C#, A#, I#, FECHA, PAGADA)

Se pide escribir en álgebra relacional las sentencias necesarias para:

1. Obtener el nombre de aquellos conductores que hayan sido denunciados por todas las
infracciones inferiores a 10000 Ptas.
Π (Conductor.NOMBREC, INFRACCION.DESCRIP)( σ(Conductor.C#=Denuncia.C# ^
Infraccion.I#=DENUNCIA.I# ^ Infraccion.DESCRIP < 10000))
2. Obtener el código de aquellos agentes que sólo hayan denunciado infracciones de
'ESTACIONAMIENTO' (atributo DESCRIP).
Π (INFRACCION.DESCRIP,AGENTE.NOMBRE)( σ(AGENTE.A#=Denuncia.C# ^
Infraccion.I#=DENUNCIA.I# ^ Infraccion.DESCRIP=”ESTACIONAMIENTO”))
3. Obtener el código de aquellos conductores que no tengan ninguna denuncia pendiente de pago
(valor 'S' o 'N' en atributo PAGADA)
Π (Conductor.DNI,Denuncia.Fecha,DenuncIa.Pagada)( σ(Conductor.C#=DenunciaC# ^
Denucia.Pagada = “S” v Denuncia.Pagada=”N”))

8.- Para la siguiente Base de Datos Relacional:

FEDERACION (NOMBRE#, DIRECCION, TELEFONO)

MIEMBRO (DNI#, NOMBRE_M, TITULACION)

COMPOSICION (NOMBRE#, DNI#, CARGO, FECHA_INICIO)

Se pide dar respuesta algebraica a las siguientes consultas:

1. Obtener el nombre de los presidentes de federación.


Π (FEDERACION.NOMBRE#) (FEDERACION)
2. Obtener la dirección de aquellas federaciones que tienen gerente.
Π (FEDERACION.NOMBRE#, FEDERACION.DIRECCION, COMPOSICION.DNI#,
COMPOSICION.CARGO) (σ (FEDERACION.NOMBRE#=COMPOSICION.DNI# ^ CARGO=GERENTE)
FEDERACIONXCOMPOSICION)
3. Obtener las federaciones que no tienen asesor técnico.
Π (FEDERACION.NOMBRE#, FEDERACION.DIRECCION, COMPOSICION.DNI#,
COMPOSICION.CARGO) (σ (FEDERACION.NOMBRE#=COMPOSICION.DNI# ^ CARGO¬TECNICO)
FEDERACIONXCOMPOSICION)
4. Obtener las federaciones que tienen todos los cargos.
Π (FEDERACION.NOMBRE#, FEDERACION.DIRECCION, COMPOSICION.DNI#,
COMPOSICION.CARGO) (σ (FEDERACION.NOMBRE#=COMPOSICION.DNI# ^ CARGO¬TECNICO)
FEDERACIONXCOMPOSICION)
5. Obtener las federaciones que tienen asesor técnico y psicólogo.
Π (FEDERACION.NOMBRE#, FEDERACION.DIRECCION, COMPOSICION.DNI#,
COMPOSICION.CARGO) (σ (FEDERACION.NOMBRE#=COMPOSICION.DNI# ^ CARGO=TECNICO V
CARGO=PSICOLOGO) FEDERACIONXCOMPOSICION)
9.- Para la siguiente Base de Datos Relacional:

AUTOR (DNI#, NOMBRE, UNIVERSIDAD)

TEMA (CODTEMA#, DESCRIPCION)

REVISTA (REFERENCIA#, TITULO_REV, EDITORIAL)

ARTICULO (REFERENCIA#, DNI#, CODTEMA#, TITULO_ART, AÑO, VOLUMEN, NUMERO, PAGINAS)

Se pide dar respuesta algebraica a las siguientes consultas:

1. Obtener los artículos cuyo tema sea 'Bases de Datos' y hayan sido publicados en el año 1990.
Π (ARTICULOS.TITULAR_ART, ARTICULO.AÑO) (σ (TITULO_ART=BASE DE DATOS ^ AÑO=1990)
ARTICULO))
2. Obtener las revistas de tipo general, es decir, que publiquen artículos de todos los temas.
Π (REVISTA.REFERENCIA#, TEMA.DESCRIPCION) (σ (TEMA=GENERAL) REVISTAXTEMA
3. Obtener las revistas que sólo publican artículos cuyo tema sea 'Medicina'.
Π (REVISTA.REFERENCIA#, TEMA.DESCRIPCION) (σ (TEMA=MEDICINA) REVISTAXTEMA)
4. Obtener los autores que han publicado artículos del tema 'SQL', tanto en el año 1991, como en
el año 1992.
Π (AUTOR.NOMBRE, TEMA.DESCRIPCION, ARTICULO.AÑO) (σ (TEMA=SQL ^ AÑO=1991 v
AÑO=1992) (AUTORXTEMAXARTICULO)
5. Obtener los artículos del año 1993 publicados por autores de la Universidad Politécnica de
Madrid.
Π (AUTOR.UNIVERSIDAD, ARTICULO.AÑO) (σ (AUTOR.DNI#=ARTICULO.DNI# ^
UNIVERSIDAD=UNIVERSIDAD POLITECNICO DE MADRID) (AUTORXARTICULO)

También podría gustarte