MÉTODOS COMPUTACIONALES Ejercicios propuestos

Transcripción

MÉTODOS COMPUTACIONALES Ejercicios propuestos
Departamento de Enxeñería de
Sistemas e Automática
MÉTODOS
COMPUTACIONALES
Ejercicios propuestos
DEPARTAMENTO DE ENXEÑERÍA DE SISTEMAS E AUTOMÁTICA
MÉTODOS COMPUTACIONALES
EJERCICIOS
Bases de datos y SQL
APARTADO 1. Diseño conceptual
Se debe desarrollar el diagrama E/R que modele la información relativa a las cuentas
bancarias de una entidad. En este sistema, cada cliente interesará su número de
documento de identificación (DNI, permiso de residencia, número de pasaporte, etc.), su
código de cliente (ver la nota al final de este apartado), su nombre, y sus teléfonos. De
cada cuenta se debe considerar su código (18 dígitos), los clientes que son titulares de
ellas (incluyendo quién es el primer titular), las oficina bancaria que gestiona cada cuenta,
los movimientos realizados sobre ella y el tipo (de ahorro, corriente, de plazo fijo, etc.) Las
oficinas estarán caracterizadas por su código identificativo, su dirección postal y el
número de empleados que trabajan en ella. El sistema también debe gestionar la
información relativa a los movimientos de las cuentas, de los cuales interesará su código
(identificador único automático), la fecha de realización, el concepto (cobro de recibo,
ingreso de nómina, etc.) y el importe (positivo para los ingresos y negativo para las
retiradas).
Se debe tener en cuenta las siguientes cuestiones:
1.
2.
3.
4.
5.
6.
Toda cuenta está gestionada por una única oficina.
Una cuenta puede tener varios titulares.
De todos los titulares de una cuenta, uno de ellos es siempre el primer titular.
Un cliente puede ser titular de varias cuentas.
Del código de la cuenta sólo se sabe que está compuesto por veinte dígitos.
El nº de documento (DNI, nº de residentes para extranjeros, etc.) puede ser
desconocido y por tanto, ha de permitirse que el campo correspondiente quede si
especificar en las tablas.
NOTA. Debido a que existen números de DNI repetidos así como personas sin DNI (con
permiso de residencia, por ejemplo), en la práctica, las bases de datos suelen asignar un
número identificativo propio para las personas. Para ello se pueden utilizar los atributos
autonumerados. Se utilizarán también este tipo de atributos para asignar el identificador
único de cada movimiento.
APARTADO 2. Modelo lógico
Se debe diseñar el grafo relacional que describa las tablas de la base de datos para el
modelo Entidad / Relación resultante del apartado anterior.
APARTADO 3. DDL
Construir la base de datos por medio de sentencias SQL. Escribir también las sentencias
que habría que invocar para la eliminación de todas las tablas.
APARTADO 4. DML
Escribir las sentencias SQL que implementen las siguientes consultas y modificaciones:
1. Listar los identificadores de todos los primeros titulares de alguna cuenta. No deben
mostrarse identificadores repetidos.
2. Mostrar los nombres de todos los clientes de los cuáles no se conozca su nº de documento
de identificación.
3. Modificar la consulta anterior para que muestre los identificadores en orden ascendente.
4. Listar el número máximo de empleados que tiene cualquier oficina.
5. Calcular el saldo de la cuenta 0072 0900 0000055555
6. Calcular el importe medio de todos los movimientos mayores de 1000 € y asociados a las
oficinas 332 ó 121
7. Mostrar el importe medio de todos los movimientos en pesetas.
8. Indicar cuantos movimientos tienen lugar cada día.
9. Indicar cuantos movimientos tienen lugar cada día a partir del 01/10/2004
10. Mostrar el nombre de todos los clientes sin repeticiones.
11. Mostrar los códigos de todos los movimientos en los que no se haya especificado ningún
concepto (en la tabla TMovimiento, el atributo concepto tendrá asignado el valor NULL.)
12. Listar los códigos de las cuentas de tipo 1 así como las que pertenezcan a la oficina nº 92.
13. Listar los códigos de las cuentas de la oficina nº 233, exceptuando las que pertenezcan al
cliente cuyo identificador es el 32321.
14. Mostrar los códigos de las cuentas que pertenezcan a la oficina nº 334 y que además
tengan como primer titular al cliente nº 87656
15. Listar los códigos de cuentas gestionadas por oficinas que hayan tenido movimientos, en
cualquier cuenta, superiores a 200.000 €.
16. Mostrar los códigos de aquellos usuarios que tengan algún movimiento mayor que todos
los movimientos de los clientes nº 74658 y 33810.
17. Mostrar los códigos de aquellos usuarios que tengan algún movimiento mayor que alguno
de los movimientos de los clientes nº 74658 y 33810.
18. Mostrar la dirección de la oficina que no haya gestionado ningún movimiento sin especificar
el concepto (en la tabla TMovimiento, el atributo concepto tendría asignado el valor NULL.)
19. Mostar las cuentas con movimientos realizados en oficinas distintas a la suya.
20. Insertar un nuevo cliente con DNI 33.555.777, nombre “Ferreiro Agra, María”. El nº de
identificación lo asignará automáticamente el sistema.
21. Modificar la anterior sentencia, escribiendo los dos campos (nombre y documento de
identificación) en el orden inverso.
22. Introducir un nuevo cliente, del cuál sólo se sabe el nombre: “Suárez Quintana, Miguel”.
23. Introducir un movimiento de la cuenta 0072, en la oficina nº 332, con fecha del día de hoy,
sin especificar concepto alguno, con el importe necesario para que la cuenta quede con
saldo cero.
24. Se sabe que se produjo un error al introducir el importe del movimiento nº 667363. La
cantidad que consta en la tabla está en pesetas. Escribir la sentencia que modifique el
valor para que conste en euros.
25. Se sabe también que se ha producido el mismo error con todos los movimientos realizados
en la oficina nº 325 el día 13/01/2006. Escribir la sentencia que solucione el problema.
26. Ha habido un error al introducir un cliente inexistente en la tabla TClientes con el código
666. Eliminar dicho cliente.
APARTADO 6. FORMULARIOS DE INSERCIÓN DE DATOS
Construir los formularios necesarios para introducir datos en las tablas.
APARTADO 7. INFORMES
Crear un informe que muestre todas las cuentas de un titular concreto. Se mostrará
ordenado por oficinas.
APARTADO 8. FORMULARIOS DE CONTROL DE INFORMES
Construir un formulario que permita seleccionar los parámetros del informe anterior y
genere el informe.
SOLUCIÓN AL APARTADO 1
id
docum
nombre
tlfs
codigo
tipo
N:M
(1:n)
es titular
CLIENTE
(1:n)
CUENTA
(1:1)
(1:n)
primer
gestionada
por
1:N
(1:n)
MOVIMIENTO
asociado
codigo
importe
fecha
concepto
1:N
(1:1)
OFICINA
codigo
direccion
numEmp
SOLUCIÓN AL APARTADO 2
TTelefonos (telefono, id)
TCliente (docum, id, nombre)
TTitular (codigoCta, id, primer)
TCuenta (tipo, codigoCta)
TGestion (codigoCta, codigoOf)
TOficina (direccion, codigoOf, numEmp)
TMovimiento (fecha, codigoOf, importe, concepto, codigoMov, codigoCta)

Documentos relacionados