Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Boletín de ejercicios
Ejercicio 1
Considerar el siguiente modelo de datos que corresponde a los préstamos de libros de una
biblioteca:
Ejercicio 2
Para que un alumno ingrese en la Universidad, debe realizar una preinscripción,
especificando a qué estudios desea acceder en orden de preferencia. Dicha información
se guarda en una base de datos cuyo modelo de datos responde al siguiente diagrama:
Ejercicio 3
3.1) Crea las siguientes tablas:
mat (matrícula del coche, 8 caracteres y llave primaria)
COCHES marca (15 caracteres)
an_fab (año de fabricación, número de 2 dígitos)
dni (9 caracteres, llave primaria)
MECANICOS nombre (15 caracteres)
puesto (15 caracteres)
parcial (1 carácter)
mat (la matrícula del coche, llave externa respecto de COCHES),
TRABAJOS dni (el dni del mecánico),
horas (número de 3 cifras con 1 decimal, debe ser mayor de 0.5)
fecha_rep (tipo fecha)
3.2) Modifica las tablas
Añadir a la tabla COCHES el atributo modelo (15 caracteres)
Establecer los atributos mat y dni como la clave primaria de la tabla trabajos.
Establecer el atributo dni de TRABAJOS como llave externa respecto a MECANICOS.
Ampliar a 4 la longitud del atributo an_fab de la tabla COCHES.
Ejercicio 4
Dadas estas tablas:
Libro (código, autor, titulo, editor, clase, prestado)
Usuario (secuencia, nombre, dirección, fecha_ingreso)
Clase (clave, tiempo_de_prestamo)
Préstamo (código, secuencia, fecha_inicio)
Con las siguientes claves foráneas:
Libro.clase -> Clase
Prestamo.codigo -> Libro
Prestamo.secuencia -> Usuario
Y las siguientes restricciones:
Prestado debe tomar por defecto el valor 1
fecha_ingreso es un campo obligatorio
4.1) Crea las tablas tal y como se haría en un SGBD Comercial (Oracle/MySQL)
Ejercicio 5
Tenemos el siguiente esquema E-R:
5.2) Crea las tablas en ORACLE procurando que las columnas tengan el tipo y tamaño
adecuado, y con las siguientes restricciones:
1. El Color de los coches es verde, rojo o azul.
2. Las Horas de mano de obra de una operación nunca pasan de 10.
3. Señala todas las claves primarias, ajenas y candidatas.
4. La cantidad de Piezas por Operación por defecto es 1.
5. La marca y modelo del coche no pueden dejarse en blanco.
6. El precio de un coche está entre 10000 y 40000.
UNIDAD TEMÁTICA 3: IMPLEMENTACIÓN DE BASES DE DATOS RELACIONALES
Ejercicio 6
Se dispone de una base de datos en la que figuran tramos de comunicación por carretera
entre localidades de España.
código de localidad
localidades nombre de la localidad
número de habitantes censados oficialmente
número de habitantes que realmente residen en la localida
código de la provincia
provincias nombre de la provincia
el nombre de la comunidad autónoma a la que pertenece
tramo (dos) localidades o nodos relacionados y la distancia entre ellos
Ejercicio 7
7.1) Crear el esquema de la Base de Datos “EMPRESA”, compuesta por estas tablas:
Establece las restricciones de integridad que se consideren oportunas, especialmente
las restricciones de integridad referencial.
• Numero: Número identificativo del centro
CENTROS • Nombre: Nombre del centro
• Direccion: Dirección del local
• Numero: Nº identificativo del departamento
• Centro: Nº del centro de trabajo del departamento. Todo departamento está en un
centro de trabajo (edificio o local), que puede albergar más de un departamento.
DEPARTAMENTOS
insert into EMPLEADOS values (180, 110, 508, '2018-10-06', '1945-03-11',1480, 50, 2, 'PEREZ, 03COS');
insert into EMPLEADOS values (190, 121, 350, '2012-05-07', '2011-02-12',1300, null, 4, 'VEIGA, 07IANA');
insert into EMPLEADOS values (210, 100, 200, '2028-09-08', '2022-01-13',1380, null, 2, 'GALVEZ, PILAR');
insert into EMPLEADOS values (240, 111, 760, '2026-02-09', '2024-02-14',1280, 100, 3, 'SANZ, LAVINIA');
insert into EMPLEADOS values (250, 100, 250, '2027-10-10', '2001-03-15',1450, null, 0, 'ALBA, ADRIANA');
insert into EMPLEADOS values (260, 100, 220, '2003-12-11', '2012-07-16',1720, null, 6, 'LOPEZ, ANTONIO');
insert into EMPLEADOS values (270, 112, 800, '2021-05-12', '2010-09-17',1380, 80, 3, 'GARCIA, 10AVIO');
insert into EMPLEADOS values (280, 130, 410, '2011-01-13', '2008-10-18',1290, null, 5, 'FLOR, DOROTEA');
insert into EMPLEADOS values (285, 122, 620, '2025-10-14', '2015-02-19',1380, null, 0, 'POLO, OTILIA');
insert into EMPLEADOS values (290, 120, 910, '2030-11-15', '2014-02-20',1270, null, 3, 'GIL, GLORIA');
insert into EMPLEADOS values (310, 130, 480, '2021-11-16', '2015-01-21',1420, null, 0, 'GARCIA, 08USTO');
insert into EMPLEADOS values (320, 122, 620, '2025-12-17', '2005-02-22',1405, null, 2, 'SANZ, CORNELIO');
insert into EMPLEADOS values (330, 112, 850, '2019-08-18', '2001-03-23',1280, 90, 0, 'DIEZ, AMELIA');
insert into EMPLEADOS values (350, 122, 610, '2013-04-19', '2010-09-24',1450, null, 1, 'CAMPS, AURELIO');
insert into EMPLEADOS values (360, 111, 750, '2029-10-20', '2010-10-25',1250, 100, 2, 'LARA, DORINDA');
insert into EMPLEADOS values (370, 121, 360, '2022-06-21', '2020-01-26',1190, null, 1, 'RUIZ, FABIOLA');
insert into EMPLEADOS values (380, 112, 880, '2030-03-22', '2001-01-27',1180, null, 0, '03TIN, MICAELA');
insert into EMPLEADOS values (390, 110, 500, '2019-02-23', '2008-10-28',1215, null, 1, 'MORAN, CARMEN');
insert into EMPLEADOS values (400, 111, 780, '2018-08-24', '2001-11-29',1185, null, 0, 'LARA, LUCRECIA');
insert into EMPLEADOS values (410, 122, 660, '2014-07-25', '2013-10-30',1175, null, 0, 'MUãOZ, AZUCENA');
insert into EMPLEADOS values (420, 130, 450, '2022-10-26', '2019-11-30',1400, null, 0, 'FIERRO, CLAUDIA');
insert into EMPLEADOS values (430, 122, 650, '2026-10-27', '2019-11-03',1210, null, 1, 'MORA, VALERIANA');
insert into EMPLEADOS values (440, 111, 760, '2027-09-28', '2028-02-07',1210, 100, 0, 'DURAN, LIVIA');
insert into EMPLEADOS values (450, 112, 880, '2021-10-29', '2028-02-07',1210, 100, 0, 'PEREZ, SABINA');
insert into EMPLEADOS values (480, 111, 760, '2004-04-30', '2028-02-08',1210, 100, 1, 'PINO, DIANA');
insert into EMPLEADOS values (490, 112, 880, '2006-06-01', '2001-01-09',1180, 100, 0, 'TORRES, HORACIO');
insert into EMPLEADOS values (500, 111, 750, '2008-10-02', '2001-01-10',1200, 100, 0, 'VAZQUEZ, HONORIA');
Ejercicio 8
Sean las tablas siguientes:
- TRABAJADOR (id_t, nombre, tarifa, oficio, id_supv) Trabajadores identificados por su
ID_T. Se guarda su nombre, tarifa por hora (€), oficio e identificador de su supervisor.
- EDIFICIO (id_e, dir, tipo, niv_calidad, cat) Edificios identificados por su ID_E. Se guarda
su dirección; el tipo de edificio; su nivel de calidad y su categoría.
- ASIGNACION (id_t, id_e, f_inicio, num_dias) Registra cada vez que un trabajador es
asignado a un edificio.
8.1) Crea las tablas y usa las siguientes sentencias para introducir los datos:
-- tabla trabajador --
INSERT INTO TRABAJADOR VALUES (1235,"m. faraday",12.5,"electricista",1311);
INSERT INTO TRABAJADOR VALUES (1311,"c. coulomb",15.5,"electricista",1311);
INSERT INTO TRABAJADOR VALUES (1412,"c. nemo",13.75,"fontanero",1520);
INSERT INTO TRABAJADOR VALUES (1520,"h. rickover",11.75,"fontanero",1520);
INSERT INTO TRABAJADOR VALUES (2920,"r. garret",10.0,"albañil",2920);
INSERT INTO TRABAJADOR VALUES (3001,"j. barrister",8.2,"carpintero",3231);
INSERT INTO TRABAJADOR VALUES (3231,"p. mason",17.4,"carpintero",3231);
-- tabla edificio --
INSERT INTO EDIFICIO VALUES (111,"1213 aspen","oficina",4,1);
INSERT INTO EDIFICIO VALUES (210,"1011 birch","oficina",3,1);
INSERT INTO EDIFICIO VALUES (312,"123 elm","oficina",2,2);
INSERT INTO EDIFICIO VALUES (435,"456 maple","comercio",1,1);
INSERT INTO EDIFICIO VALUES (460,"1415 beach","almacen",3,3);
INSERT INTO EDIFICIO VALUES (515,"789 oak","residencia",3,2);
UNIDAD TEMÁTICA 3: IMPLEMENTACIÓN DE BASES DE DATOS RELACIONALES
-- tabla asignacion --
INSERT INTO ASIGNACION VALUES (1235,312,'2001-10-10',5);
INSERT INTO ASIGNACION VALUES (1235,515,'2001-10-17',22);
INSERT INTO ASIGNACION VALUES (1311,435,'2001-10-08',12);
INSERT INTO ASIGNACION VALUES (1311,460,'2001-10-23',24);
INSERT INTO ASIGNACION VALUES (1412,111,'2001-12-01',4);
INSERT INTO ASIGNACION VALUES (1412,210,'2001-11-15',12);
INSERT INTO ASIGNACION VALUES (1412,312,'2001-10-01',10);
INSERT INTO ASIGNACION VALUES (1412,435,'2001-10-15',15);
INSERT INTO ASIGNACION VALUES (1412,460,'2001-10-08',18);
INSERT INTO ASIGNACION VALUES (1412,515,'2001-11-05',8);
INSERT INTO ASIGNACION VALUES (1520,312,'2001-10-30',17);
INSERT INTO ASIGNACION VALUES (1520,515,'2001-10-09',14);
INSERT INTO ASIGNACION VALUES (2920,210,'2001-11-10',15);
INSERT INTO ASIGNACION VALUES (2920,435,'2001-10-28',10);
INSERT INTO ASIGNACION VALUES (2920,460,'2001-10-05',18);
INSERT INTO ASIGNACION VALUES (3001,111,'2001-10-08',14);
INSERT INTO ASIGNACION VALUES (3001,210,'2001-10-27',14);
INSERT INTO ASIGNACION VALUES (3231,111,'2001-10-10',8);
INSERT INTO ASIGNACION VALUES (3231,312,'2001-10-24',20);
Ejercicio 9
Gestión de Ventas: dado el modelo Entidad-Relación:
9.1) Crea las tablas y usa estas sentencias para introducir los datos.
SUBCONSULTAS
21. Haz un listado de todos los pedidos que ha realizado Adela Salas Díaz. (Usa subconsulta)
22. Muestra el nº de pedidos donde participó el comercial Daniel Sáez Vega. (Usa subconsulta)
23. Devuelve los datos del cliente con el pedido más caro en el año 2019. (Usa subconsulta)
24. Devuelve la fecha y la cantidad del pedido de menor valor del cliente Pepe Ruiz Santana.
25. Devuelve el pedido más caro que existe en la tabla pedido si hacer uso de MAX.
26. Devuelve un listado de los clientes que no han realizado ningún pedido.
27. Devuelve (de 2 formas distintas) un listado de los comerciales que no han hecho pedidos.