Documentos de Académico
Documentos de Profesional
Documentos de Cultura
concesionario
14 enero 2013
Este documento corresponde a la Memoria del Proyecto Fin de Carrera (PFC) de los estudios de
Ingeniera de Informtica presentado por el alumno Etienne Boshoff de Jong, autor de este documento.
El rea escogido para el proyecto es Base de Datos Relaciones. Este trabajo corresponde al semestre
Octubre 2012 Enero 2013.
El proyecto ha consistido en desarrollar una Base de Datos para un cliente ficticio cuyas necesidades
estn descritas en el enunciado de la prctica presentado por el profesorado de la asignatura.
Esta Base de Datos debe proporcionar persistencia a una aplicacin cuyo desarrollo no forma parte de
este proyecto. La Base de Datos debe ofrecer los procedimientos y funciones almacenados necesarios
para que la aplicacin que interacte con la Base de Datos no tenga que acceder directamente a las
tablas.
Esta Memoria describe las diferentes fases de desarrollo del proyecto: Planificacin, Anlisis y Diseo.
En la Memoria tambin se presenta una estimacin econmica del proyecto y se describe los
mecanismos que la Base de Datos proporciona para permitir la integracin con un Data Warehouse
ajeno al presente proyecto. Por ltimo, la Memoria incluye los guiones de testeo que permiten
comprobar el correcto funcionamiento de la Base de Datos.
Como anexo a la Memoria, se entrega una presentacin (en PowerPoint) que resume los detalles del
proyecto. Tambin se entrega como anexo, el cdigo fuente desarrollado (en forma de sentencias SQL)
para la creacin de las tablas, triggers y los procedimientos y funciones almacenados junto con las
instrucciones de la ejecucin de estas sentencias.
ndice de contenido
1. Resumen ............................................................................................................................................. 2
2. ndice de contenido y de Figuras ........................................................................................................ 3
3. Introduccin ........................................................................................................................................ 5
3.1. Justificacin del PFC: punto de partida y aportacin del PFC ...................................................... 5
3.2. Objetivos del PFC ........................................................................................................................ 6
3.3. Enfoque y mtodo seguido ......................................................................................................... 8
3.4. Planificacin del proyecto ......................................................................................................... 10
3.4.1. Identificacin de tareas concretas .................................................................................... 10
3.4.2. Calendario de tareas y sus duraciones: Diagrama de Gantt .............................................. 13
3.4.3. Hitos principales ................................................................................................................ 14
3.4.4. Identificacin de riesgos y plan de contingencia ............................................................... 14
3.5. Productos obtenidos ................................................................................................................. 15
3.6. Breve descripcin del resto de captulos ................................................................................... 15
3.7. Anlisis ...................................................................................................................................... 17
3.7.1. Definicin del alcance detallado ....................................................................................... 17
3.7.2. Modelo Casos de Uso ........................................................................................................ 20
3.7.3. Modelo Conceptual de la Base de Datos ........................................................................... 25
3.7.4. Decisiones de diseo ms relevantes ................................................................................ 29
3.8. Diseo ....................................................................................................................................... 32
3.8.1. Modelo Lgico de la Base de Datos ................................................................................... 32
3.8.2. Descripcin Lgica de las tablas y dems estructuras ....................................................... 33
Tabla GRUPOS ................................................................................................................................... 33
Tabla VALORES_CODIGO ................................................................................................................... 35
Tabla PERSONAS ............................................................................................................................... 37
Tabla COCHES ................................................................................................................................... 39
Tabla SERVICIOS ................................................................................................................................ 41
Tabla ASOCIACION_VALORES_CODIGO ............................................................................................ 44
Tabla USUARIOS ................................................................................................................................ 46
ndice de Figuras
El cliente ya dispone de cierto grado de informatizacin. Las aplicaciones ms importantes que el cliente
utiliza son para gestionar la contabilidad y la facturacin.
Al Comit de Direccin de la empresa quiere que se registre la actividad acerca de las ventas de
vehculos, las reparaciones de los vehculos y de sus revisiones. A partir del registro de esta informacin,
interesa poder obtener estadsticas de por ejemplo, qu comerciales realizan ms ventas, en qu pocas
se realizan ms ventas, qu vehculos son los ms vendidos, qu mecnicos realizan el mayor nmero de
revisiones y reparaciones y detalles del tipo de reparaciones que se realizan con ms frecuencia.
Por tanto, se contrata un software a medida para la recogida de informacin sobre las ventas, revisiones
y reparaciones. Tambin, como proyecto aparte, se adquirir un Data Warehouse para analizar la
informacin registrada en la aplicacin que debe ser desarrollada a medida.
El proyecto correspondiente al desarrollo del software a medida ser dividida en dos proyectos que
podrn desarrollarse de forma independiente. Por un lado se desarrollar la aplicacin que los usuarios
de la organizacin cliente utilicen para registrar la actividad y por otro, la base de datos que le
proporcione persistencia a dicha aplicacin. Esta separacin permite el desarrollo del proyecto por fases
y distribuir la inversin a lo largo de un periodo ms largo.
Permitir al software a medida ignorar la estructura interna de la Base de Datos ofreciendo las
funcionalidades de acceso a travs de un conjunto de procedimientos y funciones almacenados.
La Base de Datos deber proporcionar los procedimientos y funciones almacenados necesarios para
para evitar que el software a medida tenga que acceder directamente a las tablas de la Base de
Datos.
La Base de Datos deber cumplir con los requerimientos identificados en la definicin del Alcance
Inicial.
Los requerimientos del Alcance Inicial son los siguientes:
o R4: Escalabilidad.
Iniciacin: Definicin de los objetivos y el alcance inicial (por favor, vea el apartado Objetivos del
PFC).
Planificacin: Identificacin de tareas, estimacin de esfuerzo para cada tarea y cronograma.
Identificacin de riesgos y plan de contingencia.
Anlisis: Definicin del Alcance Detallado, Diagrama de Casos de Uso y Modelo Conceptual de la
Base de Datos.
Diseo: Definicin del Modelo Lgico de la Base de Datos e identificacin de las estructuras
necesarias (procedimientos, funciones, triggers...).
Construccin: Desarrollo de las sentencias SQL que permiten la construccin de las tablas y dems
estructuras de la Base de Datos.
Pruebas: Redaccin y ejecucin de los guiones de pruebas. Gestin de incidencias.
Cierre: Entrega de productos finales.
Se sigui la metodologa Clsica para el desarrollo de las fases del proyecto. Dentro de la fase Ejecucin,
se ha seguido la metodologa iterativa para las acciones de construccin de los procedimientos,
funciones y triggers y la realizacin de pruebas. Para ello, se dividi el conjunto de procedimientos,
funciones y triggers en dos grupos o bloques. Durante la primera iteracin, se construy los
procedimientos, funciones y triggers del primer grupo, se redact los guiones correspondientes, se
ejecut los guiones y se solucion las incidencias correspondientes. A continuacin se complet la
segunda iteracin siguiendo los mismos pasos que la iteracin anterior, pero sobre los procedimientos,
funciones y triggers del segundo grupo o bloque.
Planificacin
Anlisis
Construccin No
Todos los
bloques
completados? S
Pruebas
PruebasGenerales
Documentacin
En la fase de Iniciacin del proyecto, entre otros, se identific los objetivos del proyecto y el alcance
inicial (por favor, ver el apartado Objetivos del PFC).
Para la fase de Planificacin, se identificaron las tareas concretas que deben ser realizadas durante el
proyecto, su duracin aproximada y el intervalo de fechas en que deban realizarse. Se ha definido un
diagrama de Gantt para mostrar la planificacin temporal de las tareas. Tambin se ha identificado los
riesgos para el proyecto y el plan de contingencia correspondiente.
A continuacin se muestra la lista de tareas identificadas para la realizacin del proyecto [1]. Las tareas
estn clasificadas en los grupos generales siguientes: Preparacin del proyecto, Anlisis, Diseo,
Construccin de tablas, Construccin de estructuras del grupo 1, Construccin de estructuras del grupo
2 y Pruebas generales (grupos 1 y 2). Se incluye una descripcin de cada tarea y su duracin aproximada.
Anlisis
Diseo
Construccin tablas
Tarea: Preparacin de la Base de Datos para las pruebas. Duracin aproximada: 2 horas.
Se elimina el contenido de las tablas con el fin de poder ejecutar los guiones de pruebas de
nuevo.
Documentacin
A continuacin de muestra el cronograma para la realizacin de las tareas del apartado anterior:
Identificacin de Procedimientos,
8 11/19/2012 11/23/2012 5d 0%
Funciones y Triggers a implementar
Dividir Procedimientos, Funciones y
9 11/23/2012 11/23/2012 1d 0%
Triggers identificados en 2 grupos
Figura 4. Cronograma
Para cada tarea, se muestra una descripcin corta, la fecha en que debe comenzar, la fecha en que debe
haberse finalizado, la duracin en das entre la fecha inicio y la fecha fin, una visualizacin grfica de la
extensin de cada tarea a lo largo del calendario y el porcentaje de finalizacin en el momento de
realizar la planificacin.
Riesgo R001: Conflicto que pueda surgir con otros proyectos. Hay otros dos proyectos planificados para
pasar a produccin durante los meses de Octubre y Noviembre. Estas puestas en produccin podran
requerir una dedicacin mayor de lo deseado y as poner en peligro el desarrollo del PFC.
Plan de contingencia para R001: Se re-planifica las vacaciones del personal para despus de la entrega
de la documentacin final. Ya se han establecidos los acuerdos convenientes con el personal que pueda
ser afectado.
Como resultado del desarrollo de este proyecto se obtiene los productos siguientes:
Memoria del proyecto: documento descriptivo de la estructura del proyecto y del trabajo
realizado. Incluye los guiones de pruebas que permiten la comprobacin del funcionamiento de
la Base de Datos desarrollada.
Sentencias SQL para la creacin de tablas y dems estructuras de la Base de Datos. Se trata de
un fichero de texto con las sentencias. El fichero incluye las instrucciones de ejecucin de estas
sentencias.
Presentacin en PowerPoint. La presentacin resume el contenido del documento Memoria del
proyecto.
Los siguientes captulos de este apartado corresponden al Anlisis, Diseo, Guiones de Pruebas,
Integracin con el Data Warehouse, la Valoracin econmica y las conclusiones del desarrollo del
proyecto.
Captulo Anlisis
Captulo Diseo
El captulo acerca de la fase del Diseo del proyecto describe el Modelo Lgico de la Base de Datos a
travs de un Diagrama Entidad-Relacin detallado. Se incluye la descripcin de las tablas, ndices, claves
primarias y extranjeras, secuencias y restricciones sobre el contenido de los datos de los atributos de las
tablas.
Los guiones dejan un espacio al lado de cada paso para especificar si el resultado obtenido como
consecuencia de la ejecucin del paso es el esperado. Tambin, para cada paso hay un espacio para
realizar anotaciones sobre el resultado devuelto.
En este captulo se describe la manera en que la Base de Datos integra con un Data Warehouse. La
integracin consiste en la exportacin del contenido de las tablas a ficheros CSV que deben ser
importados al Data Warehouse.
Se realiza una estimacin sobre el coste que ha requerido el desarrollo del proyecto y se compara con la
estimacin terica obtenido a partir de las metodologas Lneas de cdigo y Puntos de Funcin.
Cada requerimiento del alcance inicial ha sido refinado en requerimientos ms concretos y detallados
[1]. El conjunto de requerimientos concretos y detallados definen el alcance detallado. Se partir de los
requerimientos definidos en el alcance detallado para realizar el diseo y la implementacin.
Requerimientos derivados:
Requerimientos derivados:
R2-002: Para cada reparacin/revisin se permite registrar y modificar la descripcin del servicio
prestado, el coche afectado, la fecha y hora, la duracin de la reparacin/servicio y el tcnico
responsable.
R2-003: se ha de poder programar reparaciones/revisiones futuras.
R2-003: debe de poderse definir un catlogo con los diferentes tipos de reparaciones y
revisiones.
R2-004: el cliente ha de poder mantener el catlogo de reparaciones y revisiones (R2-003).
Requerimientos derivados:
Requerimientos derivados:
R4-001: la Base de Datos ha de permitir simular la ampliacin de los atributos de las tablas de
actividad del sistema de forma dinmica, sin requerir la modificacin de la estructura de las
tablas.
R4-002: la Base de Datos ha de permitir la definicin de entidades adicionales para gestionar las
categoras de la informacin de referencia.
R4-003: la Base de Datos debe ofrecer mecanismos que garantizan la integridad sobre la
ampliacin de atributos.
Requerimientos derivados:
R5-001: La Base de Datos dispondr de los procedimientos necesarios para facilitar la exportacin
del contenido de las tablas de actividad del sistema (entre ellas, la tabla de Ventas y la de
reparaciones/revisiones).
R5-002: La Base de Datos permitir la definicin de cdigos para los elementos de los diferentes
catlogos con el fin de facilitar la explotacin de la informacin en el Data Warehouse.
Requerimientos derivados:
Requerimientos derivados:
R7-001: El proyecto incluir guiones de pruebas con pasos concretos y criterios especficos para
poder comprobar el funcionamiento de la Base de Datos de forma objetiva.
El modelo consta de 3 actores diferenciados: Tcnico del Sistema, Comercial, Mecnico y Administrativo.
El Tcnico del Sistema identifica los usuarios informticos que configuran el sistema. Los Administrativos
deben poder realizar todas las acciones no propias de los Tcnicos del Sistema. Los Administrativos
representan el mayor grupo de usuarios del sistema.
Aunque no sea frecuente que los Mecnicos y Comerciales utilicen el sistema, tendrn acceso al sistema
y debern poder registrar informacin en el sistema sin depender necesariamente de una persona
administrativa. Por eso comparten casos de uso con los administrativos.
El Tcnico del Sistema es el actor principal de los casos de uso Gestionar Entidades Maestras,
Gestionar Usuarios y Exportar Datos. El caso de uso Gestionar Atributos Virtuales permite
especificar un valor para un atributo virtual de un registro de una tabla de informacin de actividad. Un
atributo virtual es un mecanismo del sistema para poder simular el aadir un atributo a una tabla sin
modificar la estructura original de la tabla.
El Administrativo puede ejecutar los casos de usos: Gestionar Atributos Virtuales, Gestionar
Personas, Gestionar Ventas, Gestionar Coches y Gestionar Servicios.
El Comercial puede ejecutar los casos de usos: Gestionar Atributos Virtuales, Gestionar Personas,
Gestionar Ventas y Gestionar Coches.
El Mecnico puede ejecutar los casos de usos: Gestionar Atributos Virtuales, Gestionar Personas, y
Gestionar Servicios y Gestionar Coches.
Los casos de uso Gestionar Usuarios y Gestionar Coches requieren que previamente se haya creado
un registro en la tabla Persona. Por eso mantienen una relacin de include con el caso de uso Gestionar
Personas. Todo usuario es tambin persona. Para el caso de uso Gestionar Coches, la persona
corresponde al propietario del coche.
Los casos de uso Gestionar Ventas y Gestionar Servicios requieren que previamente se haya creado
un registro en la tabla Usuarios y adems, en la tabla Coches. Por tanto, mantienen una relacin de
include con el caso de uso Gestionar Usuarios y con el caso de uso Gestionar Coches. Para el caso de
uso Gestionar Ventas el usuario identifica el comercial responsable de la venta. Para el caso de uso
Gestionar Servicios, el usuario identifica el mecnico responsable del servicio (reparacin/revisin).
Gestionar
Personas Comercial,
Administrativo
Tcnico del <<include>>
Sistema <<include>>
Gestionar Usuarios
<<include>> Gestionar Ventas
<<include>>
Gestionar Coches
Mecnico,
Administrativo
<<include>>
Gestionar Servicios
El diagrama Entidad-Relacin siguiente muestra el modelo conceptual diseado para la Base de Datos
[4]:
Municipio
Sexo
N N
1
PERSONAS
Propietario
N 0,1
Modelo N 1
GRUPOS COCHES
N 0,1 1
Extensin
Personas
Extensin 0,1
Pertenece a Coches 0,1 VALORES_ATRIB_VI 0,1
RTUALES
0,1 0,1
0,1 1 1 1 1
1 Extensin
VALORES_CODIGO Ventas
1
M
N 1 1 1 1 1
Extensin
Coche
Servicios
Est asociado a Servicio
N 1
Coche
Tipo Actividad Venta
SERVICIOS
N
Tipo Servicio N
N
Mecnico
0,1 0,1
Comercial
USUARIOS VENTAS
Perfil 1 N N
0,1
Extensin
Usuarios LOG_ACCIONES
Todas las tablas que aparecen en el diagrama estn relacionadas con la tabla USUARIOS con el fin de
identificar al usuario responsable de la insercin o ltima modificacin de cada registro. No se han
dibujado estas relaciones para simplificar el diagrama.
La tabla GRUPOS contiene las diferentes agrupaciones o categoras en las que se agrupan o clasifican los
valores de cdigo de la tabla VALORES_CODIGO en base a su naturaleza. Las entidades Municipios,
Provincias y Modelos de coches, entre muchos otros, son ejemplos de Grupos.
La tabla VENTAS contiene las ventas de coches realizadas por los comerciales del concesionario.
La tabla COCHES contiene los coches vendidos por el concesionario, los coches sobre los que se ha
hecho alguna reparacin o revisin y los coches para los que se tiene planificado una revisin.
La tabla PERSONAS contiene los propietarios de los coches y tambin los empleados del concesionario
que son usuarios del sistema. Los usuarios son los administrativos, comerciales, mecnicos y tcnicos
informticos del concesionario.
La tabla USUARIOS contiene los usuarios del sistema, es decir las cuentas de usuarios de los
comerciales, mecnicos y tcnicos informticos del concesionario. La tabla USUARIOS extiende la tabla
PERSONAS.
La tabla SERVICIOS contiene las reparaciones y revisiones realizadas y/o planificadas. Un servicio puede
ser tanto una revisin como una reparacin. Se distingue las reparaciones de las revisiones por el
atributo Tipo de Servicio. Si un servicio ha sido planificado si tiene un valor para el atributo Fecha
Planificacin. Si un servicio ha sido realizado si tiene un valor para el atributo Fecha Servicio.
La tabla VALORES_ATRIB_VIRTUALES contiene los valores de los atributos virtuales. Un atributo virtual
es un mecanismo del sistema para poder simular el aadir un atributo a una tabla sin modificar la
estructura original de la tabla. Si por ejemplo, se define el atributo virtual Color para tabla Coches, la
tabla VALORES_ATRIB_VIRTUALES contiene los colores concretos de cada coche.
La tabla LOG_ACCIONES contiene los registros de las acciones de insercin y modificacin sobre los
registros de las dems tablas. Cada vez que se inserta o se modifica un registro, se registra la accin en
la tabla LOG_ACCIONES.
PERSONAS (ID, NIF, Apellidos, Nombre, Fecha nacimiento, Sexo, Telfono, Calle y Nmero, CP,
Municipio)
SERVICIOS (ID, Tipo Actividad, Coche, Fecha planificada, Fecha servicio, Duracin, Mecnico, Tipo
servicio)
La relacin Municipio permite especificar el municipio en el que reside cada persona. Una persona tiene
asociado como mucho un municipio.
La relacin Sexo define el gnero de cada persona. Cada persona tiene un y slo un gnero.
La relacin Propietario especifica la persona propietaria de cada coche. No toda persona es propietario
de algn coche. Todo coche tiene un y slo un propietario.
La relacin Modelo describe el modelo de un coche. Cada coche tiene un y slo un modelo. Por
supuesto, puede haber ms de un coche del mismo modelo.
La relacin Pertenece a clasifica los valores de cdigo en grupos. Cada valor de cdigo es de un y slo un
grupo. Un grupo puede tener cero o varios valores de cdigo.
La relacin Tipo Actividad identifica el tipo de actividad de un servicio. Cada servicio (es decir, revisin o
reparacin), tiene un y slo tipo de actividad. Un tipo de actividad puede estar asociado a cero o ms
servicios.
La relacin Comercial identifica el usuario comercial responsable de una venta. Un usuario comercial
puede ser responsable de cero o varias ventas. Cada venta tiene un y slo un usuario comercial
responsable.
La relacin Coche Venta permite identificar el coche de una venta. Cada coche puede haberse vendido
cero o varias veces. Cada venta est relacionada con un y slo un coche.
La relacin Coche Servicio identifica el coche sobre el que se ha realizado o planificado un servicio. Cada
servicio tiene un y slo un coche asociado. Un coche puede tener cero o varios servicios asociado.
La relacin Perfil identifica el perfil (administrativo, mecnico, comercial...) de cada usuario. Cada
usuario es un y slo un perfil. Ms de un usuario puede tener el mismo perfil. Puede haber perfiles sin
usuarios asociados.
La relacin ternaria Extensin Coches identifica el valor (tabla VALORES_ATRIB_VIRTUALES) que tiene un
atributo virtual (tabla VALORES_CODIGO) para un registro coche (tabla COCHES). Cada valor es de un y
slo un coche y de un y slo un atributo virtual.
La relacin ternaria Extensin Servicios identifica el valor (tabla VALORES_ATRIB_VIRTUALES) que tiene
un atributo virtual (tabla VALORES_CODIGO) para un registro servicio (tabla SERVICIOS). Cada valor es
de un y slo un servicio y de un y slo un atributo virtual.
La relacin ternaria Extensin Usuarios identifica el valor (tabla VALORES_ATRIB_VIRTUALES) que tiene
un atributo virtual (tabla VALORES_CODIGO) para un registro usuario (tabla USUARIOS). Cada valor es de
un y slo un usuario y de un y slo un atributo virtual.
La relacin ternaria Extensin Personas identifica el valor (tabla VALORES_ATRIB_VIRTUALES) que tiene
un atributo virtual (tabla VALORES_CODIGO) para un registro persona (tabla PERSONAS). Cada valor es
de una y slo una persona y de un y slo un atributo virtual.
La relacin ternaria Extensin Ventas identifica el valor (tabla VALORES_ATRIB_VIRTUALES) que tiene un
atributo virtual (tabla VALORES_CODIGO) para un registro venta (tabla VENTAS). Cada valor es de una y
slo una venta y de un y slo un atributo virtual.
Registro de acciones
Para cada registro de todas las tablas se guardar, en el mismo registro, la fecha y hora de la ltima
modificacin (o de la insercin del registro) adems de la clave extranjera el usuario que realiz la
accin. As, en el mismo registro se puede saber quin realiz la accin ms reciente y en qu momento.
Se definirn estos campos de la forma siguiente:
actualiz_f_h: DATE
actualiz_ce: NUMBER (10,0)
Las exportaciones de datos para el Data Warehouse se basarn en el campo actualiz_f_h. Conociendo la
fecha de la ltima exportacin, este campo permite a los procesos de exportacin detectar los registros
modificaciones despus de la ltima exportacin.
Eliminacin de registros
El sistema no ofrecer mecanismos de eliminacin de registros. Un tcnico de sistema podr ejecutar
sentencias de eliminacin de datos pero el sistema no ofrecer procedimientos almacenados que
realicen eliminaciones. Todas las tablas contarn con el atributo activo_ind cuyo valor predeterminado
ser 1. Si se desea eliminar un registro, se deber modificar el valor de este campo a 0. A la aplicacin a
la que la Base de Datos aporta persistencia, deber reconocer los registros eliminados a partir de este
campo. Se considera que este proceso es ms sencillo de gestionar que la eliminacin real de registros
dado que no se producen conflictos de integridad. Adems, los registros inactivados seguiran estando
disponibles para ser consultados. Una opcin alternativa a esta opcin es copiar los campos del registro
siendo eliminado a tabla histrica.
Revisiones y Reparaciones
Se considera que hay poca diferencia entre una reparacin y una revisin. Salvo poder distinguir si una
actividad es una reparacin o una revisin, no hay ms diferencias importantes. Existe el requerimiento
de poder registrar la planificacin de revisiones. No es estrictamente necesario poder planificar
reparaciones, aunque no se ha pedido evitar que ello sea posible. Para simplificar, se ha decidido crear
la tabla SERVICIO para registrar tanto las reparaciones y las revisiones. Para cada registro, se deber
poder saber si se ha realizado o se nicamente est planificado. Para poder gestionar las reparaciones y
revisiones y si fueron o no planificados, se definir los campos siguientes:
El diagrama anterior muestra las tablas, los atributos de las tablas, los tipos de datos de cada atributo,
las claves principales, las claves extranjeras, y los ndices.
Tabla GRUPOS
La tabla Grupos contiene los Grupos definidos en el sistema. Cada Grupo representa una entidad cuyos
valores forman parte del conjunto de informacin de referencia del sistema. Las entidades siguientes
son ejemplos de grupos: Provincias, Municipios y Modelos de Coche. Cada grupo es identificado por un
cdigo numrico. El cliente puede agregar todos los grupos adicionales que desea pero como mnimo,
debe existir en el sistema los grupos siguientes (se ha de respetar los cdigos numricos):
Atributos
Procedimientos
DESCARGAR_GRUPOS_POR_ACTFH (pActualiz_f_h)
Realiza la exportacin a un fichero CSV los registros de la tabla GRUPOS que hayan sido insertados o
modificados despus de la fecha/hora especificado por el parmetro pActualiz_f_h.
Triggers
AGRMOD_GRUPO
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla GRUPOS. Este
trigger realiza las acciones siguientes:
lanza una excepcin si el valor pValorGrupo es inferior a 10
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente
Atributos
Restricciones adicionales:
No se permiten duplicados para el conjunto (grupo_ce, visualizacin).
Procedimientos
DESCARGAR_VALCOD_POR_ACTFH (pActualiz_f_h)
Realiza la exportacin a un fichero CSV los registros de la tabla VALORES_CODIGO que hayan sido
insertados o modificados despus de la fecha/hora especificado por el parmetro pActualiz_f_h.
Triggers
Trigger AGRMOD_VALOR_CODIGO
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla
VALORES_CODIGO. Este trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
Funciones
Atributos
DESCARGAR_PERSONAS_POR_ACTFH (pActualiz_f_h)
Realiza la exportacin a un fichero CSV los registros de la tabla PERSONAS que hayan sido insertados o
modificados despus de la fecha/hora especificado por el parmetro pActualiz_f_h.
Triggers
AGRMOD_PERSONA
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla PERSONAS.
Este trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
lanza una excepcin si el valor de cdigo especificado para el sexo (pSexo_cd) no es del grupo 2.
lanza una excepcin si el valor de cdigo especificado para el sexo (pMunicipio_cd) no es del grupo
3.
Atributos
Procedimientos
DESCARGAR_COCHES_POR_ACTFH (pActualiz_f_h)
Realiza la exportacin a un fichero CSV los registros de la tabla COCHES que hayan sido insertados o
modificados despus de la fecha/hora especificado por el parmetro pActualiz_f_h.
Triggers
AGRMOD_COCHE
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla COCHES. Este
trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
lanza una excepcin si el valor de cdigo especificado para el modelo (pModelo_cd) no es del grupo
1.
Atributos
Procedimientos
DESCARGAR_SERVICIOS_POR_ACTFH (pActualiz_f_h)
Realiza la exportacin a un fichero CSV los registros de la tabla SERVICIOS que hayan sido insertados o
modificados despus de la fecha/hora especificado por el parmetro pActualiz_f_h.
Triggers
AGRMOD_SERVICIO
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla SERVICIOS.
Este trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
lanza una excepcin si el valor de cdigo especificado para el tipo de actividad (pTipoActividad_cd)
no es del grupo 8.
Atributos
Procedimientos
DESCARGAR_SERVICIOS_POR_ACTFH (pActualiz_f_h)
Realiza la exportacin a un fichero CSV los registros de la tabla ASOCIACION_VALORES_CODIGO que
hayan sido insertados o modificados despus de la fecha/hora especificado por el parmetro
pActualiz_f_h.
Triggers
AGRMOD_ASOC_VALORES_CODIGO
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla
ASOCIACION_VALORES_CODIGO. Este trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
Atributos
Procedimientos
DESCARGAR_USUARIOS_POR_ACTFH (pActualiz_f_h)
Realiza la exportacin a un fichero CSV los registros de la tabla USUARIOS que hayan sido insertados o
modificados despus de la fecha/hora especificado por el parmetro pActualiz_f_h.
Triggers
AGRMOD_USUARIO
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla SERVICIOS.
Este trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
lanza una excepcin si el valor de cdigo especificado para el perfil (pPerfil_cd) no es del grupo 6.
Atributos
Procedimientos
Triggers
AGRMOD_VENTA
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla VENTAS. Este
trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
Atributos
Procedimientos
Triggers
AGRMOD_VALORES_ATRIB_VIRTUALES
Se ejecuta antes de una operacin de agregacin o modificacin de un registro en la tabla
VALORES_ATRIB_VIRTUALES. Este trigger realiza las acciones siguientes:
al insertarse un registro nuevo, asigna un valor secuencial al atributo ID.
inserta un registro en la tabla LOG_ACCIONES segn se haya insertado un registro nuevo o
modificado un registro existente.
lanza una excepcin si el valor de cdigo especificado para el atributo (pAtributo_cd) es nulo.
lanza una excepcin si el valor de cdigo especificado para el atributo (pAtributo_cd) no es del grupo
9.
lanza una excepcin si el valor especificado para el campo registro_ce es nulo.
lanza una excepcin si no existe el registro registro_ce en la tabla al que se aplica el atributo.
lanza una excepcin si campo valor es nulo y el atributo pAtributo_cd es de tipo TEXTO.
lanza una excepcin si campo valor_cd es nulo y el atributo pAtributo_cd es de tipo GRUPO.
lanza una excepcin si campo valor_cd no pertenece al grupo al que hace referencia el atributo
pAtributo_cd.
Atributos
Procedimientos
El proyecto incluye unos guiones de prueba que permite probar el funcionamiento correcto de la Base
de Datos. Cada guin consta de una secuencia de pasos a ejecutar. Para cada paso, los guiones
especifican:
Los guiones dejan un espacio al lado de cada paso para especificar si el resultado obtenido como
consecuencia de la ejecucin del paso es el esperado. Tambin, para cada paso hay un espacio para
realizar anotaciones sobre el resultado devuelto.
Se contempla la posibilidad de definir un Data Warehouse para analizar los datos capturados mediante
la Base de Datos. El Data Warehouse permitira analizar los datos para obtener indicadores sobre la
actividad de la organizacin cliente como por ejemplo, el tiempo medio para reparar un coche, quienes
son los vendedores que ms venden, en qu meses se realizan ms ventas...
El alcance del proyecto de desarrollo de la Base de Datos no incluye una Data Warehouse ni su
configuracin, ni la importacin directa de datos a una Data Warehouse pero s contempla la posibilidad
de poder exportar datos de la Base de Datos a ficheros CSV. La gestin del Data Warehouse deber
contemplar la importacin de estos ficheros CSV al Data Warehouse.
Para permitir esta exportacin, la Base de Datos dispone de unos procedimientos almacenados que
extraen datos de su base de datos y los almacena en ficheros CSV en una ubicacin concreta.
Estos procedimientos almacenados consultan las tablas principales de la base de datos y extraen los
registros que hayan sido modificados. De esta forma, se evita extraer cada vez el conjunto total de
datos de las tablas principales. Se extraen nicamente los registros que hayan sido modificados despus
de la fecha especificada como parmetro en la invocacin de los procedimientos almacenados.
Se recomiendo la ejecucin de estos procedimientos por las noches cuando el uso de la base de datos
sea menor.
Los procedimientos almacenados de exportacin pueden ser ejecutados desde sqlplus o pueden ser
ejecutados desde una aplicacin externa. Como parmetro, se especifica nicamente la fecha a partir de
la cual se desea extraer registros modificados o aadidos. Cada procedimiento obtiene informacin de
una tabla concreta y genera un fichero CSV.
Si existe ya existe un fichero con el mismo nombre que el fichero siendo generado, el fichero original es
sustituido.
El nombre de cada fichero contiene una referencia a la tabla desde donde se ha exportado los datos y la
fecha del da en que se gener el fichero. De esta forma, mirando el nombre de un fichero exportado, se
sabe de qu tabla contiene informacin y en qu da se gener.
Las referencias que identifican las diferentes tablas que se exportan son las siguientes:
Cada nombre de fichero tambin incluye la cadena _POR_ACTFH_. Esta cadena recuerda que el
fichero se gener a partir de una consulta sobre el campo actualiz_f_h. En cada tabla, para cada registro,
este campo es actualizado con la fecha y hora en que se aade o se modifica el registro.
Los ficheros generados estn en formato texto y respetan la estructura CSV (Comma Separated Value).
Como separador de campo se, se ha usado el smbolo |.
Los ficheros contienen encabezados con los mismos nombres que las columnas de la tabla desde donde
se ha generado los datos. La nica excepcin es que las columnas de nombre ID aparecen en los
ficheros CSV con el nombre -ID. Esto es para evitar que Excel confunda estos ficheros con ficheros de
formato SYLK (este formato se caracteriza por el comienzo de ficheros con la cadena ID).
Los procedimientos almacenados de exportacin consultan la variable D_TEMP de la base de datos. Esta
variable debe ser definida antes de usar estos procedimientos. El valor de esta variable define la
ubicacin en la que se almacenarn los ficheros. Esta ubicacin debe ser creada antes de usar estos
procedimientos.
Para crear esta variable y asignarle un valor, se debe ejecutar en sqlplus (con usuarios SYSTEM) la
sentencia como la siguiente:
Los procedimientos almacenados de las exportaciones, requieren que el usuario Oracle que los ejecute
tenga el privilegio de ejecutar sobre el paquete UTL_FILE. Este paquete es proporcionado por Oracle. La
versin Oracle Database 10g Express Edition incluye este paquete. Para que sea utilizable por el usuario
CONCESIONARI, se le debe otorgar acceso mediante el usuario SYS:
A continuacin se resume de forma grfica el proceso de generacin de ficheros CSV a ser importados
en una Data Warehouse.
Data
Warehouse
Indicadores
En el coste del desarrollo de un software, predomina el coste del personal tcnico (director de proyecto,
analistas y programadores). Por tanto, a la hora de hacer la estimacin de costes, debemos centrarnos
principalmente en calcular el esfuerzo (en personas-hora) que requiere el desarrollo.
La mejor manera de estimar el coste de un software es partiendo de los costes que conllevaron
proyectos semejantes en el pasado.
Para este proyecto, se conoce el tiempo presupuestado y el tiempo que real invertido.
A la hora de realizar el Plan de Trabajo, se dividi el proyecto en tareas y ase asign una duracin
aproximada a cada tarea. Segn esta divisin de tareas y asignacin de duraciones, se lleg al total de 47
jornadas de dedicacin. El proyecto se desarroll en paralelo con otros proyectos y por tanto, se supuso
jornadas de menos de 8 horas. Por experiencias pasadas, se esper dedicar aproximadamente 2 horas
por jornada. Por tanto, se presupuest 47 x 2 = 94 horas.
PAC1: 20 horas
PAC 2: 16 horas
PAC 3: 20 horas
Restante (dedicacin durante diciembre y enero): 80 horas.
La dedicacin real se acerca a las 140 horas. Por tanto, vemos que se ha tenido que dedicar ms tiempo
de lo estimado inicialmente.
Afortunadamente para este proyecto, los roles de jefe de proyecto, analista y programador los
desempearon la misma persona y las tareas se han podido desarrollar secuencialmente. De no haber
sido as, los retrasos de algunas actividades podran haber implicado el mal gasto de horas de los
programadores y las prdidas habran sido mayores.
Es interesante comparar estos datos con los ratios de productividad estndares propuestos por Caper T.
Jones (en su libro Programming productivity, 1986).
Para facilitar la comparacin con estudios estndares, supongamos que trabaj jornadas de 8 horas para
desarrollar el software. La cantidad de jornadas habran sido: 130horas / (8horas/jornada) = 16
jornadas. La cantidad de lneas de cdigo generados (LOC) son aproximadamente 1600. Por tanto, la
productividad terica aproximada ha sido:
Otra mtrica muy conocida de estimacin de esfuerzo es la mtrica Puntos de Funcin. Tambin fue
diseado por Caper T. Jones. Esta mtrica intenta calificar el esfuerzo a partir de las funcionalidades en
lugar de la cantidad de lneas de cdigo.
Jones estim una media de 1,6 horas por punto de funcin. Segn el total de Puntos de Funcin
estimados, el desarrollo debera haber llevado:
De ambos resultados, vemos que el esfuerzo de desarrollo invertido es mucho menor de lo estimado por
las mtricas.
La diferencia entre lo estimado mediante las mtricas anteriores y la realidad se debe seguramente a los
factores siguientes:
Las mtricas y estndares anteriores fueron diseados en los aos 80. Desde entonces, la
informtica y la forma de programar han variado considerablemente y por tanto, los estndares de
productividad deben ser actualizados. Hoy en da no existe una propuesta universalmente acordado.
Las mtricas LOC y Puntos de Funcin han sido diseadas para aplicaciones propiamente dichas
(escritas en Cobol, por ejemplo, y posiblemente con acceso a alguna base de datos pequea). Estas
mtricas no asignan mucho peso al esfuerzo dedicado al desarrollo de la base de datos. Es decir,
estamos usando mtricas diseados para ser aplicados al producto final (la aplicacin y la base de
datos) a estimar el esfuerzo de nicamente el desarrollo de la base de datos, que adems, estos
mtodos tienden a infravalorar.
La complejidad del cdigo de los procedimientos y funciones almacenados es baja y adems, de
pocas lneas de cdigo. Las mtricas estndares propuestos fueron pensados para aplicaciones
mucho ms grandes y reales.
Tambin hay que tener en cuenta que los resultados de la aplicacin de las mtricas son orientativos. No
proporcionan valores exactos. Para estimar el esfuerzo requerido con ciertas garantas, es
imprescindible poder comprar el proyecto con proyectos semejantes ya desarrollados anteriormente.
Para este proyecto, el sobre coste ha sido significativo aunque asumible. Para desarrollos futuros
similares, sabremos que requerimos un esfuerzo aproximadamente de 12 horas por tabla, aunque este
valor podra bajar a medida que aumente la experiencia en el uso de PL/SQL.
He podido seguir el plan de proyecto, aunque con un desfase importante con respecto de la
planificacin. La atencin que exiga la puesta en produccin de otros proyectos ha provocado un
retraso importante en el desarrollo del PFC. A final de ao he podido coger vacaciones y poner el PFC al
da. Este retraso fue considerado en el plan de riesgos. El plan de contingencia para este riesgo consista
en coger vacaciones las 3 semanas antes de la entrega del PFC.
Base de Datos: En este documento, el trmino Base de Datos, refiere al producto base de datos que se
est desarrollando. Incluye las tablas, las relaciones entre las tablas, las claves, los ndices, las
secuencias, los triggers, los procedimientos y las funciones.
Alcance inicial: conjunto de requerimientos genricos que se definen durante la definicin del proyecto.
Valor de cdigo: son los valores concretos de municipios, de provincias de modelos de coches, de extras
o caractersticas.... Es la unidad de la informacin de referencia.
Grupo: categora o entidad conceptual en la que se clasifican los valores de cdigo. Por ejemplo, Palma
de Mallorca es valor de cdigo del grupo municipios.
Aplicacin: En este documento, el trmino aplicacin, refiere a la aplicacin a la que la Base de Datos
ofrece persistencia.
[1]: Jos Ramn Rodrguez, Pere Marin Jov, Gesti de projectes, UOC, Barcelona, 2010.
[2]: Miquel Barcel Garca, Joan Antoni Pastor i Collado Gestin de organizaciones y proyectos
informticos, UOC, Barcelona, 2004.
[3]: Jordi Fernndez Gonzlez, Jordi Pradel i Miquel, Desenvolupament del programari orientat a
objectes, UOC, Barcelona, 2005.
*4+: Abraham Silberschatz, Fundamentos de Bases de datos, McGraw Hill, Madrid 1998.
*5+: Jaume Sistac Planas, Bases de dades II, UOC, Barcelona, 2004.
Esta Memoria
La presentacin que resume la Memoria
Fichero de texto con las sentencias SQL cuya ejecucin permiten la construccin de la Base de
Datos.
Los guiones de prueba.