Download Enunciado Examen

Document related concepts
no text concepts found
Transcript
Laboratorio de Bases de Datos
Examen Final
Datos del alumno:
Año 2009
Tema A
Fecha: ____/____/________
Nombre:_____________________________________________________________________________
Libreta: CX_______________
Nota: _____/100
Contenido:
Crear una base de datos en MS SQL Server o MySQL (sin algunas Constraints) con su
documento como nombre, y la siguiente estructura de tablas, respetando nombres, tipos de datos y
mayúsculas.
Obras
IdObra
INTEGER
NOT NULL
Nom breObra VARCHAR(75) NOT NULL
DireccionObra VARCHAR(75) NOT NULL
TotalHoras
INTEGER
NOT NULL
Trabajos
IdObra (FK) INTEGER
IdTrabajo
INTEGER
Empleados
IdEm pleado INTEGER
NOT NULL
IdCargo (FK)
IdJefe (FK)
Apellidos
Nom bres
Direccion
Telefono
NOT NULL
NULL
NOT NULL
NULL
NOT NULL
NOT NULL
INTEGER
INTEGER
VARCHAR(50)
VARCHAR(50)
VARCHAR(75)
CHAR(7)
Cargos
IdCargo INTEGER
Cargo
NOT NULL
VARCHAR(50) NOT NULL
TrabajaEn
NOT NULL
NOT NULL
Des cripcion VARCHAR(100) NOT NULL
Horas
INTEGER
NULL
Estado
CHAR(1)
NOT NULL
IdObra (FK)
INTEGER NOT NULL
IdTrabajo (FK)
INTEGER NOT NULL
IdEm pleado (FK) INTEGER NOT NULL
Horas Trabajadas INTEGER NOT NULL
Constraints: Telefono = empiece con 4 y siga con 6 dígitos, Estado=[A|B], UNIQUE en Cargo (Cargos) y NombreObra (Obras)
Índices: Claves Primarias y Propagadas, (Apellidos, Nombres)
i) Crear los objetos necesarios y ejecutar el script llenardatos2009A.sql para poblar la base de datos.
ii) Crear un SP que dado IdEmpleado, liste los empleados a su cargo (solo 1 nivel) y la cantidad de horas
trabajadas por cada uno (IdEmpleado, Apellidos, Nombres, Cargo, TotalHoras) y una fila al final con el
total de horas de todos los empleados. Llamarlo rsp_empleados_a_cargo.
iii) Realizar una vista que muestre un listado de trabajos con el total de horas estimado y el real trabajado
(NombreObra, Descripción, Horas, Total HorasTrabajadas). Llamarla vista_trabajos.
iv) Realizar un SP para dar de alta un empleado. Efectuar las comprobaciones y devolver mensajes de
error. Llamarlo rsp_alta_empleado.
1