Documente Academic
Documente Profesional
Documente Cultură
Gestin de Datos
Trabajo Prctico
1 Cuatrimestre 2017
Uber - FRBA
Enunciado V1.0
1
ndice
Introduccin
Objetivos generales
Descripcin general
Componentes del TP
Base de Datos y Modelo de Datos
Aplicacin Desktop
Requerimientos
General
Base de Datos 4
Aplicacin Desktop 4
General 4
Base de Datos 4
Aplicacin Desktop 4
Restricciones de la solucin 16
Condiciones de aprobacin 16
Testing 6
Modelo de Datos 6
Consultas SQL 7
Respetar Gua de ABMs 17
Aplicacin Desktop 7
Fecha de entrega y condiciones 17
Sobre los grupos 18
Ayuda y contacto 18
Donde aprender C#
Sobre la eleccin de C# 19
Obtencin de herramientas 20
Formato de entrega 21
Lugar de envo 21
Estructura del archivo zip 2
Readme.txt: 22
Estrategia.pdf: 22
\src: 22
\data 23
2
Introduccin
Objetivos generales
Descripcin general
Componentes del TP
El alumno recibir dos componentes ya hechos del sistema y, en base a estos deber
crear uno nuevo e implementar nuevas funcionalidades. Los componentes a recibir son:
La ctedra provee un script que permite crear una base de datos en el motor SQL
Server 2012. Esta base de datos incluye el modelo de una nica tabla, llamada maestra,
que es cargada con datos provistos por la ctedra. Los datos de esa tabla se encuentran
desorganizados y no poseen ningn tipo de normalizacin.
El alumno deber estudiar los datos recibidos y confeccionar un modelo de datos
que siga todos los estndares de desarrollo de bases de datos explicados durante la
cursada.
Los datos de esta tabla maestra pertenecen a un dominio de gestin de una clnica
mdica.
El sistema a desarrollar ser utilizado por 3 tipos de usuarios distintos:
3
administradores, afiliados y profesionales.
Parte de la lgica del negocio a resolver deber ser inferida por el alumno, en base
a las columnas y valores presentes en los datos. De todas maneras, es recomendable
consultar al grupo de Google de la materia antes de tomar decisiones incorrectas.
Aplicacin Desktop
Requerimientos
General
El alumno deber crear todos los componentes de base de datos e implementar
todas las funcionalidades pedidas para la aplicacin Desktop, cumpliendo con las
siguientes pautas:
Base de Datos
El alumno deber crear un modelo de datos que organice y normalice los datos de
la nica tabla provista por la ctedra. Este modelo de datos incluye:
Creacin de esquema correspondiente.
Creacin de nuevas tablas y vistas.
Creacin de claves primarias y forneas para relacionar estas tablas.
Creacin de constraints y triggers sobre estas tablas cuando fuese necesario.
Creacin de los ndices para acceder a los datos de estas tablas de manera eficiente.
Migracin de datos: Cargar todas las tablas creadas utilizando la totalidad de los datos
entregados por la ctedra en la nica tabla del modelo. Para este punto debern
utilizarse Stored Procedures sobre la base de datos. No podr realizarse la migracin
de datos utilizando la aplicacin Desktop ni ninguna otra herramienta auxiliar.
Adems de la migracin, se debe incluir la insercin de datos no incluidos en la tabla
maestra que sean necesarios para el funcionamiento de la aplicacin desktop, como
por ejemplo, los roles.
El alumno deber entregar un nico archivo de Script que al ejecutar realice todos
los pasos mencionados anteriormente, en el orden correcto. Todo el modelo de datos
confeccionado por el alumno deber ser creado y cargado correctamente ejecutando este
Script una nica vez, antes de empezar a testear la aplicacin Desktop.
Todas las columnas creadas para las nuevas tablas debern respetar los mismos
tipos de datos de las columnas existentes en la tabla principal. A su vez el alumno podr
crear nuevas columnas, claves e identificadores para satisfacer sus necesidades. Pero
nunca se podr inventar informacin, por ejemplo, crear un cliente que nunca existi.
4
Aplicacin Desktop
El alumno deber crear una aplicacin Desktop en C# sobre Visual Studio 2012 con
Framework .NET versin 4.5. Esta aplicacin deber contar con formularios, reportes y
tablas.
Las funcionalidades existentes en el sistema son todas las que el TP exige
desarrollar en la aplicacin Desktop. El listado completo es el siguiente:
ABM de Rol
Login y Seguridad
Registro de Usuario
ABM de Cliente
ABM de Automvil
ABM de Chofer
Registro de Viajes
Rendicin de cuenta del chofer
Facturacin a Cliente
Listado Estadstico
1. ABM de Rol
Funcionalidad para poder crear, modificar y eliminar el acceso de un usuario a una
opcin del sistema.
Crear un rol implica cargar los siguientes datos:
Nombre
Listado de Funcionalidades (seleccin acotada)
Todos los datos mencionados anteriormente son obligatorios.
Un rol posee un conjunto de funcionalidades y las mismas no pueden estar repetidas
dentro de un rol en particular, adems de que una funcionalidad puede estar en ms de un
rol al mismo tiempo. Debe tenerse en cuenta, que actualmente existen 3 roles.
Afiliado
Administrativo
Profesional
En la modificacin de un rol solo se pueden alterar los campos: nombre y el listado
de funcionalidades. Se deben poder quitar de a una las funcionalidades como as tambin
agregar nuevas funcionalidades a rol que se est modificando.
La eliminacin del rol implica una baja lgica del mismo, sea, el rol debe poder
inhabilitarse. No est permitida la asignacin de un rol inhabilitado a un usuario, por ende,
se debe quitar el rol inhabilitado a todos aquellos usuarios que lo posean. Un usuario
puede tener ms de un rol asignado.
Se debe poder volver a habilitar un rol inhabilitado desde la seccin de
modificacin. Esto no implica recuperar las asignaciones que existan en un pasado.
5
Para elegir el rol que se desea modificar o eliminar se debe mostrar un listado con
todos los roles existentes en el sistema.
2. Login y Seguridad
Al ejecutar la aplicacin el usuario no podr acceder a ninguna funcionalidad del
sistema hasta completar el proceso de Login.
El proceso de Login pedir al usuario su Username y su Password. Si Login es
correcto, el usuario podr acceder al sistema, EN CASO DE QUE EL USUARIO TENGA
ASIGNADO MAS DE UN ROL, SE DEBER SELECCIONAR CON CUAL DE
ELLOS SE QUIERE LOGUEAR.
Al acceder al sistema, la aplicacin solo deber generar y mostrar las entradas de
men disponibles para este usuario, segn el rol seleccionado. El usuario no debe ni
siquiera ver las funcionalidades a las que no posee acceso.
Si el Login es incorrecto el usuario no podr acceder al sistema. Se debe volver a
mostrar el Login para que intente nuevamente. El sistema debe llevar un registro de
cantidad intentos fallidos de login. Luego de 3 intentos fallidos, en cualquier momento,
el usuario debe ser inhabilitado. Al realizar un Login satisfactorio, el sistema deber
limpiar la cantidad de intentos fallidos.
El Login se considera una funcionalidad de caractersticas especiales. No se
considera una funcionalidad que puede ser asignada a un rol. Todos los usuarios tienen la
capacidad de utilizar el Login.
3. Registro de Usuario
5. ABM de Automvil
Esta funcionalidad permite poder crear, modificar y eliminar los automviles que
forman parte de la empresa.
Dar de alta un nuevo automvil implica cargar los siguientes datos:
Marca (seleccin acotada)
Modelo
Patente
Turno
Chofer Commented [M1]: Agregar alguno mas segn la base, ver que
pasa con el turno
7
Todos los datos mencionados anteriormente son obligatorios.
No pueden existir en el sistema automviles mellizos. Se considera mellizo,
cuando 2 automviles poseen la misma patente.
En la modificacin de un automvil se pueden alterar todos sus datos, tener en
cuenta que un chofer no puede estar asignado a ms de un auto activo al mismo
momento.
Cuando se trate de una baja, la misma ser lgica. Para un automvil inactivo sus
datos seguirn existiendo en la base de datos, por ende, dicho automvil no podr ser
utilizado para registrar viajes a su nombre. Se debe poder volver a habilitar el automvil
inhabilitado desde la seccin de modificacin.
Para elegir un coche que se desea modificar o eliminar se debe presentar un
buscador con listado, que permita filtrar simultneamente por alguno o todos los
siguientes campos:
Marca (seleccin acotada)
Modelo
Patente
Chofer
ABM de Turno
Mati: aca fjate que onda el valor que le vamos a poner a la ficha, nose como
resolviste esta parte; porque antes tenamos el turno y haba un valor de ficha Nose si
en el viaje vamos a tener que cambiarlo a valor del kilometraje para que calcule el valor
del viaje. Que solo hay un turno y el costo del kilometro por ahora sea nico y que tal
vez los piensen como que en el futuro puede haber mas de un turno, para que no te
cambie mucho la lgica.
6. ABM de Chofer
Esta funcionalidad permite poder crear, modificar y eliminar los chferes que se
encuentran registrados en el sistema de la empresa
Dar de alta un nuevo chofer implica cargar los siguientes datos:
Nombre
Apellido
8
DNI
Direccin calle, nro piso, depto y localidad
Telfono
Mail
Fecha de nacimiento
7. Registro de viaje.
En este caso de uso se registra cada uno de los viajes realizados por los chferes.
Para hacer frente a esta funcionalidad es necesario que se registre en la base de
datos los siguientes campos:
Tipo de Viaje ( seleccin Acotada) esto habra que sacarlo Commented [M2]: Este campo habra que sacarlo porque les va
a generar confusin al pedo, aca no tenemos tipos de viajes, total son
Chofer siempre igual, porque ah lo que podes hacer es tener un solo tipo de
Automvil viaje a la bosta.
Cliente
9
Puede que sea necesario que ingresen la fecha de fin de viaje, dado que datos
migrados no posean ese dato, de ser necesario se ingresar la ltima instancia horaria
del dia del viaje para todos aquellos viajes migrados
Funcionalidad que permite controlar la recaudacin del chofer con los viajes que
ha realizado, de manera que una vez que finalice su da laboral se le pague por los viajes
realizados, esta rendicin de viajes es un porcentaje a convenir con la empresa.
Se tiene en cuenta que si el chofer comienza a trabajar un da X y finaliza su
trabajo el da X+1, la rendicin de viajes llevar la fecha del da X, ya que la rendicin
corresponde al da en que comenz a trabajar y nunca es ms de 24 hs.
Para hacer frente a esta funcionalidad es necesario que se registre los siguientes
campos:
Fecha.
Chofer
Turno Commented [M4]: Esto creo que esta dems, a lo sumo habra
que ponerle el automvil, nose que tan difcil va ser cambiarlo.
Importe total de la rendicin.
9. Facturacin de clientes
10
Ser necesario que al momento de calcularse la facturacin se muestre una tabla
que informe en forma detallada los viajes que componen la cuenta del cliente y que
justifiquen el importen total generado para ese cliente, adems de que se registren en la
factura los viajes que la componen.
11
Implementacin
General
Base de Datos
El alumno debe instalar el motor de base de datos SQL Server 2012 con las
siguientes consideraciones:
El nombre de la instancia del motor de base de datos a instalar debe llamarse
SQLSERVER2012. No utilizar el nombre Default para la instancia. Instalar
como instancia con nombre (Named Instance).
La autenticacin debe ser por Modo Mixto.
El usuario administrador de la base de datos deber tener la siguiente configuracin:
Username: sa
Password: gestiondedatos
Una vez instalado el motor de base de datos se debern instalar las herramientas
cliente de trabajo: Microsoft SQL Server Management Studio Express para SQL Server
2012. Ejecutar esta aplicacin e ingresar los datos del usuario sa creado anteriormente
(en modo Autenticacin de SQL Server).
Dentro del Management Studio crear una nueva base de datos con los parmetros
default y nombre de base GD1C2017.
Solapa General:
Nombre de inicio de sesin: gd
Autenticacin de SQL Server
Contrasea: gd2017
Base de Datos Predeterminada: GD1C2017.
El resto de los parmetros respetar sus valores default.
Solapa Funciones del Servidor:
Seleccionar sysadmin
Solapa Asignacin de Usuarios:
Seleccionar asignar a GD1C2017
Para el resto de los parmetros respetar sus valores default.
12
Salir del Management Studio como usuario sa y volver a ingresar con el nuevo
usuario gd creado. Es probable que informe que la contrasea ha caducado. Cambiar la
contrasea ingresando exactamente la misma que antes: gd2017.
Una vez que tenemos la base de datos creada y configurada con el usuario,
necesitamos ejecutar dos scripts. Para ello debemos ejecutar un comando de consola de
SQL Server llamada sqlcmd. Este comando debe ejecutar en orden los siguientes dos
archivos:
gd_esquema.Schema.sql: Este archivo genera un esquema llamado gd_esquema
dentro de la base de datos y lo asigna al usuario gd.
gd_esquema.Maestra.Table.sql: Este archivo crea la tabla principal del trabajo
prctico y la carga con los datos correspondientes. El archivo posee un volumen
significante y no puede ser ejecutado desde el Managment Studio.
Ejemplo:
sqlcmd -S localhost\SQLSERVER2012 -U gd -P gd2017 -i
gd_esquema.Schema.sql,gd_esquema.Maestra.Table.sql -a 32767 -o
resultado_output.txt
Luego de cargados todos los datos de la tabla maestra, el alumno deber crear su
propio esquema dentro de la base de datos. El nombre del esquema deber ser igual al
nombre del grupo registrado en la materia (el proceso de registracin se explica ms
adelante). El nombre del esquema debe ser en maysculas, sin espacios y separado por
guiones bajos. Ejemplo Los mejores debe ser LOS_MEJORES.
Todas las tablas, stored procedures, vistas, triggers y otros objetos de base de datos
nuevos que cree el alumno debern pertenecer a este esquema creado. Sin la solucin
entregada posee objetos de base de datos por fuera del esquema con el nombre del grupo,
el TP ser rechazado sin evaluar su funcionalidad.
Con esta configuracin el alumno est listo para empezar la implementacin de la
parte de base de datos.
Aplicacin Desktop
13
La ctedra provee una aplicacin Desktop en C#, a modo de template, sobre la cual
se debe desarrollar la aplicacin del Trabajo Prctico.
Para ejecutar esta aplicacin es necesario instalar Visual Studio 2012 con el
Framework de .NET 4.5. La versin Express posee la funcionalidad necesaria como para
desarrollar el Trabajo Prctico.
La aplicacin template se denomina ClinicaFrba. Cuenta con un formulario Commented [M5]: Nombre del proyecto
principal, una barra de men y un formulario para cada funcionalidad visual que hay que
implementar en el trabajo. El alumno debe depositar su cdigo respetando esta estructura.
Ms all de estas indicaciones, el alumno puede modificar a su criterio la aplicacin
template. Ante cualquier consulta sobre lo que se puede modificar consultar al grupo de
Google de la materia.
La aplicacin Desktop deber conectarse a la base de datos con los siguientes
parmetros:
Origen de datos: Microsoft SQL Server (SqlClient)
localhost\SQLSERVER2012
Utilizar autenticacin de SQL Server:
o Nombre de Usuario: gd
o Password: gd2017
Nombre de la base de datos: GD1C2017
14
Restricciones de la solucin
Condiciones de aprobacin
Testing
El alumno deber entregar dos componentes:
Un nico script de base de datos (script_creacion_inicial.sql) con todo lo
necesario para crear su modelo y cargarlo con datos. No se adminte otro formato
que no sea este, cualquier otro formato ser considerado como reentrega.
La aplicacin C# ClinicaFrba con la funcionalidad pedida. Commented [M6]: Nombre del proyecto
Modelo de Datos
15
El modelo de datos creado por el alumno deber respetar las buenas prcticas de
programacin y diseo de bases de datos explicados durante la cursada de la materia.
Tambin debern ser considerados criterios de performance a la hora de crear
relaciones e ndices en las tablas.
Consultas SQL
Todas las consultas SQL que haga la aplicacin sern evaluadas de acuerdo al
standard de programacin SQL explicados en clase. La performance de las mismas ser
tenida en cuenta a la hora de fijar la nota.
Aplicacin Desktop
La calidad y orden del cdigo fuente ser tenida en cuenta a la hora de fijar la nota.
Es obligatorio que existan comentarios de cdigo en todas las secciones principales de
implementacin.
Debern crearse componentes de cdigo reutilizable para aquellas porciones de
cdigo ejecutadas en muchas secciones de la aplicacin. Todo tipo de configuracin o
parametrizacin de la aplicacin deber estar centralizado en un solo punto. Aquellos TPs
que no respeten estos puntos mencionados sern rechazados, sin continuar su evaluacin
(ej: los parmetros de conexin a la base de datos).
Para cada entrega existe una sola fecha de entrega posible como lmite. Para el caso
de la entrega del sistema completo, se agregan hasta 2 presentaciones ms para re-entregar
con correcciones (entregas que no tienen fecha fija).
La cantidad de funcionalidad de cada entrega deber ser completa acorde a lo
solicitado en la instancia.
https://spreadsheets0.google.com/viewform?formkey=dG16aEltMHc1X2hPN3U2
YTVoVGxfeUE6MA
17
la confirmacin de los grupos y se les asignar un nmero de grupo adems del nombre
que debidamente eligieron. Luego de esa fecha y de recibido el mail con el nmero de
grupo, la conformacin de los mismos ser inalterable hasta la finalizacin del
cuatrimestre. Cualquier cambio de integrantes, sea por el motivo que fuese, deber
realizarse antes de esa fecha.
Ayuda y contacto
https://sites.google.com/site/gestiondedatosutn
Tambin existe un grupo de Google en donde se podrn plantear dudas sobre el TP.
Su direccin es la siguiente:
http://groups.google.com/group/gestiondedatos
Todos los mensajes referentes al trabajo prctico debern contener la etiqueta [TP]
antes del asunto. Ej: [TP] consulta sobre base de datos.
https://docs.google.com/document/d/1JhxhhLileZ1vhNQ4k1xmoxeLkp6pPaH
V-QcKzehHHWg/edit?usp=sharing
Donde aprender C#
Si bien para resolver el TP solo se necesita conocer una pequea parte de la totalidad
del lenguaje C#, es recomendable aprender los conceptos bsicos mediante algn libro o
tutorial. Recomendamos el siguiente tutorial:
18
http://www.devjoker.com/asp/~/gru/Tutorial-C/TUCS/Tutorial-C.aspx
Sobre la eleccin de C#
Obtencin de herramientas
El TP puede ser desarrollado con dos versiones del IDE Microsoft Visual Studio
2012. No puede utilizarse la versin 2010:
1. Microsoft Visual Studio Professional 2012: esta versin puede ser obtenida con
19
licencia universitaria completa, gracias a un convenio de Microsoft con la UTN.
Dirigirse al laboratrio de Microsoft ubicado en la sede Medrano (planta baja, hacia
la derecha, mirando desde la entrada de la facultad hacia adentro).
La versin ofrecida es en espaol y contiene la ayuda completa (MSDN).Para
encargarla es necesario llevar un DVD y completar un formulario. Es posible que el
programa halla que encargarlo y pasarlo a buscar otro da.
2. Microsoft Visual C# 2012 Express Edition: Existe una versin gratuita del IDE
llamada Visual C# 2012 Express Edition, la cual posee todas las herramientas
necesarias para realizar el TP. Esta se encuentra disponible en:
http://www.microsoft.com/express/Downloads/
El motor de base de datos a utilizar es SQL Server 2012 Express. Puede ser
descargado de la siguiente direccin:
http://www.microsoft.com/Sqlserver/2012/en/us/express-down.aspx
Formato de entrega
Lugar de envo
gestiondedatos.entregas@gmail.com
TP1C2017<b><curso><b><nombreGrupo><Nro de grupo>
Ejemplos:
TP1C2017 k9999 LOS_MEJORES 10
(Respetar los 2 espacios en blanco existentes)
Se debe adjuntar el trabajo prctico en un archivo del tipo zip con el mismo nombre
20
que el asunto del mail.
Por cuestiones de seguridad Gmail rechaza todos los adjuntos que contengan
archivos zip con .exe y .dll en su interior, por lo que es necesario renombrar la
extensin .zip a .zip123.
Por ejemplo:
Nota: En caso de que haya integrantes de cursos distintos, se debe poner el curso de la
persona elegida como representante
En caso de que algn alumno del grupo haya dejado de cursar o se halla cambiado de
grupo, deber ser aclarado en el mail de la entrega del TP.
Solo debe enviarse la entrega desde el mail del representante del grupo.
\
Readme.txt
Estrategia.pdf
\src
Solucin entera de Visual Studio de ClinicaDesktop Commented [c11]: nombre del tp
\data
Archivo de script de base de datos script_creacin_inicial.sql.
Readme.txt:
Es un archivo de texto plano con los siguientes datos:
Curso
Nmero de grupo
21
Nombre y legajo de todos los integrantes
Email del integrante responsable del grupo.
Estrategia.pdf:
A Archivo PDF en donde se deber explicar en forma detallada y extensa la
estrategia utilizada para desarrollar el TP. Debe incluir una descripcin de todas las
estructuras de datos relevantes utilizadas en el algoritmo, explicando la razn de la
eleccin de dichas estructuras.
Cualquier consideracin tomada o asumida deber ser aclarada en este
documento.
Se debe incluir un DER (legible y entendible) del modelo de datos creado con
una explicacin detallada de cada entidad, relaciones, claves primarias y forneas,
ndices, stored procedures, triggers, vistas, etc, que ser estrictamente necesario para la
correccin del modelo, de ser posible tambin entregar el DER en formato de imagen
PNG, JPEG, etc.
El archivo de estrategia deber ser en formato PDF obligatoriamente, con
cartula e ndice. En caso de no cumplir esta condicin, el TP ser rechazado sin evaluar
su funcionalidad.
Sin este archivo y un DER de la base la entrega no ser tomada como vlida.
\src:
Dentro de este directorio se encuentra la solucin entera de Visual Studio del
proyecto ClinicaFrba. Evitar enviar archivos de SVN, CVS u otros. No enviar archivos
ejecutables ni DLLs. Limpiar la solucin desde Visual Studio (Proyecto => Limpiar
Solucin) antes de enviarla.
Adems dentro del source deber existir un archivo de configuracin en donde se
encuentren los parmetros de conexin a la base de datos, la fecha que tomar el sistema
para funcionar (se utiliza este criterio para simplificar al alumno el manejo de las fechas
y as evitar el cambio de fechas del sistema operativo).
Sin ese archivo de configuracin la entrega no ser tomada como vlida.
\data:
Archivo script_creacin_inicial.sql con toda la creacin del modelo de datos. El
archivo debe poder ejecutar perfectamente de una sola vez, sin ningn tipo de error. Todas
las sentencias deben estar perfectamente ordenadas para ejecutar correctamente. Cada
sentencia debe estar comentada explicando su intencin.
22
10 Tips para desaprobar Gestin de Datos
1. No inscribirse en el grupo, si no tengo nmero de grupo, preguntar a otros
alumnos como se enteraron y repetir el procesimiento.
2. No entregar el DER del modelado, y en caso de entregarlo, que el mismo no sea
legible
3. No consultar peridicamente el grupo de la materia
4. Entregar el script de migracin y/o solucin de C# con errores, y que los mismos
no puedan ser ejecutados
5. Entregar TP de aos anteriores
6. Entregar ABMs sin validaciones propias de un AMB, por ej. permitir alta de
registros duplicados.
7. Hacer mal uso de los formatos de fecha. (se recomienda uso de convert ) y/o no
usar el archivo config que se les pide. Ejemplo de que no hacer y que si hacer.
10. Si hay dudas, volver a leer los puntos anteriores o consultarlos con los
ayudantes.
23