UNIVERSIDAD AUSTRAL DE CHILE Facultad de Ciencias de la Ingeniería Escuela de Ingeniería en Computación Diseño y Construcción de Sistema en Web para el análisis financiero de Empresas Asociativas Campesinas que operan con el INDAP Seminario de Titulación para optar al título de Ingeniero de Ejecución en Computación Profesor Patrocinante: Sra: Claudia Gislaine Zil Bontes Steve Miguel Hernaez Saldivia Puerto Montt Chile 2003 A todos mis seres queridos. Que con su apoyo incondicional... han logrado que mi alma alcance uno más de sus sueños. INDICE Portada Dedicatoria Indice Síntesis en castellano Síntesis en inglés 1 1.1 2 2.1 2.2 3 3.1 3.2 3.3 4 4.1 4.2 4.3 5 5.1 5.2 5.3 6 6.1 6.2 6.2.1 6.2.1.1 6.2.1.1.1 6.2.1.1.2 6.2.1.1.3 6.2.1.2 6.2.1.2.1 6.2.1.2.2 6.2.1.2.3 6.2.1.2.4 6.2.1.2.5 6.2.1.2.6 Introducción Resumen de capítulos Objetivos Objetivo general Objetivos específicos Planteamiento del Problema Antecedentes Justificación Delimitación Metodología Descripción de metodología Comparación entre metodologías Resumen de desarrollo proyectado Recursos Hardware Software Otros Desarrollo según metodología Resumen de productos Desarrollo de productos Productos etapas I y II Reuniones, cuestionarios y observaciones Reuniones Cuestionarios Observaciones directas Requerimientos del sistema Requerimientos iniciales Requerimientos funcionales Requerimientos de salidas Requerimientos de entrada Requerimientos de procedimientos Requerimientos de Recursos Humanos 1 7 10 10 10 12 12 17 23 25 29 30 32 35 35 37 39 40 40 42 42 42 42 42 42 43 44 45 45 46 46 47 6.2.1.2.7 6.2.1.2.8 6.2.1.2.9 6.2.1.3 6.2.1.4 6.2.2 6.2.2.1 6.2.2.1.1 Requerimientos de Recursos financieros Requerimientos de administración Requerimientos de medición de desempeño Resumen enumerado de requerimientos Diagrama de Flujo de Datos Productos etapa III Diseño de la Base de Datos Diseño de BdD Conceptual Construir un modelo de datos conceptual local para 6.2.2.1.1.1 cada vista de usuario 6.2.2.1.1.1.1 Identificar tipos de entidades 6.2.2.1.1.1.2 Identificar tipos de relaciones Identificar y asociar atributos con una entidad o 6.2.2.1.1.1.3 relación 6.2.2.1.1.1.4 Determinar dominios de atributos Determinar clave candidatas y primarias de los 6.2.2.1.1.1.5 atributos Especializar/generalizar tipos de entidades 6.2.2.1.1.1.6 (opcional) 6.2.2.1.1.1.7 Dibujar el diagrama ER 6.2.2.1.2 Diseño de BdD Lógico para el Modelo Relacional Construir y validar el modelo de datos lógico local 6.2.2.1.2.1 para cada vista de usuario Transformar el modelo de datos conceptual local al 6.2.2.1.2.1.1 modelo de datos lógico local 6.2.2.1.2.1.2 Derivar relaciones del modelo de datos lógico local 6.2.2.1.2.1.3 Validar modelo utilizando normalización 6.2.2.1.2.1.4 Validar modelo con las transacciones de usuarios 6.2.2.1.2.1.5 Dibujar diagrama ER final 6.2.2.1.2.1.6 Definir limitaciones de integridad 6.2.2.1.2.1.6.1 Datos requeridos 6.2.2.1.2.1.6.2 Restricciones de los dominios de los atributos 6.2.2.1.2.1.6.3 Integridad de entidades 6.2.2.1.2.1.6.4 Integridad referencial 6.2.2.1.2.1.6.5 Reglas de negocio 6.2.2.1.2.1.7 Revisar modelo de datos lógico local con el usuario 6.2.2.1.2.2 Construir y validar el modelo de datos lógico global 6.2.2.1.2.3 Mapa transaccional 6.2.2.1.3 Diseño de BdD Físico para el Modelo Relacional Traducir el modelo lógico global para el DBMS 6.2.2.1.4 especificado 48 48 49 50 51 56 56 57 57 58 60 65 78 80 82 83 85 86 86 93 103 108 111 112 113 113 114 115 121 122 123 124 126 127 Diseñar las relaciones bases para el DBMS especificado Diseñar las restricciones de la empresa para el 6.2.2.1.4.2 DBMS especificado 6.2.2.1.5 Diseñar representación física 6.2.2.1.5.1 Analizar transacciones 6.2.2.1.5.1.1 Diseño físico de transacciones 6.2.2.1.5.2 Elegir organización de archivos 6.2.2.1.5.3 Elegir índices secundarios Considerar la introducción de redundancia controlada 6.2.2.1.5.4 ( de-normalización) 6.2.2.1.5.5 Estimar los requerimientos de espacio en disco 6.2.2.1.6 Diseñar mecanismos de seguridad 6.2.2.1.6.1 Diseñar vistas de usuarios 6.2.2.1.6.2 Diseñar reglas de acceso 6.2.2.1.6.3 Monitoreo y refinamiento del sistema en operación 6.2.2.2 Diseño del sitio Web 6.2.2.2.1 Diseño Lógico 6.2.2.2.1.1 Diagrama del Sitio Web 6.2.2.2.1.2 Inventario de Páginas Web 6.2.2.2.2 Diseño Físico 6.2.2.2.2.1 Diagrama de montaje del sitio Web 6.2.2.2.2.2 Descripción del Software utilizado 6.2.2.2.2.2.1 Para Base de Datos 6.2.2.2.2.2.2 Para Sitio Web 6.2.2.2.2.3 Seguridad del Sitio Web 6.2.3 Productos etapa IV 6.2.3.1 Implementación de la Base de Datos 6.2.3.1.1 Script de la Base de Datos 6.2.3.1.2 Procedimientos Almacenados 6.2.3.1.3 Triggers o desencadenadores 6.2.3.1.4 Imágenes de la Base de Datos 6.2.3.2 Implementación del Sitio Web 6.2.3.2.1 Código de páginas del Sistema 6.2.3.2.2 Imágenes del Sitio Web 6.2.3.2.3 Referencias del desarrollo del Sitio Web 6.2.4 Productos etapa V 6.2.4.1 Descripción del desarrollo 6.2.4.2 Imágenes del desarrollo en otras aplicaciones 7 Conclusiones y/o Recomendaciones 6.2.2.1.4.1 128 129 130 130 132 138 140 142 144 149 150 152 153 154 154 155 156 158 158 160 160 163 166 170 170 171 200 205 207 209 209 217 220 221 221 223 228 8 9 9.1 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.2 9.2.1 9.2.2 9.3 9.3.1 9.3.2 9.4 9.4.1 9.4.2 9.5 Bibliografía Anexos A: Referencias para Reuniones, cuestionarios y entrevistas Reuniones, cuestionarios y entrevistas efectivas Formulario de preparación de una reunión Reunión de ejemplo Ejemplo de cuestionario Apreciaciones personales B:Referencias para Requerimientos Descripción de tipos de requerimientos [Perez1988] Listado de todos los requerimientos C:Información relacionada con el DFD Nomenclatura del DFD Diagrama de Flujo de Datos detallado D:Información relacionada con las Razones financieras. Descripción de Razones financieras Forma de calcular las Razones financieras E:Descripción de tipos de Datos del SQL Server. 230 232 232 232 234 237 239 245 246 246 250 252 252 253 266 266 268 269 Tablas ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Descripción Resumen de requerimientos más importantes Identificación de entidades Identificación de relaciones Detalle de atributos con su leyenda Detalle de los dominios determinados y su leyenda Detalle de las claves primarias y candidatas Relaciones redundantes Transacciones más importantes Requerimientos con Transacciones relacionadas Posibles acciones entre relaciones Padre e hijo Restricciones de integridad Detalles o características importantes de las transacciones Indices secundarios seleccionados Atributos redundantes para optimizar el tiempo de acceso Tamaño de registros de las relaciones Tamaño de las tablas “fijas” del sistema. Tamaño de las tablas “variables” Inventario de páginas del Sitio Web Listado de todos los requerimientos Listado de Tipos de Datos del SQL Server Pág. 50 58 61 65 78 80 89 109 110 116 119 131 138 142 145 146 147 157 251 269 Figuras ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Descripción Diagrama jerárquico de entidades Diagrama del flujo actual de datos Diagrama de la Metodología [Perez1988] Diagrama de la metodología [Connolly1988] Diagrama de la metodología [Byrne2000] y [Maso1997] Diagrama de la comparación entre metodologías Diagrama de la metodología de desarrollo del Sitio Web DFD, Diagrama Inicial DFD, Diagrama de Contexto Modo de Trabajo 1 DFD, Diagrama de Contexto Modo de Trabajo 2 Modelo E-R preliminar Transformación de Relaciones Diagrama ER final Mapa transaccional Diagrama del Sitio Web Proyecto Web Nomenclatura DFD Pág. 4 17 26 27 28 30 31 53 54 55 83 87 111 125 155 158 252 SINTESIS El objetivo principal de esta Tesis es desarrollar un sistema computacional que ayude al “Instituto de Desarrollo Agropecuario” (INDAP) a tomar mejores decisiones y en menos tiempo en su trabajo con las “Empresas Asociativas Campesinas” (EAC). El apoyo de la solución es de tipo financiero, al entregar información detallada de las razones financieras de las EAC en conjunto con sus “Unidades de Negocio” (UN) y clasificarlas en forma sintética. Para lograr esto se usaron varias metodologías. Para el desarrollo del Sistema en general se utilizó la metodología de [Perez1988], para el Diseño de la Base de Datos la metodología de [Connolly1998] y para el Diseño del Sitio Web se utilizaron las metodologías de [Byrne2000] y [Maso1997]. De este desarrollo se concluye que aún con las herramientas actuales para crear sistemas en Web existen muchas limitaciones para lograr interfaces amigables y en poco tiempo. Por esto último se debe optimizar la etapa de Diseño al momento de desarrollar una solución. SYNTHESIS The primary target of this Thesis is to develop a computational system that helps the “Instituto de Desarrollo Agropecuario” (INDAP), to make better decisions and in less time in its work with the “Empresas Asociativas Campesinas” (EAC). The support of the solution is of financial type, when giving detailed information of the financial reasons of the EAC altogether with its “Unidades de Negocio” (UN) and of classifying them in synthetic form. In order to obtain this several methodologies were used. For the development of the System in general the methodology of [Perez1988] was used, for Database Design the methodology of [Connolly1998] and for Web Sites Design was used the methodologies of [Byrne2000] and [Maso1997]. Of this development one concludes that still with the present tools to create systems in Web many limitations exist to obtain friendly interfaces and in just a short time. At this last one the stage of Design at the time of developing a solution is due to optimize. 1. Introducción “Las fronteras de la ciencia se alejan en la medida que el ser humano intenta alcanzarlas...” La creciente globalización de los mercados y los mayores requerimientos de competitividad, hacen necesario que los productores individuales busquen mejorar sus posibilidades de interactuar con los agentes económicos, por la vía de la asociatividad. Este es el camino que desde 1990 INDAP ha construido en conjunto con los pequeños productores a través de sus diferentes programas. De esta manera, se han originado proyectos de agroindustria y comercialización, que posteriormente fueron evolucionando hacia el concepto de agronegocios de carácter asociativo. Estas sociedades mejoran su rendimiento al sumar las capacidades productivas y de servicios de los productores individuales, además de estimular su capacidad negociadora con sus proveedores, intermediarios, agroindustrias y mercado financiero. 1 Las EAC (Empresas Asociativas Campesinas) que más allá de la organización para reivindicar situaciones sociales, buscan la generación de nuevos emprendimientos empresariales. Todo esto para aumentar sus ingresos, mejorar su calidad de vida y en conjunto con otros organismos del Estado (Salud, Vivienda, Educación, Obras Públicas, entre otros) mejorar la habitabilidad del sector rural, lo que permitirá asentar con ventajas conjuntos humanos en territorios rurales, aislados y fronterizos, atenuando la presión sobre el sector urbano. El creciente flujo de información de más de 100 Empresas Asociativas Campesinas (EAC) que operan con el INDAP, con inversiones por $ 3.000 millones sólo en la Décima Región, exige la modernización de los sistemas de captura, procesamiento y análisis de la información financiera, contable y administrativa, a objeto de anticiparse a la presentación de situaciones de conflicto, que eventualmente puedan poner en riesgo la viabilidad de las EAC y las colocaciones de recursos del Estado. Para ello el INDAP ha modelado algunas soluciones dentro de las cuales se encuentra el proyecto de desarrollo de un sistema computacional para automatizar los procesos de cálculos económicos, financieros y de los análisis a corto, mediano y largo plazo. 2 En este proyecto se encuentran involucrados el Director Nacional, los Directores Regionales, los Directores de las Unidades involucradas, Jefes de Área, Operadores Técnicos, Representantes de las EAC y el alumno (ver figura 1). El trabajo del alumno consiste en la construcción de la Base de Datos y del Sitio Web capaz de apoyar el análisis financiero de las EAC y en especial de la detección de los problemas económicos de las mismas. 3 Distribución de las entidades involucradas: Figura 1: Diagrama jerárquico de las entidades involucradas. 4 En términos generales el funcionamiento del sistema será: 1. Cada UN entregará los datos a la EAC a la cual pertenece (No tienen acceso a datos o informes en forma directa) 2. Cada EAC ingresará sus datos al sistema mediante un representante interno o a través de un Operador Técnico del INDAP. Sólo tendrá acceso a sus datos y a los informes relacionados con ellos. 3. Cada Operador Técnico ingresará y tendrá acceso a los datos de sus clientes directos (EAC). Además, tendrá acceso a los Informes de sus EAC directas y mediante la aprobación de una solicitud desde el sistema podrá tener acceso a ciertos informes consolidados. 4. Cada Jefe de Unidad podrá acceder a los informes consolidados o individuales de las EAC, pero sin el acceso directo a los datos. 5. Cada Jefe de Unidad de Estudio podrá acceder a los datos e informes de todo tipo sin restricciones. 5 6. El Administrador de la Base de Datos Accederá a todos los recursos desde el gestor de Base de Datos que se esté utilizando y si es necesario lo podrá hacer desde el sistema. Esto último por seguridad. 7. El Director Nacional accede a todo exceptuando la administración del sitio. 6 1.1 Resumen de Capítulos Capítulo 1: Introducción En este capítulo se intenta describir en forma general y resumida la totalidad del desarrollo del proyecto. Capítulo 2: Objetivos En este capítulo se determinan los objetivos y directrices que deben ser cumplidos al finalizar el desarrollo del sistema. Quedando en claro que el objetivo principal es modernizar el método de trabajo de INDAP con relación a las asesorías que entrega a las EAC para mejorar rapidez y eficiencia. Capítulo 3: Planteamiento del Problema En este capítulo se describe el problema que los usuarios de INDAP desean solucionar. Se describen la situación antes del sistema, intentos anteriores de solución y finalmente la solución propuesta. También se describen las ventajas de utilizar un modo más automatizado y centralizado de manejo de la información financiera y económica de las EAC. 7 Capítulo 4: Metodología En este capítulo se describe la metodología a seguir para desarrollar el sistema que solucione los problemas de los usuarios. Se explican las diferentes metodologías utilizadas en conjunto para generar la Base de Datos y el Sitio Web. Además, se entrega un resumen de los productos que se esperan obtener. Capítulo 5: Recursos En este capítulo se describen los recursos necesarios en hardware y software para desarrollar el proyecto. Se describen los equipos y programas necesarios para implantar el sistema y mantenerlo funcionando. Capítulo 6: Desarrollo según metodología En este capítulo se detallan los pasos seguidos, según las metodologías, para generar el sistema solución. Se detallan los subproductos de la Base de Datos y del sitio Web. Se muestran los diseños lógicos y físicos que son la Base del Sistema. Se describen aspectos técnicos del desarrollo y también prácticos, es decir, se muestran la Teoría y la Práctica. 8 Capítulo 7: Conclusiones y recomendaciones En este capítulo se resumen las conclusiones y recomendaciones que son abstraídas del desarrollo del proyecto. Son análisis de sucesos negativos y positivos que fueron encontrados mientras se desarrollaba la solución. 9 2. Objetivos 2.1 Objetivo general Diseñar, construir e implementar un sitio Web conectado a una Base de Datos para dar apoyo a las asesorías que realiza INDAP con sus EAC. 2.2 Objetivos específicos • Permitir operar el sistema en dos modos de trabajo. El primero con el ingreso de información directa a las EAC. El segundo con el ingreso de información a las UN de cada EAC, para luego y en forma automática “sumarizar” o consolidar los datos de las UN generando la información de las EAC. • Permitir cambiar de modo de trabajo en una fecha definible en tiempo de ejecución, es decir, cuando el sitio Web esté operando. • Permitir calcular en forma automática las razones financieras para las EAC y las UN. 10 • Permitir generar los informes de las EAC para diferentes periodos agrupando los datos en base a diferentes parámetros. • Permitir clasificar en forma Sintética a las EAC en base a las razones financieras en periodos anuales. • Realizar Análisis Automático, es decir, asistir los análisis de las EAC en base a frases predefinidas. 11 3. Planteamiento del Problema 3.1 Antecedentes El problema que se intenta solucionar es el de mejorar la forma de procesar los datos de las EAC y optimizar la forma de medir los aspectos financieros de las mismas. Actualmente sólo se cuenta con el manejo de datos en planillas Excel y el intercambio de información se efectúa mediante disquetes. Además de ser en extremo lento no cumple con ningún nivel de seguridad, confidencialidad y sobre todo no cubre las necesidades del Instituto de Desarrollo Agropecuario para la gestión de las EAC. Para este fin se aplicará un nuevo modelo informático de manejo y recopilación de datos reales y periódicos desde su fuente de origen, la empresa, hacia las Agencias de Áreas y Dirección Regional. Estos datos serán procesados para generar información hacia el nivel estratégico, ejecutivo y operacional del INDAP, orientando sus esfuerzos en apoyo a la pequeña agricultura regional. 12 La interfaz de captura o subsistema de ingreso de datos será diseñada de acuerdo a varios niveles de usuarios, es decir, según los conocimientos operativos computacionales y los niveles de seguridad que correspondan. Los datos de entrada al sistema se recopilarán de los pasivos de corto y largo plazo, balances tributarios, balances clasificados y estados de resultados de cada unidad de negocio. Con estos datos se obtendrán razones financieras de liquidez, endeudamiento y rentabilidad que sumados a los aspectos administrativos y de gestión, permitirá tener una interpretación razonable del desempeño financiero, viabilidad actual y de las principales limitantes de cada empresa. Se podrán catalogar las EAC utilizando la clasificación sintética, es decir, analizando los niveles operacionales, de endeudamiento y de dependencia con INDAP. Esta clasificación divide a las empresas en: Categoría A: Organizaciones económicas que poseen evaluación positiva en las tres evaluaciones. Se pueden considerar “exitosas”. 13 Categoría B: Organizaciones con dos evaluaciones positivas. Esta categoría necesita orientación por parte del INDAP para no empeorar su situación. Subcategoría B-I: Evaluación negativa de los resultados operacionales. Subcategoría B-II: Evaluación negativa en sus niveles de endeudamiento. Subcategoría B-III: Evaluación negativa en su grado de dependencia con el INDAP. Categoría C: Organizaciones económicas con una de las evaluaciones positiva. Son empresas con alto riesgo y que necesitan urgentemente el apoyo de alguna unidad del INDAP. Subcategoría C-I: Evaluación positiva en su grado de dependencia con el INDAP. Subcategoría C-II: Evaluación positiva en sus resultados operacionales. Subcategoría C-III: Evaluación positiva en sus niveles de endeudamiento. Con esto se pretende generar los cuadros que muestren los riesgos financieros de las EAC para estimar las acciones pertinentes según la categoría a la cual pertenecen. 14 La información de las EAC podrá ser consolidada en el territorio de la Agencia de Área, Provincia, Región, o por la orientación económica de cada una de ellas, lo que permitirá al INDAP tomar decisiones en cuanto al uso de los recursos de crédito, subsidios, asesorías técnicas, auditorias y capacitación. El proyecto de seminario será asumido como un medio de modernización del procesamiento de la información de las EAC, para lo cual cuenta con el apoyo de los cuadros profesionales de las Unidades de Informática, Control de Gestión, Finanzas y Administración, Unidad Técnico Empresarial y Dirección Regional, en aspectos de formulación teórica y práctica de los diferentes aspectos del proyecto de seminario. El equipo de Recursos Humanos de apoyo al desarrollo del proyecto está conformado por los siguientes profesionales de INDAP: Estudios y Control de Gestión : Carlos A. Cristi Vargas, Medico Veterinario; Rolando Leichtle Rosemberg, Ingeniero Agrónomo. Finanzas y Administración : Pedro Santana Cárcamo, Contador Auditor, Msc (c) Técnico Empresarial : Jaime Andrade Uribe, Ingeniero Comercial. 15 El alumno se responsabilizará de las siguientes actividades: • Desarrollo del sistema, según metodología, hasta el módulo de implementación. Para esto se desarrollarán: • Una Base de Datos, • Un Sitio Web conectado a la Base de Datos (páginas, Scripts de servidor y Scripts de clientes, etc.) • Instalación y configuración, en el servidor NT de la dirección regional, de los servicios de Web o WWW y MSSQLSRV. 16 3.2 Justificación Situación Actual. CLIENTES SERVIDOR Figura 2: Diagrama del flujo actual de datos en disquetes y formularios Excel. • Actualmente la Unidad de Estudios del INDAP en Puerto Montt recibe los datos de las EAC en planillas Excel u otro tipo de documentos no estandarizados para ser consolidados en forma manual. La forma de envío y/o recepción de estos datos es por medio de discos 3½, informes impresos o por medio de correos electrónicos. (Ver figura superior). 17 • La consolidación de los datos se efectúa reingresando o copiando los datos de cada EAC en una hoja Excel. Luego se formulan los consolidados recorriendo cada hoja para conectar los datos con la hoja del informe consolidado. Problemas comunes: • Obtención de informes incompletos, porque en la unidad central no cuentan con el tiempo suficiente para solicitar el reenvío de los datos faltantes y tampoco cuenta con el tiempo necesario para procesarlos. • Obtención de errores en los informes, porque los datos actualizados están accesibles sólo por las áreas, y porque los datos modificados no son notificados a su contra-parte desde las áreas o unidad central. • Dificultad en la validación y manejo de los datos, porque no existen normas para la captura y manejo de ellos (cada EAC entrega los datos que estima necesarios y sin un formato estándar). 18 Ejemplos: o Un error típico en el ingreso de los datos es el dato Rut en blanco o inválido. o Los Nombres se ingresan con diferente orden, es decir, NombresApellidos, Apellidos-Nombres, o con diferencias entre mayúsculas y minúsculas e incluso con espacios en blanco al inicio. o Se encuentran los nombres o Rut de las empresas repetidos. o Se realiza redondeo de cifras en algunas secciones y en otras no, lo que provoca inconsistencia a la hora de confeccionar los consolidados de los balances. • Otro aspecto importante es que el manejo de los datos es sólo a nivel de EAC y no por unidad de negocio, lo cual dificulta la detección de los problemas reales de las EAC. Por ejemplo: Una EAC con tres unidades de negocios puede estar en peligro financiero y ser salvada eliminando una de las unidades de negocio. 19 Situación con el sistema propuesto. Con el sistema propuesto se obtendría información más segura, confiable y con mayor rapidez. No se incurriría en gastos de desarrollo e implementación de clientes como con otras plataformas de desarrollo que se estaban evaluando. Se manejaría la información de cada unidad de negocio, lo que implica la mejor determinación del comportamiento financiero de las EAC. Se realizaría automáticamente la clasificación sintética de las EAC. Se realizarían automáticamente los preinformes financieros. Planteamiento de soluciones a los problemas detectados y otras características del sistema propuesto: • Para solucionar los informes con datos incompletos se realizarán validaciones que impidan nombres de empresas con una longitud menor a tres caracteres, Rut inválidos, etc. 20 • Para mantener la consistencia y la exactitud de los datos se impedirá el redondeo de cifras utilizándose los valores en su forma real, es decir, en pesos y no en miles o millones. Por ejemplo: En la sumatoria de los activos fijos, se pueden encontrar valores en pesos y otros en millones por lo cual la suma de ellos conlleva inconsistencia sin la transformación adecuada. Además, las transformaciones provocan retraso en los cálculos. • Se reduce el tiempo de envío de los datos por medio del acceso por la Intranet. Esto porque los datos demoran unos segundos en ser trasladados por la red y en forma física (documentos o disquetes) se demoran días incluso semanas. • Se reducen los costos de envío, porque los costos de mantención de la Intranet relativos al volumen de datos enviados no superan los costos en papel, tinta, disquetes, encomiendas, etc. • El formato estándar facilita el manejo de los datos, ya que la búsqueda por ejemplo de la Empresa (XXXXXX, YYYYYY) es bajo este formato solamente y no bajo (Xxxxxx, Yyyyyy) o (YYYYYY, XXXXXX) etc. 21 • El manejo de los datos a nivel de unidad de negocio facilita la detección de los problemas de las EAC. 22 3.3 Delimitación • Algunos detalles de diseño e implementación estarán sujetos al trabajo que se realice en conjunto con el equipo de trabajo del INDAP. • El manual no se desarrollará por falta de tiempo pero se realizarán capacitaciones personalizadas. • No se desarrollarán las salidas en formato Excel y PDF, por el tiempo necesario para organizar los datos en los informes y porque la única forma encontrada para desarrollar la salida en formato PDF fue con el PDF Machine (driver de impresora con salida de archivo PDF creado específicamente para Windows 95) que no es compatible con la plataforma de desarrollo del sistema. • La validación de datos desde el sitio Web será limitada por el tiempo que se requiere para generar el código que detecte los errores, es decir, la base de datos será la encargada de mantener la integridad y consistencia de los Datos. 23 • No se realizará el asistente de informes o análisis automático, porque no se entregó a tiempo la información necesaria para desarrollarlo. 24 4. Metodología 4.1 Descripción de metodologías. La metodología utilizada para el desarrollo del sistema es una agrupación de varias metodologías. La idea original o proyectada era utilizar las metodologías de la siguiente forma: 1. METODOLOGIA DE DISEÑO GENERAL DEL SISTEMA: [Perez1988] (Ver figura Nº 3) 2. METODOLOGIA DE DISEÑO DE BASE DE DATOS: [Connolly1998] (Ver figura Nº 4) 3. METODOLOGIA DE DISEÑO DEL SITIO WEB: [Byrne2000] y [Maso1997] (Ver figura Nº 5) 25 Metodología de Víctor Pérez y José Pino. [Perez1988] ADMINISTRACION DEL PROYECTO Control de las etapas del desarrollo. Participación de los niveles más altos de la Organización en el Proyecto. Interacciones con el diseño, la operación y la mantención de otros sistemas dentro de la Organización. DOCUMENTACION Percepción Estudio de Diseño Lógico del Diseño Físico del Prueba e Construcción Necesidades Factibilidad Sistema Sistema Implementación Definición del ¿Es beneficioso ¿Qué es lo que ¿Cuál es la Construcción Ensamble de problema. llevarlo a cabo? se quiere con el configuración de los las diferentes ¿Se puede sistema? computacional? programas y partes que llevar a cabo? ¿Dónde se ¿Cómo se demás apoyos conforman el ¿Se puede ubica dentro del llevarán a cabo de software. sistema. operar? contexto de la las actividades Organización? del sistema? Figura 3: Diagrama esquemático de la Metodología de desarrollo de sistemas propuesta por Víctor Pérez y José Pino. [Perez1988] Metodología de Thomas Connolly y Carolyn Begg. Figura 4: Diagrama esquemático de la metodología de desarrollo de sistemas con bases de Datos propuesta por Thomas Connolly. 27 Metodología de desarrollo del Sitio Web [Byrne2000] y [Maso1997] 28 4.1 Descripción de Metodología. (continuación) La forma real para determinar la metodología total de desarrollo del sistema fue utilizar las dos primeras metodologías [Perez1988] y [Connolly1998] como base del desarrollo del proyecto en general, al ser prácticamente equivalentes y complementarias entre sí. (Ver figura Nº 6) Con respecto a la metodología del desarrollo del sitio Web se debe tomar en consideración que al momento de buscar una metodología para desarrollar sitios Web no se encontró ninguna que fuera normada y estructurada. (Anteproyecto de Tesis) Pero al momento de desarrollar el sistema se encontró en el Manual de desarrollo de aplicaciones con Visual InterDev, que trae incluido el MSDN Library Visual Studio 6.0a, una metodología robusta y estructurada. Por esto se utilizó esta metodología como base para desarrollar el sitio Web en conjunto con extractos de los Libros [Byrne2000] y [Maso1997]. (Ver figura Nº 7) 29 4.2 Comparación entre Metodologías. Diagrama esquemático de equivalencias y complementos entre metodologías [Perez1988] y [Connolly1998]. Figura 6: Diagrama esquemático de la comparación entre metodologías para determinar una metodología final de desarrollo en base a [Perez1988] y [Connolly1998]. 30 Metodología de desarrollo del Sitio Web Figura 7: Diagrama esquemático de la metodología de desarrollo del Sitio Web. 31 4.3 Resumen General del desarrollo proyectado del sistema de análisis financiero. El proyecto comenzará por la Definición del sistema en donde se establecerán los márgenes o los límites con el medio ambiente, es decir, se definirán el problema y el ámbito del proyecto, se evaluarán posibles sistemas anteriores que intentaron dar solución al problema, se generarán soluciones factibles y se someterán a evaluaciones económicas, técnicas y operacionales para seleccionar la mejor alternativa, etc. Luego de esto se realizará la Recolección y Análisis de requerimientos en donde el usuario será el partícipe más importante, porque es quien entrega la información necesaria para definir los requerimientos del proyecto. Se continuará desarrollando el sistema con la Etapa de Diseño, dividida en dos: Diseño Lógico y Diseño Físico. En esta etapa se trabajarán en forma paralela los diseños lógicos y físicos de la Base de Datos y del Sitio Web. Con respecto al desarrollo de la Base de Datos se desarrollarán las etapas de Diseño Conceptual, Diseño Lógico y Diseño Físico en donde se determinarán el manejo de los datos, de las entradas, de las salidas, se seleccionará el gestor de la Base de Datos, se determinarán niveles de seguridad, etc. 32 Con respecto al Diseño de la Aplicación o Diseño del Sitio Web es en esta etapa donde se definirán todas las características del mismo, por ejemplo, Diagrama del sitio, formato de páginas, enlace con la Base de Datos, etc. A continuación se realizará la Construcción del Prototipo el cual servirá para perfeccionar los Diseños anteriores y para que los usuarios verifiquen el cumplimiento de sus requerimientos. En esta etapa se trabajará en conjunto con todos los usuarios para someter a prueba el prototipo y para detectar o corregir los errores. Se podrá ajustar el diseño del sistema volviendo atrás en las etapas de la metodología en la medida en que se encuentren problemas en la operación del prototipo. Por esto último se deberá tener cuidado en no crear un ciclo infinito de rediseñado en busca de la perfección. Finalmente se llegará a la etapa final del proyecto en donde se realizará la Implementación del sistema. En esta etapa se implementará el sistema que cumple con todos los requerimientos de los usuarios y que no presenta errores para su operación posterior en las pruebas a nivel de prototipo. El cual deberá ser explotado posteriormente. 33 Las etapas de Conversión de Datos, Pruebas y Mantenimiento Operacional están fuera del rango de cobertura del desarrollo del sistema propuesto. 34 5. Recursos 5.1 Hardware CARACTERISTICAS (Requerimientos Mínimos para un buen desempeño) SERVIDOR PROCESADOR: Pentium II a 400[MHZ] o un sistema Alpha o compatible. DISCO DURO: 180[MB] en disco duro para instalación completa. OTRAS UTILIDADES: Utilidades de gestión: 90[MB]. Servicios OLAP: 50[MB]. Options English Query: 12[MB]. MEMORIA RAM: 64[MB]. RED: Adaptador de red apropiado o el adaptador LoopBack de Microsoft. OPCIONALES: Unidad de CD-ROM (Sólo sino se instala desde la red) Discos Duros en espejo o sistema RAID. UPS (Unidad de poder ininterrumpida) Tarjeta de video con 4 MB o superior. Adaptador SCSI. 35 CLIENTE (Para desarrollo y prueba del sistema) PROCESADOR: Pentium a 166[MHZ] o un sistema Alpha o compatible. DISCO DURO: 20[MB] en disco duro para caché de navegación. OTRAS: Componentes cliente: 10[MB]. Plantillas y otros: 20[MB]. MEMORIA RAM: 32[MB]. RED: Adaptador de red apropiado y/o modem. OPCIONALES: En evaluación. 36 5.2 Software SERVIDOR Sistema operativo: WINDOWS NT. Aplicación servidor: IIS (Internet Information Server) + MS SQL Server. Aplicación para pruebas: Navegador. Base de datos: MS SQL Server 7 o MS SQL Server 2000. CLIENTE (Para prueba del sistema) Sistema operativo: Todas las plataformas que soportan navegador con HTML (versión de HTML en evaluación) Aplicación cliente: Internet Explorer 4.0 o superior. Lenguaje: ASP (HTML+ SQL + Script [+ ActiveX]). Script servidor: Visual Basic Scripting (VBScript), Script cliente: Java Script (JScript). Restricciones: En evaluación. 37 CLIENTE (para desarrollo del sistema) Sistema operativo: Windows9X+ o compatible. Aplicación cliente: Visual Studio 6, Netscape y/o Internet Explorer y Personal Web Server (PWS) Lenguaje: ASP (HTML+ SQL + Script [+ ActiveX]). Script: (VBScript, JScript). Restricciones: En evaluación. Comentario : La elección de la plataforma de desarrollo “Microsoft” (Sistema Operativo, Base de Datos y Software de desarrollo para el Sitio Web) es decisión institucional, es decir, el departamento de Informática de INDAP es quién seleccionó esta plataforma. 38 5.3 Otros Utilización de los recursos: SERVIDOR Equipo para el Sitio Web y la(s) Base(s) de Datos: • Servidor Web: Que contenga un sitio Web dado de alta para albergar los componentes del sistema desarrollado y someterlo a prueba. • Servidor de Base de Datos para el desarrollo de la(s) Base(s) de Datos. • Contenedor de la(s) Base(s) de Datos. CLIENTE Equipo para: • Desarrollar el sitio Web, es decir, que contenga el software para diseñar y construir las páginas con ASP, controles de ActiveX, etc. • Pruebas de clientes conectados al sitio Web desde la Intranet y por acceso remoto por medio de navegadores. Esto es para probar la rapidez y seguridad tanto de la Intranet como del servidor de SQL. 39 6. Desarrollo según Metodologías. Nota: Por la gran cantidad de documentación generada en el desarrollo, se opta por resumirla en forma de ejemplos clasificados por sección. 6.1 Resumen de productos 6.2.1 ETAPAS I y II: I. Definición del Sistema. II. Recolección y Análisis de requerimientos. RESUMEN DE PRODUCTOS: 6.2.1.1 Reuniones, cuestionarios y observaciones. 6.2.1.1.1 Reuniones. 6.2.1.1.2 Cuestionarios. 6.2.1.1.3 Observaciones directas. 6.2.1.2 Requerimientos del sistema. 6.2.1.2.1 Requerimientos iniciales 6.2.1.2.2 Requerimientos funcionales 6.2.1.2.3 Requerimientos de salidas 6.2.1.2.4 Requerimientos de entrada 6.2.1.2.5 Requerimientos de procedimientos 6.2.1.2.6 Requerimientos de Recursos Humanos. 6.2.1.2.7 Requerimientos de Recursos financieros 40 6.2.1.2.8 Requerimientos de administración 6.2.1.2.9 Requerimientos de medición de desempeño 6.2.1.3 Diagrama de Flujo de Datos. 6.2.2 ETAPA III: III. Diseño. RESUMEN DE PRODUCTOS: 6.2.2.1 Diseño de la Base de Datos 6.2.2.2 Diseño del sitio Web 6.2.3 ETAPA IV: IV. Implementación. RESUMEN DE PRODUCTOS: 6.2.3.1 Base de Datos 6.2.3.2 Sitio Web 6.2.4 ETAPA V: (adicional) V. Desarrollo de programas. RESUMEN DE PRODUCTOS: 6.2.4.1 Descripción del desarrollo. 6.2.4.2 Imágenes del desarrollo en otras aplicaciones 41 6.2 Desarrollo de productos 6.2.1 ETAPAS I y II. 6.2.1.1 Reuniones, cuestionarios y observaciones. Para conocer el método utilizado para realizar las reuniones ver Anexo A: sección 9.1.1. y sección 9.1.2. 6.2.1.1.1 Reuniones. Ver ejemplo en Anexo A: sección 9.1.3. 6.2.1.1.2 Cuestionarios Ver ejemplo en Anexo A: sección 9.1.4. 6.2.1.1.3 Observaciones directas. Ver ejemplo en Anexo A: sección 9.1.5. 42 6.2.1.2 Requerimientos del sistema. REQUERIMIENTOS DEL SISTEMA (Metodología [Pérez y Pino]) Ver la descripción de los tipos de requerimientos en Anexo B: sección 9.2.1. Forma de Desarrollo de la sección de requerimientos: Nomenclatura: DESCRITO: Se desarrolla en forma de narración escrita. DFD: Se desarrolla por medio de un Diagrama de Flujo de Datos. REQUERIMIENTOS INICIALES. (DESCRITO) REQUERIMIENTOS FUNCIONALES. (DFD) REQUERIMIENTOS DE SALIDAS. (DESCRITO Y DFD) REQUERIMIENTOS DE ENTRADA. (DESCRITO Y DFD) REQUERIMIENTOS DE PROCEDIMIENTOS. (DFD) REQUERIMIENTOS DE RECURSOS HUMANOS. (DESCRITO) REQUERIMIENTOS DE RECURSOS FINANCIEROS. (DESCRITO) REQUERIMIENTOS DE ADMINISTRACION. (DESCRITO) REQUERIMIENTOS DE MEDICION DE DESEMPEÑO. (DESCRITO) 43 6.2.1.2.1 Requerimientos iniciales o Permitir trabajar en dos modos de trabajo. o Permitir almacenar la información de las EAC. o Permitir almacenar la información de las UN. o Permitir manejar los datos en forma trimestral y anual. o Que el acceso de los usuarios sea restringido. o Que se puedan generar informes consolidados organizados por Areas, Región, etc. o Que se calculen las razones financieras de las EAC y UN. o Que se clasifique en forma sintética a las EAC. o Que se asista al usuario al generar los análisis de las EAC, es decir, que el sistema debe automatizar en cierta medida el análisis de las razones financieras y agrupaciones entre ellas mismas. o Que el ingreso de los Datos tenga orden lógico, es decir, que el ingreso de los Costos y Gastos junto al de los Ingresos deben ser previos al ingreso de los Estados de Resultados y a su vez estos últimos deben ser ingresados antes que los Balances. o Que los informes se puedan imprimir directamente desde el sitio Web. 44 6.2.1.2.2 Requerimientos funcionales Estos pueden ser observados en el DFD, figuras 8, 9 y 10 y la figura Nº 1. 6.2.1.2.3 Requerimientos de salida. (En general en el DFD y en detalle en el desarrollo del Sitio Web) o Informe de Datos Generales o Informe de Recursos Humanos o Informe de Inventarios o Informe de Vencimientos de Pasivos (corto y largo plazo) o Informe de Situación de la empresa o Informe de Problemas y Soluciones. o Informe de Ingresos (EAC y UN) o Informe de Costos y Gastos (EAC y UN) o Informe de Estados de Resultados (EAC y UN) o Informe de Balances (EAC y UN) o Informe de Razones financieras (EAC y UN) o Informe de Clasificación sintética o Informe de Análisis automático. 45 6.2.1.2.4 Requerimientos de entrada (En general en el DFD y en detalle en el desarrollo del Sitio Web) o Ingreso de Datos Generales o Ingreso de Recursos Humanos o Ingreso de Inventarios o Ingreso de Vencimientos de Pasivos (corto y largo plazo) o Ingreso de Situación de la empresa o Ingreso de Problemas y Soluciones. o Ingreso de Ingresos (EAC y UN) o Ingreso de Costos y Gastos (EAC y UN) o Ingreso de Estados de Resultados (EAC y UN) o Ingreso de Balances (EAC y UN) 6.2.1.2.5 Requerimientos de procedimientos El resumen de los requerimientos de procedimientos se encuentra implícito en el DFD adjunto. o Calcular Razones financieras (EAC y UN) o Clasificar en forma sintética o Generar Análisis Automático 46 6.2.1.2.6 Requerimientos humanos Como el sistema consta de un sitio Web montado sobre IIS y conectado a una Base de Datos SQL Server los requerimientos humanos son: Administrador(es): Conocimientos en Bases de Datos, de preferencia en Microsoft SQL Server 7 o 2000. Conocimientos Administrativos en Redes Windows NT, para la administración de usuarios, de recursos como el servicio Web, Servicio FTP, Servicio MS SQL Agent, Gestión desde MMC, etc. Conocimientos de programación en ASP, en HTML y en SQL. Usuarios: Conocimientos a nivel usuario del manejo de Sistemas operativos compatibles con el navegador Internet Explorer 4.0 o superior. Además de conocimientos básicos sobre el manejo del navegador Internet Explorer 4.0 o superior. 47 6.2.1.2.7 Requerimientos de recursos financieros Con respecto al costo de desarrollo y de implementación para el INDAP se puede decir que su costo involucra los siguientes ítems: • Software de Desarrollo: Licencia para un usuario de Microsoft Visual Studio 6. • Hardware de Servidor: Ninguno. (El Servidor Web y de SQL ya estaban en existencia y solo se amplió su utilidad con el desarrollo de este sistema, ya existían los puntos de Red, etc.) • Manuales para el desarrollador: Copias de los manuales de Microsoft Visual InterDev. (2 libros) • Mano de Obra del desarrollador: sin costo. • Entre otros costos indirectos que no se toman en cuenta por no ser costos directos del desarrollo. 6.2.1.2.8 Requerimientos de Administración El tiempo aproximado para el desarrollo del Diseño Físico es de 3 meses. La estimación de Costos Administrativos no se realizó. 48 6.2.1.2.9 Requerimientos de medición de desempeño Los requerimientos que se deben tener en cuenta son los de tiempo y capacidad, es decir, se debe intentar optimizar el rendimiento del sistema con respecto al tiempo de respuesta y con respecto a grado de capacidad del sistema bajo gran carga de trabajo. 49 6.2.1.3 Resumen enumerado para referencia de los requerimientos más importantes. El listado completo y enumerado se encuentra en el Anexo B: sección 9.2.2. ID DETALLE REQUERIMIENTO CLASIFICACION R-2 Permitir almacenar la información de las EAC ENTRADA DE DATOS R-3 Permitir almacenar la información de las UN ENTRADA DE DATOS R-5 Que el acceso de los usuarios sea restringido. R-6 Que se puedan generar informes consolidados organizados por Areas, Región, SALIDAS DE INFORMES etc. R-25 Ingreso de Datos Generales ENTRADA DATOS R-26 Ingreso de Recursos Humanos ENTRADA DATOS R-28 Ingreso de Vencimientos de Pasivos (corto y largo plazo) ENTRADA DATOS R-29 Ingreso de Situación de la empresa ENTRADA DATOS R-30 Ingreso de Problemas y Soluciones. ENTRADA DATOS R-31 Ingreso de Ingresos (EAC y UN) ENTRADA DATOS R-33 Ingreso de Estados de Resultados (EAC y UN) ENTRADA DATOS R-34 Ingreso de Balances (EAC y UN) ENTRADA DATOS R-38 Que permita buscar los datos de las EAC mediante parámetros BUSQUEDA DE DATOS R-40 Que permita buscar la clasificación sintética de las Empresas BUSQUEDA DE DATOS R-41 Que permita buscar las razones financieras de las Empresas BUSQUEDA DE DATOS SEGURIDAD Leyenda CLASIFICACION DESARROLLADO EN: PROCEDIMIENTOS SITIO WEB ENTRADA DATOS TRANSACCION EN BASE DE DATOS SALIDAS DE INFORMES TRANSACCION EN BASE DE DATOS (CONSULTA) BUSQUEDA DE DATOS TRANSACCION EN BASE DE DATOS (CONSULTA) SEGURIDAD MIXTO ENTRE SITIO WEB Y BASE DE DATOS Tabla 1: Tabla resumen de requerimientos más importantes identificados con su leyenda. 50 6.2.1.4 Diagrama de Flujo de Datos General Aclaraciones del diagrama de flujo de datos: MODOS DE TRABAJO: Para que el sistema pueda ser implementado rápidamente éste deberá permitir trabajar en dos modos mutuamente excluyentes. El modo de trabajo 1 (definitivo) reemplazará al modo de trabajo 2 en una fecha determinada por la Unidad de Estudios. La determinación de la fecha se realizará al momento de la implantación del sistema y está podrá ser cambiada hasta con un día de anticipación de dicha fecha. La razón de implementar los modos de trabajo es porque las EAC aún no cuentan con la información contable y financiera de sus Unidades de Negocio. Está situación deberá cambiar en una fecha aún no determinada. (fecha de cambio de modo) El primer modo de trabajo permitirá el ingreso y/o modificación de los Datos de las Unidades de Negocio y se podrán generar en forma automática los datos relacionados de la Empresa. El segundo modo de trabajo no permite el Ingreso y/o modificación de los Datos de las Unidades de Negocio y por ello no se podrán generar en forma automática los datos relacionados de la Empresa. Estos Datos deberán ser ingresados en forma manual mientras el modo de trabajo esté operativo. 51 Vencimiento de los Pasivos: El flujo de Datos llamado Vencimiento de Pasivos se asume como uno solo flujo de datos aunque puede ser dividido en dos: Vencimiento de Pasivos de Corto Plazo y Vencimiento de Pasivos de Largo Plazo. Esto porque administrativamente se manejan unidos y también para facilitar la comprensión del DFD del Sistema propuesto. Detalle de los informes: Con respecto al DFD los Informes que generará el sistema han sido resumidos a los informes básicos o críticos. La razón de hacer esto es la de simplificar visualmente el DFD. Los informes básicos o críticos serán detallados en los requerimientos de informes mostrando los informes derivados de los mismos. 52 DIAGRAMA INICIAL “Usuarios del Sistema” Figura 8: Diagrama de Flujo de Datos. Diagrama Inicial 53 DIAGRAMA DE CONTEXTO (“Modo de trabajo 1: Definitivo”) Figura 9: Diagrama de Contexto Modo de Trabajo 1 54 DIAGRAMA DE CONTEXTO ( “Modo de trabajo 2: Temporal”) Usuario Válido del sistema Usuario Válido del sistema Datos Generales Informe Datos Generales 1o4 1,2,3,4 o 5 Recursos Humanos Informe Recursos Humanos 0 Inventario Informe Inventario Vencimientos de Pasivos Situación de la Empresa Informe Vencimientos de Pasivos Sistema de Análisis Financiero Problemas y Soluciones Informe Situación de la Empresa Informe Problemas y Soluciones Ingresos Informe Ingresos Costos y Gastos Informe Costos y Gastos Estados de Resultados Informe Estados de Resultados Balances Informe Balances Informe Razones financieras Informe Clasificación Sintética Informe Análisis Automático Figura 10: Diagrama de Contexto Modo de Trabajo 2 Para ver más en detalle el DFD ir a Anexo C: sección 9.3.2. 55 6.2.2 ETAPA III 6.2.2.1 Diseño de la Base de Datos Las bases de datos almacenan, como su nombre dice, datos. Estos datos son representaciones de sucesos y objetos, a diferente nivel, existentes en el mundo real: en conjunto, representan algún tipo de entidad existente. En el mundo real se tiene percepción sobre las entidades u objetos y sobre los atributos de esos objetos; en el mundo de los datos, hay registros de eventos y datos de eventos. Además, en ambos escenarios se puede incluso distinguir una tercera faceta: aquella que comprende las definiciones de las entidades externas, o bien las definiciones de los registros y de los datos. El objetivo principal de esta etapa del desarrollo es generar un diseño de la Base de Datos robusto y óptimo para dar soporte a los datos del Sistema Solución. La información necesaria para este desarrollo se basa en los requerimientos obtenidos con anticipación y en el trabajo conjunto con los usuarios. Esta etapa se divide en tres secciones: o Diseño de la Base de Datos Conceptual, o Diseño de Base de Datos Lógico y o Diseño de Base de Datos Físico. 56 6.2.2.1.1 Diseño de Base de Datos Conceptual La fase de Diseño Conceptual se alimenta del Análisis de Requerimientos y produce un diseño que trata de reflejar como son los datos. Es una práctica común que estas dos primeras fases sean hechas de manera participativa y a través de refinamientos sucesivos. Esto último se logra mediante la interacción de los diseñadores con los usuarios del sistema. El diseño conceptual trata de crear un Modelo Parcial del Universo donde se trata de capturar lo suficiente para poder soportar todas las funciones a las que servirá el sistema final. El resultado final de esta fase es un Esquema de la Base de Datos. Este esquema no necesariamente será implementado directamente en algún manejador de base de datos. Dentro de esta fase es común el uso del modelo Entidad - Relación. 6.2.2.1.1.1 Construir un modelo de datos local y conceptual de la empresa para cada vista especifica del usuario. En esta etapa se analiza el problema a solucionar y se determinan las entidades, relaciones y atributos que lo definen. 57 6.2.2.1.1.1.1 Identificación de entidades En esta etapa se definen las entidades en base a sustantivos y pronombres desde los requerimientos de los usuarios y la interacción repetitiva con los mismos. El resultado de esta etapa se puede visualizar en la siguiente figura: ENTIDADES ENTIDAD ALIASES OCURRENCIA Persona que administra una EAC. Administradores Una persona Administra una EAC AREAS División por zonas que determinan el ámbito de acción. No tiene Un Area tiene X Comunas BALANCE DE UNIDAD DE NEGOCIO Balances anuales de cada UN. UN X Balances Todo Balance de UN pertenece a una sola UN No tiene Una ciudad tiene X EAC ADMINISTRADOR DE EMPRESA DESCRIPCION Todas las ciudades chilenas donde existen EAC apoyadas por INDAP. CLASE DE UNIDAD DE Clasificación del tipo de Unidad de NEGOCIO Negocio. Sección de construcciones e CONSTRUCCION E INFRAESTRUCTURA DE infraestructuras de los Inventarios de cada EAC. INVENTARIO CIUDADES COSTOS DE EMPRESA Costos y gastos trimestrales de cada EAC. COSTOS DE UNIDAD DE Costos y gastos trimestrales de cada NEGOCIO UN. EMPRESAS Datos generales de cada EAC. ESTADO DE RESULTADO DE EMPRESA Estados de Resultado por periodos trimestrales de cada EAC. INGRESOS DE EMPRESA Clase_UN Empresa X Inventario X Construc_infraes Empresa X Costos Cada Costo de Empresa pertenece solo a una EAC UN X Costos Cada Costo de UN pertenece sola a una EAC No tiene Una EAC tiene X UN Cada Estado de Resultado de Empresa X Estados Empresa pertenece solo a una Resultados EAC Ingresos monetarios percibidos en un Empresa X Ingresos trimestre por cada EAC. MAQUINARIAS Y EQUIPOS DE INVENTARIO Clasificación de Inventario por Maquinaria y Equipos de la Empresa. OPERADORES Personal de INDAP encargado de entregar la asesoría a una EAC. 58 Cada Clase de UN tiene X Tipos de UN Toda Construc. e Infra. de Inventario pertenece solo a una EAC Todo Ingreso de Empresa pertenece solo a una EAC Toda Maq. Y Equipo de Empresa X Inventario Inventario pertenece solo a X Maquinarias y una EAC Equipos No tiene Un operador tiene X EAC PROBLEMAS DE EMPRESA Especificación de problemas y soluciones de cada EAC. Empresa X Problemas Cada Problema de Empresa pertenece solo a una EAC RECURSOS HUMANOS DE EMPRESA Detalle por cargos y cantidades del personal de cada EAC. Empresa X RRHH Todo Recurso Humano de Empresa pertenece solo a una EAC REGIONES Regiones del país. No tiene Una Región tiene X Provincias y X Areas REPRESENTANTE DE EMPRESA El o los representantes de cada EAC. Empresa X Representantes Una persona puede representar una o más EAC SITUACION DE EMPRESA Detalle de la información entregada por cada EAC referente a este Sistema de Análisis. Empresa X Situaciones Toda Situación de Empresa pertenece solo a una EAC TERRENOS DE INVENTARIO Clasificación de Inventario por Terreno de Empresa. TIPOS DE CLASIFICACION Tipos de clasificaciones sintéticas. Tipos_clasificación Un tipo de Clasificación tiene X EAC TIPOS DE ESTADO Tipo de estado en el que se encuentran solucionados los problemas de cada EAC. Tipos_Estados Cada Tipo de Estado tiene X Problemas de Empresa TIPOS DE PROBLEMAS Tipificación de los problemas. Tipos_Problemas Cada Tipo de Problema tiene X Problemas de Empresa TIPOS DE UNIDADES DE NEGOCIO Tipificación de las UN. Tipos_UN Todo Tipo de UN tiene X UN UNIDAD DE MEDIDA Todas las unidades de medida de los elementos del sistema UM Cada UM tiene X Ingresos de EAC y/o UN UNIDAD DE NEGOCIO Todas las UN que pertenecen a cada EAC. UN Cada UN pertenece solo a una EAC USUARIOS Todos los usuarios válidos del Sistema. No tiene Todo Usuario pertenece solo a un Tipo de Usuario Detalle mes a mes de los VENCIMIENTO DE LOS Vencimientos de pasivos en el Año de PASIVOS DE CORTO cada EAC. PLAZO Detalle año tras año de los VENCIMIENTO DE LOS Vencimientos proyectados de cada PASIVOS DE LARGO EAC. PLAZO Empresa X Inventario Todo Terreno de Inventario X Terrenos pertenece solo a una EAC Empresa X Cada Venc. De PCP pertenece Vencimiento X PCP solo a una EAC Empresa X Vencimiento X PLP Tabla 2: Tabla de identificación de entidades. 59 Cada Venc. De PLP pertenece solo a una EAC 6.2.2.1.1.1.2 Identificación de relaciones En esta etapa se procede a identificar las relaciones que asocian las distintas entidades definidas en el ítem anterior, su cardinalidad, es decir, de que tipo son, uno a uno(1:1), uno a muchos(1:N), muchos a uno(N:1), muchos a muchos(N:M), y finalmente la existencia que indica si la relación es mandatoria (M), la cuál indica que siempre debe ir, u opcional (O), que puede o no ir. 60 El resultado de esta etapa se puede apreciar en la siguiente tabla: RELACIONES TIPO ENTIDAD RELACION TIPO ENTIDAD CARD. ADMINISTRADOR DE EMPRESA Tiene EMPRESAS Tiene CIUDADES AREA PARTICIPACION MIN MAX MIN MAX TIPO 1:M 1 N 1 1 M:M 1:M 0 N 1 1 O:M Tiene COMUNAS 1:M 0 N 1 1 O:M Tiene EMPRESAS 1:M 0 N 1 1 O:M Pertenece a PROVINCIA 1:1 1 1 0 N M:O Pertenece a REGION 1:1 1 1 0 N M:O BALANCE DE UNIDAD DE NEGOCIO Pertenece a UNIDAD DE NEGOCIO 1:1 1 1 0 N M:O BALANCE DE EMPRESA Pertenece a EMPRESA 1:1 1 1 0 N M:O Pertenece a AREA 1:1 1 1 0 N M:O CIUDAD CLASE DE UNIDAD DE NEGOCIO Pertenece a COMUNA 1:1 1 1 0 N M:O Tiene EMPRESAS 1:M 0 N 1 1 O:M Pertenece a PROVINCIA 1:1 1 1 0 N M:O Pertenece a REGION 1:1 1 1 0 N M:O Tiene TIPO DE UNIDAD 1:M 0 N 1 1 O:M Tiene UNIDADES DE NEGOCIO 1:M 0 N 1 1 O:M Pertenece a AREA 1:1 1 1 0 N M:O Tiene CIUDADES 1:M 0 N 1 1 O:M Tiene EMPRESAS 1:M 0 N 1 1 O:M Pertenece a PROVINCIA 1:1 1 1 0 N M:O Pertenece a REGION 1:1 1 1 0 N M:O CONSTRUCCION E INFRAESTRUCTURA DE INVENTARIO Pertenece a EMPRESA 1:1 1 1 0 N M:O COSTOS DE EMPRESA Pertenece a EMPRESA 1:1 1 1 0 N M:O COSTOS DE UNIDAD DE NEGOCIO Pertenece a UNIDAD DE NEGOCIO 1:1 1 1 0 N M:O Tiene INGRESOS DE EMPRESA 1:M 0 N 1 1 O:M Tiene INGRESOS DE UNIDAD DE NEGOCIO 1:M 0 N 1 1 O:M COMUNA DESTINO DE LA PRODUCCION 61 Tiene ADMINISTRADOR DE EMPRESA 1:1 1 1 1 N M:M Pertenece a AREA 1:1 1 1 0 N M:O Tiene BALANCES DE EMPRESA 1:M 0 N 1 1 O:M Pertenece a CIUDAD 1:1 1 1 0 N M:O Pertenece a COMUNA 1:1 1 1 0 N M:O Tiene CONSTRUCCIONES E INFRAESTRUCTURAS DE INVENTARIO 1:M 0 N 1 1 O:M Tiene COSTOS DE EMPRESA 1:M 0 N 1 1 O:M Tiene ESTADOS DE RESULTADO DE EMPRESA 1:M 0 N 1 1 O:M Tiene GRUPO DE TRABAJO 1:1 1 1 1 1 M:M Tiene INGRESOS DE EMPRESA 1:M 0 N 1 1 O:M Tiene MAQUINARIAS Y EQUIPOS DE INVENTARIO 1:M 0 N 1 1 O:M Tiene OPERADOR 1:1 1 1 1 1 M:M Tiene OTROS ACTIVOS DE INVENTARIO 1:M 0 N 1 1 O:M Tiene PROBLEMAS DE EMPRESA 1:M 0 N 1 1 O:M Pertenece a PROVINCIA 1:1 1 1 0 N M:O Tiene RECURSOS HUMANOS DE EMPRESA 1:M 0 N 1 1 O:M Pertenece a REGION 1:1 1 1 0 N M:O Tiene REPRESENTANTE(S) DE EMPRESA N:M 1 2 1 N M:M Tiene SITUACION DE EMPRESA 1:M 0 N 1 1 O:M Tiene TERRENOS DE INVENTARIO 1:M 0 N 1 1 O:M Tiene TIPOS DE CLASIFICACION 1:1 1 1 1 1 M:M Tiene USUARIOS 1:1 1 1 0 N M:O Tiene UNIDADES DE NEGOCIO 1:M 1 N 1 1 M:M Tiene VENCIMIENTO DE LOS PASIVOS DE CORTO PLAZO 1:M 0 N 1 1 O:M Tiene VENCIMIENTO DE LOS PASIVOS DE LARGO PLAZO 1:M 0 N 1 1 O:M EMPRESAS 62 ESTADO DE RESULTADO DE EMPRESA Pertenece a EMPRESA 1:1 1 1 0 N M:O ESTADO DE RESULTADO DE UNIDAD DE NEGOCIO Pertenece a UNIDAD DE NEGOCIO 1:1 1 1 0 N M:O GRUPOS DE TRABAJO Tiene EMPRESAS 1:M 0 N 1 1 O:M Pertenece a EMPRESA 1:1 1 1 0 N M:O Pertenece a DESTINO DE LA PRODUCCION 1:1 1 1 0 N M:O INGRESOS DE EMPRESA Tiene UNIDAD DE MEDIDA 1:1 1 1 0 N M:O Pertenece a UNIDAD DE NEGOCIO 1:1 1 1 0 N M:O Pertenece a DESTINO DE LA PRODUCCION 1:1 1 1 0 N M:O Tiene UNIDAD DE MEDIDA 1:1 1 1 0 N M:O MAQUINARIAS Y EQUIPOS DE INVENTARIO Pertenece a EMPRESA 1:1 1 1 0 N M:O OPERADORES Tiene EMPRESAS 1:M 0 N 1 1 O:M OTROS ACTIVOS DE INVENTARIO Pertenece a EMPRESA 1:1 1 1 0 N M:O Pertenece a EMPRESA 1:1 1 1 0 N M:O Tiene TIPO ESTADO 1:1 1 1 1 1 M:M INGRESOS DE UNIDAD DE NEGOCIO PROBLEMAS DE EMPRESA PROVINCIAS RECURSOS HUMANOS DE EMPRESA REGION Tiene TIPO PROBLEMA 1:1 1 1 1 1 M:M Tiene AREAS 1:M 0 N 1 1 O:M Tiene CIUDADES 1:M 0 N 1 1 O:M Tiene COMUNAS 1:M 0 N 1 1 O:M Tiene EMPRESAS 1:M 0 N 1 1 O:M Pertenece a REGION 1:1 1 1 0 N M:O Pertenece a EMPRESA 1:1 1 1 0 N M:O Tiene AREAS 1:M 0 N 1 1 O:M Tiene CIUDADES 1:M 0 N 1 1 O:M Tiene COMUNAS 1:M 0 N 1 1 O:M Tiene EMPRESAS 1:M 0 N 1 1 O:M Tiene PROVINCIAS 1:M 0 N 1 1 O:M REPRESENTANTE DE EMPRESA Tiene EMPRESAS N:M 1 N 1 N M:M SITUACION DE EMPRESA Pertenece a EMPRESA 1:1 1 1 0 N M:O TERRENOS DE INVENTARIO Pertenece a EMPRESA 1:1 1 1 0 N M:O 63 TIPOS DE CLASIFICACION Tiene EMPRESAS 1:M 0 N 1 1 O:M TIPOS DE ESTADO Tiene PROBLEMAS DE EMPRESA 1:M 0 N 1 1 O:M TIPOS DE PROBLEMAS Tiene PROBLEMAS DE EMPRESA 1:M 0 N 1 1 O:M Tiene UNIDADES DE NEGOCIO 1:M 0 N 1 1 O:M Pertenece a CLASES DE UNIDADES DE NEGOCIO 1:1 1 1 0 N M:O Tiene USUARIOS 1:M 0 N 1 1 O:M Tiene INGRESOS DE EMPRESA 1:M 0 N 1 1 O:M Tiene INGRESOS DE UNIDAD DE NEGOCIO 1:M 0 N 1 1 O:M Tiene BALANCE DE UNIDAD DE NEGOCIO 1:M 0 N 1 1 O:M Pertenece a CLASE DE UNIDAD DE NEGOCIO 1:1 1 1 0 N M:O Tiene COSTOS DE UNIDAD DE NEGOCIO 1:M 0 N 1 1 O:M Tiene ESTADO DE RESULTADO DE UNIDAD DE NEGOCIO 1:M 0 N 1 1 O:M Tiene INGRESOS DE UNIDAD DE NEGOCIO 1:M 0 N 1 1 O:M Pertenece a EMPRESAS 1:M 1 1 1 N M:M Pertenece a TIPOS DE UNIDADES DE NEGOCIO 1:1 1 1 0 N M:O Tiene EMPRESAS 1:M 0 N 1 1 O:M Pertenece a TIPO DE USUARIO 1:1 1 1 0 N M:O VENCIMIENTO DE LOS PASIVOS DE CORTO PLAZO Pertenece a EMPRESA 1:1 1 1 0 N M:O VENCIMIENTO DE LOS PASIVOS DE LARGO PLAZO Pertenece a EMPRESA 1:1 1 1 0 N M:O TIPOS DE UNIDADES DE NEGOCIO TIPOS DE USUARIOS UNIDAD DE MEDIDA UNIDAD DE NEGOCIO USUARIOS Tabla 3: Tabla de identificación de relaciones. 64 6.2.2.1.1.1.3 Identificación y asociación de atributos con una entidad o relación. Cada entidad o relación tiene asociados atributos, que son datos que pertenecen a ésta y entregan información de la misma. Los resultados de esta etapa se pueden visualizar en la siguiente tabla: ATRIBUTOS ENTIDAD O RELACION NOMBRE RUT ADMINISTRADOR DE DIGITO EMPRESA AREAS ALIAS TIPO DATO RUT_ADMIN Numérico VALOR POR DEFECTO T 8 N D M C NO NO NO NO DIG_ADMIN Alfanumérico 1 NO NO NO NO NOMBRE NOMBRE_ADMIN Alfabético NO NO NO SI AREA ID_AREA Alfanumérico 2 NO NO NO NO REGION ID_REGION Alfanumérico 2 NO NO NO NO NOMBRE_AREA Alfabético 20 NO NO NO NO ID_BAL_UN Numérico 9 NO NO NO NO AÑO_BAL Numérico 4 NOMBRE BALANCE DE UNIDAD IDENTIFICADOR DE BALANCE UN DE NEGOCIO AÑO 40 AÑO_ACTUAL NO NO NO NO UN ID_UN Numérico 9 DISPONIBLE CAJA DISPONIBLE_CAJA_BAL_UN Numérico 9 0 NO NO NO NO DISPONIBLE BANCOS DISPONIBLE_BANCOS_BAL_UN Numérico 9 0 NO NO NO NO DEPOSITOS A PLAZO DEPOSITO_PLAZOS_BAL_UN Numérico 9 0 NO NO NO NO VALORES NEGOCIABLES VALORES_NEGOCIABLES_BAL_UN Numérico 9 0 NO NO NO NO DEUDORES POR VENTA DEUDORES_VENTA_BAL_UN Numérico 9 0 NO NO NO NO DOCUMENTOS POR COBRAR DOCUMENTOS_COBRAR_BAL_UN Numérico 9 0 NO NO NO NO DEUDORES VARIOS DEUDORES_VARIOS_BAL_UN Numérico 9 0 NO NO NO NO EXISTENCIAS EXISTENCIAS_BAL_UN Numérico 9 0 NO NO NO NO IMPUESTOS POR RECUPERAR IMPUESTOS_RECUPERAR_BAL_UN Numérico OTROS ACTIVOS CIRCULANTES OTROS_ACTIVOS_CIRCULANTES_BAL_UN Numérico 9 0 NO NO NO NO 9 0 NO NO NO NO TOTAL ACTIVO CIRCULANTE TOTAL_ACTIVO_CIRC_BAL_UN Numérico 9 0 NO SI TERRENOS TERRENOS_BAL_UN Numérico 9 0 NO NO NO NO CONSTRUCCIONES Y OBRAS DE INFRAESTRUCTURA CONSTRUCCIONES_INFRA_BAL_UN Numérico 9 0 NO NO NO NO 65 NO NO NO NO NO NO MAQUINARIAS Y EQUIPOS MAQUINARIAS_EQUIPOS_BAL_UN Numérico 9 0 NO NO NO NO MUEBLES MUEBLES_BAL_UN Numérico 9 0 NO NO NO NO VEHICULOS ACCIONES DE OTRAS EMPRESAS VEHICULOS_BAL_UN Numérico 9 0 NO NO NO NO ACCIONES_OTRAS_EMP_BAL_UN Numérico 9 0 NO NO NO NO OTROS ACTIVOS FIJOS OTROS_ACTIVOS_FIJOS_BAL_UN Numérico 9 0 NO NO NO NO SUBTOTAL SUBTOTAL_BAL_UN Numérico 9 0 NO SI NO NO DEPRECIACION ACUMULADA DEPRECIACION_ACUM_BAL_UN Numérico 9 0 NO NO NO NO TOTAL ACTIVO FIJO NETO TOTAL_ACTIVO_FIJO_NETO_BAL_UN Numérico 9 0 NO SI INVERSIONES_EMP_REL_BAL_UN Numérico 9 0 NO NO NO NO INVERSIONES EN EMPRESAS RELACIONADAS INVERSIONES EN OTRAS SOCIEDADES NO NO INVERIONES_OTRAS_SOC_BAL_UN Numérico 9 0 NO NO NO NO DEUDORES A LARGO PLAZO DEUDORES_LP_BAL_UN Numérico 9 0 NO NO NO NO OTROS ACTIVOS OTROS_ACTIVOS_BAL_UN Numérico 9 0 NO NO NO NO TOTAL OTROS ACTIVOS TOTAL_OTROS_ACT_BAL_UN Numérico 9 0 NO SI NO NO TOTAL ACTIVOS CREDITOS A CORTO PLAZO INDAP CREDITOS A CORTO PLAZO BANCOS TOTAL_ACTIV_BAL_UN Numérico 9 0 NO SI NO NO CRED_CP_INDAP_BAL_UN Numérico 9 0 NO NO NO NO CRED_CP_BANCOS_BAL_UN Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO CREDITOS A LARGO PLAZO INDAP, PORCION CIRCULANTE CRED_LP_INDAP_PC_BAL_UN CREDITOS A LARGO PLAZO BANCOS, PORCION CIRCULANTE CRED_LP_BANCOS_PC_BAL_UN Numérico 9 0 NO NO NO NO DIVIDENDOS POR PAGAR DIVIDENDOS_PAGAR_BAL_UN Numérico 9 0 NO NO NO NO OBLIGACIONES CON OTRAS INSTITUCIONES OBLIGACIONES_INSTITU_BAL_UN Numérico 9 0 NO NO NO NO CUENTAS POR PAGAR CUENTAS_PAGAR_BAL_UN Numérico 9 0 NO NO NO NO ACREEDORES VARIOS ACREEDORES_BAL_UN Numérico 9 0 NO NO NO NO DOCUMENTOS POR PAGAR DOCUMENTOS_PAGAR_BAL_UN Numérico 9 0 NO NO NO NO IMPUESTOS POR PAGAR IMPUESTOS_PAGAR_BAL_UN Numérico 9 0 NO NO NO NO PROVISIONES PROVISIONES_BAL_UN Numérico 9 0 NO NO NO NO RETENCIONES OTROS PASIVOS CIRCULANTES RETENCIONES_BAL_UN Numérico 9 0 NO NO NO NO OTROS_PASIVOS_CIRC_BAL_UN Numérico 9 0 NO NO NO NO TOTAL PASIVO CIRCULANTE TOTAL_PC_BAL_UN Numérico 9 0 NO SI OBLIGACIONES CON INDAP OBLIGACIONES_INDAP_BAL_UN OBLIGACIONES CON BANCOS E INSTITUCIONES FINANCIERAS OBLIGACIONES_BANCOS_BAL_UN Numérico 9 0 NO NO NO NO NO NO Numérico 9 0 NO NO NO NO OBLIGACIONES CON OTRAS INSTITUCIONES PLP OBLIGACIONES_INSTITU_PLP_BAL_UN Numérico 9 0 NO NO NO NO ACREEDORES VARIOS PLP DOCUMENTOS POR PAGAR PLP ACREEDORES_PLP_BAL_UN Numérico 9 0 NO NO NO NO DOCUMENTOS_PAGAR_PLP_BAL_UN Numérico 9 0 NO NO NO NO PROVISIONES PLP PROVISIONES_PLP_BAL_UN Numérico 9 0 NO NO NO NO OTROS PLP OTROS_PLP_BAL_UN Numérico 9 0 NO NO NO NO TOTAL PLP TOTAL_PLP_BAL_UN Numérico 9 0 NO SI CAPITAL PAGADO REVALORACION CAPITAL PROPIO CAPITAL_PAGADO_BAL_UN Numérico 9 0 NO NO NO NO REVALORACION_CP_BAL_UN Numérico 9 0 NO NO NO NO 66 NO NO OTRAS RESERVAS OTRAS_RESERVAS_BAL_UN Numérico 9 0 NO NO NO NO UTILIDADES O PERDIDAS ACUMULADAS UTILIDADES_PERD_ACUM_BAL_UN Numérico 9 0 NO NO NO NO UTILIDADES O PERDIDAS DEL EJERCICIO UTILIDADES_PERD_EJER_BAL_UN RESERVAS FUTUROS DIVIDENDOS RESERV_FUTUROS_DIV_BAL_UN BALANCES DE EMPRESA Numérico 9 0 NO SI Numérico 9 0 NO NO NO NO NO NO DIVIDENDOS PROVISORIOS DIVIDENDOS_PROV_BAL_UN Numérico 9 0 NO NO NO NO OTROS PASIVOS OTROS_PASIV_BAL_UN Numérico 9 0 NO NO NO NO TOTAL PATRIMONIO TOTAL_PAT_BAL_UN Numérico 9 0 NO SI NO NO TOTAL PASIVO Y PATRIMONIO TOTAL_PASIV_BAL_UN Numérico 9 0 NO SI NO NO IDENTIFICADOR DE BALANCE DE EMPRESA ID_BAL_EMP Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO AÑO AÑO_BAL_UN Numérico 4 AÑO_ACTUAL NO NO NO NO DISPONIBLE CAJA DISPONIBLE_CAJA_BAL Numérico 9 0 NO NO NO NO DISPONIBLE BANCOS DISPONIBLE_BANCOS_BAL Numérico 9 0 NO NO NO NO DEPOSITOS A PLAZO DEPOSITO_PLAZOS_BAL Numérico 9 0 NO NO NO NO VALORES NEGOCIABLES VALORES_NEGOCIABLES_BAL Numérico 9 0 NO NO NO NO DEUDORES POR VENTA DEUDORES_VENTA_BAL Numérico 9 0 NO NO NO NO DOCUMENTOS POR COBRAR DOCUMENTOS_COBRAR_BAL Numérico 9 0 NO NO NO NO DEUDORES VARIOS DEUDORES_VARIOS_BAL Numérico 9 0 NO NO NO NO EXISTENCIAS EXISTENCIAS_BAL Numérico 9 0 NO NO NO NO IMPUESTOS POR RECUPERAR IMPUESTOS_RECUPERAR_BAL OTROS ACTIVOS OTROS_ACTIVOS_CIRCULANTES_BAL CIRCULANTES Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO TOTAL ACTIVO CIRCULANTE TOTAL_ACTIVO_CIRC_BAL Numérico 9 0 NO SI TERRENOS TERRENOS_BAL Numérico 9 0 NO NO NO NO CONSTRUCCIONES Y OBRAS DE INFRAESTRUCTURA CONSTRUCCIONES_INFRA_BAL Numérico 9 0 NO NO NO NO MAQUINARIAS Y EQUIPOS MAQUINARIAS_EQUIPOS_BAL Numérico 9 0 NO NO NO NO NO NO MUEBLES MUEBLES_BAL Numérico 9 0 NO NO NO NO VEHICULOS ACCIONES DE OTRAS EMPRESAS VEHICULOS_BAL Numérico 9 0 NO NO NO NO ACCIONES_OTRAS_EMP_BAL Numérico 9 0 NO NO NO NO OTROS ACTIVOS FIJOS OTROS_ACTIVOS_FIJOS_BAL Numérico 9 0 NO NO NO NO SUBTOTAL SUBTOTAL_BAL Numérico 9 0 NO SI DEPRECIACION ACUMULADA DEPRECIACION_ACUM_BAL Numérico 9 0 NO NO NO NO TOTAL ACTIVO FIJO NETO TOTAL_ACTIVO_FIJO_NETO_BAL Numérico 9 0 NO SI INVERSIONES_EMP_REL_BAL Numérico 9 0 NO NO NO NO INVERIONES_OTRAS_SOC_BAL Numérico 9 0 NO NO NO NO INVERSIONES EN EMPRESAS RELACIONADAS INVERSIONES EN OTRAS SOCIEDADES NO NO NO NO DEUDORES A LARGO PLAZO DEUDORES_LP_BAL Numérico 9 0 NO NO NO NO OTROS ACTIVOS OTROS_ACTIVOS_BAL Numérico 9 0 NO NO NO NO TOTAL OTROS ACTIVOS TOTAL_OTROS_ACT_BAL Numérico 9 0 NO SI NO NO TOTAL ACTIVOS CREDITOS A CORTO PLAZO INDAP CREDITOS A CORTO PLAZO BANCOS TOTAL_ACTIV_BAL Numérico 9 0 NO SI NO NO CRED_CP_INDAP_BAL Numérico 9 0 NO NO NO NO CRED_CP_BANCOS_BAL Numérico 9 0 NO NO NO NO 67 CREDITOS A LARGO PLAZO INDAP, PORCION CIRCULANTE CRED_LP_INDAP_PC_BAL CREDITOS A LARGO PLAZO BANCOS, PORCION CRED_LP_BANCOS_PC_BAL CIRCULANTE Numérico 9 0 NO NO NO NO DIVIDENDOS POR PAGAR DIVIDENDOS_PAGAR_BAL Numérico 9 0 NO NO NO NO OBLIGACIONES CON OTRAS INSTITUCIONES OBLIGACIONES_INSTITU_BAL Numérico 9 0 NO NO NO NO CUENTAS POR PAGAR CUENTAS_PAGAR_BAL Numérico 9 0 NO NO NO NO 0 NO NO NO NO ACREEDORES_BAL Numérico 9 0 NO NO NO NO DOCUMENTOS POR PAGAR DOCUMENTOS_PAGAR_BAL Numérico 9 0 NO NO NO NO IMPUESTOS POR PAGAR IMPUESTOS_PAGAR_BAL Numérico 9 0 NO NO NO NO PROVISIONES PROVISIONES_BAL Numérico 9 0 NO NO NO NO RETENCIONES OTROS PASIVOS CIRCULANTES RETENCIONES_BAL Numérico 9 0 NO NO NO NO OTROS_PASIVOS_CIRC_BAL Numérico 9 0 NO NO NO NO TOTAL PASIVO CIRCULANTE TOTAL_PC_BAL Numérico 9 0 NO SI Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO OBLIGACIONES_INSTITU_PLP_BAL OBLIGACIONES CON OTRAS INSTITUCIONES PLP NO NO Numérico 9 0 NO NO NO NO ACREEDORES VARIOS PLP DOCUMENTOS POR PAGAR PLP ACREEDORES_PLP_BAL Numérico 9 0 NO NO NO NO DOCUMENTOS_PAGAR_PLP_BAL Numérico 9 0 NO NO NO NO PROVISIONES PLP PROVISIONES_PLP_BAL Numérico 9 0 NO NO NO NO OTROS PLP OTROS_PLP_BAL Numérico 9 0 NO NO NO NO TOTAL PLP TOTAL_PLP_BAL Numérico 9 0 NO SI CAPITAL PAGADO REVALORACION CAPITAL PROPIO CAPITAL_PAGADO_BAL Numérico 9 0 NO NO NO NO REVALORACION_CP_BAL Numérico 9 0 NO NO NO NO OTRAS RESERVAS OTRAS_RESERVAS_BAL Numérico 9 0 NO NO NO NO UTILIDADES O PERDIDAS ACUMULADAS UTILIDADES_PERD_ACUM_BAL Numérico 9 0 NO NO NO NO Numérico 9 0 NO SI UTILIDADES O PERDIDAS DEL EJERCICIO UTILIDADES_PERD_EJER_BAL RESERVAS FUTUROS RESERV_FUTUROS_DIV_BAL DIVIDENDOS DIVIDENDOS PROVISORIOS DIVIDENDOS_PROV_BAL NO NO NO NO Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO OTROS PASIVOS OTROS_PASIV_BAL Numérico 9 0 NO NO NO NO TOTAL PATRIMONIO TOTAL_PAT_BAL Numérico 9 0 NO SI NO NO TOTAL PASIVO Y PATRIMONIO TOTAL_PASIV_PAT Numérico 9 0 NO SI NO NO CIUDAD ID_CIUDAD Alfanumérico 4 NO NO NO NO NOMBRE NOMBRE_CIUDAD Alfabético NO NO NO NO COMUNA ID_COMUNA Alfanumérico 5 NO NO NO NO ID_CLASE_UN Alfanumérico 4 NO NO NO NO NOMBRE_CLASE_UN Alfabético NO NO NO NO COMUNA ID_COMUNA Alfanumérico 5 NO NO NO NO NOMBRE NOMBRE_COMUNA Alfabético NO NO NO NO PROVINCIA ID_PROVINCIA Alfanumérico 4 CLASE DE UNIDAD CLASE DE UN DE NEGOCIO NOMBRE COMUNAS 9 ACREEDORES VARIOS OBLIGACIONES CON INDAP OBLIGACIONES_INDAP_BAL OBLIGACIONES CON BANCOS E INSTITUCIONES OBLIGACIONES_BANCOS_BAL FINANCIERAS CIUDADES Numérico 68 20 40 20 NO NO NO NO IDENTIFICADOR DE CONSTRUCCION DE INVENTARIO Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 AÑO AÑO_CONSTRUC Numérico 4 TIPO_CONSTRUC Alfabético 30 CAPACIDAD_CONSTRUC Numérico 8 MATERIAL_CONSTRUC Alfabético 30 EDAD EDAD_CONSTRUC Numérico 2 1 NO NO NO NO VIDA UTIL RESTANTE VIDA_UTIL_CONSTRUC Numérico 2 1 NO NO NO NO USO USO_CONSTRUC Alfabético 30 VALOR DE REGISTRO VALOR_REGISTRO_CONSTRUC Numérico 9 IDENTIFICADOR DE COSTOS DE EMPRESA ID_COSTOS Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO AÑO AÑO_COSTOS Numérico 8 AÑO_ACTUAL TRIMESTRE TRIMESTRE_COSTOS Numérico 1 TRIMES_ACTUAL NO NO NO NO TIPO CONSTRUCCION E INFRAESTRUCTURA CAPACIDAD DE INVENTARIO MATERIAL COSTOS DE EMPRESA ID_CONSTRUC NO NO NO NO AÑO_ACTUAL NO NO NO NO 1 NO NO NO NO NO NO NO NO NO NO NO NO SI 0 NO NO NO NO NO NO NO NO NO NO NO INVENTARIO INICIAL DE MATERIA PRIMA INVENT_INIC_MP_COSTOS COMPRAS NETAS DE MATERIA PRIMA COMPRAS_NETAS_MP_COSTOS Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO INVENTARIO FINAL DE MATERIA PRIMA INVENT_FIN_MP_COSTOS Numérico 9 0 NO NO NO NO TOTAL SALIDAS DE MATERIA UTILIZADA TOTAL_SAL_MP_COSTOS Numérico 9 0 NO SI MANO DE OBRA DIRECTA MANO_OBRA_DIREC_COSTOS Numérico 9 0 NO NO NO NO COSTOS INDIRECTOS DE PRODUCCION TOTAL COSTOS DE PRODUCCION COSTOS_INDIREC_COSTOS Numérico 9 0 NO NO NO NO TOTAL_COSTOS_PROD_COSTOS Numérico 9 0 NO SI INVENTARIO INICIAL DE PRODUCTOS TERMINADOS INVENT_INIC_PROD_TERM_COSTOS Numérico 9 0 NO NO NO NO INVENT_FIN_PROD_TERM_COSTOS Numérico 9 0 NO NO NO NO COSTOS_ARTIC_VEND_COSTOS Numérico 9 0 NO SI INVENT_INIC_PROD_COSTOS Numérico 9 0 NO NO NO NO COMPRAS_NETAS_PROD_COSTOS Numérico 9 0 NO NO NO NO INVENT_FIN_PROD_COSTOS Numérico 9 0 NO NO NO NO TOTAL_COSTOS_V_COSTOS Numérico 9 0 NO SI INVENTARIO FINAL DE PRODUCTOS TERMINADOS COSTOS DE ARTICULOS VENDIDOS INVENTARIO INICIAL DE PRODUCTOS COMPRAS NETAS DE PRODUCTOS INVENTARIO FINAL DE PRODUCTOS TOTAL COSTOS DE VENTAS NO NO NO NO NO NO NO NO SUELDOS SUELDOS_COSTOS Numérico 9 0 NO NO NO NO HONORARIOS HONORARIOS_COSTOS Numérico 9 0 NO NO NO NO VIATICOS VIATICOS_COSTOS Numérico 9 0 NO NO NO NO CONSUMOS BASICOS CONSUMOS_BASIC_COSTOS Numérico 9 0 NO NO NO NO COMBUSTIBLE COMBUSTIBLE_COSTOS Numérico 9 0 NO NO NO NO FLETES Y MOVILIZACION FLETES_MOV_COSTOS Numérico 9 0 NO NO NO NO SEGUROS SEGUROS_COSTOS Numérico 9 0 NO NO NO NO COMISIONES COMISIONES_COSTOS Numérico 9 0 NO NO NO NO OTROS OTROS_COSTOS Numérico 9 0 NO NO NO NO 69 TOTAL GASTOS DE ADMINISTRACION Y VENTAS TOTAL_GASTOS_ADMIN_V_COSTOS Numérico 9 0 NO SI NO NO TOTAL DE COSTOS Y GASTOS TOTAL_COSTOS_GASTOS_COSTOS Numérico 9 0 NO SI NO NO IDENTIFICADOR DE COSTOS DE UNIDAD DE NEGOCIO ID_COSTOS_UN Numérico 9 AÑO AÑO_COSTOS_UN Numérico 4 UN ID_UN Numérico 9 NO NO NO NO TRIMESTRE TRIMESTRE_COSTOS_UN Numérico 1 TRIMES_ACTUAL NO NO NO NO Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO INVENTARIO INICIAL DE MATERIA PRIMA INVENT_INIC_MP_COSTOS_UN COMPRAS NETAS DE MATERIA PRIMA COMPRAS_NETAS_MP_COSTOS_UN INVENTARIO FINAL DE MATERIA PRIMA EMPRESAS AÑO_ACTUAL NO NO NO NO TOTAL SALIDAS DE MATERIA UTILIZADA TOTAL_SAL_MP_COSTOS_UN Numérico 9 0 NO SI MANO DE OBRA DIRECTA MANO_OBRA_DIREC_COSTOS_UN Numérico 9 0 NO NO NO NO NO NO COSTOS INDIRECTOS DE PRODUCCION TOTAL COSTOS DE PRODUCCION COSTOS_INDIREC_COSTOS_UN Numérico 9 0 NO NO NO NO TOTAL_COSTOS_PROD_COSTOS_UN Numérico 9 0 NO SI INVENTARIO INICIAL DE PRODUCTOS TERMINADOS INVENT_INIC_PROD_TERM_COSTOS_UN Numérico 9 0 NO NO NO NO INVENT_FIN_PROD_TERM_COSTOS_UN Numérico 9 0 NO NO NO NO COSTOS_ARTIC_VEND_COSTOS_UN Numérico 9 0 NO SI INVENTARIO FINAL DE PRODUCTOS TERMINADOS COSTOS DE UNIDAD COSTOS DE ARTICULOS VENDIDOS DE NEGOCIO INVENTARIO INICIAL DE PRODUCTOS COMPRAS NETAS DE PRODUCTOS INVENTARIO FINAL DE PRODUCTOS DESTINO DE LA PRODUCCION INVENT_FIN_MP_COSTOS_UN NO NO NO NO NO NO NO NO INVENT_INIC_PROD_COSTOS_UN Numérico 9 0 NO NO NO NO COMPRAS_NETAS_PROD_COSTOS_UN Numérico 9 0 NO NO NO NO INVENT_FIN_PROD_COSTOS_UN Numérico 9 0 NO NO NO NO TOTAL COSTOS DE VENTAS TOTAL_COSTOS_V_COSTOS_UN Numérico 9 0 NO SI SUELDOS SUELDOS_COSTOS_UN Numérico 9 0 NO NO NO NO HONORARIOS HONORARIOS_COSTOS_UN Numérico 9 0 NO NO NO NO VIATICOS VIATICOS_COSTOS_UN Numérico 9 0 NO NO NO NO CONSUMOS BASICOS CONSUMOS_BASIC_COSTOS_UN Numérico 9 0 NO NO NO NO COMBUSTIBLE COMBUSTIBLE_COSTOS_UN Numérico 9 0 NO NO NO NO FLETES Y MOVILIZACION FLETES_MOV_COSTOS_UN Numérico 9 0 NO NO NO NO NO NO SEGUROS SEGUROS_COSTOS_UN Numérico 9 0 NO NO NO NO COMISIONES COMISIONES_COSTOS_UN Numérico 9 0 NO NO NO NO OTROS OTROS_COSTOS_UN Numérico 9 0 NO NO NO NO TOTAL GASTOS DE ADMINISTRACION Y VENTAS TOTAL_GASTOS_ADMIN_V_COSTOS_UN Numérico 9 0 NO SI NO NO TOTAL DE COSTOS Y GASTOS TOTAL_COSTOS_GASTOS_COSTOS_UN Numérico 9 0 NO SI NO NO DESTINO DE LA PRODUCCION ID_DESTINO_PROD Alfanumérico 4 NO NO NO NO NOMBRE NOMBRE_DEST_PROD Alfabético 40 NO NO NO NO RUT RUT_EMPRESA Numérico 9 NO NO NO NO DIGITO DIGITO_EMP Alfanumérico 1 NO NO NO NO NOMBRE NOMBRE_EMP Alfabético 40 NO NO NO NO RAZON SOCIAL RAZON_SOC_EMP Alfabético 50 NO NO NO NO 70 FECHA CONSTITUCION FECHA_CONST_EMP Fecha FONO FONO_EMP FAX FAX_EMP 4 AÑO_ACTUAL SI NO NO NO Alfanumérico 20 SI NO NO NO Alfanumérico 20 SI NO NO NO REGION ID_REGION Alfanumérico 2 NO NO NO NO PROVINCIA ID_PROVINCIA Alfanumérico 2 NO NO NO NO COMUNA ID_COMUNA Alfanumérico 5 NO NO NO NO CIUDAD ID_CIUDAD Alfanumérico 4 NO NO NO NO CALLE CALLE_EMP Alfabético 20 SI NUMERO NUMERO_EMP Numérico 9 SI NO NO NO OFICINA OFICINA_EMP Alfanumérico 3 SI NO NO NO SI NO NO NO 3 NO NO NO PISO PISO_EMP Numérico AREA ID_AREA Alfanumérico 2 NO NO NO NO GRUPO ID_GRUPO Alfanumérico 4 NO NO NO NO OPERADOR ID_OPERADOR Alfanumérico 4 NO NO NO NO GIRO COMERCIAL GIRO_COMERCIAL_EMP Alfabético SI NO NO NO NO NO NO 60 FECHA INICIO ACTIVIDADES FECHA_INIC_EMP Fecha 4 AÑO_ACTUAL SI NUMERO DE SOCIOS N_SOCIOS_EMP Numérico 4 1 NO NO NO NO NUMERO DE MUJERES N_MUJERES_EMP Numérico 4 0 NO NO NO NO NUMERO DE JOVENES (MENORES DE 35) N_JOVENES_EMP Numérico 4 0 NO NO NO NO NUMERO DE ETNIA INDIGENA N_ETNIA_EMP Numérico 4 0 NO NO NO NO NUMERO DE PROVEEDORES N_PROVEEDORES_EMP Numérico 4 0 NO NO NO NO VECES EN MOROCIDAD VECES_MOROS_EMP Numérico 2 0 NO NO NO NO VECES DE CONDONACIONES VECES_CONDON_EMP Numérico 2 0 NO NO NO NO VECES DE RENEGOCIACIONES VECES_RENEG_EMP Numérico 2 0 NO NO NO NO TIPO DE CLASIFICACION ID_TIPO_CLASIFICACION Alfanumérico 4 SI PROPIETARIO ID_USUARIO Alfanumérico 8 NO NO NO NO RAZON FINANCIERA CAPITAL DE TRABAJO R_CAPITAL_TRABAJO Numérico 3 0 NO SI NO NO R_RAZON_CORRIENTE Numérico 3 0 NO SI NO NO R_PRUEBA_ACIDA Numérico 3 0 NO SI NO NO R_LEVERAGE Numerico 3 0 NO SI NO NO R_LEVERAGE_MERCADO Numérico 3 0 NO SI NO NO R_SOLVENCIA Numérico 3 0 NO SI NO NO R_RENTABILIDAD_BRUTA RAZON FINANCIERA RAZON CORRIENTE RAZON FINANCIERA PRUEBA ACIDA RAZON FINANCIERA LEVERAGE RAZON FINANCIERA LEVERAGE MERCADO FINANCIERO RAZON FINANCIERA SOLVENCIA RAZON FINANCIERA RENTABILIDAD BRUTA SI NO NO Numérico 3 0 NO SI NO NO RAZON FINANCIERA RENTABILIDAD OPERACIONAL R_RENTABILIDAD_OPERACIONAL Numérico 3 0 NO SI NO NO RAZON FINANCIERA RENTABILIDAD NETA R_RENTABILIDAD_NETA Numérico 3 0 NO SI NO NO R_RAZON_OPERATIVA Numérico 3 0 NO SI NO NO R_RAZON_DEUDA Numérico 3 0 NO SI NO NO RAZON FINANCIERA RAZON OPERATIVA RAZON FINANCIERA RAZON DE DEUDA 71 RAZON FINANCIERA RAZON DE DEPENDENCIA R_RAZON_DEPENDENCIA Numérico 3 0 NO SI NO NO RAZON FINANCIERA ROTACION DE ACTIVOS R_ROTACION_ACTIVOS Numérico 3 0 NO SI NO NO RAZON FINANCIERA RAZON DE LA CALIDAD DE LA DEUDA R_RAZON_CALIDAD Numérico 3 0 NO SI NO NO RAZON FINANCIERA COBERTURA FINANCIERA R_COBERTURA_FINANCIERA Numérico 3 0 NO SI NO NO R_DEPENDENCIA_FINANCIERA Numérico 3 0 NO SI NO NO R_DEPENDENCIA_CP Numérico 3 0 NO SI NO NO R_DEPENDENCIA_LP 0 NO SI NO NO RAZON FINANCIERA DEPENDENCIA FINANCIERA RAZON FINANCIERA DEPENDENCIA FINANCIERA CORTO PLAZO RAZON FINANCIERA DEPENDENCIA FINANCIERA LARGO PLAZO ESTADO DE RESULTADO DE EMPRESA Numérico 3 IDENTIFICADOR DE ESTADOS DE RESULTADOS ID_EST_RES Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO AÑO AÑO_EST_RES Numérico 4 AÑO_ACTUAL TRIMESTRE TRIMESTRE_EST_RES Numérico 1 TRIMES_ACTUAL NO NO NO NO INGRESO DE EXPLOTACION INGRESO_EXPLOTACION_EST_RES Numérico 9 0 NO SI NO NO COSTO DE EXPLOTACION COSTO_EXPLOTACION_EST_RES Numérico 9 0 NO SI NO NO MARGEN DE EXPLOTACION MARGEN_EXPLOTACION_EST_RES Numérico 9 0 NO SI NO NO GASTOS DE ADMINISTRACION Y VENTAS GASTOS_ADMIN_EST_RES Numérico 9 0 NO SI NO NO RESULTADO OPERACIONAL RESULT_OP_EST_RES Numérico 9 0 NO SI NO NO INGRESOS FINANCIEROS INGRESOS_FINAN_EST_RES Numérico 9 0 NO NO NO NO OTROS INGRESOS FUERA DE EXPLOTACION OTROS_INGRESOS_EST_RES Numérico 9 0 NO NO NO NO GASTOS FINANCIEROS GASTOS_FINAN_EST_RES Numérico 9 0 NO NO NO NO OTROS EGRESOS FUERA DE EXPLOTACION OTROS_EGRESOS_EST_RES Numérico 9 0 NO NO NO NO CORRECCION_MON_EST_RES Numérico 9 0 NO NO NO NO RES_NO_OP_EST_RES Numérico 9 0 NO SI NO NO RESULTADO ANTES DE IMPUESTO A LA RENTA IMPUESTO_RENTA_EST_RES Numérico 9 0 NO SI NO NO IMPUESTO A LA RENTA UTILIDAD O PERDIDA DEL EJERCICIO IMPUESTO_EST_RES Numérico 9 0 NO NO NO NO UTILIDAD_PERDIDA_EJER_EST_RES Numérico 9 0 NO SI Numérico 9 CORRECCION MONETARIA RESULTADO NO OPERACIONAL ESTADO DE RESULTADO DE UNIDAD DE NEGOCIO NO NO NO NO IDENTIFICADOR DE ESTADOS DE RESULTADOS UN ID_EST_RES_UN NO NO NO NO NO NO AÑO AÑO_EST_RES_UN Numérico 4 UN ID_UN Numérico 9 AÑO_ACTUAL NO NO NO NO NO NO NO NO TRIMESTRE TRIMESTRE_EST_RES_UN Numérico 1 TRIMES_ACTUAL NO NO NO NO INGRESO DE EXPLOTACION INGRESO_EXPLOTACION_EST_RES_UN Numérico 9 0 NO SI NO NO COSTO DE EXPLOTACION COSTO_EXPLOTACION_EST_RES_UN Numérico 9 0 NO SI NO NO MARGEN DE EXPLOTACION MARGEN_EXPLOTACION_EST_RES_UN Numérico 9 0 NO SI NO NO GASTOS ADMINISTTRATIVOS Y VENTAS GASTOS_ADMIN_EST_RES_UN Numérico 9 0 NO SI NO NO RESULTADO OPERACIONAL RESULT_OP_EST_RES_UN Numérico 9 0 NO SI NO NO INGRESOS FINANCIEROS INGRESOS_FINAN_EST_RES_UN Numérico 9 0 NO NO NO NO 72 OTROS INGRESOS FUERA DE EXPLOTACION OTROS_INGRESOS_EST_RES_UN Numérico 9 0 NO NO NO NO GASTOS FINANCIEROS GASTOS_FINAN_EST_RES_UN Numérico 9 0 NO NO NO NO OTROS EGRESOS FUERA DE EXPLOTACION OTROS_EGRESOS_EST_RES_UN Numérico 9 0 NO NO NO NO CORRECCION MONETARIA CORRECCION_MON_EST_RES_UN Numérico 9 0 NO NO NO NO RESULTADO NO OPERACIONAL RES_NO_OP_EST_RES_UN Numérico 9 0 NO SI NO NO NO NO RESULTADO ANTES DE IMPUESTO A LA RENTA GRUPOS DE TRABAJO IMPUESTO_RENTA_EST_RES_UN Numérico 9 0 NO SI IMPUESTO A LA RENTA UTILIDAD O PERDIDA DEL EJERCICIO IMPUESTO_EST_RES_UN Numérico 9 0 NO NO NO NO UTILIDAD_PERDIDA_EJER_EST_RES_UN Numérico 9 0 NO SI GRUPO ID_GRUPO Alfanumérico 4 NO NO NO NO NOMBRE NOMBRE_GRUPO Alfabético 40 NO NO NO NO Numerico 9 NO NO NO NO IDENTIFICADOR DE INGRESOS DE EMPRESA ID_ING INGRESOS DE EMPRESA INGRESOS DE UNIDAD DE NEGOCIO MAQUINARIAS Y EQUIPOS DE INVENTARIO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 AÑO AÑO_ING Numérico 4 AÑO_ACTUAL NO NO NO NO TRIMESTRE CANTIDAD VENDIDA O ENTREGADA TRIMESTRE_ING Numérico 1 TRIMES_ACTUAL NO NO NO NO CANTIDAD_VEND_ING Numérico 9 1 UNIDAD DE MEDIDA ID_UM Alfanumérico 4 NO NO NO NO NO NO NO NO SI NO NO NO PRECIO UNITARIO PU_ING Numérico 9 1 NO NO NO NO VALOR PRODUCIDO VALOR_PROD_ING Numérico 9 1 NO NO NO NO DESTINO DE LA PRODUCCION ID_DESTINO_PRODUCCION Alfanumérico 4 SI PRODUCTOS Y/O SERVICIOS PROD_SERV_ING IDENTIFICADOR DE INGRESOS DE UN ID_ING_UN Alfabético NO NO NO NO Numérico 9 AÑO AÑO_ING_UN Numérico 4 UN ID_UN Numérico 9 NO NO NO NO TRIMESTRE CANTIDAD VENDIDA O ENTREGADA TRIMESTRE_ING_UN Numérico 1 TRIMES_ACTUAL NO NO NO NO CANTIDAD_VEND_ING_UN Numérico 9 1 NO NO NO NO 30 NO NO NO NO NO NO NO AÑO_ACTUAL NO NO NO NO UNIDAD DE MEDIDA ID_UM Alfanumérico 2 PRECIO UNITARIO PU_ING_UN Numérico 9 1 NO NO NO NO SI NO NO NO VALOR PRODUCIDO VALOR_PROD_ING_UN Numérico 9 1 NO NO NO NO DESTINO DE LA PRODUCCION ID_DESTINO_PRODUCCION Alfanumérico 15 SI PRODUCTOS Y/O SERVICIOS IDENTIFICADOR DE MAQUINARIAS PROD_SERV_ING_UN Alfabético 30 NO NO NO NO ID_MAQ Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 AÑO AÑO_MAQ Numérico 4 TIPO TIPO_MAQ Alfabético 20 NUMERO MAQUINARIA N_MAQ_MAQ Alfanumérico 9 NO NO NO NO MARCA MARCA_MAQ Alfabético 20 SI EDAD EDAD_MAQ Numérico 2 1 NO NO NO NO VIDA UTIL RESTANTE VIDA_UTIL_MAQ Numérico 2 1 NO NO NO NO ESTADO ESTADO_MAQ Alfabético 20 73 NO NO NO NO NO NO NO AÑO_ACTUAL NO NO NO NO SI SI NO NO NO NO NO NO NO NO NO OPERADORES VALOR DEL REGISTRO VALOR_REGISTRO_MAQ Numérico OPERADOR ID_OPERADOR Alfanumérico 4 NO NO NO NO NOMBRE NOMBRE_OPERADOR Alfabético 40 NO NO NO NO IDENTIFICADOR DE OTROS ACTIVOS DE INVENTARIO ID_OTROS_ACT_INV Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO PROVINCIAS RECURSOS HUMANOS DE EMPRESA 0 AÑO_ACTUAL NO NO NO NO AÑO AÑO_OTROS_ACT Numérico 4 TIPO TIPO_OTRO_ACT Alfabético 20 SI N_OTRO_ACT Numérico 4 NO NO NO NO OTROS ACTIVOS DE NUMERO OTRO ACTIVO INVENTARIO PROBLEMAS DE EMPRESA 9 MARCA MARCA_OTRO_ACT Alfabético 20 EDAD EDAD_OTRO_ACT Numérico 2 1 1 NO NO NO NO SI NO NO NO NO NO NO NO NO NO NO VIDA UTIL RESTANTE VIDA_UTIL_OTRO_ACT Numérico 2 ESTADO ESTADO_OTRO_ACT Alfabético 20 SI NO NO NO NO VALOR DE REGISTRO VALOR_REG_OTRO_ACT Numérico 9 NO NO NO NO IDENTIFICADOR DE PROBLEMAS DE EMPRESA ID_PROB Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 AÑO AÑO_PROB Numérico 4 TIPO PROBLEMA ID_TIPO_PROBLEMA Alfanumérico 4 NO NO NO NO DESCRIPCION DESCRIP_PROB Alfabético 30 NO NO NO NO SOLUCION SOL_PROB Alfabético 80 SI NO NO NO NO NO NO NO AÑO_ACTUAL NO NO NO NO NO NO NO ESTADO ID_ESTADO_PROB Alfabético 4 NO NO NO NO PROVINCIA ID_PROVINCIA Alfanumérico 4 NO NO NO NO REGION ID_REGION Alfanumérico 2 NO NO NO NO NOMBRE NOMBRE_PROVINCIA Alfabético 20 NO NO NO NO IDENTIFICAOR DE RECURDOS HUMANOS ID_RRHH Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO AÑO AÑO_RRHH Numérico 4 AÑO_ACTUAL NO NO NO NO NUMERO DE PRESIDENTES N_PRE_RRHH Numérico 2 0 NO NO NO NO NUMERO DE GERENTES NUMERO DE ADMINISTRADORES N_GER_RRHH Numérico 2 0 NO NO NO NO N_ADM_RRHH Numérico 2 0 NO NO NO NO NUMERO DE SECRETARIAS N_SEC_RRHH Numérico 3 0 NO NO NO NO NUMERO DE CONTADORES N_CON_RRHH Numérico 2 0 NO NO NO NO NUMERO DE PROFESIONALES N_PRO_RRHH Numérico 3 0 NO NO NO NO NUMERO DE TECNICOS N_TEC_RRHH Numérico 3 0 NO NO NO NO NUMERO DE OBREROS NUMERO DE OTROS FUNCIONARIOS N_OBR_RRHH Numérico 4 0 NO NO NO NO N_OTR_RRHH Numérico 4 0 NO NO NO NO CANTIDAD POR PRESIDENTES C_PRE_RRHH Numérico 9 0 NO NO NO NO CANTIDAD POR GERENTES CANTIDAD POR ADMINISTRADORES C_GER_RRHH Numérico 9 0 NO NO NO NO C_ADM_RRHH Numérico 9 0 NO NO NO NO CANTIDAD POR SECRETARIAS C_SEC_RRHH Numérico 9 0 NO NO NO NO 74 REGIONES CANTIDAD POR CONTADORES C_CON_RRHH CANTIDAD POR PROFESIONALES C_PRO_RRHH Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO CANTIDAD POR TECNICOS C_TEC_RRHH Numérico 9 0 NO NO NO NO CANTIDAD POR OBREROS C_OBR_RRHH Numérico 9 0 NO NO NO NO CANTIDAD POR OTROS FUNCIONARIOS C_OTR_RRHH Numérico 9 0 REGION ID_REGION Alfanumérico 4 NO NO NO NO NOMBRE NOMBRE_REGION Alfabético 20 NO NO NO NO RUT REPRESENTANTE DE DIGITO EMPRESA RUT_REP Numérico 8 NO NO NO NO DIG_REP Alfanumerico 1 NO NO NO NO NOMBRE_REP Alfabético 40 NO NO NO NO IDENTIFICADOR DE SITUACION ID_SIT Numerico 9 NO NO NO NO RUT EMPRESA Numérico 8 NO NO NO NO NOMBRE SITUACION DE EMPRESA RUT_EMPRESA AÑO AÑO_SIT Numérico 4 AÑO_ACTUAL TRIMESTRE TRIMESTRE_SIT Numérico 1 TRIMES_ACTUAL NO NO NO NO ESTADO DE RESULTADOS ESTADO DE RESULTADOS POR UN EST_RES_SIT Numérico 1 0 NO SI NO NO EST_RES_UN_SIT Numérico 1 0 NO SI NO NO BALANCE BALANCE_SIT Numérico 1 0 NO SI NO NO BALANCE POR UN PLANILLAS DE PAGO AFP O ISAPRES BALANCE_UN_SIT Numérico 1 0 NO SI NO NO PLANILLAS_SIT Numérico 1 0 NO NO NO NO CONTRATOS_SIT Numérico 1 0 NO NO NO NO COMPROBANTES_SIT Numérico 1 0 NO NO NO NO DECLARACION_SIT Numérico 1 0 NO NO NO NO CONTRATOS DE PERSONAL ACTUALIZADOS COMPROBANTES DE PAGOS DE SUELDOS Y SALARIOS AL DIA DECLARACION DE RENTA IVA_SIT Numérico 1 0 NO NO NO NO LIBRO DE ACTA REGISTRO ACTUALIZADO DE SOCIOS LIBRO_SIT Numérico 1 0 NO NO NO NO REGISTRO_SOCIOS_SIT Numérico 1 0 NO NO NO NO ESTATUTOS ESTATUTOS_SIT Numérico 1 0 NO NO NO NO ORGANIGRAMA ORGANIGRAMA_SIT Numérico 1 0 NO NO NO NO Numérico 1 0 NO NO NO NO 0 INVENTARIO AL DIA TIPOS DE CLASIFICACION TIPOS DE ESTADO NO NO NO NO IVA ACTUALIZADO SISTEMA DE INFORMACION DE COSTOS SISTEMA_INF_COSTOS_SIT TERRENOS DE INVENTARIO NO NO NO NO Numérico 1 IDENTIFICADOR DE TERRENO ID_TER INVENTARIO_SIT Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO AÑO AÑO_TER Numérico 4 TIPO TIPO_TER Alfanumérico 40 SUPERFICIE SUPERFICIE_TER Numérico 9 USOS USOS_TER Alfabético 40 VALORES DE REGISTRO VALORES_TER Numérico 9 AÑO_ACTUAL NO SI NO NO NO NO NO NO NO NO NO NO 1 NO NO NO NO SI 0 NO NO NO NO NO NO NO TIPO DE CLASIFICACION ID_TIPO_CLASIFICACION Alfanumérico 4 NO NO NO NO DESCRIPCION DESCRIP_TIPO_CLAS Alfabético 20 NO NO NO NO TIPO DE ESTADO ID_TIPO_ESTADO Alfabético 4 NO NO NO NO 75 TIPOS DE PROBLEMAS DESCRIPCION DESCRIP_TIPO_EST Alfabético TIPO DE PROBLEMA ID_TIPO_PROBLEMA Alfanumérico 4 NO NO NO NO NOMBRE NOMBRE_TIPO_PROBLEMA Alfabético NO NO NO NO ID_TIPO_UN Alfanumérico 4 NO NO NO NO NO NO NO NO TIPOS DE UNIDADES TIPO DE UN DE NEGOCIO DESCRIPCION TIPOS DE USUARIOS UNIDAD DE MEDIDA UNIDAD DE NEGOCIO USUARIOS VENCIMIENTO DE LOS PASIVOS DE CORTO PLAZO 20 NO NO NO NO 20 DESCRIP_TIPO_UN Alfabético TIPO USUARIO ID_TIPO_USUARIO Alfanumérico 4 20 NO NO NO NO NOMBRE NOMBRE_TIPO_USUARIO Alfabético NO NO NO NO UM ID_UM Alfanumérico 4 NO NO NO NO NOMBRE NOMBRE_UM Alfabético 20 NO NO NO NO UN ID_UN Numérico 9 NO NO NO NO NOMBRE NOMBRE_UN Alfabético 20 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO TIPO UN ID_TIPO_UN Alfanumérico 2 NO NO NO NO PRIMER NOMBRE P_NOM_USU Alfabético 10 NO NO NO NO SEGUNDO NOMBRE S_NOM_USU Alfabético 10 NO NO NO NO APELLIDO PATERNO AP_PAT_USU Alfabético 10 NO NO NO NO APELLIDO MATERNO AP_MAT_USU Alfabético 10 NO NO NO NO USERNAME USERNAME Alfanumérico 10 NO NO NO NO 20 PASSWORD PASSWORD Alfanumerico 8 NO NO NO NO OTROS OTROS_USU Alfanumérico 20 SI NO NO NO TIPO USUARIO ID_TIPO_USUARIO Alfanumérico 4 NO NO NO NO IDENTIFICADOR DE VENCIMIENTO DE PCP ID_VENC_PCP Numérico 9 NO NO NO NO RUT EMPRESA RUT_EMPRESA Numérico 8 NO NO NO NO AÑO AÑO_VENC_PCP Numérico 4 AÑO_ACTUAL NO NO NO NO MES CREDITO CORTO PLAZO CON INDAP CREDITO CORTO PLAZO CON BANCOS CREDITO LARGO PLAZO PORCION CIRCULANTE CON INDAP CREDITO LARGO PLAZO PORCION CIRCULANTE CON BANCOS MES_PCP Numérico 1 MES_ACTUAL NO NO NO NO CRED_CP_INDAP_PCP Numérico 9 0 NO NO NO NO CRED_CP_BANCOS_PCP Numérico 9 0 NO NO NO NO CRED_LP_PC_INDAP_PCP Numérico 9 0 NO NO NO NO CRED_LP_PC_BANCOS_PCP Numérico 9 0 NO NO NO NO DIVIDENDOS POR PAGAR DIVIDENDOS_PAGAR_PCP Numérico 9 0 NO NO NO NO OBLIGACIONES CON OTRAS INSTITUCIONES OBLIGACIONES_PCP Numérico 9 0 NO NO NO NO CUENTAS POR PAGAR CUENTAS_PAGAR_PCP Numérico 9 0 NO NO NO NO ACREEDORES VARIOS ACREEDORES_PCP Numérico 9 0 NO NO NO NO DOCUMENTOS POR PAGAR DOCUMENTOS_PAGAR_PCP Numérico 9 0 NO NO NO NO PROVISIONES PROVISIONES_PCP Numérico 9 0 NO NO NO NO RETENCIONES OTROS PASIVOS CIRCULANTES RETENSIONES_PCP Numérico 9 0 NO NO NO NO OTROS_PC_PCP Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO TOTAL PASIVOS CIRCULANTES TOTAL_PASIV_CIRC_PCP 76 VENCIMIENTO DE LOS PASIVOS DE LARGO PLAZO IDENTIFICADOR DE VENCIMIENTO DE PLP ID_VENC_PLP RUT EMPRESA RUT_EMPRESA Numérico 8 AÑO AÑO_PLP Numérico 4 AÑO DESCRITO AÑO_DESCRITO_PLP Numérico 9 NO NO NO NO NO NO NO NO AÑO_ACTUAL NO NO NO NO Numérico 4 AÑO_ACTUAL NO NO NO NO OBLIGACIONES CON INDAP OBLIGACIONES_PLP OBLIGACIONES CON BANCOS E INSTITUCIONES FINANCIERAS OBLIGACIONES_BANCOS_PLP Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO OBLIGACIONES CON OTRAS INSTITUCIONES OBLIGACIONES_INSTITU_PLP Numérico 9 0 NO NO NO NO ACREEDORES VARIOS ACREEDORES_VARIOS_PLP Numérico 9 0 NO NO NO NO DOCUMENTOS POR PAGAR DOCUMENTOS_PAGAR_PLP Numérico 9 0 NO NO NO NO PROVISIONES OTROS PASIVOS A LARGO PLAZO PROVISIONES_PLP Numérico 9 0 NO NO NO NO OTROS_PASIV_PLP Numérico 9 0 NO NO NO NO Numérico 9 0 NO NO NO NO TOTAL PASIVOS LARGO PLAZO TOTAL_PLP_PLP Leyenda ABREVIACION T N D M C DESCRIPCION TAMAÑO VALOR NULO DERIVADO MULTIVALORICO COMPUESTO Tabla 4: Tabla de detalle de atributos con su leyenda. 77 6.2.2.1.1.1.4 Determinación de dominios de los atributos El dominio consiste en un rango o conjunto de valores que puede tomar cierto atributo. En esta etapa se definen las características de los atributos. Los resultados de esta etapa se pueden visualizar en las siguientes tablas: NOMBRE FORMATO DESCRIPCION RANGO EJEMPLOS D_RUT 9(8) D_DIGITO 9 o "K" D_NOMBRE AP_PAT AP_MAT P_NOM S_NOM AP_PAT X(10) donde X es Afabético Barrientos, Carcamo, Soto AP_MAT X(10) donde X es Alfabético Andrade, Olavarría, González P_NOM X(10) donde X es Alfabético Sergio, Pablo, Luisa S_NOM X(10) donde X es Alfabético Valeria, Pedro, José D_AÑO 9(4) D_MES 9(2) donde X es Numérico desde 0 hasta 12 2,3,6 D_ALFA X(?) donde X es Alfabético desde a hasta z y A hasta Z Panguipulli, Lanco, Francia D_BETA D_ALFA [|+" "+ D_ALFA|(?)] D_TRIMESTRE 9 donde X es Numérico desde 1 a 3 D_CELULAR 9(8) donde X es Numérico 4708936 D_COD_FONO 9(3) donde X es Numérico 65,9,2 D_FONO D_FONOS 13121855, 11111111 desde 0 a 9 y carácter K 2,5,K Barria Asencio Pablo Andrés 1998,2005,2000 9(6) donde X es Numérico |[D_COD_FONO + "-" +] D_CELULAR o D_FONO [+" " + / + " "]|(?) 2,3,1 259053, 321145, 112233 65-259053, 2-2344567 / 201156 D_NUMERO 9(?) 20, 345, 67889 D_DINERO [-]D_NUMERO -23456, 4567, -56 D_CADENA X(?) 05, A45, Activo 123D D_BOOLEAN 0o1 D_PORC 9,99 0 = NO ; 1 = SI desde 0,00 a 1,00 0,12 ; 0,34; 0,01 78 Leyenda ITEM X 9 Z , . / () [] + || ? O D_ DESCRIPCION Cualquier carácter Solo números Muestra los ceros a la izquierda como espacios Inserta comas Inserta puntos Muestra diagonal Muestra un guión Repeticiones Opcional Concatena Agrupa Valor variable O Lógico DOMINIO Tabla 5: Tabla de detalle de los dominios determinados y su leyenda. 79 6.2.2.1.1.1.5 Identificación de claves candidatas y claves primarias Las claves candidatas o alternas son atributos únicos, que no se repiten entre tuplas. Del conjunto de claves candidatas se selecciona la clave primaria, la cual permite acceder en forma unívoca a la fila de una tabla. Los resultados de esta etapa pueden visualizarse en la siguiente tabla. CLAVES PRIMARIAS Y CANDIDATAS ENTIDAD CLAVE PRIMARIA ADMINISTRADOR DE RUT_ADMIN EMPRESA ID_AREA AREAS BALANCE DE UNIDAD ID_BALANCE_UN DE NEGOCIO BALANCES DE ID_BALANCE EMPRESA ID_CIUDAD CIUDADES CLASE DE UNIDAD DE ID_CLASE_UN NEGOCIO ID_COMUNA COMUNAS CONSTRUCCION E INFRAESTRUCTURA DE ID_CONSTRUC INVENTARIO COSTOS DE EMPRESA ID_COSTOS COSTOS DE UNIDAD DE NEGOCIO DESTINO DE LA PRODUCCION EMPRESAS ESTADO DE RESULTADO DE EMPRESA ESTADO DE RESULTADO DE UNIDAD DE NEGOCIO ID_COSTOS_UN CLAVES CANDIDATAS RUT_ADMIN, NOMBRE_ADMIN ID_AREA+ID_REGION, ID_AREA ID_BALANCE, RUT_EMPRESA+AÑO+UN ID_BALANCE, RUT_EMPRESA+AÑO ID_CIUDAD, NOMBRE_CIUDAD, ID_CLASE_UN, NOMBRE_CLASE_UN ID_COMUNA, NOMBRE_COMUNA ID_CONTRUC, RUT_EMPRESA+AÑO_CONSTRUC RUT_EMPRESA+AÑO_COSTOS+TRIMESTRE_COSTOS, ID_COSTOS RUT_EMPRESA+AÑO_COSTOS+TRIMESTRE_COSTOS+ID_UN, ID_COSTOS ID_DESTINO_PROD ID_DESTINO_PROD, NOMBRE_DESTINO_PROD RUT_EMP RUT_EMP, NOMBRE_EMP ID_EST_RES RUT_EMPRESA+AÑO_EST_RES+TRIMESTRE_EST_RES, ID_EST_RES ID_EST_RES_UN RUT_EMPRESA+AÑO_EST_RES+TRIMESTRE_EST_RES+ID_UN, ID_EST_RES GRUPOS DE TRABAJO ID_GRUPO INGRESOS DE ID_ING EMPRESA INGRESOS DE UNIDAD ID_ING_UN DE NEGOCIO ID_GRUPO, NOMBRE_GRUPO, NOMBRE_GRUPO+ID_OPERADOR, ID_GRUPO+ID_OPERADOR RUT_EMPRESA+AÑO_ING+TRIMESTRE_ING, ID_ING ID_ING_UN, RUT_EMPRESA_UN+AÑO_ING_UN+TRIMESTRE_ING_UN 80 MAQUINARIAS Y EQUIPOS DE INVENTARIO OPERADORES OTROS ACTIVOS DE INVENTARIO PROBLEMAS DE EMPRESA PROVINCIAS RECURSOS HUMANOS DE EMPRESA REGIONES REPRESENTANTE DE EMPRESA SITUACION DE EMPRESA TERRENOS DE INVENTARIO TIPOS DE CLASIFICACION TIPOS DE ESTADO TIPOS DE PROBLEMAS TIPOS DE UNIDADES DE NEGOCIO TIPOS DE USUARIOS UNIDAD DE MEDIDA ID_MAQ ID_MAQ, RUT_EMPRESA+AÑO_MAQ ID_OPERADOR ID_OPERADOR, NOMBRE_OPERADOR ID_OTROS_ACT ID_OTROS_ACT, RUT_EMPRESA+AÑO_OTROS_ACT ID_PROB ID_PROB, RUT_EMPRESA+AÑO_PROB, DESCRIP_PROB ID_PROVINCIA ID_PROVINCIA, NOMBRE_PROVINCIA, ID_PROVINCIA+ID_REGION ID_RRHH ID_RRHH, RUT_EMPRESA+AÑO_RRHH ID_REGION ID_REGION, NOMBRE_REGION RUT_REP RUT_REP, NOMBRE_REP ID_SIT ID_SIT, RUT_EMPRESA+AÑO_SIT+TRIMESTRE_SIT ID_TER ID_TER, RUT_EMPRESA+AÑO_TER ID_TIPO_CLASIFICACION ID_TIPO_CLASIFICACION, DESCRIP_TIPO_CLAS ID_TIPO_ESTADO ID_TIPO_PROBLEMA ID_TIPO_ESTADO, DESCRIP_TIPO_EST ID_TIPO_PROBLEMA, NOMBRE_TIPO_PROBLEMA ID_TIPO_UN ID_TIPO_UN, DESCRIP_TIPO_UN, ID_TIPO_UN+ID_CLASE_UN ID_TIPO_USUARIO ID_UM ID_TIPO_USUARIO, NOMBRE_TIPO_USUARIO ID_UM, NOMBRE_UM ID_UN, NOMBRE_UN, ID_UN+RUT_EMPRESA, NOMBRE_UN+RUT_EMPRESA USERNAME, P_NOM_USU+S_NOM_USU+AP_PAT_USU+AP_MAT_USU, USERNAME+PASSWORD UNIDAD DE NEGOCIO ID_UN USUARIOS USERNAME VENCIMIENTO DE LOS PASIVOS DE CORTO ID_VENC_PCP PLAZO VENCIMIENTO DE LOS PASIVOS DE LARGO ID_VEC_PLP PLAZO ID_VENC_PCP, RUT_EMPRESA+AÑO_VENC_PCP+MES_PCP ID_VENC_PLP, RUT_EMPRESA+AÑO_VENC_PLP+AÑO_DESCRITO_PLP Tabla 6: Tabla de detalle de las claves primarias y candidatas. 81 6.2.2.1.1.1.6 Especializar y/o Generalizar tipos de entidades (Opcional) En esta etapa no se encontraron entidades que deban ser Especializadas y/o Generalizadas por lo cual no es necesario documentar en esta sección. 82 6.2.2.1.1.1.7 Modelo conceptual Entidad Relación Costos de UN Tiene Estados de Resultados UN Usuarios (Propietario) Tiene Tipos de Usuarios Tiene Tiene Ingresos de EAC Balances UN Tipos de Problemas Tiene Tiene Tiene Unidades de Medida Tipos de Clasificación Tiene Tiene Tiene Problemas deEAC Tiene Tiene Destino Producción Tiene Ingresos de Un Unidades de Negocio Tiene Tiene Balances EAC Tiene Estados de Resultados EAC Tiene Grupos Tiene Terrenos de Inventario Tiene Operadores Tiene Recursos Humanos de EAC Tiene Otros Activos de Inventario Tiene Maquinarias Y Equipos de Invent. Tiene Construcciones e Infraestructuras Invent. Tiene Costos de EAC Tiene Vencimiento Pasivos Largo Plazo Tiene Vencimiento Pasivos Corto Plazo Tiene Representantes Tiene Situaciones Tiene Tiene Tiene Tipos de UN Tiene Clases de UN Empresas Regiones Tiene Tiene Provincias Areas Tiene Tiene Tiene Comunas Tiene Tiene Ciudades Tiene Administradores Figura 11: Modelo E-R preliminar. 83 Tipos de Estados Nota: Dada la complejidad visual del diagrama anterior (ver figura 14), no se graficaron las relaciones redundantes nombradas en la tabla 9 y descartadas en la sección 6.2.2.1.2.2, ítem (g). Esto último, porque el incluir las relaciones redundantes en el modelo ER dificultarían el entendimiento del mismo. 84 6.2.2.1.2 Diseño de base de datos lógico Tomando el esquema de la base de datos de la fase de Diseño Conceptual, esta fase produce un diseño que se acerca más a la implementación en un Sistema Manejador de Base de Datos. En esencia esta fase transforma el modelo Entidad - Relación en tablas que podrán ser implementadas en un sistema manejador de base de datos particular. El modelo de datos que usaremos para esta etapa es el modelo ELKA(EntityLink Key Attribute). Una vez que el modelo Entidad - Relación es transformado a tablas y produce el modelo ELKA, se eliminan ciertas anomalías, debidas principalmente a la redundancia, el proceso a través del cuál se da esto se conoce como NORMALIZACIÓN. Es importante comentar que el proceso de NORMALIZACIÓN es un Medio y no un Fin. 85 6.2.2.1.2.1 Construcción y validación del modelo de datos lógico local para cada vista de usuario El objetivo de esta etapa es construir un modelo de datos lógico para cada vista de usuario y después realizar la validación de este modelo utilizando normalización. 6.2.2.1.2.2 Transformación del modelo de datos local conceptual al modelo lógico local En esta etapa se persigue el refinamiento del modelo de datos conceptual local, removiendo las características no deseables y luego transformando este modelo al modelo de datos lógico local. Para esto se deben realizar los siguientes pasos: a) Eliminar relaciones de mucho a mucho b) Eliminar relaciones mucho a mucho complejas de tres o más entidades c) Eliminar relaciones recursivas d) Eliminar relaciones con atributos e) Eliminar atributos multivalóricos f) Reexaminar relaciones de uno a uno g) Eliminar relaciones redundantes 86 Una vez realizado este proceso se encontraron y solucionaron las anomalías representadas en las siguientes figuras: a) Eliminar relaciones de mucho a mucho Relación Mucho a Mucho por corregir: Empresas Tiene Representantes Relación corregida: Empresas Tiene REL_EMP_REP Tiene Representantes Relación Mucho a Mucho por corregir: Areas Tiene Comunas Relación corregida: Areas Tiene REL_AREA_COM Figura 12: Transformación de Relaciones. 87 Tiene Comunas b) Eliminar relaciones mucho a mucho complejas de tres o más entidades c) Eliminar relaciones recursivas d) Eliminar relaciones con atributos e) Eliminar atributos multivalóricos f) Reexaminar relaciones de uno a uno Se realizaron estas revisiones, pero no se encontraron entidades con estas situaciones. g) Eliminar relaciones redundantes La relaciones redundantes son relaciones cuyo contenido puede ser extraído desde otras relaciones. Esto último las hace parecer inútiles a simple vista por el volumen de datos que ocupan. Pero la redundancia de algunas de estas relaciones aportan un mejor rendimiento a la Base de Datos en lo que a consultas se refiere, por lo cual, no todas las relaciones redundantes son eliminadas. 88 Las relaciones redundantes son: ID TIPO ENTIDAD RELACION 1 AREA Tiene Pertenece a 2 CIUDAD 3 CLASE DE UN 4 COMUNA 5 EMPRESAS 6 PROVINCIAS 7 REGION 8 UN PARTICIPACION TIPO ENTIDAD CARD. CIUDADES PROVINCIA 1:M 1:1 MIN 0 1 MAX N 1 MIN 1 0 MAX 1 N TIPO O:M M:O Pertenece a AREA 1:1 1 1 0 N M:O Pertenece a PROVINCIA 1:1 1 1 0 N M:O Pertenece a REGION 1:1 1 1 0 N M:O Tiene UNIDADES DE NEGOCIO 1:M 0 N 1 1 O:M Tiene EMPRESAS 1:M 0 N 1 1 O:M Pertenece a REGION 1:1 1 1 0 N M:O Pertenece a COMUNA 1:1 1 1 0 N M:O Pertenece a PROVINCIA 1:1 1 1 0 N M:O Pertenece a REGION 1:1 1 1 0 N M:O Tiene CIUDADES 1:M 0 N 1 1 O:M Tiene EMPRESAS 1:M 0 N 1 1 O:M Tiene CIUDADES 1:M 0 N 1 1 O:M Tiene Tiene COMUNAS EMPRESAS 1:M 1:M 0 0 N N 1 1 1 1 O:M O:M Pertenece a CLASE DE UNIDAD DE NEGOCIO 1:1 1 1 0 N M:O Tabla 7: Tabla que refleja las relaciones redundantes. 89 Descripción de resultados: Se obvian las relaciones, porque existen conexiones mediante las relaciones: Relación 1, Area con: a) CIUDAD: area-comuna, comuna-ciudad. b) PROVINCIA: area-comuna, comuna-provincia. Relación 2, Ciudad: a) AREA: ídem a (Relación 1, a). b) PROVINCIA: ciudad-comuna, comuna-provincia. c) REGION: ciudad-comuna, comuna-provincia, provincia-región. Relación 3, Clase de UN: a) UN: clase_un-tipo_un, tipo_un-un. Relación 4, Comuna: a) EMPRESAS: comuna-ciudad, ciudad-empresa. b) REGION: comuna-provincia, provincia-región. 90 Relación 5, Empresas: a) COMUNA: ídem a (Relación 4,a). b) PROVINCIA: empresa-ciudad, ciudad_comuna, comuna-provincia. c) REGION: (2 rutas) i. Empresa-area, area-región. (más corta) ii. Empresa-ciudad, ciudad-comuna, provincia-región. Relación 6, Provincia con: c) CIUDAD: ídem a (Relación 2,b).. d) EMPRESA: ídem a (Relación 5,b). Relación 7, Región: d) CIUDAD: ídem a (Relación 2,c). e) COMUNAS: ídem a (Relación 4,b). f) EMPRESAS: ídem a (Relación 5,c). Relación 8, UN: g) CLASE_UN: un-tipo_un, tipo_un-clase_un. 91 comuna-provincia, Nota: Las relaciones transitivas que sirven para llegar desde una entidad a otra son del tipo mandatorio, por lo cual la ruta que se sigue es única para cada instancia desde la entidad inicial a la final. Ejemplo desde Ciudad a Región (Relación 2, letra c): Toda Ciudad pertenece a una Comuna y es única. Toda Comuna pertenece a una Provincia y es única. Toda Provincia pertenece a una Región y es única. Por esto último una ciudad pertenece a una Región y es única. (Proveniente de los padres sucesivos) 92 6.2.2.1.2.1.2 Derivación de relaciones del modelo de datos lógico local El objetivo de esta etapa es derivar relaciones del modelo de datos lógico local, para esto se describen las relaciones utilizando lenguaje de definición de base de datos (DBDL) o DataBase Definition Language. La relación entre entidades se refleja por el mecanismo de clave primaria / clave foránea. Se deben identificar las entidades padre e hijo. La entidad padre almacena su clave primaria como clave foránea en la entidad hijo. Formato de documentación de la etapa: Nombre_relacionA(atributo_1,atributo_2,...,atributo_N) Primary Key (atributo_X) Alternate Key (atributo_Y) Foreign Key atributo_Z references Nombre_relacionB (atributo_Z) Nota: Por la gran cantidad de atributos de algunas de las relaciones se utilizará el símbolo * (asterisco) para representarlos. Por ejemplo: Se describe la relación Balances_de_EMP (id_balance, rut_empresa, año_bal, disponible_caja_bal, disponible_bancos_bal, *), por lo cual se asume que la relación tiene más atributos y están implícitamente incluidos. 93 Administrador_de_empresa (rut_admin, dig_admin, nombre_admin) Primary Key (rut_admin) Areas (id_area, id_region, nombre_area) Primary Key (id_area) Foreign Key id_region references Regiones (id_region) Balances_de_UN (id_balance_un, año_bal_un, id_un, disponible_caja_bal_un, disponible_bancos_bal_un, *) Primary Key (id_balance_un) Foreign Key id_un references UN (id_un) Balances_de_EMP (id_balance, rut_empresa, año_bal, disponible_caja_bal, disponible_bancos_bal, *) Primary Key (id_balance) Foreign Key rut_empresa references Empresas (rut_empresa) Ciudades (id_ciudad, nombre_ciudad, id_comuna) Primary Key (id_ciudad) Foreign Key id_comuna references Comunas (id_comuna) 94 Clases_de_UN (id_clase_un, nombre_clase_un) Primary Key (id_clase_un) Comunas (id_comuna, nombre_comuna, id_provincia) Primary Key (id_comuna) Foreign Key id_provincia references Provincias (id_provincia) Construc_inv (id_construc, rut_empresa, año_construc, tipo_construc, *) Primary Key (id_construc) Foreign Key rut_empresa references Empresas (rut_empresa) Costos_de_EMP (id_costos, rut_empresa, año_costos, trimestre_costos, invent_inic_mp_costos, *) Primary Key (id_costos) Foreign Key rut_empresa references Empresas (rut_empresa) Costos_de_UN (id_costos_un, id_un, año_costos_un, trimestre_costos_un, invent_inic_mp_costos_un, …) Primary Key (id_costos_un) Foreign Key id_un references UN (id_un) 95 Destino_de_Prod (id_destino_prod, nombre_destino_prod) Primary Key (id_destino_prod) Empresas (rut_empresa, fecha_const_emp, numero_emp, fono_emp, nombre_emp, fax_emp, oficina_emp, giro_comerc_emp, n_jovenes_emp, digito_emp, piso_emp, fecha_inic_emp, n_etnia_emp, id_ciudad, razon_soc_emp, id_area, id_grupo, n_socios_emp, veces_moro_emp, calle_emp, id_operador, n_mujeres_emp, veces_condo_emp, veces_reneg_emp, id_tipo_cla, id_usuario, id_administrador, *) Primary Key (rut_empresa) Foreign Key id_ciudad references Ciudades (id_ciudad) Foreign Key id_area references Areas (id_area) Foreign Key id_grupo references Grupos (id_grupo) Foreign Key id_operador references Operadores (id_operador) Foreign Key id_tipo_cla references Tipos_clasificaciones (id_tipo_cla) Foreign Key id_usuario references Usuarios (username) Foreign Key id_administrador references Administradores (rut_admin) 96 Estado_res_EMP (id_est_res, rut_empresa, año_est_res, trimestre_est_res, ingreso_explotacion_est_res, costo_explotacion_est_res, *) Primary Key (id_est_res) Foreign Key rut_empresa references Empresas (rut_empresa) Estado_res_UN (id_est_res_un, id_un, año_est_res_un, trimestre_est_res_un, ingreso_explotacion_est_res_un, costo_explotacion_est_res_un, *) Primary Key (id_est_res_un) Foreign Key id_un references UN (id_un) Grupos (id_grupo, nombre_grupo) Primary Key (id_grupo) Ingresos_EMP (id_ing, rut_empresa, año_ing, trimestre_ing, cantidad_vend_ing, id_um, id_destino_prod, *) Primary Key (id_ing) Foreign Key rut_empresa references Empresas (rut_empresa) Foreign Key id_um references UM (id_um) Foreign Key id_destino_prod references (id_destino_prod) 97 Destinos_produccion Ingresos_UN (id_ing_un, id_un, año_ing_un, trimestre_ing_un, cantidad_vend_ing_un, id_um, id_destino_prod, *) Primary Key (id_ing) Foreign Key id_un references UN (id_un) Foreign Key id_um references UM (id_um) Foreign Key id_destino_prod references Destinos_produccion (id_destino_prod) Maquinarias_inv (id_maq, rut_empresa, año_maq, tipo_maq, n_maq_maq, marca_maq, edad_maq, vida_util_maq, estado_maq, valor_registro_maq) Primary Key (id_maq) Foreign Key rut_empresa references Empresas (rut_empresa) Operadores (id_operador, nombre_operador) Primary Key (id_operador) Otros_activos_inv (id_otros_act, rut_empresa, año_otros_act, tipo_otro_act, n_otro_activo, marca_otro_act, edad_otros_act, vida_util_otro_act, estado_otros_act, valor_registro_otro_act) Primary Key (id_otros_act) Foreign Key rut_empresa references Empresas (rut_empresa) 98 Problemas_empresa (id_prob, rut_empresa, año_prob, id_tipo_prob, descrip_prob, sol_prob, id_tipo_estado) Primary Key (id_prob) Foreign Key rut_empresa references Empresas (rut_empresa) Foreign Key id_tipo_estado references Tipos_problemas (id_tipo_problema) Foreign Key id_tipo_estado references Tipos_estado (id_tipo_estado) Provincias (id_provincia, id_region, nombre_provincia) Primary Key (id_provincia) Foreign Key id_region references Regiones (id_region) Recursos_humanos (id_rrhh, rut_empresa, año_rrhh, n_pre_rrhh, n_ger_rrhh, *) Primary Key (id_rrhh) Foreign Key rut_empresa references Empresas (rut_empresa) Regiones (id_region, nombre_region) Primary Key (id_region) Representantes (rut_rep, dig_rep, nombre_rep) Primary Key (rut_rep) 99 REL_EMP_REP (rut_empresa, rut_rep) Primary Key (rut_empresa, rut_rep) Foreign Key rut_empresa references Empresas (rut_empresa) Foreign Key rut_rep references Representantes (rut_rep) Situacion_EMP (id_sit, rut_empresa, año_sit, trimestre_sit, est_res_sit, *) Primary Key (id_sit) Foreign Key rut_empresa references Empresas (rut_empresa) Terrenos_inv (id_ter, rut_empresa, año_ter, tipo_ter, superficie_ter, usos_ter, valores_ter) Primary Key (id_ter) Foreign Key rut_empresa references Empresas (rut_empresa) Tipos_clasificaciones (id_tipo_cla, descrip_tipo_cla) Primary Key (id_tipo_cla) Tipos_estado (id_tipo_est, descrip_tipo_est) Primary Key (id_tipo_est) Tipos_problemas (id_tipo_pro, descrip_tipo_pro) Primary Key (id_tipo_pro) 100 Tipos_UN (id_tipo_un, descrip_tipo_un) Primary Key (id_tipo_un) Tipos_usuario (id_tipo_usu, descrip_tipo_usu) Primary Key (id_tipo_usu) UM (id_um, descrip_um) Primary Key (id_um) UN (id_un, nombre_un, rut_empresa, id_tipo_un) Primary Key (id_un) Foreign Key rut_empresa references Empresas (rut_empresa) Foreign Key id_tipo_un references Tipos_UN (id_tipo_un) Usuarios (username, password, p_nom_usu, s_nom_usu, ap_pat_usu, ap_mat_usu, otros_usu, id_tipo_usuario) Primary Key (username) Foreign Key id_tipo_usuario references Tipos_usuario (id_tipo_usu) 101 Venc_pcp (id_venc_pcp, rut_empresa, año_venc_pcp, mes_venc_pcp, cred_cp_indap_pcp, cred_cp_bancos_pcp, *) Primary Key (id_venc_pcp) Foreign Key rut_empresa references Empresas (rut_empresa) Venc_plp (id_venc_plp, rut_empresa, año_venc_plp, año_desc_venc_plp, cred_cp_indap_plp, cred_cp_bancos_plp, *) Primary Key (id_venc_plp) Foreign Key rut_empresa references Empresas (rut_empresa) 102 6.2.2.1.2.1.3 Validación del modelo utilizando normalización La normalización. El modelo conceptual de datos obtenido mediante la técnica de entidadrelación será refinado y convertido en un modelo lógico relacional, utilizando la normalización, lo que ofrecerá como resultado el conjunto de tablas a implementar en la base de datos (JACKSON, 1990; MIGUEL Y PIATTINI, 1993: 425-674). Su finalidad es reducir las inconsistencias y redundancias de los datos, facilitar el mantenimiento y evitar las anomalías en las manipulaciones de datos. El objetivo será obtener un modelo lógico normalizado que represente las entidades normalizadas y las interrelaciones existentes entre ellas. Para ello, se toma como punto teórico de partida el concepto de dependencia funcional, que dice: "Un atributo B depende funcionalmente de otro atributo A, de la misma entidad si a cada valor de A le corresponde sólo un valor de B." Lo anterior se completa mediante la dependencia funcional completa y la dependencia transitiva. Todo el proceso se basa en que una primera relación universal plantearía enormes problemas de redundancia, consistencia e integridad de los datos, por lo que es necesario mejorar las relaciones. Estas mejoras deben dar como resultado tablas equivalentes y mejores que sus respectivas originales, y poseer siempre tres propiedades: conservación de la información (de atributos y de 103 tuplas), conservación de dependencias y mínima redundancia de los datos. Las mejoras introducidas obligan a plantear hasta que Forma Normal es necesario llegar, es decir, a que nivel de depuración. Normalmente, es recomendable alcanzar la máxima Forma Normal, aunque luego es muy probable que restricciones existentes, de algún tipo, obliguen a retroceder a un nivel inferior de normalización, o incluso a cierto nivel de "desnormalización". A continuación se describen las tres primeras formas normales propuestas por EF. Codd. Primera forma normal Para que una relación esté en primera forma normal (1 FN), debe ser solamente una relación propia, una matriz m por n, donde: • Ninguna celda de la matriz está vacía; • El valor n cualquier columna está definido por el dominio para dicho atributo. • Cada tupla tiene una clave que la identifica en forma unívoca, pero dicha clave no significa orden. 104 Segunda Forma Normal Una relación está en segunda forma normal (2FN) solamente si todos los atributos son dependientes en forma completa de la clave. Su nombre ya nos indica el hecho de que la segunda forma normal es por lo general el próximo paso de normalización y descomposición. Para ser accesible a la normalización, y poder ser puesta en segunda forma normal, la relación debe poseer las siguientes propiedades: • Debe estar en primera forma normal • Debe tener una clave compuesta. La consecuencia inmediata de los requerimientos expresados más arriba es que cualquier relación en primera forma normal que tiene una clave simple, está automáticamente en segunda forma normal. 105 Tercera forma normal Una relación se encuentra en tercera forma normal (3FN) si no existen transitividades entre sus atributos y si ya se encuentra en 2 FN. Descripción Una relación R para ser puesta en tercera forma normal debe estar en la segunda forma normal. Es muy común que R sea una sub-relación; la relación original estaba en primera forma normal (para ponerla en segunda forma normal fue descompuesta en varias sub-relaciones). Estas son ahora candidatas a una descomposición adicional. Recordamos que las propiedades de la segunda forma normal (2Fn) son: • Tenemos una matriz m x n con un valor determinado para cada componente de cada tupla. • Cada valor es obtenido a partir de un dominio propiamente definimos • Cada valor contiene una clave, ya sea simple o compuesta • Cada componente no clave es dependiente en forma completa de su clave. 106 En consecuencia es evidente que tenemos, o bien una clave simple, o una clave compuesta de la cual todos los componentes no clave son dependientes en forma completa. El objeto de esta fase es determinar todas las dependencias transitivas; la descomposición producirá a continuación sub-relaciones para las cuales no existirán dependencias transitivas Nota: Las demás formas normales no se verificaron. Resultado: Dada la revisión de todas las tablas y verificando el cumplimiento de las tres formas normales para cada una de ellas no se debieron realizar modificaciones. 107 6.2.2.1.2.1.4 Validación del modelo contra las transacciones de usuarios En esta etapa se debe verificar que el sistema soporta todos los requerimientos de los usuarios. Para ello se deben desarrollar y comprobar que las transacciones soportan todas las funciones del sistema solución. La comprobación de esto se realiza formando una matriz entre requerimientos y transacciones. La cual se analiza celda por celda, es decir, se revisan todos los pares (Requerimiento, Transacción). Cada requerimientos debe tener al menos una transacción asociada y se debe revisar que todas las transacciones están bien definidas. 108 Los resultados de esta etapa se pueden visualizar en las siguientes tablas: ID T-1 T-2 T-3 T-4 T-5 T-6 T-7 T-8 T-9 T-10 T-11 T-12 T-13 T-14 T-15 T-16 T-17 T-18 DESCRIPCION TRANSACCION Ingreso de Empresa Ingreso de UN Ingreso de Región Ingreso de Ciudad Ingreso de Costos de empresa Ingreso de Representante Ingreso de REL_EMP_REP Ingreso de Recursos Humanos Ingreso de Vencimientos de Pasivos Corto Plazo Ingreso Vencimiento de Pasivos Largo Plazo Ingreso de Situación de la empresa Ingreso de Problemas y Soluciones. Ingreso de Ingresos de EAC Ingreso de Estados de Resultados UN Ingreso de Balances EAC Búsqueda de Usuario valido Búsqueda de clasificación sintética de EAC Búsqueda de razones financieras Tabla 8: Listado de las transacciones más importantes. 109 Mapeado de Transacciones que cumplen con los requerimientos más importantes: T/R T-1 T-2 T-3 T-4 T-5 T-6 T-7 T-8 T-9 T-10 T-11 T-12 T-13 T-14 T-15 T-16 T-17 T-18 R-2 R-3 R-5 R-6 R-25 R-26 R-28 R-29 R-30 R-31 R-33 R-34 R-38 R-40 R-41 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Tabla 9: Tabla de Requerimientos con Transacciones relacionadas. 110 6.2.2.1.2.1.5 Diagrama ER final Costos de UN Tiene Estados de Resultados UN Usuarios (Propietario) Tiene Tipos de Usuarios Tiene Tiene Ingresos de EAC Balances UN Tipos de Problemas Tiene Tipos de Clasificación Tiene Tiene Unidades de Medida Tiene Tiene Tiene Problemas deEAC Tiene Tiene Destino Producción Tiene Ingresos de Un Tiene Tiene Balances EAC Tiene Estados de Resultados EAC Tiene Grupos Tiene Terrenos de Inventario Tiene Operadores Tiene Recursos Humanos de EAC Tiene Otros Activos de Inventario Tiene Maquinarias Y Equipos de Invent. Tiene Construcciones e Infraestructuras Invent. Tiene Costos de EAC Tiene Vencimiento Pasivos Largo Plazo Tiene Vencimiento Pasivos Corto Plazo Tipos de Estados Tiene Unidades de Negocio Tiene Tiene Tipos de UN Tiene Clases de UN Empresas Regiones Tiene Tiene Provincias Areas Tiene Tiene Comunas Tiene REL_AREA_COM Tiene Tiene Ciudades Tiene Tiene Tiene Administradores Tiene Figura 13: Diagrama ER final. 111 Tiene REL_EMP_REP Situaciones Representantes 6.2.2.1.2.1.6 Definición de las limitaciones o restricciones de integridad Las restricciones de integridad se utilizan para proteger la base de datos de errores e inconsistencias. En esta etapa no se analizan las restricciones en base a un DBMS específico, al contrario, sólo se analizan las reglas en forma independiente Los tipos de restricciones de integridad son los siguientes: o Datos requeridos o Restricciones de los dominios de los atributos o Integridad de entidades o Integridad Referencial o Reglas de Negocio o de Empresa 112 6.2.2.1.2.1.6.1 Datos requeridos (por obligatoriedad o datos críticos) Existen atributos en las relaciones que siempre deben tener un valor válido. Para cumplir con esta regla se debe restringir el atributo para que no quede en blanco, nulo o indefinido. RESULTADOS: Ver Tabla Nº 4, “Tabla de detalle de atributos con su leyenda”. Diseño Conceptual de la Base de Datos”. 6.2.2.1.2.1.6.2 Restricciones de los dominios de los atributos Cada atributo tiene un dominio, es decir, que todo atributo pertenece a un dominio y éste a su vez es un conjunto válido de elementos. Estos elementos pueden ser numéricos, alfanuméricos, alfabéticos, etc. Los dominios al ser conjuntos deben cumplir con reglas de cerradura para sus elementos, operadores, etc. RESULTADOS: Ver Tabla Nº 5, “Tabla de detalle de los dominios determinados” . 113 6.2.2.1.2.1.6.3 Integridad de entidades La integridad de entidades se logra al no permitir que las claves primarias acepten valores nulos. Esto implica que toda instancia de una relación debe ser identificable. RESULTADOS: Ver Tabla Nº 4, “Tabla de detalle de atributos con su leyenda” y Tabla Nº 6, “Tabla de detalle de las claves primarias y candidatas” 114 6.2.2.1.2.1.6.4 Integridad referencial Cuando se define una columna como clave foránea, las filas de la tabla pueden contener en esa columna o bien el valor nulo (ningún valor), o bien un valor que existe en la otra tabla, un error sería asignar a un habitante una población que no está en la tabla de poblaciones. Eso es lo que se denomina integridad referencial y consiste en que los datos que referencian otros (claves foráneas) deben ser correctos. La integridad referencial hace que el sistema gestor de la base de datos se asegure de que no hayan en las claves foráneas valores que no estén en la tabla principal. La integridad referencial se activa en cuanto creamos una clave foránea y a partir de ese momento se comprueba cada vez que se modifiquen datos que puedan alterarla. Las ocurrencias o acciones que pueden suceder con una relación son: o Inserción o Agregación, o Modificación o Actualización y o Eliminación o Borrado. 115 Como una referencia consta de una entidad Padre y una entidad Hijo podemos representar las posibilidades de acción entre las relaciones Padre e Hijo como: ACC \ REL INSERCION MODIFICACION ELIMINACION Leyenda PADRE HIJO 4 1 6 3 5 2 POSIBLE ERROR SIN ERRORES POSIBLES Tabla 10: Tabla que ejemplifica las posibles acciones entre relaciones Padre e hijo y sus respectivos Casos. 116 • Caso 1 : Ocurrencia de inserción en la relación hijo. Se debe verificar la existencia de la clave foránea en forma válida o que sea nula y se acepte como tal. • Caso 2 : Ocurrencia de eliminación de la relación hijo. Sin problemas. • Caso 3 : Ocurrencia de actualización de la clave foránea en la relación hijo. ídem al Caso 1. • Caso 4 : Ocurrencia de inserción en la relación padre. Sin problemas. • Caso 5 : Ocurrencia de eliminación de la relación padre. En el caso de la eliminación de un Padre, la integridad referencial se pierde si existe una instancia del hijo que se refiere al padre. En otras palabras, se pierde la integridad referencial si se elimina un padre que maneja o tiene uno o más hijos. Existen varias estrategias que se deben considerar: 117 • NO ACTION : Prevenir que se elimine la relación padre si existe un hijo • CASCADE : Cuando se elimina el padre, automáticamente se elimina cualquier referencia del hijo. En el caso que el hijo también actúe como padre para otra relación, se utiliza la misma regla y se elimina en cascada. • SET NULL : Cuando se elimina una instancia del padre, la clave foránea en el hijo es actualizada con un valor nulo. • SET DEFAULT : Cuando se elimina una instancia del padre, las claves foráneas de todos los hijos referenciados son puestas en su valor por defecto. • NO CHECK : Cuando se elimina una instancia del padre, no se hace nada. • Caso 6 : Ocurrencia de actualización de la clave primaria de la relación padre. Si se actualiza al padre existiendo hijos con la referencia antigua, la integridad referencial se pierde. Para asegurar la integridad referencial se pueden utilizar las estrategias mencionadas en el caso 5. En el caso de CASCADE o cascada, todos los hijos deben ser actualizados. 118 RESULTADOS: Los resultados de esta etapa se aprecian en la siguiente tabla: INTEGRIDAD REFERENCIAL ACCION PADRE ACCION HIJO INSERSION o MODIFICACION MODIFICACION ELIMINACION Administradores Cascade No action Empresas Restringir Areas Cascade No action REL_AREA_COM Restringir Cascade No action Empresas Restringir Ciudad Cascade No action Empresas Restringir Clase de UN Cascade No action Tipos de UN Restringir Comunas Cascade No action REL_AREA_COM Restringir Cascade No action Ciudades Restringir Cascade No action Ingresos de Empresa Restringir Cascade No action Ingresos de UN Restringir Cascade No action Balances de Empresa Restringir Cascade No action Construcc. Inv Restringir Cascade No action Costos Empresa Restringir Cascade No action Estados de Resultados Restringir Cascade No action Ingresos de empresa Restringir Cascade No action Maquinarias Inv Restringir Cascade No action Otros Activos Inv. Restringir Cascade No action Problemas Restringir Cascade No action Recursos humanos Restringir Cascade No action REL_EMP_REP Restringir Cascade No action Situación Restringir Cascade No action Terrenos de Inv. Restringir Cascade No action Unidades de Negocio Restringir Cascade No action Vencimiento PCP Restringir Cascade No action Vencimiento PLP Restringir Grupos de Trabajo Cascade No action Empresas Restringir Operadores Cascade No action Empresas Restringir Provincias Cascade No action Comunas Restringir Regiones Cascade No action Areas Restringir Destinos de la Producción Empresas Cascade No action Provincias Restringir Representantes Cascade No action REL_EMP_REP Restringir Tipos de Clasificación Cascade No action Empresas Restringir Tipos de Estados Cascade No action Problemas Restringir Tipos de Problemas Cascade No action Problemas Restringir 119 Tipos de Unidades de Negocio Cascade No action Unidades de Negocio Restringir Tipos de usuarios Cascade No action Usuarios Restringir Unidad de Medida Cascade No action Ingresos de Empresa Restringir Cascade No action Ingresos de UN Restringir Cascade No action Balances de UN Restringir Cascade No action Costos de UN Restringir Cascade No action Estado de Resultados de UN Restringir Cascade No action Ingresos de UN Restringir Cascade No action Empresas Restringir Unidad de Negocio Usuarios Tabla 11: Tabla que muestra las restricciones de integridad para las diferentes relaciones del sistema solución. Esta tabla muestra las relaciones Padre e Hijo y las acciones que se determinaron para activarse cuando se realizan las inserciones y modificaciones en el Padre (clave primaria) y las inserciones y/o modificaciones en la relación Hijo (clave foránea). Ejemplos: Cuando se intenta eliminar una tupla de la relación Administradores (Padre) cuando existen Empresas (Hijos) que la tienen como referencia se activa la acción “No action” que implica la negación del intento de eliminación. Cuando se realiza una Actualización (Update o Modificación) en una tupla de la relación Administradores (Padre) se activa la acción “Cascade” la cual implica modificar en cascada, es decir, actualizar la referencia o clave foránea de todas las Empresas (Hijos) con respecto al Administrador. La acción “Restringir” implica que la clave foránea de la “Empresa” debe tener un valor idéntico y válido de una clave primaria de los Administradores. 120 6.2.2.1.2.1.6.5 Reglas de Negocio o de Empresa Estás reglas son aquellas que impone la Organización o la Empresa según su propio criterio de manejo de la Información. Existen muchos criterios posibles para determinar las reglas de negocio, por lo cual, no se pueden estandarizar todas ellas. Lo que se puede decir es que son reglas que se manejan en la vida real. RESULTADOS: o La empresa puede tener como máximo dos representantes o Los Balances deben estar cuadrados. (Total Activos = Total Pasivos + Patrimonio) o Que la información de las EAC y de las UN se debe completar al cierre anual, es decir, que no falte información al 31 de diciembre de cada año. o Que si una EAC se mantiene sobre un 5% del mínimo de una categoría de la clasificación sintética por más de dos años, esta debe ser “castigada” y debe bajar a la categoría inferior, esto es inversamente proporcional a las EAC que están un %5 por debajo de una categoría, las cuales son ascendidas. 121 6.2.2.1.2.1.7 Revisión del modelo de datos lógico con los usuarios Objetivo: Asegurar que el modelo de datos lógico local sea una representación real de la visión de los usuarios. RESULTADOS: El trabajo en esta etapa fue iterativo. Como productos de esta parte del desarrollo se obtuvieron el DFD del sistema y el modelo de datos lógico local final. Estos modelos fueron aprobados por los usuarios. 122 6.2.2.1.2.2 Construcción y validación del modelo de datos lógico global Objetivo: Combinar los modelos de datos lógicos individuales en un modelo de datos lógico global, el cual pueda ser usado para representar la parte de la empresa que nos interesa en el modelo. RESULTADOS: Se realizaron los siguientes pasos: o Se mezclaron los modelos de datos lógicos individuales en uno global. o Se valido el modelo de datos lógico global. o Se revisaron los posible crecimientos a futuro del sistema y de la Organización. o Se dibujó el diagrama ER final. o Se revisó con los usuarios el modelo de datos lógico global. 123 6.2.2.1.2.3 Mapa transaccional Objetivo: Mostrar gráficamente la importancia de las interacciones entre las transacciones, entidades y relaciones del sistema. Esta etapa ayuda a determinar: o Las rutas de las transacciones con respecto a las relaciones. o Determinar cuales relaciones son más frecuentemente accedidas por las transacciones y o Analizar las transacciones seleccionadas que involucran estas relaciones. Por la gran cantidad de transacciones y de relaciones del sistema se han tenido que resumir las representaciones de los diversos análisis de estas últimas. Se describen solamente las transacciones más importantes destacando gráficamente como interactúan con las diversas entidades y relaciones. RESULTADOS: Mapa o diagrama de transacciones que complementa al diagrama ER final. Ver Figura Nº 14 “Diagrama ER final”. 124 Costos de UN Usuarios (Propietario) Tiene Estados de Resultados UN Tiene Tipos de Usuarios 16 Tiene 14 Tiene Ingresos de EAC Balances UN 13 Tipos de Problemas Tiene Tiene Tiene Tipos de Clasificación Tiene Problemas deEAC Tiene Tiene Unidades de Medida Tiene 12 Tiene Destino Producción Tiene Tiene Balances EAC 15 Ingresos de Un Tiene Tiene Estados de Resultados EAC Tiene Grupos Tiene Terrenos de Inventario Tiene Operadores Tipos de Estados 1 Tiene Unidades de Negocio 1 2 1 Tiene Tiene 8 Tipos de UN Tiene Clases de UN Tiene Recursos Humanos de EAC Tiene Otros Activos de Inventario Tiene Maquinarias Y Equipos de Invent. Tiene Construcciones e Infraestructuras Invent. Empresas 17 Regiones 3 Tiene Tiene 18 5 Provincias Areas Tiene Costos de EAC 10 Tiene Tiene Tiene Vencimiento Pasivos Largo Plazo Tiene 9 Comunas Vencimiento Pasivos Corto Plazo Tiene REL_AREA_COM 6 Tiene Tiene 1 Tiene Tiene Tiene REL_EMP_REP 4 7 Ciudades Tiene Administradores Tiene Situaciones 11 Figura 14: Mapa transaccional 125 Representantes 6.2.2.1.3 Diseño Físico de Base de datos Objetivo: El proceso de producir una descripción de la implementación de la Base de Datos en un medio de almacenamiento secundario, describiendo las estructuras de almacenamiento y los métodos de acceso usados para acceder en forma eficiente a los datos almacenados. Una vez que tenemos las tablas resultantes del Diseño Lógico es importante decidir las estructuras de almacenamiento y las estrategias de acceso. La estructura de almacenamiento se refiere a como almacenar los datos, y la estrategia de acceso se refiere a como llegar a los datos. Algunos ejemplos de estructuras de almacenamiento son: Archivos Planos, Archivos Comprimidos, Archivos Codificados, Formatos Específicos (DBF, DAT, DBM, etc.) Las estrategias de acceso pueden ser: Acceso Secuencial, Acceso Binario, Acceso Heap, Acceso usando Btrees, etc. Cada vez es más común que los sistemas manejadores de base de datos tengan ya predefinida la estructura de almacenamiento y como estrategia de acceso tengan solo dos: Acceso Secuencial y Acceso usando B-Trees. 126 Entonces esta etapa se reduce en términos simples a la selección de los ÍNDICES para acelerar el acceso. En ocasiones por eficiencia es posible que en esta fase del proceso se realice una DESNORMALIZACIÓN, es decir aceptar una Forma Normal de Menor Nivel que a la que se puede llegar, recuérdese que la NORMALIZACIÓN es un medio y no un fin. 6.2.2.1.4 Traducción del modelo lógico global para el DBMS especificado Objetivo: Producir un esquema básico de trabajo con la base de datos relacional desde el modelo de datos lógico global. 127 6.2.2.1.4.1 Diseño de relaciones bases para el DBMS especificado Objetivo: Decidir como representar las relaciones de la base de datos que han sido identificadas en el modelo de datos lógico global para un DBMS específico. (DBMS= “DataBase Management System” o Sistema gestor de base de datos) RESULTADOS: DBMS seleccionado: Microsoft SQL Server 2000. El listado de relaciones traducidas desde el modelo de datos lógico global al DBMS seleccionado puede ser visto en la sección de implementación. 128 6.2.2.1.4.2 Diseñar las restricciones especificas de la empresa para el DBMS especificado. En esta etapa se desarrollan las reglas de negocio en forma especifica del DBMS. RESULTADOS: Identificación de reglas de negocio sección 6.2.2.1.2.1.6.5 Ejemplo de Reglas: Esta regla restringue al valor de una columna a los valores del domino. La regla debe estar enlazada a la columna. (Fechas) CREATE RULE range_rule AS @range >= 1999 AND @range < 2500 129 6.2.2.1.5 Diseño de representación física Objetivo: Determinar la organización de los archivos y métodos de acceso que serán utilizados para almacenar las relaciones. 6.2.2.1.5.1 Objetivo: Análisis de transacciones Comprender las funcionalidades de las transacciones que funcionaran en la base de datos y analizar la importancia de las transacciones. RESULTADOS: Se documentaron las características más importantes de las transacciones, Funcionalidad, Formato de salida, Tipo acceso (inserción, modificación, consulta, eliminación), atributos usados en algunos predicados (parámetros de la cláusula WHERE), atributos en relaciones entre varias tablas (JOIN). La frecuencia y las restricciones de tiempo (time out o máximo) no fueron determinadas porque la Etapa de Pruebas está fuera del alcance la este Seminario. 130 Tabla de detalle de Transacciones: ID T-1 T-2 T-3 T-4 T-5 T-6 T-7 T-8 T-9 T-10 T-11 T-12 T-13 T-14 T-15 T-16 T-17 T-18 ACCESO INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION INSERCION CONSULTA CONSULTA CONSULTA PARAMETROS Ninguno rut_empresa, tipo_un Ninguno Comuna rut_empresa, Ninguno rut_empresa, rut_representante rut_empresa rut_empresa rut_empresa rut_empresa rut_empresa rut_empresa id_un rut_empresa user, pass Rut Rut TABLAS Empresas Unidades de Negocio Regiones Ciudades Costos EAC Representantes REL_EMP_REP Recursos Humanos Vencimiento PCP Vencimiento PLP Situación EAC Problemas EAC Ingresos EAC Estados Resultados UN Balances EAC Usuarios Empresas Empresas Tabla 12: Tabla que muestra algunos detalles o características importantes de las transacciones. 131 6.2.2.1.5.1.1 Diseño físico de transacciones Objetivo: Definir la estructura o código especifico para el DBMS seleccionado de las transacciones. La implementación de ella se realiza por medio de procedimientos almacenados. Nota: Por la gran cantidad de atributos de algunas de las relaciones se utilizará el símbolo * (asterisco) para representarlos. Por ejemplo: Se describe la relación Balances_de_EMP (id_balance, rut_empresa, año_bal, disponible_caja_bal, disponible_bancos_bal, *), por lo cual se asume que la relación tiene más atributos y están implícitamente incluidos. 132 Listado de Transacciones: T-1: INSERT INTO Empresas (rut_empresa, digito_emp, nombre_emp, razon_soc_emp, fecha_const_emp, fono_emp, fax_emp, id_ciudad, id_area, calle_emp, numero_emp, oficina_emp, piso_emp, id_grupo, id_operador, giro_comerc_emp, fecha_inic_emp, n_socios_emp, n_mujeres_emp, n_jovenes_emp, n_etnia_emp, veces_moro_emp, veces_condo_emp, veces_reneg_emp, id_tipo_cla, id_usuario, id_administrador, *) VALUES (rut, dig, nombre, razon, fecha_c, fono, fax, ciudad, area, calle, numero, oficina, piso, grupo, operador, giro, fecha_i, n_soc, n_muj, n_jov, n_etnia, v_mor, v_con, v_ren, clasi, user, admin, *) T-2: INSERT INTO UN (id_un, nombre_un, rut_empresa, id_tipo_un) VALUES (un, nombre, rut, tipo_un) T-3: INSERT INTO Regiones (id_region, nombre_region) VALUES (region, nombre) 133 T-4 INSERT INTO Ciudades (id_ciudad, nombre_ciudad, id_comuna) VALUES (ciudad, nombre, comuna) T-5: INSERT INTO Costos_de_EMP (id_costos, rut_empresa, año_costos, trimestre_costos, invent_inic_mp_costos, *) VALUES (costos, rut, año, trimestre, inv_inic_mp, *) T-6: INSERT INTO Representantes (rut_rep, dig_rep, nombre_rep) VALUES (rep, dig, nombre) T-7: INSERT INTO REL_EMP_REP (rut_empresa, rut_rep) VALUES (rut, rep) T-8: INSERT INTO Recursos_humanos n_pre_rrhh, n_ger_rrhh, *) VALUES (hr., rut, año, n_pre, n_ger,*) 134 (id_rrhh, rut_empresa, año_rrhh, T-9: INSERT INTO Venc_pcp (id_venc_pcp, rut_empresa, año_venc_pcp, mes_venc_pcp, cred_cp_indap_pcp, cred_cp_bancos_pcp, *) VALUES (venc, rut, año, mes, cred_cp_indap, cred_cp_bancos, *) T-10: INSERT INTO Venc_plp (id_venc_plp, rut_empresa, año_venc_plp, año_desc_venc_plp, cred_cp_indap_plp, cred_cp_bancos_plp, *) VALUES (venc, rut, año, año_d, cred_cp_indap, cred_cp_bancos, *) T-11: INSERT INTO Situacion_EMP (id_sit, rut_empresa, año_sit, trimestre_sit, est_res_sit, *) VALUES (sit, rut, año, trimestre, est_res, *) T-12: INSERT INTO Problemas_empresa (id_prob, rut_empresa, id_tipo_prob, descrip_prob, sol_prob, id_tipo_estado) VALUES (prob, rut, año, tipo_prob, descrip, sol, estado) 135 año_prob, T-13: INSERT INTO Ingresos_EMP (id_ing, rut_empresa, año_ing, trimestre_ing, cantidad_vend_ing, id_um, id_destino_prod, *) VALUES (ing, rut, año, trimestre, cantidad, um, destino, *) T-14: INSERT INTO Estado_res_UN (id_est_res, id_un, año_est_res, trimestre_est_res, ingreso_explotacion_est_res, costo_explotacion_est_res, *) VALUES (est_res, un, año, trimestre, ing_exp, costo_exp, *) T-15 INSERT INTO Balances_de_EMP (id_balance, rut_empresa, disponible_caja_bal, disponible_bancos_bal, *) VALUES (balance, rut, año, caja, bancos, *) T-16: SELECT * FROM Usuarios WHERE usuarios.username=user AND usuarios.password=pass 136 año_bal, T-17: SELECT Empresas.id_tipo_cla FROM Empresas WHERE Empresas.rut_empresa = rut T-18: SELECT empresas.r_capital_trabajo, empresas.r_razon_corriente, empresas.r_prueba_acida, empresas.r_leverage, empresas.r_leverage_mercado, empresas.r_solvencia, empresas.r_rentabilidad_bruta, empresas.r_rentabilidad_operacional, empresas.r_rentabilidad_neta, empresas.r_razon_operativa, empresas.r_razon_deuda, empresas.r_razon_dependencia, empresas.r_rotacion_activos, empresas.r_razon_calidad, empresas.r_cobertura_financiera, empresas.r_dependencia_cp, empresas.r_dependencia_lp FROM Empresas WHERE Empresas.rut_empresa = rut 137 6.2.2.1.5.2 Elegir la organización de archivos Objetivo: Determinar una organización eficiente de archivos para cada relación base. La organización de los archivos es manejada por el DBMS. La forma básica de almacenamiento de la Base de Datos de SQL Server es en base a tres tipos de archivos: o Archivos de datos principales. El archivo de datos principal es el punto de partida de la base de datos y apunta a los otros archivos de la base de datos. Cada base de datos tiene un archivo de datos principal. La extensión de nombre de archivo recomendada para los archivos de datos principales es .MDF. o Archivos de datos secundarios. Los archivos de datos secundarios son todos los archivos de datos menos el archivo de datos principal. Puede que algunas bases de datos no tengan archivos de datos secundarios, mientras que otras pueden tener varios archivos de datos secundarios. La extensión de nombre de archivo recomendada para los archivos de datos secundarios es .NDF. 138 o Archivos de registro. Los archivos de registro almacenan toda la información de registro que se utiliza para recuperar la base de datos. Como mínimo, tiene que haber un archivo de registro por cada base de datos, aunque puede haber varios. La extensión de nombre de archivo recomendada para los archivos de registro es .LDF. SQL Server 2000 no exige las extensiones de nombre de archivo .MDF, .NDF y .LDF, pero dichos extensiones son las recomendadas para identificar el uso de cada archivo. 139 6.2.2.1.5.3 Elegir índices secundarios Objetivo: Determinar cuales índices secundarios que se puedan agregar mejorarían el desempeño o rendimiento del sistema. SQL Server 2000 tiene una utilidad o herramienta para la optimización de índices. Para ello el asistente necesita analizar una carga de trabajo de la Base de Datos. Una carga de trabajo consta de una secuencia de comandos SQL o de una traza del Analizador de SQL guardada en un archivo o en una tabla que contiene clases de sucesos de llamada a procedimiento remoto (RPC) o lotes SQL y las columnas de datos Event Class y Text. La siguiente tabla de índices secundarios fue realizada en base a las consultas del sistema. NOTA: Como regla general, se debe crear un índice en una tabla sólo si los datos de las columnas indexadas se van a consultar con frecuencia. Los índices ocupan espacio en disco y pueden ralentizar las acciones de agregar, eliminar y actualizar filas. En la mayoría de las situaciones, estas desventajas de los índices son compensadas sobradamente por la ventaja que supone recuperar datos a gran velocidad. Sin embargo, si la aplicación actualiza datos con mucha frecuencia o se tienen limitaciones de espacio en disco, puede que sea conveniente limitar el número de índices. 140 RESULTADOS: Listado de índices secundarios seleccionados. ENTIDAD EMPRESAS OPERADORES UNIDAD DE NEGOCIO INDICE SECUNDARIO NOMBRE_EMP NOMBRE_OPERADOR NOMBRE_UN Tabla 13: Tabla que muestra los índices secundarios seleccionados. 141 6.2.2.1.5.4 Considerar la introducción de redundancia controlada (denormalización) Objetivo: Determinar cuales introducciones de redundancia pueden mejorar el rendimiento del sistema. RESULTADOS: Listado de redundancia introducida a la Base de Datos para mejorar el rendimiento del sistema. ENTIDAD BALANCES DE UNIDADES DE NEGOCIO BALANCES DE EMPRESAS COSTOS DE EMPRESA ATRIBUTOS REDUNDANTES DESCRIPCION TOTAL_ACTIVO_CIRC_BAL_UN Calculado SUBTOTAL_BAL_UN Calculado TOTAL_ACTIVO_FIJO_NETO_BAL_UN Calculado TOTAL_OTROS_ACT_BAL_UN Calculado TOTAL_ACTIV_BAL_UN Calculado TOTAL_PC_BAL_UN Calculado TOTAL_PLP_BAL_UN Calculado TOTAL_PAT_BAL_UN Calculado TOTAL_PASIV_BAL_UN Calculado TOTAL_ACTIVO_CIRC_BAL Calculado SUBTOTAL_BAL Calculado TOTAL_ACTIVO_FIJO_NETO_BAL Calculado TOTAL_OTROS_ACT_BAL Calculado TOTAL_ACTIV_BAL Calculado TOTAL_PC_BAL Calculado TOTAL_PLP_BAL Calculado TOTAL_PAT_BAL Calculado TOTAL_PASIV_BAL Calculado TOTAL_SAL_MP_COSTOS Calculado TOTAL_COSTOS_PROD_COSTOS Calculado COSTOS_ARTIC_VEND_COSTOS Calculado 142 COSTOS DE UNIDADES DE NEGOCIO EMPRESAS ESTADO DE RESULTADO EMPRESAS ESTADO DE RESULTADO UNIDADES DE NEGOCIO TOTAL_COSTOS_V_COSTOS Calculado TOTAL_GASTOS_ADMIN_V_COSTOS Calculado TOTAL_COSTOS_GASTOS_COSTOS Calculado TOTAL_SAL_MP_COSTOS_UN Calculado TOTAL_COSTOS_PROD_COSTOS_UN Calculado COSTOS_ARTIC_VEND_COSTOS_UN Calculado TOTAL_COSTOS_V_COSTOS_UN Calculado TOTAL_GASTOS_ADMIN_V_COSTOS Calculado TOTAL_COSTOS_GASTOS_COSTOS Calculado ID_REGION Referencia ID_PROVINCIA Referencia ID_COMUNA Referencia R_CAPITAL_TRABAJO Calculado R_RAZON_CORRIENTE Calculado R_PRUEBA_ACIDA Calculado R_LEVERAGE Calculado R_LEVERAGE_MERCADO Calculado R_SOLVENCIA Calculado R_RENTABILIDAD_BRUTA Calculado R_RENTABILIDAD_OPERACIONAL Calculado R_RENTABILIDAD_NETA Calculado R_RAZON_OPERATIVA Calculado R_RAZON_DEUDA Calculado R_RAZON_DEPENDENCIA Calculado R_ROTACION_ACTIVOS Calculado R_RAZON_CALIDAD Calculado R_COBERTURA_FINANCIERA Calculado R_DEPENDENCIA_FINANCIERA Calculado R_DEPENDENCIA_CP Calculado R_DEPENDENCIA_LP Calculado RESULT_OP_EST_RES Calculado RES_NO_OP_EST_RES Calculado UTILIDAD_PERDIDA_EJER_EST_RES Calculado RESULT_OP_EST_RES_UN Calculado RES_NO_OP_EST_RES_UN Calculado UTILIDAD_PERDIDA_EJER_EST_RES_UN Calculado VENCIMIENTO DE PASIVOS CORTO PLAZO TOTAL_PASIV_CIRC_PCP Calculado VENCIMIENTO DE PASIVOS LARGO PLAZO TOTAL_PLP_PLP Calculado Tabla 14: Tabla de atributos redundantes para optimizar el tiempo de acceso para consultas 143 6.2.2.1.5.5 Estimar los requerimientos de espacio en disco Objetivo: Determinar la cantidad de espacio en disco necesario para almacenar la Base de Datos, y su posible crecimiento. RESULTADOS Antecedentes para realizar cálculos de utilización de espacio en disco. o Todos los cálculos son aproximados. o Cantidad Base de EAC: 7000 (unidades) o EAC nuevas: entre 0 y 300 (unidades) o Del punto anterior se asume un crecimiento de 300 (unidades) o EAC abandonan: entre 0 y 100 (unidades) o Del punto anterior se asume un abandono de 0 unidades. o Promedio de UN por EAC: 3 o Máximo número de UN por EAC: 10 o De los dos puntos anteriores se asumen 6 UN por EAC. o Cantidad (promedio) de Grupos por Región: 40; total = 520 (13 regiones * 40 grupos) 144 Tamaños aproximados de un Registro por Tabla. Se deben tomar en cuenta que hay varios atributos del tipo variable. La columna “ADICIONAL OTROS” se refiere a un 10% de tolerancia o ajuste de aproximación. Además es importante destacar que la estimación es al máximo del tamaño por registro o tupla. ENTIDAD ADMINISTRADOR DE EMPRESA AREAS BALANCE DE UNIDAD DE NEGOCIO BALANCES DE EMPRESA CIUDADES CLASE DE UNIDAD DE NEGOCIO COMUNAS CONSTRUCCION E INFRAESTRUCTURA DE INVENTARIO COSTOS DE EMPRESA COSTOS DE UNIDAD DE NEGOCIO DESTINO DE LA PRODUCCION EMPRESAS ESTADO DE RESULTADO DE EMPRESA ESTADO DE RESULTADO DE UNIDAD DE NEGOCIO GRUPOS DE TRABAJO INGRESOS DE EMPRESA INGRESOS DE UNIDAD DE NEGOCIO MAQUINARIAS Y EQUIPOS DE INVENTARIO OPERADORES OTROS ACTIVOS DE INVENTARIO PROBLEMAS DE EMPRESA PROVINCIAS RECURSOS HUMANOS DE EMPRESA REGIONES REPRESENTANTE DE EMPRESA SITUACION DE EMPRESA TERRENOS DE INVENTARIO TIPOS DE CLASIFICACION TIPOS DE ESTAD TIPOS DE PROBLEMAS TIPOS DE UNIDADES DE NEGOCIO TIPOS DE USUARIOS UNIDAD DE MEDIDA UNIDAD DE NEGOCIO USUARIOS TAMAÑO (BYTES) ADICIONAL OTROS TOTAL (BYTES) 46 26 482 482 29 44 29 4 2 48 48 2 4 2 50 28 530 530 31 48 31 122 214 214 44 403 126 12 21 21 4 40 12 134 235 235 48 443 138 126 44 76 76 12 4 7 7 138 48 83 83 83 44 78 130 28 102 24 46 29 105 24 24 24 24 24 24 34 82 8 4 7 13 2 10 2 4 2 10 2 2 2 2 2 2 3 8 91 48 85 143 30 112 26 50 31 115 26 26 26 26 26 26 37 90 145 VENCIMIENTO DE LOS PASIVOS DE CORTO PLAZO VENCIMIENTO DE LOS PASIVOS DE LARGO PLAZO 118 11 129 78 7 85 Tabla 15: Tabla que muestra el tamaño en bytes de cada registro asumiendo el registro como fijo. Cálculo de Tablas “fijas”. (menos variables) TABLA ADMINISTRADORES REGIONES PROVINCIAS AREAS COMUNAS CIUDADES * CLASES DE UN DESTINO DE PRODUCCION GRUPOS DE TRABAJO TIPOS DE CLASIFICACION TIPOS DE UN UNIDADES DE MEDIDA EMPRESAS USUARIOS TIPOS DE USUARIOS TIPOS DE ESTADOS TIPOS DE PROBLEMAS REPRESENTANTES Tamaño por REGISTROS registro (bytes) 7000 26 13 26 51 30 115 28 342 31 3000 31 17 48 20 48 520 48 8 26 59 26 15 26 7000 443 300 90 6 26 4 26 30 26 9000 50 TOTAL TOTAL (bytes) 182000 338 1530 3220 10602 93000 816 960 24960 208 1534 390 3101000 27000 156 104 780 450000 3898598 Tabla 16: Tabla que muestra el tamaño en bytes de las tablas “fijas” del sistema. TOTAL FIJO= 3898598 bytes o 3808,2 Kbytes o 3,7 Mbytes. 146 Cálculo de Tabla variables. (crecimiento anual) Ejemplos de Interpretación: “4 X 7000” implica 4 UN por cada EAC y esto multiplicado por la cantidad total de EAC =7000. “3 X 7000” implica ítem trimestral por cantidad de EAC. TABLA UNIDADES DE NEGOCIO BALANCES DE EMPRESA BALANCE DE UNIDAD DE NEGOCIO RECURSOS HUMANOS DE EMPRESA COSTOS EMPRESA COSTOS UN ESTADOS RESULTADO EMPRESA ESTADO RESULTADO UN INGRESOS EMPRESAS INGRESOS UN SITUACION EMPRESA VENC. PCP VENC. PLP CONSTRUC. INFRA. INVENT. MAQUINARIAS Y EQUIP. INVENT OTROS ACTIVOS INVENT. PROBLEMAS DE EMPRESA TERRENOS DE INVENT. FORMULA 4 X7000 1 X 7000 1 X 7000 X 4 1 X 7000 3 X 7000 3 X 7000 X 4 3 X 7000 3 X 7000 X 4 3 X 7000 3 X 7000 X 4 1 x 7000 12 X 7000 10 X 7000 30 X 7000 30 X 7000 30 X 7000 10 X 7000 20 X 7000 CANTIDAD ITEM (bytes) TOTAL (bytes) 28000 37 1036000 3710000 7000 530 14840000 28000 530 7000 112 784000 21000 235 4935000 84000 235 19740000 21000 138 2898000 84000 138 11592000 21000 83 1743000 84000 83 6972000 7000 31 217000 84000 129 10836000 70000 85 5950000 210000 134 28140000 210000 91 19110000 210000 85 17850000 70000 143 10010000 140000 115 16100000 TOTAL 176463000 Tabla 17: Tabla que muestra el tamaño en bytes de las tablas “variables”, es decir, de aquellas que siempre crecerán por año o trimestre. TOTAL VARIABLE= 176463000 bytes o 172327,1 Kbytes o 168,3 Mbytes 147 RESUMEN DE ETAPA: Total fijo o estado inicial: 3,7 Mbytes Total variable o crecimiento anual: 168,3 Mbytes Tamaño estimado para el primer año: 168,3 + 3,7 = 172 Mbytes. Este cálculo estimado no involucra el almacenamiento de la estructura total de la Base de Datos, es decir, no incluye las necesidades de espacio en disco del DBMS. Para prevenir un crecimiento mayor se proyecta un crecimiento del triple de este valor por lo cual el disco duro y la forma de respaldo (CDS) cumplen con soportar el almacenamiento de la Base de Datos. Nota: La conversión de medida se usa con el Kilobyte del sistema binario o nomenclatura “física” el cual es 1024 bytes o 2 a la potencia de 10. Según la IEEE la norma para identificar entre el kilo decimal (1000 o “lógico”) y el binario es escribir K en mayúscula para referirse a 1024 y k en minúscula para referirse a 1000. 148 6.2.2.1.6 Diseñar mecanismos de seguridad Objetivo: Designar los aspectos de seguridad para la Base de Datos según las especificaciones de los usuarios. RESULTADOS: La seguridad de la Base de Datos consta de: o Seguridad Externa o accesos externos: Restricción por clave de usuarios administradores y/o clave del creador de la Base de Datos. o Seguridad Interna o accesos internos: Restricción por medio de vistas de usuarios y por tipo de usuario. Se detallan las restricciones de los tipos de usuarios en el desarrollo del Stio Web y las vistas de usuarios en la siguiente sección. 149 6.2.2.1.6.1 Diseñar vistas de usuarios Objetivo: Designar las vistas de los usuarios que fueron definidas en el Diseño conceptual. Nota: Las vistas no pueden tener parámetros, pero de igual forma son muy útiles para dividir las Base de Datos y para mejorar la seguridad de las mismas. RESULTADOS Ejemplos de vistas de Datos: Ejemplo 1 Objetivo: Crear una vista que muestre sólo las empresas de la Categoría “C1”, Si un Jefe de Area con acceso a EAC de ese nivel quiere ver EAC de otros niveles se le niega el acceso al darle la autorización solamente a los ingresos de empresas del nivel referenciado. SELECT dbo.EMPRESAS.*, dbo.EMPRESAS.ID_TIPO_CLASIFICACION AS Expr1 FROM dbo.EMPRESAS INNER JOIN dbo.[EMPRESA X INGRESOS] ON dbo.EMPRESAS.RUT_EMPRESA dbo.[EMPRESA X INGRESOS].RUT_EMPRESA WHERE (dbo.EMPRESAS.ID_TIPO_CLASIFICACION = 'C1') 150 = Ejemplo 2 Objetivo: Crear una vista que muestre sólo las empresas que no han caido en mora. En la Gestión de Creditos es importante negar nuevos créditos si aún existen deudas pendientes y se puede realizar un “filtro” mediante esta vista de usuario. SELECT dbo.EMPRESAS.*, VECES_MOROCIDAD AS Expr1 FROM dbo.EMPRESAS WHERE (VECES_MOROCIDAD = 0) 151 6.2.2.1.6.2 Diseñar reglas de acceso Objetivo: Designar las reglas de acceso a las relaciones basándose en las vistas de los usuarios. RESULTADOS: Las reglas de acceso a las relaciones del sistema son todas las vistas de usuarios que limitan el acceso a la base de las relaciones. Todo usuario está restringido según su tipo de usuario para acceder a las partes del sitio web y a su vez al contenido de las tablas. Ejemplo: Existen restricciones específicas de los usuarios (Operadores Técnicos) para acceder solamente a EAC donde ellos son propietarios. 152 6.2.2.1.6.3 Monitoreo y Refinamiento del sistema en operación Objetivo: Monitorear la operación del sistema y aumentar el rendimiento del sistema al corregir las decisiones inapropiadas de diseño o reflejando los cambios de requerimientos. RESULTADOS Esta etapa queda fuera del ámbito del proyecto porque está relacionada con la etapa de Pruebas del Sistema. 153 6.2.2.2 Diseño del Sitio Web Objetivo: Definir un diseño que integre todos los componentes del Sitio Web, es decir, Diseñar la Interfaz que facilite a los usuarios el interactuar con la Base de Datos del sistema. Nota: Por la gran cantidad de información generada en esta etapa solo se detallarán los productos más importantes. 6.2.2.2.1 Diseño Lógico del Sitio Web Objetivo: Determinar el ambiente del sitio Web, en otras palabras, definir el “que hacer” en el Sitio Web. Para ello se deben determinar los elementos que lo componen, organizarlos, relacionarlos en forma integrada, etc. 154 6.2.2.2.1.1 Diagrama del Sitio Web Pagina Principal Pagina autenticación Clasificador de usuario Operador Técnico EAC Area Unidad de Estudios Region Especial Los usuarios acceden a los datos mediante vistas y control de páginas según tipo usuario para que se utilicen las mismas paginas de gestion de Tablas Se trabaja con las Tablas en dos modos: EDICION y EXPLORACION MODO EXPLORACION MODO EDICION MENU DINAMICO DE NAVEGACION MENU DINAMICO DE NAVEGACION Opciones Despliegue de un Registro modificable y Listado de toda la Tabla NUEVO CANCELAR ELIMINAR GUARDAR BUSCAR Opciones Despliegue de un Registro y Listado de toda la Tabla BUSCAR MOVIMIENTO DE REGISTROS Menu Principal MOVIMIENTO DE REGISTROS Otras páginas de Gestión Empresas Otras páginas de Gestión Unidades de Negocio Balances EAC Estado de Resultados Otras páginas de Gestión Balances UN Estado de Resultados UN Figura 15 : Diagrama del Sitio Web. 155 Informes Consolidados Consultas predefinidas 6.2.2.2.1.2 Inventario de páginas del Sitio Web Nombre de la Página default.htm Descripción Página inicial donde se solicitan los datos de usuario y clave valida.asp Página ASP con el código que clasifica a los usuarios y filtra la entrada al Sitio WEb menu_principal.asp Pagina principal de los usuarios configurada según el tipo de usuario gestión_empresas.asp Pagina de manejo de los Datos generales de la empresa y acceso a páginas relacionadas gestión_consultas.asp Página de manejo de consultas predefinidas e interactivas gestión_un.asp gestión_balances_eac.asp gestión_balances_un.asp gestión_administradores.asp Página de manejo de los informes consolidados por parámetros Página de manejo de Unidades de Negocio Página de manejo de Balances de las EAC Página de manejo deBalances de UN Página de manejo de Administradores gestión_contruc_invent.asp Página de manejo de contrucciones de Inventario gestión_costos_eac.asp gestión_costos_un.asp Página de manejo de Costos de las EAC Página de manejo de Costos de las UN gestión_estado_resultado_eac.asp Página de manejo de Estado de Resultado de las EAC gestión_estado_resultado_un.asp Página de manejo de los Estados de Resultado de las UN Gestión_grupos.asp gestión_ingresos_eac.asp gestión_ingresos_un.asp Página de manejo de los Grupos Página de manejo de los ingresos de las EAC Página de manejo de los ingresos de las UN gestión_maquinarias_invet.asp Página de manejo de las maquinarias de inventario gestión_otros_activos.asp Página de manejo de los otros activos de inventario gestión_problemas.asp Página de manejo de los problemas de las EAC gestión_rrhh.asp Página de manejo de los Recursos Humanos gestión_representantes.asp Página de manejo de los representantes de las EAC gestión_situación.asp Página de manejo de las situaciones de las Eac gestión_informes_consolidados.asp 156 gestión_terrenos_invent.asp Página de manejo de los terrenos de inventario gestión_venc_pcp.asp Página de manejo de los vencimientos de PCP Nivel_?.asp Paginas de clasificación de usuarios y Menu de navegación dinámico gestión_venc_plp.asp Página de manejo de los vencimientos de PLP Tabla 18: Inventario de páginas Web 157 6.2.2.2.2 Diseño físico del Sitio Web Objetivo: Desarrollar la abstracción de los elementos del sistema para lograr esquematizar la forma de desarrollarlos posteriormente . Intentando siempre generar una interfaz amigable y lo más simple de utilizar. 6.2.2.2.2.1 Diagrama de montaje del Sitio Web El proyecto Web y dos aplicaciones Web Las aplicaciones Web contienen los archivos que albergan el contenido y la funcionalidad Web, como los archivos .htm, .asp y los archivos de imagen, de todo o parte del sitio Web. Mediante los proyectos Web de Visual InterDev, puede identificar y manipular los archivos de la aplicación Web. El proyecto no forma parte del conjunto de archivos de la aplicación Web, sino que es un archivo que usa Visual InterDev para señalar los archivos asociados con la aplicación Web. Cada programador crea un proyecto Web para poder trabajar en la aplicación Web. El proyecto Web proporciona una representación gráfica de los archivos de la aplicación Web en el Explorador de proyectos. El archivo del proyecto Web permanece en el equipo local del programador y no forma parte de la aplicación Web. Cuando se distribuye una aplicación Web, el archivo de proyecto no se copia con ella, sino que sólo se copian los archivos que albergan el contenido y la funcionalidad Web. 158 Al crear un proyecto Web, en realidad trabaja con dos aplicaciones Web independientes. Una de ellas es el conjunto principal de archivos situado en el servidor Web maestro; en su equipo hay un segundo conjunto de archivos. Cuando se realicen cambios en los archivos Web del proyecto, dichos cambios se aplicarán directamente en el conjunto de archivos local. Los proyectos Web señalan a dos aplicaciones Web Figura 16: Proyecto Web La arquitectura de proyectos proporciona diversas ventajas. Visual InterDev utiliza el proyecto Web con sus punteros a las versiones local y maestra de la aplicación Web para llevar a cabo los comandos y realizar el mantenimiento de los dos conjuntos de archivos. 159 6.2.2.2.2.2 Descripción del Software utilizado 6.2.2.2.2.2.1 Para Base de Datos: SQL SERVER 2000 Analizador de Consultas de SQL Por medio de esta herramienta se pueden desarrollar procedimientos almacenados, consultas, etc. Además funcionamiento. 160 se pueden comprobar su Administrador corporativo de SQL Server Esta herramienta se basa en el MMC y desde él se gestiona la totalidad del desarrollo, mantención, visualización de la Base de Datos 161 Generador de Vistas de SQL Esta herramienta permite sin mucho esfuerzo desarrollar las vistas de usuarios, por medio de código SQL, o en forma gráfica. Además comprueba la sintaxis y muestra los resultados al ejecutar una consulta. 162 6.2.2.2.2.2.2 Para el Sitio Web: Visual Studio 6 Para lal edición de página ASP y HTML se utilizó el Programa Visual Interdev. 163 Para la edición de imágenes el programa Paint Shop Pro v.7.04 164 Para la manipulación visual de páginas Web se utilizó el programa Frontpage 2000 165 6.2.2.2.2.3 1 Seguridad del Sitio Web Diagrama general DIAGRAMA DE FLUJO DE DATOS Capa de seguridad de acceso al sitio USUARIO AUTENTICADO POR WINDOWS NT (Intranet) Solicitud de Ingreso 1 2 Validar solicitud Usuario aceptado Usuario rechazado Consulta solicitud Usuario Clasificado Respuesta solicitud USUARIOS Notas: Clasificar usuario SITIO WEB Verificar método de Encriptación de datos. Verificar si IIS anula la sesión por sobre el rango máximo de usuarios conectados configurado para el sitio. 166 DIAGRAMA DE FLUJO DE DATOS Capa de seguridad de acceso al sitio (DISEÑO LOGICO) DETALLE PROCESO 1 (Validar Solicitud) CLIENTE USUARIO AUTENTICADO POR WINDOWS NT (Intranet) Nombre de usuario y clave (Sitio Web) Solicitud rechazada 1.1 Comprobar datos solicitud Nombre de usuario y clave (Sitio Web) SERVIDOR 1.2 Validar datos solicitud Usuario aceptado Solicitud rechazada 2 Clasificar usuario 1.1 Comprobar datos solicitud: 1.1.1 Verificar datos nulos o en blanco. 1.1.2 Verificar longitud mínima de los datos. 1.1.3 Verificar el formato permitido de los datos. Usuario Clasificado SITIO WEB 1.2 Validar datos de la solicitud. 1.2.1 Comprobar usuario y clave en almacén “Usuarios”. 1.2.2 Verificar si el usuario ya existe en una Sesión de la Aplicación. 1.2.3 Verificar si el usuario está bloqueado. 1.2.4 Verificar si el usuario debe ser desbloqueado. 1.2.5 Verificar el Nº de intentos. Tipos de rechazo: 1. Usuario invalido (Por nombre de usuario y/o clave) 2. Usuario concurrente.(usuario actualmente activo) 3. Usuario Bloqueado. (número de intentos >2) 167 DIAGRAMA DE FLUJO DE DATOS Capa de seguridad de acceso al sitio DETALLE PROCESO 2 (Clasificar Usuario) 2.1 1 Validar solicitud Usuario aceptado 2.2 Consultar datos usuario Consulta datos usuario Datos usuario Crear usuario en aplicación y clasificar 2.3 Usuario clasificado Enviar usuario a página de inicio Activar usuario Datos usuario USUARIOS 2.1. Crear Usuario en Aplicación: 2.1.1 Verificar el número máximo de usuarios activos en la aplicación. (sólo si iis no realiza esta tarea) 2.1.2 Crear las variables “user” y “tipo” en la sesión del usuario. (valida al usuario para ver las páginas), 168 Ejemplos de Limitaciones de los tipos de usuarios: DETALLE DE LOS TIPOS DE USUARIOS EAC: Empresa Asociativa Campesina. DATOS: LECTURA: Solo los datos de la Empresa y sus Unidades de Negocio. ESCRITURA: Solo los datos de la Empresa y sus Unidades de Negocio. INFORMES: Informes relacionados a los datos de la Empresa y sus Unidades de Negocio. OTE: Operador Técnico. DATOS: LECTURA: Solo los datos de la EAC que son sus clientes directos y las Unidades de Negocio asociadas a las mismas. ESCRITURA: Solo los datos de la EAC que son sus clientes directos y las Unidades de Negocio asociadas a las mismas. INFORMES: Informes relacionados a los datos de la Empresa que son sus clientes directos y sus Unidades de Negocio asociadas a las mismas. Informes especiales, previa solicitud y aceptación de los mismos por la Unidad de Estudios. AREA: Cualquiera de las Areas con las que cuenta el INDAP. DATOS: LECTURA: Solo los datos de la EAC que se encuentran dentro del Area y las Unidades de Negocio asociadas a las mismas. ESCRITURA: No pueden modificar datos. INFORMES: Informes relacionados a los datos de la Empresa que se encuentran en el Area y sus Unidades de Negocio asociadas a las mismas.Informes especiales, previa solicitud y aceptación de los mismos por la Unidad de Estudios. 169 6.2.3 ETAPA IV 6.2.3.1 Implementación de la Base de Datos Objetivos: Instalar la Base de Datos desarrollada en las secciones anteriores, comprobando su integración con el Sitio Web, verificando la seguridad del sistema, etc. Ejemplos de códigos en la Base de Datos: Valores preterminados definidos por el usuario: AÑO_ACTUAL: Year(Getdate()) MES_ACTUAL: Month(Getdate()) 170 6.2.3.1.1 Script de la Base de Datos Archivo generador de la Base de Datos. GO CREATE TABLE [dbo].[ADMINISTRADORES] ( [RUT_ADMIN] [numeric](18, 0) NOT NULL , [DIG_ADMIN] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_ADMIN] [varchar] (40) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[AREAS] ( [ID_AREA] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [ID_REGION] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_AREA] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CIUDADES] ( [ID_CIUDAD] [char] (5) COLLATE Modern_Spanish_CI_AS NOT NULL , 171 [ID_COMUNA] [char] (5) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_CIUDAD] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CLASES DE UN] ( [CLASE_UN] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [DESCRIPCION] [varchar] (40) COLLATE Modern_Spanish_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[COMUNAS] ( [ID_COMUNA] [char] (5) COLLATE Modern_Spanish_CI_AS NOT NULL , [ID_PROVINCIA] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_COMUNA] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[DESTINOS DE LA PRODUCCION] ( 172 [ID_DESTINO_PRODUCCION] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [DESCRIPCION] [varchar] (40) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X BALANCES] ( [ID_BAL_EMP] [numeric](10, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_BAL] [smallint] NOT NULL , [DISPONIBLE_CAJA_BAL] [money] NOT NULL , [DISPONIBLE_BANCOS_BAL] [money] NOT NULL , [DEPOSITO_PLAZOS_BAL] [money] NOT NULL , [VALORES_NEGOCIABLE_BAL] [money] NOT NULL , [DEUDORES_VENTA_BAL] [money] NOT NULL , [DOCUMENTOS_COBRAR_BAL] [money] NOT NULL , [DEUDORES_VARIOS_BAL] [money] NOT NULL , [EXISTENCIAS_BAL] [money] NOT NULL , [IMPUESTOS_RECUPERAR_BAL] [money] NOT NULL , [OTROS_ACTIVOS_CIRC_BAL] [money] NOT NULL , [TOTAL_ACTIVO_CIRC_BAL] [money] NOT NULL , [TERRENOS_BAL] [money] NOT NULL , [CONTRUCCIONES_INFRA_BAL] [money] NOT NULL , [MAQUINARIAS_EQUIPOS_BAL] [money] NOT NULL , [MUEBLES_BAL] [money] NOT NULL , 173 [VEHICULOS_BAL] [money] NOT NULL , [ACCIONES_OTRAS_EMP_BAL] [money] NOT NULL , [OTROS_ACTIVOS_FIJOS_BAL] [money] NOT NULL , [SUBTOTAL_BAL] [money] NOT NULL , [DEPRECIACION_ACUM_BAL] [money] NOT NULL , [TOTAL_ACTIVOS_FIJO_NETO_BAL] [money] NOT NULL , [INVERSIONES_EMP_REL_BAL] [money] NOT NULL , [INVERSIONES_OTRAS_SOC_BAL] [money] NOT NULL , [DEUDORES_LP_BAL] [money] NOT NULL , [OTROS_ACTIVOS_BAL] [money] NOT NULL , [CRED_CP_INDAP_BAL] [money] NOT NULL , [CRED_CP_BANCOS_BAL] [money] NOT NULL , [CRED_LP_INDAP_PC_BAL] [money] NOT NULL , [CRED_LP_BANCOS_PC_BAL] [money] NOT NULL , [DIVIDENDOS_PAGAR_BAL] [money] NOT NULL , [OBLIGACIONES_INSTITU_BAL] [money] NOT NULL , [CUENTAS_PAGAR_BAL] [money] NOT NULL , [ACREEDORES_BAL] [money] NOT NULL , [DOCUMENTOS_PAGAR_BAL] [money] NOT NULL , [IMPUESTOS_PAGAR_BAL] [money] NOT NULL , [PROVISIONES_BAL] [money] NOT NULL , [RETENCIONES_BAL] [money] NOT NULL , [OTROS_PASIVOS_CIRC_BAL] [money] NOT NULL , [TOTAL_PC_BAL] [money] NOT NULL , [OBLIGACIONES_INDAP_BAL] [money] NOT NULL , [OBLIGACIONES_BANCOS_BAL] [money] NOT NULL , 174 [OBLIGACIONES_INSTITU_PLP_BAL] [money] NOT NULL , [ACREEDORES_PLP_BAL] [money] NOT NULL , [DOCUMENTOS_PAGAR_PLP_BAL] [money] NOT NULL , [PROVISIONES_PLP_BAL] [money] NOT NULL , [OTROS_PLP_BAL] [money] NOT NULL , [TOTAL_PLP_BAL] [money] NOT NULL , [CAPITAL_PAGADO_BAL] [money] NOT NULL , [REVALORACION_CP_BAL] [money] NOT NULL , [OTRAS_RESERVAS_BAL] [money] NOT NULL , [UTILIDADES_PERD_ACUM_BAL] [money] NOT NULL , [UTILIDADES_PERD_EJER_BAL] [money] NOT NULL , [RESEV_FUTUROS_DIV_BAL] [money] NOT NULL , [DIVIDENDOS_PROV_BAL] [money] NOT NULL , [OTROS_PASIV_BAL] [money] NOT NULL , [TOTAL_PAT_BAL] [money] NOT NULL , [TOTAL_PASIV_PAT] [money] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X COSTOS] ( [ID_COSTOS] [numeric](10, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_COSTOS] [smallint] NOT NULL , [TRIMESTRE_COSTOS] [smallint] NOT NULL , [INVENT_INIC_MP_COSTOS] [money] NULL , [COMPRAS_NETAS_MP_COSTOS] [money] NULL , 175 [INVENT_FIN_MP_COSTOS] [money] NULL , [TOTAL_SAL_MP_COSTOS] [money] NULL , [MANO_OBRA_DIREC_COSTOS] [money] NULL , [COSTOS_INDIREC_COSTOS] [money] NULL , [TOTAL_COSTOS_PROD_COSTOS] [money] NULL , [INVENT_INIC_PROD_TERM_COSTOS] [money] NULL , [INVENT_FIN_PROD_TERM_COSTOS] [money] NULL , [COSTOS_ARTIC_VEND_COSTOS] [money] NULL , [INVENT_INIC_PROD_COSTOS] [money] NULL , [COMPRAS_NETAS_PROD_COSTOS] [money] NULL , [INVENT_FIN_PROD_COSTOS] [money] NULL , [TOTAL_COSTOS_V_COSTOS] [money] NULL , [SUELDOS_COSTOS] [money] NULL , [HONORARIOS_COSTOS] [money] NULL , [VIATICOS_COSTOS] [money] NULL , [COSUMOS_BASIC_COSTOS] [money] NULL , [COMBUSTIBLE_COSTOS] [money] NULL , [FLETES_MOV_COSTOS] [money] NULL , [SEGUROS_COSTOS] [money] NULL , [COMISIONES_COSTOS] [money] NULL , [OTROS_COSTOS] [money] NULL , [TOTAL_GASTOS_ADMIN_V_COSTOS] [money] NULL , [TOTAL_COSTOS_GASTOS_COSTOS] [money] NULL ) ON [PRIMARY] 176 GO CREATE TABLE [dbo].[EMPRESA X ESTADOS RESULTADOS] ( [ID_EST_RES] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_EST_RES] [smallint] NOT NULL , [TRIMESTRE_EST_RES] [smallint] NOT NULL , [INGRESO_EXPLOTACION_EST_RES] [money] NULL , [COSTO_EXPLOTACION_EST_RES] [money] NULL , [MARGEN_EXPLOTACION_EST_RES] [money] NULL , [GASTOS_ADMIN_EST_RES] [money] NULL , [RESULT_OP_EST_RES] [money] NULL , [INGRESOS_FINAN_EST_RES] [money] NULL , [OTROS_INGRESOS_EST_RES] [money] NULL , [GASTOS_FINAN_EST_RES] [money] NULL , [OTROS_EGRESOS_EST_RES] [money] NULL , [CORRECCION_MON_EST_RES] [money] NULL , [RES_NO_OP_V] [money] NULL , [IMPUESTO_RENTA_EST_RES] [money] NULL , [IMPUESTO_EST_RES] [money] NULL , [UTILIDAD_PERDIDA_EJER_EST_RES] [money] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X INGRESOS] ( [ID_ING] [numeric](18, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , 177 [AÑO_ING] [smallint] NOT NULL , [TRIMESTRE_ING] [smallint] NOT NULL , [CANTIDAD_VEND_ING] [numeric](18, 0) NOT NULL , [ID_UM] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [PU_ING] [int] NOT NULL , [VALOR_PROD_ING] [money] NOT NULL , [ID_DESTINO_PRODUCCION] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [PROD_SERV_ING] [char] (30) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X INVENTARIO X CONSTRUC_INFRAES] ( [ID_CONSTRUC] [numeric](10, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_CONSTRUC] [smallint] NOT NULL , [TIPO_CONSTRUC] [varchar] (30) COLLATE Modern_Spanish_CI_AS NOT NULL , [CAPACIDAD_CONSTRUC] [numeric](10, 0) NOT NULL , [MATERIAL_CONSTRUC] [varchar] (30) COLLATE Modern_Spanish_CI_AS NOT NULL , [EDAD_CONSTRUC] [smallint] NOT NULL , [VIDA_UTIL_CONSTRUC] [smallint] NOT NULL , [USO_CONSTRUC] [varchar] (30) COLLATE Modern_Spanish_CI_AS NULL , 178 [VALOR_REGISTRO_CONSTRUC] [numeric](10, 0) NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X INVENTARIO X MAQUINARIAS Y EQUIPOS] ( [ID_MAQ] [numeric](10, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_MAQ] [smallint] NOT NULL , [TIPO_MAQ] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [N_MAQ_MAQ] [varchar] (9) COLLATE Modern_Spanish_CI_AS NULL , [MARCA_MAQ] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [EDAD_MAQ] [numeric](10, 0) NULL , [VIDA_UTIL_MAQ] [numeric](10, 0) NULL , [ESTADO_MAQ] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [VALOR_REGISTRO_MAQ] [money] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X INVENTARIO X OTROS ACTIVOS] ( [ID_OTROS_ACT] [numeric](10, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_OTROS_ACT] [smallint] NOT NULL , 179 [TIPO_OTROS_ACT] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [N_OTROS_ACT] [numeric](10, 0) NULL , [MARCA_OTROS_ACT] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [EDAD_OTROS_ACT] [numeric](18, 0) NULL , [VIDA_UTIL_OTROS_ACT] [numeric](10, 0) NULL , [ESTADO_OTROS_ACT] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [VALOR_REG_OTROS_ACT] [money] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X INVENTARIO X TERRENOS] ( [ID_TER] [numeric](18, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_TER] [smallint] NOT NULL , [TIPO_TER] [varchar] (40) COLLATE Modern_Spanish_CI_AS NULL , [SUPERFICIE_TER] [numeric](10, 0) NULL , [USOS] [varchar] (40) COLLATE Modern_Spanish_CI_AS NULL , [VALOR_REG_TER] [money] NULL ) ON [PRIMARY] 180 GO CREATE TABLE [dbo].[EMPRESA X PROBLEMAS] ( [ID_PROB] [numeric](10, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_PROB] [smallint] NOT NULL , [ID_TIPO_PROB] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [DESCRIP_PROB] [varchar] (30) COLLATE Modern_Spanish_CI_AS NULL , [SOLUCION_PROB] [varchar] (80) COLLATE Modern_Spanish_CI_AS NULL , [ID_ESTADO_PROB] [char] (4) COLLATE Modern_Spanish_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESA X REPRESENTANTES] ( [RUT_REP] [numeric](10, 0) NOT NULL , [DIG_REP] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_REP] [varchar] (40) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] 181 GO CREATE TABLE [dbo].[EMPRESA X RRHH] ( [ID_RRHH] [numeric](18, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_RRHH] [smallint] NOT NULL , [N_PRE_RRHH] [int] NULL , [N_GER_RRHH] [int] NULL , [N_CON_RRHH] [int] NULL , [N_SEC_RRHH] [int] NULL , [N_ADM_RRHH] [int] NULL , [N_OBR_RRHH] [int] NULL , [N_TEC_RRHH] [int] NULL , [N_PRO_RRHH] [int] NULL , [N_OTROS_RRHH] [int] NULL , [C_PRE_RRHH] [money] NULL , [C_GER_RRHH] [money] NULL , [C_CON_RRHH] [money] NULL , [C_SEC_RRHH] [money] NULL , [C_ADM_RRHH] [money] NULL , [C_OBR_RRHH] [money] NULL , [C_TEC_RRHH] [money] NULL , [C_PRO_RRHH] [money] NULL , [C_OTROS_RRHH] [money] NULL ) ON [PRIMARY] 182 GO CREATE TABLE [dbo].[EMPRESA X SITUACION] ( [ID_SIT] [numeric](18, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_SIT] [smallint] NOT NULL , [TRIMESTRE_SIT] [smallint] NOT NULL , [EST_RES_SIT] [bit] NULL , [EST_RES_UN_SIT] [bit] NULL , [BALANCE_SIT] [bit] NULL , [BALANCE_UN_SIT] [bit] NULL , [PLANILLAS_SIT] [bit] NULL , [CONTRATOS_SIT] [bit] NULL , [COMPROBANTES_SIT] [bit] NULL , [DECLARACION_SIT] [bit] NULL , [IVA_SIT] [bit] NULL , [LIBRO_SIT] [bit] NULL , [REGISTRO_SOCIOS_SIT] [bit] NULL , [ESTATUTOS_SIT] [bit] NULL , [ORGANIGRAMA_SIT] [bit] NULL , [SISTEMA_INF_COSTOS_SIT] [bit] NULL , [INVENTARIO_SIT] [bit] NULL ) ON [PRIMARY] 183 GO CREATE TABLE [dbo].[EMPRESA X VENCIMIENTO X PCP] ( [ID_VENC_PCP] [numeric](18, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_PCP] [smallint] NOT NULL , [MES_PCP] [int] NOT NULL , [CRED_CP_INDAP_PCP] [money] NULL , [CRED_BANCOS_PCP] [money] NULL , [CRED_LP_PC_INDAP_PCP] [money] NULL , [CRED_LP_PC_BANCOS_PCP] [money] NULL , [DIVIDENDOS_PAGAR_PCP] [money] NULL , [OBLIGACIONES_PAGAR_PCP] [money] NULL , [CUENTAS_PAGAR_PCP] [money] NULL , [ACREEDORES_PCP] [money] NULL , [DOCUMENTOS_PAGAR_PCP] [money] NULL , [PROVISIONES_PCP] [money] NULL , [RETENCIONES_PCP] [money] NULL , [OTROS_PC_PCP] [money] NULL , [TOTAL_PASIV_CIRC_PCP] [money] NULL ) ON [PRIMARY] 184 GO CREATE TABLE [dbo].[EMPRESA X VENCIMIENTO X PLP] ( [ID_VENC_PLP] [numeric](18, 0) NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [AÑO_PLP] [smallint] NOT NULL , [AÑO_DESCRITO] [smallint] NOT NULL , [OBLIGACIONES_PLP] [money] NULL , [OBLIGACIONES_BANCOS_PLP] [money] NULL , [OBLIGACIONES_INSTITU_PLP] [money] NULL , [ACREEDORES_VARIOS_PLP] [money] NULL , [DOCUMENTOS_PAGAR_PLP] [money] NULL , [PROVISIONES_PLP] [money] NULL , [OTROS_PASIV_PLP] [money] NULL , [TOTAL_PLP_PLP] [money] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EMPRESAS] ( [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [DIGITO] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL , [AÑO] [varchar] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_EMPRESA] [varchar] (40) COLLATE Modern_Spanish_CI_AS NULL , 185 [RAZON_SOCIAL] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL , [FECHA_CONSTITUCION] [varchar] (8) COLLATE Modern_Spanish_CI_AS NULL , [FONO] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [FAX] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [ID_ADMINISTRADOR] [numeric](18, 0) NULL , [ID_REGION] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [ID_PROVINCIA] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [ID_COMUNA] [char] (5) COLLATE Modern_Spanish_CI_AS NULL , [ID_CIUDAD] [char] (5) COLLATE Modern_Spanish_CI_AS NULL , [CALLE] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [NUMERO] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [OFICINA] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [PISO] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [ID_AREA] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , 186 [ID_GRUPO] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [ID_OPERADOR] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [GIRO_COMERCIAL] [varchar] (80) COLLATE Modern_Spanish_CI_AS NULL , [FECHA_INICIO_ACTIVIDADES] [varchar] (8) COLLATE Modern_Spanish_CI_AS NULL , [N_SOCIOS] [numeric](18, 0) NULL , [N_MUJERES] [numeric](18, 0) NULL , [JOVENES] [numeric](18, 0) NULL , [N_ETNIA] [numeric](18, 0) NULL , [N_PROVEEDORES] [numeric](18, 0) NULL , [VECES_MOROCIDAD] [numeric](18, 0) NULL , [VECES_CONDONACIONES] [numeric](18, 0) NULL , [VECES_RENEGOCIACIONES] [numeric](18, 0) NULL , [ID_TIPO_CLASIFICACION] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [ID_USUARIO] [varchar] (10) COLLATE Modern_Spanish_CI_AS NULL , [R_CAPITAL_TRABAJO] [float] NULL , [R_RAZON_CORRIENTE] [float] NULL , [R_PRUEBA_ACIDA] [float] NULL , [R_LEVERAGE] [float] NULL , [R_LEVERAGE_MERCADO] [float] NULL , [R_SOLVENCIA] [float] NULL , 187 [R_RENTABILIDAD_BRUTA] [float] NULL , [R_RENTABILIDAD_OPERACIONAL] [float] NULL , [R_RENTABILIDAD_NETA] [float] NULL , [R_RAZON_OPERATIVA] [float] NULL , [R_RAZON_DEUDA] [float] NULL , [R_RAZON_DEPENDENCIA] [float] NULL , [R_ROTACION_ACTIVOS] [float] NULL , [R_RAZON_CALIDAD] [float] NULL , [R_COBERTURA_FINANCIERA] [float] NULL , [R_DEPENDENCIA_FINANCIERA] [float] NULL , [R_DEPENDENCIA_CP] [float] NULL , [R_DEPENDENCIA_LP] [float] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[GRUPOS] ( [ID_GRUPO] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [DESCRIPCION] [varchar] (40) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[OPERADORES] ( [ID_OPERADOR] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , 188 [NOMBRE_OPERADOR] [varchar] (40) COLLATE Modern_Spanish_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PARAMETROS] ( [AÑO] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [FECHA_CADUCA] [datetime] NULL , [CADUCA_MODO1] [datetime] NULL , [UF] [money] NULL , [IVA] [numeric](18, 0) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PROVINCIAS] ( [ID_PROVINCIA] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [ID_REGION] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_PROVINCIA] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] 189 GO CREATE TABLE [dbo].[REGIONES] ( [ID_REGION] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_REGION] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[REL_AREA_COMUNA] ( [ID_AREA] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [ID_COMUNA] [char] (5) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[REL_EMP_REP] ( [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [RUT_REP] [numeric](10, 0) NOT NULL ) ON [PRIMARY] 190 GO CREATE TABLE [dbo].[TIPOS DE ESTADOS] ( [ID_TIPO_ESTADO] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [DESCRIPCION] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TIPOS DE PROBLEMAS] ( [ID_TIPO_PROBLEMA] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [DESCRIP_TIPO_PROB] [varchar] (5020) COLLATE Modern_Spanish_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TIPOS_CLASIFICACION] ( [TIPO_CLASIFICACION] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [DESCRIP_TIPO_CLAS] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL ) ON [PRIMARY] 191 GO CREATE TABLE [dbo].[TIPOS_DE_USUARIOS] ( [ID_TIPO_USUARIO] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_TIPO_USUARIO] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TIPOS_UN] ( [ID_TIPO_UN] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [DESCRIP_TIPO_UN] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [ID_CLASE_UN] [char] (4) COLLATE Modern_Spanish_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[UN] ( [ID_UN] [numeric](10, 0) NOT NULL , [NOMBRE_UN] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [RUT_EMPRESA] [numeric](10, 0) NOT NULL , [ID_TIPO_UN] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL 192 ) ON [PRIMARY] GO CREATE TABLE [dbo].[UN X BALANCES] ( [ID_BALANCE_UN] [numeric](18, 0) NOT NULL , [AÑO_BAL] [smallint] NOT NULL , [ID_UN] [numeric](10, 0) NOT NULL , [DISPONIBLE_CAJA_BAL_UN] [money] NOT NULL , [DISPONIBLE_BANCOS_BAL_UN] [money] NOT NULL , [DEPOSITO_PLAZOS_BAL_UN] [money] NOT NULL , [VALORES_NEGOCIABLES_BAL_UN] [money] NOT NULL , [DEUDORES_VENTA_BAL_UN] [money] NOT NULL , [DOCUMENTOS_COBRAR_BAL_UN] [money] NOT NULL , [DEUDORES_VARIOS_BAL_UN] [money] NOT NULL , [EXISTENCIAS_BAL_UN] [money] NOT NULL , [IMPUESTOS_RECUPERAR_BAL_UN] [money] NOT NULL , [OTROS_ACTIVOS_CIRCULANTES_BAL_UN] [money] NOT NULL , [TOTAL_ACTIVO_CIRC_BAL_UN] [money] NOT NULL , [TERRENOS_BAL_UN] [money] NOT NULL , [CONSTRUCCIONES_INFRA_BAL_UN] [money] NOT NULL , [MAQUINARIAS_EQUIPOS_BAL_UN] [money] NOT NULL , [MUEBLES_BAL_UN] [money] NOT NULL , [VEHICULOS_BAL_UN] [money] NOT NULL , [ACCIONES_OTRAS_EMP_BAL_UN] [money] NOT NULL , [OTROS_ACTIVOS_FIJOS_BAL_UN] [money] NOT NULL , 193 [SUBTOTAL_BAL_UN] [money] NOT NULL , [DEPRECIACION_ACUM_BAL_UN] [money] NOT NULL , [TOTAL_ACTIVO_FIJO_NETO_BAL] [money] NOT NULL , [INVERSIONES_EMP_REL_BAL_UN] [money] NOT NULL , [INVERSIONES_OTRAS_SOC_BAL_UN] [money] NOT NULL , [DEUDORES_LP_BAL_UN] [money] NOT NULL , [OTROS_ACTIVOS_BAL_UN] [money] NOT NULL , [TOTAL_OTROS_ACT_BAL_UN] [money] NOT NULL , [TOTAL_ACTIV_BAL_UN] [money] NOT NULL , [CRED_CP_INDAP_BAL_UN] [money] NOT NULL , [CRED_CP_BANCOS_BAL_UN] [money] NOT NULL , [CRED_LP_INDAP_PC_BAL_UN] [money] NOT NULL , [CRED_LP_BANCOS_PC_BAL_UN] [money] NOT NULL , [DIVIDENDOS_PAGAR_BAL_UN] [money] NOT NULL , [OBLIGACIONES_INSTITU_BAL_UN] [money] NOT NULL , [CUENTAS_PAGAR_BAL_UN] [money] NOT NULL , [ACREEDORES_BAL_UN] [money] NOT NULL , [DOCUMENTOS_PAGAR_BAL_UN] [money] NOT NULL , [IMPUESTOS_PAGAR_BAL_UN] [money] NOT NULL , [PROVISIONES_BAL_UN] [money] NOT NULL , [RETENCIONES_BAL_UN] [money] NOT NULL , [OTROS_PASIVOS_CIRC_BAL_UN] [money] NOT NULL , [TOTAL_PC_BAL_UN] [money] NOT NULL , [OBLIGACIONES_INDAP_BAL] [money] NOT NULL , [OBLIGACIONES_BANCOS_BAL] [money] NOT NULL , 194 [OBLIGACIONES_INSTITU_PLP_BAL_UN] [money] NOT NULL , [ACREEDORES_PLP_BAL_UN] [money] NOT NULL , [DOCUMENTOS_PAGAR_PLP_BAL_UN] [money] NOT NULL , [PROVISIONES_PLP_BAL_UN] [money] NOT NULL , [OTROS_PLP_BAL_UN] [money] NOT NULL , [TOTAL_PLP_BAL_UN] [money] NOT NULL , [CAPITAL_PAGADO_BAL_UN] [money] NOT NULL , [REVALORACION_CP_BAL_UN] [money] NOT NULL , [OTRAS_RESERVAS_BAL_UN] [money] NOT NULL , [UTILIDADES_PERD_ACUM_BAL_UN] [money] NOT NULL , [UTILIDADES_PERD_EJER_BAL_UN] [money] NOT NULL , [RESERV_FUTUROS_DIV_BAL_UN] [money] NOT NULL , [DIVIDENDOS_PROV_BAL_UN] [money] NOT NULL , [OTROS_PASIV_BAL_UN] [money] NOT NULL , [TOTAL_PAT_BAL_UN] [money] NOT NULL , [TOTAL_PASIV_BAL_UN] [money] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[UN X COSTOS] ( [ID_COSTOS_UN] [numeric](18, 0) NOT NULL , [AÑO_COSTOS_UN] [smallint] NOT NULL , [ID_UN] [numeric](10, 0) NOT NULL , [TRIMESTRE] [smallint] NOT NULL , [INVENT_INIC_MP_COSTOS_UN] [money] NULL , 195 [COMPRAS_NETAS_MP_COSTOS_UN] [money] NULL , [INVENT_FIN_MP_COSTOS_UN] [money] NULL , [TOTAL_SAL_MP_COSTOS_UN] [money] NULL , [MANO_OBRA_DIREC_COSTOS_UN] [money] NULL , [COSTOS_INDIREC_COSTOS_UN] [money] NULL , [TOTAL_COSTOS_PROD_COSTOS_UN] [money] NULL , [INVENT_INIC_PROD_TERM_COSTOS_UN] [money] NULL , [INVENT_FIN_PROD_TERM_COSTOS_UN] [money] NULL , [COSTOS_ARTIC_VEND_COSTOS_UN] [money] NULL , [INVENT_INIC_PROD_COSTOS_UN] [money] NULL , [COMPRAS_NETAS_PROD_COSTOS_UN] [money] NULL , [INVENT_FIN_PROD_COSTOS_UN] [money] NULL , [SUELDOS_COSTOS_UN] [money] NULL , [HONORARIOS_COSTOS_UN] [money] NULL , [VIATICOS_COSTOS_UN] [money] NULL , [CONSUMOS_BASIC_COSTOS_UN] [money] NULL , [COMBUSTIBLE_COSTOS_UN] [money] NULL , [FLETES_MOV_COSTOS_UN] [money] NULL , [SEGUROS_COSTOS_UN] [money] NULL , [COMISIONES_COSTOS_UN] [money] NULL , [OTROS_COSTOS_UN] [money] NULL , [TOTAL_GASTOS_ADMIN_V_COSTOS_UN] [money] NULL , [TOTAL_COSTOS_GASTOS_COSTOS_UN] [money] NULL ) ON [PRIMARY] 196 GO CREATE TABLE [dbo].[UN X ESTADOS DE RESULTADOS] ( [ID_EST_RES_UN] [numeric](10, 0) NOT NULL , [AÑO_EST_RES_UN] [smallint] NOT NULL , [ID_UN] [numeric](10, 0) NOT NULL , [TRIMESTREEST_RES_UN] [smallint] NOT NULL , [INGRESOS_EXPLOTACIONEST_RES_UN] [money] NULL , [COSTO_EXPLOTACION_EST_RES_UN] [money] NULL , [MARGEN_EXPLOTACIONEST_RES_UN] [money] NULL , [GASTOS_ADMIN_EST_RES_UN] [money] NULL , [RESULT_OP_EST_RES_UN] [money] NULL , [INGRESOS_FINAN_EST_RES_UN] [money] NULL , [OTROS_INGRESOS_EST_RES_UN] [money] NULL , [GASTOS_FINAN_EST_RES_UN] [money] NULL , [OTROS_EGRESOS_EST_RES_UN] [money] NULL , [CORRECCION_MON_EST_RES_UN] [money] NULL , [RES_NO_OP_EST_RES_UN] [money] NULL , [IMPUESTO_RENTA_EST_RES_UN] [money] NULL , [IMPUESTO_EST_RES_UN] [money] NULL , [UTILIDAD_PERDIDA_EJER_V] [money] NULL ) ON [PRIMARY] 197 GO CREATE TABLE [dbo].[UN X INGRESOS] ( [ID_ING_UN] [numeric](18, 0) NOT NULL , [ID_UN] [numeric](10, 0) NOT NULL , [AÑO_ING_UN] [smallint] NOT NULL , [TRIMESTRE_ING_UN] [smallint] NOT NULL , [CANTIDAD_VEND_ING_UN] [int] NOT NULL , [ID_UM] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [PU_ING_UN] [money] NOT NULL , [VALOR_PROD_ING_UN] [money] NOT NULL , [ID_DESTINO_PRODUCCION] [char] (4) COLLATE Modern_Spanish_CI_AS NULL , [PROD_SERV_ING_UN] [char] (30) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[UNIDADES DE MEDIDA] ( [ID_UM] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL , [NOMBRE_UM] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] 198 GO CREATE TABLE [dbo].[USUARIOS] ( [USERNAME] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [P_NOM_USU] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [S_NOM_USU] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [AP_PAT_USU] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [AP_MAT_USU] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [PASSWORD] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [OTROS] [varchar] (20) COLLATE Modern_Spanish_CI_AS NULL , [ID_TIPO_USU] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO 199 6.2.4.1.1 En Procedimientos almacenados esta sección se muestran algunos de los procedimientos almacenados implementados en la Base de Datos Procedimientos de SELECCIÓN: /* --- Busca las empresas y las devuelve como lista --- */ CREATE PROCEDURE Busca_empresas AS SELECT * FROM empresas /* --- Busca una empresa específica --- */ CREATE PROCEDURE Busca_empresa @rut numeric(9) AS SELECT * FROM empresas WHERE rut_empresa=@rut /* --- Busca los Balances de una empresa específica ---*/ CREATE PROCEDURE Busca_balance_empresa @rut numeric(9) AS SELECT * FROM [empresas x balances] WHERE rut_empresa=@rut 200 /* --- Busca las UN de una empresa específica ---*/ CREATE PROCEDURE Busca_UNs_empresa @rut numeric(9) AS SELECT * FROM UN WHERE rut_empresa=@rut /* --- Busca todos los ingresos de una empresa específica y de cierto año---*/ CREATE PROCEDURE Busca_ING_FECHA_empresa @rut numeric(9), @año numeric(4) AS SELECT * FROM [empresa x ingresos] WHERE rut_empresa=@rut AND año_ing=@año /*--- Genera un listado de todos los problemas de una empresa específica, de cierto año y la ordena por tipo de Problema---*/ CREATE PROCEDURE Lista_ordenada_PROB_empresa @rut numeric(9), @año numeric(4) AS SELECT * FROM [empresa x problemas] WHERE rut_empresa=@rut AND año_prob=@año ORDER BY id_tipo_prob 201 Procedimientos de ELIMINACION /* --- Eliminación de una empresa ---*/ CREATE PROCEDURE Elimina_empresa @rut numeric(9) AS DELETE FROM empresas WHERE rut_empresa=@rut /* --- Eliminación de todas las UN de una empresa ---*/ CREATE PROCEDURE Elimina_Uns_empresa @rut numeric(9) AS DELETE FROM UN WHERE rut_empresa=@rut /* --- Eliminación de todos los Balances de una UN específica de cierto año ---*/ CREATE PROCEDURE Elimina_balances_UN_FECHA @u numeric(9), @año numeric(4) AS DELETE FROM [un x balances] WHERE id_un=@u AND año_bal_un=@año /* --- Eliminación de una UM ---*/ CREATE PROCEDURE Elimina_UM @u char(4) AS DELETE FROM [unidades de medida] WHERE id_um=@u /* --- Eliminación de los Costos de una empresa específica cuyo valor total es cero (sin valores) ---*/ CREATE PROCEDURE Elimina_coostos_empresa @rut numeric(9) AS DELETE FROM [empresa x costos] WHERE rut_empresa=@rut AND total_costos_gastos_costos=0 202 Procedimientos de ACTUALIZACION /*--- Actualización de todos los datos de un GRUPO---*/ CREATE PROCEDURE Actualiza_grupo @id char(4), @de varchar(40) AS UPDATE grupos SET id_grupo=@id, descripcion=@de /*--- Actualiza a Nulo todas las empresas que referencian a un operador ---*/ CREATE PROCEDURE Actualiza_nulo_operador AS UPDATE empresas SET id_operador=null /*--- Actualiza un operador por otro de todas las empresas ---*/ CREATE PROCEDURE Actualiza_operador_empresas @id1 char(4), @id2 char(4) AS UPDATE empresas SET id_operador=@id2 WHERE id_operador=@id1 /*--- Actualiza la clasificación sintética de una empresa ---*/ CREATE PROCEDURE Actualiza_clasificacion_empresa @rut numeric(9), @cla char(4) AS UPDATE empresas SET id_tipo_clasificacion=@cla WHERE rut_empresa=@rut 203 /*--- Actualiza el Precio Unitario de un producto o servicio del ingreso de una UN---*/ CREATE PROCEDURE Actualiza_PU_UN @u numeric(9), @pu numeric(9) AS UPDATE [un x ingresos] SET pu_ing_un=@pu WHERE id_un=@u Procedimientos de INSERCION /*--- Ingreso de un nuevo representante---*/ CREATE PROCEDURE Ingresa_representante @rut numeric(9), dig char(1), @nom varchar(40) AS INSERT INTO [empresa x representantes] (rut_rep, dig_rep, nombre_rep) VALUES (@rut, @dig, @nom) /*--- Ingreso de un Nuevo usuario --- */ CREATE PROCEDURE Ingresa_usuario @user varchar(10), @pnom varchar(10), @snom varchar(10), @apat varchar(10), @amat varchar(10), @pass varchar(10), @otros varchar(20), @id_tipo char(4) AS INSERT INTO usuarios (username, p_nom_usu, s_nom_usu, ap_pat_usu, ap_mat_usu, password, otros, id_tipo_usu) VALUES (@user, @pnom, @snom, @apat, @amat, @pass, @otros, @id_tipo) 204 6.2.4.1.2 Triggers o desencadenadores En esta sección se muestran algunos de los triggers implementados o utilizados en la Base de Datos Ejemplo 1 Objetivo: Demostrar como se utilizan procedimientos almacenados disponibles del SQL Server. Crear un plan de mantenimiento de la Base de Datos. Sintaxis: sp_add_maintenance_plan [ @plan_name = ] 'plan_name' , @plan_id = 'plan_id' OUTPUT Argumentos [@plan_name =] 'plan_name' Especifica el nombre del plan de mantenimiento que va a agregarse. plan_name es de tipo varchar(128). @plan_id = 'plan_id' Especifica el Id. del plan de mantenimiento. plan_id es de tipo uniqueidentifier. Valores del código de retorno 0 (correcto) o 1 (error) 205 Declaración para utilizarlo. DECLARE @myplan_id UNIQUEIDENTIFIER EXECUTE sp_add_maintenance_plan N'Myplan',@plan_id=@myplan_id OUTPUT PRINT 'The id for the maintenance plan "Myplan" is:'+convert(varchar(256),@myplan_id) GO Nota: La Base de Datos a planificar en el ejemplo se llama “Myplan”. Si el plan de mantenimiento se crea con éxito, se devolverá el Id. del plan. 'The id for the maintenance plan "Myplan" is:' FAD6F2AB-3571-11D3-9D4A-00C04FB925FC Ejemplo 2 Objetivo: Demostrar como se utilizan procedimientos almacenados en la Base de Datos cuando se activan por un tipo de acceso a la tabla o relación que lo contiene. Tipo de Acceso: ELIMINACION CREATE TRIGGER Eliminación_tipo_problema ON [tipos de problemas] FOR DELETE AS Begin /*--- Se borrarán los hijos de la Tabla Problemas EAC---*/ DELETE [empresa x problemas] FROM [empresa x problemas], deleted WHERE id_tipo_prob = id_tipo_problema Return End 206 6.2.4.1.3 Imágenes de la Base de Datos. Diagrama de la Base de Datos en SQL Server 2000 207 208 6.2.4.2 Implementación del Sitio Web Objetivo: Desarrollar la implantación del Servidor Web, configurarlo, subir el sitio Web y dejarlo accesible desde para la Intranet. Para ello es necesario desarrollar el código de las páginas ASP que soportan el sistema. 6.2.4.2.1 Código de páginas del Sitio Web Nota: Debido a la utilización de Controles en tiempo de diseño del Visual Interdev, el código de las páginas es muy extenso y por eso solo se documentan secciones de las páginas. Ejemplos de páginas ASP Página de envio de Datos del Usuario a página de validación html> <head> <meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <title></title> <LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/technolo/THEME.CSS" VI6.0THEME="Tecnología"> <LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/technolo/GRAPH0.CSS" VI6.0THEME="Tecnología"> <LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/technolo/COLOR0.CSS" VI6.0THEME="Tecnología"> <LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/technolo/CUSTOM.CSS" VI6.0THEME="Tecnología"></head> <body> 209 <p align="center"><font color="yellow" size="5" style="BACKGROUND-COLOR: black"><strong>&nbsp;SISTEMA DE ANALISIS FINANCIERO INDAP-EAC </strong></font></p> <p align="center"><font color="black" style="BACKGROUND-COLOR: #778899"><strong>&nbsp;VALIDACION DE USUARIO </strong></font></p> <p> <form action="./Paginas_especiales/val.asp" method="post" id="form1" name="form1"> <p align="center"> </p> <p align="center"> Nombre de Usuario&nbsp; <input name="txtuser"> </p> <p align="center">Clave de Acceso&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<input id="password1" name="pass" type="password"> </p> <p align="center"><input id="submit1" name="submit1" type="submit" value="INGRESAR"></p> </form> </body> </html> Página de validación de usuarios: <%@ Language=VBScript %> <% dim us dim pa us=Request.Form("txtuser") pa=Request.Form("pass") '--------------------------------'----- comprobacion de clave ----'--------------------------------dim rs dim VALIDADO dim pagina set rs=server.createobject("adodb.recordset") connectme="DSN=BBDD_SAF_EAC;USER=Admin;Password=ARCANO" CADENA="SELECT USUARIOS.* FROM USUARIOS" ' WHERE (USERNAME="&us&") AND (PASSWORD="&pa&")" sqlstmt=CADENA rs.open sqlstmt,connectme VALIDADO=FALSE if rs.eof then Response.Write "<center>" Response.Write "USTED NO ESTA AUTORIZADO PARA INGRESAR!!!!" Response.end else do while not rs.eof 210 IF us=rs("USERNAME")and pa=rs("PASSWORD") then validado=true NIVEL=RS("ID_NIVEL") Session("VALIDA")=true Session("LEVEL")=NIVEL Session("USER")=us SESSION("ID_US")=RS("ID_USUARIO") 'exit end if rs.movenext loop end if if validado then select case NIVEL case 1 Response.Redirect "./nivel1.asp" case 3 Response.redirect "./nivel3.asp" case 4 Response.Redirect "./nivel4.asp" case 5 Response.Redirect "./nivel5.asp" end select else Response.Write "USTED NO ESTA AUTORIZADO!!!" Response.end end if %> <html> <head> <meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <LINK REL="stylesheet" TYPE="text/css" HREF="../_Themes/technolo/THEME.CSS" VI6.0THEME="Tecnología"> <LINK REL="stylesheet" TYPE="text/css" HREF="../_Themes/technolo/GRAPH0.CSS" VI6.0THEME="Tecnología"> <LINK REL="stylesheet" TYPE="text/css" HREF="../_Themes/technolo/COLOR0.CSS" VI6.0THEME="Tecnología"> <LINK REL="stylesheet" TYPE="text/css" HREF="../_Themes/technolo/CUSTOM.CSS" VI6.0THEME="Tecnología"></head> <p>&nbsp;</p> <body> </body> </html> 211 Sección de la Página Gestión empresas <%@ Language=VBScript %> <% ' Modelo de objetos de secuencia de comandos de VI 6.0 habilitado %> <!--#include file="../_ScriptLibrary/pm.asp"--> <% if StartPageProcessing() Then Response.End() %> <FORM name=thisForm METHOD=post> <% if session("VALIDA")="" then Response.Redirect "./ERROR.htm" end if %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <P> <!--METADATA TYPE="DesignerControl" startspan <OBJECT classid="clsid:B6FC3A14-F837-11D0-9CC8-006008058731" id=BrowseBtn style="LEFT: 0px; TOP: 0px"> <PARAM NAME="_ExtentX" VALUE="4286"> <PARAM NAME="_ExtentY" VALUE="714"> <PARAM NAME="id" VALUE="BrowseBtn"> <PARAM NAME="Caption" VALUE="Modo de exploración"> <PARAM NAME="Image" VALUE=""> <PARAM NAME="AltText" VALUE=""> <PARAM NAME="Visible" VALUE="-1"> <PARAM NAME="Platform" VALUE="256"> <PARAM NAME="LocalPath" VALUE="../"> <!--DTCRUNTIME ?!--#INCLUDE FILE="../_ScriptLibrary/Button.ASP"--?<SCRIPT LANGUAGE=JavaScript RUNAT=Server> function _initBrowseBtn(){ BrowseBtn.value = 'Modo de exploración'; BrowseBtn.setStyle(0);}function _BrowseBtn_ctor(){ CreateButton('BrowseBtn', _initBrowseBtn, null);}</script><% BrowseBtn.display %> DTCRUNTIME--> </OBJECT> --> <!--#INCLUDE FILE="../_ScriptLibrary/Button.ASP"--> <SCRIPT LANGUAGE=JavaScript RUNAT=Server> function _initBrowseBtn() { BrowseBtn.value = 'Modo de exploración'; BrowseBtn.setStyle(0); } function _BrowseBtn_ctor() { 212 CreateButton('BrowseBtn', _initBrowseBtn, null); } </script> <% BrowseBtn.display %> <!--METADATA TYPE="DesignerControl" endspan--> <!--METADATA TYPE="DesignerControl" startspan <OBJECT classid="clsid:B6FC3A14-F837-11D0-9CC8-006008058731" id=EditBtn style="LEFT: 0px; TOP: 0px"> <PARAM NAME="_ExtentX" VALUE="3493"> <PARAM NAME="_ExtentY" VALUE="714"> <PARAM NAME="id" VALUE="EditBtn"> <PARAM NAME="Caption" VALUE="Modo de edición"> <PARAM NAME="Image" VALUE=""> <PARAM NAME="AltText" VALUE=""> <PARAM NAME="Visible" VALUE="-1"> <PARAM NAME="Platform" VALUE="256"> <PARAM NAME="LocalPath" VALUE="../"> <!--DTCRUNTIME <SCRIPT LANGUAGE=JavaScript RUNAT=Server>function _initEditBtn(){ EditBtn.value = 'Modo de edición'; EditBtn.setStyle(0);}function _EditBtn_ctor(){ CreateButton('EditBtn', _initEditBtn, null);}</script><% EditBtn.display %> DTCRUNTIME--> </OBJECT> --> <SCRIPT LANGUAGE=JavaScript RUNAT=Server> function _initEditBtn() { EditBtn.value = 'Modo de edición'; EditBtn.setStyle(0); } function _EditBtn_ctor() { CreateButton('EditBtn', _initEditBtn, null); } </script> <% EditBtn.display %> <!--METADATA TYPE="DesignerControl" endspan--> <br><br> <!--METADATA TYPE="DesignerControl" startspan <OBJECT classid="clsid:B6FC3A14-F837-11D0-9CC8-006008058731" id=InsertBtn style="LEFT: 0px; TOP: 0px"> <PARAM NAME="_ExtentX" VALUE="1799"> <PARAM NAME="_ExtentY" VALUE="714"> <PARAM NAME="id" VALUE="InsertBtn"> <PARAM NAME="Caption" VALUE="Insertar"> <PARAM NAME="Image" VALUE=""> <PARAM NAME="AltText" VALUE=""> <PARAM NAME="Visible" VALUE="-1"> 213 <PARAM NAME="Platform" VALUE="256"> <PARAM NAME="LocalPath" VALUE="../"> <!--DTCRUNTIME <SCRIPT LANGUAGE=JavaScript RUNAT=Server>function _initInsertBtn(){ InsertBtn.value = 'Insertar'; InsertBtn.setStyle(0);}function _InsertBtn_ctor(){ CreateButton('InsertBtn', _initInsertBtn, null);}</script><% InsertBtn.display %> DTCRUNTIME--> </OBJECT> --> <SCRIPT LANGUAGE=JavaScript RUNAT=Server> function _initInsertBtn() { InsertBtn.value = 'Insertar'; InsertBtn.setStyle(0); } function _InsertBtn_ctor() { CreateButton('InsertBtn', _initInsertBtn, null); } </script> <% InsertBtn.display %> <!--METADATA TYPE="DesignerControl" endspan--> <!--METADATA TYPE="DesignerControl" startspan <OBJECT classid="clsid:B6FC3A14-F837-11D0-9CC8-006008058731" id=DeleteBtn style="LEFT: 0px; TOP: 0px"> <PARAM NAME="_ExtentX" VALUE="1905"> <PARAM NAME="_ExtentY" VALUE="714"> <PARAM NAME="id" VALUE="DeleteBtn"> <PARAM NAME="Caption" VALUE="Eliminar"> <PARAM NAME="Image" VALUE=""> <PARAM NAME="AltText" VALUE=""> <PARAM NAME="Visible" VALUE="-1"> <PARAM NAME="Platform" VALUE="256"> <PARAM NAME="LocalPath" VALUE="../"> <!--DTCRUNTIME <SCRIPT LANGUAGE=JavaScript RUNAT=Server>function _initDeleteBtn(){ DeleteBtn.value = 'Eliminar'; DeleteBtn.setStyle(0);}function _DeleteBtn_ctor(){ CreateButton('DeleteBtn', _initDeleteBtn, null);}</script><% DeleteBtn.display %> DTCRUNTIME--> </OBJECT> --> <SCRIPT LANGUAGE=JavaScript RUNAT=Server> function _initDeleteBtn() { DeleteBtn.value = 'Eliminar'; DeleteBtn.setStyle(0); } function _DeleteBtn_ctor() 214 { CreateButton('DeleteBtn', _initDeleteBtn, null); } </script> <% DeleteBtn.display %> <!--METADATA TYPE="DesignerControl" endspan--> <!--METADATA TYPE="DesignerControl" startspan <OBJECT classid="clsid:B6FC3A14-F837-11D0-9CC8-006008058731" id=UpdateBtn style="LEFT: 0px; TOP: 0px"> <PARAM NAME="_ExtentX" VALUE="2223"> <PARAM NAME="_ExtentY" VALUE="714"> <PARAM NAME="id" VALUE="UpdateBtn"> <PARAM NAME="Caption" VALUE="Actualizar"> <PARAM NAME="Image" VALUE=""> <PARAM NAME="AltText" VALUE=""> <PARAM NAME="Visible" VALUE="-1"> <PARAM NAME="Platform" VALUE="256"> <PARAM NAME="LocalPath" VALUE="../"> <!--DTCRUNTIME <SCRIPT LANGUAGE=JavaScript RUNAT=Server>function _initUpdateBtn(){ UpdateBtn.value = 'Actualizar'; UpdateBtn.setStyle(0);} function _UpdateBtn_ctor(){ CreateButton('UpdateBtn', _initUpdateBtn, null);} </script><% UpdateBtn.display %> DTCRUNTIME--> </OBJECT> --> <SCRIPT LANGUAGE=JavaScript RUNAT=Server> function _initUpdateBtn() { UpdateBtn.value = 'Actualizar'; UpdateBtn.setStyle(0); } function _UpdateBtn_ctor() { CreateButton('UpdateBtn', _initUpdateBtn, null); } </script> <% UpdateBtn.display %> <!--METADATA TYPE="DesignerControl" endspan--> <!--METADATA TYPE="DesignerControl" startspan <OBJECT classid="clsid:B6FC3A14-F837-11D0-9CC8-006008058731" id=CancelBtn style="LEFT: 0px; TOP: 0px"> <PARAM NAME="_ExtentX" VALUE="2064"> <PARAM NAME="_ExtentY" VALUE="714"> <PARAM NAME="id" VALUE="CancelBtn"> <PARAM NAME="Caption" VALUE="Cancelar"> <PARAM NAME="Image" VALUE=""> <PARAM NAME="AltText" VALUE=""> <PARAM NAME="Visible" VALUE="-1"> 215 <PARAM NAME="Platform" VALUE="256"> <PARAM NAME="LocalPath" VALUE="../"> <!--DTCRUNTIME <SCRIPT LANGUAGE=JavaScript RUNAT=Server>function _initCancelBtn(){ CancelBtn.value = 'Cancelar'; CancelBtn.setStyle(0);}function _CancelBtn_ctor(){ CreateButton('CancelBtn', _initCancelBtn, null);}</script><% CancelBtn.display %> DTCRUNTIME--> </OBJECT> --> <SCRIPT LANGUAGE=JavaScript RUNAT=Server> function _initCancelBtn() { CancelBtn.value = 'Cancelar'; CancelBtn.setStyle(0); } function _CancelBtn_ctor() { CreateButton('CancelBtn', _initCancelBtn, null); } </script> <% CancelBtn.display %> 216 6.2.4.2.2 Imágenes del Sitio Web Página default.htm 217 Ejemplos visuales delos controles en tiempo de diseño utilizados para el sistema Pagina gestion_empresas.asp 218 219 6.2.4.2.3 Referencias del desarrollo del Sitio Web Ejemplos de Código utilizados en el Sitio Web. o Para destruir todas las variables de una sesión: SESSION.ABANDON. o Para dar Formato especial al HTML: SERVER.HTMLEncode(“........”) o Para incluir un archivo: <!-- #incluye file=”...............” --> El archivo por ejemplo puede ser el código que restringue el acceso directo a las páginas del Sitio Web: <% if session("VALIDA")="" then Response.Redirect "./ERROR.htm" end if %> o Es importante saber que el VBScript no diferencia las mayúsculas y el JSCript sí. o Existen varias formas de traspasar datos entre páginas. Por variables de Aplicación, variables de Session, Cookies y la recomendada con tablas de parámetros. 220 6.2.4 ETAPA VI 6.2.4.1 Descripción del desarrollo Resumen de Desarrollo de programas para obtener la solución final: 1. Desarrollo de Programa “Intercambia en Excel”. 2. Desarrollo de Programa “Intercambia en Visual Basic” 3. Desarrollo de Prototipo en Access. 4. Desarrollo de Diccionario de Datos en Access. 1. Programa “Intercambia en Excel” a. Objetivos: i. Lograr obtener información de los datos reales. 1. Volumen de Datos diario, mensual y anual. 2. Tipos de Datos, valores mínimos, máximos, dominio, valores predeterminados, valores nulos, etc. 3. Posibles errores que detectar, prevenir, etc. 4. Redundancia, omisiones, etc. ii. Convertir los datos de años anteriores al nuevo formato: 1. Organizar los datos distribuidos en diferentes hojas de las planillas Excel a una Base de Datos ordenada en forma de tablas exportables a Access. 221 2. Programa “Intercambia en Visual Basic” Dada la menor capacidad para desarrollo de programas del Visual Basic para aplicaciones, que viene integrado con el Office, se debió desarrollar el programa de Intercambio de Datos en Visual Basic 6.0. b. Objetivos: los mismos que el anterior, adicionando los de mejorar la velocidad de ejecución y simpleza de utilización. 3. Prototipo en Access: c. Objetivos: i. Mostrar a los usuarios la forma de manejo de la información y los datos que soporta la solución propuesta. ii. Servir de base para el desarrollo de la aplicación final por ayudar a detectar errores, omisiones de información, etc. iii. Acelerar el proceso de interacción de los usuarios con el sistema al ser más rápido el desarrollo del prototipo en Access que en SQL Server más visual InterDev. 4. Desarrollo de diccionario de datos en Access d. Objetivos: i. Servir de Registro de modificaciones en el diseño de la Base de Datos. ii. Estandarizar el desarrollo de este sistema y posteriores. 222 6.2.4.2 Imágenes del desarrollo en otras aplicaciones 6.2.4.2.1 Imagen del programa en Excel 223 6.2.4.2.2 Imagen del programa en Visual Basic 224 6.2.4.2.3 Imagenes del prototipo en Access 225 226 6.2.4.2.4 Imagen del Diccionario de Datos en Access 227 7. Conclusiones El realizar un control exhaustivo y efectivo en cada etapa de un proyecto es imperativo para lograr un desarrollo satisfactorio. El mayor problema para cumplir con las diversas etapas es la falta de experiencia. El determinar los plazos adecuados es importante para mantener la continuidad del desarrollo. El buen trato social es muy importante para lograr la confianza de los usuarios. Los cuales retribuyen entregando de mejor forma la información necesaria para cumplir con sus requerimientos. No siempre lo que el desarrollador determine es lo mejor para los usuarios, es decir, se deben integrar todas las visiones en el sistema. El tiempo invertido en el estudio de las herramientas de desarrollo se recupera en la implementación del sistema. 228 El reciclar código, encapsularlo y reutilizarlo son una buena medida para agilizar la programación del sistema. El diseñar en conjunto ayudan en gran medida a entender de la misma forma el problema y la forma de solucionarlo. No se debe intentar solucionar “todo” con un solo sistema. Muchas veces se intenta abarcar aspectos que están fuera del sistema y muy alejado de lo práctico. La tecnología es una herramienta y no un fin. Es muy importante ser eficiente en seleccionar las tecnologías que se utilizarán y no intentar abarcar todas ellas, porque no siempre son compatibles. Nunca podemos estar tranquilos en el desarrollo de un proyecto, por Ejemplo: Tres días después que el sistema se implantó se infectó el servidor de Base de Datos SQL Server 2000 con el virus “Slammer”, el cuál había aparecido un día antés de la infección. Por lo que se recomienda respaldar las Bases de Datos en forma diaria y mantener un nivel de seguridad alto con respecto al Internet. 229 8. Bibliografía [Byrne2000] Byrne, Jeffry. Creación de sitios Web con SQL Server 7. Prentice Hall. 2000. [Connolly1988] Connolly, Thomas y Begg Carolyn. Database Systems. Addison-Wesley, 2ª Edición.1988. [Echeñique1990] Echeñique, Antonio. Auditoría en Informática. McGraw-Hill.1990 [JupiterMedia2003]JupiterMedia Corporation. Webopedia. Disponible en: http://www.wepopedia.com 2003. [Lucas1984] Lucas, Henry. Sistemas de Información. McGraw-Hill.1984. [Maso1997] Maso, Brian. Manual de Visual InterDev. McGraw-Hill. Primera edición 1997. 230 [Perez1988] Pérez, Victor y Pino, José. Etapas en el desarrollo de un Sistema de Información Administrativo. Editorial Universitaria. 1988. [Rufo2002] Rufo, Pedro. ASPTutor. Disponible en: http://www.asptutor.com/ 2002. [Tramullas2000] Tramullas, Jesús y Kronos. Introducción a la Documática. Disponible en: http://www.tramullas.com/nautica/documatica/indice.html 2000. 231 9. ANEXOS En esta sección se presentan temas relacionados con el proyecto. 9.1 ANEXO A : Referencias para Reuniones, cuestionarios y entrevistas. 9.1.1 Reuniones, cuestionarios y entrevistas efectivas Abstracción de lo necesario para realizar reuniones, cuestionarios y entrevistas de buena forma. Para realizar una reunión efectiva se debe: o Definir el objetivo de su reunión o Determinar la duración o Invitar a las personas adecuadas o Establecer las expectativas con los participantes o Desarrollar una agenda o Avisar por adelantado o Utilizar un formulario de preparación de reuniones Se debe determinar el tipo de reunión. o Reunión informativa o Reunión para solucionar problemas o Otros tipos de reuniones 232 Se deben tomar las mejores decisiones: • Una decisión en CONSENSO es una decisión en la que el grupo discute el tema y finalmente llega a una solución que todos pueden apoyar • Una decisión RÁPIDA es una decisión en la que alguien toma la decisión por el grupo. • Una decisión de EXPERTO es tomada por alguien que tiene información especializada • Una decisión BASADA EN CRITERIOS se toma desarrollando criterios esenciales e identificando. 233 9.1.2 Formulario de preparación de una reunión Establecer el objetivo de la reunión. Responda a las siguientes preguntas: 1.- ¿Cuál es la razón de reunir a estas personas? 2.¿Cuáles son los resultados necesarios para proporcionarlos a la empresa? 3.- ¿Es la reunión la mejor manera de lograr estos objetivo? SI o No En caso negativo ¿Cómo obtendría estos resultados? a) Mensajes en un contestador telefónico b) Conferencia telefónica c) Mensaje electrónico d) Hablar con la persona directamente e) Almuerzo de trabajo f) Videoconferencia g) Memorándum h) Fax i) Sala de conferencias o mural de anuncios j) Otros. (especificar) 234 Invitar a las personas adecuadas 4.- ¿Quién debe asistir a la reunión? Uno se debe preguntar lo siguiente para seleccionar un participante. ¿Posee una información importante? ¿Es una persona que toma decisiones? ¿Es una persona que se vera afectada por las decisiones tomadas o las acciones llevadas a cabo? ¿Es una persona que debe llevar a cabo las decisiones tomadas o las acciones elegidas? Documentar: Nombre Departamento Conocimientos / Función 5.- ¿Cuales son los tópicos a tratar y los resultados que deben conseguirse? Tópico Resultado 235 6.- Establezca una hora para la reunión. 7.- Prepare la sala de conferencias. 8.- Notifique por adelantado. (personalmente, fecha máxima para notificación, etc) 236 9.1.3 Ejemplo de Reunión Ejemplo de Agenda para una Reunión: Objetivo: Conocer las recomendaciones del encargado de Informática para el desarrollo del sistema. Resultados: Establecer limitantes. Definir el ambiente del sistema. Determinar el software y hardware. Averiguar los recursos disponibles. Fecha de la Reunión: 26 de Marzo de 2001 Hora de la Reunión: 9:30 am Lugar de la Reunión Casino de Dirección Regional de INDAP. Puerto Montt Director de la Reunión: Gustavo Rossati 237 Participantes: Gustavo Rossati Carlos Cristi Steve Hernáez 238 9.1.4 Ejemplo de cuestionario RESUMEN DE MÉTODOS DE RECOLECCIÓN DE DATOS: OBSERVACIÓN DIRECTA, ENTREVISTAS Y CUESTIONARIOS LINEA BASE EMPRESAS ASOCIATIVAS CAMPESINAS CUESTIONARIO Objetivos: Carlos A. Cristi Vargas Determinar Apreciación del proyecto para el personal de INDAP. Recolectar información administrativa. Conocer mejor al personal y entablar confianza. Fomentar el apoyo al desarrollo al hacer que participen. Preguntas Iniciales: 1. Nombre del puesto que ocupa: de Gestión Jefe de la Unidad de Estudios y Control 2. Puesto del Jefe Inmediato: Región Director 3. Puestos a que reporta: Director, Jefe de Operaciones Regional INDAP Décima 4. Puestos que reportan al entrevistado: Unidades de Operaciones y Agencias de Areas 5. Describa brevemente las actividades de su puesto con relación al problema que debe ser solucionado: La Unidad de Estudios y Control de Gestión tiene por tarea tener una mirada critica frente al accionar institucional, evaluando el avance en las metas institucionales, programa de mejoramiento de la gestión y uso de los recursos. Al mismo tiempo observa y analiza la situación del entorno económico, social y expectativas de la situación silvoagropecuaria regional para reorientar la conducción de la institución. En este sentido, el INDAP ha privilegiado el trabajo con empresas asociativas campesinas, por lo que es del todo relevante conocer en forma sistematizada y oportuna, la situación económica, financiera, administrativa y organizacional de dichas empresas, a objeto de tomar decisiones institucionales. 239 Preguntas que determinan la visión de los usuarios 1. ¿Cómo definiría el problema que se intenta solucionar? Se observa, en general, una falta de capacidad de análisis financiero de las Empresas Asociativas Campesinas por parte de los funcionarios y asesores técnicos que desempeñan funciones en el INDAP. Lo que impide un adecuado y oportuno diagnóstico de las empresas. Además, esta incapacidad impide tomar decisiones oportunas que ayuden a prevenir situaciones de riesgo, o una adecuada evaluación de los instrumentos de colocación de créditos o renegociación de deudas y/o subsidios. 2. ¿Qué consideraciones generales y objetivos deberían tomarse en cuenta para el desarrollo del Sistema? La Línea Base de Empresas Asociativas Campesinas debe ser un sistema simple, formulado en consideración a las normas de análisis financiero de general aceptación, los productos del análisis deben llevar al usuario a determinar con toda claridad la viabilidad financiera de la empresa, al mismo tiempo el soporte técnico debe cumplir algunas características: multiusuario, disponibilidad en red, cálculo inmediato de las razones financieras, multiempresas, con restricciones para diferentes niveles de usuarios (dado que se maneja información de empresas privadas), posibilidad de guardar los informes en medios magnéticos, imprimir informes, consolidar información de varias empresas o de un conjunto de ellas entre otros. 3. ¿Qué políticas y planes futuros se tienen que tomar en cuenta? El relacionamiento del INDAP con las EAC tiene que estar basado en realidades organizacionales, de viabilidad técnica de los proyectos, de viabilidad financiera y económica de cada una de ellas. Por lo cual se debe perfeccionar al máximo los mecanismos de traspaso y evaluación de información de las EAC al INDAP y viceversa, en la medida que el INDAP sea su principal proveedor de créditos y subsidios. También será necesario en el futuro, tener información de los sistemas de administración y contabilidad, controles internos y gestión de dichas empresas, a objeto de establecer políticas de fortalecimiento y apoyo desde el Estado, hasta que logren su absoluta autonomía. No se pretende con esto coadministrar las EAC, sino más bien tener información de alta calidad para que el INDAP tome decisiones correctas en cada caso, evitándose así llegar a situaciones críticas de difícil solución, sobre todo cuando se comprometen recursos de fomento del Estado. 4. Describa los métodos de trabajo actuales. En la actualidad se lleva un sistema de acompañamiento de EAC a través de Asistentes Técnicos contratados por INDAP, los que manejan la información en carpetas individuales, no existiendo una metodología de sistematización de la información que permita tener una mirada de Area, Provincial, Regional o por tipo de negocios de las EAC. En cada caso los Asistentes Técnicos interactúan con las EAC, siendo el principal problema la calidad de la información contable y financiera de la empresa, su actualización y capacidad de análisis. El Balance de 100 EAC del 31/12/99 fue analizado mediante un sistema elaborado por la Unidad de Estudios utilizando planillas Excel. Lo que permitió tener una primera aproximación al tema, aunque requirió un alto número de jornadas de trabajo en el ingreso de la información, procesamiento y elaboración de informes. Este proceso se caracterizó 240 por su excesivo centralismo, con escasa participación de las Agencias de Areas en el análisis y bajo nivel de apropiación de los resultados. 5. Tiene sugerencias acerca del desarrollo de una solución. Las soluciones se deben aplicar a varios niveles: EAC: informatización de la contabilidad de todas las empresas, centros de costos por unidad de negocios, mejoramiento de la administración y controles internos, evaluación periódica con cifras de la marcha de las empresas, elaboración de presupuestos, flujos de caja proyectados y control de los mismos. Empresa Servicio Técnico Empresarial: especializar el equipo en materias de contabilidad, administración, gestión, análisis financiero, desarrollo organizacional y estudio de mercados, a objeto de asesorar adecuadamente dichas empresas. Agencia de Area: fortalecer las capacidades de los Asistentes Técnicos y dotarlos de herramientas básicas de análisis financiero y medios de control administrativo, organizacional, del desarrollo de los negocios, endeudamiento y garantías. Proveduría de información al nivel regional. Dirección Regional: Implementar medios de captura de información eficaz, mediante un equipo de profesionales especializados, con el apoyo de software para el análisis de empresas, a objeto de monitorear las EAC y asesorar a las Agencias de Areas y Dirección Regional en la toma de decisiones. 6. ¿Qué consideraciones entre los departamentos de la organización involucrados se deben tomar en cuenta? Primero que los Departamentos realizan diferentes funciones como parte de un todo, y que suele suceder que se tiende a una excesiva departamentalización, por lo cual el sistema a aplicar debe ser de fácil acceso para todos aquellos que toman decisiones, o tienen interés en el desarrollo de las EAC. Por tanto, debe ser amigable y brindar la información que los diferentes actores buscan: Créditos, endeudamiento y capacidad de pago para el Servicio Financiero; desarrollo organizacional, solvencia y liquidez para el Servicio Técnico Empresarial, entre otros. 7. ¿Qué requerimientos tiene Usted para dar solución al sistema propuesto? Fácil acceso desde cualquier región o Agencia de Area en la Intranet. Rapidez para el ingreso de la información Que se detecten los errores evidentes (cuadratura de información) Que produzca todos los informes necesarios para el análisis Que genere parcialmente un informe que pueda ser completado por el analista. Que se pueda consolidar información en listados y grupos de empresas similares. 8. ¿Se ha intentado dar solución al problema anteriormente? Justifique. (¿Por qué sí?, ¿Porque no?, Si la respuesta es afirmativa, describa cómo se intento solucionar) Si, como ya se explicó en la pregunta Nº 4 241 9. ¿Qué servicios serán necesarios? Servicio de informática Servicio de procesamiento e interpretación de datos Capacitación de usuarios, asistentes técnicos, contadores EAC, personal de INDAP. Servicio de Asesoría a las Agencias de Areas, contadores de las EAC y directivos de empresas. 10. ¿Qué características tendrán dichos servicios? Estos servicios serán de la mejor calidad que sea posible conseguir en el mercado regional 11. ¿Cuántos recursos se requerirán? En general los mismos con que cuenta la institución, organizados en función del sistema 12. ¿Qué estudios van a ser realizados al respecto? Un estudio de la estructura de los balances y sus formatos de presentación de antecedentes, las razones financieras de utilidad para la LB EAC y los informes de mayor utilidad, lo cual ya se encuentra realizado por la Unidad de Estudios. Una Asesoría Técnica informática que permita crear una página Web que implique un sistema de análisis de datos. Procesamiento de información y entrega de resultados. 13. ¿Qué metodología se utilizará al respecto? Formación de un equipo de trabajo interdisciplinario: Profesionales del Agro, Contador, Profesionales de la informática. Determinación del modelo que permita recoger la información, procesar los datos y obtener los informes requeridos. Construcción del modelo informático. Prueba, ajustes y operación. Procesamiento de los primeros 100 balances de empresas asociativas con participación de toda la estructura institucional. Análisis de los productos, ajustes al sistema, presentación del sistema a nivel nacional, y entrega del sistema a la institución para su aplicación generalizada. Capacitación institucional en aspectos de análisis contables, análisis financiero, determinación de fortalezas y debilidades de las EAC, elaboración de programas de control y seguimiento 14. ¿Quién Administrará y realizará los Estudios? La Unidad de Estudios y Control de Gestión de INDAP Décima Región. 15. ¿Contemplan las ventajas de las nuevas tecnologías? Evidentemente, la aplicación del LB EAC desde una pagina Web en la Intranet del INDAP, le da cobertura nacional, permite que pueda ser utilizada por todos quienes tengan interés, y que se pueda llevar sistemas de control y seguimiento de las EAC, cada vez que se requiera. Una ventaja adicional será la estandarización de una metodología, lo que significa utilizar un lenguaje financiero común. 242 16. ¿Cuáles serán los conocimientos requeridos por los recursos humanos? A nivel informático serán los mínimos que sean necesarios para manejar el sistema, pues será totalmente amigable, existiendo un conjunto de ayudas al usuario. A nivel Contable, dado que se trabajará con el Balance Clasificado y Estados de Resultados previamente trabajados por los expertos contables de cada empresa, se prevé de todas maneras un proceso de capacitación. Los analistas requerirán un mayor dominio sobre análisis de Balance y estados financieros. 17. ¿Existe un estándar de desarrollo, de análisis y programación en la Institución? No antes del año 2001. Recientemente, a un alto costo el INDAP ha contratado auditores externos que han logrado analizar alrededor de 35 EAC en la Décima Región y un total de 150 en todo el país. La Empresa FUNDES ha desarrollado un complejo sistema de planillas Excel para análisis financiero para cada caso, lo que no tiene soporte para consolidar información de diferentes empresas. 18. ¿La gerencia participará en el desarrollo del sistema? La Dirección Regional ha tenido directa participación en el proyecto y tiene alto interés en los resultados para su aplicación urgente, sobre los balances y estados de situación de las EAC. 19. ¿Cuál es el costo beneficio del desarrollo propuesto? No existe un calculo numérico al respecto. Pero si se considera que los montos de inversión en EAC solo en la Décima Región superan los $ 6 mil millones y que comprometen alrededor de $ 3,5 mil millones de pesos de INDAP en créditos, se puede tener una aproximación al interés institucional en tener un sistema efectivo de aplicación regional. 20. ¿Qué seguridad deberá tener el sistema? Claves de seguridad para diferentes niveles: Regional, Areas, Operadores, EAC. 21. ¿Que formas de recuperación se utilizan actualmente (respaldo) y cuales deberían ser implementadas? Hoy la información se respalda en disquetes y papeles. 22. ¿Será necesario el desarrollo en forma aislada o como propuesta para un desarrollo integral? Debería ser un desarrollo integral pero la falta de organización para el desarrollo de este tipo de proyectos no dejan otra alternativa sino de generar soluciones aisladas. 23. ¿Cuál es la Información crítica o más importante que se manejará en el sistema? Información económica, financiera de las EAC de la región y del país. 243 24. ¿Qué mantenimientos serán necesarios? Ajustes, correcciones, sistemas de consolidación de información, sistemas de agrupamiento de EAC diferentes al diseño original, solución a problemas operacionales. 25. ¿Quiénes serán los que utilicen el sistema? ¿Qué harán? ¿Cómo lo harán? Los usuarios estarán a diferentes niveles: EAC, Operadores Técnicos, Agencias de Areas, Dirección Regional y probablemente la Dirección Nacional. Las EAC por el propio interés en el manejo de su empresa. Los otros niveles como analistas y asesores técnicos, y en el caso del INDAP como medio de información para la toma de decisiones en cada caso. 26. ¿Tiene alguna propuesta para controlar el buen funcionamiento del sistema? Debiera incluirse un link con la Unidad de Estudios para consultas y sugerencias. 27. Tabla de prioridades. Ordene de mayor a menor importancia las características del sistema propuesto: • Facilidad de Uso. (Interfaz Amigable) • Mínimo espacio ocupado por los datos • Confiable. • Estable • Rapidez • Seguridad • Calidad visual. (Apariencia) • Escalabilidad (Integridad con otros sistemas) • Otros. (describa otras alternativas si son necesarias) Ejemplos de observaciones del encuestado importantes para mejorar las plantillas de cuestionarios: 1. Demasiado extenso 2. Falta claridad en las preguntas 3. Falta estructura en la orientación de las preguntas. 4. Falta la posibilidad de realizar comentarios fuera de preguntas. 244 9.1.5 Apreciaciones personales cuantitativas y cualitativas. 1. Se observa una gran preocupación por la presentación de los Datos en los Informes. 2. Se tiene una importante dedicación a la validación y verificación de los Datos. 3. El personal involucrado está muy motivado para colaborar con el desarrollo de una solución, ya sean usuarios, gerencia, departamentos, etc. 4. La disponibilidad de equipamiento es adecuada. 5. El departamento de Informática carece de la cantidad de personal y del nivel de capacitación adecuado para continuar con el mantenimiento del sistema propuesto. Por ello el INDAP deberá realizar cursos de capacitación para el personal actual y/o contratación del personal necesario. 6. Actualmente INDAP cuenta con varias normas para el desarrollo y actualización de sistemas. Una de estas normas estipula que para el desarrollo de un sistema nuevo se debe utilizar la plataforma de desarrollo de Microsoft, más específicamente el entorno de desarrollo Visual Studio 6 y con Bases de datos en Microsoft SQL Server 6.5 o 7. Por ello la decisión de los recursos de software para el desarrollo del sistema será responsabilidad del Departamento de Informática a nivel Nacional con que cuenta INDAP. 245 9.2 ANEXO B: Referencias para Requerimientos 9.2.1 Descripción de tipos de requerimientos [Perez1988] a) REQUERIMIENTOS INICIALES. “Son las consideraciones generales y objetivos a ser cumplidos por el SIA; políticas y planes futuros de la Organización que deben ser tomados en cuenta; descripción de los métodos de trabajo actuales; enfoques de solución considerados; visión global de las alternativas factibles; relaciones entre SIA en desarrollo y otros requerimientos existentes en la organización, etc.” b) REQUERIMIENTOS FUNCIONALES. “Actividades generales y/o componentes funcionales a ser considerados por dentro del SIA, relaciones interfuncionales requeridas, tanto a nivel de flujos de decisiones-tipo como al nivel de flujos de información.” c) REQUERIMIENTOS DE SALIDAS: “Características acerca de la Información requerida por los usuarios, tales como su tipo, naturaleza, forma de presentación, medio de transporte, oportunidad del requerimiento, calidad, etc.” 246 d) REQUERIMIENTOS DE ENTRADA. “Características acerca de los datos necesarios para generar la información de salida del SIA.” e) REQUERIMIENTOS DE PROCEDIMIENTOS: “Presentación, ya sea en la forma de esquemas narrativos y/o mediante técnicas adecuadas de documentación (diagramas de flujo, tablas de decisión, etc.), de la manera en que los elementos del sistema interactúan tanto con el resto de los sistemas de la Organización como dentro del sistema mismo; esto es necesario para que el SIA lleve a cabo su cometido en lo administrativo (flujo de información, direccionamiento-contenido-y – medio físico de tales flujos, etc.) y en lo referente a la manipulación de la información (tipos de procesamiento, formas en que se realizan, etc.)” f) REQUERIMIENTOS DE RECURSOS HUMANOS. “Características del personal necesario para operar el sistema (número, especialización, nivel dentro de la estructura administrativa, planes de entrenamiento, etc.)” 247 g) REQUERIMIENTOS DE RECURSOS FINANCIEROS “Revisión de costos y beneficios estimados en la fase anterior; para ello generalmente, se toma en cuenta las iteraciones realizadas con los aspectos físicos, de los cuales se obtienen datos más afinados en lo referente a equipos y al apoyo computacional, en caso de ser necesario” h) REQUERIMIENTOS DE ADMINISTRACION. “Características que detallan la programación (en tiempo y recursos) de las diferentes actividades del desarrollo del SIA que continuarán después del diseño lógico” i) REQUERIMIENTOS DE MEDICION DE DESEMPEÑO. “Durante esta fase se mejora la identificación de aquellos factores que permitirán medir el desempeño del nuevo sistema, una vez que este comience a operar. Tal como se ha dicho , estas evaluaciones pueden ser directas y cuantitativas (costos de operación, duración de un determinado proceso administrativo, etc.), indirectos o derivadas (retorno de la inversión, rotación de stock, etc.) o bien cualitativas (prestigio del mercado, buen servicio a clientes, etc. Dependerá de la situación particular de la Organización, los factores que se elijan. Como ejemplos podríamos citar: 248 • Costo: de operación, de mantenimiento, por unidad (de producción y/o de servicio) producida, por formulario llenado, etc. • Tiempo: de “acceso” a la información, de “proceso” de una determinada orden (de compra, de reposición, etc.), de “respuesta” a una determinada entrada al sistema (llegada de factura), etc. • Eficiencia: porcentaje de errores producidos, porcentaje de órdenes (de compra, reposición, satisfechas, etc. • Seguridad: Número de errores en las transacciones comerciales realizadas, accesibilidad a la información clasificada, etc. • Capacidad: comportamiento del sistema en periodos de carga baja, o normal, o alta.” 249 9.2.2 Listado de todos los requerimientos REQUERIMIENTOS ID DETALLE REQUERIMIENTO CLASIFICACION R-1 Permitir trabajar en dos modos de trabajo. PROCEDIMIENTOS R-2 Permitir almacenar la información de las EAC. ENTRADA DATOS R-3 Permitir almacenar la información de las UN. ENTRADA DATOS R-4 Permitir manejar los datos en forma trimestral y anual. PROCEDIMIENTOS R-5 Que el acceso de los usuarios sea restringido. SEGURIDAD R-6 R-7 R-8 R-9 Que se puedan generar informes consolidados organizados por Areas, Región, etc. Que se calculen las razones financieras de las EAC y UN. SALIDAS DE INFORMES PROCEDIMIENTOS Que se clasifique en forma sintética a las EAC. PROCEDIMIENTOS Que se asista al usuario al generar los análisis de las EAC, es decir, que el sistema debe automatizar en cierta medida el análisis de las razones PROCEDIMIENTOS financieras y agrupaciones entre ellas mismas. R-10 Que el ingreso de los Datos tenga orden lógico, es decir, que el ingreso de los Costos y Gastos junto al de los Ingresos deben ser previos al ingreso PROCEDIMIENTOS de los Estados de Resultados y a su vez estos últimos deben ser ingresados antes que los Balances. R-11 Que los informes se puedan imprimir directamente desde el sitio Web. R-12 Informe de Datos Generales PROCEDIMIENTOS FORMATO SALIDA SALIDAS DE INFORMES R-13 Informe de Recursos Humanos SALIDAS DE INFORMES R-14 Informe de Inventarios SALIDAS DE INFORMES R-15 Informe de Vencimientos de Pasivos (corto y largo plazo) SALIDAS DE INFORMES R-16 Informe de Situación de la empresa SALIDAS DE INFORMES R-17 Informe de Problemas y Soluciones. SALIDAS DE INFORMES R-18 Informe de Ingresos (EAC y UN) SALIDAS DE INFORMES R-19 Informe de Costos y Gastos (EAC y UN) SALIDAS DE INFORMES R-20 Informe de Estados de Resultados (EAC y UN) SALIDAS DE INFORMES R-21 Informe de Balances (EAC y UN) SALIDAS DE INFORMES R-22 Informe de Razones financieras (EAC y UN) SALIDAS DE INFORMES R-23 Informe de Clasificación sintética SALIDAS DE INFORMES R-24 Informe de Análisis automático. SALIDAS DE INFORMES R-25 Ingreso de Datos Generales ENTRADA DATOS R-26 Ingreso de Recursos Humanos ENTRADA DATOS R-27 Ingreso de Inventarios ENTRADA DATOS R-28 Ingreso de Vencimientos de Pasivos (corto y largo plazo) ENTRADA DATOS R-29 Ingreso de Situación de la empresa ENTRADA DATOS R-30 Ingreso de Problemas y Soluciones. ENTRADA DATOS R-31 Ingreso de Ingresos (EAC y UN) ENTRADA DATOS R-32 Ingreso de Costos y Gastos (EAC y UN) ENTRADA DATOS 250 R-33 Ingreso de Estados de Resultados (EAC y UN) R-34 Ingreso de Balances (EAC y UN) ENTRADA DATOS R-35 Calcular Razones financieras (EAC y UN) PROCEDIMIENTOS R-36 Clasificar en forma sintética PROCEDIMIENTOS R-37 Generar Análisis Automático PROCEDIMIENTOS R-38 Que permita buscar los datos de la EAC mediante parámetros BUSQUEDA DE DATOS R-39 Que permita buscar los datos de las UN mediante parámetros BUSQUEDA DE DATOS R-40 Que permita buscar la clasificación sintética de las Empresas BUSQUEDA DE DATOS R-41 Que permita buscar las razones financieras de las Empresas BUSQUEDA DE DATOS Tabla 19: Listado de todos los requerimientos 251 ENTRADA DATOS 9.3 ANEXO C. Información relacionada con el DFD 9.3.1 Nomenclatura del DFD Almacén de Datos: Almacén de Datos D0 Entidad Entidad: 0 Flujo de Flujo de Datos: Datos 0 Proceso: Proceso 0 Proceso particionado: Proceso particionado Figura 17: Nomenclatura DFD. 252 9.3.2 Diagrama de flujo de Datos detallado En esta sección se detalla el DFD anteriormente mostrado. Ver figuras 8, 9 y 10. Se detallan: o Procesos o Entradas o Salidas o Cálculos de Razones financieras o Almacenamientos de datos 253 DIAGRAMA 0 (Modo de Trabajo 1) 0 SISTEMA DE ANALISIS FINANCIERO Datos Generales Recursos Humanos Inventario Vencimientos de Pasivos 1 Datos Procesados D0 Datos de la Empresa Situación de la Empresa 2 Empresa Estados de Resultados Procesar Ingreso de Datos I. Datos Generales I. Inventario Razones Financieras Balances 3 Calcular Razones Financieras Problemas y Soluciones I. Recursos Humanos I. Vencimientos de Pasivos Produce Informes de Datos I. Situación de la Empresa I. Problemas y Soluciones I. Ingresos UN Ingresos UN Costos y Gastos UN Balances UN Estado de Resultados UN 4 Calcular Razones Financieras UN Estados de Resultados UN Balances UN Razones Financieras Análisis I. Balances UN I. Ingresos Empresa Razones Financieras Clasificación I. Estado de Resultados UN I. Razones Financieras UN Razones Financieras UN D0 I. Costos y Gastos UN Clasificación Sintética 5 Clasificar en forma Sintética I. Costos y Gastos I. Estado de Resultados I. Balances I. Clasificación Sintética I. Razones Financieras 6 Análisis Automático Generar Análisis Automático 254 I. Análisis Automático DIAGRAMA 0 (Modo de Trabajo 2) 0 SISTEMA DE ANALISIS FINANCIERO Datos Generales Recursos Humanos Inventario Vencimientos de Pasivos Datos Procesados 7 D0 Datos de la Empresa I. Datos Generales 8 Empresa I. Recursos Humanos I. Inventario Procesar Ingreso de Datos Modo 2 Estados de Resultados Balances Situación de la Empresa Problemas y Soluciones Produce Informes de Datos Modo 2 3 Calcular Razones Financieras Ingresos I. Vencimientos de Pasivos I. Situación de la Empresa I. Problemas y Soluciones I. Ingresos Costos y Gastos I. Costos y Gastos Estado de Resultados Razones Financieras Balances I. Estado de Resultados I. Balance Empresa D0 I. Razones Financieras Razones Financieras Clasificación Clasificación Sintética 5 Clasificar en forma Sintética Razones Financieras Análisis 6 Generar Análisis Automático Análisis Automático 255 I. Clasificación Sintética I. Análisis Automático Detalle Proceso 1: “Procesar Ingreso de Datos” Modo de Trabajo 1 Datos Procesados Datos Generales Datos Generales D1 Datos Generales Recursos Humanos D2 Recursos Humanos Inventario D3 Inventario Vencimientos de Pasivos D4 Vencimientos de los Pasivos Situación de la Empresa Situación de la Empresa D5 Situación de la Empresa Problemas y Soluciones Problemas y Soluciones D6 Problemas y soluciones Ingresos UN Ingresos UN D7 Ingresos UN Costos y Gastos UN Costos y Gastos UN D8 Costos y Gastos UN Estado de Resultados UN Estado de Resultados UN D9 Estados de Resultados UN Balances UN Balances UN D10 Balances UN Ingresos D11 Ingresos Costos y Gastos D12 Costos y Gastos Estado de Resultados D13 Estados de Resultados Balances D14 Balances Recursos Humanos Inventario Vencimientos de Pasivos 1.1 Valida Ingreso de Datos Ingresos UN Costos y Gastos UN Estado de Resultados UN 1.2 Revisa y Sumariza los Datos Balances UN 256 Detalle Proceso 1.1: “Validar Ingreso de Datos” Modo de Trabajo 1 Datos Generales Recursos Humanos Inventario Vencimientos de Pasivos Situación de la Empresa Problemas y Soluciones Ingresos UN Costos y Gastos UN Ingresos UN 1.1.1 Validar Ingresos, Costos y Gastos Costos y Gastos UN D1 1.1.2 Validar D1 y Estados de Resultados UN Estado de Resultados UN Estado de Resultados UN D2 1.1.3 Validar D2 y Estados de Resultados UN Balances UN Balances UN Nota: D1: Son Datos recopilados desde los “Ingresos UN” y “Costos y Gastos UN” hacia los resultados operacionales de los “Estados de Resultados UN”. D2: Son Datos recopilados desde los “Estados de Resultados UN” hacia la utilidad o perdida del ejercicio en los “Balances UN”. 257 Detalle Proceso 7: “Procesar Ingreso de Datos Modo 2” Modo de Trabajo 2 Datos Procesados Datos Generales Datos Generales D1 Datos Generales Recursos Humanos D2 Recursos Humanos Inventario D3 Inventario Vencimientos de Pasivos D4 Vencimientos de los Pasivos Situación de la Empresa Situación de la Empresa D5 Situación de la Empresa Problemas y Soluciones Problemas y Soluciones D6 Problemas y soluciones Ingresos Ingresos D11 Ingresos Costos y Gastos Costos y Gastos D12 Costos y Gastos Estado de Resultados Estado de Resultados D13 Estados de Resultados Balances Balances D14 Balances 7.1 Recursos Humanos Inventario Vencimientos de Pasivos Valida Ingreso de Datos Modo 2 258 Detalle Proceso 7.1: “Validar Ingreso de Datos Modo 2” Modo de Trabajo 2 Datos Generales Recursos Humanos Inventario Vencimientos de Pasivos Situación de la Empresa Problemas y Soluciones Ingresos Costos y Gastos Estado de Resultados 7.1.1 Validar Ingresos, Costos y Gastos Ingresos Costos y Gastos D3 7.1.2 Validar D1 y Estados de Resultados Estado de Resultados D4 7.1.3 Validar D2 y Estados de Resultados Balances Balances Nota: D3: Son Datos recopilados desde los “Ingresos” y “Costos y Gastos” hacia los resultados operacionales de los “Estados de Resultados”. D4: Son Datos recopilados desde los “Estados de Resultados” hacia la utilidad o perdida del ejercicio en los “Balances”. 259 Detalle Proceso 2: “Produce Informes de Datos” Modo de Trabajo 1 Datos de la Empresa D1 Datos Generales D2 Recursos Humanos D3 Inventario D4 Vencimientos de los Pasivos D5 Situación de la Empresa D6 Problemas y soluciones D7 Ingresos UN D8 Costos y Gastos UN D9 Estados de Resultados UN D10 Balances UN D16 Razones Financieras UN D11 Datos Generales 2.1 Datos Generales 2.2 I. Datos Generales Clasificación Sintética Clasificación Sintética I. Clasificación Sintética Recursos Humanos Recursos Humanos I. Recursos Humanos Inventario I. Inventario Inventario Vencimientos de Pasivos Consolidar Datos de Informes Vencimientos de Pasivos Formatear Informes I. Vencimientos de Pasivos Situación de la Empresa Situación de la Empresa I. Situación de la Empresa Problemas y Soluciones Problemas y Soluciones I. Problemas y Soluciones Ingresos UN Ingresos UN I. Ingresos UN Costos y Gastos UN Costos y Gastos UN I. Costos y Gastos UN Estado de Resultados UN Estado de Resultados UN I. Estado de Resultados UN Balances UN Balances UN I. Balances UN Razones Financieras UN Razones Financieras UN I. Razones Financieras UN Ingresos Ingresos Ingresos I. Ingresos D12 Costos y Gastos Costos y Gastos Costos y Gastos I. Costos y Gastos Estados de Resultados Estado de Resultados Estado de D13 I. Estado de Resultados D14 Balances Balances Balances I. Balances D15 Razones Financieras Razones Financieras Razones Financieras I. Razones Financieras Resultados Análisis Automático I. Análisis Automático 260 Detalle Proceso 8: “Produce Informes de Datos” Modo de Trabajo 2 261 Detalle Proceso 3: “Calcula Razones Financieras” Modo de Trabajo 1 y 2 3.1 Balances Calcular Razones de Liquidez Capital de Trabajo Razón Corriente Prueba Acida 3.2 Balances Estado de Resultados Calcular Razones de Endeudamiento 3.3 Calcular Razones de Rentabilidad Balances Estado de Resultados Balances Leverage Leverage Mercado Financiero Solvencia Rentabilidad Bruta Rentabilidad Operacional D15 Rentabilidad Neta 3.4 Calcular Razones para Clasificación Sintética Razón Operativa Razón de Deuda Razón de Dependencia Estado de Resultados Balances 3.5 Calcular Razones para Análisis Detallado Rotación de Activos Razón de la calidad de la Deuda Cobertura Financiera Dependencia Financiera Dependencia Financiera Corto Plazo Dependencia Financiera Largo Plazo 262 Razones Financieras Detalle Proceso 4: “Calcula Razones Financieras” Modo de Trabajo 1 4.1 Balances UN Calcular Razones de Liquidez UN Capital de Trabajo Razón Corriente Prueba Acida 4.2 Balances UN Estado de Resultados UN Balances UN Calcular Razones de Endeudamiento UN 4.3 Calcular Razones de Rentabilidad UN Leverage Leverage Mercado Financiero Solvencia Rentabilidad Bruta Rentabilidad Operacional Rentabilidad Neta D16 263 Razones Financieras UN Detalle Proceso 5: “Clasificación Sintética” Modo de Trabajo 1 y 2 Razones Financieras Clasificación Razón Operativa D15 Razones Financieras Razón de Deuda Razón de Dependencia 5 Clasificar en forma Sintética 264 Clasificación Sintética D1 Datos Generales Detalle Proceso 6: “Generar Análisis Automático” Modo de Trabajo 1 y 2 Capital de Trabajo D15 Razones Financieras 6.1 Análisis de Razones Financieras de Liquidez Razón Corriente Prueba Acida Leverage D15 Razones Financieras 6.2 Leverage Mercado Financiero Solvencia Rentabilidad Bruta D15 Razones Financieras Análisis Razones Liquidez Análisis de Razones Financieras de Endeudamiento Análisis Razones Endeudamiento 6.3 Análisis de Razones Financieras de Rentabilidad Rentabilidad Operacional Rentabilidad Neta 265 Análisis Razones Rentabilidad Análisis Automático 9.4 ANEXO D: Información relacionada con las Razones financieras Este anexo profundiza el tema de las razones financieras describiendo de mejor forma su interpretación y forma de ser calculadas. 9.4.1 Descripción de las Razones financieras Estás muestran el comportamiento financiero de las empresas según el tipo de razón financiera al que pertenezcan. En la práctica estas razones financieras se comparan con los patrones de la industria o líneas de negocio dentro de las cuales opera la empresa. Ellas son: • Razones de liquidez. Miden la capacidad de la empresa para cumplir las obligaciones que venzan a corto plazo. • Razones de apalancamiento financiero. (Endeudamiento) Miden el grado en que la empresa ha sido financiada mediante deudas. • Razones de actividad. Miden la eficacia de la administración y como se muestra en los rendimientos que se han generado con las ventas y la inversión. 266 • Razones de rentabilidad. Miden la eficacia de la administración y cómo se muestra en los rendimientos que se han generado con las ventas y la inversión. • Razones de crecimiento. Miden la capacidad de la empresa para mantener su posición económica en el crecimiento de la economía y de la industria. • Razones de valuación. Miden la capacidad que tiene la administración para crear valores de mercado en exceso de los desembolsos del costo de la inversión. Las razones de valuación son la medida más completa del desempeño, en tanto que reflejan las razones de riesgo (las dos primeras) y las razones de rendimiento (las tres siguientes). Las razones de valuación tienen gran importancia, puesto que se relacionan directamente con la meta de maximizar el valor de la empresa y la riqueza de los accionistas. 267 9.4.2 Forma de calcular las Razones Financieras Razones financieras de Liquidez: CAPITAL DE TRABAJO: ACTIVO CIRCULANTE – PASIVO CIRCULANTE. RAZON CORRIENTE: ACTIVO CIRCULANTE / PASIVO CIRCULANTE. PRUEBA ACIDA: (ACTIVO CIRCULANTE – INVENTARIOS) / PASIVO CIRCULANTE Razones financieras de Rentabilidad: RENTABILIDAD BRUTA: UTILIDAD BRUTA/VENTAS *100 RENTABILIDAD OPERACIONAL: RESULTADOS OPERACIONALES / VENTAS NETAS * 100 RENTABILIDAD NETA: UTILIDAD DEL EJERCICIO / VENTAS NETAS *100 Razones financieras de Endeudamiento. LEVERAGE: PASIVO EXIGIBLE / PATRIMONIO NETO LEVERAGE MERCADO FINANCIERO: DEUDA BANCARIA, INDAP Y OTROS / PATRIMONIO NETO SOLVENCIA: ACTIVO TOTAL / PASIVO EXIGIBLE. 268 9.5 ANEXO E: Descripción de tipos de Datos del SQL Server Tipo de dato Nombre Descripción Entero Bit Datos enteros con valor 1 ó 0. Entero Int Datos enteros (números enteros) comprendidos entre 231 (-2.147.483.648) y 231 - 1 (2.147.483.647) Entero SmallInt Datos enteros comprendidos entre 215 (-32.768) y 215 1 (32.767). Entero TinyInt Datos enteros comprendidos 0 y 255. Decimales y Decimal Datos de precisión y escala numérica fijas comprendidos entre -1038 -1 y 1038 -1. Numéricos Decimales y Numérico Sinónimo de decimal. Money Valores de moneda comprendidos entre -263 (- Numéricos Money 922.337.203.685.477,5808) y 263 – 1 (+922.337.203.685.477,5807), con una precisión de una diezmilésima de la unidad monetaria Money Smallmoney Valores de moneda comprendidos entre -214.748,3648 y +214.748,3647, con una precisión de una diezmilésima de la unidad monetaria. Numéricos con Float aproximación Numéricos con entre -1,79E + 308 y 1,79E + 308. Real aproximación Fecha Números con precisión de coma flotante comprendidos Números con precisión de coma flotante comprendidos entre -3,40E + 38 y 3,40E + 38. Datetime Datos de fecha y hora comprendidos entre el 1 de 269 enero de 1753 y el 31 de diciembre de 9999, con una precisión de un trescientosavo de segundo, o 3,33 milisegundos. Fecha SmallDatetime Datos de fecha y hora comprendidos entre el 1 de enero de 1900 y el 6 de junio de 2079, con una precisión de un minuto. Numérico Cursor 1.1.1.1.1.1 Numérico Timestamp Es un número único para toda la base de datos. Numérico UniqueIdentifier Un identificador exclusivo global (GUID) Cadenas de Char Datos de caracteres no Unicode de longitud fija con caracteres Cadenas de una longitud máxima de 8.000 caracteres. Varchar caracteres Cadenas de Datos no Unicode de longitud variable con un máximo de 8.000 caracteres Text Datos no Unicode de longitud variable con una longitud máxima de 231 - 1 (1.147.483.647) caracteres. caracteres Cadenas de Una referencia a un cursor Nchar caracteres Datos Unicode de longitud variable con una longitud máxima de 4.000 caracteres. Unicode Cadenas de Nvarchar Datos Unicode de longitud variable con una longitud caracteres máxima de 4.000 caracteres. Sysname es el tipo de Unicode datos suministrado por el sistema y definido por el usuario que es sinónimo de nvarchar(128) y que se utiliza para hacer referencia a nombres de objetos de bases de datos. Cadenas de Ntext Datos Unicode de longitud variable con una longitud 270 máxima de 230 - 1 (1.073.741.823) caracteres. caracteres Unicode Cadenas Binary binarias Cadenas de 8.000 bytes. Varbinary binarias Cadenas binarias Datos binarios de longitud fija con una longitud máxima Datos Unicode de longitud variable con una longitud máxima de 8.000 bytes. Image Datos Unicode de longitud variable con una longitud máxima de 231 - 1 (1.147.483.647) bytes Tabla 20: Listado de Tipos de Datos del SQL Server 271 10. GLOSARIO: ACTIVO: 1. Cualquier cosa tangible o intangible sobre la que una persona natural o jurídica posea un derecho de propiedad. 2. En un sentido restringido, el activo se limita a cosas materiales o intangibles que tengan un valor monetario y que sean capaces de generar un flujo de ingresos o beneficios futuros a su propietario. 3. Contablemente, es el conjunto de derechos de propiedad que posee una empresa o persona sobre un bien y las obligaciones de terceros respecto de ella. El activo siempre es igual al pasivo más el patrimonio. Para los efectos de su presentación en el Balance Contable, actualmente se exige en Chile que los activos se clasifiquen según su grado de liquidez, de la siguiente manera: a. Activo circulante: dinero, depósitos a la vista en bancos, cuentas por cobrar, valores negociables, etc. b. Activo nominal o intangible: patentes, marcas, franquicias especiales, etc. c. Activo fijo: terrenos, edificios, plantas y equipos, etc. La característica económica esencial de un activo es su capacidad actual o potencial de generar un flujo de ingresos o beneficios futuros a su poseedor. 272 AUTOMATIZACION: Sistemas mecanizados de producción tecnológicamente avanzados que se orientan a lograr el máximo de uniformidad, simplicidad y eficiencia en los procesos industriales. Los sistemas automatizados generan información que sirve para realimentar el proceso y con la cual pueden autorregularse, permitiendo que el trabajo realizado por una máquina constituya un insumo de otras que lo continúan. BALANCE CONTABLE: Muestra el valor de los activos de la empresa y de los derechos sobre estos mismos en una fecha determinada. Los activos se disponen de arriba hacia abajo por orden de liquidez decreciente; es decir; los activos de la parte superior se convierten en efectivo más rápidamente que los ubicados bajo ellos. Los que se espera se conviertan en efectivo dentro de un año se designan como activos circulantes. Los cuales no se esperan que se conviertan en efectivo dentro de un año de designan como activos fijos. Con respecto a los pasivos su designación también depende del tiempo que se espera para pagar estas cuentas de esa forma las cuentas que se esperan sean canceladas dentro de un año se denominan pasivos circulantes y las que no se denominan pasivos fijos. 273 CETERIS PARIBUS: Expresión latina que significa "todo lo demás constante". En economía es un recurso metodológico al que se recurre para aislar la influencia que alguna variable en particular ejerce sobre un fenómeno que esté condicionado por muchos factores. Suponiendo que todos estos factores no cambian, es posible analizar por separado la acción de la variable en cuestión sobre el fenómeno estudiado. Por ejemplo, la demanda de automóviles depende del precio de los mismos, del ingreso de las personas, del precio de otros bienes, de los gustos, etc, variables que determinan en forma simultánea la demanda. Para conocer el efecto sobre la demanda de automóviles de un cambio en el precio, se supone que todas las demás variables permanecen constantes, consiguiendo de este modo aislar analíticamente la influencia de la variable precio sobre la cantidad demandada de automóviles. Sin embargo, hay que hacer notar que esto no es más que un instrumento metodológico, y no una descripción de la realidad. CONTABILIDAD: Técnica auxiliar de la administración de empresas mediante la cual se registra toda la información respecto a las transacciones comerciales y financieras con el fin de determinar la posición patrimonial y conocer la situación de pérdidas y ganancias de la explotación. La información contable se registra en libros especiales y las principales funciones que cumple son la de revelar la situación financiera de la empresa, aportar antecedentes para determinar su situación tributaria y proporcionar la información necesaria para 274 ejercer un control eficiente de la gestión empresarial. El sistema contable más utilizado se basa en el principio de la partida doble, que reconoce que cada transacción tiene un doble aspecto, la entrada y salida. Dicho principio nos lleva a la igualdad fundamentalmente de la contabilidad que puede enunciarse como: ACTIVO = PASIVO + PATRIMONIO De esta manera, toda transacción se anotará en el debe de una cuenta y en haber de otra, con lo cual siempre se estará modificando ambos lados de la igualdad, revelando con ello el efecto que tiene para la empresa cualquier movimiento contable. 275 EMPRESA: En economía, agente económico o unidad autónoma de control y decisión que al utilizar insumos o factores productivos los transforma en bienes y servicios o en otros insumos. No se trata de una entidad legal, sino de una organización que tiene objetivos definidos, como el lucro, el bien común o la beneficencia, y para cuya consecución utiliza factores productivos y produce bienes y servicios. ESTADO DE RESULTADO: Muestra el valor de las ventas (superior) junto a los ingresos (inferior) para finalizar con las utilidades o perdidas del ejercicio. Estas ultimas establecen un estado de ganancia o perdida en el periodo. FLUJO: En economía se distingue entre variables de flujo y variables de stock. Para ilustrar la diferencia pensemos en un estanque con agua. El nivel del agua en el estanque es un stock, y se puede cuantificar como el número de litros existentes. Si pensamos que además el estanque tiene una llave por la cual entra agua y un desagüe por la que se elimina, tendremos entonces un flujo. Este se puede medir como el número de litros por segundo. Vale decir, el flujo necesariamente tiene una dimensión temporal, es una cantidad por período de tiempo. En economía se pueden mencionar muchas variables de flujo, como la 276 demanda de trigo por período de tiempo, el consumo por período de tiempo, la inflación, etc. También existen variables de stocks, como la cantidad de trigo almacenada, el stock de capital existente en un país, etc. PASIVO: Conjunto de deudas con terceras personas que tiene una empresa en un momento dado. Para los efectos de su presentación en el Balance Contable, en Chile actualmente se exige que los pasivos se clasifiquen en: Pasivo exigible: representa deudas con personas naturales o jurídicas distintas de los dueños de la empresa. Estos a su vez se clasifican de acuerdo al plazo de su vencimiento, en pasivos exigibles de corto, mediano y largo plazo. Pasivo no exigible; representa las deudas que tiene la empresa respecto de sus dueños, en cuanto constituye una persona jurídica distinta de las personas naturales o jurídicas que son sus propietarios. En esta clasificación se incluyen el capital o patrimonio, las reservas y las utilidades. Ver ACTIVO. 277