Sie sind auf Seite 1von 51

Programa Nacional 111 Mil - Analistas del Conocimiento

Ministerio de Produccin
Secretara de Industria y Servicios
Subsecretara de Servicios Tecnolgicos y Productivos

Ministerio de Educacin y Deportes


A travs del

Analistas del Conocimiento


Dimensin Programador

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
1
Programa Nacional 111 Mil - Analistas del Conocimiento

Gua de Ejercicios Prcticos


para el Mdulo

Base de Datos

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
2
Programa Nacional 111 Mil - Analistas del Conocimiento

Tabla de Contenido
INTRODUCCIN ................................................................................................................................... 5

ENUNCIADOS DE LOS EJERCICIOS A DESARROLLAR EN LA GUA ............................................................. 7


EJERCICIO 1: CASO PRCTICO CINE ............................................................................................................ 7
PRESENTACIN DEL CASO DE ESTUDIO .....................................................................................................................7
EJERCICIO 2: CASO PRCTICO PIZZERA ....................................................................................................... 8
PRESENTACIN DEL CASO DE ESTUDIO .....................................................................................................................8
EJERCICIO 3: CASO PRCTICO ESTACIONAMIENTO DE UNIVERSIDAD................................................................... 8
PRESENTACIN DEL CASO DE ESTUDIO .....................................................................................................................8
EJERCICIO 4: CASO PRCTICO MERCADO DE ABASTO ..................................................................................... 9
PRESENTACIN DEL CASO DE ESTUDIO .....................................................................................................................9
EJERCICIO 5: CASO PRCTICO PANADERA ................................................................................................. 10
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 10
EJERCICIO 6: CASO PRCTICO CONSULTORIO ODONTOLGICO ....................................................................... 10
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 10

SOLUCIONES PROPUESTAS ................................................................................................................. 11


EJERCICIO 1: CASO PRCTICO CINE .......................................................................................................... 11
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 11
MODELO DE DOMINIO ....................................................................................................................................... 12
VISTA PARCIAL DEL DIAGRAMA DE CASOS DE USO ................................................................................................... 13
PROTOTIPO DE LA INTERFAZ DE USUARIO PARA EL CASO DE USO 14. REGISTRAR PELCULA ............................................ 14
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 14. REGISTRAR PELCULA ..................................................... 14
CONSIGNAS: ..................................................................................................................................................... 16
SOLUCIN PROPUESTA PARA EL DIAGRAMA ENTIDAD-RELACIN QUE MAPEA LAS CLASES DEL MODELO DE DOMINIO DEL
COMPLEJO DE CINES: ......................................................................................................................................... 17
EJERCICIO 2: CASO PRCTICO PIZZERA ..................................................................................................... 18
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 18
MODELO DE DOMINIO ....................................................................................................................................... 19
VISTA PARCIAL DE LOS CASOS DE USO DE LA PIZZERA ............................................................................................... 20
PROTOTIPO DE LA INTERFAZ DE USUARIO PARA EL CASO DE USO 22. GENERAR FACTURA .............................................. 20
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 2. GENERAR FACTURA ......................................................... 21
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 5. GENERAR REPORTE DE PIZZAS MS DEMANDADAS ................ 22
CONSIGNAS: ..................................................................................................................................................... 23
SOLUCIN PROPUESTA PARA EL DIAGRAMA ENTIDAD-RELACIN QUE MAPEA LAS CLASES DEL MODELO DE DOMINIO DE LA
PIZZERA: ......................................................................................................................................................... 24
EJERCICIO 3: CASO PRCTICO ESTACIONAMIENTO DE UNIVERSIDAD................................................................. 25
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 25
MODELO DE DOMINIO ....................................................................................................................................... 26
VISTA PARCIAL DEL DIAGRAMA DE CASOS DE USO ................................................................................................... 26
PROTOTIPO DE LA INTERFAZ DE USUARIO PARA EL CASO DE USO 3. REGISTRAR COBRO DE ABONO DE ESTACIONAMIENTO .. 27
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 3. REGISTRAR COBRO DE ABONO DE ESTACIONAMIENTO ........... 29

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
3
Programa Nacional 111 Mil - Analistas del Conocimiento

CONSIGNAS: ..................................................................................................................................................... 30
SOLUCIN PROPUESTA PARA EL DIAGRAMA ENTIDAD-RELACIN QUE MAPEA LAS CLASES DEL MODELO DE DOMINIO DEL
ESTACIONAMIENTO DE UNIVERSIDAD: ................................................................................................................... 31
EJERCICIO 4: CASO PRCTICO MERCADO DE ABASTO ................................................................................... 32
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 32
MODELO DE DOMINIO ....................................................................................................................................... 33
VISTA PARCIAL DEL DIAGRAMA DE CASOS DE USO ................................................................................................... 34
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 1. REGISTRAR ALQUILER DE PUESTO ...................................... 36
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 15. GENERAR REPORTE DE PUESTOS POR ESTADO ..................... 37
CONSIGNAS: ..................................................................................................................................................... 38
DIAGRAMA ENTIDAD-RELACIN ........................................................................................................................... 39
EJERCICIO 5: CASO PRCTICO PANADERA ................................................................................................. 40
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 40
MODELO DE DOMINIO ....................................................................................................................................... 41
PROTOTIPO DE LA INTERFAZ DE USUARIO ASOCIADOS A LA FUNCIONALIDAD DE REGISTRAR COBRO ................................. 42
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 1. REGISTRAR VENTA........................................................... 43
CONSIGNAS: ..................................................................................................................................................... 44
SOLUCIN PROPUESTA PARA EL DIAGRAMA ENTIDAD-RELACIN QUE MAPEA LAS CLASES DEL MODELO DE DOMINIO DE LA
PANADERA: ..................................................................................................................................................... 45
EJERCICIO 6: CASO PRCTICO CONSULTORIO ODONTOLGICO ....................................................................... 46
PRESENTACIN DEL CASO DE ESTUDIO .................................................................................................................. 46
MODELO DE DOMINIO ....................................................................................................................................... 47
DESCRIPCIN CON RESUMEN ESENCIAL DEL CASO DE USO 1. GENERAR AGENDA MENSUAL DE ODONTLOGO .................. 48
CONSIGNAS: ..................................................................................................................................................... 49
SOLUCIN PROPUESTA PARA EL DIAGRAMA ENTIDAD-RELACIN QUE MAPEA LAS CLASES DEL MODELO DE DOMINIO DEL
CONSULTORIO ODONTOLGICO: .......................................................................................................................... 50
FUENTES DE INFORMACIN ................................................................................................................................. 51

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
4
Programa Nacional 111 Mil - Analistas del Conocimiento

Introduccin

La gua prctica del Mdulo Base de Datos incluye los casos de estudio vinculados a los contenidos
desarrollados en el apunte terico del mdulo. El objetivo de esta gua es brindar una herramienta de
apoyo, que facilite el desarrollo de los temas y posibilite aplicar los conocimientos adquiridos, mostrando
casos prcticos y su resolucin propuesta.
En el apunte terico se trabaj alrededor de los siguientes ejes temticos: sistema administrador de bases
de datos, tecnologa de bases de datos y sus diferentes tipos, el modelo de entidad-relacin y el diagrama
de entidad-relacin como herramienta para modelar. Luego se trabaj el modelo lgico relacional, los
motores de bases de datos relacionales en general y en particular MySQL. Tambin se desarrollaron
conceptos sobre SQL, tales como lenguaje de consulta y modelos de persistencia y cmo se mapea objetos-
relacional utilizando Hibernate.
Esta gua utiliza los mismos casos que se presentaron por primera vez en la Gua de Prcticos del Mdulo
de Programacin Orientada a Objetos, dado que la intencin es dar un cierre a esos mismos casos,
agregando la parte de persistencia que no se trat antes.
Entonces, se toman los diagramas de clase que modelan el dominio, esos diagramas se utilizan para mapear
creando primero el diagrama de entidad-relacin correspondiente y luego creando la base de datos y la
persistencia con Hibernate.
En dos de los casos de estudio, Pizzera y Mercado de Abasto, se agreg un caso de uso de generacin de
reportes, para poder mostrar el uso de una herramienta de reportes llamada Jasper Reports.
Para la instalacin de las aplicaciones necesarias para trabajar con el mdulo de Base de Datos, estn
disponibles los siguientes instructivos:

Instructivo de cmo Crear una base de datos en MySQL Workbench, disponible en el repositorio,
en la siguiente direccin: https://github.com/111milprogramadores/bd-instructivos.
Instructivo: Generacin de reportes con Jasper Reports, disponible en el repositorio, en la siguiente
direccin: https://github.com/111milprogramadores/bd-instructivos
Al igual que en el mdulo de Programacin Orientada a Objetos, las soluciones propuestas y los instructivos,
junto con el resto del material, est a disposicin en el repositorio.
El repositorio se encuentra en: https://github.com/111milprogramadores

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
5
Programa Nacional 111 Mil - Analistas del Conocimiento

Finalmente, en el repositorio tambin hay un instructivo para la descarga del proyecto desde el repositorio
pblico de 111mil creado en la herramienta GitHub1.

1 GitHub: Es una plataforma de desarrollo colaborativo de software para alojar proyectos utilizando el sistema de control de
versiones Git. El cdigo se almacena de forma pblica, aunque tambin se puede hacer de forma privada, creando una cuenta
de pago.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
6
Programa Nacional 111 Mil - Analistas del Conocimiento

Enunciados de los Ejercicios a Desarrollar en la Gua


Ejercicio 1: Caso Prctico Cine
Presentacin del Caso de Estudio
Este caso se encuentra mencionado en el material terico del mdulo: se trata de un Sistema de Gestin
de Ventas y Reservas de Entradas para un Complejo de Cines. El funcionamiento del negocio se describe a
continuacin:
Un complejo de cines est integrado por varios cines ubicados principalmente en los centros comerciales
de la ciudad. Cada cine cuenta con una cantidad de salas, que son las que exhiben las pelculas en las
distintas funciones cinematogrficas. La programacin de las salas se renueva en forma semanal, existiendo
la posibilidad de que algunas salas queden sin uso. Cabe mencionar que no todas las salas tienen la misma
capacidad (cantidad de butacas).
La programacin es la que determina qu pelculas van a proyectarse y los horarios para cada funcin de
cada una de las salas, para todos los cines. Esta programacin se realiza en forma centralizada, desde la
administracin del Complejo, tomndose como base la informacin de las pelculas prximas a estrenar,
que enva el INCAA (Instituto Nacional de Cines y Artes Audiovisuales). La programacin implica el diseo
de las funciones y sus horarios en forma anticipada, debiendo el responsable de la misma, habilitar cada
funcin en el momento que desee permitir la reserva y/o venta de entradas para la misma.
La entrada que se le entrega al cliente representa el comprobante de venta y como tal debe cumplir con lo
reglamentado en la Ley de Facturacin vigente, debiendo contener como datos: nro. de venta, fecha de
venta, nmero de funcin, sala en la que se proyecta la pelcula, el nombre de la pelcula, fecha y hora de
la funcin, el precio, el tipo de entrada (si es mayor, menor, jubilado) y la calificacin de la pelcula, que
segn especificaciones de la Ley de Cine Nro. 17.741, debe ser informada tanto en la entrada como al inicio
de la pelcula. Es importante destacar que la entrada es vlida nicamente para la fecha, hora y funcin
indicadas en la misma.
Los tipos de entradas y los das y horarios de proyeccin son los que determinan el precio de la entrada,
que tambin pueden variar en cada cine del complejo. Las funciones admiten ciertos tipos de entradas y
otros no, dependiendo de factores como: horarios, calificacin de las pelculas, etc. Por ejemplo: si una
pelcula est calificada como para mayores de 16 aos, para esa funcin no se pueden vender entradas de
TIPO = MENOR. Cada funcin tiene asociado un tipo de funcin, que determina si la funcin es un pre-
estreno, un estreno o una funcin normal.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
7
Programa Nacional 111 Mil - Analistas del Conocimiento

Ejercicio 2: Caso Prctico Pizzera


Presentacin del Caso de Estudio

Una pizzera de la ciudad ofrece a sus clientes una amplia variedad de pizzas de fabricacin propia, de varios
tamaos (8, 10 y 12 porciones). Los clientes tienen a disposicin un men que describe para cada una de
las variedades, el nombre, los ingredientes y el precio segn el tamao y el tipo (a la piedra, a la parrilla, de
molde) de la pizza. Los clientes realizan sus pedidos en el mostrador.
El pedido debe contener el nombre del Cliente, para llamarlo cuando su pedido est listo; la cantidad de
pizzas, el tamao, la variedad, la fecha del pedido, la hora en la que el pedido debe entregarse y la demora
estimada informada al cliente.
El pedido va a la cocina y cuando est preparado se informa al que lo tom para que se genere la factura
correspondiente y se le entregue el pedido al cliente.
El dueo de la pizzera ha manifestado la necesidad de acceder al menos a la siguiente informacin:
Variedades y tipos de pizzas ms pedidas por los clientes.
Ingresos (recaudaciones) por perodos de tiempo.
Pedidos (cantidad y monto) por perodos de tiempo.

Ejercicio 3: Caso Prctico Estacionamiento de Universidad

Presentacin del Caso de Estudio

Se describe a continuacin el funcionamiento de la playa de estacionamiento de la Universidad Tecnolgica


y del sistema de informacin que le da soporte.
Pueden estacionar distintos tipos de vehculos (motos/automviles), cada uno de ellos con una tarifa
de ingreso diferente. Si tiene abono, el precio es menor.
Se puede ingresar a la playa de estacionamiento por varios portones de ingreso diferentes.
No se asignan lugares especficos para los vehculos; las personas que ingresan al estacionamiento
debern ubicar su vehculo en algn lugar que se encuentre disponible.
Los interesados pueden comprar un abono de estacionamiento, de pago anticipado, que hace que el
valor de cada estacionamiento sea ms econmico que si paga cada vez que ingresa a la playa. Debe
informar su DNI y la cantidad de dinero que desea acreditar.
Si es la primera vez que estaciona, debe registrar sus datos personales (apellido, nombre, dni), y los
datos del o los vehculos (marca, modelo, dominio), con los cuales desea ingresar a la playa de
estacionamiento.
Una vez registrado el propietario, cada vez que necesite acreditar dinero informa su DNI y la cantidad
de dinero y se le cobra entregndole un comprobante donde consta: apellido y nombre, dni, fecha de
la transaccin, monto acreditado y monto disponible en su cuenta.
El comprobante (ticket) que se entrega como constancia del cobro tiene los siguientes datos: apellido
y nombre del propietario, dni, fecha y hora de la transaccin, monto acreditado y monto disponible en

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
8
Programa Nacional 111 Mil - Analistas del Conocimiento

su cuenta, los nmeros de dominio de todos los vehculos registrados de ese propietario y un nmero
nico de identificacin del comprobante.
Puede tener hasta dos ingresos sin crdito, es decir saldo negativo, que se descontarn de la siguiente
vez que acredite dinero en su cuenta.
Mientras tenga crdito, la persona puede ingresar a la playa con cualquiera de los vehculos registrados.
La persona puede en cualquier momento agregar y/o cambiar los vehculos con los que ingresar a la
playa de estacionamiento.
El valor del estacionamiento es por el da completo, sin lmite de tiempo ni inferior ni superior; es decir
se paga un ingreso diario, que es vlido independientemente de la cantidad de ingresos que haga
durante el mismo da y del tiempo que permanezca en la playa.
Al ingresar se le entrega a la persona un comprobante que contiene: dominio del vehculo, apellido y
nombre del dueo del vehculo, el valor del ingreso, la fecha de ingreso y el saldo disponible. Tambin
se informa el nmero de ingreso del da. El portn por el que ingresa y el usuario logueado.
Si el vehculo no est registrado, se guarda en el ingreso el nmero de dominio del vehculo y se informa
como observacin que no est registrado.
El primer ingreso del da se cobra, descontando del saldo disponible. A partir del segundo ingreso del
da en adelante, el monto debe figurar en cero y se debe informar cul es el nmero de ingreso, por
ejemplo: Segundo ingreso del da.
A las personas que desean ingresar a la playa de estacionamiento sin tener el abono de pago anticipado,
se les cobra en el momento del ingreso, registrando como observacin el nmero de dominio del
vehculo, entregndoles un comprobante con el monto cobrado. Los datos del comprobante en ese
caso son: dominio del vehculo, monto, fecha de ingreso, nmero de vez que ingresa a la playa de
estacionamiento, usuario logueado, fecha y hora y portn por el que ingresa.
Si la persona tiene abono, puede tener hasta el valor de dos estacionamientos como saldo negativo,
que se descontarn de la siguiente vez que acredite dinero en su cuenta.

Ejercicio 4: Caso Prctico Mercado de Abasto


Presentacin del Caso de Estudio
El Mercado de Abasto de Frutas y Verduras de una ciudad de la regin necesita un Sistema de Informacin
que brinde soporte a las actividades que all se realizan.

El mercado est organizado en sectores. Cada sector contiene puestos, los cuales son alquilados a
empresas y quinteros (genricamente clientes) para que all realicen sus ventas. Existen distintos tipos de
puestos (con techo, sin techo, con cmara refrigerante, etc.) y distintas dimensiones para cada puesto
(10m2, 15m2, etc.), para poder ajustarse mejor a las necesidades de cada cliente.

El precio del alquiler depende del sector en el que se encuentre el puesto, el tipo de puesto y sus
dimensiones, y est predefinido.

Cuando un cliente desea alquilar uno o ms puestos, se verifica la disponibilidad del tipo de puesto que
requiere. Si existe disponibilidad y el cliente est de acuerdo con el precio, se realiza un contrato de alquiler
por cada puesto que se alquile. En el contrato se especifica la fecha de inicio y fin del alquiler, el monto

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
9
Programa Nacional 111 Mil - Analistas del Conocimiento

mensual del alquiler y tiene adems un nmero que identifica el contrato que es nico y el nombre del
responsable por parte del Mercado que intervino en la firma del contrato y el responsable de la registracin
del mismo. Adems, cada puesto cuenta con un medidor para el consumo de energa elctrica.
Mensualmente se registran las lecturas de cada medidor, ya que el consumo de cada puesto es facturado
al cliente que est alquilando ese puesto. En el momento de efectuar el alquiler, se registra en el contrato
la ltima lectura del medidor del puesto que se est alquilando. Los aspectos vinculados a la facturacin
quedan excluidos del alcance del sistema, como as tambin la gestin de cobro de los alquileres.

Ejercicio 5: Caso Prctico Panadera


Presentacin del Caso de Estudio

La Panadera que se describe en este caso de estudio, pertenece a la Fundacin Brisas de Cambio, ubicada
en el interior de la provincia de Crdoba. La Fundacin tiene el propsito fundamental de contener
laboralmente a un grupo numeroso de jvenes y adultos con discapacidades intelectuales y fsicas. Su
objetivo es desarrollar proyectos productivos que les permita desempearse en un oficio para sentirse
tiles y adquirir a diario el conocimiento necesario para desempearse en esta actividad dentro de un
ambiente laboral sano.
En este contexto, la panadera est atendida por este grupo de personas con capacidades especiales y la
intencin es desarrollar un producto de software que asista a las personas en el proceso de venta y cobro
de los productos que la panadera vende.

Ejercicio 6: Caso Prctico Consultorio Odontolgico


Presentacin del Caso de Estudio

En este consultorio odontolgico trabajan varios profesionales que brindan sus servicios. Cuando un
paciente necesita atencin, debe solicitar un turno previamente. No se atienden pacientes que no tienen
turno. El odontlogo para el que el paciente solicita el turno es el que lo va a atender. Cada odontlogo
tiene una agenda con los das y horarios en los que puede atender, que se crea mensualmente en funcin
de la disponibilidad que el odontlogo informa, con turnos de 30 minutos de duracin. Esta agenda genrica
representa los das y horarios de atencin que tiene disponible ese odontlogo en trminos generales y la
duracin de su consulta. Esta informacin se tomar como base para crear la agenda cada mes,
considerando para cada mes los das y/u horarios que en ese mes no podr atender.
Cuando el paciente llama por telfono, se le pregunta el motivo de la consulta y en funcin de eso se le
asigna uno o ms turnos. Por ejemplo, si lo que debe hacerse es un tratamiento de conducto, se le asignan
dos turnos de media hora, consecutivos.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
10
Programa Nacional 111 Mil - Analistas del Conocimiento

Soluciones Propuestas

Ejercicio 1: Caso Prctico Cine


Presentacin del Caso de Estudio

Este caso se encuentra mencionado en el material terico del mdulo: se trata de un Sistema de Gestin
de Ventas y Reservas de Entradas para un Complejo de Cines. El funcionamiento del negocio se describe a
continuacin:
Un complejo de cines est integrado por varios cines ubicados principalmente en los centros comerciales
de la ciudad. Cada cine cuenta con una cantidad de salas, que son las que exhiben las pelculas en las
distintas funciones cinematogrficas. La programacin de las salas se renueva en forma semanal, existiendo
la posibilidad de que algunas salas queden sin uso. Cabe mencionar que no todas las salas tienen la misma
capacidad (cantidad de butacas).
La programacin es la que determina qu pelculas van a proyectarse y los horarios para cada funcin de
cada una de las salas, para todos los cines. Esta programacin se realiza en forma centralizada, desde la
administracin del Complejo, tomndose como base la informacin de las pelculas prximas a estrenar,
que enva el INCAA (Instituto Nacional de Cines y Artes Audiovisuales). La programacin implica el diseo
de las funciones y sus horarios en forma anticipada, debiendo el responsable de la misma, habilitar cada
funcin en el momento que desee permitir la reserva y/o venta de entradas para la misma.
La entrada que se le entrega al cliente representa el comprobante de venta y como tal debe cumplir con lo
reglamentado en la Ley de Facturacin vigente, debiendo contener como datos: nro. de venta, fecha de
venta, nmero de funcin, sala en la que se proyecta la pelcula, el nombre de la pelcula, fecha y hora de
la funcin, el precio, el tipo de entrada (si es mayor, menor, jubilado) y la calificacin de la pelcula, que
segn especificaciones de la Ley de Cine Nro. 17.741, debe ser informada tanto en la entrada como al inicio
de la pelcula. Es importante destacar que la entrada es vlida nicamente para la fecha, hora y funcin
indicadas en la misma.
Los tipos de entradas y los das y horarios de proyeccin son los que determinan el precio de la entrada,
que tambin pueden variar en cada cine del complejo. Las funciones admiten ciertos tipos de entradas y
otros no, dependiendo de factores como: horarios, calificacin de las pelculas, etc. Por ejemplo: si una
pelcula est calificada como para mayores de 16 aos, para esa funcin no se pueden vender entradas de
TIPO = MENOR. Cada funcin tiene asociado un tipo de funcin, que determina si la funcin es un pre-
estreno, un estreno o una funcin normal.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
11
Programa Nacional 111 Mil - Analistas del Conocimiento

Modelo de Dominio

entity
entity
entity Genero
PaisDeOrigen
Pelicula genero 1 nombre
idioma 1 paisDeOrigen aoEstreno
nombre disponible
duracion
fechaIngreso
nombre calificacion
tituloOriginal
entity personajes
calcularDuracionEnFuncion() entity
actor Personaje
estaDisponible() Calificacion
nombreEnPelicula 1..* 1
entity estaEnCartelera() nombre
Actor mostrarFuncionesHabilitadas()
1
animado
apellido entity
nombre funciones 1 Sala
pelicula sala
0..* capacidad
1 rol numero
entity entity 1
Rol Funcion 1..*
nombre diaSemana
sexo duracion sala
horaInicio
numero
entity
1 calcularDisponibilidad() Cine
capacidadSala()
Sexo direccion
estaEnCurso()
nombre hayLugar() fechaInauguracion
mostrarDiaHora() nombre
precioEntrada

1 mostrarCine()
1..* mostrarInfoHorariosFuncion()
entradas funcion

0..*
programaciones
entity funciones
0..* horariosFunciones
Entrada
entity 0..*
fechaHoraFuncion
fechaHoraVenta Programacion entity
precioCobrado fechaFin HorarioFuncion
ticketNro fechaHoraCreada diaDeSemana
estaAnulada() fechaInicio duracionIntervalo
estaCompleta() duracionPublicidad
estaIniciadaFuncion() esTrasnoche
estaVigente() horaPrimeraFuncion
mostrarProgramacion() horaUltimaFuncion
mostrarHorarioFuncion()

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
12
Programa Nacional 111 Mil - Analistas del Conocimiento

Vista parcial del Diagrama de Casos de Uso

include
3 Registrar 1 Imprimir
Venta de Entradas
Entradas
20 Iniciar Sesin
de Trabajo
Vendedor

14 Registrar
Pelcula
extend

Responsable de
Programacin 11 Generar
Programacin de
Funciones
Usuario

8 Registrar
Cliente Web Reserva Web
6 Registrar
Reserva

7 Registrar
Reserva
Operador Telefnica
Telefonico

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
13
Programa Nacional 111 Mil - Analistas del Conocimiento

Prototipo de la Interfaz de Usuario para el Caso de Uso 14. Registrar Pelcula

Descripcin con resumen esencial del Caso de Uso 14. Registrar Pelcula

Paquete: Administracin de Pelculas


Nombre del Caso de uso: Registrar Pelcula Nro. de Orden: 14

Prioridad: Alta Media Baja

Complejidad: Simple Mediano Complejo Muy Complejo Extremadamente Complejo

Actor Principal: Responsable de Programacin (RP) Actor Secundario: no aplica

Tipo de Caso de uso: Concreto Abstracto


Objetivo: registrar cada una de las pelculas que integrarn las distintas funciones que se programarn para los
cines del complejo.
Flujo Bsico
1. RP: selecciona la opcin de ingresar nueva pelcula.
2. Sistema: solicita que se ingrese nombre de pelcula.
3. RP: ingresa el nombre de la pelcula que desea registrar.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
14
Programa Nacional 111 Mil - Analistas del Conocimiento

4. Sistema valida que no exista una pelcula registrada con el mismo nombre y no hay registrada en el
sistema una pelcula con el mismo nombre.
5. Sistema: busca y muestra los Gneros, Calificaciones y Pases de Origen de la pelcula y solicita que se
seleccionen.
6. RP: selecciona los datos correspondientes a la pelcula.
7. Sistema: solicita que se ingresen los dems datos para la pelcula.
8. RP ingresa: duracin, ttulo original, ao de estreno.
9. Sistema: para ingresar elenco de pelcula llamar al caso de uso Registrar Elenco de Pelcula.
10. Sistema: el elenco se registr correctamente.
11. Sistema: asigna el estado de la pelcula como NO DISPONIBLE y el RP no desea modificarlo.
12. Sistema: solicita confirmacin para registrar pelcula ingresada.
13. RP confirma.
14. Sistema: valida que se hayan especificado los datos mnimos (nombre, duracin, ao de estreno,
calificacin, gnero, pas de origen, elenco), requeridos para realizar la registracin de la pelcula y s se
especificaron.
15. Sistema registra la pelcula.
Flujos Alternativos
A1: existe una pelcula registrada con el mismo nombre.
A2: elenco no pudo registrarse.
A3: el RP desea ingresar premios de pelculas
A4: el RP desea ingresar comentarios de pelculas
A5: el sistema asigna el estado de la pelcula como NO DISPONIBLE y el actor desea modificarlo.
A6: no se han ingresado los datos mnimos requeridos para efectuar la registracin de la pelcula.
A7: el RP no confirma registracin de la pelcula.
Observaciones:
1. El RP puede cancelar la ejecucin del caso de uso en cualquier momento.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
15
Programa Nacional 111 Mil - Analistas del Conocimiento

Consignas:

Construir el diagrama de entidad-relacin correspondiente al Modelo de Dominio presentado,


especificando claves primarias y forneas.
Crear la base de datos derivada del diagrama de entidad-relacin construido en el apartado
anterior, utilizando la herramienta MySQL Workbench. Para ms informacin ver el instructivo:
Crear una base de datos en MySQL Workbench, que est disponible en el repositorio, en la
siguiente direccin: https://github.com/111milprogramadores/bd-instructivos.
Crear los archivos de mapeo (hbm) para cada una de las clases del Modelo de Dominio, segn lo
explicado en el apunte terico de Base de Datos en la seccin El archivo de mapeo XML.
Configurar la conexin de la aplicacin con la base de datos creada utilizando el archivo XML
hibernate.cfg.xml , segn lo explicado en el apunte terico de Base de Datos en la seccin El archivo
de configuracin.
Implementar la capa de acceso a datos, utilizando la herramienta Hibernate. Para ms informacin
consultar en el apunte terico de Base de Datos en la seccin El archivo de configuracin.
Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
16
Programa Nacional 111 Mil - Analistas del Conocimiento

Solucin propuesta para el Diagrama Entidad-Relacin que mapea las clases del Modelo de dominio del Complejo de Cines:

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
17
Programa Nacional 111 Mil - Analistas del Conocimiento

Ejercicio 2: Caso Prctico Pizzera


Presentacin del Caso de Estudio

Una pizzera de la ciudad ofrece a sus clientes una amplia variedad de pizzas de fabricacin propia, de varios
tamaos (8, 10 y 12 porciones). Los clientes tienen a disposicin un men que describe para cada una de
las variedades, el nombre, los ingredientes y el precio segn el tamao y el tipo (a la piedra, a la parrilla, de
molde) de la pizza. Los clientes realizan sus pedidos en el mostrador.
El pedido debe contener el nombre del Cliente, para llamarlo cuando su pedido est listo; la cantidad de
pizzas, el tamao, la variedad, la fecha del pedido, la hora en la que el pedido debe entregarse y la demora
estimada informada al cliente.
El pedido va a la cocina y cuando est preparado se informa al que lo tom para que se genere la factura
correspondiente y se le entregue el pedido al cliente.
El dueo de la pizzera ha manifestado la necesidad de acceder al menos a la siguiente informacin:
Variedades y tipos de pizzas ms pedidas por los clientes.
Ingresos (recaudaciones) por perodos de tiempo.
Pedidos (cantidad y monto) por perodos de tiempo.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
18
Programa Nacional 111 Mil - Analistas del Conocimiento

Modelo de Dominio

entity
entity TipoPizza
Pedido
Factura
- fechaHoraCreacion - descripcion
- fechaHoraEmision VariedadPizza
- fechaHoraEntrega - nombre
- numero - ingredientes
- nombreCliente +tipoPizza
1

+ buscarItemsAFacturar() - numero - nombre


+variedad
+ calcTotalFactura() 0..1
+ calcTotalPedido() 1
+ getDetalleFactura()
+ cancelar() entity
+ getEstado()
+ confirmar() Pizza
+ getNumero() +factura
+ esPteFacturacion()
+ new() - nombre
+ facturar()
+ setEstado() - precio
+ getDetallePedido()
+ getEstado() + getNombre() TamaoPizza
1
+ mostrarNombreCliente() + getPizza()
+estado - cantPorciones
+ mostrarNumero() + getPrecio() +tamao
1 - nombre
+ new() + getTamaoPizza()
entity + obtenerDetallesPedido() + getTipoPizza()
EstadoFactura + setEstado() + getVariedadPizza()
- nombre + terminar() + setNombre()
+ setPrecio()
+ esGenerada()
+ esPteFacturacion() +pizza
1
+estado

1 +detallesPedido

entity 1..*
EstadoPedido
entity
- nombre
estado DetallePedido
+ esFacturado()
- cantidad
+ esPteFacturacion() 1
- precio
+ calcTotalItem()
+ cancelar()
+ getEstado()
+detalleFactura
+ getPizza()
+ mostrarDetallePedido()
+ setEstado()
1..*

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
19
Programa Nacional 111 Mil - Analistas del Conocimiento

Vista parcial de los casos de uso de la Pizzera

22. Generar
Factura
25.
Confirmar
Pedido
10. Registrar
Pedido
Vendedor Responsable
20. Informar de Cocina
Cierre Pedido

15. Cancelar
Pedido

17. Registrar
Men
Administrador
Responsable
Pizzera
14.
Actualizar
5 Generar reporte Precios
de pizzas ms
demandadas

Prototipo de la Interfaz de Usuario para el Caso de Uso 22. Generar Factura

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
20
Programa Nacional 111 Mil - Analistas del Conocimiento

Descripcin con resumen esencial del Caso de Uso 2. Generar Factura

Nombre del Caso de uso: Generar Factura Nro. de Orden: 2

Actor Principal: Vendedor Actor Secundario: no aplica


Objetivo: generar la factura asociada a un pedido determinado.

Flujo Bsico
1. Vendedor: selecciona la opcin Generar Factura.
2. Sistema: busca y muestra la lista de pedidos que estn listos y no hayan sido facturados an y solicita que se
seleccione uno.
3. Vendedor: selecciona el pedido que desea facturar.
4. Sistema: muestra los datos completos del pedido y calcula el monto total a cobrar.
5. Sistema: solicita la confirmacin de la generacin de la factura.
6. Vendedor: confirma la generacin de la factura.
7. Sistema: genera la factura en estado Generada y actualiza el estado del pedido a Facturado.
8. Sistema: solicita confirmacin de la impresin de la factura.
9. Vendedor: confirma la impresin.
10. Sistema: imprime la factura. Fin del caso de uso.
Flujos Alternativos
A1: no hay pedidos pendientes de facturacin.
A2: el vendedor no confirma la generacin de la factura.
A3: el vendedor NO confirma la impresin.
Observaciones:
1. El Vendedor puede cancelar la ejecucin del caso de uso en cualquier momento.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
21
Programa Nacional 111 Mil - Analistas del Conocimiento

Descripcin con resumen esencial del Caso de Uso 5. Generar reporte de pizzas ms
demandadas

Nombre del Caso de uso: Generar reporte de pizzas ms demandadas Nro. de Orden: 5

Actor Principal: Administrador Actor Secundario: no aplica


Objetivo: generar un reporte que muestre las variedades de pizza ms vendidas en un perodo de tiempo.

Flujo Bsico

1. Administrador: selecciona la opcin Generar reporte de variedades de pizza ms demandadas.

2. Sistema: solicita que se ingrese el perodo sobre el que se quiere generar el reporte (fecha desde y fecha hasta).

3. Administrador: ingresa el perodo de tiempo en el que desea generar el reporte.

4. Sistema: valida que las fecha ingresadas sean vlidas (fecha de inicio menor que la fecha de fin y ambas menores
a la fecha del da de la generacin del reporte), y son fechas vlidas. Solicita confirmacin para la generacin del
reporte.
5. Administrador: confirma la generacin del reporte.

6. Sistema: genera el reporte mostrando en un grfico con las 10 variedades de pizza ms vendidas y su porcentaje
de incidencia en las ventas del perodo seleccionado. Tambin muestra para las 10 variedades de pizza ms
vendidas, el nombre y el monto en nmeros, para el perodo seleccionado. Solicita que se seleccione la forma de
visualizacin del reporte (impreso en papel, en pantalla o en pdf)
7. Administrador: selecciona la opcin de visualizacin por pantalla.

8. Sistema: genera el reporte y lo muestra por pantalla. Fin del caso de uso

Flujos Alternativos

A1: el Administrador selecciona la opcin de visualizacin impreso en papel.


A2: el Administrador selecciona la opcin de visualizacin en un archivo PDF.
A3: el Administrador NO confirma la generacin del reporte.
A4: las fechas ingresadas no son vlidas.
Observaciones:
1. El Administrador puede cancelar la ejecucin del caso de uso en cualquier momento.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
22
Programa Nacional 111 Mil - Analistas del Conocimiento

Consignas:

Construir el diagrama de entidad-relacin correspondiente al Modelo de Dominio presentado,


especificando claves primarias y forneas.
Crear la base de datos derivada del diagrama de entidad-relacin construido en el apartado
anterior, utilizando la herramienta MySQL Workbench. Para ms informacin ver el instructivo:
Crear una base de datos en MySQL Workbench, que est disponible en el repositorio, en la
siguiente direccin: https://github.com/111milprogramadores/bd-instructivos.
Crear los archivos de mapeo (hbm) para cada una de las clases del Modelo de Dominio, segn lo
explicado en el apunte terico de Base de Datos en la seccin El archivo de mapeo XML.
Configurar la conexin de la aplicacin con la base de datos creada utilizando el archivo XML
hibernate.cfg.xml , segn lo explicado en el apunte terico de Base de Datos en la seccin El archivo
de configuracin.
Implementar la capa de acceso a datos, utilizando la herramienta Hibernate. Para ms informacin
consultar en el apunte terico de Base de Datos en la seccin El archivo de configuracin.
Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.
Para la implementacin del caso de uso Generar reporte de pizzas ms demandadas:
o Configurar la conexin de la fuente de datos creada con Hibernate con la biblioteca de
Jasper Reports.
o Crear la plantilla de reporte utilizando la herramienta Jasper Studio
o Implementar el controlador que muestra el reporte generado.
Para ms informacin ver el instructivo: Generacin de reportes con Jasper Reports, que est
disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores/bd-instructivos
Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
23
Programa Nacional 111 Mil - Analistas del Conocimiento

Solucin propuesta para el Diagrama Entidad-Relacin que mapea las clases del Modelo de dominio de la Pizzera:

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
24
Programa Nacional 111 Mil - Analistas del Conocimiento

Ejercicio 3: Caso Prctico Estacionamiento de Universidad


Presentacin del Caso de Estudio

Se describe a continuacin el funcionamiento de la playa de estacionamiento de la Universidad Tecnolgica


y del sistema de informacin que le da soporte.
Pueden estacionar distintos tipos de vehculos (motos/automviles), cada uno de ellos con una tarifa
de ingreso diferente. Si tiene abono, el precio es menor.
Se puede ingresar a la playa de estacionamiento por varios portones de ingreso diferentes.
No se asignan lugares especficos para los vehculos; las personas que ingresan al estacionamiento
debern ubicar su vehculo en algn lugar que se encuentre disponible.
Los interesados pueden comprar un abono de estacionamiento, de pago anticipado, que hace que el
valor de cada estacionamiento sea ms econmico que si paga cada vez que ingresa a la playa. Debe
informar su DNI y la cantidad de dinero que desea acreditar.
Si es la primera vez que estaciona, debe registrar sus datos personales (apellido, nombre, dni), y los
datos del o los vehculos (marca, modelo, dominio), con los cuales desea ingresar a la playa de
estacionamiento.
Una vez registrado el propietario, cada vez que necesite acreditar dinero informa su DNI y la cantidad
de dinero y se le cobra entregndole un comprobante donde consta: apellido y nombre, dni, fecha de
la transaccin, monto acreditado y monto disponible en su cuenta.
El comprobante (ticket) que se entrega como constancia del cobro tiene los siguientes datos: apellido
y nombre del propietario, dni, fecha y hora de la transaccin, monto acreditado y monto disponible en
su cuenta, los nmeros de dominio de todos los vehculos registrados de ese propietario y un nmero
nico de identificacin del comprobante.
Puede tener hasta dos ingresos sin crdito, es decir saldo negativo, que se descontarn de la siguiente
vez que acredite dinero en su cuenta.
Mientras tenga crdito, la persona puede ingresar a la playa con cualquiera de los vehculos registrados.
La persona puede en cualquier momento agregar y/o cambiar los vehculos con los que ingresar a la
playa de estacionamiento.
El valor del estacionamiento es por el da completo, sin lmite de tiempo ni inferior ni superior; es decir
se paga un ingreso diario, que es vlido independientemente de la cantidad de ingresos que haga
durante el mismo da y del tiempo que permanezca en la playa.
Al ingresar se le entrega a la persona un comprobante que contiene: dominio del vehculo, apellido y
nombre del dueo del vehculo, el valor del ingreso, la fecha de ingreso y el saldo disponible. Tambin
se informa el nmero de ingreso del da. El portn por el que ingresa y el usuario logueado.
Si el vehculo no est registrado, se guarda en el ingreso el nmero de dominio del vehculo y se informa
como observacin que no est registrado.
El primer ingreso del da se cobra, descontando del saldo disponible. A partir del segundo ingreso del
da en adelante, el monto debe figurar en cero y se debe informar cul es el nmero de ingreso, por
ejemplo: Segundo ingreso del da.
A las personas que desean ingresar a la playa de estacionamiento sin tener el abono de pago anticipado,
se les cobra en el momento del ingreso, registrando como observacin el nmero de dominio del
vehculo, entregndoles un comprobante con el monto cobrado. Los datos del comprobante en ese
caso son: dominio del vehculo, monto, fecha de ingreso, nmero de vez que ingresa a la playa de
estacionamiento, usuario logueado, fecha y hora y portn por el que ingresa.
Si la persona tiene abono, puede tener hasta el valor de dos estacionamientos como saldo negativo,
que se descontarn de la siguiente vez que acredite dinero en su cuenta.
Gua Prctica del Mdulo Base de Datos
Versin 1.1 Liberada el 16/02/2017
25
Programa Nacional 111 Mil - Analistas del Conocimiento

Modelo de Dominio

Propietario AbonoPropietario
apellido fecha
dni hora
nombre montoCobrado
acreditarMonto() 1 nroComprobante
calcularSaldoActual() propietario saldoActual
conocerVehiculo() conocerIngreso()
cuantosIngresosPeriodo() getFecha()
getApellido() getHora() usuario
getDni() getNroComprobante()
getNombre() 1
getSaldoActual()
obtenerVehiculosPropietario() mostrarFechaYHora() Usuario
setApellido() new()
setDni() apellido
setFecha()
setNombre() nombre
setHora() permiso
setMontoCobroda() nombreUsuario
setNroComprobante() password 1..*
Permiso
setSaldoActual() conocerPermisos()
descripcin
vehiculo
nombre
1
1..* Vehiculo usuario
ingreso 0..*
Modelo 1 dominio
vehiculo Ingreso
1..* nombre conocerModelo() 0..1
codigoBarra
modelo fechaEgreso
modelo fechaIngreso
tipoVehiculo
horaEgreso
horaIngreso
Marca portn Portn
monto
nombre 1 nroTicket descripcin
1
conocerModelo() observacion nombre
TipoVehculo
conocerPorton()
descricpin conocerTarifa()
nombre conocerUsuario()
conocerVehiculo()
determinarNroIngreso()
tarifa
tarifa 1..* 1

Tarifa
cantidadIngresosSinSaldo
esDeAbono
fecha
montoIngreso
conocerTipoVehiculo()

Vista parcial del Diagrama de Casos de Uso

1 Registrar
Propietario

4. Registrar Ingreso
de Vehculo

2 Registrar Vehculo
Responsable de Caj ero
Estacionamiento
5. Registrar Egreso
de Vehculo

3. Registrar Cobro
de abono de
estacionamiento

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
26
Programa Nacional 111 Mil - Analistas del Conocimiento

Prototipo de la Interfaz de Usuario para el Caso de Uso 3. Registrar Cobro de abono de


estacionamiento

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
27
Programa Nacional 111 Mil - Analistas del Conocimiento

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
28
Programa Nacional 111 Mil - Analistas del Conocimiento

Descripcin con resumen esencial del Caso de Uso 3. Registrar Cobro de abono de
estacionamiento

Nombre del Caso de uso: Registrar Cobro de abono de estacionamiento Nro. de Orden: 3

Actor Principal: Responsable de Estacionamiento (RE) Actor Secundario: no aplica

Objetivo: acreditar saldo en la cuenta de un propietario

Flujo Bsico

1. RE: selecciona la opcin de registrar cobro de abono de estacionamiento.


2. Sistema: solicita que se ingrese el DNI del propietario al que se desea acreditar saldo.
3. RE: ingresa el nmero de DNI.
4. Sistema: controla que el nmero de DNI sea vlido y que corresponda al nmero de DNI registrado y
corresponde. Muestra el apellido y nombres y el saldo actual del propietario registrado con ese nmero
de DNI.
5. Sistema: solicita que se ingrese el monto a acreditar.
6. RE: ingresa el monto a acreditar.
7. Sistema: valida que el monto ingresado sea un nmero vlido y es un monto vlido. Solicita
confirmacin para la acreditacin del monto en la cuenta del propietario.
8. RE: Confirma la acreditacin del monto en la cuenta.
9. Sistema: muestra el saldo actualizado de la cuenta (saldo anterior + monto acreditado).
10. Sistema: genera e imprime el comprobante de acreditacin de saldo en la cuenta.
11. Sistema acredita el monto, con la fecha y hora actual, nmero de comprobante y saldo actual. Fin del
caso de uso.
Flujos Alternativos

A1: El DNI ingresado no es un nmero vlido.


A2: El DNI ingresado no corresponde a un propietario registrado.
A3: El monto ingresado no es un monto vlido.
A4: El RE no confirma la acreditacin del monto a la cuenta.
Observaciones:
1. El RP puede cancelar la ejecucin del caso de uso en cualquier momento.
2. El saldo actual de una cuenta puede ser negativo, en ese caso debera mostrarse en color rojo y con
un signo negativo delante.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
29
Programa Nacional 111 Mil - Analistas del Conocimiento

Consignas:

Construir el diagrama de entidad-relacin correspondiente al Modelo de Dominio presentado,


especificando claves primarias y forneas.
Crear la base de datos derivada del diagrama de entidad-relacin construido en el apartado
anterior, utilizando la herramienta MySQL Workbench. Para ms informacin ver el instructivo:
Crear una base de datos en MySQL Workbench, que est disponible en el repositorio, en la
siguiente direccin: https://github.com/111milprogramadores/bd-instructivos.
Crear los archivos de mapeo (hbm) para cada una de las clases del Modelo de Dominio, segn lo
explicado en el apunte terico de Base de Datos, en la seccin El archivo de mapeo XML.
Configurar la conexin de la aplicacin con la base de datos creada utilizando el archivo XML
hibernate.cfg.xml, segn lo explicado en el apunte terico de Base de Datos, en la seccin El
archivo de configuracin.
Implementar la capa de acceso a datos, utilizando la herramienta Hibernate. Para ms informacin
consultar en el apunte terico de Base de Datos en la seccin El archivo de configuracin.
Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
30
Programa Nacional 111 Mil - Analistas del Conocimiento

Solucin propuesta para el Diagrama Entidad-Relacin que mapea las clases del Modelo de dominio del Estacionamiento de
Universidad:

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
31
Programa Nacional 111 Mil - Analistas del Conocimiento

Ejercicio 4: Caso Prctico Mercado de Abasto


Presentacin del Caso de Estudio
El Mercado de Abasto de Frutas y Verduras de una ciudad de la regin necesita un Sistema de Informacin
que brinde soporte a las actividades que all se realizan.
El mercado est organizado en sectores. Cada sector contiene puestos, los cuales son alquilados a empresas
y quinteros (genricamente clientes) para que all realicen sus ventas. Existen distintos tipos de puestos
(con techo, sin techo, con cmara refrigerante, etc.) y distintas dimensiones para cada puesto (10m2, 15m2,
etc.), para poder ajustarse mejor a las necesidades de cada cliente.
El precio del alquiler depende del sector en el que se encuentre el puesto, el tipo de puesto y sus
dimensiones, y est predefinido.
Cuando un cliente desea alquilar uno o ms puestos, se verifica la disponibilidad del tipo de puesto que
requiere. Si existe disponibilidad y el cliente est de acuerdo con el precio, se realiza un contrato de alquiler
por cada puesto que se alquile. En el contrato se especifica la fecha de inicio y fin del alquiler, el monto
mensual del alquiler y tiene adems un nmero que identifica el contrato que es nico y el nombre del
responsable por parte del Mercado que intervino en la firma del contrato y el responsable de la registracin
del mismo. Adems, cada puesto cuenta con un medidor para el consumo de energa elctrica.
Mensualmente se registran las lecturas de cada medidor, ya que el consumo de cada puesto es facturado
al cliente que est alquilando ese puesto. En el momento de efectuar el alquiler, se registra en el contrato
la ltima lectura del medidor del puesto que se est alquilando. Los aspectos vinculados a la facturacin
quedan excluidos del alcance del sistema, como as tambin la gestin de cobro de los alquileres.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
32
Programa Nacional 111 Mil - Analistas del Conocimiento

Modelo de Dominio
entity entity
entity TipoPuesto entity
Empleado
Cliente Sector
apellido descripcion
cuit nombre descripcion
dni
domicilio nombre
fechaIngreso getNombre()
legajo razonSocial buscarPuestosDisponibles()
tipoPuesto 1
nombre crearContrato() 1
nombreUsuario cuantosContratosPeriodo() entity sector
password cuantosPuestosAlquila() PrecioAlquiler
getNombreCompleto() existeCliente() fechaVigencia
getCuit() precio
1
1 getDomicilio()
getRazonSocial() estaVigente()
quePuestosAlquila() getPrecio()
dimension
tieneContratoVigente() precioAlquiler 1..*

responsableMercado 1
contrato entity
0..* entity
Dimension
Puesto
empleado entity ancho
Contrato numero
largo
entity fechaCancelacion alquilar() nombre
Sesion fechaFinContrato cancelarAlquiler()
calcularMetrosCuadrados()
fechaFin fechaInicioContrato darBaja()
estaDisponible()
fechaInicio registr montoMensual
horaFin numero estaDisponibleEnFechas()
puesto
horaInicio getEstado()
1 calcularMontoTotalContrato() getLectura()
estaAbierta() cancelar() getNumero() entity
getUsuarioSesion() estaPuestoEnPeriodo() 1
getPrecioAlquiler() lectura Lectura
estaVigente() habilitar()
getNumero() inhabilitar() fechaCaptura
0..*
new() lectura
mostrarDatosPuesto()
new() new() getFechaCaptura()
obtenerFechaRegistro() obtenerFechaUltimaLectura() getLectura()
obtenerPrecioVigente()
tlimaLecturaMedidor 1
estado obtenerUltimaLectura()
entity obtenerUltimaLecturaMedidor()
Los mtodos de seteo estn
Estado 1
setEstado()
especificados a modo de setLectura()
ejemplo en la clase Puesto. Se descripcion setNumero()
asume que en el resto de las nombre setPrecioAlquiler()
clases, se especifica de la esAlquilado()
misma forma esDisponible()

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
33
Programa Nacional 111 Mil - Analistas del Conocimiento

Vista parcial del Diagrama de Casos de Uso

14. Registrar 11. Registrar


1. Registrar Baja de un precio de alquiler
12. Puesto
Alquiler de 2. Registrar Inhabilitar de un puesto
Puesto extend Cliente Puesto
Responsable
extend 15. Generar
de Alquileres
13. Habilitar reporte de
9. Imprimir Puesto puestos por
Contrato estado
Administrador
del Mercado

3. Registrar
Puesto 4. Registrar
8. Registrar Empleado
10. Registrar Lectura de
Cancelacin de Consumo de
Contrato Energa 7. Registrar
Dimensin 5. Registrar 6. Registrar
Tipo de Sector
Puesto

Nro. Nombre del Caso de Uso Breve Descripcin


1. Registrar Alquiler de Puesto Registrar el alquiler de un puesto a un cliente, generando un contrato
por un perodo de tiempo definido y actualizando la disponibilidad del
puesto.
2. Registrar Cliente Registrar los datos identificatorios del cliente que va a alquilar un
puesto del mercado
3. Registrar Puesto Registrar los datos que definen cada uno de los puestos del mercado
de abasto.
4. Registrar Empleado Registrar los datos identificatorios de los empleados que trabajan en
el mercado
5. Registrar Tipo de Puesto Registrar las caractersticas de un tipo de puesto del mercado.
6. Registrar Sector Registrar los datos de un sector del mercado.
7. Registrar Dimensin Registrar las medidas tipo para un puesto.
8. Registrar Lectura de Registrar la lectura de un consumo mensual de energa de un puesto
Consumo de Energa del mercado.
9. Imprimir Contrato Imprimir un contrato generado en papel, en un archivo o en formato
PDF.
10. Registrar Cancelacin de Registrar la fecha de cancelacin anticipada de un contrato de alquiler
Contrato de un puesto del mercado.
11. Registrar precio de alquiler Registrar la definicin del precio de alquiler, que depende del sector
de un puesto en el que se encuentra el puesto, el tipo de puesto y sus dimensiones.
12. Inhabilitar Puesto Registrar la inhabilitacin de un puesto, para evitar que el mismo
pueda ser alquilado.
13. Habilitar Puesto Registrar la habilitacin de un puesto para que el mismo est
disponible para ser alquilado
14. Registrar Baja de un Puesto Registrar la fecha de baja de un puesto del mercado, que ya no podr
ser utilizado.
15. Generar reporte de puestos Generar un reporte que muestre los puestos del mercado organizados por el
por estado estado en que se encuentren.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
34
Programa Nacional 111 Mil - Analistas del Conocimiento

Prototipo de la Interfaz de Usuario para la funcionalidad del Alquiler de un Puesto

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
35
Programa Nacional 111 Mil - Analistas del Conocimiento

Descripcin con resumen esencial del Caso de Uso 1. Registrar Alquiler de Puesto

Nombre del Caso de uso: Registrar Alquiler de Puesto Nro. de Orden: 1

Actor Principal: Responsable de Alquileres (RA) Actor Secundario: no aplica

Objetivo: Registrar el alquiler de un puesto a un cliente, generando un contrato por un perodo de tiempo definido y
actualizando la disponibilidad del puesto.
Flujo Bsico

1. RA: selecciona la opcin Registrar Alquiler de Puesto


2. Sistema: solicita que se ingrese la fecha de inicio y de vencimiento del contrato de alquiler.
3. RA: ingresa las fechas requeridas.
4. Sistema: valida las fechas (la fecha de inicio debe ser menor que la fecha de vencimiento) y el formato de las
mismas es correcto.
5. Sistema: busca y muestra los distintos tipos de puesto y dimensiones (en metros cuadrados) y solicita que se
seleccione un tipo de puesto y una dimensin.
6. RA: selecciona un tipo de puesto y una dimensin.
7. Sistema: busca en cada sector del mercado los puestos disponibles para las fechas ingresadas (Ver Obs. 3) que
correspondan al tipo de puesto y dimensin seleccionados, encuentra al menos uno, mostrando para cada puesto
los siguientes datos: nombre del sector, nmero de puesto, dimensiones y precio vigente. Solicita que se
seleccione uno.
8. RA: selecciona un puesto.
9. Sistema: solicita que se ingrese nombre o razn social del cliente.
10. RA: ingresa los datos solicitados.
11. Sistema: (la fecha de inicio debe ser menor que la fecha de vencimiento) y el formato de las mismas es correcto.
(domicilio y CUIT).
12. Sistema: busca y muestra la ltima lectura del medidor del puesto a alquilar.
13. Sistema: solicita la confirmacin para registrar el alquiler.
14. RA: confirma la registracin.
15. Sistema: registra el alquiler del puesto con el perodo de alquiler, referencia al cliente, al puesto alquilado,
nmero de contrato, responsable que efectu la registracin del contrato (que es el usuario actual), fecha, ltima
lectura del medidor del puesto alquilado; actualiza el estado del puesto a Alquilado.
16. Sistema: muestra el nmero de contrato generado y consulta si se desea imprimir el contrato registrado.
17. RA: No desea imprimir el contrato. Fin del Caso de Uso
Flujos Alternativos

A1: las fechas ingresadas no son vlidas.


A2: el cliente no est registrado; para registrarlo se llama al Caso de Uso 2. Registrar Cliente.
A3: el RA desea imprimir el contrato, llama al Caso de Uso 9. Imprimir Contrato.
A4: el RA no confirma la registracin del alquiler.
Observaciones:
1. El RP puede cancelar la ejecucin del caso de uso en cualquier momento.
2. La fecha de vencimiento debe ser mayor a la fecha de inicio del contrato.
3. El perodo de vigencia del contrato (fecha de inicio del contrato fecha de fin del contrato) debe validarse para
que no se superponga con otros contratos para el mismo puesto.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
36
Programa Nacional 111 Mil - Analistas del Conocimiento

Descripcin con resumen esencial del Caso de Uso 15. Generar reporte de puestos por
estado

Nombre del Caso de uso: Generar reporte de puestos por estado Nro. de Orden: 15

Actor Principal: Administrador del Mercado (AM) Actor Secundario: no aplica


Objetivo: generar un reporte que muestre los puestos del mercado organizados por el estado en que se encuentren.

Flujo Bsico
1. Administrador del Mercado (AM): selecciona la opcin Generar reporte de puestos por estado.
2. Sistema: busca y muestra los puestos del mercado y los estados posibles, y solicita que se seleccionen los criterios
de bsqueda.
3. AM: selecciona el o los puestos y el o los estados por los que desea generar el reporte. (Ver Observacin 2)
4. Sistema: busca los puestos en funcin de los criterios elegidos y encuentra al menos un puesto para mostrar.
Solicita confirmacin para generar el reporte.
5. AM: confirma la generacin del reporte.
6. Sistema: genera el reporte con siguientes datos del o los puestos: tipo de puesto, dimensin, sector, nmero y
estado. Solicita que se seleccione la forma de visualizacin del reporte (impreso en papel, en pantalla o en pdf)
7. AM: selecciona la opcin de visualizacin por pantalla.
8. Sistema: genera el reporte y lo muestra por pantalla. Fin del caso de uso
Flujos Alternativos
A1: el AM selecciona la opcin de visualizacin impreso en papel.
A2: el AM selecciona la opcin de visualizacin a archivo PDF.
A3: el AM NO confirma la generacin del reporte.
A4: no hay datos para mostrar que cumplan con los criterios elegidos por el actor.
Observaciones:
2. El AM puede cancelar la ejecucin del caso de uso en cualquier momento.
3. Seleccin por defecto: todos los puestos, todos los estados.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
37
Programa Nacional 111 Mil - Analistas del Conocimiento

Consignas:

Construir el diagrama de entidad-relacin correspondiente al Modelo de Dominio presentado,


especificando claves primarias y forneas.
Crear la base de datos derivada del diagrama de entidad-relacin construido en el apartado
anterior, utilizando la herramienta MySQL Workbench. Para ms informacin ver el instructivo:
Crear una base de datos en MySQL Workbench, que est disponible en el repositorio, en la
siguiente direccin: https://github.com/111milprogramadores/bd-instructivos.
Crear los archivos de mapeo (hbm) para cada una de las clases del Modelo de Dominio, segn lo
explicado en el apunte terico de Base de Datos, en la seccin El archivo de mapeo XML.
Configurar la conexin de la aplicacin con la base de datos creada utilizando el archivo XML
hibernate.cfg.xml, segn lo explicado en el apunte terico de Base de Datos, en la seccin El
archivo de configuracin.
Implementar la capa de acceso a datos, utilizando la herramienta Hibernate. Para ms informacin
consultar en el apunte terico de Base de Datos en la seccin El archivo de configuracin.
Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.
Para la implementacin del caso de uso Generar reporte de pizzas ms demandadas:
o Configurar la conexin de la fuente de datos creada con Hibernate con la librera de Jasper
Reports.
o Crear la plantilla de reporte utilizando la herramienta Jasper Studio
o Implementar el controlador que muestra el reporte generado.
Para ms informacin ver el instructivo: Generacin de reportes con Jasper Reports, que est
disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores/bd-instructivos

Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:


https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
38
Programa Nacional 111 Mil - Analistas del Conocimiento

Diagrama Entidad-Relacin

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
39
Programa Nacional 111 Mil - Analistas del Conocimiento

Ejercicio 5: Caso Prctico Panadera


Presentacin del Caso de Estudio

La Panadera que se describe en este caso de estudio, pertenece a la Fundacin Brisas de Cambio, ubicada
en el interior de la provincia de Crdoba. La Fundacin tiene el propsito fundamental de contener
laboralmente a un grupo numeroso de jvenes y adultos con discapacidades intelectuales y fsicas. Su
objetivo es desarrollar proyectos productivos que les permita desempearse en un oficio para sentirse
tiles y adquirir a diario el conocimiento necesario para desempearse en esta actividad dentro de un
ambiente laboral sano.
En este contexto, la panadera est atendida por este grupo de personas con capacidades especiales y la
intencin es desarrollar un producto de software que asista a las personas en el proceso de venta y cobro
de los productos que la panadera vende.
Toda la interaccin con el producto debe ser basada en imgenes y muy simple, para lo cual, se presentan
a continuacin una serie de prototipos que ayudarn a visualizar lo que se pretende construir.
El producto de software esencialmente realizar las siguientes funcionalidades. En este caso haremos foco
en el desarrollo del caso de uso que est remarcada, que se presenta a continuacin:

Abrir Caja
Registrar Cobro

Supervisor

Cerrar Caja Vendedor

Registrar
Denominacin
Registrar Dinero
Producto

Administrador del
Sistema

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
40
Programa Nacional 111 Mil - Analistas del Conocimiento

Modelo de Dominio

entity
entity Dinero
Producto denominacion
DetalleProductoCobrado
producto esMoneda
descripcion DineroRecibido
cantidad dinero valor
nombre 1 monto cantidad
precio conocerImagen() imagen
unidadMedida calcularMontoDetalle() conocerDinero() 1 esMoneda()
getCantidad() obtenerImagenDorso() 1..*
unidadMedida 1 detalleCobro 1..* new() obtenerImagenFrente()
1..* setCantidad() entity
UnidadMedida 1 Imagen
abreviatura Cobro dineroRecibido dinero dorso
nombre frente
simbolo fechaCobro
calcularTotalACobrar() entity
calcularVuelto() ComposicionCaja
desagregarVueltoPorDenominacion()
cantidad
0..*
calcMontoEnDenominacion()
entity cobro
TipoMovimiento tipoMovimiento
entity 0..*
descripcion Caja
1 entity 0..* composicion
nombre
MovimientoCaja fecha
horaApertura
fecha
movimiento horaCierre Los mtodos de seteo, contructor y de
monto
calcularTotalCaja() conocimiento estn especificados
ingresarDinero() para la clase DineroRecibido. El resto
mostrarComposicionCaja() de las clases deben tenerlas tambin.
obtenerMovimientosPorTipo()
retirarDinero() Se asume que el negocio tiene una
sola caja

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
41
Programa Nacional 111 Mil - Analistas del Conocimiento

Prototipo de la Interfaz de Usuario asociados a la Funcionalidad de Registrar Cobro

Se arrastran aqu los billetes


con los que se efectu el pago

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
42
Programa Nacional 111 Mil - Analistas del Conocimiento

Descripcin con resumen esencial del Caso de Uso 1. Registrar Venta

Nombre del Caso de uso: Registrar Cobro Nro. de Orden: 1

Actor Principal: Vendedor Actor Secundario: no aplica


Objetivo: registrar la venta y cobro de los productos de la panadera.

Flujo Bsico
1. Vendedor: selecciona la opcin Registrar Cobro
2. Sistema: muestra las imgenes de todos los productos disponibles para la venta con sus precios y solicita que se
seleccionen los productos que se incluirn en la venta.
3. Vendedor: selecciona cada uno de los productos.
4. Sistema: para cada producto de venta por unidad solicita que se ingrese la cantidad que se desea considerar en
la venta.
5. Vendedor: ingresa la cantidad de cada producto.
6. Sistema: para cada producto, calcula el precio en funcin de la cantidad ingresada (precio del producto *
cantidad). Muestra el total de la venta y las imgenes de billetes y monedas para que se seleccione el dinero que
recibir para el cobro.
7. Vendedor: selecciona cada uno de los billetes y/o monedas que le entregan para pagar.
8. Sistema: calcula el vuelto (dinero entregado importe total de venta) y si corresponde entregar dinero como
vuelto, muestra imgenes de cada uno de los billetes y/o monedas que corresponde entregar.
9. Sistema: actualiza el dinero existente en la caja. Fin del caso de uso.
Flujos Alternativos
A1: los productos a cobrar son por peso, debe ingresar el precio.
A2: algunos de los productos a cobrar son por peso, debe ingresar el precio y otros por cantidad, debe ingresar
unidades y calcular el precio.
A3: no hay en la caja billetes y/o monedas para conformar el vuelto.
Observaciones:
1. El Vendedor puede cancelar la ejecucin del caso de uso en cualquier momento.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
43
Programa Nacional 111 Mil - Analistas del Conocimiento

Consignas:

Construir el diagrama de entidad-relacin correspondiente al Modelo de Dominio presentado,


especificando claves primarias y forneas.
Crear la base de datos derivada del diagrama de entidad-relacin construido en el apartado
anterior, utilizando la herramienta MySQL Workbench. Para ms informacin ver el instructivo:
Crear una base de datos en MySQL Workbench, que est disponible en el repositorio, en la
siguiente direccin: https://github.com/111milprogramadores/bd-instructivos.
Crear los archivos de mapeo (hbm) para cada una de las clases del Modelo de Dominio, segn lo
explicado en el apunte terico de Base de Datos, en la seccin El archivo de mapeo XML.
Configurar la conexin de la aplicacin con la base de datos creada utilizando el archivo XML
hibernate.cfg.xml , segn lo explicado en el apunte terico de Base de Datos, en la seccin El
archivo de configuracin.
Implementar la capa de acceso a datos, utilizando la herramienta Hibernate. Para ms informacin
consultar en el apunte terico de Base de Datos en la seccin El archivo de configuracin.
Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
44
Programa Nacional 111 Mil - Analistas del Conocimiento

Solucin propuesta para el Diagrama Entidad-Relacin que mapea las clases del Modelo de dominio de la Panadera:

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
Programa Nacional 111 Mil - Analistas del Conocimiento

Ejercicio 6: Caso Prctico Consultorio Odontolgico


Presentacin del Caso de Estudio

En este consultorio odontolgico trabajan varios profesionales que brindan sus servicios. Cuando un
paciente necesita atencin, debe solicitar un turno previamente. No se atienden pacientes que no tienen
turno. El odontlogo para el que el paciente solicita el turno es el que lo va a atender. Cada odontlogo
tiene una agenda con los das y horarios en los que puede atender, que se crea mensualmente en funcin
de la disponibilidad que el odontlogo informa, con turnos de 30 minutos de duracin. Esta agenda genrica
representa los das y horarios de atencin que tiene disponible ese odontlogo en trminos generales y la
duracin de su consulta. Esta informacin se tomar como base para crear la agenda cada mes,
considerando para cada mes los das y/u horarios que en ese mes no podr atender.
Cuando el paciente llama por telfono, se le pregunta el motivo de la consulta y en funcin de eso se le
asigna uno o ms turnos. Por ejemplo, si lo que debe hacerse es un tratamiento de conducto, se le asignan
dos turnos de media hora, consecutivos.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
Programa Nacional 111 Mil - Analistas del Conocimiento

Modelo de Dominio
DetalleDefinicionAgenda
Odontologo DefinicinAgenda
0..* detalleDefinicion
definicinAgenda diaSemana
apellido duracionTurno
duracionIntervalo
domicilio fechaCreacion 1..* horaFin
fechaNacimiento fechaVigencia
horaInicio
nombre
nroDocumento
nroMatricula 1 TipoDoc
tipoDoc
obtenerAgendaMes() nombre
obtenerAgendaTipo() abreviatura
obtenerPrestacionesRealizadas()
obtenerTurnosCancelados() 1
obtenerTurnosCumplimentados()
tipoDoc
odontologoCabecera
1

agenda
Paciente
0..*
apellido
domicilio
Agenda
fechaNacimiento
fechaInicio paciente nombre
fechaFin nroDocumento
nroPaciente
contarTurnos()
hayTurnosDisponibles() 0..1 obtenerConsultasPeriodo()
hayTurnosSuperpuestos() obtenerConsultasPorOdontologo()
obtenerOdontograma()
obtenerPrestacionesRecibidasPorOS()

turno
1..* Consulta

Turno horaInicio
horaFin 0..*
hora consulta descripcion consulta
fecha
calcularTotalConsulta()
0..1 esParticular()
mostrarDetalleConsulta()
estado obtenerElementosTratados()
odontologoAtendio()
1 queObraSocialUso()

Estado
descripcion
nombre

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
47
Programa Nacional 111 Mil - Analistas del Conocimiento

Descripcin con resumen esencial del Caso de Uso 1. Generar Agenda Mensual de
Odontlogo

Nombre del Caso de uso: Generar Agenda Mensual de Odontlogo Nro. de Orden: 1

Actor Principal: Secretaria del Consultorio (SC) Actor Secundario: no aplica

Objetivo: generar la agenda para un odontlogo, de un mes en particular, as podrn registrarse los turnos de los
pacientes.
Flujo Bsico

1. SC: selecciona la opcin Generar Agenda Mensual de Odontlogo


2. Sistema: busca y muestra los odontlogos registrados y solicita que se seleccione el odontlogo al que le
generar la agenda mensual.
3. SC: selecciona odontlogo.
4. Sistema: busca y muestra para el odontlogo seleccionado la definicin de horarios para cada agenda vigente y
solicita que se seleccione el mes/ ao para el cual generar la agenda.
5. SC: selecciona el mes y el ao.
6. Sistema: genera la agenda para el mes, teniendo en cuenta la cantidad de das hbiles del mes y los das y
horarios de inicio y fin de atencin definidos para el odontlogo, como as tambin la duracin de cada turno y
si hay horarios de intervalo en los que no se debe asignar turnos. (Ver observacin 2)
7. Sistema: muestra la agenda generada y consulta si desea realizar algn cambio en los turnos generados. Solicita
la confirmacin para su registracin.
8. SC: confirma la registracin de la agenda sin modificaciones.
9. Sistema: registra la agenda generada con todos los turnos en estado Disponible. Fin del Caso de uso.
Flujos Alternativos

A1: no hay definicin de horarios en la agenda para el odontlogo seleccionado.


A2: SC no confirma la registracin de la agenda.
A3: SC realiza cambios en la agenda (quita o agrega turnos).
Observaciones:
1. La SC puede cancelar la ejecucin del caso de uso en cualquier momento.
2. Horario de intervalo: se refiere a perodos de tiempo en los que no se debe asignar turnos, por ejemplo, para el
almuerzo.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
48
Programa Nacional 111 Mil - Analistas del Conocimiento

Consignas:

Construir el diagrama de entidad-relacin correspondiente al Modelo de Dominio presentado,


especificando claves primarias y forneas.
Crear la base de datos derivada del diagrama de entidad relacin construido en el apartado
anterior, utilizando la herramienta MySQL Workbench. Para ms informacin ver el instructivo:
Crear una base de datos en MySQL Workbench, que est disponible en el repositorio, en la
siguiente direccin: https://github.com/111milprogramadores/bd-instructivos.
Crear los archivos de mapeo (hbm) para cada una de las clases del Modelo de Dominio, segn lo
explicado en el apunte terico de Base de Datos en la seccin El archivo de mapeo XML.
Configurar la conexin de la aplicacin con la base de datos creada utilizando el archivo XML
hibernate.cfg.xml, segn lo explicado en el apunte terico de Base de Datos, en la seccin El
archivo de configuracin.
Implementar la capa de acceso a datos, utilizando la herramienta Hibernate. Para ms informacin
consultar en el apunte terico de Base de Datos, en la seccin El archivo de configuracin.
Una propuesta de solucin est disponible en el repositorio, en la siguiente direccin:
https://github.com/111milprogramadores. Para obtener asistencia sobre cmo descargar los
archivos de este repositorio, est disponible el Instructivo de descarga de proyecto del repositorio
pblico de 111mil en GitHub.

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
49
Programa Nacional 111 Mil - Analistas del Conocimiento

Solucin propuesta para el Diagrama Entidad-Relacin que mapea las clases del Modelo de dominio del Consultorio Odontolgico:

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017

50
Programa Nacional 111 Mil - Analistas del Conocimiento

Fuentes de Informacin

Todos los casos de estudio planteados son elaboracin del equipo de Formadores que prepar el
material. (Meles, Judith /Robles Joaqun / Fey Candelaria).

Gua Prctica del Mdulo Base de Datos


Versin 1.1 Liberada el 16/02/2017
51