taller álgebra relacional

Páginas: 9 (2239 palabras) Publicado: 12 de agosto de 2014
BASES DE DATOS EJERCICIOS DE ÁLGEBRA RELACIONAL
ÁLGEBRA RELACIONAL

Considerando la base de datos compuesta por las siguientes relaciones:


Tabla Profesor Tabla Asistencia Tabla Asignatura Tabla Clases


Se pide dar soluciones algebraicas a las siguientes consultas:
1) Obtener todos los datos de todas las clases.
2) Obtener todos los datos de todas lasclases ubicadas en el primer piso.
3) Obtener los profesores que asisten a la clase 'C1'.
4) Obtener los valores de PISO y BLOQUE para las clases a las que asiste el profesor 'P1'.
5) Obtener los valores de P# para los profesores que asisten a la clase 'C1' impartiendo la asignatura de 'FISICA'.
6) Obtener los valores de P# para los profesores que asisten a las clases 'C1' o 'C2'.
7) Obtenerlos valores de P# para los profesores que asisten a las clases 'C1' y 'C2'.
8) Obtener los nombres de los profesores que asisten solo a clases del Bloque 1.
9) Obtener los nombres de los profesores que asisten a todas las clases del Bloque 1.
10) Obtener las clases en las que se imparten todas las asignaturas.

Nota: Se tiene instalado XAMPP por lo que para entrar a la consola de MYSQL se debeningresar una serie de comandos en el CMD de Windows como lo son:
cd C:\xampp\mysql\bin
mysql -u root
1) Obtener todos los datos de todas las clases.
SELECT * FROM clases
Π{c#, bloque, piso}(clases)


2) Obtener todos los datos de todas las clases ubicadas en el primer piso.
SELECT * FROM clases WHERE Piso = '1';
Π{c#, bloque, piso}(σ{piso='1'}(clases))


3) Obtener los profesoresque asisten a la clase 'C1'.
SELECT p.`P#`,NomP,DesP FROM profesor p join asistencia using(`P#`) WHERE `C#` = 'C1';
Π{P#, NomP, DesP }(σ{C#=C1}(profesores x asistencia ))




4) Obtener los valores de PISO y BLOQUE para las clases a las que asiste el profesor 'P1'.
SELECT Piso,Bloque FROM asistencia join clases using(`C#`) WHERE `P#` = 'P1';
ρ Π{ Piso,Bloque }(σ{ `P#` = 'P1'}(asistencia ⋈clases))



5) Obtener los valores de P# para los profesores que asisten a la clase 'C1' impartiendo la asignatura de 'FISICA'.
SELECT `P#` FROM asistencia join asignatura using (`A#`) where NomA='Fisica' and `C#`='C1';
Π{P#}(σ{NomA=fisica ∧ C#=C1 ∧ a.A#=s.A#}(asistencia a × asignatura s) )


6) Obtener los valores de P# para los profesores que asisten a las clases 'C1' o 'C2'.
SELECTDISTINCT a.`P#` FROM asistencia a JOIN asistencia b using(`P#`) WHERE a.`C#`='C1' or b.`C#`= 'C2';
ρ Π{ a.`P#` }(σ{ a.`C#`='C1' v b.`C#`= 'C2' }(asistencia a ⋈ asistencia b))



7) Obtener los valores de P# para los profesores que asisten a las clases 'C1' y 'C2'.
SELECT DISTINCT a.`P#` FROM asistencia a JOIN asistencia b using(`P#`) WHERE a.`C#`='C1' and b.`C#`= 'C2';
ρ Π{ a.`P#` }(σ{a.`C#`='C1' ∧ b.`C#`= 'C2' }(asistencia a ⋈ asistencia b))

8) Obtener los nombres de los profesores que asisten solo a clases del Bloque 1.
SELECT DISTINCT NomP FROM profesor p, asistencia a, clases c where Bloque ='1' and p.`P#`= a.`P#` and a.`C#` = c.`C#` ;
ρΠ{ NomP }(σ{ Bloque ='1'∧ a.C#= p.C# ∧ a.C# = c.C# profesores p x asistencia a x clases c))


9) Obtener los nombres de los profesoresque asisten a todas las clases del Bloque 1.
SELECT Distinct NomP FROM profesor,asistencia JOIN clases USING(`C#`) WHERE Bloque ='1';
ρ Π{NomP}(σ{Boque=1}(profesor × clases ⋈ asistencia))



10) Obtener las clases en las que se imparten todas las asignaturas.
select C.`C#` from clases C inner join (select A.`C#` from asistencia A group by A.`C#` having count(distinct A.`A#`) =(select count(*) from asignatura)) as R on C.`C#` = R.`C#`;
ρ Π{ C.`C#` }(σ{Boque=1}(clases C ⋈ (σ{ A.`C#`}( asistencia A group by A.`C#` having count(distinct A.`A#`)=(σ{ count(*) ∧ C.`C#` = R.`C#` }(asignatura R))))


EJERCICIOS DE ÁLGEBRA RELACIONAL

1.- Sean las relaciones siguientes:

EDITORIALES (E#, NOME, CIUDAD)
LIBROS (L#, TITULO, AUTOR, AÑO)
PAPELERIAS (P#, NOMP, CIUDAD)
ELP...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algebra Relacional.
  • ALGEBRA RELACIONAL
  • Algebra relacional
  • Algebra Relacional
  • Algebra Relacional
  • Algebra Relacional
  • Algebra relacional
  • Algebra relacional

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS