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)