Bases de datos

Páginas: 12 (2911 palabras) Publicado: 6 de diciembre de 2013
Soluciones Ejercicio modelo relacional: Álgebra y Cálculo Relacional
Ejercicio 1
Suponer el siguiente modelo relacional de una empresa con os siguientes esquemas de relación:
Empleado(nombre, inicial, apellido, nss, fecha_nacimiento, dirección, sexo, salario, nss_supervisor, nd)
Departamento(nombred, numerod, nss_jefe fecha_inic_jefe)
Localizaciones_dept(numerod, localizaciond)Trabaja_en(nsse, np, horas)
Proyecto(nombrep, numerop,localizacionp,nd)
Dependiente(nsse, nombre_dependiente, sexo, fecha_ncto, parentesco)
Consultas a resolver en el Algebra Relacional:
1. Obtener el nombre y la dirección de todos los empleados que trabajan para el departamento
‘Investigación’.

Temp1 ← σnombredep=’Investigacion’(DEPARTAMENTO)
Temp2 ← Temp1

EMPLEADO
Nd=numerod

Nss=nsse∏nombre, apellido,direccion (Temp2)
2. Para cada proyecto localizado en ‘Santiago’, obtener una lista con el número de proyecto, el número de
departamento que lo controla, y el apellido, la dirección y la fecha de nacimiento del jefe de dicho
departamento.

Temp1 ← σlocalizacionp=’Santiago’(PROYECTO)
Temp2 ← Temp1

DEPARTAMENTO
Nd=numerod

Temp3 ← Temp2

Nss=nsse
EMPLEADO
NSS=NSS_JEFENss=nsse
∏nombre, apellido,direccion (Temp3)

3. Buscar el nombre de los empleados que trabajan en todos los proyectos controlados por el departamento
número 5.

Temp1 ← ∏Numerop (σnumd=5(PROYECTO))
Temp2 ← ∏NSSE,NP(TRABAJA_EN))
Temp3 ← Temp2

÷ Temp1

∏nombre, apellido (EMPLEADO

Temp3)
NSS=NSS_JEFE

Nss=nsse

4. Obtener una lista con los números de los proyectos en queintervienen un empleado cuyo apellido es
‘Smith’, ya sea como trabajador o como jefe del departamento que controla el proyecto.

Temp1 ← ∏NSS (σApellido=’Smith’(EMPLEADO))
Temp2 ← ∏NP (TRABAJA_EN

Temp1 )
NSSE=NSS

Nss=nsse
Temp3 ← ∏Apellidos,numerod (EMPLEADO

DEPARTAMENTO

)

NSS=NSS_JEFE

Temp4 ← ∏numerod (σApellido=’Smith’(Temp3))
Temp5 ← ∏Nuerop (PROYECTOS

Temp4

)ND=numerod

Temp2 ∪ Temp5
5. Obtener una lista con los nombres de todos los empleados que tienen dos ó más personas dependientes
de ellos.

Temp1 ← NSS Gcount(nombre_dependiente) as cuenta (DEPENDIENTE)
Temp2 ← σcuenta ≥ 2 (Temp1)
∏nombre, apellido (Temp2

EMPLEADO)
NSSE=NSS

Nss=nsse
6. Obtener el nombre de los empleados que no tienen otras personas dependientes de ellos.Temp1 ← ρdep(NSS) (∏NSSE(DEPENDIENTES))
Temp2 ← ∏NSS (EMPLEADO)
Temp3 ← Temp2 – Temp1
∏nombre, apellido (Temp3

EMPLEADO)

7. Obtener el nombre de los jefes que tienen por lo menos una persona dependiente de ellos.

Temp1 ← ρdep(NSSE) (∏NSS_JEFE(DEPARTAMENTO))
Temp2 ← ∏NSSE (DEPENDIENTE)
Temp3 ← Temp2 ∩ Temp1
∏nombre, apellido (Temp3

EMPLEADO)
NSS=NSSE

Nss=nsse

Consultas aresolver en el Cálculo Relacional de Tuplas:
1. Obtener la fecha de nacimiento y la dirección del empleado cuyo nombre sea ‘John B. Smith’
{ t |
s∈ empleado ( t[fecha_ncto] = s[fecha_ncto] ^ t[direccion]=s[direccion] ^ s[nombre]=’John’ ^
s[inic]=’B’ ^ s[apellido] = ‘Smith’}
2. Obtener el nombre y la dirección de todos los empleados que trabajan para el departamento
‘Investigación’.
{ t | s∈empleado ( t[nombre] = s[nombre] ^ t[apellido]=s[apellido] ^
^ d[nombred] = ‘Investigacion’) }

d∈ departamento ( d[numerod]=s[nd]

3. Buscar el nombre de los empleados que trabajan en algún proyecto controlado por el departamento
número 5.
{ t | e∈ empleado ( t[apellido] = e[apellido] ^ t[nombre]=e[nombre] ^ (
trabaja_en(w[nsse]=e[nsse] ^ x[numerop] = w[np])))) }

x∈ proyecto (x[numd]=5 ^

w∈

4. Obtener una lista con los números de los proyectos en que intervienen un empleado cuyo apellido es
‘Smith’, ya sea como trabajador o como jefe del departamento que controla el proyecto.
{ t |
p∈ proyecto ( t[numerop] = p[numerop] ^ (
e∈ empleado ( e[apellido]=’Smith’ ^
w∈
trabaja_en(w[np]=p[numerop] ^ w[nsse] = e[nsse]))) ∨
m∈ empleado (m[apellido]=’Smith’ ^...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Que es una base de datos y tipos de base de datos
  • Bases de datos y usuarios de bases de datos
  • Base De Datos
  • Base De Datos
  • Base de datos
  • Base De Datos
  • Base de datos
  • Bases de datos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS