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