CAPITULO II FUNDAMENTOS TEÓRICOS Antecedentes A nivel nacional se reseña lo siguiente. Gómez. J. (2010) en su trabajo titulado “Módulo de cotización de póliza Empresa Integral en ambiente Web para el portal interactivo de intermediarios de Seguros Los Andes, C. A.” El cual tenía como objetivo principal mejorar la calidad de los servicios prestados por Seguros Los Andes para sus intermediarios en lo que se refiere a la realización de cotización de la póliza Empresa Integral. Realizado en APEX que le permitió la compatibilidad con el protocolo ligero de Acceso a Directorios LDPA, que actualmente utiliza la empresa aseguradora. Para el desarrollo de este proyecto se usó la metodología de desarrollo incremental mediante prototipos evolutivos El proyecto a realizar coincide con la herramienta a utilizar y la realización de un módulo de generación de pólizas. Cabe destacar que cada seguro tiene sus reglas de negocio propias y cada sistema se adapta a las necesidades específicas de cada seguro. 16 A nivel internacional se reseña lo siguiente. Consis (1987), ayudando a más de un centenar de compañías de seguros de todo el mundo lograr los resultados estratégicos a través de tecnologías de la información con el desarrollo de la poderosa herramienta Acsel/X, la cual maneja cualquier tipo de negocio o tipo de producto en la industria de seguros, tanto a nivel de negocios o tipo de producto en la industria de seguros, tanto a nivel de negocios individuales y colectivos o grupos , de Vida, Salud , coche, Vinculación, responsabilidad, o escribir al almacén de ramos generales. Dentro de la gama de módulos que Acsel/X ofrece, se encuentra el de renovación masiva de pólizas, el cual realiza todas las validaciones necesarias y cálculos requeridos para llevar a cabo este proceso, trayendo como consecuencia un gran impacto en la disminución de tiempo de respuesta que hoy día, es el objetivo principal de cualquier sistema automatizado. 17 Bases Teóricas Base de datos. Según Date C. (2001) una base de datos es: “un conjunto de datos persistentes que es utilizado por los sistemas de aplicación de alguna empresa dada, refiriéndose a los datos como aquellos de naturaleza transitoria”. Por otra parte, se puede decir que es la agrupación lógica de datos en forma organizada e independiente de su uso, permitiendo el acceso directo, manejo, actualización y eliminación rápida de los mismos. Este conjunto es ordenado de acuerdo a un modelo donde se indica la estructura, nombre de los datos y relaciones entre los mismos, para dar mayor compresión a las personas sobre el diseño de la base de datos. Tipos de base de datos Existen varios tipos de base de datos, según Pérez D. (2008): Dependiendo de su uso, variación de sus datos, de la información que posee, de las tecnologías que soporte, por su modelo de diseño, etcétera. Según su uso: Base de datos multimedia: Organiza datos de contenido multimedia: fotos, textos, videos, páginas, sonidos. Para relacionarlas y acceder a ellas rápidamente. Base de datos en memoria: Guardan los datos en la memoria del equipo y no utiliza archivos en el disco duro, permitiendo trabajar con la información de manera muy rápida. Base de datos en tiempo real: Son las que trabajan con datos que están en constante cambio, a diferencia de la mayoría su data es persistente. Además, las transacciones realizadas en ella son procesadas lo suficientemente rápido como para decir que la data es la real para ese 18 momento. Se suelen usar bancos, bolsa de valores, registros médicos, ciencia, etc. Según su modelo: Base de datos trasnacionales: Son aquellas que realizan sus operaciones de manera muy rápida y garantiza seguridad sobre los datos al aplicarlas, por ejemplo, si se modifican 1000 registros en una transacción y al momento de editar el 987 ocurre algo inesperado (interrupción de la energía o un error) todas las modificaciones realizadas previamente son canceladas para evitar inconsistencia de datos generadas por el error. Base de datos relacionales: Basadas en el modelo relacional, ignora la manera como se guardan los datos, pues da su importancia en el acceso a las mismas y a su integridad, que se hace por medio de las relaciones entre tablas. Las tablas definen y agrupan un conjunto de datos relacionados entre sí, luego se relacionan con otras tablas para agrupar más con información similar. De esta manera, da mayor flexibilidad y compresión al momento de acceder a la información. Base de datos orientadas a objetos: Basadas en la teoría de objetos, son aquellas que están diseñadas para almacenar objetos y dar soporte a operaciones sobre objetos (herencia, polimorfismo, encapsulación, etc.) al momento de almacenarlas, en otra palabras, permite guardar en la base de datos las funciones y métodos para realizar tareas sobre los objetos. Base de datos deductivas: Son aquella que acceden a sus datos mediante inferencias lógicas, cuyas definiciones son almacenadas en la base de datos a través de reglas que son consultadas por el gestor al momento de solicitar información. Base de datos multi-dimensionales: Son usadas para la creación de cubos OLAP, son base datos donde sus tablas (puede ser una única tabla) poseen un campo por cada dimensión y otro campo por cada métrica. Suelen 19 usarse para almacenar información histórica de los datos que luego puede ser procesada para la toma de decisiones. Base de datos jerárquicas: Destacadas por almacenar la información de manera jerárquica tal como un árbol invertido, donde un registro puede tener hijos debido a su relación con los datos y así sucesivamente. Gracias a esta estructura, se almacena la información de manera estable y eficientemente pero con dificultad para manejar redundancia de datos. Base de datos en red: Es una mejora al modelo jerárquico, donde da soporte para el manejo de redundancia de datos, mediante la posibilidad de que un registro tenga varios padres. Suelen ser difíciles de administrar y manejar por usuarios finales. Luego de conocer estos aportes de autores especializados en el tema se puede decir, que estas teorías permiten profundizar el conocimiento para desarrollar el proyecto propuesto. Base de datos Oracle Oracle fue la primera compañía que lanzo un producto que utilizaba el SQL (StructureQuery Lenguaje, lenguaje estructurado de consulta) basado en el inglés. Este lenguaje permite a los usuarios finales extraer la información por sí mismos, sin recurrir al grupo de sistemas para cada uno de sus pequeños informes. Loney y Koch (2003), definen a ORACLE como: “la base de datos más utilizada en todo el mundo. Se ejecutan prácticamente en todo tipo de computadoras y funciona de forma casi idéntica en todos los equipos” (p.35). Además agregan que es una base de datos objeto-relacional. Una base de datos relacional es una forma extremadamente simple de gestionar. Estos autores Loney y Koch, aseguran que los filósofos de la información expresan que los datos solo son datos hasta que se organizan de una forma que resulte significativa, en cuyo momento se convierten en 20 información. Siendo esto cierto, Oracle también es un medio para convertir de forma sencilla los datos en información. Oracle manipula los datos y permite realizar tres operaciones básicas con ellos: adquirirlos, almacenarlos y recuperarlos. Una vez realizadas estas funciones básicas, se pueden hacer cálculos con los datos, moverlos de un sitio a otro, o modificarlos. Esto se reconoce con el nombre de procesamiento y, fundamentalmente implica los mismos tres pasos que afectan a cómo se organiza la información. Oracle proporciona una serie de herramientas inteligentes que permiten una considerable sofisticación en cuanto como se capturan, editan, modifican y guardan los datos, como se conservan seguros y como se extraen para manipularlos y generar informes. Debido a que el seguro la occidental cuenta con un portal en APEX el cual trabaja con una base de datos Oracle XE, era necesario tener conocimientos sobre base de datos Oracle. APEX (Oracle Application Express). Según ORACLE (2012), Oracle Application Express o APEX (antes llamado HTML DB) es una herramienta RAD que se ejecuta con una base de datos ORACLE. Permite desarrollar prototipos de aplicaciones Web de forma segura y rápida. APEX es la herramienta que está destinada tanto a usuarios como a desarrolladores. Para los usuarios que tienen poca o ninguna experiencia en programación APEX les permite crear fácilmente informes, cartas, cargar los datos, desde hojas de cálculos y archivos de textos a la base de datos. También permite a los desarrolladores construir rápidamente formularios, informes y desarrollo menos complejos de aplicaciones Web centradas en una base de datos. El entorno de desarrollo APEX es completamente Web y permite a los desarrolladores concentrarse en las características y 21 funcionalidades de las aplicaciones es decir la lógica del negocio y no de los detalles relacionados con la interfaz. Portal Web Según Gómez J.(2001) es un punto de entrada a Internet donde se organizan sus contenidos, ayudando al usuario y concentrando servicios y productos, de forma que le permitan realizar cuanto necesite hacer en la Red a diario, o al menos que pueda encontrar allí todo cuanto utiliza cotidianamente sin necesidad de salir de dicho sitio (p.3). Se podría decir que un portal Web está basado en un sistema de administración de contenido, este permite publicar información en la Web de manera fácil y rápida, sin tener conocimientos de programación ni de diseño de páginas Web. Con un portal solo se preocupa de la información que se desea publicar, ya que el sistema gestionara todos los demás detalles técnicos y administrativos. Seguros Seguros la Occidental (2012). Define los seguros como contratos entre un particular o persona natural y una empresa que presta el servicio (aseguradora). La persona que contrata los seguros o pólizas (seguros tipos según cada necesidad), deberá ir pagando de manera mensual, una prima o cuota, por los seguros en sí. Por medio de este pago, la compañía que presta los seguros, deberá pagar una suma determinad, frente al daño del objeto o vida que estén cubiertos o asegurados por este contrato. Debido a que el proyecto será un portal web para un seguro realizado en APEX con esta teoría se tiene un cierto conocimiento sobre el ambiente en el cual este se realizara. 22 Diseño Orientado a Objetos Alarcón (2000) define la programación orientada a objetos como una técnica de programación cuyo soporte fundamental es el objeto; el cual es una extensión de tipo abstracto de datos (TAD) definidos por el usuario, que encapsulan un conjunto de datos y las operaciones sobre estos datos. Alarcón define los siguientes componentes como lo más importantes en el modelo orientado a objetos. • Clase: Es una descripción de un conjunto de objetos similares. Una clase contiene los atributos y las operaciones sobre estos atributos que hacen que una clase tenga la entidad que desea • Objeto: Un objeto es una cosa, generalmente extraída del vocabulario del problema o del espacio de la solución. Todo objeto tiene un nombre, un estado y un comportamiento. • Atributo: Es una característica concreta de una clase. • Método: Es una operación concreta de una determinada clase. • Instancia: Es una manifestación concreta de una clase. También se le suele llamar ocurrencia. • Herencia: Es un mecanismo mediante el cual se puede crear una nueva clase partiendo de una existente, se dice entonces que la nueva clase hereda las características de la clase existentes aunque se le puede añadir más capacidades o modificar las que tiene. • Polimorfismo: Hace referencia a la posibilidad de que dos métodos implementen distintas acciones, aun teniendo el mismo nombre, dependiendo del objeto que lo ejecuta o de los parámetros que recibe. Por su parte, Joyanes (1996) también define la modularidad como una características del modelo orientado a objetos donde la modularidad es la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. 23 Debido a que el proyecto se realizara en varios módulos se debe seguir un modelado orientado a objetos para hacer los módulos bastante cohesivos y débilmente acoplados para facilitar la sustitución de un módulo por otro y el seguimiento de errores. Descripción del Lenguaje SQL Según Urman, (2002), lenguaje no procedimental para consulta de datos el cual se caracteriza, por no requerir (de parte del desarrollador), información sobre la ubicación física de los archivos, ni de la distribución de los datos, es decir, al momento de efectuar una operación cualquiera, sobre las bases de datos no es necesario indicar la ruta de acceso o PAHT, ya que de estos se encargara el manejador de la base de datos al momento de la creación de tablas. Con StructuredQueryLanguage (SQL), se comunica a Oracle la información que desea seleccionar (select), insertar (insert), actualizar (update), o borrar (delete). Estas son las principales palabras que usan para dar instrucciones a Oracle Otra de las características de este lenguaje, es la de acceder a múltiples registros a la vez, con el uso de una sola instrucción sin importar si estos registros pertenecen a una o varias tablas. SQL por sus siglas en inglés (StructuredQueryLanguage), Lenguaje estructurado de consulta, es un lenguaje de cuarta generación flexible y eficiente, con características que han sido diseñadas para la manipulación y examen de datos relacionales. Lenguaje de cuarta generación se debe a que el lenguaje describe lo que debe hacerse, pero no la manera de llevarlo a cabo Descripción del lenguaje PL/SQL Según Urman, (2002), PL/SQL significa Procedural Lenguaje/SQL y representan una mejora al SQL ya que éste a pesar de ser un lenguaje muy poderoso que permite visualizar, modificar o borrar múltiples registros con el 24 uso de una simple instrucción nos permite usar condiciones, bucles o declarar variables como en los lenguajes de tercera generación como lo son Pascal, Basic, C, C+, Cobol, Java, entre otros. Fue esto la razón que hizo necesaria una herramienta que concediera todas las ventajas de SQL y a su vez, todas las ventajas de un lenguaje de tercera generación. Es así como nace PL/SQL. Este lenguaje es clasificado como un lenguaje procedimental, debido al uso de estructuras de control, como bucles e instrucciones IF-THEN-ELSE, procedimientos y funciones, declaración de variables y tipos; su entrada y salida es a través de parámetros o medios intermedios. Los bloques de PL/SQL, se pueden escribir en un software especializado, pero PL/SQL también es empleado en otras herramientas de Oracle como por ejemplo Forms y Reports para la elaboración de programas de gran envergadura. En resumen y de acuerdo con Urman (2002)”el lenguaje PL/SQL es único, en el sentido que combina flexibilidad de SQL con la potencia y configurabilidad de un 3GL. El lenguaje integra tanto las necesarias estructuras procedimentales como el acceso a base de datos. El resultado es un lenguaje robusto y potente, bien adaptado al diseño de aplicaciones complejas” (p.5). Características del lenguaje PL/SQL Según Urman (2002) las características principales del PL/SQL son; estructuras de bloques, variables, instrucciones condicionales, cursores, procedimientos, funciones, tratamiento de errores y paquetes Estructuras de bloques Todos los programas PL/SQL están compuestos por bloques, estos se encuentran divido en tres secciones de las cuales solo la sección ejecutable es la única obligatoria la declarativa y tratamiento de errores son opcionales Variables y tipos Una variable es una zona de almacenamiento por la cual nos sirve como medio de comunicación entre PL/SQL y la base de datos 25 estas son ubicadas en la sección declarativa y cada variable tiene un tipo asociado, este tipo define la clase de información que puede contener esta variable. Instrucciones condicionales En los programas PL/SQL se necesita tomar decisiones dependiendo de ciertas situaciones que se presenten en un código, se requiere ignorar ciertas partes de un código y tomar otras, para ello se utilizan instrucciones condicionales una de ellas es la instrucción IF. A continuación un ejemplo de la estructura de bloques junto con una instrucción IF. DECLARE v_TotalStudens NUMBER; BEGIN --Extrae el número total de estudiantes SELECT COUTN(*) INTO v_TotalStudens FROM students --En función de este valor, inserta en la fila correspondiente en temp_table IF v_TotalStudens = 0 THEN INSERT INTO temp_table(char_col) VALUES (‘no hay usuarios registrados’); . . . . Estructuras de bucle En el PL/SQL admite diferentes tipos de bucles que permite ejecutar cierta secuencia de instrucciones. Procedimientos y Funciones Son subprogramas que guardados en la base de datos en formato compilado y después son llamados desde el bloque, en la siguiente figura se muestra la creación de un procedimiento PrintStudens, que produce un resultado que son todos los apellidos de todos los estudiantes de una especialidad específica. Ejemplo de bucle y procedimiento. 26 CREATE OR REPLACE PROCEDURE PrintStudents ( p_Major IN students.major %TYPE) as CURSOR c_students IS FROM students WHERE major=p_Major; BEGIN FOR v_StudentRec IN c_Students LOOP DBMS_OUTPUT.PUT_LINE(v_StudenRec,first_name || ‘ ‘ || v_StudentRec.last_name); END LOOP; END; Cursores Se emplea para extraer un conjunto de registros de la base de datos con una instrucción SELECT, para ser tratadas en cualquier instante de la rutina PL/SQL. Ejemplo DECLARE V_AutorAUTOR.Nombre_A%TYPE; CURSOR C_Autores IS SELECT Nombre_A FROM AUTOR; BEGIN OPEN C_Autores; DBMS_OUTPUT.PUT_LINE(‘Lista deautores’); LOOP FETCH C_Autores INTO V_Autor; EXIT WHEN C_Autores%NOTFOUND; DBMS_OUTPUT.PUT_LINE(‘El nombre del autor es: ’||V_Autor); END LOOP; CLOSE C_Autores; END; Tratamiento de errores En esta sesión nos ayuda a responder ante errores, que se presentan en plena ejecución del programa, algunos de estos errores pueden ser divisiones entre ceros, errores de data como por ejemplo: 27 un carácter asignándose a una variable numérica o un valor más largo que el tamaño de la variable, entre otros. DECLARE E_valor_nulo EXCEPTION; PRAGMAEXCEPTION_INIT (E_valor_nulo, -1400); BEGIN INSERT INTO Empleados (ID_Emp) VALUES (NULL); EXCEPTION WHEN E_valor_nulo THEN INSERT INTO Tabla_Log (info) VALUES(‘Error de ORACLE ORA-1400’); END; Paquetes Es un contenedor que puede poseer estructuras, procesos, variables entre otros que se almacenan en la base de datos, mayormente se usa para la declaración de estructuras y variables con el fin de un uso globalizado. Ya que en el proyecto se va hacer un gran uso del lenguaje plsql, para la construcción de librerías y la extracción de datos, esta teoría permite conocer más afondo sobre el uso, funcionamiento y la sintaxis de este lenguaje, que además este lenguaje es el usado por Oracle para el manejo de los datos dentro de esta. Prima Según MAPFRE (2013) una prima es la aportación económica que ha de satisfacer el contratante o asegurado a la entidad aseguradora en concepto de contraprestación por la cobertura de riesgo que este le ofrece. Desde un punto de vista jurídico, es el elemento real más importante del contrato de seguro, porque su naturaleza, constitución y finalidad lo hacen ser esencial y típico de dicho contrato. 28 Técnicamente, es el coste de la probabilidad media teórica de que haya siniestro de una determinada clase. En un ejemplo si en un país, o zona determinada, hubiese 1.000.000 de automóviles, respecto a los cuales la experiencia demostrase que, al cabo de un año, 250.000 de esos vehículos iban a tener siniestro por un importe de 500 euros cada uno, la prima que el asegurador debería cobrar individualmente a las personas cuyos vehículos quisieran asegurar sería la de 125 euros. Además un análisis más detenido del ejemplo anterior lleva a la consecuencia de que la prima no puede ser equivalente al riesgo, sino proporcional, porque el pago de la indemnización depende de un acontecimiento fortuito, que sucederá o no, y cuya cuantía se desconoce a priori. Por otra parte, el asegurador no se limita a cobrar del asegurado el precio teórico medio de esa probabilidad (prima pura o de riesgo), sino que ha de gravarla con una serie de recargos, tales como: • Gastos de administración (cobro de primas, tramitación de siniestros, haberes de personal de la empresa, etc.) • Gastos de adquisición (comisiones de primas, marketing, etc.). • Gastos de redistribución de riesgos (coaseguro y reaseguro). • Recargo comercial (para obtener un beneficio lógico por el capital que arriesga la empresa aseguradora y el trabajo que desarrolla). Todavía la entidad aseguradora ha de satisfacer otra serie de gravámenes que repercuten sobre la prima comercial y que se denominan impuestos y accesorios, los cuales dan origen a la prima total que el asegurado ha de satisfacer definitivamente a la aseguradora. 29 En resumen, los elementos componentes esenciales de la prima son los siguientes: 1. Precio teórico medio de la probabilidad de que ocurra un siniestro. 2. Recargo por gastos de administración, adquisición, compensación y redistribución de riesgos, más el beneficio comercial. 3. Otros gastos accesorios o fiscales repercutibles en el asegurado. Existen diferentes tipos de prima entre las que se encuentran: • Prima cobrada Para distinguirla de la prima pendiente, se da ese nombre a aquella cuyo importe ha sido satisfecho por el asegurado, en otras palabras es la totalidad de la prima que se cobra en un periodo específico o vigencia. • Prima devengada Se entiende por primas devengadas, emitidas o no, las correspondientes a contratos perfeccionados o prorrogados en el ejercicio, en relación con las cuales el derecho del asegurador al cobro de las mismas surge durante el mencionado periodo. Son las primas emitidas netas de anulaciones y extornos por operaciones de seguro directo y reaseguro aceptado corregidas por la variación de la provisión para primas pendientes de cobro en resumen es la porción de la prima cobrada que se ha "ganado" a una fecha específica dentro de una vigencia. Se dice que se ha ganado la prima porque si la póliza se anula esta porción de prima no se devuelve. 30 Definición de términos Cotización: para Seguros la Occidental (2012). Es la estimación o costo de la prima de seguros que ofrece la aseguradora al asegurado. Póliza: para Seguros la Occidental (2012). Es la evidencia escrita y válida entre el asegurado y la aseguradora. Se le denomina también como contrato de seguros. HCM: para Seguros la Occidental (2012). Es un contrato, entre la persona que se denomina Asegurado y una Compañía de Seguros, que le permite al Asegurado disfrutar de cobertura de los gastos en que incurra por concepto de hospitalización, cirugía, tratamientos médicos y medicinas producto de accidentes sufridos, enfermedades o maternidad. Dato: según Date C (2001), es una representación simbólica (numérica, alfabética, algorítmica, etc.) un atributo o una característica de una entidad. Los datos son hechos que describen suceso y entidades. No tienen ninguna información. Puede significar una medida o una descripción El dato no tiene valor semántico (sentido) en sí mismo, pero si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realización de cálculos o tomas de decisiones. Póliza: Según MAPFRE (2013), es un documento que instrumenta el contrato de seguro, en el que se reflejan las normas que de forma general, particular o especial regulan las relaciones contractuales convenidas entre el asegurador y el asegurado. Es un documento cuya inexistencia afectaría a la propia vida del seguro, ya que sólo cuando ha sido emitido y aceptado por ambas partes se puede decir que han nacido los derechos y obligaciones que del mismo se derivan. 31 Siniestralidad: Según MAPFRE (2013), se le da este nombre a la valoración conjunta de los siniestros producidos (pendientes y liquidados) con cargo a una entidad aseguradora. Normalmente, se emplea el término para referirse al ratio de siniestralidad, que equivale a la proporción entre el importe total de los siniestros y las primas recaudadas por una entidad aseguradora en un período de tiempo. Asegurador: Según MAPFRE (2013), El Asegurador o Empresa de Seguros es la persona que asume los riesgos mediante la formalización de un contrato de seguros. Asegurado: Según MAPFRE (2013), En sentido estricto, es la persona que en sí misma o en sus bienes o intereses económicos está expuesta al riesgo. Así, en el ramo de Vida, asegurado es la persona cuya vida se garantiza; en el ramo de Incendios, es el titular del inmueble cubierto por la póliza. No obstante, en sentido amplio, asegurado es quien suscribe la póliza con la entidad aseguradora, comprometiéndose al pago de las primas estipuladas y teniendo derecho al cobro de las indemnizaciones que se produzcan a consecuencia de siniestro. Intermediario: Según MAPFRE (2013), Los intermediarios o los mediadores de seguros son profesionales que colaboran con las entidades de seguros en la distribución de sus productos entre el público. El mediador nos informa del producto, nos presenta la póliza para que la firmemos y gestiona la relación con la compañía de seguros, en particular en caso de siniestro. 32