sábado, 22 de octubre de 2011

Álgebra Relacional


PREGUNTA 1

SOFTWARE (S#, DESCRIPCION, VERSION, FABRICANTE)
HARDWARE (H#, NOMBRE, PROCESADOR, CONSTRUCTOR)
INSTALACION (S#, H#, C#, EDIFICIO, RESPONSABLE, PROTOCOLO)

a)Tener las descripciones del software existente en cualquier instalación.

AR:

π SOFTWARE.DESCRIPCION(SOFTWAREΘINSTLALCION)

SQL:

SELECT SOFTWARE.DESCRIPCION
FROM SOFTWARE JOIN INSTALACION ON (SOFTWARE.S# = INSTALACION.S#)

b)Obtener los nombres de los equipos con procesador 'M65000' instalados tanto para protocolo 'TCP/IP', como para protocolo 'CICS'.

AR:
π HARDAWARE.NOMBRE(σ HARDWARE.PROCESADOR = ”M65000” ^ (INSTALACION.PROTOCOLO = ”TCP/IP”  v INSTALACION.PROTOCOLO = ”CICS”)(HARDAWAREΘINSTALACION))

SQL:
SELECT HARDWARE.NOMBRE
FROM HARDAWARE JOIN INSTALACION ON (HARDWARE.H# = INSTALACION.H#)
WHERE INSTALACION.PROTOCOLO = ”TCP/IP” AND (INSTALACION.PROTOCOLO = ”CICS” OR INSTALACION.PROTOCOLO = ”CICS”)

c) Obtener los nombres de los equipos hardware que no han sido instalados en ningún edificio.

AR:
π HARDWARE.NOMBRE(HARDWARE-(HARDWAREΘINSTALACION)

SQL:

SELECT HARDWARE.NOMBRE

FROM HARDWARE

MINUS

SELECT D.NOMBRE
FROM (HARDWARE JOIN INSTALACION ON (HARDWARE.H# = INSTALACION.H#)) D


PREGUNTA 2

C(Bebedor, Bar)  S (Bar, Cerveza)  P (Bebedor, Cerveza)
Donde la primera indica los bares que cada bebedor frecuenta, la segunda la cerveza que sirve cada bar, y la última relación nos indica la cerveza que consume cada bebedor.

a) Los bebedores que frecuentan al menos un bar que sirve una cerveza que toman.

AR:
C.Bebedor(CΘSΘP)

SQL:
SELECT C.Bebedor
FROM C JOIN S ON (C.Bar = S.Bar) JOIN P ON (C.Bebedor=P.Bebedor)

b)Los bebedores que frecuentan sólo bares que sirven alguna cerveza que ellos toman.

AR:

SQL:

No hay comentarios:

Publicar un comentario