UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES “UNIANDES” MAESTRÍA EN INFORMÁTICA TESIS DE POSGRADO PREVIO A LA OBTENCIÓN DEL TÍTULO DE MAGISTER EN INGENIERIA DE SISTEMAS DE COMPUTACIÓN TEMA: APLICACIÓN WEB PARA LA GESTION DE PÓLIZAS EN LA ASEGURADORA ALLIANCE S.A. AUTOR: Ing. John Luis Toasa Espinoza, Esp. ASESOR: Ing. Carlos Martínez, Mgs. AMBATO – ECUADOR 2012 1 II2 3 III DEDICATORIA A Dios por las bendiciones recibidas durante toda mi vida y a la Santísima Virgen por su generosidad demostrada con su infinito e incansable amor. A mi esposa e hijos quienes me han sabido brindar todo su apoyo y paciencia durante todos estos años de estudio que han sentido mi ausencia para este logro, gracias al legado y sus sabias de amor y felicidad que me han brindado para llegar a culminar mi carrera. A mis padres por haberme dado la vida y por su apoyo en el inicio de esta larga jornada en mi formación personal, por estar siempre a mi lado guiándome con sus acertados consejos y apoyándome en forma incondicional en cada uno de los proyectos emprendidos. Ing. John Toasa Espinoza IV 4 AGRADECIMIENTO Al Ing. Carlos Martínez, Asesor de Tesis por ser un verdadero mentor comprometido con la educación, por la capacitación recibida que me ha permitido consolidarme profesionalmente. A las Autoridades de UNIANDES de la matriz Ambato por su colaboración brindada para culminar con éxito el desarrollo de la tesis. A todos y cada uno de los Docentes de la Maestría de Informática en Sistemas e Informática que compartieron gustosos sus conocimientos en esta institución superior con un alto nivel académico y una educación profesional y especializada. Ing. John Toasa Espinoza. V5 ÍNDICE GENERAL PÁG. PORTADA…………………………………….…………………………………… I CERTIFICACIÓN DEL ASESOR………………………………………………... II AUTORÍA…………………………………………………………………………. III DEDICATORIA………………………………………….………………….…….. IV AGRADECIMIENTO…………………………………….…………………….…. V ÍNDICE GENERAL……………………………………….………………….…… VI ÍNDICE DE TABLAS…………………………………….………………….……. X INDICE DE GRAFICOS……………………………….…………………………. XI RESUMEN EJECUTIVO………………………………………..………….…….. XI EXECUTIVE SUMMARY……………………….…………….………………… XII INTRODUCCIÓN………………………..………….…………………………….. XIV CAPITULO I EL PROBLEMA 1.1 Planteamiento del problema………………………………..………………….. 1 1.1.1 Formulación del problema………………………………………………….. 3 1.1.2 Delimitación……………………………………………………………….... 4 1.1.3 Identificación de la línea de investigación………………………………….. 4 1.2. Objetivos………………………………………………………………..……. 4 1.2.1 Objetivo general………………………………………………………..…… 4 1.2.2 Objetivos específicos…………………………………………………..…… 4 1.3 Justificación……………………………………………………………..……. 5 VI 6 CAPITULO II MARCO TEÓRICO 2.1 Antecedentes investigativos…………..…………………………….……… 6 2.2 Fundamentación teórica……………..…………………………….……….. 7 2.2.1 Teoría de los portales………..…………………………………...…......... 7 2.2.2 Servidores Web……………..……………………………………..……... 9 2.2.3 Procesamiento de páginas dinámicas….…….……….…………………... 11 2.2.4 Introducción a las bases de datos………………..……………………..… 12 2.2.5 Oracle…………………………………………………………………….... 13 2.2.6 Sql Plus…………………………………………………………………..... 27 2.2.7 La familia Oracle………………………………………………………..… 32 2.2.8 PL/SQL Developer……………………………………………………..…. 35 2.2.9 Lenguaje de consulta Sql……………………………………………..…… 39 2.2.10 La gestión empresarial…………………………………………………….. 40 2.2.11 Los seguros………………………………………………………………... 43 2.2.12 Pólizas de seguros…………………………………………………………. 44 2.3 45 Idea a defender……………………………………………………………. CAPITULO III MARCO METODOLOGICO 3.1 Modalidad de la investigación……………………………………………... 46 3.2 Tipos de Investigación……………………………………………………… 46 3.2.1 Investigación bibliográfica………………………………………………… 47 3.2.2 Investigación de Campo…………………………………………………… 47 3.3 47 Población y muestra………………………………………………………... VII7 3.4 Métodos, técnicas e instrumentos………………………………………….. 48 3.5 Interpretación de resultados…………………………….………………….. 50 3.6 Conclusiones teórico-metodológicas de la investigación de campo………… 62 CAPITULO IV MARCO PROPOSITIVO 4.1 Tema……………………………………………………………………….. 63 4.2 Fundamentación…………………………………………………………… 63 4.3 Objetivos de la propuesta………………………………………………….. 63 4.3.1 Objetivo General…………………………………………………………. 64 4.3.2 Objetivos Específicos……………………………………………………. 64 4.4 Descripción de la propuesta……………………………………………….. 64 4.5 Metodología de desarrollo de software……………………………………. 64 4.6 Análisis…………………………………………………………………….. 66 4.6.1 Análisis Previo…………………………………………………………… 66 4.6.2 SRS (Especificación de Requerimientos Software)………………………. 67 4.6.2.1Perspectiva del producto…………………………………………………. 71 4.6.2.2Funciones del producto……..……………………………………………. 72 4.6.2.3Características de los usuarios.……………………………………………. 73 4.6.2.4Limitaciones generales….…………………………………………………. 73 4.6.2.5Supuestos y dependencia…………………………………………………. 73 4.6.2.6Requisitos Funcionales……………………………………………………. 74 4.6.2.7Requisitos no funcionales…………………………………………………. 75 4.6.2.8Requisitos de interfaz interna..……………………………………………. 77 4.6.2.9Requisitos de rendimiento…………………………………………………. 78 4.7 79 Diseño……………………………………………………………………… VIII 8 4.7.1 Diseño de las opciones principales de la aplicación……………………… 79 4.7.2 Diseño de la base de datos………………………………………………... 80 4.7.2.1Modelo relacional…………………………………………………………. 81 4.7.2.2Diccionario de Datos…………………………………………………. 82 4.8 Desarrollo…………………………………………………………………... 108 4.9 Pruebas..…………………………………………………………………….. 121 4.10 Implementación…………………………………………………………….. 122 4.11 Seguridades………………………………………………………………… 123 4.12 Impacto de la propuesta……………………………………………………. 124 Conclusiones y Recomendaciones………………………………………….. 124 BIBLIOGRAFIA…………………………………………………………………. 126 ANEXO 1 ………………………………………………………………………… 127 ANEXO 2 (Manual del Usuario).....………………………………………………. 129 ANEXO 3…………………………………………………………………………. 137 IX9 ÍNDICE DE TABLAS PÁG. Tabla 1: Inserción de nuevos registros……………………………………………... 24 Tabla 2: Resultado de la tabla clientes…………………………………………….. 26 Tabla 3: Resultado del uso del mandato DESCRIBE……………………………….….. 30 Tabla 4: Resultado del uso del mandato SQL>HELP DATA DICT………………. 31 Tabla 5: Población………………………………………………………………….. 48 Tabla 6: Muestra……………………………………………………………………. 48 Tabla No. 7: Pregunta No.1 Administrativo y Vendedores……………………….. 50 Tabla No. 8: Pregunta No.2 - Administrativo y Vendedores……………………… 51 Tabla No. 9: Pregunta No.3 - Administrativo y Vendedores……………………… 52 Tabla No. 10: Pregunta No.4 - Administrativo y Vendedores…………………….. 53 Tabla No. 11: Pregunta No.5 - Administrativo y Vendedores…………………….. 54 Tabla No. 12: Pregunta No.6 - Administrativo y Vendedores…………………….. 55 Tabla No. 13: Pregunta No. 1 - Clientes…………………………….……...... 56 Tabla No. 14: Pregunta No. 2 - Clientes…………………………………………... 57 Tabla No. 15: Pregunta No. 3 -Clientes …………………………………………. 58 Tabla No. 16: Pregunta No. 4 - Clientes…………………………………………... 59 Tabla No. 17: Pregunta No. 5 - Clientes…………….………………………….. 60 Tabla No. 18: Pregunta No. 5 - Clientes………….……………………………….. 61 Tabla No. 19: Características de los usuarios……………………………………... 73 Tabla No. 20: Estructura General del Portal………………………………….…… 80 Tabla 21: Diccionario de Datos……………………………………………………. 83 X10 ÍNDICE DE FIGURAS PÁG. Figura No. 01: Servidor Web……………………………………………………… 12 Figura No. 02: Oracle Modo de Conexión………………………………………... 15 Figura No. 03: Oracle Conexión…………………….…………………………….. 16 Figura No. 04: Oracle SQL Plus………………………….……………………….. 28 Figura No. 05: PL/SQL Developer……………………..…………………………. 37 Figura No. 06: PL/SQL Developer– Entorno…………………………………….. 38 Figura No. 07: Resultado pregunta No.1 - Administrativo y Vendedores………….. 50 Figura No. 08: Resultado pregunta No.2 - Administrativo y Vendedores………... 51 Figura No. 09: Resultado pregunta No. 3 - Administrativo y Vendedores……….. 52 Figura No. 10: Resultado pregunta No.4 - Administrativo y Vendedores………... 53 Figura No. 11: Resultado pregunta No. 5 - Administrativo y Vendedores……….. 54 Figura No. 12: Resultado pregunta No.6 - Administrativo y Vendedores………... 55 Figura No. 13: Resultado pregunta No. 1 - Clientes…………………………..….. 56 Figura No. 14: Resultado pregunta No. 2 - Clientes………………………………. 57 Figura No. 15: Resultado pregunta No. 3 - Clientes………...…………………….. 58 Figura No. 16: Resultado pregunta No. 4 - Clientes……………..……………….. 59 Figura No. 17: Resultado pregunta No. 5 - Cliente……………………………….. 60 Figura No. 18: Resultado pregunta No. 6 - Clientes……………………………… 61 Figura No. 19: Modelo lineal o cascada………………………….………………. 65 Figura No. 20: Flujo de Información…………………………….……………….. 67 Figura No. 21: Generar pólizas de vehículos…………………………………… 68 Figura No. 22: Funciones del Producto…………………………………………… 72 Figura No. 23: Modelo Relacional………………………………………………... 81 Figura No. 23: Ingreso a la Aplicación……………………………………………. 108 Figura No. 24: Ingreso Datos Cotización…………………………………………. 111 XI 11 RESUMEN EJECUTIVO El avance tecnológico que ha caracterizado al siglo XXI viene claramente marcado por la gran influencia que ejerce la informática y especialmente el Internet en todas las actividades del ser humano. Esto significa que todas las áreas en las que trabaja el ser humano son hoy en día influenciadas por estas dos ramas. Los negocios y las empresas no podían escapar de esta influencia, es por ello que en todas las empresas es cada día mas latente el grado de influencia de la tecnología en todas las operaciones que esta lleva a cabo. Las aplicaciones web son programas que permiten la manipulación de información a grandes distancias, utilizando el Internet como medio de enlace, es por eso que actualmente son las más utilizadas para colaborar con la gestión que lleva a cabo cualquier empresa. La aseguradora Alliance ha comprendido este efecto tecnológico y ha sentido la necesidad de incorporar una aplicación web que permita mejorar la gestión comercial que ella lleva a cabo. En el capítulo I se plantea la problemática de la empresa como su demora en las cotizaciones, la poca comunicación con sus clientes y más, es por ello que aquí se plantea como objetivos general ―Desarrollar una aplicación web para mejorar la gestión de pólizas‖, esto denota la gran importancia del software en la gestión empresarial. En el capítulo II se fundamenta científicamente las herramientas de desarrollo como son las bases de datos, Oracle, los portales web, los servidores web y el lenguaje PL/SQL. El capítulo III denominado marco metodológico permitió ratificar la problemática y orientarnos a la solución, dicha ratificación se hizo en base a encuestas. Finalmente en el Capítulo IV se desarrolla la propuesta de solución a la problemática planteada, dicha solución consiste en el desarrollo de una aplicación web en base a una metodología de elaboración de software denominada en cascada o lineal XII 12 SUMMARY The technological advance that has characterized the twenty-first century is clearly marked by the great influence exerted by the computing and especially the Internet in all the activities of the human being. This means that all the areas in which we work the human being today are influenced by these two branches. Web applications are programs that allow the manipulation of information over long distances, using the Internet as a means of link, which is why they are currently the most used to collaborate with the management that carries out any company. The insurer Alliance has understood this technological effect and has felt the need to incorporate a web application that makes it possible to improve the business management that she carries out. In the chapter I it raises the problem of the company as its delay in the contributions, the little communication with your customers and more, it is for this reason that arises here as general objectives "Develop a web application to improve the management of policies," this denotes the great importance of the software in the business management. In chapter II is scientifically based development tools such as databases, Oracle, web portals, web servers, and the language PL/SQL. Chapter III called methodological framework enabled the ratification of the problematic and orient ourselves to the solution, the ratification was made based on surveys. Finally in Chapter IV develops the proposal for a solution to the problem, the solution consists of the development of a web application on the basis of a methodology for the design of software called cascading or linear XIII 13 INTRODUCCIÓN Las empresas cada día utilizan mas el Internet como un medio de comunicación entre la empresa y el cliente, el software que permite dicha comunicación se denomina aplicaciones web ya que son programas que funcionan en el Internet. En pleno siglo XXI la gestión que desarrolla toda empresa es apoyada por la informática y por el Internet, esto quiere decir que muchos negocios se llevan a cabo bajo este medio. Las empresas aseguradoras no han escapado a esta influencia tecnológica y es por ello que también acuden a las aplicaciones web para optimizar las cotizaciones de seguros a sus clientes y en definitiva para ampliar su segmento de mercado. Las aplicaciones web utilizan diferentes programas como por ejemplo bases de datos, servidores web y software editor de imágenes, todo esto se conjuga para crear una página web o también un portal web 14 XIV V CAPITULO I EL PROBLEMA 1.1 . PLANTEAMIENTO DEL PROBLEMA Muchas de las actividades que se realizan frecuentemente están expuestas a diferentes tipos de peligros o eventualidades que pueden tener una grave repercusión en el normal desarrollo del diario vivir o hasta aquellas actividades que se consideran normales y sin ningún tipo de riesgo que por lo incierto que puede ser el destino también pueden estar expuestas a algunos sucesos graves, ya sean que se den de manera fortuita, por actividad imprudente o por otras personas, por tanto se deben buscar medios que sean útiles para poder atender las posibles eventualidades y así no quedar en situaciones dificultosas luego de un hecho poco agradable, lo que traslada a los seguros que por su contenido brindan una ayuda considerable para reparar algunas cosas y de tal formar poder cubrir algunos costos y así la situación no sea del todo mala. Sin duda alguna el alcance de este tipo de contrato hace notar en gran medida la importancia de los seguros, ya que tendrán gran acción dentro de los eventos desafortunados al suplir las necesidades económicas para atender los diferentes gastos de reparación, por lo cual la importancia de los seguros dentro de la sociedad cobra cada vez más fuerza, además que la ampliación de los seguros a diferentes campos los hace más útiles para diferentes tipos de personas y sus actividades. Lo anterior hace notar la importancia de los seguros dentro de la sociedad y en el desarrollo de un sin fin de situaciones y actividades de la vida, que pueden ser muy simples para algunos 1 pero pueden tener sus riesgos, por tanto la importancia de los seguros es de gran evidencia al tener tantas características benéficas para aquellas personas amparadas por algún tipo de seguros y que por una u otra cosa han tenido que vivir una situación de alto riesgo como un choque o un accidente de carácter laboral al operar alguna maquina peligrosa. Uno de los campos en los que más se evidencia la importancia de los seguros, es en el transporte por medio de vehículos automotor y motocicletas, ya que la velocidad mezclada con otras eventualidades dan cabida a un gran número de accidentes, por lo cual ante los daños físicos y materiales de los vehículos, las diferentes clases de seguros ayudaran a suplir costos de reparación o de hospitales; otra aspecto que se le agrega a la importancia de los seguros en lo referente al transporte, es la protección que se puede brindar en caso de transporte de cargas, puesto que esto se puede asegurar y así evitar mayores pérdidas económicas en caso de que la mercancía se dañe o se extravié. Otro de los campos en los cuales se evidencia la importancia de los seguros, es la protección ante robo o destrucción de un gran número de objetos y estructuras, así por medio de los seguros se puede brindar protección a los hogares, a las empresas o negocios, protegiendo ciertas pérdidas materiales ante casos de incendios, accidentes o robo y cualquier otro tipo de emergencias inesperadas. En la ciudad de Quito esta la Compañía de seguros Alliance, la misma que se halla ubicada en la calle 12 de Octubre número 1750 y Baquerizo Moreno, la empresa se 2 dedica esencialmente a la emisión de seguros especialmente de vehículos y domicilios. En varias de las visitas realizadas a la compañía y luego de contar con la aprobación de su gerente el Sr. Eduardo Barquet se han podido apreciar las siguientes dificultades especialmente en la gestión de pólizas para vehículos y domicilios, así tenemos: La empresa tiene una franquicia de la compañía ALLIANCE de España y por ende tiene la posibilidad de utilizar sus sistemas, pero se tiene la problemática de que las reglas de negocio son diferentes en España y Ecuador, esto significa que las leyes de los seguros se aplican de manera diferente, por lo que se dificulta el uso del software de esta empresa y para evitarse esas dificultades y las variaciones en los cálculos, los agentes de seguros emiten las pólizas de manera manual, llenando y calculando ítem por ítem. El proceso de llenado generalmente es demorado y la póliza es frecuentemente entregada varios días después de su contratación, esto muchas veces causa preocupación en los clientes, ya que se sienten desprotegidos mientras no está emitida la póliza. Como la empresa tiene sucursales en Guayaquil, Santo Domingo, Puyo, Cuenca, Ambato, etc., en varias ocasiones no se aplica el mismo criterio comercial para los cálculos de las pólizas respectivas. Los clientes no tienen la posibilidad de consultar las características de su póliza vía Internet e incluso tienen que estar llamando a un agente de seguros para que él les proforme pólizas de diferente tipo. 1.1.1 Formulación del problema ¿Cómo mejorar la gestión de pólizas en la aseguradora Alliance de la ciudad de Quito? 3 1.1.2 Delimitación del problema Objeto de Estudio: Sistemas Informáticos Campo de Acción: Nuestro campo de acción está definido en las aplicaciones web. Se trabajará con la información generada por la empresa durante el año 2012. 1.1.3 Identificación de la Línea de Investigación. Este trabajo investigativo se circunscribe a la siguiente línea de investigación: Desarrollo de Software y Programación de Sistemas. 1.2 . OBJETIVOS 1.2.1 Objetivo general Desarrollar una aplicación web mediante la cual se pueda mejorar la gestión de pólizas de la aseguradora Alliance de la Ciudad de Quito 1.2.2 Objetivos específicos Realizar una investigación bibliográfica sobre aplicaciones web, sus herramientas de desarrollo, base de datos y la gestión de pólizas en aseguradoras. Diagnosticar la gestión de pólizas que lleva a cabo la empresa de seguros y reaseguros Alliance y su necesidad de automatización. Desarrollar cada uno de los módulos de la Aplicación Web. 4 1.3 . JUSTIFICACIÓN De implementarse la aplicación web los funcionarios podrán primeramente realizar cálculos de pólizas de manera rápida y segura para con ello proformar en diferentes empresas y lograr coberturas de manera eficiente. Por otro, lado los clientes podrán consultar sus pólizas y programar sus renovaciones. Los agentes de seguros que se hallan en diversas ciudades podrán trabajar bajo el mismo criterio, lo cual es muy favorable para la empresa, en definitiva la implementación de una aplicación web permitirá mejorar los procesos relacionados con las pólizas y con ello se mejorara incluso la imagen institucional, por lo tanto se justifica plenamente el desarrollo de este software para la empresa. La Aplicación Web se desarrolla en PL/SQL Developer el cual tiene un ambiente integrado para el desarrollo, prueba, depuración de errores y optimización de PL/SQL de Oracle, almacenado en unidades de programa como paquetes y triggers, entre otros. PL/SQL Developer contiene ayuda sensitiva al contexto, descripciones de bases de datos de objetos, sintaxis resaltada, edición y búsqueda de datos, browser gráfico y muchas otras características que le hacen la vida más fácil al usuario a través de sus interfaces. 5 CAPITULO II MARCO TEÓRICO 2.1.ANTECEDENTES INVESTIGATIVOS Se realizó una investigación preliminar entre los trabajos de postgrado realizados y que se encuentran en la Biblioteca de la Universidad, realmente no se han encontrado trabajos que tengan que ver directamente con las aplicaciones web. Lo que se pudo encontrar en la investigación preliminar realizada entre las tesis de posgrado pregrado que tienen que ver con aplicaciones web podemos mencionar: Tema: ―Plan de seguridad para el área de sistemas de la Cooperativa de Ahorro y Crédito ―9 de Octubre Ltda.‖ Autores: Ing. Edwin Fernando Cruz Vega e Ing. William Genaro Velástegui Grandes De este trabajo se puede concluir que la seguridad de la información de la empresa debe ser gestionada desde el departamento de sistemas de la Cooperativa, la gestión en seguridad implica varios aspectos físicos y lógicos Tema: Red MAN para el mejoramiento de la gestión administrativa de las ―Farmacias Amazonas‖. Autores: Ing. Hector Tapiay El Ing. César Gómez En cambio en este trabajo de grado se puede apreciar como aspecto novedoso la inclusión de una metodología para el diseño de las redes de datos que conectan a las farmacias en mención. 6 2.2.FUNDAMENTACIÓN TEÓRICA El presente trabajo de grado se fundamenta teóricamente en los siguientes aspectos: 2.2.1 Teoría de portales Los portales nacen de la necesidad que se presenta en el nuevo modelo de la economía, la cual nos enseña una guía de bienvenida con información detallada cada día. Portal es un término el cual hace referencia a un Sitio Web el cual pretende servir como un sitio principal de partida para las personas las cuales se conectan a la World Wide Web. Los portales tienen un gran reconocimiento en el Internet por el poder de influencia que tienen sobre grandes comunidades a nivel mundial. El objetivo principal de emplear un portal es el de localizar información, es un servicio de valor añadido que ofrece al usuario la posibilidad de personalizar al máximo su página Web, indicando qué quiere encontrar o los campos en los que esté interesado. (Katalina Quero, 2009) Entre las características principales que podemos encontrar en todos los portales de acceso a Internet tenemos: Páginas llenas de anuncios publicitarios. Correo electrónico gratuito. Información sobre la actualidad (noticias, etc.). Sistema de búsqueda: por categorías (directorio); por palabra clave (motor de búsqueda) o ambos. Información sobre el tiempo (clima, etc.) 7 Selección de recursos de interés. Varias opciones de personalización del acceso a Internet. 2.2.1.1 Tipos de Portales Podemos distinguir fundamentalmente dos tipos de portales Portales generales, horizontales o megaportales Son aquellos cuyo contenido abarca casi todos los temas posibles de Internet. Están encaminados a un usuario estándar de Internet, su contenido recoge información de interés general como noticias de actualidad, información sobre el clima, servicios de valor añadido, etc. Es habitual además, que estos portales estén dirigidos a una comunidad específica de usuarios, generalmente de índole geográfica, un ejemplo de estos portales es el de Terra. Portales especializados o temáticos:Los portales especializados son fruto también de la verticalización de la información en Internet. Son modelos de portales los cuales tratan de proyectar los servicios genéricos de un portal horizontal en un ámbito más específico, con un criterio temático, como por ejemplo la cardiología http://www.portalcardio.com/. Los portales especializados pretenden pues satisfacer las necesidades de información de una comunidad de usuarios concreta. Según esta última afirmación podemos destacar dos tipos de portales especializados: Portales verticales: Un portal es un sitio Web que proporciona información y servicios a una industria en particular. Es el equivalente industrial específico de los 8 portales generales de la WWW pero, además de ofrecer servicios típicos centran su cobertura de contenidos en un tema o sector concreto. Portales corporativos o institucionales:Es un sitio Web que proporciona información de la empresa o institución a la que pertenece fundamentalmente a los empleados de la misma. Normalmente este tipo de portales corporativos sonuna prolongación natural de las intranets corporativas en las que se ha cuidado la organización de la información a través de la WWW que suministran 1. 2.2.2 Servidores web Un Servidor Web es un programa que implementa el protocoloHTTP (hypertext transfer protocol). Este protocolo está diseñado para transferir lo que llamamos hipertextos, páginas Web o páginas HTML (hypertextmarkuplanguage): textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de sonidos. Sin embargo, el hecho de que HTTP y HTML estén íntimamente ligados no debe dar lugar a confundir ambos términos. HTML es un formato de archivo y HTTP es un protocolo. 2.2.2.1 Servidor apache El servidor HTTP Apache es un software (libre) servidor HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.11 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero 1 QUERO Katalina, ―Mantenimiento de portales de la información‖,EditorialAgapea, Madrid-España, 2009 9 más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf eligió ese nombre porque quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor "parcheado"). El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración. Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft ). La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache 2. 2 PAVON Jacobo, ―Creación de portales web con Php y MySql‖, Editorial Agapea, Madrid-España, 2009 10 2.2.3 Procesamiento de páginas dinámicas Cuando un servidor Web recibe una petición para mostrar una página Web estática, el servidor la envía directamente al navegador que la solicita. Cuando el servidor Web recibe una petición para mostrar una página dinámica, sin embargo, reacciona de distinta forma: transfiere la página a un software especial encargado de finalizar la página. Este software especial se denomina servidor de aplicaciones. El servidor de aplicaciones lee el código de la página, finaliza la página en función de las instrucciones del código y elimina el código de la página. El resultado es una página estática que el servidor de aplicaciones devuelve al servidor Web, que a su vez la envía al navegador solicitante. Lo único que el navegador recibe cuando llega la página es código HTML puro. A continuación se incluye una vista de este proceso: 2.2.3.1 Acceso a una base de datos Un servidor de aplicaciones le permite trabajar con recursos del lado del servidor, como una base de datos. Por ejemplo, una página dinámica puede indicar al servidor de aplicaciones que extraiga datos de una base de datos y los inserte en el código HTML de la página. La instrucción para extraer datos de una base de datos recibe el nombre de consulta de base de datos. Una consulta consta de criterios de búsqueda expresados en un lenguaje de base de datos denominado SQL (StructuredQueryLanguage, lenguaje de consulta estructurado). La consulta SQL se escribe en los scripts o etiquetas del lado del servidor de la página. 11 Figura No. 01: Servidor Web Fuente: http://angelo-gestionredesdatos.blogspot.com 1. El navegador Web solicita la página dinámica. 2. El servidor Web localiza la página y la envía al servidor de aplicaciones. 3. El servidor de aplicaciones busca instrucciones en la página. 4. El servidor de aplicaciones envía la consulta al controlador de la base de datos. 5. El controlador ejecuta la consulta en la base de datos. 6. El juego de registros se devuelve al controlador. 7. El controlador pasa el juego de registros al servidor de aplicaciones. 8. El servidor de aplicaciones inserta los datos en una página y luego pasa la página al servidor Web. 9. El servidor Web envía la página finalizada al navegador solicitante. 2.2.4 Introducción a las bases de datos Una base de datos es un programa residente en memoria que se encarga de gestionar todo el tratamiento de entrada, salida, seguridad y almacenamiento de la información que él manipula3. 3 FERRER Juan, ―Aplicaciones web‖, Prentice-Hall, Barcelona-España, 2009 12 Aunque aparentemente podamos pensar que una base de datos son ficheros donde se almacena la información, en realidad esto no es así. El corazón de una base de datos es el motor que es el programa que debe estar ejecutándose en una maquina para gestionar los datos. Además de este programa y los archivos con datos existen otras utilidades auxiliares como programas para realizar copias de seguridad, interpretes SQL, etc. Las bases pueden clasificarse desde el punto de vista de organización lógica: Jerárquica (Progress) Relacionales (Oracle, Access, Sybase) Desde el punto de vista de la arquitectura y él numero de usuarios: De escritorio (Dbase, Access, Paradox) Cliente-Servidor (Oracle, Sybase). 2.2.5 Oracle Oracle4 es básicamente una herramienta cliente/servidor para la gestión de Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hacen que sólo se vea en empresas muy grandes y multinacionales, por norma general. En el desarrollo de páginas Web pasa lo mismo: como es un sistema 4 ABBEY Michael, (2002). ―Oracle 9i Guia de Aprendizaje‖, McGraw-Hill 13 muy caro no está tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL Server, etc. Vamos ahora en centrarnos en que es Oracle exactamente y como funciona la programación sobre éste. Oracle como antes he mencionado se basa en la tecnología cliente/servidor, pues bien, para su utilización primero sería necesario la instalación de la herramienta servidor (Oracle 8i) y posteriormente podríamos atacar a la base de datos desde otros equipos con herramientas de desarrollo como Oracle Designer y Oracle Developer, que son las herramientas básicas de programación sobre Oracle. Para desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5ª generación, bastante potente para tratar y gestionar la base de datos, también por norma general se suele utilizar SQL al crear un formulario. Es posible lógicamente atacar a la base de datos a través del SQL plus incorporado en el paquete de programas Oracle para poder realizar consultas, utilizando el lenguaje SQL. El Developer es una herramienta que nos permite crear formularios en local, es decir, mediante esta herramienta nosotros podemos crear formularios, compilarlos y ejecutarlos, pero si queremos que los otros trabajen sobre este formulario deberemos copiarlo regularmente en una carpeta compartida para todos, de modo que, cuando quieran realizar un cambio, deberán copiarlo de dicha carpeta y luego volverlo a subir a la carpetaLa principal ventaja de esta herramienta es que es bastante intuitiva y dispone de un modo que nos permite componer el formulario, tal y como lo haríamos en Visual Basic o en Visual C, esto es muy de agradecer. 14 Los problemas anteriores quedan totalmente resueltos con Designer que es una herramienta que se conecta a la base de datos y por tanto creamos los formularios en ella, de esta manera todo el mundo se conecta mediante Designer a la aplicación que contiene todos los formularios y no hay problemas de diferentes versiones, esto es muy útil y perfecto para evitar machacar el trabajo de otros. Pero el principal y más notable problema es la falta de un entorno visual para diseñar el formulario, es decir, nos aparece una estructura como de árbol en la cual insertamos un formulario, a la vez dentro de éste insertamos bloques o módulos que son las estructuras que contendrán los elementos del formularios, que pueden estar basados en tablas o no. 2.2.5.1 Oracle Enterprise Manager Oracle Enterprise Manager es un marco de gestión que puede utilizar para Administrar todo el entorno de Oracle, incluidas bases de datos, servidores iAS, aplicaciones y servicios. Diagnosticar, modificar y ajustar varias bases de datos. Planificar tareas en varios sistemas a diferentes intervalos de tiempo. Controlar las condiciones de la base de datos en la red. Figura No. 02: Oracle Modo de Conexión Fuente: http://www.oracle.com 15 Administrar varios nodos de red y servicios desde numerosas ubicaciones. Compartir tareas con otros administradores. Agrupar los servicios relacionados para facilitar las tareas de administración. Iniciar herramientas integradas de Oracle y terceros. Oracle Enterprise Manager5 es un marco de gestión que consta de tres capas: La Consola y sus herramientas integradas proporcionan una interfaz gráfica para que los administradores gestionen todo el entorno de Oracle. Management Servers y un repositorio de base de datos proporcionan una capa media escalable para tareas de gestión del sistema operativo. IntelligentAgents instalados en cada nodo de la red para controlar los servicios proporcionados por el nodo y para ejecutar tareas desde Management Server. Nota: También puede iniciar la Consola en modo autónomo cuando necesite administrar bases de datos sin controlar los eventos o trabajos planificados. Figura No. 03: Oracle Conexión Fuente: http://www.oracle.com 5 ABBEY Michael, (2002). ―Oracle 9i Guia de Aprendizaje‖, McGraw-Hill 16 Antes de poder utilizar la Consola de Oracle Enterprise Manager, necesita iniciar los procesos necesarios de Oracle Enterprise Manager y conectarse al repositorio de Oracle 2.2.5.2 Creación y manipulación de tablas en Oracle Como expusimos en nuestro artículo anterior, en Oracle cada estructura de información se denomina TABLA las cuales, junto a los índices y al diccionario de datos del sistema, componen la base de datos. Por lo tanto, la creación de las tablas en el proceso de programación en Oracle juega un papel muy importante. En el momento de crear las tablas se definen características a dos niveles: Tabla y Columna, como se muestran a continuación: A nivel de Tabla Nombre: Nombre de la tabla puede ser de 1 a 30 caracteres. Propietario: La tabla tiene como propietario al usuario que las crea En nuestro caso somos el usuario EIDOS. Otro usuario que desee usar nuestras tablas debe tener autorización para ello y hacer referencia a la tabla como eidos.clientes (propietario.tabla) Cantidad de Columnas: Una tabla puede tener un máximo de 254 columnas. A nivel de Columna Nombre: Puede tener de 1 a 30 caracteres. 17 Tipo de dato y su ancho CHAR Máximo de 255. Por defecto 1. NUMBER Máximo de 105 dígitos. Por defecto 44. INTEGER Numérico sin decimal. Por defecto 38. DATE Hasta el 31 de diciembre de 4712. LONG Tipo caracter con tamaño variable hasta 65535 bytes. Permite una sola columna LONG por tabla. No se puede usar en subconsultas, funciones o índices. RAW Dato en binario puro (imágenes y sonido) con un ancho máximo de 255. LONGRAW Igual que LONG, pero para almacenar datos en binario puro. Restricciones: Su función es definir reglas de validación de la columna. Para facilitar la continuidad del análisis, usaremos como ejemplo las tablas definidas en el artículo anterior: Clientes y VENTAS. La definición de restricciones al crear las tablas permite establecer reglas de validación de datos, así como los controles necesarios para mantener la integridad referencial entre tablas a través de las columnas claves. Las restricciones que se pueden definir son: Valor obligatorio: En Oracle existe el concepto de valor nulo (NULL), como un valor indefinido o ausencia de valor y que es diferente al numero 0 o al carácter espacio. Por lo tanto, para que una columna siempre tenga valor (sea obligatoria) se define como NOT NULL. 18 Rango de valores: Sirven para chequear que el valor sea mayor a un valor determinado o para que se encuentre entre dos valores. Clave Primaria: Columnas que identifican de forma única al registro, es un valor único y no nulo (NOT NULL). Por ejemplo: el código del cliente es una clave primaria que identifica de forma única e irrepetible a cada cliente. Clave Externa: Columna de la tabla que hace referencia a un valor que tiene que estar registrado en otra tabla. Por ejemplo: la columna código de la tabla VENTAS es una clave externa que hace referencia a un valor de la columna código (clave primaria) de la tabla Clientes. En la versión 8 de Oracle (que dado lo reciente de la versión 9 aún se usa ampliamente) la única restricción que estaba activa era la de valor obligatorio (NOT NULL), siendo las otras restricciones sólo declarativas, o sea, que quedaban registradas en la definición de la tabla, pero no se podían activar. En la versión 6, para garantizar la unicidad de la clave primaria, era necesario crear índices con claves únicas, aspecto éste que retomaremos más adelante. En la versión 7 de Oracle estas restricciones están implementadas, garantizándose la verificación y corrección de datos en cualquier momento sin tener que programar estos controles. Destacadas estas cuestiones veamos, entonces cómo se procede para crear las tablas Clientes y Ventas. 19 Tabla Clientes Objetivo: Ficha con datos para identificar al cliente. Consta del código del cliente (número secuencial), fecha de alta al sistema, nombre, teléfono, dirección y alguna anotación. Requisitos: Se debe identificar a cada cliente con un código único (clave primaria), registrando su nombre, teléfono y fecha de registro (estos datos son obligatorios. La dirección y anotaciones son campos opcionales. Creación de la tabla: CREATE TABLE clientes ( codigo integer NOT NULL PRIMARY KEY, fecha date NOT NULL, nombrechar(30) NOT NULL, telefonochar(20) NOT NULL, direccionchar(100), anotacion LONG ); Tabla Ventas Objetivo: Registrar las ventas con al siguiente información: Código del cliente, fecha de la venta, artículo y valor de la venta. Requisitos: El número del cliente es una clave externa que hace referencia a la columna código en la tabla Clientes. En este caso, todos los datos son obligatorios. Se controla que la columna valor sea mayor a cero. Creación de la tabla: CREATE TABLE ventas ( codigo INTEGER NOT NULL REFERENCES clientes(codigo), fecha DATE NOT NULL, articulo CHAR(20) NOT NULL, 20 valor NUMBER(10,2) NOT NULL CHECK (valor>0) Las restricciones de Claves Primaria y Clave Externa se definieron a nivel de columna, pero se pueden definir a nivel de tabla, al final de la misma, como se muestra en el fuente 3: CREATE TABLE clientes (codigo INTEGER NOT NULL, nombre CHAR(30) NOT NULL, direccion CHAR(100), anotacion LONG, PRIMARY KEY (codigo)); CREATE TABLE ventas (codigo INTEGER NOT NULL, fecha DATE NOT NULL, articulo CHAR(10), valor NUMBER(6,2) NOT NULL CHECK (valor>0), FOREIGN KEY (codigo) REFERENCES clientes(codigo)); La definición de la clave a nivel de tabla es necesaria cuando la misma está formada por más de una columna. 2.2.5.3 Unicidad de la clave con índices Para garantizar la unicidad de los valores de la clave primaria de la tabla Clientes (en la versión 6 donde esta restricción sólo es declarativa y no está activa), se debe crear un índice que garantice la unicidad de la clave principal. Un requisito importante para la unicidad de la clave principal es que las columnas de la clave se definen como NOT NULL. 21 A continuación mostraremos cómo crear el índice cliente_codigo para garantizar la unicidad de la clave primaria: CREATE UNIQUE INDEX cliente_codigo ON clientes(código); Secuencias: codificación numérica6 La codificación numérica del cliente se puede realizar con una secuencia que automáticamente genera los números enteros en orden ascendente, no siendo necesario recordar cuál fue el último número asignado ; esto evita la duplicidad de códigos. La secuencia es un objeto que genera valores enteros únicos y se emplean para crear claves primarias numéricas, con el uso del siguiente mandato: CREATE SEQUENCE codigo_cliente INCREMENT BY 1 START WITH 1; Para registrar un nuevo código con la secuencia definida anteriormente se usa la pseudocolumna código,, cliente. NEXTVAL, la cual nos dará el siguiente valor que le corresponde a la secuencia, la forma en que esto se realiza se explicará más adelante, cuando analicemos el ingreso de datos. Para conocer el valor actual de la secuencia, o sea, el último código asignado, se usa la pseudo-columna codigo_cliente.CURRVAL, desde la tablaDUAL del sistema, cuyo fin es poder consultar pseudo_columnas (como se muestra a continuación): SELECT user,sysdate,codigo_cliente.currval FROM DUAL 6 PEREZ Gabriel (2004). ―Estructuras de Oracle‖, www.cursopolis.com 22 donde: 1.- useres el nombre del usuario 2.- sysdate es la fecha del sistema 3.- codigo_cliente.currval es el último valor asignado a la secuencia. Ingreso de datos. Una vez creadas las tablas, índices y secuencias, estamos en condiciones de ingresar datos en la tabla. El ingreso, modificación y eliminación de registros se realiza fundamentalmente con el diseño de pantallas (formularios) desde el módulo SQLFORMS (que será tema de análisis específico en otro artículo). No obstante, en este artículo veremos el uso de los mandatos INSERTUPDATE y DELETE. Para ingresar un nuevo registro debemos ensayar lo que se muestra en la tabla 1: Nombre de la Tabla (acciones) Columnas INSERT INTO CLIENTES VALUES( codigo_cliente.NEXTVAL, 'PINTURERIAS PROPIOS', '45 67 89' TO_DATE('10/04/95','DD/MM/YY'), 'Uruguay 1234', 'LIBRERIA' ); codigo= secuencia Nombre Teléfono Fecha dirección anotación Tabla 1: Inserción de nuevos registros Fuente: www.oracle.com Como se podrá observar, en este ejemplo no se especificó la lista de columnas a insertar, lo que indica que se van a ingresar datos para todas las columnas. Por lo tanto, los valores para cada columna se tienen que ingresar en el orden en que están definidos en la tabla. Además, es de destacar que la palabra reservada VALUES indica la lista de valores a ingresar; que los datos tipo carácter van entre comillas; que la fecha se registra 23 como una cadena de caracteres usando la función TO_DATE (encargada de transformar la cadena de caracteres '10/04/95' en fecha, a partir de un formato de fecha especificado -'DD/MM/YY'-). También observamos que a la columna codigo se le asignó el siguiente valor de la secuencia codigo_cliente (codigo_cliente.NEXTVAL). En caso de que sólo se asignaran valores a algunas columnas se debe dar la lista de columnas como se muestra a continuación correspondiente a la lista de columnas. INSERT INTO CLIENTES (codigo,nombre,teléfono,fecha) VALUES (codigo_cliente.NEXTVAL,'CASA AUGE DEPORTES', '598768',TO_DATE('15/04/95','DD/MM/YY')); Las columnas a las que se les ingresa información se listan después del nombre de la tabla, en el orden deseado. Las columnas no listadas tendrán valor NULL, por ello todas las columnas definidas como obligatorias (NOT NULL) deben estar en la lista. Los siguientes ejemplos muestran posibles errores y sus correspondientes mensajes en el registro de datos: 1.- Falta dato del teléfono que es obligatorio: INSERT INTO CLIENTES(codigo,nombre) VALUES (codigo_cliente.NEXTVAL, 'EMPRESA D' ); Mensaje de error: ORA-01400: mandatory (NOT NULL) column is missing or NULL during insert. 24 2.- Intento de registrar cliente con código ya existente: INSERT INTO CLIENTES(codigo,nombre,teléfono) VALUES (1,'EMPRESA TTT','341234'); Mensaje de error: ORA-00001: duplicatekey in index Obsérvese en el caso 2 que la secuencia codigo_clienteno fue usada al ingresar el valor del código, y sí en el caso 1, provocando error de duplicidad de código. Esto ocurre porque la creación de la secuencia no garantiza la unicidad del código, ya que podemos registrar un código de cliente sin su uso. Sin embargo, la unicidad esta garantizada por la definición del índice único visto anteriormente. Si siempre se usa la secuencia la unicidad por supuesto que está garantizada, pero la simple definición de la secuencia no es garantía de su uso. Listados de registros. A continuación veremos cómo obtener listados para revisar la información registrada, para lo cual seleccionaremos (select) registros desde (from) una tabla. En realidad el mandato SELECT será tema de análisis más detallado en la próxima entrega, por lo que ahora sólo lo trataremos con el objetivo de visualizar los datos ingresados. Para obtener un listado de todas las columnas y todos los registros de la tabla Clientes debemos seguir este procedimiento: Nombre de la tabla SELECT * FROM clientes; Donde * = Todas las columnas El resultado es el que se muestra en la siguiente tabla 25 Código 1 2 3 4 Fecha 10-Apr-95 15-Apr-95 20-Apr-95 30-Apr-95 Nombre Pinturerías propios Casa Auge deportes Feria del libro Club de tenis Teléfono 45 67 89 598768 (0567)845677 905877 Dirección Zambrano 12 Anotación Ferretería Tabla 2: Resultado de la tabla clientes Fuente: El autor Para listar sólo algunas columnas de la tabla clientes el procedimiento a seguir es: SELECT codigo,nombre FROM clientes; Modificación de registros.Para modificar valores de la tabla usaremos el mandato UPDATE, con el objetivo de modificar el teléfono y la dirección del cliente Feria del libro. Para ello, basta con definir: UPDATE clientes SET telefono='234567', direccion='Andes 945' WHERE nombre='Feria del libro'; donde: Clientes es el nombre de la tabla SET es para indicar el inicio de la lista de columnas y sus nuevos valores. WHERE garantiza la selección de la fila del cliente. Es importante destacar que si no se usa la cláusula WHERE, se modificará el valor de la columna en todas las filas de la tabla. Eliminación de registros. La eliminación de registros se realiza con el mandato DELETE. El siguiente ejemplo eliminará los clientes con el código cero: DELETE FROM clientes WHERE codigo=0; 26 En este caso, si se omite la cláusula WHERE serán eliminados todos los registros de la tabla. 2.2.6 SQL Plus7 Todas las tareas anteriormente estudiadas se realizan con el módulo SQLPlus de Oracle, que trabaja en forma interactiva. A continuación enunciaremos los pasos necesarios para usar SQLPLUS y poder crear tablas, índices o secuencias, así como insertar datos y obtener listados: 1.- Llamar al programa SQLPLUS 2.- Identificación del usuario Enter user-name: EIDOS Enter password: Si la identificación es correcta se obtiene mensaje de: Connectedto: ORACLE Si, por el contrario, la identificación es incorrecta se recibe el siguiente mensaje: ERROR: ORA-01017: invalidusername/password; logondenied 3.- Indicador en pantalla de que SQLPlus está a la espera de la orden: 7 PEREZ César, ―Oracle 11g, curso práctico‖, McGraw-Hill, Mexico-México, 2009 27 Figura No. 04: Oracle SQL Plus Fuente: www.Oracle.com 4.- Escribir los mandatos de creación de tablas, índices y secuencia en un archivo (TABLAS.SQL) con el uso del editor. SQL>edit tablas 5.- Ejecutar los mandatos escritos en el archivo TABLAS.SQL SQL>@tablas 6.- Para salir de SQLPlus SQL>exit Otras tareas. A continuación examinaremos una serie de mandatos, a nivel de definición de las tablas, gracias a los cuales se puede: Listar estructuras de las tablas (DESCRIBE) Modificar la estructura de las tablas (ALTER TABLE) Renombrar las tablas (RENAME) Eliminar una tabla (DROP TABLE) Eliminar un indice (DROP INDEX) Consultar las tablas del diccionario Listado de tablas, Índices y secuencias propiedad del usuario. 28 Detengámonos en los detalles más significativos de cada una de dichas tareas: 1.- Listar estructura de las tablas (DESCRIBE) Para obtener la estructura (descripción de una tabla) el mandato que se debe emplear es: SQL>DESCRIBE clientes; Con lo que el resultado será el que se ofrece en la tabla 3. Name Null? Type NUMERO NOT NULL NUMBER(38) FECHA NOT NULL DATE NOMBRE NOT NULL CHAR(30) TELEFONO NOT NULL CHAR(20) DIRECCION CHAR(100) ANOTACION LONG Tabla 3: Resultado del uso del mandato DESCRIBE Fuente: El autor 2.- Modificar la estructura de las tablas (ALTER TABLE) La modificación de la estructura de las tablas con el uso de ALTER permite: - Añadir nuevas columnas. - Añadir restricciones a una columna, en este caso la tabla no debe contener datos. - Modificar el ancho de la columna. - Modificar el tipo de datos de la columna sólo si la columna no contiene datos o está vacía. 29 - Modificar al tipo LONG sólo una columna sin restricciones. El siguiente ejemplo muestra cómo añadir, en la tabla Ventas, las columnas Factura (para registrar el número de factura) y Cobro (tipo carácter con 2 posibles valores, N=NO cobrada, NULL=cobrada) y modificar la columna valor para ampliar su ancho. ALTER TABLE ventas ADD ( factura integer,cobro char) MODIFY (valor number) 3.- Renombrar las tablas (RENAME) Para cambiar el nombre de la tabla Clientes a EMPRESAS se usa el siguiente mandato: SQL>RENAME clientes TO empresas; 4.- Eliminar una tabla (DROP TABLE) Le eliminación de la tabla es como sigue: SQL>DROP TABLE clientes; En este caso se eliminan, también, todos los índices de la tabla. 5.- Eliminar un índice (DROP INDEX) SQL>DROP INDEX cliente_codigo; 6.- Consultar las tablas del diccionario. Toda la información de las tablas está registrada en el diccionario del sistema (Data Dictionary), que son tablas especiales que se crean en la instalación de ORACLE (que son administradas por el sistema). Para consultar la lista de tablas que componen el diccionario se escribe: SQL>HELP DATA DICT Gracias a lo cual se muestra una lista con la información de la tabla 4: 30 Nombre de la tabla Descripción ACCESSIBLE_COLUMNS columns of all tables, views, and clusters ACCESSIBLE_TABLES tables and views accessible to the user AUDIT_ACTIONS maps action type numbers to action type names ALL_INDEXES descriptions of indexes on accessible ALL_SEQUENCES descriptions of the user's own sequences ALL_TABLES description of tables accessible to the user USER_TABLES descriptions of the user's own tables USER_TAB_COLUMNS columns of the user's tables, views, and clusters USER_TAB_GRANTS grants on objects where the user is the owner, grantor, or grantee Tabla 4: Resultado del uso del mandato SQL>HELP DATA DICT Fuente: http://www.infor.uva.es/~jvegas/cursos/bd/sqlplus/sqlplus.html#columnas También podemos ver la estructura de una tabla del diccionario como se muestra SQL>DESCRIBE ALL_TABLES; SQL>DESCRIBE all_indexes; SQL>DESCRIBE all_sequences; 7.- Listar las tablas, índices y secuencias definidas por un usuario. Para lastablas: SQL>SELECT TABLE_NAME "TABLA" FROM ALL_TABLES WHERE OWNER='EIDOS'; Resultado: Clientes y Ventas Para los índices: SQL>SELECT table_name,index_name FROM all_indexes WHERE owner='EIDOS'; Resultado: Clientes (con índice Cliente_Nombre y Cliente_Numero) y Ventas (con índice Venta_Numero) Para las secuencias: SQL>SELECT sequence_name FROM all_sequences WHERE sequence_owner='EIDOS'; Resultado: el nombre de la secuencia usada (SEQUENCE_NAME) Codigo_Cliente 31 Como hemos visto, la creación de las tablas constituye el fundamento del diseño de cualquier sistema a desarrollar en Oracle. Una vez definida las tablas el paso lógico siguiente es conocer las técnicas para realizar un adecuado uso de la información contenida en el sistema. 2.2.7 La familia de Oracle8 Oracle Edición Estándar. Esta versión fue conocida como Servidor de grupos de trabajo (Workgroup). Este producto está considerado base de datos multiusuario pero con un número limitado de usuarios. Actualmente existe para Windows, Unix y Linux. Oracle Edición Enterprise. Está dirigido a implementaciones a gran escala y funciona en más plataformas que la Estándar e incluye mejoras en el manejo de redes, administración, características de Data Warehousing. También tiene otras opciones para funciones especiales tales como integración con datos a sistemas de información geográfica, Sonido y Vídeo. Personal Oracle. Esta versión es para un solo usuario y es usada normalmente por desarrolladores que trabajan individualmente en sus máquinas. Como "personal" Oracle comparte las mismas características que el Enterprise, las aplicaciones pueden ser transportadas al área de producción real sin ningún problema. Algunas compañías lo utilizar para aplicaciones móviles o donde requieren un sólo usuario aunque para ello es mejor y más económico utilizar el "Oracle Lite". Oracle Lite. Fue conocido como el "Oracle Móvil" y esta diseñado para usuarios que utilizan dispositivos móviles inalámbricos. Este producto difiere de los demás porque 8 COREY Michael, ―Puesta a punto de Oracle‖, Editorial Agapea, Madrid-Españá, 2009 32 no utiliza el mismo núcleo del resto de la familia. En lugar de ello Oracle desarrolló un nuevo núcleo que requiere de muy poca memoria para hacerlo compatible con las computadoras portátiles incluyendo las agendas electrónicas basadas en los sistemas operativos Windows CE y Palm OS. (Requiere menos de un megabyte de memoria). Obviamente es posible intercambiar datos (replicación) entre este producto con cualquier otra base de datos de la familia. Además como Oracle Lite funciona con el mismo SQL que sus hermanos mayores, los programas diseñados para los otros miembros pueden funcionar también con este producto. Oracle 9iAS (Application Server). La popularidad de Internet e Intranet ha estado cambiando el concepto de cliente-servidor (Donde los clientes eran computadores con suficiente capacidad para manejar parte de los programas) a un concepto de arquitectura de tres capas (Donde el cliente solamente necesita de un navegador de Internet para correr las aplicaciones y programas). Oracle 9iAS, que remplaza al Oracle Application Server (OAS) y al Oracle Web Application, permite colocar las aplicaciones tradicionales de cliente-servidor a un ambiente completo de Internet e Intranet. También añade nuevas capacidades para publicaciones de páginas HTML. Oracle Internet Developer Suite. Oracle también ha elaborado una familia de productos para desarrollo de aplicaciones: Oracle FormsDeveloper. Provee de una poderosa herramienta basada en formas para el desarrollo de aplicaciones tradicionales cliente-servidor o para la arquitectura de tres capas utilizando Oracle 9iAS. Es considerada de 4ta. Generación y permite construir 33 aplicaciones transaccionales muy robustas. La versión 6 de este producto tiene una máquina virtual de Java para su presentación en internet. Oracle ReportsDeveloper. Está diseñada para el desarrollo y producción de reportes para ser publicados via internet (con Oracle 9iAS) o en el concepto tradicional clienteservidor. Oracle JDeveloper. Fue introducido en 1998 para desarrollar aplicaciones en Java. Tiene muchas ayudas para evitar que el programador tenga que escribir mucho código de bajo nivel. El código de Java es más flexible para el concepto de Internet pero desafortunadamente, es menos productivo que el concepto tradicional de 4ta. Generación como Formas. Actualmente se están haciendo esfuerzos para mejorarlo ya que tiene la ventaja de programación orientada a objetos. Oracle Designer. Provee un interfase gráfico para realizar aplicaciones muy rápidas eliminando la programación tradicional. Esta herramienta recibe los requerimientos y los convierte en programas de Forms, Reports, HTML y C++. Todo esto suena fantástico pero tiene un requisito: Los requerimientos deben estar completamente establecidos antes de usarlo, de lo contrario puede requerir más tiempo implementación que con la programación tradicional. Oracle Discoverer. Es una herramienta para el usuario final que desea generar su propia información a partir de los datos existentes sin depender de un programador. Su objetivo es realizar análisis de negocios: Ver tendencias, creación de escenarios etc. Oracle 9iAS Portal. Fue introducido como WebDB en 1999 y provee una herramienta para desarrollar páginas HTML en Internet con capacidad de utilizar otros productos de Oracle como Reporte. 34 La gran mejora de este producto respecto a su antecesor es que se puede usar "portlets" que permite a una página de Internet dividirse entre diferentes áreas que pueden independizar la información desplegada e interactuar con el usuario. 10gGrids: Lo Mejor para su Empresa. Con Oracle Database 10g, la primera diseñada para gridcomputing, usted puede reducir los costos de IT al automatizar los servidores en cluster y la administración para asignar recursos en forma dinámica. Las críticas editoriales elogian el valor, la escalabilidad y capacidad de administración de Oracle, y los analistas colocan a Oracle como el líder en amplitud de visión y capacidad de ejecución. Los bajos precios convierten a Oracle Database 10g en la mejor opción para pequeñas, medianas y grandes empresas. Y solamente Oracle ofrece los beneficios de clustering alta disponibilidad y escalamiento horizontal a pedido—con Oracle Real ApplicationClusters. 2.2.8 PL/SQL Developer ¿Qué es PL/SQL? Para responder a esta pregunta, es importante recordar que cada sitio web que usted visita, cada aplicación que ejecuta se construye a partir de una pila de tecnologías de software. En la parte superior de la pila está la capa de presentación, que son las pantallas o los dispositivos interactivos con los que el usuario interactúa directamente9. En estos días los idiomas más populares para implementar las capas de presentación son Java y .NET. En la parte inferior de la pila está el código de máquina que se 9 FUNDACIÖN Proydesa, ―PL/SQL Oracle database‖, www.slideshare.net/proydesa/presentacion-plsql, 2008 35 comunica con el hardware. En algún lugar en medio de la pila de la tecnología se encuentra la base de datos, un software que nos permite almacenar y manipular grandes volúmenes de datos complejos. La tecnología de base de datos relacional, construida alrededor de SQL, es la tecnología de base de datos dominante en el mundo hoy. SQL es un muy poderoso lenguaje orientado a conjuntos, cuyo único propósito es manipular el contenido de bases de datos relacionales. Si usted escribe aplicaciones construidas sobre bases de datos Oracle, usted (o alguien que escribe código en un nivel más bajo en la pila de la tecnología) debe estar ejecutando instrucciones SQL para recuperar datos o cambiar los datos en esa base de datos. Sin embargo, SQL no se puede utilizar para implementar toda la lógica de negocio y la funcionalidad que los usuarios finales necesaria en nuestras aplicaciones. Esto nos lleva a PL/SQL. 2.2.8.1 Procedural Language/StructuredQueryLanguage Es un lenguaje de programación incrustado en Oracle. PL/SQL soportará todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL, incluyendo nuevas características. Está incorporado en un entorno de base de datos donde los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus 3 36 Figura No. 05: PL/SQL Developer Fuente: PL/SQL Developer PL/SQL Combina el poder de manipular datos, con SQL, y la facilidad de procesar los mismos, como en los modernos lenguajes de programación. Ejemplo: CREATE TABLE plana(nro NUMBER(3), mensaje VARCHAR2(20));DECLARE cont NUMBER(4) := 0;BEGIN LOOP INSERT INTO plana VALUES(cont, No debotirartizas); cont := cont + 1; EXIT WHEN cont = 1000; END LOOP;END; Ejemplo: CREATE TABLE plana(nro NUMBER(3), mensaje VARCHAR2(20));DECLARE cont number(3) := 500;BEGIN WHILE cont> 0 LOOP INSERT INTO plana VALUES (cont, Solicitudnro || cont); cont := cont - 1; END LOOP;END; PL/SQL Es un lenguaje estructurado en bloques. Un bloque PL/SQL tiene tres partes que son: Una sección de Declaración Una sección de Ejecución Y otra de manejo de Excepciones. 37 Figura No. 06: PL/SQL Developer - Entorno Fuente: PL/SQL Developer Cursores.- Son áreas de trabajo que permiten ejecutar sentencias SQL y procesar la información obtenida de ellos. Subprogramas.- En PL/SQL existen dos tipos de subprogramas, llamados procedimientos y funciones, los que pueden manejar parámetros de entrada y de salida. Paquetes.- Almacenan lógicamente un conjunto de tipos de datos relacionados, variables, cursores e incluso subprogramas. 2.2.8.2 Ventajas en la utilización de PL/SQL Ciertamente, es posible crear aplicaciones sobre SQL y base de datos Oracle sin usar PL/SQL. La utilización de PL/SQL para realizar operaciones específicas de bases de 38 datos, en particular la ejecución de sentencias SQL, ofrece varias ventajas, sin embargo, incluyendo una estrecha integración con SQL, un mejor desempeño debido a la reducción del tráfico de red, y la portabilidad (los programas PL/SQL se pueden ejecutar en cualquier instancia de una base de datos de Oracle). Así, el código de la interfaz del usuario de muchas aplicaciones ejecuta tanto sentencias SQL y bloques PL/SQL, para maximizar el rendimiento al tiempo que mejora la capacidad de mantenimiento de esas aplicaciones. 2.2.9 Lenguaje de consultas Sql El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del método OpenRecordSet y como la propiedad RecordSource del control de datos. También se puede utilizar con el método Execute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a través para manipular bases de datos remotas cliente - servidor. Componentes del sql. El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Microsoft SQL Server es la mejor base de datos para Windows NT Server. Posee los mejores registros de los benchmarks independientes (TCP) tanto en transacciones totales como en coste por transacción. 39 Gestión: Con un completo interfaz gráfico que reduce la complejidad innecesaria de las tareas de administración y gestión de la base de datos. Diseñada desde su inicio para trabajar en entornos Internet e Intranet, Microsoft SQL Server es capaz de integrar los nuevos desarrollos para estos entornos específicos con los desarrollos heredados de aplicaciones "tradicionales". Es más, cada aplicación que desarrollemos para ser empleada en entornos de red local puede ser utilizada de forma transparente -en parte o en su totalidad- desde entornos Internet, Intranet. Diseñada para INTERNET: Es el único gestor de base de datos que contiene de forma integrada la posibilidad de generar contenido HTML de forma automática. La Base de Soluciones Integradas: La Integración total con BaclOffice permite resolver toda las necesidades de infraestructura de la empresa con un sólo paquete. Potente y Escalable: Microsoft SQL Server es la única base de datos cuyo rendimiento sobre Internet está publicado, ofreciendo registros espectaculares. Mínimo coste de Propiedad: La sencillez de la instalación, y la potencia de sus herramientas de gestión y el menor coste de toda la industria para entornos Internet, hacen de Microsoft SQL Server la mejor opción con el menor coste. 2.2.10 La gestión empresarial. El concepto de gestión posee preliminares básicos correspondientes a la organización, lo que implica que éste aplicado en una empresa o en un negocio examina algunos de los objetivos principales correspondientes a la misma. Es importante tener en cuenta en este concepto que ninguna empresa puede subsistir si no posee algún tipo de beneficio, por lo que siempre se debe mantener un cierto nivel de competencia con las 40 otras empresas que se dedican a fabricar y elaborar los mismos productos que la nuestra. El concepto de gestión se mueve en un ambiente en el cual, por lo general, los recursos disponibles escasean, y en base a esto, la persona encargada de la gestión debe aplicar diferentes fórmulas para que se esta manera se logren persuadir y motivar constantemente a todas las fuentes del capital empresarial, con el objetivo de lograr que las mismas apoyen todos los proyectos que la empresa planea emprender10. Si nos enfocamos en la aplicación del concepto de gestión para llevar a cabo las actividades de una empresa, es importante destacar que por lo general, el mismo suele tener mucha más aplicación en las empresas de propiedad privadas, que son más conocidas como el sector privados empresarial. De todas formas debemos decir que las empresas que le pertenecen al sector público, es decir, aquellas que son propiedad del estado, también suelen tener buenos modelos de gestión, pero los mismos suelen independizarse bastante de lo que es el concepto de gestion más técnico. Y es aquí en donde radica la diferencia más grande, ya que el sector privado, aplicando el concepto de gestión en el desarrollo de sus actividades obtiene muchas más ganancias que una empresa correspondiente al sector público, es por ello que es importante considerar la tecnicidad del concepto de gestión como parte de la gestión empresarial. De todas formas es importante también que se haga mención del hecho lógico que nos confirma que las empresas privadas cuentan con muchos más recursos que aquellas del Estado, y uno de esos recursos esla tecnología, una herramienta que ha ayudado ampliar el concepto de gestión en todas las aplicaciones correspondientes. 10 DOMINGUEZ Pedro, ―Introducción a la gestión empresarial‖, /www.monografias.com/trabajos53/libro-gestion-empresarial/libro-gestion-empresarial.shtml, 2007 41 2.2.10.1 La gestión y sus cuatro funciones principales Debemos decir que el concepto de gestión aplicado a la administración de empresas obliga a que la misma cumpla con cuatro funciones fundamentales para el desempeño de la empresa; la primera de esas funciones es la planificación, que se utiliza para combinar los recursos con el fin de planear nuevos proyectos que puedan resultar redituables para la empresa, en términos más específicos nos referimos a la planificación como la visualización global de toda la empresa y su entorno correspondiente, realizando la toma de decisiones concretas que pueden determinar el camino más directo hacia los objetivos planificados. La segunda función que le corresponde cumplir al concepto de gestion es la organizaciónen donde se agruparan todos los recursos con los que la empresa cuenta, haciendo que trabajen en conjunto, para así obtener un mayor aprovechamiento de los mismos y tener más posibilidades de obtener resultados. La dirección de la empresa en base al concepto de gestión implica un muy elevado nivel se comunicación por parte de los administradores para con los empleados, y esto nace a partir de tener el objetivo de crear un ambiente adecuado de trabajo y así aumentar la eficacia del trabajo de los empleados aumentando las rentabilidades de la empresa. El control es la función final que debe cumplir el concepto de gestion aplicado a la administración, ya que de este modo se podrá cuantificar el progreso que ha demostrado el personal empleado en cuanto a los objetivos que les habían sido marcados desde un principio. Teniendo todo esto que ha sido mencionado en cuenta, podemos notar la eficiencia que posee el hecho de llevar a cabo la administración de empresas en base al concepto de gestión. El mismo aporta un nivel mucho más alto de organización permitiendo así 42 que la empresa pueda desempeñarse muy bien en su área de trabajo. En el caso de que emprenda un nuevo negocio o una empresa, con el objetivo de que la misma llegue a grandes estatutos empresariales, le recomendamos entonces que la administración correspondiente a su empresa se encuentre regida por el concepto de gestión, y de esta manera se aumentaran los niveles de posible éxitos que se pueda tener en la empresa. 2.2.11Los seguros. El seguro es un contrato por el cual una de las partes (el asegurador) se obliga, mediante una prima que le abona la otra parte (el asegurado), a resarcir un daño o cumplir la prestación convenida si ocurre el evento previsto, como puede ser un accidente o un incendio, entre otras. El contrato de seguro puede tener por objeto toda clase de riesgos si existe interés asegurable, salvo prohibición expresa de la ley. Por ejemplo: Los riesgos de los incendios. Los riesgos de las cosechas. La duración de la vida de uno o más individuos. Los riesgos del mar. Los riesgos de los transportes por aire o tierra. El asegurador por lo general es una compañía de seguros organizada bajo la forma de sociedad anónima; pero también existen cooperativas y mutualidades de seguros e incluso un organismo oficial – La caja de Ahorro y Seguro – realiza operaciones de este tipo. Asimismo, en algunas provincias funcionan entidades aseguradoras oficiales. El contrato de seguro es consensual, bilateral y aleatorio. Es consensual porque se perfecciona por el mero consentimiento de las partes y produce sus efectos desde que 43 se ha realizado la convención; es bilateral puesto que origina derechos y obligaciones recíprocas entre asegurador y asegurado, y es aleatorio porque se refiere a la indemnización de una pérdida o de un daño producido por un acontecimiento o un hecho incierto, pues no se sabe si se va a producir y en el caso contrario – como ocurre con la muerte no se sabe cuándo ello ha de acontecer11. 2.2.12. Polizas de Seguros. Una póliza de seguro es un contrato entre el asegurado y una Compañía de Seguros, donde se establecen los derechos y obligaciones de ambas partes, las Coberturas (son los riesgos que asume el asegurador y que se describen en la póliza), en relación al seguro contratado. Existe una gama muy amplia de riesgos a asegurar, por lo que se recomienda que antes de tomar un seguro, se informe detalladamente de las características del producto, para determinar con precisión los riesgos cubiertos y las exclusiones existentes. Una vez que acepte la propuesta, se procede con la Solicitud de la Póliza (Formulario impreso con las coberturas y límites deseados), luego se hace la emisión de la póliza bajo las condiciones pautadas.Es el Período por el cual se ha contratado una póliza, generalmente es de 365 días, pero se puede contratar por el tiempo que desee el solicitante y se especifica en el cuerpo de la Póliza.Cuando se cumple la vigencia de la Póliza, ésta se renueva automáticamente. En el documento de renovación se expresa la nueva vigencia y las modificaciones solicitadas por el asegurado, si las hay. De no haber modificaciones solicitadas por el asegurado, mediante comunicación escrita previo a la renovación; el seguro se renueva bajo las mismas condiciones pautadas en el contrato original.Todo contrato puede cancelarse por voluntad del Asegurado o del 11 AGOSTINA, ―Segurois‖, http://www.monografias.com/trabajos5/segu/segu.shtml, 2008 44 Asegurador en los casos que se pueda; pero en los seguros de propiedades, seguros de Vida y Fianzas el Asegurador no puede cancelar el contrato unilateralmente.Cuando la cancelación es por voluntad del Asegurador, deberá dar aviso al Asegurado con diez días de anticipación a la fecha de cancelación; el Asegurado puede hacerlo en cualquier momento, mediante comunicación escrita al Asegurador. 2.3. IDEA A DEFENDER Y VARIABLES ―Con la implementación de una aplicación web caracterizada por módulos como consulta y emisión automática de pólizas se mejorará la gestión de las mismas en la aseguradora Alliance de Quito‖ Variables: Variable independiente: Aplicación web Variable Dependiente: Gestión de pólizas 45 CAPITULO III MARCO METODOLÓGICO 3.1. MODALIDAD DE LA INVESTIGACIÓN El paradigma de investigación que se utilizó es el cuantitativo - cualitativo. La característica cualitativa del modelo permitirá averiguar sobre las cualidades del problema es decir se investigara sobre todos los síntomas que presenta el problema para orientarnos a la solución. En este caso la sintomatología hace referencia a la gestión de las pólizas en la empresa, entendiéndose por esta gestión al proceso de oferta, de consulta y de venta en general La investigación cuantitativa es aquella en la que se recogen y analizan datos cuantitativos o numéricos sobre las variables. Los investigadores cualitativos hacen registros narrativos de los fenómenos que son estudiados mediante técnicas como la observación participante y las entrevistas no estructuradas. La investigación cuantitativa trata de determinar la fuerza de asociación o correlación entre variables, la generalización y objetivación de los resultados a través de una muestra para hacer inferencia a una población de la cual toda muestra procede. 3.2.TIPOS DE INVESTIGACIÓN Se utilizaron algunos tipos de investigación como: 46 3.2.1 Investigación bibliográfica Consiste en la búsqueda de información existente en libros, revistas e internet se la aplico para la elaboración del marco teórico específicamente en la fundamentación teórica de las herramientas informáticas que se utilizan para elaborar la propuesta, esto quiere decir que se fundamento el manejo de Oracle, de pl/sql y de la gestión empresarial en general. La investigación bibliográfica constituye un punto de partida para la realización del proceso de investigación, ya que permite analizar y evaluar aquello que se ha investigado y lo que falta por indagar del objeto o fenómeno de estudio. 3.2.2 Investigación de campo La investigación de campo trata de averiguar la manifestación sintomática del problema en el mismo sitio donde este se genera esto se significa que se realizó encuestas y entrevistas en la empresa a nivel nacional. Este tipo de investigación fué muy útil para la elaboración del marco metodológico. 3.3. POBLACIÓN Y MUESTRA La población está compuesta por todos los involucrados en el problema ya sea de manera o indirecta. A continuación la cuantificamos en el siguiente cuadro. 47 FUNCIÓN NUMERO Directivos 2 Empleados administrativos y agentes de seguros Clientes 11 180 TOTAL 193 Tabla 5: Población Fuente: El autor La muestra es un porcentaje de la población y será calculada en base a la siguiente formula Población Muestra = __________________________ (Población - 1 ). error 2 +1 Se asume un error del 5 % (0.05) 193 Muestra =_______________ (193-1)*(0.05)2+1 Muestra = 130 La muestra se estructuró de la siguiente forma: FUNCIÓN NUMERO Directivos 2 Empleados administrativos y agentes d eseguros 11 Clientes 117 TOTAL Tabla 6: Muestra Fuente: El autor 48 130 3.4.MÉTODOS, TÉCNICAS E INSTRUMENTOS Se aplicó el método inductivo deductivo para resolver un problema en particular y extenderlo a lo general. En cuanto a las técnicas utilizadas para recopilar información tenemos: La encuesta realizada a los directivos, empleados administrativos, agentes de seguros y clientes El instrumento que se utilizó para la investigación es: El cuestionario 49 3.5. INTERPRETACIÓN DE RESULTADOS Encuesta a los clientes internos (Personal administrativo y vendedores). Pregunta No 1. ¿Las reglas de seguros son las mismas en España y en el Ecuador? Respuestas Frecuencia Porcentaje Si 0 0% No 13 100% 13 100% Total Tabla No. 7: Pregunta No.1 Administrativo y Vendedores Fuente: El autor Si No 0% 100% Figura No. 07: Resultado pregunta No.1 - Administrativo y Vendedores Fuente: El autor Se ratifica que las reglas del negocio de seguros son diferentes en España que en Ecuador 50 Pregunta No 2. ¿El cálculo y emisión de las pólizas es? Respuestas Frecuencia Porcentaje Manual 8 62% Semi automático 4 31% Automático 1 8% 13 100% Total Tabla No. 8: Pregunta No.2 - Administrativo y Vendedores Fuente: El autor Mnaual Semi automático Automático 8% 31% 61% Figura No. 08: Resultado pregunta No.2 - Administrativo y Vendedores Fuente: El autor La gran mayoría considera que la emisión de pólizas es un proceso manual 51 Pregunta No 3 ¿Existen demoras y errores de cálculo durante la emisión de una póliza? Respuestas Frecuencia Porcentaje Si 6 46% No 4 31% A veces 3 23% 13 100% Total Tabla No. 9: Pregunta No.3 - Administrativo y Vendedores Fuente: El autor Si No A veces 23% 46% 31% Figura No. 09: Resultado pregunta No. 3 - Administrativo y Vendedores Fuente: El autor De los resultados se deduce que si se producen errores y demoras en la emisión de las pólizas respectivas 52 Pregunta No 4 ¿Los clientes se sienten ya asegurados luego de contratar la póliza aunque esta no ha sido emitida? Respuestas Frecuencia Porcentaje Si 9 69% No 4 31% 13 100% Total Tabla No. 10: Pregunta No.4 - Administrativo y Vendedores Fuente: El autor Si No 31% 69% Figura No. 10: Resultado pregunta No.4 - Administrativo y Vendedores Fuente: El autor Existe un 30% que considera que los clientes no se sienten asegurados luego de adquirir la póliza ya que esta no es emitida todavía 53 Pregunta 5 ¿Cree usted que la Empresa necesita obligatoriamente un portal web donde existan opciones para calculo y consulta de pólizas? Respuestas Frecuencia Porcentaje Si 11 85% No 2 15% 13 100% Total Tabla No. 11: Pregunta No.5 - Administrativo y Vendedores Fuente: El autor Si No 15% 85% Figura No. 11: Resultado pregunta No. 5 - Administrativo y Vendedores Fuente: El autor Un 85% de los encuestados considera que la empresa necesita de un portal web 54 Pregunta No 6. ¿Considera usted que con la implementación de un portal web se podrá mejorar la gestión de pólizas en la empresa? Respuestas Frecuencia Porcentaje Si 13 100% No 0 0% 13 100% Total Tabla No. 12: Pregunta No.6 - Administrativo y Vendedores Fuente: El autor Si No 0% 100% Figura No. 12: Resultado pregunta No.6 - Administrativo y Vendedores Fuente: El autor El total de los encuestados cree que con la implementación de un portal web se mejorará la gestión de pólizas en la empresa 55 Encuesta realizada a los clientes externos de la empresa Pregunta No 1. ¿Cree usted que la emisión de pólizas es demorada? Respuestas Frecuencia Porcentaje Si 85 73% No 32 27% 117 100% Total Tabla No. 13: Pregunta No. 1 – Clientes Fuente: El autor 27% Si 73% No Figura No. 13: Resultado pregunta No.1 –Clientes Fuente: El autor Un elevado porcentaje de encuestados considera que la emisión de pólizas es demorada 56 Pregunta No 2 ¿Considera usted que durante la emisión de pólizas se pueden producir errores de cálculo muy frecuentemente? Respuestas Frecuencia Porcentaje Si 68 58% No 49 42% 117 100% Total Tabla No. 14: Pregunta No. 2 - Clientes Fuente: El autor 42% 58% Si No Figura No. 14: Resultado pregunta No. 2 –Clientes Fuente: El autor Un alto porcentaje cree que si se pueden producir errores de cálculo durante la emisión de la póliza 57 Pregunta No 3. ¿La emisión posterior a la adquisición de la póliza le provoca en usted cierta inseguridad? Respuestas Frecuencia Porcentaje Si 48 41% No 69 59% 117 100% Total Tabla No. 15: Pregunta No. 3 – Clientes Fuente: El autor 41% Si 59% No Figura No. 15: Resultado pregunta No. 3 –Clientes Fuente: El autor Muchos clientes manifiestan sentirse inseguros por la demora en la emisión de la póliza luego de que esta ha sido adquirida 58 Pregunta No 4 ¿Le gustaría a usted poder consultar vía Internet su póliza y la posibilidad de renovación anticipadamente? Respuestas Frecuencia Porcentaje Si 95 81% No 22 19% 117 100% Total Tabla No. 16: Pregunta No. 4 – Clientes Fuente: El autor 19% Si No 81% Figura No. 16: Resultado pregunta No. 4 –Clientes Fuente: El autor A un muy elevado porcentaje le gustaría poder consultar sus pólizas vía internet para incluso decidir sobre la renovación de la misma 59 Pregunta No 5 ¿Considera usted necesario para la empresa la implementación de un portal web donde haya la posibilidad de generar y consultar automáticamente las pólizas de seguros que emite la empresa? Respuestas Frecuencia Porcentaje Si 101 86% No 16 14% 117 100% Total Tabla No. 17: Pregunta No. 5 – Clientes Fuente: El autor 14% Si No 86% Figura No. 17: Resultado pregunta No. 5 –Clientes Fuente: El autor Se cree necesaria la implementación de un portal web para la empresa 60 Pregunta 6. ¿Cree usted que con la implementación de un portal web se mejorará la gestión de la empresa relacionada con las pólizas de seguros? Respuestas Frecuencia Porcentaje Si No Total 108 92% 9 8% 117 100% Tabla No. 18: Pregunta No. 5 – Clientes Fuente: El autor 8% Si No 92% Figura No. 18: Resultado pregunta No. 6 – Clientes Fuente: El autor Se deduce de lo manifestado que la implementación de un portal web permitirá la mejora de la gestión de pólizas 61 3.6 CONCLUSIONES TEÓRICO-METODOLÓGICAS DE LA INVESTIGACIÓN DE CAMPO. De la investigación desarrollada se puede concluir lo siguiente: Las reglas de negocio en cuanto a seguros defieren entre España y Ecuador, por ello es que los programas con que cuenta la empresa no pueden ser utilizados en nuestro país Existen demoras y errores de cálculo durante la emisión de las pólizas de seguros. La posterior emisión de las pólizas a su contratación genera un cierto periodo de inseguridad en los clientes de la empresa. A muchos usuarios les gustaría poder consultar sobre los datos de su póliza vía Internet para tener la posibilidad de análisis antes de su renovación. Se hace necesario que la empresa disponga de un portal web donde se pueda generar y consultar las pólizas rápidamente. Con la implementación de un portal web se tendrá la posibilidad de mejorar la gestión de pólizas que desarrolla la empresa. Las recomendaciones de la invetigación son: Debe existir una actualización continua sobre las reglas del negocio del Ecuador en cuanto a las emisiones de pólizas de seguros para evitar contratraciones equívocas. La base de datos debe ser renovada continuamente en el ingreso de nuevos modelos de vehículos para la emisión de pólizas de seguros. La empresa debe promocionar el uso del portal web para la consulta y renovación de pólizas. 62 CAPITULO IV MARCO PROPOSITIVO 4.1 TEMA: ―Aplicación Web para la gestión de pólizas en la aseguradora Alliance S.A.” 4.2 FUNDAMENTACIÓN. El presente trabajo investigativo está fundamentado en algunos temas de tipo informático así como de tipo comercial.En el aspecto informático deberemos señalar que se han utilizado algunas herramientas relacionadas con el diseño Web, primeramente mencionaremos al Dreamweaver de Macromedia como el entorno de elaboración de las páginas estáticas, en lo dinámico se ha utililzado PL/Sql de Oracle 11i express. La base de datos que contiene toda la información de la empresa, es el motor conocido como ORACLE. Se debe mencionar también que en la elaboración de la aplicación web han intervenido algunas herramientas adicionales tales como Flash Macromedia, Java script y por supuesto editores gráficos como el Photoshop y Corel Draw. Para el funcionamiento de la aplicación en su fase de diseño debo mencionar que se utilizo como servidor de páginas web al Apache 4.3 OBJETIVOS DE LA PROPUESTA La presente propuesta tiene los siguientes objetivos. 63 4.3.1 Objetivo General Desarrollar una aplicación web que permita mejorar la gestión de pólizas en la aseguradora ALLIANCE S.A. 4.3.2 Objetivos Específicos. Diseñar la base de datos para almacenar la información relativa a los clientes, seguros y usuarios de la empresa. Desarrollar cada uno de los componenetes de la aplicación Web. Validar la propuesta mediante expertos 4.4 DESCRIPCIÓN DE LA PROPUESTA La propuesta planteada como solución al problema descrito en el capítulo I consiste en una Aplicación Web de tipo dinámica, la cual permitirá que los usuarios acceden directamente a varias de los procesos de consulta y generación de pólizas de seguros, los usuarios pueden ser tanto vendedores, personal administrativo y clientes. 4.5 METODOLOGÍA DE DESARROLLO DE SOFTWARE. Muchas veces es necesario inclinarse por una metodología de desarrollo de software cuando se trata de elaboras sistemas o aplicaciones de diferente tipo, pero ¿cual de las estudiadas o conocidas se adapta mejor a este campo?, pues es muy difícil adoptar una se adapta plenamente a los requerimientos que el usuario tiene. Por ello se ha utilizado 64 la metodología de tipo lineal o en cascada, la cual esencialmente consta de las siguientes partes: Figura No. 19: Modelo lineal o cascada Fuente: http://metodologiaencascada.blogspot.com/ a. Analisis. En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificación de requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar en detalles internos.Es importante señalar que en esta etapa se debe consensuar todo lo que se requiere del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir nuevos resultados a mitad del proceso de elaboración del software. b. Diseño. Se descompone y organiza el sistema en elementos que puedan elaborarse por separado. Como resultado surge el SDD (Documento de Diseño del Software), que contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así como 65 la manera en que se combinan unas con otras. Aquí se diseña las estructura de la base de datos en todas sus instancias. c. Desarrollo. Es la fase de programación. Aquí se implementa el código fuente, haciendo uso de prototipos así como pruebas y ensayos para corregir errores.Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido. d. Pruebas. Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos, antes de ser puesto e. Mantenimiento. Una de las etapas mascriticas, ya que se destina un 75% de los recursos, es el mantenimiento del Software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas. 4.6ANALISIS 4.6.1Análisis previo. Se procede a describir algunos de los procesos que se realizan en la empresa y que nos servirán de base para el diseño de la aplicación web. Estos procesos tienen relación directa con la gestión de las pólizas de seguros. Una vez conocidos los procesos se detemina el flujo de información que hace referencia a una descripción general de los procesos que la empresa realiza para lograr la captación de los seguros relacionados con los vehículos. La información fluirá de la siguiente manera: 66 Consulta de Clientes Consulta de pólizas Vendedor Cotización de seguros Gerencia Informes Aplicación Tipos de pólizas Web Usuario Consulta de pólizas Consulta pagos Cajeros Figura No. 20: Flujo de Información Fuente: El autor 67 Generación de pólizas de seguros Figura No. 21: Generar pólizas de vehículos Fuente: El autor 68 4.6.2 ERS (ESPECIFICACIÓN DE REQUERIMIENTOS SOFTWARE) La Especificación de Requerimientos de Software da a conocer un conjunto de información necesaria, que ayuda a los desarrolladores del software a analizar y entender todos los requerimientos que los usuarios desean conocer. De esta forma obtener un documento necesario cuya información se utilizará para el desarrollo completo del software. Se describe en forma detallada los requerimientos generales de la aplicación para la generación de pñolizas de la aseguradors Alliance S.A. la misma que permiteemitir de forma individual las proformas y contratos de seguro vehicular a través de una cotización previa. Se detalla interfaces de usuario, de software, del hardware y comunicaciones, necesarios para el desarrollo del sistema. El objetivo primordial es identificar y presentar los requerimientos en el desarrollo del sistema como base para las posteriores fases. a. Identificación del producto del software Aplicación Web para gestión de polizas 69 b. Objetivos del sistema Permitir la gestión de pólizas de la aseguradora Alliance S.A. c. Beneficios y objetivos del Software Beneficios Tangibles Eliminar tareas redundantes. Minimizar recursos(suministros y tiempo) Aprovechar recurso humano. Protección de la integridad de la información. Simplificación en el proceso de gestión de pólizas Beneficios Intangibles Fácil manejo de interfaces. Objetivos Específicos. Autenticar usuarios. Generar cotizaciones de seguros para vehiculos Generar la informes de cotizaciones 70 Administrar valores correspondientes de acuerdo al tipo de vehículos y accesorios adicionales para determinar el valor final del seguro vehicular. Generar advertencias en el manejo de los datos inexistentes. Generar reportes en todas las instancias de los procesos. 4.6.2.1PERSPECTIVAS DEL PRODUCTO La aplicación web esta diseñada en base a los requerimientos que exige el desarrollo de aplicaciones web y de acuerdo a la infraestructura de la aseguradora, este sistema consta de los siguientes módulos: Módulo de Cotizaciones Módulo de Solicitudes Módulo de Producción Módulo de Configuración 71 4.6.2.2 FUNCIONES DEL PRODUCTO El Sistema de facturación esta desarrollado para soportar: Figura No. 22: Funciones del Producto Fuente: El autor 72 4.6.2.3 CARACTERÍSTICAS DE LOS USUARIOS FUNCION CONOCIMIENTOS OBSERVACION TECNICOS Administrador Herramientas de Administra de la aplicación web Desarrollo Web, Gestión de Base de Datos Oracle, PLSQL developer Cotizador Herramientas Aplicación Web, Procesos de gastión de pólizas para Web a vehículos Implementarse Tabla No. 19: Caracteristicas de los usuarios Fuente: El autor 4.6.2.4 LIMITACIONES GENERALES Limitaciones hardware. Requisitos del lenguaje a utilizar Requisitos del DBMS a ser utilizado. Recursos económicos. 4.6.2.5 SUPUESTOS Y DEPENDENCIAS Migración de datos a otro DBMS. Cambio de plataforma no compatible con la aplicación. Falla de infraestructura de la conexión web. 73 4.6.2.6 REQUISITOS FUNCIONALES En este apartado se indican las exigencias funcionales que deberán ser cubiertas por la aplicación web. Los requerimientos han sido extraídos y analizados de acuerdo a las necesidades expuestas por el personal de que labora en la aseguradora Alliance. a. Generales Req 1: La aplicación debe permitir el trabajo via Internet Req 2: Se inicia con la presentación de un Portal Web para acceder a la información inicial y a la apliicación Web. Req 3: La aplicación debe permitir la validación de usuarios (Administrador y/o Cotizador) y la asignación de permisos de acuerdo a la validación del usuario. b. Administrador Req 4: La aplicación debe permitir el ingreso de nuevos usuarios. Req 5: La aplicación debe permitir agilitar la actualización de datos para la generación de pólizas. Req 6: La aplicación debe generar presupuestos de pólizas según el modelo, marca, año de fabricación y accesorios del vehiculo. Req 7:La aplicación debe permitir la configuración de usuarios y valores de las pólizas. 74 Req 8: La aplicación debe generar reportes de solicitudes de pólizas, de presupestos de polizas y listas de solicitudes aceptadas. c. Cotizador Req 9: La aplicación permitirá el ingreso de datos de los clientes para la cotización de pólizas. Req 10: La aplicación debe permitir la generación de reportes de solicitudes y cotizaciones. Req 11: La aplicación debe permitir almacenar las cotizaciones. Req 12:La aplicación debe generar presupuestos de pólizas según el modelo, marca, año de fabricación y accesorios del vehiculo. 4.6.2.7 REQUISITOS NO FUNCIONALES Se muestran los requerimientos no funcionales, que a su vez son las características principales de la aplicación a desarrollar: Compatibilidad La compatibilidad de la aplicación web se establece bajo la plataforma de Windows y PLSQL Developer 8.0 75 Fácil de manejar Una de las grandes ventajas de la aplicación a desarrollar es su facilidad de uso, pues la cotización vehicular tendrá un GUI amigable y fácil de entender no tendrá que realizar procedimientos complicados. Fiabilidad El sistema es muy fiable es decir se puede tener un alto grado de confianza en el mismo ya que garantiza la óptima replicación de los datos pues Oracle proporciona economía de escala en grids de bajo coste fáciles de gestionar, lo que facilita la reducción de los costes por inactividad con una arquitectura de máxima disponibilidad, la partición y la compresión de los datos para ejecutar consultas más rápidas y la protección y la auditoría seguras de los datos, más la posibilidad de recuperación total de los datos. Estabilidad El sistema es muy estable, pues Oracle Developer11g ofrece ventajas con respecto a sus competidores como puede ser: Un standard de programación plenamente adaptado a las normas de Sql Oracle; un entorno de programación mejorado para facilitar el desarrollo y la posiblidad de desarrollar junto al servidor IAS(Internet Aplication Server) una solución para internet; todo ello, siguiendo un standard, y una normalización de la seguridad de acceso a datos. 76 Seguridad Las seguridades que son implementadas en la base de datos y las que ofrecen Oracle permitirá el aceso al administrador y encargado de las cotizaciones por medio de un Usuario y Contraseña asignados al momento de la creación de los mismos, haciendo a este más eficiente y seguro. Flexibilidad Es la capacidad que la aplicación a adptarse al lenguaje de programación de PLSQL developer para realizar cambios tanto en la base de datos como en las interfaces, Fácil Instalación La instalación de la aplicación no es complicada ya que los interfaces estándiseñados para proporcionar a los usuarios un ambiente de trabajo amigable. 4.6.2.8 REQUISITOS DE INTERFACES EXTERNAS a. Interfaz de usuario La aplicación contará con una interfaz de usuario amigable, fácil de aprender y manejar; para las cuales se utilizara las ventanas de presentación con el manejo del teclado y el mouse. 77 b. Interfaz de software Para que la aplicación funcione correctamente se utilizaráPL/SQL que es un ambiente integrado del desarrollo para convertir, probar, eliminar errores, y las unidades storedprogram óptimas de Oracle PL/SQL tales como paquetes, y disparadores. De esta forma se ofrece descripciones sensibles al contexto de la ayuda, base de datos-objeto y donde se realizá las interfaces graficas de usuario. 4.6.2.9 REQUISITOS DE RENDIMIENTO a. Obediencia a estándares Se aplicará los estándares existentes en el área de desarrollo para el diseño del software. b. Limitaciones de hardware El hardware limitará al software de las siguientes formas: La capacidad y rendimiento que proporcione el equipo en el cual se utilizará la aplicación cliente. La capacidad que posee el servidor 78 4.7 DISEÑO. 4.7.1 Diseño de las opciones principales de la aplicación. Del análisis previo realizado, se deduce que deberemos disponer de algunas opciones informativas y que deberá también existir una parte dinámica que manejara todo lo referente a clientes y pólizas Según lo manifestado anteriormente se tendrán las siguientes opciones: Inicio. Se constituirá en la página inicial de la aplicación. Quiénes somos.- Describirá las características generales de la empresa como misión, visión, y más Servicios.- El usuario que accede a esta opción podrá conocer los diferentes tipo de servicios que brinda la empresa, eso significa una descripción de los diferentes tipos de seguros que pone a disposición del publico Sedes.- Opción que permite determinar rápidamente las sedes de las diferentes sucursales de la empresa. Aplicacion.- En esta opción el usuario tanto interno como externo puede hacer las cotizaciones de los seguros para los autos, aquí se ingresa al cotizador y se genera la proforma, si se está de acuerdo se registra los datos del cliente y se emite la póliza, esta opción da ingreso a la parte más importante del portal 79 La estructura general del portal será: ESTRUCTURA DEL PORTAL WEB MENÚ QUIENES SOMOS SERVICIOS SEDES APLICACIÓN ENCABEZADO ANIMADO COMPLEMENTO 1 DESCRIPCIÓN 1 COMPLEMENTO 2 DESCRIPCIÓN 2 COMPLEMENTO 3 DESCRIPCIÓN 3 COMPLEMENTO 4 DESCRIPCIÓN 4 Tabla No. 20: Estructura General del Portal Fuente: El autor 4.7.2 Diseño de la base de datos. A continuación se expone el modelo de la base de datos, se debe mencionar que la modelación se la ha realizado en PowerDesigner para web, luego se ha generado el script de la base y se ha lo ha exportado al sql. 80 4.7.2.1 Modelo Relacional El Modelo Relacional se esquematiza de la siguiente forma: Figura No. 23: Modelo Relacional Fuente: El autor 81 4.7.2.2 Diccionario de datos Listado general de las tablas que pertenecen a la base ALLIANCE TABLA ATRIBUTO TIPO DE DATO DESCRIPCIÓN Clave Principal, Cedula COD_USER VARCHAR2(200) DESC_USER VARCHAR2(100) PASSWD VARCHAR2(32) de Identidad o RUC Nombre del Usuario Password o clave Identificador de sesión utilizado U_ID VARCHAR2(50) para identificador a un usuario logado. USUARIOS M_ADMIN VARCHAR2(10) Perfil del usuario Correo DIR_EMAIL VARCHAR2(200) electrónico del usuario Usado para asignar un rol COD_ROL1 VARCHAR2(1000) X al usuario Usado para asignar un rol COD_ROL2 VARCHAR2(1000) X al usuario Usado para asignar un rol COD_ROL3 VARCHAR2(1000) X al usuario Usado para asignar un rol COD_ROL4 VARCHAR2(1000) X al usuario Usado para asignar un rol COD_ROL5 VARCHAR2(1000) 94 X al usuario Fecha de último acceso al LAST_LOGIN DATE sistema Cantidad de accesos al CANT_LOGINS NUMBER(20) sistema Parámetro WIN_COLORS NUMBER(10) de configuración de colores de ventanas Campos usado para tener más posibilitar aplicaciones en la base de VIRTUALPATH VARCHAR2(50) datos. Actualmente tiene el valor ―/‖ porque solo existe una aplicación. Foreingkey COD_PROVINCIA VARCHAR2(5) de Provincias CUIDADES Identificador COD_LOCALIDAD VARCHAR2(5) LOCALIDAD VARCHAR2(30) COT_ZONA NUMBER tabla de Localidad Nombre de localidad Zona de riesgo de la VARCHAR2(1000) NRO_PERSONA S DESC_PROVINCIA O VARCHAR2(5) D COD_PROVINCIA A R U F SE A F_ PROVINCIAS localidad VARCHAR2(100) 95 Identificador de Provincia Nombre de Provincia Identificador de asegurado NOMBRE VARCHAR2(100) CALLE VARCHAR2(80) NUMERO VARCHAR2(22) PISO VARCHAR2(50) DEPTO VARCHAR2(10) Nombre de asegurado Información del domicilio Información del domicilio Información del domicilio Información del domicilio Código COD_POSTAL VARCHAR2(50) COD_LOCALIDAD VARCHAR2(50) COD_PROV VARCHAR2(50) TXT_COMUNA VARCHAR2(80) TXT_LOCALIDAD VARCHAR2(80) TELEFONO_PART VARCHAR2(60) TELEFONO_LAB VARCHAR2(60) NRO_FAX VARCHAR2(20) CASILLA_MAIL VARCHAR2(60) postal del domicilio Código de localidad Código de provincia Descripción de Provincia Descripción de Localidad Teléfono particular Teléfono Laboral Numero Fax Cuenta del mail Identificador del tipo de TIPO_DOCUMENTO VARCHAR2(30) documento de identificación Numero de documento de NUMERO_DOCUMENTO VARCHAR2(20) identificación TXT_SEXO VARCHAR2(2) NRO_POLIZA OS DATE D FEC_NACIMIENTO A VARCHAR2(30) R COD_COND_FISCAL U G SE _A OS T U Código VARCHAR2(22) 96 de condición fiscal Fecha de nacimiento Sexo Numero de póliza MARCA VARCHAR2(40) MODELO VARCHAR2(4000) ANO_FAB VARCHAR2(40) TOTAL VARCHAR2(40) PATENTE VARCHAR2(50) CHASIS VARCHAR2(50) MOTOR VARCHAR2(50) TIPO_VEH VARCHAR2(4000) SUMA_LIMITE_RC VARCHAR2(40) CONDUCTOR_PROPIETA RIO VARCHAR2(4000) CLASE VARCHAR2(4000) USO VARCHAR2(4000) Marca del vehículo Modelo del vehículo Año de fabricación Precio del vehículo Número de placa Identificador de chasis Identificador de motor Tipo de vehículo Importe limite que tiene la póliza en caso de siniestro de Responsabilidad Civil Nombre del conductor Clase de vehículo Uso del vehículo Números de cláusulas que CLAUSULAS VARCHAR2(4000) cubre la póliza Numero de auto dentro de NRO_ITEM VARCHAR2(20) una misma póliza Porcentaje de comisión PJE_CA VARCHAR2(50) COD_ESTADO VARCHAR2(10) del asegurado INF_POLIZAS Identificador COD_ASEGURADO VARCHAR2(60) NRO_POLIZA VARCHAR2(17) de asegurado Numero de pólizas Numero de Endoso de NRO_ENDOSO VARCHAR2(60) NRO_POL_RENOVO VARCHAR2(60) 97 póliza Nro. de póliza renovada Identificador COD_ASEGURADO VARCHAR2(60) DESC_ASEGURADO VARCHAR2(400) de asegurado Nombre del asegurado Fecha de emisión de la FECHA_EMISION VARCHAR2(60) póliza Fecha FECHA_VIG_DESDE VARCHAR2(60) de inicio de vigencia de póliza Fecha de fin de vigencia FECHA_VIG_HASTA VARCHAR2(60) COD_MONEDA VARCHAR2(60) de póliza Código de moneda Importe prima neta de IMP_PRIMA_NETA VARCHAR2(60) IMP_PREMIO VARCHAR2(60) póliza Importe de premio Cantidad CANT_SINIESTROS VARCHAR2(60) IMP_IVA_TOTAL VARCHAR2(60) de siniestros que tiene la póliza Importe de IVA Cantidad de cuotas de CANT_CUOTAS VARCHAR2(60) póliza Número de tarjeta de NRO_TARJETA VARCHAR2(60) crédito Importe de derecho de IMP_DERECHO_EMISION VARCHAR2(60) emisión de póliza Importe IMP_REC_FIN VARCHAR2(60) VARCHAR2(60) 98 recargo de recargo financiero Importe IMP_REC_ADM de administrativo Porcentaje de comisión POR_COMISION_PROD VARCHAR2(60) del productor Importe de comisión del IMP_COMISION_PROD VARCHAR2(60) productor Importe IMP_PREMIO_PAGADO VARCHAR2(60) VARCHAR2(60) VARCHAR2(60) CUIT_PROD VARCHAR2(60) COD_PROD VARCHAR2(60) DESC_PROD VARCHAR2(4000) COD_RAMO VARCHAR2(20) ID_POLIZA VARCHAR2(9) IMP_SELLADOS VARCHAR2(60) VARCHAR2(60) IMP_TOTAL VARCHAR2(60) VARCHAR2(60) IMP_TASA_VIAL VARCHAR2(60) VARCHAR2(60) IMP_INT VARCHAR2(60) IMP_DECRETO VARCHAR2(60) 99 premio Código de productor Nombre del productor Código del ramo Identificador de la póliza Importe de sellados de ingresos brutos Importe Total de servicios sociales Importe de Tasa vial Importe IMP_TASA_SUP de RUC de productor Importe IMP_SERV_SOC premio prendario Importe IMP_ING_BRUTOS de vencido Importe IMP_PREMIO_PRENDARI O premio pagado Importe IMP_PREMIO_VENCIDO de de suplementaria Importes Internos Importes por decreto Tasa ACCESORIOS PRESUPUESTOS PRESUPUESTO NUMBER DESC_ACCESORIO VARCHAR2(3000) Numero de presupuesto Descripción de accesorio Suma SUMA NUMBER(10,2) asegurada del accesorio Orden para mostrar al ORDEN NUMBER PRESUPUESTO NUMBER TIPO_OPERACION VARCHAR2(20) FECHA DATE COD_PROD VARCHAR2(10) DESC_PROD VARCHAR2(100) COD_ASEGURADO VARCHAR2(100) DESC_ASEGURADO VARCHAR2(100) accesorio Numero de presupuesto Operación a realizar Fecha de presupuesto Código de productor Descripción de productor Código Asegurado Descripción asegurado PRESUPUESTO_AUTOS Periodo por el cual se PERIODO VARCHAR2(15) asegura el auto Inicio de vigencia de VIGENCIA_DESDE DATE presupuesto Fin VIGENCIA_HASTA DATE de VARCHAR2(15) de presupuesto Zona ZONA_RIESGO vigencia de (relacionado riesgo con la Localidad) MARCA VARCHAR2(50) MODELO VARCHAR2(50) Marca de vehículo Modelo de vehículo Año de fabricación de ANO_FAB NUMBER(4) ANTIGÜEDAD NUMBER(2) 100 vehículo Antigüedad del vehículo ORIGEN_VEHICULO VARCHAR2(15) Origen del vehículo Indica si el auto es Cero CEROKM VARCHAR2(2) Kilómetros Descripción de tipo de DESC_TIPO_VEHICULO VARCHAR2(15) USO_VEHICULO VARCHAR2(15) MONEDA VARCHAR2(15) vehículo Uso del vehículo Descripción de moneda Suma SUMA_ASEG_VEH NUMBER(10,2) NUMBER(10,2) NUMBER(10,2) adicional si el si el vehículo usa gas Suma SUMA_ASEG_AIRE del vehículo Suma SUMA_ASEG_GAS asegurada adicional vehículo tiene aire acondicionado Suma SUMA_ACCESORIOS NUMBER(10,2) TOTAL NUMBER(10,2) NUMBER(10,2) de accesorios Suma asegurado total Valor VALOR_CLAU_AJUSTE adicional de cláusula de ajuste por periodo Descripción de cobertura DESC_COBERTURA_SEL VARCHAR2(30) PRIMA_ANUAL NUMBER(10,2) IVA NUMBER(10,2) PREMIO_ANUAL NUMBER(10,2) CANT_CUOTAS NUMBER(2) MEDIO_PAGO VARCHAR2(30) IMPORTE_CUOTAS NUMBER(10,2) 101 seleccionada Valor de prima anual Valor de IVA Valor de premio anual Cantidad de cuotas Medio de pago Importe por cada cuota Porcentaje comisión de PORC_PROD NUMBER(10,2) SUMA_ASEG_OTROS NUMBER(10,2) TARJETA VARCHAR2(50) productor Suma otros accesorios Nombre tarjeta de crédito Número de tarjeta de NUMERO_TARJETA VARCHAR2(50) PATENTE VARCHAR2(50) CHASIS VARCHAR2(50) MOTOR VARCHAR2(50) ESTADO VARCHAR2(25) NRO_SOLICITUD NUMBER INSPECCION VARCHAR2(50) ESTADO_INSPECCION VARCHAR2(50) ARCHIVO VARCHAR2(200) crédito Número de placa Chasis del vehículo Motor del vehículo Estado del presupuesto Nro. de solicitud Código de inspección Estado de inspección PDF de presupuesto PDF de constancia de ARCHIVO_CONST_COB VARCHAR2(200) cobertura Importe REC_ADMIN NUMBER(10,2) NUMBER(10,2) Recargo administrativo Importe REC_FINAN de de Recargo financiero Importe de Derecho de DER_EMISION NUMBER(10,2) SELLADOS NUMBER(10,2) emisión Importe de Sellados Importe IMP_INTERNOS NUMBER(10,2) NUMBER(10,2) 102 Impuestos de Tasas Internos Importe TASA_SSN de superintendencia de de seguros Importe SERV_SOCIALES NUMBER(10,2) FECHA_SOLICITUD DATE COD_PROVINCIA VARCHAR2(100) REFACTURACION NUMBER de Servicios sociales Fecha de solicitud Provincia Periodo de refacturación Tipo de documento de TIPO_DOCUMENTO VARCHAR2(20) identificación Numero de documento de NRO_DOCUMENTO VARCHAR2(20) DOMICILIO_SOLICITUD VARCHAR2(1000) CUIDAD_SOLICITUD VARCHAR2(50) PROVINCIA_SOLICITUD VARCHAR2(50) TELEFONO NUMBER(30) TELEFONO_MOVIL NUMBER(30) MAIL VARCHAR2(40) SEG_VIAL NUMBER(10,2) identificación Domicilio de solicitud Ciudad de solicitud Provincia de solicitud Teléfono Teléfono celular Correo electrónico Importe seguro vial Importe PRIMA_RC NUMBER(10,2) TASA_CASCOS NUMBER(10,2) PLAN VARCHAR2(200) prima Responsabilidad Civil Importe tasa de cascos Plan del productor Importe PRIMA_RC_NETA NUMBER(10,2) de prima Responsabilidad Civil neta Importe PRIMA_CASCO_NETA NUMBER(10,2) 103 Neta prima Cascos Describe si es persona PERSONERIA_JURIDICA VARCHAR2(4) PRIMA_CASCO_AJUSTE NUMBER(10,2) ARCHIVO_SOLICITUD VARCHAR2(200) ZONA NUMBER COD_LOCALIDAD VARCHAR2(100) Tabla 21: Diccionario de Datos Fuente: El Autor Script de Base de Datos - Createtable createtable ALLIANCE.INFO_AUTOS_ASEGURADOS ( NRO_POLIZA MARCA VARCHAR2(22) notnull, VARCHAR2(40), MODELO VARCHAR2(4000), ANO_FAB VARCHAR2(40), TOTAL PATENTE CHASIS MOTOR TIPO_VEH VARCHAR2(40), VARCHAR2(50), VARCHAR2(50), VARCHAR2(50), VARCHAR2(4000), SUMA_LIMITE_RC VARCHAR2(40), CONDUCTOR_PROPIETARIO VARCHAR2(4000), CLASE USO CLAUSULAS NRO_ITEM PJE_CA COD_ESTADO VARCHAR2(4000), VARCHAR2(4000), VARCHAR2(4000), VARCHAR2(20) not null, VARCHAR2(50), VARCHAR2(10), 104 jurídica Importe prima Cascos PDF de solicitud Zona de riesgo Localidad COD_ASEGURADO VARCHAR2(60) ) tablespace SYSTEM pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); -- Create/Recreate primary, unique and foreign key constraints alter table ALLIANCE.INFO_AUTOS_ASEGURADOS add constraint PK_SEG_AUTOS primary key (NRO_POLIZA, NRO_ITEM) using index tablespace SYSTEM pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); altertable ALLIANCE.INFO_AUTOS_ASEGURADOS add constraint FK_ASEG foreign key (COD_ASEGURADO) references ALLIANCE.INFO_ASEGURADOS (NRO_PERSONA); -- Create table create table ALLIANCE.INFO_POLIZAS ( NRO_POLIZA NRO_ENDOSO VARCHAR2(17) notnull, VARCHAR2(60), 105 NRO_POL_RENOVO VARCHAR2(60), COD_ASEGURADO VARCHAR2(60), DESC_ASEGURADO VARCHAR2(400), FECHA_EMISION DATE, FECHA_VIG_DESDE DATE, FECHA_VIG_HASTA DATE, COD_MONEDA VARCHAR2(60), IMP_PRIMA_NETA IMP_PREMIO VARCHAR2(60), VARCHAR2(60), CANT_SINIESTROS VARCHAR2(60), IMP_IVA_TOTAL VARCHAR2(60), CANT_CUOTAS VARCHAR2(60), NRO_TARJETA VARCHAR2(60), IMP_DERECHO_EMISION VARCHAR2(60), IMP_REC_FIN VARCHAR2(60), IMP_REC_ADM VARCHAR2(60), POR_COMISION_PROD VARCHAR2(60), IMP_COMISION_PROD VARCHAR2(60), IMP_PREMIO_PAGADO VARCHAR2(60), IMP_PREMIO_VENCIDO VARCHAR2(60), IMP_PREMIO_PRENDARIO VARCHAR2(60), CUIT_PROD VARCHAR2(60), COD_PROD VARCHAR2(60), DESC_PROD VARCHAR2(4000), COD_RAMO VARCHAR2(20), ID_POLIZA VARCHAR2(9), IMP_SELLADOS VARCHAR2(60), IMP_ING_BRUTOS IMP_TOTAL VARCHAR2(60), VARCHAR2(60), IMP_SERV_SOC VARCHAR2(60), IMP_TASA_VIAL VARCHAR2(60), IMP_TASA_SUP IMP_INT VARCHAR2(60), VARCHAR2(60), IMP_DECRETO VARCHAR2(60) ) tablespace SYSTEM pctfree 10 106 pctused 40 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); -- Create/Recreate primary, unique and foreign key constraints alter table ALLIANCE.INFO_POLIZAS add constraint PK_INFO_POLIZAS primary key (NRO_POLIZA) using index tablespace SYSTEM pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); alter table ALLIANCE.INFO_POLIZAS addconstraint FK_ASEGURADOS foreignkey (COD_ASEGURADO) references ALLIANCE.INFO_ASEGURADOS (NRO_PERSONA) -- Create table create table ALLIANCE.TARIFA_CASCOS ( ZONA NUMBER, TIPO_VEHICULO NUMBER, COBERTURA NUMBER, ANTIGUEDAD NUMBER, 107 PLAN NUMBER, PRIMA_RC_BRUTA NUMBER(10,2), ORIGEN VARCHAR2(40), FECHA_VIG_DESDE DATE ) tablespace SYSTEM pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); -- Create table create table ALLIANCE.PLANES_PAGO ( COD_RUBRO VARCHAR2(5) not null, COD_PRODUCTO COD_PLAN DESC_PLAN CANT_CUOTAS VARCHAR2(5) not null, VARCHAR2(5) not null, VARCHAR2(40), NUMBER(2), PORC_PRIMERA_CUOTA PORC_RECARGO NUMBER(10,2), NUMBER(10,2), TIPO_VTO_PRIMERA_CUOTA VARCHAR2(1), REFACTURACION PLAN_PAGO 4.8 VARCHAR2(10), VARCHAR2(100) default '_DEFAULT_' DESARROLLO. 108 En esta sección exponemos parte de la programación de las páginas dinámicas que contiene la aplicación: Formulario de acceso a la aplicación. Figura No. 23: Ingreso a la Aplicación Fuente: El Autor <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Seguros Alliance</title> <link href="login-box.css" rel="stylesheet" type="text/css" /> </head> <body> <div style="padding: 100px 0 0 250px;"> <div id="login-box"> <H2>Seguros Alliance</H2> Ingrese usuario y contraseña. <br /> <br /> <div id="login-box-name" style="margin-top:20px;"> 109 <form action="/alliance/ALLIANCE/inicio.usuario_conectado" method="post"> Usuario:</div><div id="login-box-field" style="margin-top:20px;"><input name="uname" class="form-login" title="Username" value="" size="30" maxlength="2048" /></div> <div id="login-box-name">Password:</div><div id="login-box-field"><input name="upass" type="password" class="form-login" title="Password" value="" size="30" maxlength="2048" /> <br /> <br /> <br /> <br /> <input type="submit" value="Enviar" src="visual/img/login-btn.png" class="form-login" /> </form> </div> <br /> <br /><br /></div></div></body> </html> Formulario de error <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Seguros Alliance</title> <link href="login-box.css" rel="stylesheet" type="text/css" /> </head> <body> <div style="padding: 100px 0 0 250px;"> <div id="login-box"> <H2>Seguros Alliance</H2> Usuario o contraseña incorrecta. <br />Intente de nuevo por favor. <br /> <br /> <div id="login-box-name" style="margin-top:20px;"> <form action="/alliance/ALLIANCE/inicio.usuario_conectado" method="post"> 110 Usuario:</div><div id="login-box-field" style="margin-top:20px;"><input name="uname" class="form-login" title="Username" value="" size="30" maxlength="2048" /></div> <div id="login-box-name">Password:</div><div id="login-box-field"><input name="upass" type="password" class="form-login" title="Password" value="" size="30" maxlength="2048" /> <br /> <br /> <br /> <br /> <input type="submit" value="Enviar" src="visual/img/login-btn.png" class="form-login" /> </form> </div> <br /> <br /> <br /> </d- Ingreso de datos de cotización Figura No. 24: Ingreso Datos Cotización 111 Fuente: El Autor CREATE OR REPLACE PACKAGE BODY INGRESO_DATOS IS PROCEDURE VACIO_GLOBALES_USUARIOS IS BEGIN GLOBALES.SET_VALOR(P_NOMBRE => 'USUARIOS_NOMBRE',P_VALOR => ''); GLOBALES.SET_VALOR(P_NOMBRE => 'USUARIOS_COD_USUARIO',P_VALOR => ''); END; PROCEDURE CAMBIAR_PANTALLA(P_MENSAJE VARCHAR2, P_URL VARCHAR2 DEFAULT 'INGRESO_DATOS.USUARIOS?P_NUEVO=SI') IS BEGIN INICIO.REFRESCAR; DIBUJAR_FORMULARIOS.HEADER(PTITLE => P_MENSAJE||'...', JSCRIPT => 'Formulario'); HTP.TABLEOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_OPEN ||' cellpadding="0" cellspacing="0"'); HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); DIBUJAR_FORMULARIOS.TABLEDATA('Espere unos instantes por favor...', DIBUJAR_FORMULARIOS.TAB_GROUP_ALIGN, DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE || ' colspan="8"'); HTP.TABLEROWCLOSE; HTP.TABLECLOSE; DIBUJAR_FORMULARIOS.BOARDCLOSE; HTP.P('<META HTTP-EQUIV="REFRESH" CONTENT="3; URL='||P_URL||'">'); END; PROCEDURE VALIDACION_USUARIO(P_NOMBRE P_USUARIO P_CLAVE PROCESAR VARCHAR2 DEFAULT NULL, VARCHAR2 DEFAULT NULL, VARCHAR2 DEFAULT NULL, VARCHAR2 DEFAULT NULL, P_ROL VARCHAR2 DEFAULT NULL) IS V_FACULTADES VARCHAR2(4000); V_FACULTADES_COD VARCHAR2(4000); V_CARRERRAS VARCHAR2(4000); 112 V_CARRERRAS_COD VARCHAR2(4000); V_MATERIAS VARCHAR2(4000); V_MATERIAS_COD VARCHAR2(4000); AUX VARCHAR2(5); BEGIN GLOBALES.SET_VALOR(P_NOMBRE => 'USUARIOS_NOMBRE',P_VALOR => P_NOMBRE); GLOBALES.SET_VALOR(P_NOMBRE => 'USUARIOS_COD_USUARIO',P_VALOR => P_USUARIO); IF (P_NOMBRE IS NULL) THEN HTP.P('<script>alert("No se ingresó el campo Nombre"); campo Usuario"); location.href=''INGRESO_DATOS.USUARIOS''; </script>'); return; END IF; IF (P_USUARIO IS NULL) THEN HTP.P('<script>alert("No se ingresó el location.href=''INGRESO_DATOS.USUARIOS''; </script>'); return; END IF; IF (P_CLAVE IS NULL) THEN HTP.P('<script>alert("No se ingresó el campo Clave"); location.href=''INGRESO_DATOS.USUARIOS''; </script>'); return; END IF; BEGIN INSERT INTO USUARIOS VALUES (UPPER(P_USUARIO), P_NOMBRE, uPPER(P_CLAVE),'','TECNICO','-', DECODE(P_ROL,NULL,'','TECNICO'),'','','','',SYSDATE,'','1021','/'); EXCEPTION WHEN DUP_VAL_ON_INDEX THEN HTP.P('<script>alert("El Código de usuario location.href=''INGRESO_DATOS.USUARIOS''; </script>'); return; END; 113 Ya Existe"); COMMIT; CAMBIAR_PANTALLA('Guardando'); END; PROCEDURE USUARIOS(P_NUEVO HLINK I IN VARCHAR2 DEFAULT NULL) IS OWA_UTIL.IDENT_ARR; NUMBER := 0; CODIGO NUMBER:=0; BEGIN INICIO.REFRESCAR; IF P_NUEVO IS NOT NULL THEN VACIO_GLOBALES_USUARIOS; END IF; DIBUJAR_FORMULARIOS.HEADER(PTITLE => 'Creación de Usuarios', Base_Target => 'INVISIBLE', LINK => HLINK, JSCRIPT => 'Formulario', PSUBTITLE => ' '); DIBUJAR_FORMULARIOS.DIV_SET('INGRESO_DATOS.VALIDACION_USUARIO', onsubmit => 'SubmitForm();', target => '_self', METHOD => 'get'); DIBUJAR_FORMULARIOS.BOARDOPEN; HTP.TABLEOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_OPEN ||' cellpadding="0" cellspacing="0"'); HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); DIBUJAR_FORMULARIOS.TABLEDATA('Datos de Usuario', DIBUJAR_FORMULARIOS.TAB_GROUP_ALIGN, DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE || ' colspan="6"'); HTP.TABLEROWCLOSE; HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="2">'); DIBUJAR_FORMULARIOS.DIV_FLD('P_NOMBRE', SOLO_FRM => FALSE, 114 'Nombre', 'VARCHAR2', '25', EN_NUEVA_ROW => TRUE, VALOR_DEFAULT => GLOBALES.VALOR(P_NOMBRE => 'USUARIOS_NOMBRE'), VALIDACIONJS => 'NOTNULL', ATRIBUTOS => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS); HTP.P('</TD>'); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="2">'); DIBUJAR_FORMULARIOS.DIV_FLD('P_USUARIO', 'Usuario', 'VARCHAR2', '25', SOLO_FRM => FALSE, EN_NUEVA_ROW => TRUE, VALOR_DEFAULT => GLOBALES.VALOR(P_NOMBRE => 'USUARIOS_COD_USUARIO'), VALIDACIONJS => 'NOTNULL', ATRIBUTOS => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS); HTP.P('</TD>'); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="2">'); DIBUJAR_FORMULARIOS.DIV_FLD('P_CLAVE', 'Clave', 'VARCHAR2', '25', SOLO_FRM => FALSE, EN_NUEVA_ROW => TRUE, VALOR_DEFAULT => '', VALIDACIONJS => 'NOTNULL', ATRIBUTOS => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS); HTP.P('</TD>'); HTP.TABLEROWCLOSE; HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); DIBUJAR_FORMULARIOS.TABLEDATA('Rol de Usuario', DIBUJAR_FORMULARIOS.TAB_GROUP_ALIGN, DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE || ' colspan="6"'); HTP.TABLEROWCLOSE; HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="2">'); DIBUJAR_FORMULARIOS.DIV_CHK('P_ROL', DESCRIPCION => 'Administrador', SOLO_FRM => FALSE, EN_NUEVA_ROW => FALSE); HTP.P('</TD>'); 115 HTP.TABLEROWCLOSE; HTP.TABLECLOSE; DIBUJAR_FORMULARIOS.DIV_BUT('procesar', 'Formulario', 'CONTINUAR', SOLO_FRM => TRUE); DIBUJAR_FORMULARIOS.BOARDCLOSE; EXCEPTION WHEN OTHERS THEN HTP.P(SQLERRM); END USUARIOS; PROCEDURE VACIO_GLOBALES IS BEGIN GLOBALES.set_valor('SEDES_P_COD_PROVINCIA' , ''); GLOBALES.set_valor('SEDES_P_COD_LOCALIDAD' , ''); GLOBALES.set_valor('SEDES_P_DIRECCION' , ''); GLOBALES.set_valor('SEDES_P_TELEFONO' , ''); END; PROCEDURE CARGO_GLOBALES(P_ROWID IN VARCHAR2 DEFAULT NULL) IS W_PROVINCIA W_CIUDAD VARCHAR2(100); VARCHAR2(100); W_DIRECCION VARCHAR2(100); W_TELEFONO VARCHAR2(100); BEGIN SELECT PROVINCIA, CIUDAD, DIRECCION, TELEFONO INTO W_PROVINCIA, W_CIUDAD, W_DIRECCION, W_TELEFONO FROM SEDES WHERE ROWID = P_ROWID; GLOBALES.set_valor('SEDES_P_COD_PROVINCIA' , W_PROVINCIA); GLOBALES.set_valor('SEDES_P_COD_LOCALIDAD' , W_CIUDAD); GLOBALES.set_valor('SEDES_P_DIRECCION' , W_DIRECCION); GLOBALES.set_valor('SEDES_P_TELEFONO' , W_TELEFONO); END; PROCEDURE VALIDACION_SEDE(P_USUARIO IN VARCHAR2 DEFAULT NULL, P_FEC_PRESUP IN VARCHAR2 DEFAULT NULL, P_COD_PROVINCIA IN VARCHAR2 DEFAULT NULL, P_COD_LOCALIDAD IN VARCHAR2 DEFAULT NULL, P_DIRECCION IN VARCHAR2 DEFAULT NULL, 116 P_TELEFONO IN VARCHAR2 DEFAULT NULL, procesar IN VARCHAR2 DEFAULT NULL, P_ROWID IN VARCHAR2 DEFAULT NULL) IS V_COD VARCHAR2(5); BEGIN GLOBALES.SET_VALOR('SEDES_P_COD_PROVINCIA' , P_COD_PROVINCIA); GLOBALES.SET_VALOR('SEDES_P_COD_LOCALIDAD' , P_COD_LOCALIDAD); GLOBALES.SET_VALOR('SEDES_P_DIRECCION' , P_DIRECCION); GLOBALES.SET_VALOR('SEDES_P_TELEFONO' , P_TELEFONO); IF (P_COD_PROVINCIA IS NULL) THEN HTP.P('<script>alert("No se ingresó el campo Provincia"); location.href=''INGRESO_DATOS.SEDES''; </script>'); return; END IF; IF (P_COD_LOCALIDAD IS NULL) THEN HTP.P('<script>alert("No se ingresó el campo Ciudad"); location.href=''INGRESO_DATOS.SEDES''; </script>'); return; END IF; IF (P_DIRECCION IS NULL) THEN HTP.P('<script>alert("No se ingresó el campo Dirección"); location.href=''INGRESO_DATOS.SEDES''; </script>'); return; END IF; IF P_ROWID IS NULL THEN SELECT NVL(MAX(CODIGO),1) INTO V_COD FROM SEDES; INSERT INTO SEDES VALUES (V_COD+1,P_COD_PROVINCIA,P_COD_LOCALIDAD,P_DIRECCION,P_TELEFONO,I NICIO.GET_CURR_USER_DESC,SYSDATE); COMMIT; CAMBIAR_PANTALLA('Guardando','LISTADOS.SEDES'); 117 ELSE UPDATE SEDES SET PROVINCIA = P_COD_PROVINCIA, CIUDAD = P_COD_LOCALIDAD, DIRECCION = P_DIRECCION, TELEFONO = P_TELEFONO WHERE ROWID = P_ROWID; COMMIT; CAMBIAR_PANTALLA('Actualizando','LISTADOS.SEDES'); END IF; END; PROCEDURE SEDES(P_NUEVO P_COD_PROVINCIA P_COD_LOCALIDAD P_DIRECCION P_TELEFONO P_ROWID W_ROWID CANTIDAD IN VARCHAR2 DEFAULT NULL, IN VARCHAR2 DEFAULT NULL, IN VARCHAR2 DEFAULT NULL, IN VARCHAR2 DEFAULT NULL, IN VARCHAR2 DEFAULT NULL) IS VARCHAR2(100); W_NEXTVAL HLINK IN VARCHAR2 DEFAULT NULL, PRESUPUESTOS_AUTOS.PRESUPUESTO%TYPE; OWA_UTIL.IDENT_ARR; NUMBER; BEGIN INICIO.REFRESCAR; IF INICIO.GET_CURR_USER_ID IS NULL THEN HTP.P('ERROR: Ud no está conectado al Sistema. <BR><BR>Por favor Desconectarse y volver a conectarse'); return; END IF; IF P_ROWID IS NOT NULL THEN W_ROWID := VALIDACION.hex2STRING(P_ROWID); 118 DIBUJAR_FORMULARIOS.HEADER(PTITLE => 'Modificaci&oacute;n de Sedes ', jscript => 'Formulario', BASE_TARGET => 'INVISIBLE', pSubTitle => ' ', LINK => HLINK); CARGO_GLOBALES(P_ROWID => W_ROWID); ELSE IF P_NUEVO = 'SI' THEN VACIO_GLOBALES; GLOBALES.SET_VALOR(P_NOMBRE => 'COTIZADOR_P_CODIGO', P_VALOR =>w_nextval); END IF; HLINK(1) := HTF.ANCHOR2('LISTADOS.SEDES', '<IMG src="' || DIBUJAR_FORMULARIOS.TAB_IMGDIR ||'lg_genera_txt.gif" border="0" align="absmiddle" title="Listado de Sedes">', CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_LTIT ||' onmouseover="self.status=''' || VALIDACION.JSENCODE('Listado de Sedes') ||''';returntrue;"',CTARGET => '_self'); DIBUJAR_FORMULARIOS.HEADER(PTITLE => 'NUEVA SEDE', Base_Target => 'INVISIBLE', LINK => HLINK, JSCRIPT => 'Formulario', PSUBTITLE => ' '); END IF; DIBUJAR_FORMULARIOS.DIV_SET('INGRESO_DATOS.VALIDACION_SEDE', onsubmit => 'SubmitForm();', target => '_self', METHOD => 'post'); DIBUJAR_FORMULARIOS.BOARDOPEN; HTP.TABLEOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_OPEN ||' cellpadding="0" cellspacing="0"'); HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); DIBUJAR_FORMULARIOS.TABLEDATA('Datos del Perfil', DIBUJAR_FORMULARIOS.TAB_GROUP_ALIGN, DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE || ' colspan="6"'); HTP.TABLEROWCLOSE; HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); 119 HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="3">'); DIBUJAR_FORMULARIOS.DIV_FLD('P_USUARIO', 'Usuario', 'VARCHAR2', '30', SOLO_FRM => FALSE, EN_NUEVA_ROW => TRUE, VALOR_DEFAULT => INICIO.GET_CURR_USER_DESC, ATRIBUTOS => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS || ' readonly '); HTP.P('</TD>'); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="3">'); DIBUJAR_FORMULARIOS.DIV_FLD('P_FEC_PRESUP', 'Fecha', 'VARCHAR2', '15', SOLO_FRM => FALSE, EN_NUEVA_ROW => TRUE, VALOR_DEFAULT => TO_CHAR(SYSDATE, 'DD/MM/YYYY'), ATRIBUTOS => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS || ' readonly '); HTP.P('</TD>'); HTP.TABLEROWCLOSE; HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); DIBUJAR_FORMULARIOS.TABLEDATA('Ubicación', DIBUJAR_FORMULARIOS.TAB_GROUP_ALIGN, DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE || ' colspan="6"'); HTP.TABLEROWCLOSE; HTP.TABLEROWOPEN(CATTRIBUTES => DIBUJAR_FORMULARIOS.TAB_GROUP_TITLE_ROW); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="1">'); DIBUJAR_FORMULARIOS.DIV_WIN('*', 'P_COD_PROVINCIA', DESCRIPCION => 'Provincia', TABLA => 'provincias', CODIGO => 'DESC_PROVINCIA', RCODIGO => 'DESC_PROVINCIA', SOLO_FRM => FALSE, EN_NUEVA_ROW => TRUE, VALOR_DEFAULT GLOBALES.VALOR(P_NOMBRE => 'SEDES_P_COD_PROVINCIA'), 120 => DATASIZE => '25', ATRIBUTOS DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, => VALIDACIONJS => 'NOTNULL', ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS|| ' readonly '); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="1">'); DIBUJAR_FORMULARIOS.DIV_win('*', 'P_COD_LOCALIDAD', 'Ciudad', 'V_LOC_PROV', 'LOCALIDAD', 'LOCALIDAD', SOLO_FRM => FALSE, EN_NUEVA_ROW => TRUE, CONDICION => 'upper(DESC_PROVINCIA) = upper(''*NCOD_PROVINCIA*'') ', ATRIBUTOS => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS|| ' readonly ', VALOR_DEFAULT => GLOBALES.VALOR(P_NOMBRE => 'SEDES_P_COD_LOCALIDAD'), VALIDACIONJS => 'NOTNULL', datasize => '25', order_by => ' 1 desc '); HTP.P('</TD>'); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="2">'); DIBUJAR_FORMULARIOS.DIV_FLD('P_DIRECCION', 'Dirección', 'VARCHAR2', '80', SOLO_FRM => FALSE, VALIDACIONJS => 'NOTNULL', EN_NUEVA_ROW => TRUE, VALOR_DEFAULT => GLOBALES.VALOR(P_NOMBRE => 'SEDES_P_DIRECCION'), ATRIBUTOS => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_TITULO, ATRIBUTOS_CAMPO => DIBUJAR_FORMULARIOS.TAB_FORM_CAMPO_DATOS); HTP.P('</TD>'); HTP.P('<TD ' || DIBUJAR_FORMULARIOS.TAB_GROUP_DATA || ' colspan="1">'); 4.9 PRUEBAS. Las pruebas realizadas en el desarrollo de software son las normalmente conocidas como: 121 De caja negra:Esta prueba se aplicó a los requisitos funcionales de laaplicación, permitiendo a obtener un conjunto de condiciones de entrada que ejercitaron a la comprobación de los resultados. En esta prueba se ingresaron datos en cada uno de los formularios que poseen los módulos de la aplicación y de los resultados obtenidos se verifico que estén correctos, esto significa que no verificamos la forma de los procesos sino solamente que estos arrojen resultados exactos. De caja blanca: En cambio esta prueba se direccionó la comprobación de las funciones internas de la aplicación, esta forma de verificación permitió seguir la secuencia de los procesos para verificar la forma óptima de aplicar las denominadas reglas del negocio. 4.10. IMPLEMENTACION La puesta en marcha de la aplicación web es bastante sencilla, primeramente señalaremos los requerimientos de hardware: Equipo Servidor Mínimo: Intel Core I5, velocidad 3.2 Ghz. Ram de 4 gigas, Disco Duro de 750 GB, Sistema operativo Windows Xp o 7 Equipo Cliente: IntelcoreDuo, 1.2 Ghz, 2 G de Ram, HD de 500GB, Sistema operativo cualquiera. Los requerimientos de software para su funcionamiento son: 122 Base de datos. Oracle 10 g Express Edition Servidor web: Apache PL/SqlDeveloper versión 11 Para el proceso de instalación se recomienda los siguientes pasos: Instalación del Oracle (anexo 3) Instalación del Pl/sqldeveloper Instalación del servidor web Apache Restauración de la base de datos Alliance Subida a Internet puede hacerse mediante servicio FTP Si se contratan unhosting se deberá ratificar que disponga del servicio de la base de datos Oracle. 4.11. SEGURIDADES. Las seguridades de la aplicación están dadas por diversos aspectos, primeramente señalaremos que el acceso a la base de datos es uno de los mas seguros dadas las características de Oracle. Es por demás conocida la seguridad que brinda este motor de base de datos aunque sea en la modalidad express pero su seguridad en cuanto al acceso tiene niveles elevados. Por otro lado en los frontend respectivos existe un control en cuanto al tipo de datos que se ingresa, también se ha evitado el ingreso de código sql malicioso. Existen niveles de usuarios, lo que permite que existan ciertas restricciones para determinados usuarios, con ello se aumenta los niveles de seguridad al interior de la aplicación. 123 Niveles y privilegios:Existen dos niveles de usuarios, tenemos el administrador y los usuarios normales, estos últimos solo tienen acceso a ciertas opciones del sistemas, esto significa que no tienen un acceso total al sistemas como es el caso del administrador. 4.12.IMPACTO DE LA PROPUESTA El impacto de la propuesta puede ser analizado desde dos puntos de vista diferente, así tenemos: En el ámbito comercial es muy positivo ya que se optimiza las cotizaciones y los presupuestos, se aceleran dando la posibilidad de variar las opciones u ofertas de aseguramiento según el caso de cada cliente. En el aspecto organizacional permite una mayor flexibilidad a nivel interno para que incluso el personal administrativo se convierta en un posible vendedor que trabaje a nivel interno. CONCLUSIONES Y RECOMENDACIONES CONCLUSIONES Las conclusiones de esta propuesta pueden resumirse en lo siguiente: La utilización de las aplicaciones web han demostrado ser una opción variable y con resultados tangibles, pues los beneficios y características que ofrece esta 124 herramienta se acoplan correctamente a las necesidades de las empresas y es este caso en las pólizas de seguros de vehículos. PL/Sql es un lenguaje versátil en el desarrollo de aplicaciones web de uso profesional. El apache es un servidor web de amplia difusión y que trabaja no solo con Mysql sino también con Oracle. La aplicación web se constituye en un aporte importante en la gestión de polizas que lleva adelante la empresa de seguros Alliance S.A. El uso del PL/SQL Developerha demostrado que es una herramienta bastante poderosa para el desarrollo de aplicaciones web dinámicas, aunque no es muy difundido en el campo eduacativo debido a la complejidad de su instalación y utilización. RECOMENDACIONES Respaldar la base de datos continuamente para evitar la perdida de la información. Capacitar al personal sobre el uso de la aplicación web diseñado para la generación de pólizas de la aseguradora Alliance S.A. Capacitar a los usuarios sobre las normativas que rigen a los seguros en el Ecuador para facilirar el manejo de la aplicación web. 125 BIBLIOGRAFÍA ABBEY Michael, (2002). ―Oracle 9i Guia de Aprendizaje‖, McGraw-Hill AGOSTINA, ―Seguros‖, http://www.monografias.com/trabajos5/segu/segu.shtml, 2008 COREY Michael, ―Puesta a punto de Oracle‖, Editorial Agapea, Madrid-Españá, 2009 DOMÍNGUEZ Pedro, ―Introducción a la gestión empresarial‖, /www.monografias.com/trabajos53/libro-gestion-empresarial/libro-gestionempresarial.html, 2007 FERRER Juan, ―Aplicaciones web‖, Prentice-Hall, Barcelona-España, 2009 FUNDACIÓN Proydesa, ―PL/SQL Oracle database‖, www.slideshare.net/proydesa/presentacion-plsql, 2008 HERTUEL Oliver, ―Oracle 11g Administración‖, Editorial Agapea, Madrid- España, 2009 PAVÓN Jacobo, ―Creación de portales web con Php y MySql‖, Editorial Agapea, Madrid-España, 2009 PEREZ César, ―Oracle 11g, curso práctico‖, McGraw-Hill, Mexico-México, 2009 PÉREZ Gabriel (2004). ―Estructuras de Oracle‖, www.cursopolis.com QUERO Katalina, ―Mantenimiento de portales de la información‖, Editorial Agapea, Madrid-España, 2009 THOMPSON Lara, ―Desarrollo Web con PHP y MySql‖, Editorial Agapea, MadridEspaña, 2009. 126 ANEXO 1 Cuestionario para los clientes internos (Personal administrativo y vendedores). Pregunta No 1. ¿Las reglas de seguros son las mismas en España y en el Ecuador? Si……. No…….. Pregunta No 2. ¿El cálculo y emisión de las pólizas es ? Manual……. Semi automático…….. Automático….. Pregunta No 3 ¿Existen demoras y errores de cálculo durante la emisión de una póliza? Si……. No………. A veces……….. Pregunta No 4 ¿Los clientes se sienten ya asegurados luego de contratar la póliza aunque esta no ha sido emitida? Si….. No…… Pregunta 5 ¿Cree usted que la Empresa necesita obligatoriamente un portal web donde existan opciones para calculo y consulta de pólizas? Si….. No…… Pregunta No 6. ¿Considera usted que con la implementación de un portal web se podrá mejorar la gestión de pólizas en la empresa? Si………….. No………….. 127 Cuestionario para los clientes externos de la empresa Pregunta No 1. ¿Cree usted que la emisión de pólizas es demorada? Si………. No……… Pregunta No 2 ¿Considera usted que durante la emisión de pólizas se pueden producir errores de cálculo muy frecuentemente? Si……… No….. Pregunta No 3. ¿La emisión posterior a la adquisición de la póliza le provoca en usted cierta inseguridad? Si……… No…….. Pregunta No 4 ¿Le gustaría a usted poder consultar vía Internet su póliza y la posibilidad de renovación anticipadamente? Si……. No……… Pregunta No 5 ¿Considera usted necesario para la empresa la implementación de un portal web donde haya la posibilidad de generar y consultar automáticamente las pólizas de seguros que emite la empresa? Si…….. No…….. Pregunta 6. ¿Cree usted que con la implementación de un portal web se mejorará la gestión de la empresa relacionada con las pólizas de seguros? Si…….. No…….. 128 ANEXO 2 MANUAL DEL USUARIO. La pantalla de carga inicial del portal Aquí se encuentra información general de la empresa y las opciones principales del sitio web. 129 La opción de servicios muestra información general sobre los servicios que brinda la empresa en cuanto a seguros, hay que reconocer que la empresase especializa en el aseguramiento de vehículos 130 Pantalla de ingreso a la aplicación que es el aspecto mas importante del portal Se debe ingresar el nombre del usuario y la clave asignada para el ingreso, no se admiten espacios en blanco ni caracteres especiales. 131 Este es el menú principal de la aplicación para las cotizaciones de los seguros Descripción de algunas opciones del menú 132 Aquí tenemos la parte del cotizador para la valoración del seguro automotriz según el tipo de carro y sus características técnicas Se deben elegir las opciones según las características del automotor 133 La aplicación da la posibilidad de actualizar los datos de la cotización También se puede emitir un listado general de las solicitudes de cotización, esto también sirve como informe para el aspecto financiero 134 El manejo de los usuarios es un aspecto importante dentro de la aplicación, el administrador es quién puede crear y administrar dichos usuarios, también se les puede asignar los privilegios según el tipo de usuario que sea 135 136 ANEXO 3 Instalación Oracle 11g en Microsoft Windows 7 Pulsaremos con el botón derecho del ratón sobre "setup.exe" y seleccionaremos "Ejecutar como administrador" en el menú emergente: Si tenemos activo UAC (UserAccount Control) Windows 7 nos pedirá confirmación para ejecutar el programa de instalación de Oracle Database, pulsaremos "Sí": Existen dos métodos de instalación: Instalación Básica: seleccionaremos este método de instalación si deseamos instalar rápidamente Oracle Database 11g. Este método necesita una mínima 137 intervención del usuario. Seleccionando este método también se puede especificar si se desea crear una base de datos de uso general con el esquema SAMPLE y el tablespace EXAMPLE. Instalación Avanzada: este método de instalación sirve para cualquiera de las siguientes tareas: o Realizar una instalación personalizada del software o seleccionar una configuración diferente de la base de datos. o Instalar o actualizar Oracle Real ApplicationClusters. o Actualizar una base de datos existente. o Seleccionar un juego de caracteres de la base de datos o idiomas de producto diferentes. o Crear una base de datos en un sistema de archivos que sea distinto del sistema en el que se copia el software. o Configurar Gestión Automática de Almacenamiento. o Especificar contraseñas diferentes para esquemas administrativos. o Configurar copias de seguridad automáticas o notificaciones de Oracle Enterprise Manager. En nuestro caso marcaremos la opción "Instalación Avanzada" y pulsaremos "Siguiente": 138 Existen cuatro tipos de instalación de Oracle Database 11g Release 1: Enterprise Edition: este tipo de instalación está diseñado para aplicaciones a nivel de empresa. Está diseñado para el Procesamiento de Transacciones en Línea (OLTP) de alta seguridad y de importancia crítica y para entornos de almacenes de datos. Este tipo de instalación instala todas las opciones de Enterprise Edition con licencias independientes. Standard Edition: este tipo de instalación está diseñado para aplicaciones a nivel de departamento o grupo de trabajo y para pequeñas y medianas empresas. Está diseñado para proporcionar las opciones y servicios de gestión de bases de datos relacionales esenciales. Personal Edition: este tipo de instalación instala el mismo software que el tipo de instalación EnteripriseEdition, con excepción de los paquetes de gestión. Sin embargo, soporta un entorno de desarrollo y despliegue monousuario que debe ser totalmente compatible con Enterprise Edition y Standard Edition. Oracle Real ApplicationClusters (RAC) no se instala con Personal Edition. 139 Personalizada: este tipo de instalación permite seleccionar los componentes que desea instalar de la lista de todos los componentes disponibles o instalar opciones de producto adicionales en una instalación existente. Para instalar determinados productos u opciones, como Oracle Label Security u Oracle OLAP, debe seleccionar este tipo de instalación. En nuestro caso seleccionaremos "Enterprise Edition (2.81GB)" y pulsaremos "Siguiente": A continuación especificaremos en "Directorio Base de Oracle" la ubicación en la que deseemos almacenar todos los archivos de software de Oracle y relacionados con la configuración. El directorio base de Oracle es el directorio de nivel superior que se puede utilizar para instalar los distintos productos de software de Oracle, excepto para Oracle Clusterware. Oracle Clusterware debe estar en una ruta de acceso independiente. Se puede utilizar el mismo directorio base de Oracle para más de una instalación. Si distintos usuarios del sistema operativo instalan el software de Oracle en el mismo sistema, todos los usuarios deben crear un directorio base de Oracle 140 independiente. Si se ha definido la variable de entorno ORACLE_BASE, Oracle Universal Installer muestra el valor de la variable ORACLE_BASE como valor por defecto para el campo del directorio base de Oracle. En nuestro caso seleccionaremos como Directorio Base de Oracle: C:/app/ajpdsoft En Ubicación del Software especificaremos el nombre y la ubicación del directorio raíz de Oracle en el que deseemos instalar el producto. Nombre: introduciremos un nombre de directorio raíz de Oracle o lo seleccionaremos de la lista. En nuestro caso introduciremos "OraDb11g_home1". Ruta de Acceso: introduciremos la ruta de acceso completa del directorio raíz de Oracle o la selecionaremos de la lista de rutas existentes. En nuestro caso "C:/app/ajpdsoft/product/11.1.0/db_1". 141 A continuación Oracle Universal Installer realizará la comprobación de requisitos específicos del Producto, para verificar que el sistema operativo y el hardware (equipo) cumplen con los requisitos mínimos. Para el caso de Windows 7 nos mostrará un error en la comprobación de los requisitos del sistema operativo, indicando: La base de datos Oracle 11g no está certificada en el sistema operativo actual. Recomendación: Asegúrese de instalar el software en la plataforma correcta. Aún así continuaremos la instalación, para ello marcaremos el check de "Comprobando los requisitos del sistema operativo" y el de "Comprobando requisitos de Service Pack" y pulsaremos "Siguiente" para continuar con la instalación: A continuación Oracle Universal Installer nos permite elegir entre varias posibilidades de configuración: Crear Base de Datos: esta opción crea una base de datos con la configuración de Uso General/Procesamiento de Transacciones, Almacén de Datos o Avanzada. 142 Configurar Gestión Automática de Almacenamiento (ASM): esta opción instala sólo Gestión Automática de Almacenamiento en un directorio raíz de Oracle distinto. Si es necesario, también puede proporcionar una contraseña SYS de ASM. Instalar sólo Software: esta opción instala sólo el software de la base de datos Oracle. Se podrá configurar la base de datos más tarde. En nuestro caso seleccionaremos "Instalar sólo Software", puesto que crearemos la base de datos en otro momento: Si tenemos activo el Firewall (cortafuegos) de Windows, puede que nos pida "Permitir acceso" a Java(TM) 2 PlattformStantardEditionbinary necesario para la instalación de Oracle: 143 Antes de iniciar la instalación de Oracle Database 11g Release 1 en Windows 7, Oracle Universal Installer nos mostrará un resumen de las opciones y productos que se instalarán. Si son correctas pulsaremos "Instalar": Oracle Universal Installer iniciará la instalación definitiva de Oracle Database 11g en Microsoft Windows 7 (seven): 144 Tras la instalación, Oracle Universal Installer nos mostrará el resultado: Indicando: "Los archivos de configuración de la base de datos se han instalado en C:/app/ajpdsoft mientras que los demás componentes seleccionados se han instalado en C:/app/ajpdsoft/product/11.1.0/db_1. Tenga cuidado de no suprimir por accidente estos archivos de configuración". 145