You are on page 1of 3

1

JCHM BASE DE BATOS
2013
Relación de Problemas II SQL (Definición)
Se desea tener una base de datos que almacene la información sobre los empleados de una empresa, los
departamentos en los que trabajan y los estudios de que disponen. Guardaremos el historial laboral y
salarial de todos los empleados. Para ello contamos con las siguientes tablas:
EMPLEADOS
Column Name Data Type
----------- ---------
DNI NUMBER(8)
NOMBRE VARCHAR2(1)
A!E""IDO1 VARCHAR2(1#)
A!E""IDO2 VARCHAR2(1#)
DIRECC1 VARCHAR2(2#)
DIRECC2 VARCHAR2(2)
CIUDAD VARCHAR2(2)
MUNICI!IO VARCHAR2(2)
COD$!O%TA" VARCHAR2(#)
%E&O CHAR(1)
'ECHA$NAC DATE
DEPARTAMENTOS
Column Name
-----------
D!TO$COD
NOMBRE$D!TO
(E'E
!RE%U!UE%TO
!RE%$ACTUA"
Data Type
---------
NUMBER(#)
VARCHAR2())
NUMBER(#)
INTE*ER
INTE*ER
ESTUDIOS
Column Name Data Type
-----------
EM!"EADO$DNI
UNIVER%IDAD
A+O
*RADO
E%!ECIA"IDAD
---------
NUMBER(8)
NUMBER(#)
%MA""INT
VARCHAR2())
VARCHAR2(2)
HISTORIAL_LABORAL
Column Name Data Type
UNIVERSIDADES
Column Name Data Type
-----------
EM!"EADO$DNI
TRAB$COD
'ECHA$INICIO
'ECHA$'IN
D!TO$COD
---------
NUMBER(8)
NUMBER(#)
DATE
DATE
NUMBER(#)
-----------
UNIV$COD
NOMBRE$UNIV
CIUDAD
MUNICI!IO
COD$!O%TA"
---------
NUMBER(#)
VARCHAR2(2#)
VARCHAR2(2)
VARCHAR2(2)
VARCHAR2(#)
%U!ERVI%OR$DNI NUMBER(8)
HISTORIAL_SALARIAL
Column Name Data Type
TRABAJOS
Column Name Data Type
-----------
EM!"EADO$DNI
%A"ARIO
'ECHA$COMIEN,O
---------
NUMBER(8)
INTE*ER
DATE
-----------
TRABA(O$COD
NOMBRE$TRAB
%A"ARIO$MIN
---------
NUMBER(#)
VARCHAR2(2)
NUMBER(2)
'ECHA$'IN DATE %A"ARIO$MA& NUMBER(2)
Controle las siguientes restricciones:
1. Los siguientes atributos son obligatorios: ombre !en todas las tablas", #pellido1 de
cada $mpleado, Presupuesto en %epartamentos, Salario de un $mpleado y Salario &'nimo y
&()imo de cada tipo de trabajo.
2. $l atributo Se)o en empleados sólo puede tomar los *alores + para hombre y & para mujer.
3. %os departamentos no se llaman igual. %os trabajos tampoco.
,
JCHM BASE DE BATOS
2013
NOMBRE APELLIDO1 APELLIDO2 DNI SEXO
Sergio Palma $ntrena 111,,, P
Lucia -rtega Plus ,,,...
EMPLEADO_DNI TRAB_COD FECHA_INICIO FECHA_FIN DPTO_COD SUPERVISOR_DNI
111,,, 1/0120133/ ,,,...
4. Las fechas de comien4o y de fin en los dos historiales deben respetar el orden cronológico,
teniendo en cuenta que la fecha de finali4ación puede ser 2LL, indicando que ese es el *alor
actual de su salario.
5. 5ada empleado tiene un solo salario en cada momento. 6ambi7n, cada empleado tendr( asignado
un solo trabajo en cada momento.
6. Se ha de mantener la regla de integridad de referencia y pensar una cla*e primaria para cada tabla.
Realice las siguientes operaciones:
1. 8nsertar dos tuplas en cada tabla, rellenando todos sus atributos y haciendo cumplir las
restricciones de integridad anteriores.
,. 8nserte las siguientes tuplas !las columnas que no aparecen se considerar(n nulas". Si no le dejase
insertar la tupla por *iolación de una restricción, desact'*ela temporalmente y *uel*a a acti*arla.
Empleados
Hs!o"al_La#o"al
9:u7 ocurre si modifica la tupla de +istorial;Laboral asign(ndole al empleado 111,,, un
super*isor que no e)iste en la tabla de empleados< 9=iola esto la segunda regla de integridad<
.. >orre una uni*ersidad de la tabla de 2ni*ersidades 9:u7 le sucede a la restricción de cla*e for(nea
!o e)terna" de la tabla $studios< 9Se sigue manteniendo< #ltere la definición de la tabla para que
se mantenga la restricción aunque se borre una uni*ersidad.
?. #@ada una restricción que obligue a que las personas de se)o masculino hayan de tener el campo
Aecha de acimiento -6 2LL. 9:u7 ocurre con las tuplas ya introducidas<
B. #@ada un nue*o atributo =aloración en la tabla de $mpleados que indica de 1 a 1C la *aloración
que obtu*o el empleado en su entre*ista de trabajo al iniciar su andadura en la empresa. Ponga el
*alor por defecto B para ese campo. 9:u7 ocurreo con las tuplas que ahora e)isten en la tabla<
8nserte una nue*a tupla en empleado sin se@alar ningDn *alor para el atributo nue*o.
/. $limine la restriccción de que el atributo ombre de la tabla empleado no puede ser nulo.
E. &odificar el tipo de datos de %irecc1 de la tabla $mpleados a cadena de caracteres de ?C como
m()imo. 9Podr'a modificar el tipo de datos del atributo 5ódigo de empleado a =#F5+#F!?C"<
9G la fecha de nacimiento con*ertirla a tipo cadena<
H. 5ambiar la cla*e primaria de $mpleados al nombre y los dos apellidos.
3. $liminar un empleado. 9:u7 ocurre con sus tuplas en +istorial Salarial< 9G en +istorial Laboral<
1C. 5rear una nue*a tabla llamada 8nformación 2ni*ersitaria que tenga el nombre y apellidos !en un
solo atributo" de todos los empleados junto con la 2ni*ersidad donde estudiaron. 5(rguela con
esos datos e)tra'dos desde la tabla de empleados.
11. 5ree una *ista llamada ombre;$mpleados con el nombre y apellidos !en un solo campo nombre"
de todos los empleados que son de &(laga.
1,. 5ree otra *ista llamada 8nformación;$mpleados que contenga el nombre y apellidos !en un solo
campo nombre" y edad !no fecha de nacimiento" de cada empleado.
1.. 5ree otra *ista sobre la anterior llamada 8nformación;#ctual que dispone de toda la información
de 8nformación;$mpleados junto con el salario que est( cobrando en este momento.
1?. 8nserte una tupla sobre cada una de estas *istas. 9:u7 sucede<
.
JCHM BASE DE BATOS
2013
1B. >orrar todas las tablas. 9+ay que tener en cuenta las cla*es for(neas a la hora de borrar las tablas<