BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLAFACULTAD DE CIENCIAS DE LA COMPUTACIÓN TESIS “SISTEMA DE FACTURACIÓN Y COBRANZA DE RADIO LOCALIZADORES” QUE PARA OBTENER EL TITULO DE “LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN” PRESENTA: JOSÉ MIGUEL ANGEL OCHOA RODRÍGUEZ ASESOR: M.E. CARMEN CERÓN GARNICA PUEBLA, PUE. Julio 2004 CONTENIDO INTRODUCCIÓN CAPÍTULO I MARCO TEÓRICO 1.1 Conceptos de bases de datos ..........................................................................1 1.1.1 Características .............................................................................................2 1.1.2 Ventajas .......................................................................................................3 1.1.3 El sistema administrador de bases de datos (DBMS) .................................3 1.1.3.1 Funciones del DBMS ...................................................................................3 1.1.3.2 Modelo Entidad – Relación ..........................................................................4 1.1.3.3 Normalización ..............................................................................................5 1.2 Modelo Cliente – Servidor ................................................................................6 1.2.1 Arquitectura Cliente – Servidor ....................................................................7 1.3 Mecanismos de conectividad en las bases de datos........................................8 1.4 Lenguajes de programación orientados a objetos............................................9 CAPÍTULO II SISTEMA MANEJADOR DE BASES DE DATOS ORACLE 2.1 Arquitectura ....................................................................................................15 2.1.1 Bases de Datos..........................................................................................15 2.1.2 Espacios de Tablas....................................................................................15 2.1.3 Archivos de Datos......................................................................................16 2.1.4 Otros archivos............................................................................................16 2.1.5 Instancias...................................................................................................18 2.2 Características Administrativas de Oracle ......................................................19 2.2.1 Instalación..................................................................................................19 2.2.2 Gestión del proceso de desarrollo .............................................................24 2.2.2.1 Procesos culturales...................................................................................24 2.2.2.2 Procesos de gestión .................................................................................25 2.2.2.3 Tecnología ................................................................................................25 2.3 Herramientas de desarrollo Oracle.................................................................26 2.3.1 Arquitectura de datos de Developer Forms y Developer Reports .............28 2.4 Ventajas...........................................................................................................32 CAPÍTULO III ANÁLISIS Y DISEÑO DEL SISTEMA 3.1 Planteamiento del problema ..........................................................................33 3.2 Análisis del sistema .......................................................................................33 3.2.1 Especificación de requerimientos ..............................................................34 3.2.2 Estrategia de solución................................................................................35 3.3 Modelo funcional............................................................................................36 3.3.1 Narrativa de las funciones del sistema ......................................................36 3.3.2 Narrativa del flujo de datos del sistema (DFD) ..........................................40 3.4 Diseño de la base de datos ...........................................................................46 3.4.1 Entidad – Relación.....................................................................................46 3.4.2 Normalización ............................................................................................47 3.4.3 Diseño lógico de la base de datos .............................................................49 3.4.4 Diseño físico de la base de datos ..............................................................52 3.4.5 Tablas del sistema .....................................................................................54 i 3.5 Diccionario de datos ......................................................................................56 CAPÍTULO IV DESARROLLO DEL SISTEMA 4.1 Herramientas de desarrollo ............................................................................59 4.1.1 Menús ........................................................................................................59 4.1.2 Asistente para Formas...............................................................................60 4.1.3 Pasos para construir una forma.................................................................65 4.1.4 Llamando Reportes desde las Formas ......................................................69 4.2 Ambiente de las herramientas de desarrollo ..................................................70 4.2.1 Forms Builder.............................................................................................71 4.2.2 Forms Runtime ..........................................................................................72 4.2.3 Triggers......................................................................................................73 4.2.4 Reports Builder ..........................................................................................77 4.3 Recursos de hardware y software ..................................................................80 CAPITULO V PRUEBAS DE DATOS DEL SISTEMA 5.1 A todos los módulos ........................................................................................81 5.1.1 Sistema de Menús .....................................................................................81 5.1.2 Módulos .....................................................................................................84 5.1.3 Reportes ....................................................................................................86 CONCLUSIÓN.......................................................................................................90 PERSPECTIVAS ...................................................................................................91 BIBLIOGRAFÍA.....................................................................................................92 ii ........................................................19 Esquema de la tabla Facturas ...............1 Representación de una tabla.........55 3..............15 Esquema de la tabla Clientes ..............................................................................7 Fin de la instalación ....1 Relaciones sobre bases de datos............21 2.......................................11 Ejemplo de diseño de un Reporte en Developer Reports........4 Configuración para desinstalar productos ..............................1 Diseño de la barra de menú .........................................................29 2...............59 4.......................................................................36 3.... 39 3..........................................46 3.............3 Asistente para generar formas de tipo bloque.................1 Modelo Funcional General................................................................................................................23 2......8 Estructura de Forms ...6 Diagrama DFD de Nivel 0...............32 CAPÍTULO III ANÁLISIS Y DISEÑO DEL SISTEMA 3...........13 Diagrama entidad – Relación ..17 Esquema de la tabla Contratos .................2 Instancias y bases de datos en Oracle ..................................................................2 Conexión a la Base de Datos a través de Forms de Oracle.......................................................................13 Tipos de archivos para módulos en Forms de Oracle .......................4 Modelo Funcional de Generación y Aplicación de cuentas x cobrar y facturas ...................................................5 Finalizando asistente de bloque de datos .......38 3...................7 Diagrama DFD de Nivel 1...................................62 iii .......................................................45 3.................31 2.............30 2..................19 2.......................................28 2............45 3....2 Modelo Funcional del verificación de usuarios .........56 CAPÍTULO IV DESARROLLO DEL SISTEMA 4.............................................................................................................................................................................37 3................5 Productos disponibles................7 CAPÍTULO II SISTEMA MANEJADOR DE BASES DE DATOS ORACLE 2.........12 Diagrama DFD de Nivel 2 – Generación de Facturas ............................42 3....41 3...................................18 Esquema de la tabla Productos................54 3....................43 3.....40 3.23 2.......................................................2 1..9 Principales relaciones de los objetos de una pantalla ....................................60 4.........61 4.51 3......................54 3.....22 2..................INDICE DE FIGURAS CAPÍTULO I MARCO TEÓRICO 1.............................2 Ejemplo de un diagrama Entidad – Relación.....6 Identificación de Bases de Datos .8 Diagrama DFD de Nivel 2 – Captura General de Datos......3 Ventana de inicio del asistente de instalación ....5 1....................5 Modelo Funcional de Generación de Reportes y Consultas ....................3 Modelo Cliente – Servidor ........15 2..........................................................20 2............................................................................9 Diagrama DFD de Nivel 2 – Generación de Cuentas por Cobrar.................44 3..........3 Modelo Funcional del catálogos principales ......55 3..14 Diseño lógico de la Base de Datos.................................12 Funcionamiento de la herramienta Forms de Oracle .................................................4 Seleccionando la tabla y campos a manejar en la forma ....................... tablespaces y archivos de datos...............11 Diagrama DFD de Nivel 2 – Aplicación de pagos................................................................................................16 Esquema de la tabla Cobradores ........61 4..10 Diagrama DFD de Nivel 2 – Preparar Cuentas a Cobradores................................. mostrando sus campos y registros ...44 3............................................27 2.............10 Manejo de la herramienta Forms de Oracle ................ 4.6 Seleccionando nombre y tipo de canvas del asistente de Layout ...................62 4.7 Seleccionando nombre y tipo de canvas del asistente de Layout ...................63 4.8 Personalizando propiedades de los Items.......................................................63 4.9 Seleccionando el modo de desplegar los datos ..............................................64 4.10 Propiedades de los elementos mostrados en la forma..................................64 4.11 Base de Datos y Formas ...............................................................................65 4.12 Construcción de un bloque de llaves primarias .............................................66 4.13 Construcción del bloque principal (bloque de trabajo)...................................66 4.14 Unión entre bloques.......................................................................................67 4.15 Código del trigger forma WHEN-NEW-ITEM-INSTANCE .............................68 4.16 Diseño de la pantalla .....................................................................................69 4.17 Llamado de reportes a través de forms .........................................................70 4.18 Componentes de Forms Builder ....................................................................71 4.19 Elementos de datos .......................................................................................72 4.20 Componentes de Runtime .............................................................................73 4.21 Ejecución de un Trigger.................................................................................74 4.22 Ventana Object Naviator de Reports Oracle 6i..............................................77 4.23 Ventana Data Model de Reports Oracle 6i ....................................................78 4.24 Ventana Layout Model de Reports Oracle 6i.................................................78 4.25 Ventana Runtime Parameter Form de Reports Oracle 6i..............................79 4.26 Ventana Live Previewer de Reports Oracle 6i...............................................79 CAPITULO V PRUEBAS DE DATOS DEL SISTEMA 5.1 Menú Sistema..................................................................................................81 5.2 Menú Catálogos...............................................................................................82 5.3a Menú Cuentas por Cobrar con Cancelaciones..............................................82 5.3b Menú Cuentas por Cobrar con Reportes.......................................................83 5.4 Barra de herramientas .....................................................................................83 5.5 Módulo de Catálogo de Clientes .....................................................................84 5.6 Módulo de Catálogo de Contratos ...................................................................84 5.7 Módulo de Catálogo de Cobradores................................................................85 5.8 Módulo de Catálogo de Productos y Servicios ................................................85 5.9 Forma de llamado al reporte de Clientes.........................................................85 5.10 Forma de Generación de cuentas por cobrar................................................86 5.11 Reporte de General de Clientes ....................................................................87 5.12 Reporte de facturas pagadas ........................................................................87 5.13 Reporte de cartera vencida ...........................................................................88 5.14 Reporte de facturas cobradas por cobrador ..................................................88 5.15 Reporte general de facturas no pagadas por cliente.....................................89 iv INTRODUCCIÓN Con la siguiente tesis se pretende realizar un sistema de facturación que permita el manejo de clientes, facturas, cobradores, productos y servicios, el cual será desarrollado a través de una metodología basada en teoría y práctica en bases de datos relacionales e ingeniería de software. La siguiente acción es la de crear el diseño y la implementación en un manejador de bases de datos de Oracle y desarrollar las interfaces a través del desarrollador de aplicaciones Developer de Oracle que permite gran flexibilidad para programar y que es además compatible con la mayoría de computadoras que existe en las empresas, el lenguaje se eligió bajo previo estudio y evaluación de otros productos que son compatibles con bases de datos. Una de las razones por la cual se decidió hacer un sistema que pueda llevar el control de facturación, es porque en la actualidad existe software comercializado que cubre ciertos puntos de los que una empresa necesita pero en la mayoría de los casos, el software a la medida se adapta al 100% a las necesidades de una empresa y de esta manera cubrir al máximo los objetivos de la empresa. A continuación se da una abreve introducción de cada capítulo Capítulo 1 Marco Teórico: Aquí se dan definiciones básicas para comprender el inicio de la creación de una base de datos, así como también los elementos necesarios para poder desarrollar un programa conjuntamente con una base de datos. Capítulo 2 Sistema manejador de bases de datos oracle: En este capítulo se explican diferentes características de la Base de Datos de Oracle, así como también las estructuras de datos de las herramientas de desarrollo a utilizar. Capítulo 3 Análisis y diseño del sistema: Aquí se dan los detalles de cómo va a generarse el sistema de facturación a través de diferentes herramientas de diseño de bases de datos e ingeniería de software. Capítulo 4 Desarrollo del sistema: En este capítulo se muestra el modo de implementar las herramientas de desarrollo para generar los menús, formas, reportes y el código que los hace funcionar; Así como también la explicación del ambiente de las herramientas de desarrollo. Capítulo 5 Pruebas de datos del sistema: Aquí se muestra el funcionamiento que debe de tener el sistema ya implementado a través de pantallas de todas las formas y reportes que comprende el sistema de facturación. v Capítulo 1 Marco teórico Este capítulo trata a cerca de los conceptos básicos a cerca de las bases de datos, así como sus fundamentos y términos, con el propósito de empezar a entender mejor los requerimientos necesarios para comenzar a crear el sistema de facturación. 1.1 Conceptos de Bases de Datos Definiciones Un sistema de bases de datos no es más que un sistema para archivar en una computadora, es decir, es un lugar donde se almacena un conjunto de archivos de datos computarizados [DaC01]. Al usuario del sistema se le brindarán recursos para realizar diversas operaciones sobre estos archivos, incluidas entre otras las siguientes: Agregar archivos nuevos (vacíos) a la base de datos; insertar datos nuevos en archivos ya existentes; obtener datos nuevos en archivos ya existentes; actualizar archivos ya existentes; borrar datos en archivos ya existentes y eliminar archivos ya existentes. Tablas, Campos y Registros Las tablas son el núcleo de la información de una base de datos, en ella se almacena todos los datos importantes del usuario que estarán disponibles para cualquier acción antes definida. Las tablas tienen su manera de organizar dicha información a través de los Campos y Registros. Los campos definen el tipo de información a ser almacenada, en términos sencillos, éstos nos indican la clase de dato a ser insertado, como por ejemplo en el campo “nombre” únicamente serán almacenados los datos de nombre, en el campo “código postal” únicamente serán almacenados los códigos postales de dichas personas o empresas y no será almacenado ningún otro tipo de dato. Los registros son un conjunto de campos que nos definen la información de un tipo de dato, como por ejemplo el conjunto de campos: “nombre, apellido, dirección y código postal” nos pueden definir la información a cerca de un cliente, amigo, empleado, etc. A continuación se muestra una tabla de ejemplo, mostrando lo que es un campo y lo que es un registro figura 1.1: 1 como se vio en el concepto de “base de datos” anterior. consultar. P.1. velocidad de acceso a datos y capacidad en unidades de almacenamiento como discos duros y si es necesario.1 Características Se muestran a continuación los cuatro componentes principales de un sistema de bases de datos: la información. 2 . Un ejemplo de esos subprogramas es el “Sistema de Administración de Base de Datos” o también llamado DBMS (Database Management system). Almoloya 2 Antonio Tigre Av. en un sistema multiusuario. La información: Es el propósito y la razón existencial de todo sistema de bases de datos. pero existen otros subprogramas que interactúan entre dicho sistema y la computadora. con la finalidad de distanciar un poco a los usuarios de detalles a nivel equipo. pueden ser de cualquier tipo e índole. Del Chocolate No. 72450 72365 72000 Figura 1. un solo usuario puede tener dicho acceso.3 Raúl Salinas Cda. los programas y los usuarios [DaC01]. El DBMS maneja todas las solicitudes de acceso a la base de datos hechas por los usuarios. mostrando sus campos y registros 1. son las acciones de agregar. Las características del equipo de cómputo dependen de las características necesarias que el sistema de bases de datos requiera en velocidad del procesador. Los programas: Se entiende por programa todo aquel que pueda realizar alguna tarea específica dentro de la computadora. Keloggs #33 Teléfono 2569847 3115588 2336655 C. dependiendo de la finalidad de la aplicación de esos datos. sirviendo como intermediario entre la computadora y el usuario para realizar un propósito determinado. el equipo. El sistema de bases de datos en sí es un programa. memoria RAM.1 Representación de una tabla. El usuario: Se encargue básicamente de actividades propias de la administración o manejo de un sistema de bases de datos. es decir que esos subprogramas pueden encargarse de esas tareas a nivel equipo. una unidad de respaldo. la cual puede ser mejor administrada gracias a la computadora y sus sistemas.CAMPOS REGISTROS Nombre Apellidos Dirección Pancho Pantera Av. mientras que los sistemas grandes generalmente son multiusuario. modificar y eliminar archivos de un sistema de bases de datos. Los sistemas pequeños suelen servir para un solo usuario. a un costo relativamente bajo a comparación de las décadas anteriores. pueden ser muy pequeños hasta grandes y complejos. El equipo: Gracias al desarrollo rápido y creciente de la tecnología podemos contar en la actualidad con equipos suficientemente capaces de llevar a cabo la tarea de ejecutar un sistema de bases de datos confiablemente. Dicha información define el tipo de sistema a utilizar. varios usuarios pueden tener acceso a la base de datos mientras que en uno pequeño. y debe poder utilizar estos conocimientos para interpretar y responder las solicitudes de los usuarios • Manipulación de datos: El DBMS debe ser capaz de atender las solicitudes del usuario para extraer. El DBMS inspecciona. la correspondencia externa / conceptual asociada. 1. cuáles programas o usuarios podrían verse afectados por alguna modificación propuesta para el sistema. en orden.1. hacer un control de inventario.1. que “entiende” que un registro externo contiene un campo. el esquema conceptual. Así también el DBMS debe entender las definiciones DDL. la correspondencia conceptual / interna y la definición de la estructura de almacenamiento.1 Funciones del DBMS[DaC01] Definición de datos: El DBMS debe de incluir componentes procesadores de lenguajes para cada uno de los diversos lenguajes de definición de datos (DDL). es decir. El contenido del diccionario puede considerarse como “Datos a cerca de datos”.3. El DBMS ejecuta las operaciones necesarias sobre la base de datos almacenada. Conceptualmente. 4. El DBMS interpreta esa solicitud y la analiza. Un usuario solicita acceso.2 Ventajas Los sistemas de bases de datos nos permiten automatizar diferentes áreas de trabajo en donde se manejan grandes cantidades de productos o servicios y éstos requieren de una administración adecuada.3 El Sistema de Administración de Bases de Datos (DBMS) El sistema de administración de la base de datos es un conjunto de programas que maneja todo acceso a la base de datos. y quizá poner al día. la mayoría de las empresas emplean ya el uso de una base de datos para mejorar su desarrollo. de hecho. SQL). • 1. es decir. definiciones de otros objetos en el sistema y no sólo “datos en bruto”. o para agregar en ella datos nuevos. 3 .1. por ejemplo. el esquema externo de ese usuario. 3. • Diccionario de datos: El DBMS debe de incluir una función de “diccionario de datos”. etc. las bases de datos nos ayudan a encontrar las características de dicho producto. 2.1. (sólo por nombrar algunas ventajas). empleando algún sublenguaje de datos determinado (Por ejemplo. generar listas de cuentas por cobrar. hacer una lista de material faltante para compras. lo que sucede es lo siguiente: 1. datos que ya existen en la base de datos. Deberá ser posible consultar el diccionario igual que cualquier otra base de datos de modo que se pueda saber. • Seguridad e integridad de datos: El DBMS debe supervisar las solicitudes de los usuarios y rechazar los intentos de violar las medidas de seguridad e integridad definidas por el administrador de bases de datos • Recuperación y concurrencia de datos: El DBMS -o algún software asociado con éldebe cuidar del cumplimiento de ciertos controles de recuperación y concurrencia. • Entidad: Descripción de un conjunto de entidades particulares que comparten la misma estructura. en una empresa un proveedor puede suministrar más de un producto. o Multivaluados: para cada entidad hay varios atributos.1. pero un producto sólo tiene un proveedor. a las Relación: Son asociaciones entre dos entidades. El nombre de la entidad debe ser el que representa un tipo o clase de elementos. Describiendo los puntos antes mencionados tenemos: Entidad: Es una cosa o un objeto con significado.2 Modelo Entidad – Relación [KoH+94] / [HaI94] Es un conjunto de técnicas del tipo gráfico que permite construir modelo de datos. describen un solo valor. • ¿Cómo se relacionan entre sí? (Relación). En particular tenemos dos tipos de entidades: • Entidad particular: Algo del mundo real que tiene existencia independiente. o RELACION UNO A UNO. o Compuestos: se descomponen en varios atributos.3. o RELACION UNO A VARIOS. Atributo: Son características que califican. real o imaginario. un registro de la tabla A no puede tener más de un registro coincidente en la tabla B. o Monovaluados: para cada entidad solo hay un atributo. • Las propiedades de esos asuntos (Atributos). y un registro de la tabla B no puede tener más de un registro coincidente en la tabla A. o Clave: tienen un valor diferente para cada entidad particular. o Derivados: su valor se puede deducir de algun atributo almacenado. Implica: • Identificar los asuntos de importancia dentro de una organización (Entidades). 4 .• Desempeño: El DBMS deberá ejecutar todas las funciones recién identificadas en la forma más eficiente posible 1. En una relación de este tipo. • Tipos de atributos: o Simples: no se pueden descomponer. cualifican.En una relación “uno a uno”. Los tipos de relación se da por una característica: La Cardinalidad • Cardinalidad La cardinalidad expresa el número de ocurrencias asociadas o implicadas en una relación. un registro de la tabla A puede tener más de un registro coincidente en la tabla B. clasifican o cuantifican ocurrencias de una entidad. pero un registro de la tabla B no puede tener más de un registro coincidente en la tabla A. Por ejemplo. acerca de las necesidades de información que se van a conocer o mantener.. – Este Tipo de relación es la más frecuente en las bases de datos relacionales. ) se verá simplificada en gran medida. 5 . etc.1.o RELACION VARIOS A VARIOS.Relación 1. los informes. haciéndolas normales. El nombre formal que recibe el diseño apropiado de una tabla es del de normalización de bases de datos.3. realizando una separación de elementos de datos (tales como nombres.2 se muestra la aplicación del modelo Entidad . las reglas de Normalización están encaminadas a eliminar redundancias e inconsistencias de dependencia en el diseño de las tablas [BrM+84]. En una base de datos. cuando una línea está en ángulo recto con otra se dice que están en un ángulo "normal". La normalización es un proceso que pone las cosas en su sitio. y a su vez un registro de la tabla B ouede tener varios registros coincidentes en la tabla A En la figura 1. un registro de la tabla A puede tener varios registros coincidentes en la tabla B. En una relación “varios a varios”.2 Ejemplo de un diagrama Entidad . el término también tiene un significado matemático específico. Si las estructuras de datos son correctas. que era una "escuadra de carpintero" para conseguir el ángulo correcto. direcciones u oficios) en grupos afines y definiendo las relaciones normales o "correctas" entre ellos. el código.Relaci Figura 1. los formularios. el resto de la aplicación (las consultas. En geometría.3 Normalización Uno de los pasos más importantes en el diseño de una base de datos consiste en asegurarse de que los datos se distribuyan correctamente entre las tablas. El origen de esta palabra viene del latín norma. 2 El modelo cliente . entidades independientes no pueden ser almacenadas en la misma tabla. llamado el cliente. También es posible tener el cliente corriendo en un sistema operativo y el servidor en otro distinto. pueden. actualizaciones y borrado de elementos de las tablas de la base de datos. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.. pero es de hecho algo esotérico y en la mayoría de los casos no es necesario para obtener la mejor funcionalidad de nuestra estructura de datos o aplicación. Por tanto. Relacionar estas tablas mediante una clave externa. Además una máquina cliente unida a un servidor puede ser a su vez servidor de otro cliente y el servidor puede ser un cliente de otro servidor en la red. 1. una única máquina Unix puede ser al mismo tiempo cliente y servidor. 2. de 6 . Su principio sugiere: Nivel 5: La tabla original debe ser reconstruida desde las tablas resultantes en las cuales a sido troceada. Aunque clientes y servidores suelen verse como máquinas separadas. Con la técnica de la normalización se trata de evitar la dependencia entre inserciones. ser dos áreas separadas en la misma máquina. También se reducen las operaciones de reorganización cuando hay que incorporar nuevos datos [PeC03]. Nivel 2: Comprende de los siguientes pasos: 1. de información contenida en archivos o los archivos en sí mismos o peticiones de imprimir datos en una impresora asociada. requerir algún tipo de servicio de una máquina a la que está unido. Se tienen como referencia cinco pasos para lograr la normalización: Nivel 0: Cuando ninguna de las reglas de normalización se ha aplicado a nuestras tablas Nivel 1: Comprende de los siguientes pasos: 1. Uno de los clientes más populares es una computadora personal basada en Intel que ejecuta aplicaciones de DOS en un entorno Windows. Nivel 4: En las relaciones varios-con-varios. llamado el servidor. mediante una red como una LAN (Red de Area Local) o una WAN (Red de Area Mundial). Eliminar los grupos repetitivos de la tablas individuales. Crear una tabla separada por cada grupo de datos relacionados. 2. de hecho.servidor.La normalización es una técnica eficaz para el diseño de bases de datos que puede aplicarse tanto a sistemas relaciónales como a otros modelos. 3. Identificar cada grupo de datos relacionados con una clave primaria. Estos servicios pueden ser peticiones de datos de una base de datos. Existe otro nivel de normalización que se aplica a veces.[ DaC91] / [OrR98] La arquitectura cliente-servidor permite al usuario en una máquina. Hay varios tipos comunes de máquinas clientes en entornos cliente-servidor. Nivel 3: Eliminar aquellos campos que no dependan de la clave. Otra cliente popular es una terminal X. aplicaciones. Un servidor que pide cosas a otro servidor es un cliente de la máquina a la que está pidiendo. Para cada tipo de entorno de cliente.Servidor 1. Estas peticiones pueden ser cosas como proporcionar datos de una base de datos. datos de una base de datos. un archivo. hay habitualmente software específico (y a veces hardware) en el cliente. Los datos. Hay también clientes Unix que ejecutan sistemas operativos como UnixWare. partes de archivos o archivos completos a la máquina cliente. se realizando al menos una de las funciones básicas descritas aquí como funciones del cliente. Funciones del cliente: Los clientes en una red cliente-servidor son las máquinas o procesos que piden información. Los procesos del servidor pueden residir en una máquina que también actúa como cliente de otro servidor.3 se muestra a detalle el Modelo Cliente Servidor Figura 1. Esta disposición permite a la máquina cliente ser relativamente pequeña. Además de proporcionar este tipo de recursos. con algún software y hardware análogo en el servidor. por ejemplo. Sin considerar el tipo de cliente que se esté usando en una red cliente-servidor. el sistema X Windows es un modelo cliente-servidor clásico. En la figura 1. el servidor proporciona estos recursos al cliente. Funciones generales de un servidor: Los servidores en una red cliente-servidor son los procesos que proporcionan información recursos y servicios a los clientes de la red.3 Modelo Cliente .1 Arquitectura cliente – servidor. Cuando un cliente pide un recurso como.hecho. un 7 . aplicaciones o archivos pueden residir en un servidor y ser simplemente accedidos por el cliente o pueden ser copiados o movidos físicamente a la máquina cliente. recursos y servicios a un servidor unido. acceso a aplicaciones remotas o impresión centralizada.2. servidor puede dar acceso a otras redes. El personal del departamento de informática puede mantener la base de datos en su propio servidor. actuando como un servidor de comunicaciones que conecta a otros servidores o mainframes o minicomputadoras que actuan como hosts de la red [MoP96]. Con la llegada de la PC (Personal Computer. con la adecuada copia de seguridad. el usuario que solicitó la información o el cambio puede haberse jubilado o cambiado de trabajo. una es desarrollada para aplicaciones Microsoft llanada ODBC y otra para el lenguaje multiplataforma Java llama JDBC ODBC (Open Database Connectivity) es un programa de interface de aplicaciones (API) para acceder a datos en sistemas manejadores de bases de datos tanto relacionales como no relacional. Este modelo también permite la aplicación de reglas de negocio a la base de datos. Los usuarios tienen acceso a la información necesaria contenida en la base de datos y pueden procesar sus propias consultas e informes. un usuario puede trabajar con la información en bruto como nunca antes. y darle un formato para el ejecutivo o vendedor. En el entorno de los mainframes. Mientras tanto. ha de realizarse un análisis costo/beneficio antes de aprobar o rechazar la petición. siempre que se tengan los permisos de acceso necesarios. 8 . Ésta ha sido una forma efectiva de distribuir la potencia de procesamiento necesaria entre el usuario y el personal de departamento de informática.3 Mecanismos de conectividad en las Bases de Datos Cuando una aplicación es desarrollada y se requiera que interactúe con una base de datos. Ellos determinan si la información está disponible. es necesario utilizar un programa intermediario que realice las transacciones de información entre la aplicación y la base de datos. todas las solicitudes de información y las tareas de programación pasan a través del departamento de informática. Red de Área Local). Hasta ahora. Cuando se solicita un cambio de programación o una nueva aplicación. asegurando que la información introducida en la misma cumpla las restricciones de coherencia necesarias. sólo hablaremos de dos tipos de conectividades comunes. En lugar de esperar un informe trascendental durante una semana. 1. antes de permitir que se le apliquen cambios o añadidos [ByJ01]. los sistemas cliente-servidor han sido el método empleado para saltar gran parte del vacío entre la computadora central y los sistemas basados en PC/LAN. el usuario puede realizar un análisis en su propio equipo. cómo extraerla de la base de datos. Con la capacidad de consultar una base de datos SQL Server usando conexiones ODBC el usuario puede obtener rápidamente la información que necesita para su trabajo. Computadora Personal) y poco después de la LAN (Local Area Network. utilizando para ello SQL (lenguaje de consulta estructurado). un programa se escribe en algún lenguaje de alto nivel. porque el lenguaje máquina es muy incómodo de usar y. como el Pascal.JDBC (Java Database Connection) crea un interfaz a nivel de programación para comunicarnos con las bases de datos en una forma uniforme similar al concepto ODBC de Microsoft. 9 . Casi todos los lenguajes de alto nivel son lenguajes de propósito general. y ello por dos significativas razones: primero. etc. Por otro lado. el programador únicamente debe preocuparse por la manipulación y programación de dichos controles. y ello hace que un programa escrito en lenguaje máquina para un tipo de computadora no pueda ser ejecutado en otro tipo de computadora sin alteraciones sustanciales[ByS98]. cuyo repertorio de instrucciones es más compatible con los lenguajes humanos y los procesos humanos de pensamiento. porque la mayoría de las computadoras tienen sus propios repertorios de instrucciones. No obstante. cuyos repertorios de instrucciones han sido diseñados específicamente para algún tipo particular de aplicación. Por regla general. Generalmente. segundo. botones. colección de instrucciones muy detalladas y crípticas que controlan la circuitería interna de la computadora. (Otros lenguajes de propósito general ordinariamente empleados son Pascal. Este es el dialecto natural de la computadora. principalmente simplicidad. Dentro de los lenguajes de alto nivel se cuenta con los lenguajes de programación visual. entre ellos están Java. su característica primordial radica en que. Java. Etc. El más elemental de ellos es el lenguaje máquina. uniformidad y portabilidad (es decir. entre otros. Perl. cuadros de texto. Por ello el uso de un lenguaje de alto nivel nos ofrece ventajas muy significativas frente al uso del lenguaje máquina. independencia de la máquina) [ByS98]. Java Script. muy pocos programas se escriben realmente en lenguaje máquina. como por ejemplo. existen lenguajes de programación que su finalidad está enfocada en la Web. Estos lenguajes pertenecen a diferentes tendencias de programación como se explicará mas adelante. una sola instrucción en un lenguaje de alto nivel será equivalente a varias instrucciones en lenguaje máquina. un programa escrito en lenguaje de alto nivel puede ejecutarse generalmente en muchas computadoras diferentes con poca o ninguna modificación. utilizan herramientas adicionales propias de un sistema operativo visual. que son programados previamente por los desarrolladores del lenguaje visual. se cuenta con la utilización de ventanas. CGI. el cual es un estándar para computadoras personales y LAN's. existen diversos lenguajes de alto nivel de este tipo. C. 1.) Existen también algunos lenguajes de alto nivel y de propósito especial. Además. C++.4 Lenguajes de programación orientados a objetos Existen muchos lenguajes diferentes que pueden ser usados para programar una computadora. podemos decir además que estos poseen identidad y son distinguibles. estos últimos a su vez. pueden estar compuestos de objetos. aunque dos objetos tengan los mismos valores para 10 . Un objeto puede estar compuesto por otros objetos. Esta estructura intrincada de los objetos permite definir objetos muy complejos. pero relacionados entre sí. para referirse a nociones que eran diferentes en su apariencia. Existen dos paradigmas dentro de los lenguajes de programación y son las siguientes: • • Estructurados Orientado a objetos Para tener una idea fundamental de lo que es la tecnología orientada a objetos comenzaremos a definir lo que es un objeto: El termino objeto surgió casi independientemente en varios campos de la informática. Las técnicas orientadas objetos permiten que el software se construya a partir de objetos de comportamiento específico. simultáneamente a principios de los sesenta. En el modelo de objetos es necesario estudiar los principios fundamentales en los que se basa el análisis orientado a objetos [JaM97] / [BrE91]: • • • • • • • • • • • • • Objeto Polimorfismo Clase Herencia Mensaje Método Identidad Reutilización Abstracción Encapsulación Modularidad Jerarquía Concurrencia Haremos un análisis individual relativo a la teoría de los objetos: OBJETO: El objeto es un concepto. están formadas por otras partes. una abstracción o una cosa con unos limites definidos y que es relevante para el tema en cuestión. del mismo modo que una maquina esta formada por partes y estas. también.Para la interfaz del sistema de facturación se pretende utilizar el lenguaje de programación visual llamado Visual Basic. Todas estas nociones se inventaron para manejar la complejidad de sistemas software de tal forma que los objetos representaban componentes de un sistema descompuesto modularmente o bien unidades modulares de representación del conocimiento. que tiene la facilidad de crear aplicaciones rápidamente y facilidad de interactuar con bases de datos de SQL Server. Sin embargo. La superclase es la clase de la cual hereda otra clase. CLASE: El termino clase se refiere a la implantación en software de un tipo de objeto. llamada esta ultima subclase inmediata. La elección de clases es arbitraria. Una operación es una acción o transformación que realiza o padece un objeto. La industria utiliza el término clase para hacer referencia a las implantaciones de los tipos de objetos. Se construyen clases a partir de otras clases. llevan a cabo el mismo propósito operativo. cada método concreto seguirá unos pasos específicos. Especifica una estructura de datos y los métodos operativos permisibles que se aplican a cada uno de los objetos. así como también heredarlos de su superclase. Para finalizar diremos que se llamara objeto a cualquier cosa real o abstracta. Una clase es una abstracción de un conjunto posiblemente infinito de objetos individuales. El polimorfismo permite que una misma operación pueda llevarse a cabo de varias formas. pero comparte el nombre de estos atributos y las operaciones con el resto de instancias de su clase. Cada clase hereda 11 . como los bienes manufacturados se fabrican a partir de una serie de materiales de partes y subpartes ya existentes. representa un concepto de teoría de tipos en el que un solo nombre puede denotar objetos de muchas clases diferentes que se relacionan por alguna superclase común. La implementación específica de una operación determinada a una clase determinada se denomina método. Aunque los métodos sean distintos. capas de responder a algún conjunto común de operaciones. Una de las ventajas del polimorfismo es que se puede hacer una solicitud de una operación sin conocer el método que debe ser llamado. de polimorfismo. sus atributos son diferentes. Cada instancia de una clase posee sus propios valores para sus atributos. Cada uno de estos objetos se dice que es una instancia o ejemplar de dicha clase. y así estaríamos hablando también. La semántica de la operación debe ser la misma para todas las clases. HERENCIA: El concepto de herencia se refiere a la comparición de atributos y operaciones basadas en una relación jerárquica entre varias clases.todos. Una clase puede tener sus propios métodos y estructura de datos. y depende del dominio del problema. en la cual podemos almacenar datos y los métodos para controlar dichos datos. Así. Desde este punto de vista. Una clase pude definirse de forma general y luego redefinirse en sucesivas subclases. POLIMORFISMO: El polimorfismo se define como la posibilidad de asumir varias formas. El polimorfismo es también un concepto central en el diseño orientado a objetos. Cualquier objeto denotado por este nombre es. en clases diferentes. Esta es quizás la característica más importante de los lenguajes orientados a objetos después de su capacidad para soportar la abstracción y es lo que distingue la programación orientada a objetos de otra programación más tradicional con tipos abstractos de datos. también el software se crea mediante una serie de materiales de clases ya existentes y probadas. las cuales a su vez se integran mediante clases. por lo tanto. Una operación es una abstracción de un comportamiento similar (pero no idéntico) en diferentes clases de objetos. Existe el polimorfismo cuando interactúan las características de la herencia y el enlace dinámico. un grupo de parámetros. La identidad es la naturaleza de un objeto que lo distingue de todos los demás. El mensaje que constituye la solicitud contiene el nombre del objeto. incluso cuando su estado cambia. Los métodos especifican la forma en que se controlan los datos de un objeto. HERENCIA SIMPLE: La herencia simple es aquella en la que una clase puede heredar la estructura de datos y operaciones de una superclase. que se lleva a un alto grado de reutilización. a veces. de. Para utilizar la estructura de datos de otro objeto. Un mensaje es una solicitud para que se lleve a cabo la operación indicada y se produzca el resultado. con uno o más objetos como parámetros. sin tener que volver a realizar esas definiciones. Las clases están definidas para que se reutilicen en muchos sistemas. La herencia es el medio por el cual los objetos de una clase pueden acceder a variables y funciones miembro contenidas en una clase previamente definida. Esto hace que las colisiones pueden introducir ambigüedad en el comportamiento de la subclase que hereda en forma múltiple. Esta ha ce que se produzca una operación. La herencia múltiple presenta una gran dificultad y es el hecho que puede heredar dos operaciones con el mismo nombre. Es la relación entre clases en la que una clase comparte la estructura demás de una clase base. utilizando alguna notación bien definida. Para que esta sea efectiva. siempre que el objeto considere que quien envía el mensaje esta autorizado para obtenerla MÉTODO: El método es la especificación de un proceso de una operación. es un proceso disciplinado para generar un conjunto de modelo que describen varios aspectos de un sistema de software en desarrollo. un menor tiempo de desarrollo y una mayor 12 . MENSAJE: Para que el objeto haga algo enviamos. Los métodos en un tipo de objeto solo hacen referencia a las estructuras de datos de ese tipo de objeto. La respuesta a estas órdenes será la información requerida. esto conlleva a un ahorro de dinero. produce una respuesta. ahorrando con esto tiempo para programación. Un objetivo de las técnicas orientadas a objetos es lograr la reutilización masiva al construir un software. que invocan operaciones específicas. Los sistemas suelen ser construidos a través de objetos ya existentes. IDENTIDAD: La identidad es aquella propiedad de un objeto que los distingue de todos los demás objetos. La identidad única (pero no necesariamente el nombre) de cada objeto se preserva durante el tiempo de vida del mismo. el nombre de una operación. La operación ejecuta el método apropiado y. debe enviar un mensaje a este. manera opcional.todas las propiedades de sus superclases y añade sus propiedades particulares. El tipo de objeto empaca junto los tipos de datos y los métodos. sin tener que volver a generarlos. HERENCIA MÚLTIPLE: La herencia múltiple se da cuando una clase puede heredar la estructura de datos y operaciones de más de una superclase. No deben tener acceso directo a las estructuras de datos de otros de objeto. etc. teniendo en cuenta que puede ser útil para varios sistemas. REUTILIZACIÓN: Es volver a generar una clase. En pocas palabras los mensajes son solicitudes. Es una relación entre clases en la que una clase comparte la estructura y/o el comportamiento definido en una. una solicitud. las clases se deben construir a partir de un modo que puedan ser adaptables y reutilizables indefinidamente. desde la perspectiva del observador. Sin embrago. encapsulamiento y modularidad son sinérgicos. la modularización consiste en dividir un programa en módulos que pueden compilarse separadamente. Para hacerlo más entendible. Según Liskov. y por lo tanto. y la podemos definir como el proceso de almacenar en un mismo compartimiento los elementos de una abstracción que constituyen su estructura y su comportamiento. Así los principios de abstracción. tendré la garantía y la confiabilidad que podrá volver a ser reutilizada. o incluso a otra organización totalmente diferente que precise de el. como si estuvieran encerrados conjuntamente en una cápsula. Si bien es cierto la abstracción es algo bueno. Por lo tanto si ya es puesto a prueba una clase en un sistema. puede haber muchas más abstracciones diferentes de las que se pueden comprender simultáneamente. MODULARIDAD: La modularidad es la propiedad que posee un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados. Sirve para separar el interfaz “contractual” de una abstracción y su implantación. sirve para separar el comportamiento esencial de un objeto de su implantación. y proporciona así fronteras conceptuales definidas con nitidez. la abstracción elimina algunas distinciones para que podamos ver los aspectos comunes entre los objetos. cada objeto es una estructura compleja en cuyo interior hay datos y programas. Para esto se debe hacer lo posible por construir módulos cohesivos (agrupando abstracciones que guarden cierta relación lógica) y débilmente acoplados (minimizando las dependencias entre módulos). diremos que la abstracción es el acto o resultado de eliminar diferencias entre los objetos. lo que permite concentrarnos en las características que comparten. ENCAPSULAIÓN: El encapsulamiento es el proceso de compartimentar los elementos de una abstracción que constituyen su estructura y su compartimiento. sirve para separar la interfaz contractual de una abstracción y su implantación. de modo que podamos ver los aspectos más comunes. El encapsulamiento es importante porque separa el comportamiento del objeto de su implantación. pero que tiene conexiones con otros módulos. Como hemos visto. Esta propiedad se denomina encapsulamiento y es una de las características fundamentales en la programación orientada a objetos. Esto permite la modificación de la implantación del objeto sin que se tengan que modificar las aplicaciones que lo utilizan. ABSTRACCIÓN: Una abstracción denota las características esenciales de un objeto que lo distinguen de todos los demás tipos de objetos. Esta cualidad hace que la programación orientada a objetos sea muy apta para la reutilización de programas. sus métodos seguirán funcionando en el nuevo entorno sin problemas. Si el objeto ha sido bien construido. La abstracción es una de las vías fundamentales por la que los humanos podamos combatir la complejidad. El encapsulamiento ayuda a manejar esta 13 . Sin la abstracción solo sabríamos que cada objeto es diferente de los demás. Todo objeto es único.confiabilidad de sistemas. Una abstracción se centra en la visión externa de un objeto. con ella se omiten de manera selectiva varias características distintivas de uno o más objetos. todos ellos relacionados entre sí. pero excepto en las aplicaciones más triviales. El hecho de cada objeto sea una cápsula facilita enormemente que un objeto determinado pueda ser transportado a otro punto de la organización. un especialista en la materia. frecuentemente un conjunto de abstracciones forma una jerarquía. respectivamente). en la que una clase comparte la estructura de comportamiento definida en una o más clases (herencia simple o herencia múltiple. esta define una relación entre clases. un sistema automatizado puede tener que manejar muchos eventos diferentes simultáneamente. JERARQUÍA: La jerarquía es una clasificación u ordenación de abstracciones. mediante la cual se producen acciones dinámicas independientes dentro del sistema. Los sistemas jerárquicos están compuestos usualmente de solo unas pocas clases diferentes de subsistemas en varias combinaciones y disposiciones. Esto sigue sin ser suficiente.complejidad ocultando la visión interna de las abstracciones. La concurrencia permite a diferentes objetos actuar al mismo tiempo 14 . CONCURRENCIA: La concurrencia es la propiedad que distingue a un objeto activo de uno que no esta activo. a través de un hilo de control. La modularidad también ayuda. y la identificación de esas jerarquías en el diseño simplifica en gran medida la comprensión del problema. en otro problema pueden implicar tantos cálculos que excedan la capacidad de cualquier procesador individual. jerarquía de clase y jerarquía de partes correspondientemente. ofreciendo una vía para agrupar abstracciones relacionadas lógicamente. En ambos casos es natural considerar el uso de un conjunto distribuido de computadores para la implantación que se persigue o utilizar procesadores capaces de realizar multitareas. La herencia es el ejemplo mas claro de una jerarquía de clases. Para cierto tipo de problemas. Las dos jerarquías más importantes en un sistema complejo son su estructura de clases y su estructura de objetos. 2. sino también a la combinación de objetos físicos.1 Bases de Datos Oracle tiene la habilidad de almacenar y acceder información de una manera coherente con un modelo definido y conocido como el modelo relacional. oracle (a partir de la versión 8) soporta estructuras orientadas a objetos. oralce es refererido como un sistema manejador de base de datos relacional (RDBMS. ya sea relacional u orientada a objetos. y contener otros objetos. de propósito general y “UNDO” para segmentos para deshacer cambios (que será descrito más adelante). 2. Internamente.Capítulo 2 Sistema Manejador de Bases de Datos ORACLE El servidor de Oracle es un sistema manejador de bases de datos relacional que ofrece una integración aproximada al manejo de información. Además de almacenar datos en formato relacional .1 Arquitectura Para entender la arquitectura de oracle es necesario entender y considerar dos conceptos: Bases de Datos e Instancias. oracle almacena la información en archivos. existen estructuras de bases de datos que se encargan de la correspondencia lógica entre la información y los archivos. Los datos se almacenan como filas en la tabla.2 Espacios de tablas Un espacio de tabla es una división lógica de una base de datos. Cada base de datos tiene por lo menos un espacio de tabla (llamado espacio de tabla SYSTEM). 15 . Estas divisiones lógicas son llamadas Espacios de Tablas (en inglés llamadas: Tablespaces). Ejemplos de estos tipos de espacios tabla serían “USERS”. como tipos de datos abstractos y métodos. Se pueden utilizar otros espacios de tablas para agrupar a los usuarios o aplicaciones con el fin de facilitar el mantenimiento y mejorar el rendimiento.1. alojando diferentes tipos de datos para ser almacenados separadamente. De cualquier estructura utilizada. Las tablas relacionales se definen por sus columnas y se les asigna un nombre. Las tablas pueden relacionarse entre sí y la base de datos puede utilizarse para hacer que se apliquen esas relaciones. Por ello. siglas en inglés Relational DataBase Management System). Los objetos pueden relacionar a otros objetos. Cuando hablamos de una “base de datos” no sólo nos estamos refiriendo a los datos físicos. 2. de memoria y de proceso [LoK02]. Un servidor Oracle consiste de una base de datos Oracle y un servidor de instancias Oracle. Un espacio de tabla puede pertenecer únicamente a una base de datos[LoK02].1. La información en una base de datos es almacenada en tablas. Entre estos archivos se incluyen los siguientes: • Los registros de reconstrucción.1.1. dicho archivo no puede eliminarse del espacio de tablas. Un archivo de datos puede pertenecer a uno y únicamente a un espacio de tabla. La relacione entre bases de datos. están separados de los archivos de datos. por estar ligadas directamente a los espacios de tablas. El tamaño de los archivos de datos se puede modificar después de su creación. por tratarse de archivos físicos. Por tanto.3 Archivos de datos Cada espacio de tablas esta constituido por uno o mas archivos. proporcionan el almacenamiento físico de los datos de la base de datos. Estos archivos de registro de reconstrucción se utilizan para 16 . tablespaces y archivos de datos 2. • Los archivos de traza y el registro de alertas. Una vez que el archivo de datos ha sido agregado a un espacio de tablas. Los siguientes tipos de archivos. Crear un nuevo espacio de tabla conlleva a crear un nuevo archivo de datos. llamados archivos de datos. que se almacenan en disco. espacios de tabla y archivos de datos se muestran en la sig.1: Tablespaces SISTEMA Espacio de tablas Segundo Espacio de tablas Tercer Espacio de tablas Archivos de Datos Figura 2. Esta separación de datos es una herramienta importante en la planeación y optimización de la forma en que la base de datos maneja las solicitudes de entrada / salida que recibe.2. entonces se deben separar físicamente colocando sus respectivos archivos de datos en discos distintos. ni puede ser asociado con algún otro espacio de tablas [LoK02]. Si se almacenan objetos de bases de datos en múltiples espacios de tablas. aunque están relacionados con la base de datos.1 Relaciones sobre bases de datos. como “externas”. Estas transacciones se registran en archivos denominados archivos de registro de reconstrucción en línea. son estructuras tanto “internas”. • Los archivos de control. Los registros de reconstrucción Oracle conserva registros de todas las transacciones realizadas en la base de datos.4 Otros archivos Los archivos de datos de la base de datos. Figura 2. Además 17 . hasta llenarlo. Si la base de datos se está ejecutando en modo ARCHIVELOG. Cuando se produce una transacción en la base de datos. copiar uno de los archivos de control existentes en una nueva ubicación. se almacenan varias copias en línea. escribe en el segundo. Se utilizan para conservar la coherencia interna y guiar las operaciones de recuperación. Esta operación permite al DBA duplicar los archivos de registro de reconstrucción sin depender del sistema operativo o de la funcionalidad que ofrezca el hardware del entorno de funcionamiento [LoK02]. Si se tiene que añadir un nuevo archivo de control a la base de datos. mientras que los bloques de datos afectados por la transacción no se escriben de manera inmediata en el disco. Archivos de Control La arquitectura física global de una base de datos se mantiene por medio de sus archivos de control. con el fin de minimizar el daño potencial derivado de posibles fallos de los discos. El archivo de traza contiene información relativa a los sucesos significativos con los que se encuentran dichos procesos. La información del registro de reconstrucción se almacena de forma independiente de los archivos de datos de la base de datos. en los que se registra la información de control referente a todos los archivos de la base de datos. vuelve al primero y empieza a sobrescribir su contenido con nuevos datos de transacciones. en caso de que se produzca un fallo en la base de datos. ésta se introduce en los buffers del registro de reconstrucción. Todas las bases de datos Oracle tienen tres o más archivos de registro de reconstrucción en línea. se puede cerrar la instancia. Los archivos de registro de reconstrucción también permiten que Oracle coordine la forma en que se escriben los datos en el disco. Estos archivos suelen almacenarse en discos separados. Cuando se han llenado todos los archivos de registro de reconstrucción en línea. añadir la nueva ubicación a la configuración del parámetro CONTROL_FILES y reiniciar la instancia. Oracle escribe en ellos de manera cíclica: después de llenar el primer archivo de registro.recuperar las transacciones de la base de datos en el orden adecuado. Los nombres de los archivos de control de la base de datos se especifican a través del parámetro de inicialización CONTROL_FILES. Como los archivos de control son fundamentales para la base de datos. hará una copia de los archivos de registro de reconstrucción en línea antes de sobrescribirlos. La base de datos creará y mantendrá los archivos de control que se hubieran especificado en el momento de la creación de la base de datos. Los archivos de traza y el registro de alertas Todos los procesos asociados a una instancia que se ejecutan en segundo plano tienen a su vez un archivo de traza asociado. Estos archivos de registros de reconstrucción salvaguardados pueden utilizarse para devolver a cualquier parte de la base de datos al estado en que se encontrara en un determinado momento La base de datos puede duplicar en espejo los archivos de registro de reconstrucción. Los cambios de los parámetros pueden continuar en efecto después de las operaciones sucesivas de apagado e inicio. Es posible que múltiples instancias accedan a una única base de datos (ésta es la opción conocida como Real Application Cluster). Oracle conserva un archivo llamado registro de alertas. Con el fin de que el registro de alertas resulte más fácil de usar. El nombre de un archivo de inicialización de una instancia usualmente incluye el nombre de la instancia.5 Instancias Para acceder a la información a la base de datos. Las entradas de este registro de alertas informan sobre cualquier problema que haya surgido durante las operaciones de la base de datos. el DBA puede utilizar SPFILE. la caché de buffers de bloques de datos. el cual está almacenado en spfile. conocido como SPFILE. Este registro almacena los comandos y los resultados de los comandos correspondientes a los sucesos más importantes que ocurren en la vida de la base de datos. Estas áreas de memoria ayudan a mejorar el rendimiento de la base de datos.ora o. Este archivo es leído durante el inicio de la instancia y puede ser modificado por el DBA (Administrador de Bases de Datos. la creación de espacios de tablas. Los parámetros que determinan el tamaño y composición de una instancia son almacenados en un archivo llamado init. Cualquier modificación hecha a este archivo no tendrá efecto hasta que el siguiente inicio de la instancia. las operaciones de recuperación y los inicios de la base de datos se graban en el registro de alertas. Además. El registro de alertas es una fuente de información fundamental para la gestión cotidiana de una base de datos. el área de bloques de gran tamaño y el área Java. cualquier error interno de tipo ORA-0600 que se haya producido. 18 . temporales o definitivos. La relación entre instancias y bases de datos se muestran en la figura 2. en lugar del archivo init. En Oracle9i.1. constituyen generalmente más del 95 por 100 de la memoria asignada a la SGA. residen dentro de la base de datos. en un archivo de parámetros de servidor. el área compartida SQL. el paso de un registro de reconstrucción a otro.de estos archivos..ora usualmente será llamado initorcl. DataBase Administrator). Una instancia de base de datos (conocida también como servidor) es un conjunto de estructuras de memoria y procesos en segundo plano que acceden a un conjunto de archivos de bases de datos.2 [LoK02]. si la instancia es llamada ORCL. existen estructuras de memoria (Conocidas por todos como SGA) que son utilizadas para almacenar las últimas consultas hechas a la base de datos. como. Por ejemplo. independientemente del contenido del archivo de parámetros de inicialización. Las secciones más grandes de la SGA (System Global Area o área global del sistema). entonces el archivo init.ora. bien. Los archivos de traza son muy útiles para tratar de descubrir la causa de un fallo importante [LoK02]. por ejemplo. Oracle crea cada vez más y más parámetros dentro de la base de datos que se pueden ajustar dinámicamente.ora e introducir cambios. oracle utiliza un conjunto de procesos en segundo plano que son compartidos por todos los usuarios. ya que reducen la cantidad de operaciones de entrada /salida sobre los archivos de datos. en los parámetros de inicialización [LoK02]. 2. 2 Características Administrativas de Oracle 2. Estándar.2 Instancias y bases de datos en Oracle 2. Proporciona características más extensas para entornos de procesamiento de transacciones en línea (OLTP) y business intelligence a un precio más accesible.Ins t an cia SGA User process Shared pool Library Cache Server process Data Dictionary Cache Database Buffer Cache Redo Log Buffer Java Pool Large Pool PGA PMON Trace Files SMON Datafiles DBWR LGWR Control Files CKPT Redo Log Files Otros Parameter File Base de Datos Figura 2.2.1 Instalación [PeC03] Oracle cuenta con una gama de productos entre ellos diferentes versiones de Bases de Datos como: Enterprise. Edición Estándar: Es una alternativa de bajo costo para la mediana y pequeña empresa o aplicaciones departamentales que necesitan de las utilidades de Oracle pero no requieren las opciones high – end de la versión Enterprise Edición Personal: Una versión de Bases de Datos Oracle con características completas que cumple las necesidades de individuos que requieren de compatibilidad con toda la familia de bases de datos Oracle Para este sistema que se desarrollará se ocupará la versión Personal de Oracle ya que se cumple con los requerimientos a apropiados. Estándar Edición uno y versiones Personal Edición Enterprise: Ofrece escalabilidad y confiabilidad tanto en configuraciones de cluster como en las de sistema único. en adelante se hablará de los detalles de la instalación de la Base de Datos: 19 . que instala el servidor de administración. el directorio de Internet de Oracle.3. las herramientas de administración. se procede a desinstalar alguna base de datos de Oracle de versión anterior si es que existe. Administrador e integrador Oracle 9i.La instalación fue echa sobre el sistema operativo XP utilizando la base de datos Oracle 9i que consta de 3 CD’s de instalación. servicios de red. Después de este paso se configura el lugar donde serán almacenados físicamente la base de datos en el disco duro tomando en cuenta también el directorio de donde se están tomando los archivos de instalación. las herramientas de gestión. Imagen 2. inicialmente se obtiene la página de bienvenida de este asistente. los precompiladotes y el software básico del cliente . el servidor de integración Oracle. que instala una base de datos inicial opcional ya preconfigurada. cuando es insertado el primer CD se ejecuta el asistente de instalación Oracle Universal Installer que permite instalar y configurar la base de datos. Para el destino de los archivos se da un nombre de la variable de entorno ORACLE_HOME y su directorio raíz. utilidades y software básico del cliente. instala las herramientas de administración Enterprise. para desinstalar una versión anterior de base de datos Oracle hay que oprimir el botón “desinstalar productos” o también utilizar este botón en caso de modificar puntos en una instalación de esta versión hecha previamente como lo muestra la imagen 2. los servicios de red. Cliente Oracle 9i. El paso siguiente consiste en seleccionar uno de tres posibles productos que son : • • • 20 Base de datos Oracle 9i. utilidades y software básico de cliente para un servidor de base de datos Oracle.3 Ventana de inicio del asistente de instalación Una vez iniciado el asistente de instalación.4. utilidades. de lo contrario se prosigue con la instalación. herramientas de desarrollo. como lo muestra la imagen 2. servicios de red. 21 . destinada para aplicaciones de grupo de trabajo o a nivel de departamento. Incluye un juego integrado de herramientas de gestión. Imagen 2.5. • Personal Edition. Ofrece herramientas y funcionalidad para satisfacer las necesidades de disponibilidad y escalabilidad de aplicaciones críticas. • Edición Estándar.Para el desarrollo del sistema de facturación se requiere de la primera opción como lo muestra la imagen 2. que proporciona gestión de datos para aplicaciones de nivel superior como.4 Configuración para desinstalar productos En el siguiente paso se selecciona el tipo de instalación que se pueden elegir las siguientes opciones: • Enterpríse Edition. que permite instalar de forma selectiva componentes de los tipos de instalación anteriores. almacenes de datos de numerosas consultas y aplicaciones de Internet exigentes. Tenga en cuenta que algunos componentes adicionales sólo están disponibles para la instalación personalizada. pero que soporta sólo un usuario. • Personalizada. siendo compatible con Enterprise Edition y Standard Edition. entornos de procesamiento de transacciones en línea (OLTP) de alto volumen. distribución completa. replicación y funciones Web para crear aplicaciones críticas. por ejemplo. Este tipo de instalación es el único de Oracle 9i soportado por Windows 98. que instala el mismo software que el tipo Enterprise Edition. se procede a seleccionar el tipo de configuración de Base de Datos. ya sea de uso general que instala una base de datos configurada previamente para uso general.5 Productos disponibles Después de haber seleccionado la opción Enterprise. En caso contrario se oprime el botón “instalar”. de procesamiento de transacciones que instala una base de datos configurada previamente optimizada para los almacenes de datos. dando como datos: el nombre de la base de datos global y el “SID” identificador del sistema de Oracle. se recomienda que el nombre en ambas partes sea corto y el mismo como lo muestra la imagen 2.Imagen 2. de almacenes de datos. cambiará de ventana el asistente mostrando una barra de progreso indicando el porcentaje de estado de la instalación. personalizada o sólo software. 22 . Por último se muestra el resumen que muestra todos los componentes que fueron indicados y serán instalados.6. Para después configurar la ubicación de archivos de las Bases de Datos ya sea escribiendo la ruta directamente o seleccionándola a través del botón “Examinar” del cuadro de diálogo del asistente de instalación. En seguida se configura la identificación de la base de datos que se creará de manera simplificada. en este punto se puede retroceder en alguna fase de instalación para su modificación. En este caso se utilizó la primera opción que fue de uso general. 7 Fin de la instalación 23 . Imagen 2.Imagen 2.6 Identificación de Bases de Datos Al finalizar la instalación el asistente nos mostrará un mensaje de Fin de la instalación como lo muestra la imagen 2. si se desean instalar algunos otros componentes se oprime el botón “Siguiente instalación”. de lo contrario oprimir el botón “Salir”.7. Desde la perspectiva de un administrador de bases de datos (DBA).2.1 Procesos culturales Los administradores de bases de datos y los desarrolladores que trabajen formando parte del mismo equipo pueden mejorar considerablemente el proceso de desarrollo. lo que requiere por tanto menos tiempo de mantenimiento. entre otros más[LoK02]. • Gestión: Se debe exigir a los desarrolladores que sigan lo más estrictamente posible una metodología de ciclo de vida • Tecnología: Los desarrolladores y administradores de bases de datos deben definir una serie de mecanismos que aseguren que existe el nivel adecuado de participación y atención a los detalles. El ciclo de vida de una base de datos se define por las cuatro acciones: planificación. El valor que el administrador de la base de datos añade a estos esfuerzos adquiere aún mayor alcance cuando el DBA entiende completamente la aplicación y las necesidades comerciales que satisface.2.2. procesos de gestión y tecnología.2. la mejor forma de llevar a cabo este proceso es convertirse en parte integrante de los equipos participantes en él [LoK02]. creando índices adecuados para maximizar el rendimiento de las consultas. 24 . Los elementos de la implementación adecuada de este ciclo pueden identificarse como pertenecientes a tres categorías principales: procesos culturales. creación.2 Gestión del proceso de desarrollo Gestionar el desarrollo de aplicaciones puede ser una tarea complicada. Un equipo conjunto de administradores y desarrolladores proporcionan valor añadido creando aplicaciones de mantenimiento más sencillo. La implementación de una aplicación en una base de datos mediante la simple ejecución de una serie de comandos “crear tabla” (create table en el lenguaje SQL) no asegura la integración del proceso de creación con las otras áreas principales (planificación. podrá entender mejor los objetivos que persiguen los desarrolladores en su proceso de desarrollo de aplicaciones. El administrador de bases de datos debe participar en los procesos de desarrollo de la aplicación para diseñar correctamente la base de datos que dará soporte al producto final. Si comprende las necesidades comerciales. creando aplicaciones con un tamaño y una configuración adecuados. control y ajuste). Identificando las tablas y los índices que utilizará la aplicación con más frecuencia. control y ajuste. 2. Gestionar los esfuerzos de implementación por parte de los desarrolladores de la base de datos requiere llevar a cabo acciones en las tres categorías: • Cultural: La cultura corporativa y el equipo de desarrollo deben dar soporte a la participación del administrador de la base de datos en el proceso de desarrollo. Si los documentos entregables de la sección de desarrollo están terminados. dando soporte a la gestión de versiones y a la creación de prototipos. Las herramientas CASE permiten mantener o congelar distintas versiones de un modelo de datos. Para saber si se está siguiendo una metodología es necesario el establecimiento de una lista de elementos llamados documentos entregables que deben cumplimentarse durante el desarrollo de la aplicación. tanto en formato como en nivel detalle. los documentos entregables necesarios para cada etapa del ciclo de vida que. la metodología de be definir las relaciones entre las distintas áreas funcionales y los documentos entregables necesarios en cada fase de desarrollo de la aplicación. 25 . entonces la aplicación puede pasar al entorno de prueba. directorios compartidos. Como la mayoría de los equipos de desarrollo incluyen varios desarrolladores (a al menos un DBA).2. Herramientas CASE Se puede utilizar una herramienta CASE para generar el diagrama de relaciones entre entidades y el modelo físico de la base de datos. se debe establecer un medio de comunicación. deben incluir especificaciones para cada uno de los siguientes elementos: • Diagrama de relaciones entre entidades • Modelo físico de la base de datos • Requisitos de espacio • Objetivos de optimización para consultas y el proceso de transacciones • Requisitos de seguridad • Requisitos de los datos • Planes de ejecución de consultas • Procedimientos de las pruebas de aceptación 2.2.2. revisados y aprobados. Los canales de comunicación permitirán mantener la coherencia en la planificación y la ejecución. Las herramientas CASE pueden crear el diagrama de relaciones entre entidades y suelen tener un diccionario de datos integrado.3 Tecnología Los documentos entregables internos al proceso deben estar disponibles mientras el desarrollo esté teniendo lugar. Se necesitan cuatro soluciones tecnológicas para la metodología funcione: herramientas CASE. La metodología debe definir claramente.2.2 Procesos de gestión Para gestionar adecuadamente los esfuerzos de desarrollo. bases de datos de administración del proyecto y bases de datos de discusión. bajo cuyas restricciones deberán entonces trabajar los desarrolladores [LoK02]. además.2. Las herramientas CASE pueden permitir la compartición de entidades entre varias aplicaciones y pueden almacenar información sobre volúmenes de tablas y tamaños de fila. y las herramientas Express. para análisis y consultas ad hoc. no tienen una herramienta específica con la que deban ser creados. Bases de datos de administración del proyecto Para comunicar el estado de la aplicación y sus documentos entregables a las personas que no formen parte del equipo de desarrollo. Oracle Developer es la herramienta que eligen muchas empresas de todo el mundo para desarrollar aplicaciones personalizadas de carácter empresarial. Los archivos resultantes deberían almacenarse en directorios de proyecto compartidos de forma que todos los miembros del equipo implicados puedan acceder a ellos. 26 . En la actualidad. 2. Esta base de datos debe ofrecer a estas personas una perspectiva del proyecto y de su estado. y JDeveloper. Esta información permitirá a las personas que no estén implicadas directamente en el proyecto (como el personal de administración de sistemas) anticiparse a los futuros requisitos. debe mantenerse una base de datos de administración de proyecto. La base de datos de administración del proyecto permite además realizar el análisis del impacto que pueden tener cambios o retrasos producidos en la programación. Se puede también utilizar la herramienta CASE para crear versiones genéricas de aplicaciones basándose en los objetos de base de datos definidos. como los requisitos de copia de seguridad. para el desarrollo de aplicaciones analíticas. Directorios compartidos Varios de los documentos entregables. Oracle Developer es una herramienta de desarrollo líder en el mercado para la creación de aplicaciones de base de datos. Oracle Reports. herramienta de desarrollo de Java basada en componentes. lo que daría lugar posiblemente a modificaciones en los niveles de recursos asignados a las tareas del proyecto [LoK02].3 Herramientas de desarrollo Oracle Oracle ofrece herramientas para desarrollar aplicaciones de procesamiento de transacciones como las herramientas Oracle Business Intelliegence que incluyen: Oracle Discover. Entre las herramientas de desarrollo de Oracle se incluyen Designer y Developer. para la publicación de bases de datos de alta fidelidad. y reduciendo el proceso de codificación manual. productivas herramientas de desarrollo basado en modelos.Los comandos SQL que crean los objetos de base de datos para la aplicación deben generarse directamente desde la herramienta CASE. Proporciona las utilidades y herramientas de productividad para crear aplicaciones de base de datos de primera que automaticen funciones y procesos de negocio. Los formatos y los convenios de nomenclatura para estos archivos deben especificarse en las primeras etapas de proceso de desarrollo. dentro y fuera de la empresa. que resulta propenso a errores [PKo+00]. Las herramientas de Oracle automatizan el desarrollo de aplicaciones y reducen el trabajo y el tiempo necesarios para completar aplicaciones de bases de datos. Estos documentos deben crearse con cualquier herramienta que sea adecuada y que esté disponible en dicha organización. • Librería. Forms PL/ PL/ SQL SQL Menús Formas Librerías Transacciones VBX VBX OLE2 OLE2 DDE DDE Otros Otros Productos Productos de de Developer Developer 6i 6i Fuentes de Datos Imagen 2. • Menú. Forms permite desarrollar aplicaciones para presentar y manipular datos de muchas maneras. Las aplicaciones de Forms le permiten a los usuarios: • Insertar. • Presentar los datos utilizando controles de texto.8 muestra la estructura de forms y su interacción con la base de datos Oracle.Los autores Meter y Paul muestran en su libro varios recursos para el desarrollo en Oracle Developer como: una referencia de práctias recomendadas usando las características orientadas a objetos de Oracle Developer. actualizar. Forms es el componente principal de Developer 6i. imágenes y VBX. Es una colección de unidades de programa en PL/SQL. • Control de formas a través de varias ventanas. La imagen 2. • Acceso de fácil comprensión. Los elementos de datos en una forma son agrupados en registros.8 Base de Datos Estructura de Forms 27 . Usualmente los módulos menús son ligados a módulos forma. Módulos en Forms En Forms se tienen tres tipos de módulos (archivos): • Forma. borrar y consultar datos utilizando una variedad de items de interfaz. Estas unidades de programa pueden ser utilizadas en formas y menús. utilizando menús integrados. Una forma presenta los objetos y datos con los que el usuario puede interactuar. Un módulo menú puede comprimir una jerarquía de menús. un análisis de los estándares para Oracle Developer que ayuden a garantizar el éxito de los proyectos que se presenten. otros productos de Developer y otros objetos. El principal vínculo que lo une a dicha base de datos es un bloque. como puede ser una tabla o un procedimiento.3. En la imagen 2. Cada bloque puede contener uno o más elementos. La pantalla actúa como una especie de interfaz de usuario que permite al usuario visualizar o manipular la información de la base de datos. Generalmente. insertar. elementos de visualización. Se utilizan controles de interfaz gráfica de usuario estándar. que está asociado con un objeto de la base de datos. actualizar y borrar mediante elementos que se corresponden en las columnas de una tabla o con los elementos de un registro en una variable de cursor o tabla PL/SQL. como elementos de texto.1 Arquitectura de datos de Developer Forms y Developer Reports Una pantalla “Form” es un módulo de Form Builder que almacena un conjunto de objetos en un solo archivo. casillas de verificación y grupos de botones e opción para representar en la interfaz los elementos de datos. los vínculos con una tabla y cómo los objetos se relacionan entre sí con un nivel obligatorio de tipo uno a muchos [PKo+00]. Cada pantalla contiene uno o más bloques.9 se muestra los objetos de pantalla más importantes. Los datos se pueden consultar.9 Principales relaciones de los objetos de una pantalla 28 . los elementos aparecen en una pantalla para que el usuario pueda interactuar con ellos. Tabla Æ ÅPantalla de Forms Imagen 2. La ventaja de Oracle Developer Forms radica en su estrecha relación con la base de datos Oracle.2. pero se pueden asignar ventanas separadas para cada canvas.10. todos los canvas en una forma aparecen en la misma ventana. Los tres objetos principales en una forma son: • Items. para hacer disponibles las unidades de programa de la librería dentro de cada módulo. pueden corresponder a columnas de una tabla en la base de datos. Un canvas es una superficie donde se colocan objetos visuales. Son objetos que presentan valores al usuario y le permiten interactuar con la forma. • Canvas. Forms permite relacionar los tres tipos de módulos. 29 . • Se puede atar uno o más módulos Librería a un módulo Forma o a un módulo Menú. dependiendo del tipo de item. ya que pueden estar distribuidos en varios canvas.Forms Forma Menú Forma Procedimiento Procedimiento Función Función Paquete Paquete Imagen 2. no todos son visibles al usuario en tiempo de ejecución. No es necesario que los items de un bloque estén físicamente agrupados. Los items son agrupados lógicamente en bloques y distribuidos físicamente sobre canvas. Un bloque es una agrupación lógica de items. haciendo las opciones del menú disponibles desde la forma en tiempo de ejecución. • Se puede atar un módulo Menú a un Módulo Forma. • Un módulo Forma puede invocar a otro módulo Forma Lo anterior puede ser mostrado en la imagen 2. Por default. Una forma puede tener muchos tipos de objetos.10 Manejo de la herramienta Forms de Oracle Mediante Forms se pueden crear diferentes tipos de módulos: Forma. • Bloques. Una forma puede tener varios canvas (como las páginas de un libro). Menú y Librería. por ejemplo. Los items en un bloque deben estar relacionados lógicamente. actualizar.11 muestra un ejemplo de cómo es el diseño final de un reporte el cual plasma en impresión o diferentes formatos de documentos la salida de la información requerida.Un bloque con tabla base.11 Ejemplo de diseño de un Reporte en Developer Reports 30 . para mostrar los datos de la columna. Se pueden crear bloques con una relación maestro-detalle para permitir que valores de llave primaria y llave foránea sean ligados a través de bloques y sincronizar los datos que serán desplegados. Reports emplea un objeto independiente en el modelo de diseño (Layaout Model). En Reports hay un objeto. un valor de columna de una fila de una tabla) en una consulta del modelo de datos. que se denomina columna. En el componente Forms sólo hay un objeto. el campo. son con tabla base. El modelo de datos y el modelo de diseño contienen representaciones independientes. es un bloque que está asociado con una tabla o vista de la base de datos. La Imagen 2. Forms automáticamente: • Crea items que correspondan a columnas de la tabla. Un bloque sólo puede tener una tabla base. Forms automáticamente genera los objetos y el código necesario para soportar la relación maestro-detalle. Puede haber columnas sin campos y puede haber columnas con más de un campo. • Produce código en la forma para emplear las reglas de los constraints de la tabla. borrar y consultar renglones en la tabla base. Figura 2. Se pueden crear bloques que sólo muestren un registro o que muestren varios registros a la vez (bloque multi-registro). • Genera en tiempo de ejecución sentencias SQL para insertar. Para un bloque con tabla base. el elemento que hace referencia al valor de la columna en la base de datos y muestra los datos correspondientes. que representa un elemento de datos (normalmente. Los componentes Forms y Reports de Oracle Developer poseen arquitecturas de datos diferentes. de la base de datos. Muchos de los bloques en una forma. dependiendo de las acciones del usuario. a partir del bloque y elementos contenidos en la pantalla. DELETE y SELECT). Otra de las funciones de esta herramienta radica en su capacidad de gestionar automáticamente el bloqueo de filas y la concurrencia. Si se guarda un módulo forma al sistema de archivos. El usuario puede poner la pantalla en el modo Enter Query (Introducir Consola). introducir los valores de correspondencia en los elementos del bloque y ejecutar la consulta.12 Fuentes y Ejecutables Memoria Memoria de de Forms Forms Builder Builder Definición Definición de de la la Forma Forma Preferencias ¿Archivos ¿Archivos oo OPEN Base Base de de Datos? Datos? SAVE COMPILE Runtime Runtime de de Forms Forms Tablas Tablas RUN Base de Datos .12 Funcionamiento de la herramienta Forms de Oracle 31 . sin necesidad de ninguna codificación adicional [PKo+00]. Esto puede ser visto en la imagen 2. se debe generar un archivo . UPDATE.Forms crea automáticamente instrucciones DML e instrucciones SQL de consulta (INSERT. Otra de las utilidades de Forms es la función de consulta por ejemplo (QBE. Las definiciones de los módulos de Forms se pueden almacenar en el sistema de archivos o en la base de datos. Un archivo ejecutable de Developer. La pantalla creará una cláusula WHERE que se añadirá a la instrucción SELECT generada para recuperar los datos.fmb Sistema de Archivos Figura 2.fmx . Este archivo no es ejecutable. necesita una herramienta del mismo Developer para ejecutarlo. Query – By – Example).fmb). gracias a la funcionalidad ya incluida en el bloque.fmx para ejecutar la forma. Estas instrucciones SQL no necesitan ninguna codificación. se crea un archivo Form Module Binary (. usan Oracle para el negocio electrónico.4 Ventajas Oracle es el mayor proveedor de software de comercio electrónico del mundo. Esto se debe a que Oracle ofrece una completa plataforma de Internet.13 Tipos de archivos para módulos en Forms de Oracle Además de los módulos forma (.fmb) también se puede salvar los módulos menús y los módulos librería al sistema de archivos. mientras que los archivos ejecutables no son portables 2. servidores de aplicación y herramientas. Entre las herramientas de Oracle se incluye una serie integrada de herramientas para labores de inteligencia empresarial “Business Intelligence”. para satisfacer fácilmente a cualquier pregunta sobre negocios. Developer ofrece la suficiente flexibilidad para ajustar las aplicaciones con el fin de que proporcione el máximo rendimiento [PKo+00].fmb Forma Forma . Los archivos fuente tienen la característica de que son portables a diferentes plataformas. Arriba se ilustra en la figura 2.fmx .mmx . Si un equipo de desarrollo utiliza Oracle Developer Forms y Reports para crear una aplicación que acceda a una base de datos Oracle. 32 .plx Figura 2.Archivos Binarios Definición Binaria Portable Ejecutable NoNo-Portable . que extensión tienen los archivos donde se guardan los módulos forma. Developer posee la capacidad de satisfacer la mayoría de los requisitos de interfaz de usuario más habituales. también la extensión de los archivos ejecutables. incluyendo la base de datos 9i. 65 de las 100 mayores empresas. Además.13.pll Librería Librería .mmb Menú Menú . pueden crear rápidamente un sistema sofisticado y fácil de utilizar que pueda satisfacer incluso los requisitos más complejos. según la clasificación de la revista Fortune. menú y librería. Capítulo 3 Análisis y diseño del sistema Este capítulo se enfatiza con los planteamientos, análisis y estrategias de cómo se pretende desarrollar el sistema, aquí se centran las bases de la aplicación de la ingeniería de software. 3.1 Planteamiento del problema Una empresa ofrece servicios de señal a aparatos radio localizadores, como cualquier empresa, requiere que sus servicios sean facturados para propósitos fiscales, al inicio se contaban con pocos clientes y el manejo de dichas facturas se podía hacer de manera manual y rápida. Pero a medida que la empresa crece el manejo de la información se vuelve lento. 3.2 Análisis del sistema El sistema debe de analizarse a través una estructura modular, la cual permita identificar cada elemento, como los módulos clientes, cobradores, facturación, productos y servicios y reportes. Primero se debe de contar con un catálogo de Clientes, Productos y servicios, cobradores. Hay que considerar que un cliente puede ser una empresa y usuario a la vez, pero se puede dar el caso de que una empresa pueda tener varios usuarios. Los cobradores pueden tener asignados varios clientes pero un cliente únicamente puede ser asignado a un cobrador. Cuando un cliente es dado de alta es necesario asignarle un servicio ó producto, así como también una forma de pago ya sea a través de un cobrador, cuenta bancaria o directamente en la empresa. Una vez realizado lo anterior se prosigue a llevarle un seguimiento mensual a cada cliente con respecto a sus pagos, para ello se genera la factura a pagar de manera mensual que pasa a ser una cuenta por pagar, dicha generación comprende a todos los clientes que se encuentren activos al momento de crearlas, por ello, se requiere que se generen de manera individual o en grupo. Previniendo cualquier situación se requiere que se pueda cancelar una determinada factura teniendo en cuenta su motivo. Los clientes pueden hacer mensuales sus pagos o hacer anticipos, esto significa que el cliente debe tener un saldo a favor o a pagar. El pago que realizará el cliente (con los medios antes mencionados) hará una aplicación de pago o también llamada liquidación de factura. Cuando el pago es realizado a través de una cuenta bancaria se debe leer la información a través de un documento de texto dado por la entidad bancaria, si el pago es realizado a través de un cheque se debe de tomar los datos del banco, número de cheque y denominación. La empresa puede hacer al cliente la asignación de una nota de crédito por un determinado motivo y monto, el cual deberá también ser considerado. Previniendo 33 cualquier situación se requiere que se pueda cancelar una determinada aplicación de pago teniendo en cuenta su motivo. Dentro de la información que se imprimirá se cuenta con saldos de clientes, facturas, clientes, clientes activos / suspendidos. Los saldos de clientes a consultar deberán mostrar los datos generales del cliente como sus cargos y abonos, así como sus cálculos correspondientes. Los datos de las facturas a imprimir deben reflejar la siguiente información: Facturas pagadas en una fecha determinada, Facturas no pagadas en un determinado rango de fechas, general de facturas, facturas cobradas por cobrador, facturas de clientes suspendidos, facturas clientes activos, facturas canceladas, notas de crédito, facturas pagadas en una determinada fecha y facturas no pagadas en una determinada fecha. Con respecto a los clientes se debe imprimir la siguiente información: Cartera vencida, facturas no pagadas, consumo anual, datos generales, clientes activos o clientes suspendidos y clientes suspendidos por un mes determinado. 3.2.1 Especificación de requerimientos El sistema es requerido por una empresa que brinda los servicios de renta y venta de aparatos radio localizadores. La empresa requiere de un sistema que permita llevar a cabo la facturación de cada mes para los clientes, también deberá permitir el registro de los clientes, productos y servicios. Los clientes podrán consultar su saldo a través de la Web. También se requiere el control sobre el personal de cobro el cual tiene a su cargo diferentes clientes, los cuales visitan al cliente en el domicilio indicado. Se deben de generar las facturas por mes de servicio las cuales irán a cuentas por cobrar, las facturas pueden generarse ya sea por grupo o individualmente, se debe considerar la cancelación de dichas facturas. La aplicación de pagos de las facturas se hace a través del banco, directamente en la empresa ó a través del manejo de anticipos y se debe de contemplar la cancelación de determinados pagos. Se debe considerar información impresa requerida por la empresa como saldos, los diferentes estados de las facturas, datos generales de los Clientes así como su actividad dentro de la empresa (activos o suspendidos). 34 Por último se deben manejar los diferentes productos y servicios dentro del sistema para su mejor manejo. 3.2.2 Estrategia de solución Previamente se ha hecho el análisis del sistema y la especificación de requerimientos, ahora se debe de enfatizar en tomar una estrategia de solución con forme una ingeniería de software. Se utilizará el ciclo de vida clásico de software (también llamado en cascada) el cual tiene un enfoque sistemático y secuencial del desarrollo del software, que según pressman [PrR93], indica que comienza en un nivel de sistema y progresa a través del análisis, diseño, codificación, prueba y mantenimiento. Modelizado a partir del ciclo convencional de una ingeniería, este paradigma abarca las siguientes actividades: Ingeniería y análisis del sistema: Aquí el trabajo comienza estableciendo los requisitos de todos los elementos del sistema y luego asignando algún subconjunto de estos requisitos al software. La ingeniería y el análisis del sistema abarcan los requisitos globales a nivel del sistema con una pequeña cantidad de análisis y de diseño a un nivel superior. Dentro del sistema de facturación éste punto ya ha sido completado en los primeros puntos de este capítulo, en donde se hace el análisis de dicho sistema así como también los requerimientos solicitados por el cliente. Análisis de los requisitos del software. Para comprender la naturaleza de los programas que hay que construir, el analista debe de comprender el ámbito de la información del software, así como la función, el rendimiento y las interfaces requeridas. Los requisitos, tanto del sistema como del software, se documentan y revisan con el cliente. Aplicando este punto al diseño del sistema de facturación se toman en cuenta las características, tanto del software como del hardware, para poder llevar acabo el diseño al software, se plantea el uso del sistema manejador de Bases de Datos Oracle como medio de almacenamiento y para el desarrollo se utilizará una herramienta de Oracle llamada Developer que consiste por una parte en “Forms” que permite la creación de interfaces en un entorno Windows y para los reportes requeridos se utilizará la herramienta “Reports” que permite la comunicación entre la base de datos Oracle, forms y reports. Diseño. Éste es un proceso multipaso que se enfoca sobre cuatro atributos distintos del programa: La estructura de los datos, la arquitectura del software, el detalle procedimental y la caracterización de la interfaz. El proceso de diseño traduce los requisitos en una representación del software que pueda ser establecida de forma que obtenga la calidad requerida antes de que comience la codificación. Este paso en el diseño en cascada se aplica al sistema de facturación como este capítulo, en el cual se modelan diferentes aspectos del sistema, permitiendo así su mejor entendimiento antes de hacer dicha codificación. Codificación. El diseño debe traducirse en una forma legible para la máquina. Si el diseño se realiza de una manera detallada, la codificación puede realizarse mecánicamente. 35 La prueba se centra en la lógica interna del software.1 Narrativa de las funciones del sistema El módulo general se compone de los módulos de verificación de usuario. 3. El sistema de facturación debe de pasar esta prueba por el cliente. El primer módulo es de seguridad donde los usuarios deben de identificarse para poder acceder al sistema a través de un nombre de usuario y contraseña 36 . Prueba. Catálogos principales. El software sufrirá cambios después que se entregue al cliente. facturación y Generación de reportes y consultas la Figura 3.1 Generar. Esta fase permitirá al sistema de facturación quedar libre de errores comunes de programación sin embargo requerirá de su etapa de mantenimiento para verificar otro tipo de errores que se puedan llegar a encontrar. a que el software deba adaptarse a cambios en los procesos que venía haciendo el cliente manualmente. comienza la prueba del programa.3. se pasa a la codificación. asignar. aplicar Cuentas X Cobrar y Facturas Generar re porte s y consultas Modelo Funcional General 1.1 muestra la estructura general de los módulos. Una vez que se ha generado el código. Sistema de Facturación y Cobranza Verificación de usuario Catálogos Principales Figura 3. ya que es el único que puede evaluar finalmente el sistema tanto como el pueda aplicarlo a sus necesidades. como se eligió el entorno de “Developer” de Oracle como herramienta de desarrollo se utilizará el lenguaje “SQL” ya que es el lenguaje de programación básico de las bases de datos relacionales y “PL/SQL” que es el lenguaje flexible con el cual se interactúa con las herramientas de Oracle haciéndolo más fácil de manejar dentro del medio de las bases de datos. Generación de cuentas por cobrar. Los cambios ocurrirán debido a que se hayan encontrado errores. Mantenimiento.Después de haber hecho el análisis y verificado en que se desarrollará dicho sistema. realizando pruebas que aseguren que la entrada definida produce los resultados que realmente se requieren.3 Modelo funcional 3. productos y servicios El módulo de catálogos principales es el encargado de generar los datos con los que el sistema deberá de tener primeramente para poder funcionar.2 Modelo Funcional del verificación de usuarios 2. éste a su vez se divide en tres. que son los de Clientes. cobradores y productos y servicios. 37 . Usuario ó supervisor. la figura 3. Se cuenta con un submódulo que permite otorgar atributos a usuarios como Cliente. En este módulo se pueden hacer las modificaciones correspondientes al catálogo de Contratos en el caso de que el usuario halla accedido al sistema como supervisor o usuario con privilegios. En este módulo se pueden hacer las modificaciones correspondientes al catálogo de Clientes en el caso de que el usuario halla accedido al sistema como supervisor o usuario con privilegios.2 muestra la estructura del módulo. agregar y eliminar Contratos. Guardar. la figura 3.1. 2.2. 2. baja o modificación de los datos. Almacenar y manipular datos de clientes. que cada uno permite hacer una alta. agregar y eliminar Clientes.1.3 muestra dicha estructura. en caso que el usuario halla accedido como supervisor con su pasaporte correspondiente La función de verificación de usuarios es la que permite asignar privilegios a los usuarios que serán utilizados después para el acceso al sistema mediante la asignación de un nombre de usuario y contraseña. Verificar Usuario Comprobar nombre y pasaporte de usuario Asignar permisos Supervisor Capturista Cliente Figura 3. Guardar.1. contratos. cobradores. la figura 3. Genera Cuentas x cobrar en grupo. este módulo se tiene la información de los números de contrato los cuales están agrupados dependiendo de un determinado cliente para su cobro de servicio. en este módulo se tiene el número de contrato. En este módulo se pueden hacer las modificaciones correspondientes al catálogo de Productos y servicios en el caso de que el usuario halla accedido al sistema como supervisor o usuario con privilegios. en seguida se aplica el módulo de asignación de cuentas a cobradores para que después realizados los pagos se apliquen y después se efectúe la generación de facturas así como también su captura en el sistema. asignar.3. 38 . Generar.1. cancelar.4. Guardar. aplicación de Facturas y Cuentas por Cobrar El módulo de generación de cuentas por cobrar permite primeramente generar dichas cuentas por cobrar para después ser capturados a la base.4 indica la estructura de este módulo. periodo de servicio que se le cobrará al cliente 3. Catálogos Principales Clientes Cobradores Productos y Servicios Altas Altas Altas Bajas Bajas Bajas Modificaciones Figura 3. 3. Genera Cuentas x cobrar individuales. 2. agregar y eliminar Productos y servicios. fecha.3 Modificaciones Modificaciones Modelo Funcional del catálogos principales 3. datos del cliente. descripción de cobro.2. En este módulo se pueden hacer las modificaciones correspondientes al catálogo de Cobradores en el caso de que el usuario halla accedido al sistema como supervisor o usuario con privilegios. Guardar. agregar y eliminar Cobradores.2. 5. Saldos de clientes. 3. Aplicación de pago de una Cuenta x Cobrar. también aquí se considera la aplicación de una nota de crédito. general de facturas. aplicar Cuentas X Cobrar y Facturas Captura de Cuentas x Cobrar Genera Asignación de Cuentas X Cobrar Cuentas a Cobradores Aplicación de Pagos Captura de Facturas Generación de Facturas Figura 3. facturas pagadas durante un rango de fechas. la causa de la cancelación y fecha. Cancelación de una Factura. este módulo genera los reportes de los clientes y muestra sus datos generales así como su saldo actual. aquí se especifican diferentes rangos como: facturas pagadas. facturas no pagadas. 39 . este módulo solo requiere del número de Cuenta x Cobrar.6. asignar. 3. solo hay que tener como referencia el nombre del cobrador y el número de Cuenta x Cobrar Generar. Generar Reportes y consultas 4. este módulo se encarga de asignar a los cobradores sus Cuentas que serán cobradas a los clientes. 3.4. este módulo solo requiere del número de folio de la Factura. abono o ambos y dependiendo de ello se hace un cálculo. facturas de clientes suspendidos.3. facturas cobradas por determinado cobrador. Reporte de facturas.1. para poder generar el reporte es necesario dar el rango de números de contrato que se desea imprimir. facturas canceladas. la aplicación del pago a una factura se aplica por grupo o individual. facturas de clientes activos. Asignación de Cuentas x Cobrar a Cobradores. este es un módulo en el cual una cuenta x cobrar ya pagada se aplica a una factura para efectos fiscales del cliente. la causa de la cancelación y fecha. 4. notas de crédito. y facturas no pagadas en un determinado periodo de fechas.4 Modelo Funcional de Generación y Aplicación de cuentas x cobrar y facturas 4.3.2. Cancelación de una Cuenta x Cobrar. y ya sea que se desee consultar por cargo. este módulo permite obtener los datos de los clientes que su estado se encuentra suspendido o activo a partir de una determinada fecha.3. este módulo puede dar a conocer la información general de los clientes dependiendo de la cartera vencida. rango de fechas o por mes.5 Facturas Saldos Pagadas / No Pagadas Generales Por Cobrador Activos / Suspendidos Canceladas Modelo Funcional de Generación de Reportes y Consultas 3. En el DFD de nivel 0 se muestra solo las entidades externas que permitirán interactuar con el sistema y las entidades externas a donde llega la información finalmente. facturas no pagadas y consumo anual. Generación de Reportes y Consultas Clientes Figura 3. Clientes Activos / suspendidos.4.4. 4. Clientes.3.2 Narrativa del flujo de datos del sistema (DFD) En la fase analítica del sistema se han generado los siguientes diagramas que nos permiten una presentación gráfica de las interrelaciones mostrando el flujo de entrada y salida de datos. 40 . dependiendo de ello es como se tiene acceso solo a consultas que es el caso del usuario tipo cliente. En el diagrama de flujo de datos en nivel 1 los usuarios que acceden al sistema deberán iniciar con un proceso de validación el cual identificará los privilegios de cada usuario. El usuario capturista tiene acceso restringido a ciertas áreas donde solo es válida la captura. así como también asignar privilegios a usuarios y por último el usuario cliente el cual solo tiene el derecho de saber el saldo de su cuenta actual en el sistema. manipulación e impresión de información. siendo supervisor o capturista se procede a manejar los demás módulos pero con ciertas restricciones que los diferencia entre usuarios. 41 . Supervisor y Cliente.6 Diagrama DFD de Nivel 0 El sistema estará manejado por tres diferentes tipos de usuario: Capturista.Factura Datos personales Cliente Capturista Datos personales Supervisor Sistema de Facturación y cobranza de servicios y productos de radiolocalización Cuentas x Cobrar Cobrador Saldos Cliente Datos personales Reportes Cliente Capturista Figura 3. el usuario supervisor es aquel que tiene acceso a todo el sistema el cual puede modificar cualquier tipo de información. se le considera cliente a la persona la cual tiene un contrato en este sistema y se le considera capturista a la persona la cual utiliza este sistema como herramienta de trabajo para manipular información de la base de datos con fines que la empresa le requiera. en la es alimentada la Base de Datos con la información de Clientes. Notas de 42 . Cobradores. Una vez generadas las cuentas por cobrar se procede a asignar dichas cuentas a los cobradores mediante un módulo de asignación que requiere solo de las cuentas generadas anteriormente y los datos de los cobradores que se les asignará. esta información generada es almacenada en una tabla llamada Cuentas por cobrar. Las facturas generadas son almacenadas como comprobante de venta en la Base de Datos. las Cuentas por Cobrar se aplican a las facturas las cuales deben de amortizar su valor con el de la cuenta cobrada. éstas se generan tomando en cuenta los datos del cliente y los de los servicios solicitados por el cliente a través de un contrato. Genera Cuentas x Cobrar Saldos. teniendo así un control detallado de dicho movimiento contable. Se cuenta también con un módulo de captura general de datos. esta información está acompañada por los datos del cliente y generar así la factura impresa. Facturas grneradas Genera Factura os Dat t e n e i Cl Datos Notas Datos Cobrador Datos Cliente Datos clientes/ Prod. Figura 3. cuentas x Cob. Productos y Servicios. Cuando los cobradores hayan realizado sus cobros. éste primero debe de generar las cuentas por cobrar que es el medio por el cual la empresa puede cobrar por los servicios prestados al cliente.7 Prepara Cuentas a Cobradores Cuentas asignadas Pagos liberados Aplicar Pagos Diagrama DFD de Nivel 1 Analizaremos ahora el caso de ser un usuario capturista o supervisor.Usuarios Datos personales Capturista Datos personales Supervisor Datos personales Cliente Factura. Usuario válido Cliente / supervisor / Capturista Verifica Privilegios Datos de captura Captura general de datos Usuario válido Supervisor / Capturista P Info. & Serv. reportes Consultas ro d . La figura 3. estas asignaciones pueden ser impresas en el módulo de 43 . Cuentas por Cobrar y Usuarios. Prod. así como también se tiene un proceso de captura y modificación. El procedimiento de preparar cuentas a cobradores consiste en hacer la selección de los cobradores que se les asignarán determinadas cuentas dependiendo de la solicitud de cliente y por zona geográfica. Facturas. ya que es necesario tener esta información antes de que sea utilizado el sistema.Crédito. el diagrama de flujo de datos de nivel 2 detalla este módulo Datos de captura Aplica Clientes Datos Cliente Figura 3.8 se detalla la manera en que es procesada la información para ser almacenada a la base de datos.7 señala con detenimiento lo antes mencionado. cobradores.9 indica dicho flujo. productos y servicios. los cálculos consisten en multiplicar la cantidad de servicios adquiridos por el monto asignado a dicho servicio de determinado periodo. La figura 3. El módulo de captura general de datos. permite al usuario capturista o administrador a introducir y modificar los diferentes datos de clientes.8 Aplica Cobradores Datos Cobrador Aplica Productos y servicios Info. La generación de cuentas por pagar verifica primero los clientes activos a los cuales se les calculará los montos a pagar por el servicio dado. Diagrama DFD de Nivel 2 – Captura General de Datos Tal como lo muestra la figura 3. El módulo de consultas consiste en un conjunto de módulos encargados de generar los diferentes tipos de reportes para los cuales se toman como base la información recabada de la Base de Datos y la aplicación de cálculos y filtros a cada uno de ellos. en cada uno de sus módulos interviene un proceso de validación de datos para que la información sea la adecuada. después hecho el cálculo se cambia el estado de la cuenta por cobrar a ya pagada para ser tomada en cuenta para la facturación. x Cob Diagrama DFD de Nivel 2 – Generación de Cuentas por Cobrar Datos de Cuentas x Pagar Generadas Cobradores Selección de cobradores Cuentas x Cobrar Figura 3.9 Datos del cliente Calcula montos Cuentas x Cobrar Datos de la Cta.consulta e impresión de reportes. después se verifica si al cliente se le ha asignado alguna nota de crédito para ser tomada en cuenta en los cálculos de aplicación. En la figura 3. ya que dependiendo del pago realizado por el cliente y la nota de crédito se puede tener un monto a favor del cliente o una deuda.10 se muestra el seguimiento de este proceso Datos de usuario válido Clientes Verifica clientes activos Productos y servicios Datos de las Cuentas Clientes activos Monto del servicio Figura 3. en caso de que el monto no llegue a 44 .10 Datos cobrador Datos cobrador seleccionado Datos generales de Cuentas Asignación Cobrador Cuenta Datos de las Cuentas asignadas Diagrama DFD de Nivel 2 – Preparar Cuentas a Cobradores En el proceso de aplicación de pagos se selecciona primero a los clientes que han pagado sus cuentas por pagar. 12 Diagrama DFD de Nivel 2 – Generación de Facturas 45 .12 muestra dicho flujo de información. En la figura 3. Notas de crédito Clientes Datos de Cuentas x Pagar Generadas Datos cliente Selección de Clientes con cuenta pagada Monto de la nota Datos del cliente Datos de la nota Calcular monto total de la cuenta por cobrar Datos de la Cuenta Pagos Liberados Datos de la Cuenta liberada Cuentas x cobrar Figura 3. En la figura 3. su estado seguirá siendo como no pagada pero con diferente monto.11 Asignación de notas de crédito Datos de Cuentas pagadas Selección de Cuentas pagadas Diagrama DFD de Nivel 2 – Aplicación de pagos El proceso de generación de facturas consiste en seleccionar aquellas cuentas por cobrar ya pagadas. Al finalizar este proceso se seleccionan las cuentas por cobrar ya pagadas para ser enviadas al proceso de generación de facturas.11 se ilustra el seguimiento de los datos de este proceso.ser el suficiente para tomar la cuenta por cobrar como liberada. tomar los datos de los clientes que liquidaron dichos pagos y guardar esa información para el momento de imprimir las facturas. Pagos liberados Cuentas x Cobrar Clientes Datos de la cuenta Selección de Cuentas liberadas Datos de clientes a facturar Datos de facturas generadas Datos de cuentas seleccionadas Asignar datos de cliente cuenta a factura Facturas Datos de la factura Figura 3. 1 Entidad – relación Figura 3. Gracias a este 46 .13 Diagrama entidad .Relación En este diseño del diagrama Entidad .Relación se colocaron las entidades como elementos independientes dentro del problema.3. sus relaciones expresadas como líneas continuas y punteadas indican de qué manera interactúan dichas entidades.4 Diseño de la base de datos 3.4. esto es por ejemplo. La relación que está en la forma normal más elevada posible es que mejor se adapta a nuestras necesidades debido a que optimiza las condiciones que son de importancia: La cantidad de espacio requerido para almacenar los datos es la menor posible y la facilidad para actualizar la relación es la mayor posible Para este sistema de facturación se han implementado dichos niveles de normalización como a continuación se muestra: Primera Forma Normal 1) Eliminar los grupos repetitivos de las tablas individuales Este punto se dio cuando se intenta identificar a cada una de las entidades que intervienen en el problema tal como se vio en el esquema de entidad relación. formas de relación y demás elementos en grupos. que cuando se almacene un dato de una factura. objetos. 47 . en el esquema de entidad relación. puede repetirse en una sola entidad nombre de cliente y factura ya que el cliente va a estar facturando cada mes. se aplica una categoría. aunque el mismo cliente halla comprado los mismos productos en la misma cantidad en la misma fecha. si se definen otras reglas. deberá de existir un dato que las haga diferentes. Esto es visible en el diseño físico de la base de datos el cual nos muestra en letras tipo negrita las llaves primarias de cada tabla. La forma de clasificar las relaciones de las bases de datos relacionales es a través de los tipos de dependencias que podemos determinar dentro de la relación.2 Normalización Normalización es un proceso que clasifica relaciones.4. Si se identifican ciertas reglas. diremos que la relación está en una forma normal más elevada. como por ejemplo. Así del mismo modo con todas las tablas. se aplicará otra categoría. tal como se observa en la figura 3. ya que a partir de esto se podrá ya implementar los datos en la base de datos como tablas del sistema. ya que.9. por tanto es separada en dos entidades cliente y factura. 3) Identificar cada grupo de datos relacionados con una clave primaria Aquí se identifica a cada tabla con un elemento de ella como el que marcará la unicidad de cada elemento almacenado en ella. 3. Cuando las reglas de clasificación sean más y más restrictivas.diagrama se puede comprender mejor la manera en que será almacenada la información. 2) Crear una tabla separada por cada grupo de datos relacionados Esto es similarmente visto como el punto anterior utilizando cada entidad como tabla. en base a las características que cada uno posee. La figura 3. la repetición sería el cliente que es por cada factura que realice. en este caso estamos hablando del folio de la factura.13 es la representación de dicho diagrama Entidad – Relación. Esto con todas las entidades vistas en dicho esquema entidad relación. En este caso se aplicaron las siguientes llaves foráneas: Tablas: Clientes. Contratos Llave Foránea: Contratos hace referencia a la tabla cobradores a través de la llave: CobNum Tablas: DetContrato. Facturas Llave Foránea: Contratos hace referencia a las tablas DetContrato a través de la llave: ContratoNum DetContrato a través de la llave: FolioFactura Tablas: NotaCredito. es decir. Para esto hemos concluido el primer punto como se explico anteriormente. pero para relacionar la información entre las tablas es necesaria la presencia de otra llave que es conocida como foránea que sirve para hacer referencia de datos de una tabla hacia otra. liga la información de tal manera que puedan unirse dos o mas tablas para obtener información conjunta entre todas las tablas que se relacionen.Segunda Forma Normal Para aplicar la segunda forma normal es necesario que: • • La relación de los datos esté en la primera forma normal Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros y por último relacionar dichas tablas mediante una clave externa. Contratos. Contratos Llave Foránea: Contratos hace referencia a la tabla productos a través de la llave: ProductNum Tablas: Cobradores. Contratos Llave Foránea: Contratos hace referencia a la tabla clientes a través de la llave: ClienteNum Tablas: Productos. para aplicar el segundo punto nos basamos en el modelo entidad relación y se generaron las tablas junto con su llave primaria respectiva. CuentasXCobrar Llave Foránea: CuentasXCobrar hace referencia a la tabla NotaCredito a través de la llave: NumNota 48 . Contratos Llave Foránea: Contratos hace referencia a la tabla NotaCredito a través de la llave: NumNota Tablas: NotaCredito. pero al llegar a este punto los datos antes mencionados no dependen del número de contrato si no de una clave de cliente.4. es decir. Código Producto. RFC) CONTRATOS (No. Teléfono. Clave Radio. 3. Nombre. DetFactura Llave Foránea: DetFactura hace referencia a las tablas: Facturas a través de la llave: FolioFactura CuentasXCobrar a través de la llave: CuentaNum Productos a través de la llave: ProductNum Con el uso de las llaves foráneas y con información almacenada podemos por ejemplo saber el número de contrato de un cliente y que mercancía adquirió. Observaciones. Monto) 49 . Dirección. Usuario Radio.. llaves ajenas y campos de dichas tablas CLIENTES (Cliente Num. Tercera Forma Normal Este nivel trata de traspasar a otra tabla aquellos campos que no dependen del campo clave. Número de Cliente. Productos. si el cliente deseaba tener 10 productos. Dígito. Teléfono) PRODUCTOS (Código Producto.P. Precio) FACTURAS (Folio. como un diseño que permita identificar las entidades como tablas y sus atributos como llaves primarias. Fecha Inicio. Número Cobrador. Descripción.3 Diseño lógico de la base de datos El diseño lógico cosiste en la transformación del esquema conceptual previamente hecho y mostrar las entidades y relaciones vistas anteriormente. dirección y RFC. En la aplicación al sistema de facturación se separó la tabla de contratos de la de clientes. Nombre. Población. así como también los productos y notas de crédito que intervinieron en una factura entre otras muchas combinaciones para recuperar información.Tablas: Facturas. Domicilio. diez veces se almacenaba sus datos personales como nombre. ya que anteriormente se repetía la información de cada cliente las veces que tuviese un contrato. Motivo Cancelación. Nota Número. Status. Saldo. Status) COBRADORES (Número Cobrador. Contrato. CuentasXCobrar. C. este es un punto de refinamiento el cual pretende eliminar la repetición innecesaria d e información. Importe Cancelación) NOTAS DE CRÉDITO (Nota Número. Número Serie. Contrato. Cantidad Producto.CUENTAS POR COBRAR (Cuenta Número. Código Producto. Contraseña) TABLA CLIENTES CONTRATOS CAMPO ClienteNum Nombre Domicilio CP Población Teléfono RFC TIPO Número Texto Texto Número Texto Texto Texto TAMAÑO LLAVE REFERENCIA 5 Principal 100 100 5 50 25 15 ConmtratoNum ClienteNum CobNum ProductNum NumNota FechaIni Saldo Observaciones Digito SerieNum ClaveRadio UsuarioRadio Status Número Número Número Número Número Fecha Número Texto Número Texto Número Texto Texto 5 5 3 5 5 9. Cuenta Num. Fecha Aplicación de Cuenta. Folio Factura. Contrato. Nombre. Fecha) DETALLE FACTURA (Folio Factura. Fecha) DETALLE CONTRATO – CUENTA X COBRAR (No. Contrato Num. Cuenta Num.2 1 Principal COBRADORES CobNum PRODUCTOS 50 Principal . Monto Factura) USUARIOS (Clave. Fecha Pago) DETALLE CONTRATO – FACTURA (No.2 3000 1 15 9 100 1 Número Texto Texto Texto 3 100 100 25 Principal Nombre Dirección Teléfono ProductNum Descripción Precio MostrarMasivo Número Texto Número Número 5 3000 9. DET CONTRATO FolioFactura ContratoNum FechaFact Número 9 Número 5 Fecha Principal FACTURAS Principal CONTRATOS Principal DET CTASXCOB CuentaNum ContratoNum FechaElab Número 5 Número 5 Fecha Principal CTAS X COB. Principal PRODUCTOS Principal 4 9. NumNota TIPO Número Texto Texto Número TAMAÑO LLAVE REFERENCIA 9 Principal 1 100 9 Número 5 Número 9. DETFACTURA FolioFactura Número CuentaNum Número ProductNum Número FechaAplicacion Fecha CantidadProduct Número MontoFactura Número USUARIOS Clave Nombre Contraseña 5 5 9.14 Diseño lógico de la Base de Datos 51 .TABLA FACTURAS CAMPO FolioFactura Status MotivoCan ImporteCan NOTAS CRED.2 Principal Monto CuentaNum NumNota FechaPago Monto MontoEnvio ChequeNum Banco MontoEfectivo MontoCheque MontoBanco Status MotivoCan FechaCancel IVA Número Número Fecha Número Número Número Texto Número Número Número Texto Texto Fecha Número Principal Foránea NOTAS CRED.2 Número 3 Texto 50 Texto 10 Principal Tabla 3.2 6 5 100 9 9 9 1 100 2 9 5 5 Principal FACTURAS Principal CTAS X COB. Principal CONTRATOS Principal CTAS X COB. PRODUCTOS CREATE TABLE PRODUCTOS ( PRODUCTNUM NUMBER(5) DESCRIPCION VARCHAR2(3000 BYTE). DEFAULT 'S/N' NOT NULL. FECHAINI DATE SALDO NUMBER(9) OBSERVACIONES VARCHAR2(3000 BYTE). NOT NULL COBRADORES CREATE TABLE ( COBNUM NOMBRE DIRECCION TELEFONO ) COBRADORES NUMBER(3) VARCHAR2(100 BYTE) VARCHAR2(100 BYTE). NOT NULL .3. NOT NULL. CLIENTES CREATE TABLE CLIENTES ( CLIENTENUM NUMBER(5) NOMBRE VARCHAR2(100 BYTE) DOMICILIO VARCHAR2(100 BYTE) CP NUMBER(5). NOT NULL.2) ) 52 NOT NULL. CONTRATOS CREATE TABLE CONTRATOS ( CONTRATONUM NUMBER(5) CLIENTENUM NUMBER(5) COBNUM NUMBER(3) PRODUCTNUM NUMBER(5) NUMNOTA NUMBER(5).4. NULL. VARCHAR2(25 BYTE) NOT NULL. NULL. NULL. DIGITO NUMBER(1). NOT NULL. TELEFONO VARCHAR2(25 BYTE). NOT NULL. STATUS VARCHAR2(1 BYTE) ) NOT NOT NOT NOT NULL. SERIENUM VARCHAR2(15 BYTE) CLAVERADIO NUMBER(9) USUARIORADIO VARCHAR2(100 BYTE). DEFAULT 0 NOT NULL. PRECIO NUMBER(9. RFC VARCHAR2(15 BYTE) ) NOT NULL.4 Diseño físico de la base de datos El diseño físico esta construido sobre las bases del modelo lógico y describe como los datos son almacenados. POBLACION VARCHAR2(50 BYTE). Este es el nivel mas bajo de abstracción. DEFAULT 0 NOT NULL. FECHAPAGO DATE. NULL. NOT NULL. MONTOCHEQUE NUMBER(9).FACTURAS CREATE TABLE FACTURAS ( FOLIOFACTURA NUMBER(9) STATUS VARCHAR2(1 BYTE) MOTIVOCAN VARCHAR2(100 BYTE). DETALLE CONTRATO_FACTURA CREATE TABLE DETCONTRATO ( FOLIOFACTURA NUMBER(9) CONTRATONUM NUMBER(5) FECHAFACT DATE ) NOT NULL. NOT NULL DETALLE FACTURA CREATE TABLE DETFACTURA ( FOLIOFACTURA NUMBER(9) CUENTANUM NUMBER(5) PRODUCTNUM NUMBER(5) FECHAAPLICACION DATE CANTIDADPRODUCTO NUMBER(4). MONTOEFECTIVO NUMBER(9). NULL. NOT NULL DETALLE CONTRATO_CUENTAXCOBRAR CREATE TABLE DETCUENTAXCOBRAR ( CUENTANUM NUMBER(5) CONTRATONUM NUMBER(5) FECHAELAB DATE ) NOT NULL. BANCO VARCHAR2(100 BYTE). 53 . IMPORTECAN NUMBER(9) ) NOT NULL. NOT NULL CUENTAS POR COBRAR CREATE TABLE CUENTASXCOBRAR ( CUENTANUM NUMBER(5) NUMNOTA NUMBER(5). NOTAS DE CRÉDITO CREATE TABLE NOTACREDITO ( NUMNOTA NUMBER(5) MONTO NUMBER(9. CHEQUENUM NUMBER(5). NULL.2) ) NOT NULL. NOT NULL. MONTOFACTURA NUMBER(9) ) NOT NOT NOT NOT NULL. NOT NULL. NOT NULL. MONTO NUMBER(9) MONTOENVIO NUMBER(6). NOT NULL. STATUS VARCHAR2(1 BYTE) MOTIVOCAN VARCHAR2(100 BYTE) ) NOT NULL. MONTOBANCO NUMBER(9). 4.16 CONTRATOS 54 Esquema de la tabla Cobradores .5 Tablas del sistema CLIENTES Figura 3.3.15 Esquema de la tabla Clientes COBRADORES Figura 3. 18 Esquema de la tabla Productos PRODUCTOS FACTURAS 55 .17 Esquema de la tabla Contratos Figura 3.Figura 3. usando caracteres (. (A)ctivo (S)uspendido .19 Esquema de la tabla Facturas 3.5 Diccionario de datos CLIENTES CLIENTENUM NOMBRE DOMICILIO CP POBLACION TELEFONO RFC Número que identificará como cliente único en el sistema Nombre de la persona Física o Moral a la que se le facturará Dirección fiscal que se va a facturar Código Postal correspondiente a la dirección Nombre de la entidad federativa Teléfono del cliente.). Saldo deudor Texto que permite detallar el estado del contrato Número que permite identificar clave del servicio del radio localizador Número de Serie que tiene el aparato Radio Localizador Clave del radio la cual permite tener contacto con el usuario Nombre del usuario del Radio Localizador Estado del Servicio.Número de Registro Federal de Contribuyentes CONTRATOS CONTRATONUM CLIENTENUM COBNUM PRODUCTNUM NUMNOTA FECHAINI SALDO OBSERVACIONES DIGITO SERIENUM CLAVERADIO USUARIORADIO STATUS 56 Número de contrato único que se le asigna al cliente Número de cliente asignado Número de cobrador asignado Número de producto (radio) que se prestará el servicio Número de nota de crédito. en caso de asignación Fecha de Inicio del contrato Saldo a la fecha del contrato. Saldo a Favor.Figura 3. (P)agada. (C)ancelada En caso de cancelación explicar su motivo Monto en Pesos Mexicanos por motivo de Cancelación NOTAS DE CRÉDITO NUMNOTA MONTO Número consecutivo de nota de crédito generada Monto en Pesos Mexicanos de la Nota de Crédito CUENTAS POR COBRAR CUENTANUM NUMNOTA FECHAPAGO MONTO MONTOENVIO CHEQUENUM BANCO MONTOEFECTIVO MONTOCHEQUE MONTOBANCO STATUS MOTIVOCAN Número consecutivo de Cuenta por Cobrar Número de nota de crédito asociada a la cuenta por cobrar Fecha de Pago de la Nota de Crédito Cantidad en Pesos Mexicanos cobrada por concepto de cuenta x cobrar Cantidad en Pesos Mexicanos por concepto de envío Número de folio de cheque dado como pago Nombre de la institución bancaria donde proviene el cheque Cantidad en Pesos Mexicanos por concepto de pago en efectivo Cantidad en Pesos Mexicanos por concepto de pago con cheque Cantidad en Pesos Mexicanos por concepto de pago con depósito Estado de la cuenta. (C)ancelada En caso de cancelación explicar su motivo DETALLE CONTRATO_FACTURA FOLIOFACTURA CONTRATONUM FECHAFACT Número de Folio físico de la factura fiscal asignado al contrato Número de contrato asignado a la factura Fecha de aplicación de la factura DETALLE CONTRATO_CUENTAXCOBRAR CUENTANUM CONTRATONUM FECHAELAB Número consecutivo de Cuenta por Cobrar asignado a una factura Número de contrato asignado a la cuenta por cobrar Fecha de elaboración de la cuenta x cobrar DETALLE FACTURA FOLIOFACTURA CUENTANUM Número de Folio físico de la factura fiscal Número consecutivo de Cuenta por Cobrar 57 .COBRADORES COBNUM NOMBRE DIRECCION TELEFONO Clave única que identifica al cobrador Nombre completo del cobrador Domicilio físico del cobrador Teléfono donde se puede localizar al cobrador PRODUCTOS PRODUCTNUM DESCRIPCION PRECIO Clave única con la que se identifica al producto o servicio Texto que detalla la descripción del producto o servicio Indica el precio del producto o servicio en pesos Mexicanos FACTURAS FOLIOFACTURA STATUS MOTIVOCAN IMPORTECAN Número de Folio físico de la factura fiscal Estado de la factura. (N)o pagada. (N)o pagada. (P)agada. PRODUCTNUM FECHAAPLICACION CANTIDADPRODUCTO MONTOFACTURA Clave única con la que se identifica al producto o servicio Fecha de aplicación de la factura Cantidad en unidades enteras del producto adquirido Monto en Pesos Mexicanos del monto total de la factura USUARIOS CLAVE NOMBRE PASSWORD 58 Número único de identificación de usuario Nombre del usuario que accede al sistema Contraseña que usa el usuario para poder ingresar al sistema . cada uno fue agrupado por secciones: Catálogos y Cuentas por Cobrar en donde a cada uno se le asocia un sub menú de reportes.Capítulo 4 Desarrollo del sistema En este capítulo se muestra el desarrollo del sistema a nivel software donde es utilizada la herramienta de Oracle Developer para generar formas y reportes que permitirán al usuario acceder a la base de datos. Se inicia con el diseño de la estructura de menú que contendrá el acceso a cada módulo del sistema. Esta instrucción se lee: 59 . que son código PL/SQL – SQL que permiten la manipulación de todo el entorno gráfico.1 Menús La implementación de la herramienta de Forms para poder desarrollar un menú luce como lo muestra la figura 4.1. 4. A cada elemento del menú se le asigna la instrucción de llamado a los demás módulos.1. se modelaron varias estructuras pensando en la organización más frecuente que el usuario puede manejar.1 Diseño de la barra de menú El diseño del menú fue pensado en la frecuencia de uso que tendrá el usuario con cada uno de los módulos. Figura 4. estas instrucciones en Forms se le llaman Triggers. 4. El código para el llamado de otras formas a través del menú es: open_form('CatClientes').1 Herramientas de desarrollo En esta etapa se implementan las herramientas que nos permitirán desarrollar los elementos gráficos del sistema de facturación. finalizando la instrucción con punto y coma. contiene código modificable. Esto se hace a través de la instrucción connect del menú File.mmx por medio de una forma principal encargada de contenerlo junto con una barra de herramientas.open_form(''). su contenido no puede ser modificado. y las instrucciones para llamar a los módulos son las mismas que se ocuparon para los menús. nombres y características de los elementos de la base de datos con los que se va a trabajar.2 Conexión a la Base de Datos a través de Forms de Oracle 4.2.mmb – Archivo fuente de un menú. En este caso los tipos de archivos manejados para el menú son: menu. menu. . Figura 4. será llamado a través de su archivo menu. 60 . Los reportes no se manejan de manera directa por el menú. Esta instrucción se repite por cada módulo que se ejecutará. en esta ventana se especifica el nombre de usuario.3 muestra cómo se crea una forma con un bloque.1. los menús deben de ser compilados y generar su archivo ejecutable. Menú o módulo es necesario conectarse con la base de datos con el fin de que lo que se este manipulando concuerde con los tipos. contraseña y nombre de la base de datos a la que se desea conectar tal y como lo muestra la imagen 4. Al igual que otro componente de Forms. Una de las formas de generar las formas del sistema es a través del asistente de bloques. Para generar cualquier elemento de Forms. en la figura 4.mmx – Archivo ejecutable. El menú dentro del sistema final.2 Asistente para formas Una vez hecha la conexión a la base de datos se puede diseñar compilar y ejecutar los elementos que se generan en Forms. ya sea una Forma.Instrucción que manda a ejecutar una forma a través del nombre de la forma a abrir dado como parámetro entre paréntesis y apóstrofes. si no son llamados a través de otros módulos forma. La barra de herramientas contiene el acceso sólo a los módulos que se utilizan con más frecuencia. como lo muestra la figura 4.4 Seleccionando la tabla y campos a manejar en la forma Cuando se halla terminado de seleccionar los campos de una determinada tabla. como lo muestra la imagen 4. para luego seleccionar las columnas disponibles de las tablas.5. se procede a oprimir el botón next para elegir la tabla o vista. nos mostrará una ventana que se ha terminado de dar las configuraciones para generar un bloque de datos y se preguntará si se desea terminar el asistente o continuar con el asistente de Layout. Figura 4. 61 . ya sea de manera individual o todas.4.3 Asistente para generar formas de tipo bloque Después de seleccionar que los datos que deseamos mostrar los obtendremos de una tabla o vista.Figura 4. Figura 4. así como el tipo de canvas.5 Finalizando asistente de bloque de datos Si se elige continuar con el asistente de Layout. aparecerá la ventana que muestra la figura 4. se seleccionan los elementos del bloque de datos que se van a desplegar en el canvas.Figura 4. en donde se le indica en qué canvas se va a colocar los elementos del bloque de datos generados con el asistente anterior. nótese que sólo se podrán elegir los campos seleccionados de la tabla del bloque de datos generado.6 Seleccionando nombre y tipo de canvas del asistente de Layout Después de seleccionar el nombre y tipo de canvas.6. 62 . Aunque después se podrán manipular más propiedades de los Items. y se pueden desplegar 2 o más registros a la vez si se elige el modo tabular.9. En seguida se elige el modo de desplegar los datos de la tabla o vista seleccionada. como lo muestra la imagen 4. ya que se seleccionaron los elementos a desplegar se les puede cambiar el tipo de Item así como al grupo que pertenecerán dentro de la forma.Figura 4. Figura 4. se personalizan los nombres y tamaños que tendrán los elementos.8 Personalizando propiedades de los Items. se puede decidir entre un registro a la vez si se elige Form. Después de esto.7 Seleccionando nombre y tipo de canvas del asistente de Layout En la ventana de la imagen 4.7. 63 . estos tres últimos si se eligió la opción de mostrar los datos de manera tabular. donde para llevar a cabo el llamado de los datos a la forma requiere de código PL/SQL.10 Propiedades de los elementos mostrados en la forma. el número de registros a mostrar. Cuando se ha seleccionado el modo de desplegar los datos.Figura 4.9 Seleccionando el modo de desplegar los datos. la distancia entre los campos y si se mostrará la barra de desplazamiento. 64 . entre otros elementos que a continuación se indicará.11. Figura 4.10. como lo muestra la imagen 4. Todo esto genera ya una interfaz gráfica que hace posible la interacción del usuario con la base de datos Oracle como lo muestra la imagen 4. se da el nombre del recuadro que contendrá los elementos a desplegar. 4.3 Pasos para construir una forma Para algunos items que forman una llave foránea. insertar registros en una bitácora. por ejemplo. es necesario desplegar datos relacionados (descripción). Las columnas que forman la llave primaria de la tabla también deben de ser incluidos en el bloque. • Ligar a este bloque la property class BLOCK. 2) Crear un bloque basado en “TABLA”. pero no deben de ser visibles.1. no se deben de utilizar sentencias SELECT y DML explícitas para manipular los datos que se están capturando o desplegando en la forma. En estos casos se debe de crear un nuevo bloque por cada llave foránea. A estos bloques los denominamos bloques de descripción. • Cambiar el nombre del bloque a TABLA_PK. Sólo se deben utilizar sentencias SQL explícitas cuando se manipulen datos de tablas que no se estén manejando directamente en la forma. se requiere que a la derecha del item clientenum (llave foránea hacia Clientes) se despliegue el nombre del cliente. se siguieron los siguientes pasos: 1) Crear un bloque que contenga sólo las llaves primarias de TABLA. si tenemos un bloque de Ordenes. La figura 4.11 Base de Datos y Formas Al crear una forma. Para construir una forma que manipule los datos de una TABLA.Figura 4.12 muestra este punto. • Ligar la property class Frame al frame del bloque. • Ligar al último item del bloque la property class ITEM_PK. • Cambiar la propiedad Database Data Block a ‘No’. • Esta vez se incluyeron todas las columnas necesarias. Por ejemplo. 65 . •Eliminar el frame asociado al bloque y acomodar los items dentro del frame del bloque PK. hay que ligarle la property class BLOCK_MAIN. 66 . Propiedad Database Data Block = no Property Class BLOCK Ligar la Property Class FRAME al frame del bloque Property Class ITEM_PK Figura 4. •En los items que forman la llave primaria de TABLA. •Si se van a desplegar descripciones relacionadas con llaves foráneas del bloque.12 Construcción de un bloque de llaves primarias Property Class BLOCK_MAIN ó BLOCK Eliminar el frame del bloque y acomodar los items dentro del frame del bloque PK Figura 4.13 muestra este punto.ITEM_PKx No visibles Construcción del bloque principal (bloque de trabajo) 3) Por cada bloque de descripción que se necesite. de lo contrario ligar la property class BLOCK La figura 4. se necesita: •Crear un bloque basado en la tabla a la que se hace referencia en una llave foránea. se debe de copiar el valor del item correspondiente que está en el bloque TABLA_PK.13 Propiedad Copy Value from Item = TABLA_PK. ‘<LISTA DE ITEMS DEL BLOQUE PK>’). el bloque que tiene la llave foránea (el bloque TABLA) y el detalle. siendo el bloque maestro.14 Unión entre bloques 5) En el trigger WHEN-NEW-ITEM-INSTANCE que se encuentra a nivel forma.validaItemsNotNull(‘<NOMBRE_CANVAS>’. •Eliminar el frame asociado al bloque y acomode los items dentro del frame del bloque PK.14 explica esta unión entre bloques. •Los items que forman la llave primaria no se deben desplegar. se escribe la lista de items que forman parte de una llave foránea: :system. para que sea más representativo BLOQUE PK BLOQUE DESCRIPCIÓN Property Class BLOCK_QUERY No visible Property Class ITEM_DESCRIPCION Crear relación Eliminar el frame del bloque y acomodar los items dentro del frame del bloque PK Figura 4. se colocan los valores apropiados en las instrucciones: sys_constraints. go_block(‘<BLOQUE_PRINCIPAL>’).15 muestra el código ya implementado. •Ligar a este boque el property class BLOCK_QUERY.•Incluir las columnas que forman la llave primaria y la columna que desea poner como descripción.trigger_item IN ('<LISTA DE ITEMS>') 7) En la unidad de programa queryFkRecord. vItem. •Crear una relación maestro-detalle. 4) Modificar el nombre del canvas. La figura 4. el que tiene la llave primaria (el bloque que estamos creando). •Ligar la property class ITEM_DESCRIPCION a los items que forman la descripción La figura 4. 6) En el trigger WHEN-VALIDATE-ITEM a nivel de bloque principal . se ponen los valores apropiados en la instrucción: 67 . 15 Código del trigger forma WHEN-NEW-ITEM-INSTANCE En este código se muestra cómo se han colocado los nombres de los bloques y Items de la forma que se está realizando.block_status <> lGNConst. --. ‘<LLAVE FORANEA>’) •donde <BLOQUE> es un bloque de descripción y <LLAVE FORANEA> es una lista de items que forman la llave foránea hacia el bloque de descripción. END. enabled) = 'FALSE') THEN next_item.query := 'N'.validaItemsNotNull('PRINCIPAL'. --. Se toman los botones de la librería de objetos.LIMPIAR EL BLOQUE SÓLO SI TIENE DATOS -IF :system. BEGIN IF (:parameter. --. Si se requiere un botón que no se encuentra en la librería. '<BLOQUE>'. 8) Crear un bloque de control para botones.LIMPIAR EL BLOQUE DE DESCRIPCIONES -END IF. clear_block(no_validate).LIMPIAR EL BLOQUE DE DESCRIPCIONES -END IF. --.sys_constraints. Figura 4.SI El ITEM NO ESTA HABILITADO. ELSE go_block ('CLIENTES'). vItem. vItem VARCHAR2(80). go_item(vItemActual). •Debe haber tantas instrucciones de este tipo como bloques de descripción haya en la forma. END IF. se crea un botón y se liga la property class Button Para el ejemplo del catálogo de clientes el código del trigger WHEN-NEW-ITEMINSTANCE queda de la siguiente manera: DECLARE vItemActual VARCHAR2(60).consultaFK(pTriggerItem.CLIENTENUM')) THEN go_block ('CLIENTES'). execute_query.cEdoNew THEN clear_block(no_validate). La funcionalidad de este código es de que si se 68 .cursor_item. AVANZAR AL ITEM SIGUIENTE -IF (get_item_property(vItemActual.VALIDA SI LOS CAMPOS DEL BLOQUE PK SON NO NULOS Y ENTONCES CONSULTA EL REGISTRO -IF (lGNValid.query = 'Y') THEN :parameter. 'CLIENTES_PK. --. vItemActual := :system. END IF. 2. y haga clic en el icono Create.16 Diseño de la pantalla 4. configure sus propiedades: • Name. seleccione el nodo Reports. Nombre del objeto Report (del objeto. Figura 4. en donde se muestran los controles que servirán para mostrar la información de la base de datos. En un ambiente cliente-servidor no hay ninguna diferencia entre ejecutar un reporte con run_product o run_report_object. • Execution Mode. 3. Nombre del reporte (no se debe de especificar la ruta). la cual hace el llamado a la base de datos y regresa con ellos a la forma. Por lo tanto.4 Llamando reportes desde las formas Para mandar a llamar a un reporte.16. Configurarlo a Screen 69 . En el nuevo objeto. • Filename. En el Navegador. mostrándolos en el bloque donde está situado: go_block ('CLIENTES'). el cual representa un módulo reporte.1. Para utilizar run_report_object. no del módulo). pero en un ambiente WEB. En Forms se puede crear un objeto Report. el reporte que se llama no se muestra en el cliente sino en el servidor. y para ejecutarlo se utiliza el built-in run_report_object en lugar de run_product. Seleccione Use Existing Report File y escriba el nombre del reporte. pero cuando la aplicación se sube al WEB.habilita el parámetro Query limpiará los items que contengan información y mostrará los nuevos datos a través de la instrucción execute_query. • Report Destination Type. el segundo no presenta ningún problema. en esta aplicación utilizaremos run_report_object. primero se tiene que crear un objeto Report: 1. Se desplegará la caja de diálogo Nombre_modulo: New Report. Se debe de configurar a Runtime. El diseño de la ventana es hecho sobre un área de trabajo llamada canvas. la cual puede contener uno o varios bloques de datos. puede ser utilizado el built-in run_product el cual funciona bien cuando se trabaja en un ambiente cliente-servidor. El diseño de la ventana del catálogo de clientes luce como lo muestra la imagen 4. EXE. • Forms Runtime. Este componente permite diseñar y guardar las definiciones de módulos forma.EXE. El archivo ejecutable es IFRUN60.2 Ambiente de las herramientas de desarrollo Forms incluye tres componentes que usted puede acceder como diseñador de aplicaciones: • Forms Builder. Es un programa que corre una aplicación ejecutable de Forms. La sintaxis de estos built-ins se muestra arriba.Figura 4. lista_param { VARCHAR2 | paramlist } ] ) En el trigger en donde va a llamar al reporte. el nombre o el apuntador de un objeto report. Especifica el apuntador a un objeto Report. Especifica una lista de parámetros.EXE. El apuntador se obtiene mediante find_report_object. A run_report_object se le puede pasar como parámetro. El archivo ejecutable es IFBLD60. • Forms Compiler. menú y librería. No hay ninguna restricción con respecto a esta lista de parámetros. cree la lista de parámetros que le va a pasar al reporte. Lee la definición de un módulo y crea un archivo ejecutable. 4. También permite invocar a los otros dos componentes.17 Llamado de reportes a través de forms El código para el llamado de reportes es el siguiente: run_report_object( {nombre_reporte VARCHAR | id_reporte report_object } [. El archivo ejecutable es IFCMP60. 70 . donde: nombre_reporte id_reporte lista_param Especifica el nombre de un objeto Report. Text items 71 . éstos son: Triggers de forma. aquí se le da la apariencia y posición a los Items. Canvas. ya sea que sea un elemento de la ventana de Navegador de Objetos (1) ó del área de trabajo de Canvas (2). 3) Paleta de propiedades: Aquí se muestran y modifican las propiedades de todos los elementos que pueden existir en forms. Objetos boilerplate (texto. 2) Área de trabajo de Canvas: Ésta es una ventana en la cual se manipulan los objetos que se mostrarán al usuario a través de un canvas. Una aplicación típica en Forms utiliza una variedad de objetos y tipos de items. Alertas.4. como lo muestra la figura : 1. Atributos visuales y Ventanas. dibujos) 2.2. Reportes. imágenes. Record groups.1 Forms Builder Este es un entorno gráfico en donde se trabajará la mayor parte para generar las formas. Listas de valores (LOV’s). se compone de los siguientes elementos: 1) Navegador de Objetos: Esta ventana nos muestra de manera jerárquica los elementos que componen una forma.18 3 Componentes de Forms Builder Dentro de forms builder se puede manejar diferentes tipos de Items dependiendo de la finalidad que se le de. Parámetros. Unidades de programa. Librerías Adjuntas. 1 2 Figura 4. Propiedades de clases. Bloques de datos. Grupos de objetos. 17 muestra los componentes de Runtime. Es una ventana contenedora. 72 .19 Elementos de datos. Éste se puede reemplazar o personalizar. 4. todos bajo el control de un usuario. Display items List items Botones Radio buttons (que forman radio groups) 2 1 3 6 4 5 Figura 4. 5. La línea de estatus: Despliega una variedad de indicadores que reflejan el estado actual de la forma La Figura 4. • Menú Default.3. • Consola. En la consola se proporciona información útil al usuario en tiempo de ejecución. 4. 6.2. una aplicación puede desplegar múltiples formas. Nota: El concepto de MDI sólo es aplicable a Microsoft Windows. Tiene dos partes. en la cual.2 Forms Runtime Una sesión Runtime consiste de una o más formas y menús ligados. La línea de mensajes: Despliega mensajes específicos de Forms y de la aplicación. Es el menú que Forms liga automáticamente a todas las aplicaciones. Los componentes principales de una sesión Runtime son: • Multiple-Document Interface (MDI) Parent Window. En Developer/2000. Forms define una amplia gama de eventos que pueden disparar un trigger. Hay tres componentes principales a considerar cuando se diseña un trigger: • Tipo de Trigger. donde el trigger es definido. Forms le permite construir elementos poderosos en una aplicación.Menú Default MDI Parent Window Consola: Línea de Estatus y de Mensajes Figura 4. Define el evento especifico que causará que se dispare el trigger. eventos internos de la forma. • Alcance del trigger. 73 . Código en PL/SQL que define las acciones del trigger. interacción del usuario con los items de la forma. Los triggers le permiten agregar o modificar funcionalidad a la aplicación mediante código PL/SQL. Estos incluyen: eventos relacionados con consultas. Esto determina el alcance sobre el cual los eventos serán detectados por el trigger. El nivel en la forma. los triggers son escritos en PL/SQL.20 Componentes de Runtime 4.2. validación.3 Triggers Un trigger es una unidad de programa que es ejecutada (disparada) debido a un evento. errores y mensajes. • Código del Trigger. sin escribir una sola línea de código. Todos los triggers que usted defina son asociados con un evento específico. navegación. ELIMINA AVISOS DE OPERACIÓN -:system.aviso := 'Datos del cliente que serán utilizados en la factura'. property_true). property_true).f9 := 'F9-Buscar'. set_item_property('GENERICO. :generico. visible. aquí se escribe el código PL/SQL de inicialización de los Items. visible.f2 := 'F2-Grabar'. set_item_property('GENERICO. He aquí el código: /*****************************************************************************/ /* Modulo: CatClientes. SI DESEA QUE UNA -. PONGA COMO COMENTARIO LA INSTRUCCION CORRESPONDIENTE -:generico. visible.F2'. :generico.F1'.fmb /* Autor: Miguel Angel Ochoa Rodríguez /* Sistema Factura /* Fecha: 15-Feb-2004 /* Descripcion: Catálogo que permite manejar la informacion de los clientes que /* servirá después para la facturación /*****************************************************************************/ DECLARE BEGIN --. --.ESC'.esc := 'ESC-Salir'.TECLA NO SE MUESTRE.PL/ PL/ SQL SQL Queries Validación Movimiento del Cursor/Mouse Cursor/Mouse Interacción con el Usuario Evento interno Errores y Mensajes Otros Evento Dispara PL/ PL/ SQL SQL PL/ PL/ SQL SQL Tipos de Triggers Figura 4. :generico. --.message_level := 5.CARGA EL LOGOTIPO DE LA EMPRESA -- 74 .RECUPERA EL AVISO DEL DIA -:generico. set_item_property('GENERICO. que son similares a los que se utilizaron para los otros módulos El Trigger WHEN-NEW-FORM-INSTANCE es el primero que se dispara cuando la forma es ejecutada. property_true).f1 := 'F1-Ayuda'.21 Ejecución de un Trigger A continuación se muestran los Triggers de forma que se utilizaron para el catálogo de clientes.ESTABLECE LA BARRA DE ESPECIFICACION DE TECLAS.f3 := 'F3-Borrar'. --. :generico. 1). --. END IF. 'GENERICO.poblacion').cEdoChanged THEN RAISE form_trigger_failure. 'GIF'. go_item('clientes.1).gif'. manda a llamar los datos de la tabla asociados del bloque. IF :clientes.clientenum IS NULL THEN mensaje('Falta de captuar el número de cliente'.cEdoQuery THEN RAISE form_trigger_failure.DML A LOS BLOQUES DE LA VENTANA -post.1). IF :clientes.LOGO'). END IF.clientenum').nombre IS NULL THEN mensaje('Falta de captuar el nombre de cliente'. IF :system. esto a través de la instrucción: go_item('listaclientes.INICIA LA TRANSACCIÓN -BEGIN --. END IF.domicilio IS NULL THEN mensaje('Falta de captuar el domicilio de cliente'. END IF.VALIDACION DE DATOS CAPTURADOS -IF :clientes_pk. El siguiente código muestra cómo se insertarán los datos a la tabla de clientes que son especificados en la forma. raise Form_Trigger_Failure. --.form_status <> lGNCOnst.read_image_file('elite. IF :clientes. execute_query.Codigo go_item('listaclientes. Este código está contenido en una unidad de programa llamada grabar y que a su vez es llamado por el Trigger WHEN-BUTTON-PRESSED del botón grabar. desplegará los datos seleccionados de la tabla clientes en el bloque de lista inferior de la forma. go_item('clientes.form_status <> lGNCOnst.clientenum').poblacion IS NULL THEN mensaje('Falta de captuar la población de cliente'. go_item (‘’). raise Form_Trigger_Failure. 75 . PROCEDURE grabar IS BEGIN IF :system. permite llevar el control hacia el bloque indicado como parámetro y la instrucción execute_query. raise Form_Trigger_Failure.nombre'). END. raise Form_Trigger_Failure.1). -.domicilio'). El código anterior habilita las teclas que estarán disponibles durante la ejecución de la forma. go_item('clientes. END IF. execute_query.clientenum'). go_item('clientes_pk. END IF. message_level := 5.cEdoNew THEN RAISE form_trigger_failure. END IF. --. clientenum vContratoNum. es llamado por el Trigger de WHENBUTTON-PRESSED del mismo nombre que contiene el siguiente código: PROCEDURE borrar(pBloque VARCHAR2) IS BEGIN IF :system. EXCEPTION WHEN NO_DATA_FOUND THEN :system.execRollback. clear_message. message('Los datos fueron borrados satisfactoriamente').--. IF :system.DML A LOS BLOQUES DE LA VENTANA -post. --. END. BEGIN SELECT INTO FROM WHERE contratonum.clienteNum := NULL. EXCEPTION WHEN OTHERS THEN lGNValid.clienteNum := NULL. END IF. 76 . END IF.INICIA LA TRANSACCIÓN -BEGIN go_block(pBloque). END. IF :system. RAISE form_trigger_failure. END IF. RAISE form_trigger_failure.SALVA LAS OPERACIONES DML -commit_form.cEdoQuery THEN RAISE form_trigger_failure. El código de la unidad de programa Borrar. Tiene varios contratos asignados').form_status = lGNCOnst.clienteNum%Type.contratoNum%Type.SALVA LAS OPERACIONES DML -commit_form. END. IF :system.cEdoQuery THEN RAISE form_trigger_failure. --. vClienteNum contratos clientenum = :clientes_pk.'No puede Borrar al cliente '||vClienteNum ||'. END IF.alert_message_text. set_alert_property('ALERT_STOP'.alert_message_text. clear_message.form_status <> lGNCOnst.VALIDACION DE DATOS CAPTURADOS -DECLARE vClienteNum contratos. message('Los datos se grabaron satisfactoriamente'). --. delete_record. WHEN TOO_MANY_ROWS THEN set_alert_property('ALERT_STOP'.form_status <> lGNCOnst. Tiene el contrato: '||vContratoNum||' asignado'). EXCEPTION WHEN OTHERS THEN lGNValid.execRollback.'No puede Borrar al cliente '||vClienteNum ||'.form_status <> lGNCOnst. END IF. RAISE form_trigger_failure. vcontratoNum contratos.cEdoQuery THEN RAISE form_trigger_failure.clientenum. IF SHOW_ALERT('ALERT_STOP') = alert_button1 THEN --:clientes_PK. IF SHOW_ALERT('ALERT_STOP') = alert_button1 THEN --:clientes_PK. RAISE form_trigger_failure. END. modificando el layout y agregando objetos.clientenum'). El Object Navigator se despliega cuando se inicia Reports y permanece disponible durante toda la sesión de diseño. se deben seguir algunos pasos básicos: 1. 2. inspeccionar y modificar módulos. permitiendo localizar. etc. Definir el Layout para especificar como aparecerán los datos en el reporte. 4. Guardar el reporte.4 Reports Builder Antes de construir un reporte. Se puede codificar los queries directamente dentro del reporte o incluir un query externo. Un reporte consiste de uno o más queries. También se deben apreciar las áreas donde se definen los datos y la presentación del reporte. END. se deben entender los conceptos básicos de navegación en la interfaz de Reports Builder.INICIALIZA LA VENTANA -go_item('listaclientes. 4. color. Ejecutar el Previewer para probar el reporte. Crear la definición de un reporte. Figura 4. En Reports se manejan diferentes ventanas para poder generar reportes como a continuación se describen: Object Navigator. 6. execute_query. código PL/SQL. Para construir un reporte usando Reports. Se muestra como una vista jerárquica de los módulos abiertos en la sesión actual.2. 3.22 Ventana Object Naviator de Reports Oracle 6i 77 .--. Definir el Data Model para especificar que datos son requeridos. Ampliar el reporte. 5. definir columnas adicionales. y ampliarlo como sea requerido. En esta ventana se define como se presentan los datos. agregar data links y filtros. Contiene muchos objetos.Data Model. el cual se puede crear por default. Esta ventana se utiliza para desplegar el layout del reporte.24 78 Ventana Layout Model de Reports Oracle 6i . Figura 4. Se hace doble clic en el nodo Data Model en el Object Navigator para abrir la ventana Data Model. En esta ventana se define que datos contiene el reporte. Figura 4. como fields.23 Ventana Data Model de Reports Oracle 6i Layout Editor. Se hace doble clic en el nodo Layout Model en el Object Navigator para abrir la ventana Layout Model. Esta ventana se utiliza para crear el query (o los queries) para el reporte. frames y boilerplates. Runtime Parameter Form. fuentes. ya sea del sistema o del usuario. Figura 4. Por default esta ventana no se despliega. etc. Esta ventana se despliega cuando se ejecuta un reporte. máscaras de formato. En esta ventana se pueden escribir valores para parámetros.25 Ventana Runtime Parameter Form de Reports Oracle 6i Live Previewer.26 Ventana Live Previewer de Reports Oracle 6i 79 . Esta ventana es muy parecida al Layout Editor (de Forms o de Reports) y se puede modificar la apariencia del reporte: color. a menos que se especifique lo contrario. Figura 4. En esta ventana se despliegan los datos del reporte. para los datos repositorios • Oracle8i Enterprise Edition ó Standard Edition. 80 .3 Recursos de Hardware y Software Los requerimientos de Hardware y Software para instalar la base de datos y los componentes de Developer 6i de Oracle.0 con Service Pack 5 o 6. dependiendo de las opciones a elegir.4. Windows 2000 con Service Pack 1. • Sistema Operativo: Windows NT 4. dependen de los elementos que se elijan al instalar. Windows98 or Windows95 * Requiere 256 Mb RAM si se usan utilidades de Java Para trabajar bajo Windows es necesario manejar una cuenta de tipo administrador en la parte de Base de Datos. Para la instalación de Oracle Developer 6i se tienen los siguientes requerimientos: En la parte del Cliente: • Procesador Pentium 166 MHz ó superior • 128 Mb en RAM* • 1 Gb En Disco Duro • Entre 298 and 587 Mb disponibles en disco duro. En la parte del Servidor: • Como mínimo 64 Mb en RAM. de donde 32 Mb deben de estar disponibles para el área de sistema Global (SGA) • Por cada repositorio: o Aproximadamente 140 Mb en el SYSTEM tablespace para los paquetes repositorio. release 8. procedimientos y vistas o Entre 20 and 325 Mb en otros tablespaces.7* • Versión de SQL*Plus compatible con la Base de Datos • Versión of TNS Listener compatible con la Base de Datos * En este caso se instaló la base de datos Oracle 9i por lo cual no existen inconvenientes a este punto.1. Este menú quedo de la siguiente manera: Figura 5. 5.1 muestra dicho acceso. 5. la figura 5.1.1 Sistema de Menús Se inicia con el diseño de la estructura de menú que contendrá el acceso a cada módulo del sistema. eliminando. se modelaron varias estructuras pensando en la organización más frecuente que el usuario puede manejar. ya sea insertando datos. consultando e imprimiendo.Capítulo 5 Pruebas de datos del Sistema En este último capítulo se realizan las pruebas a cada uno de los módulos. 81 .1 A todos los módulos En esta etapa se implementan las herramientas que nos permitirán desarrollar los elementos gráficos del sistema de facturación.1 Menú Sistema En menú sistema comprende de módulos que permiten manejar de manera global al sistema los cuales son los de configuración y usuarios. Contratos. Cobradores. estos módulos son: Clientes. Productos y Servicios. Figura 5.2 Menú Catálogos En el menú catálogos se inician los módulos que permiten ingresar los primeros datos con los cuales el sistema podrá trabajar más adelante. Así como también los accesos a los módulos que generarán los reportes de Clientes. la figura 5.2 muestra el contenido del menú.3 a 82 Menú Cuentas por Cobrar con Cancelaciones . Productos y Servicios.Figura 5. Cobradores. los cuales son: Generación de Cuentas por Cobrar ya sea de manera individual o por grupo de contratos. Nota de Crédito y Anticipo.Figura 5. Forms de Developer Oracle. La prioridad que tiene Developer es la de manipular grandes cantidades de información y por ello no se especializa en la parte gráfica hacia el usuario. Cuentas por Cobrar y Notas de Crédito. Notas de Crédito. Aplicación de Pagos. La barra de herramientas generada luce como muestra la siguiente figura 5. no incluye la utilidad de barra de herramientas como usualmente se hace con otros desarrolladores de software como son el Visual Basic de Microsoft entre otros. esta barra es una ventana que contiene botones de acción como los comúnmente utilizados para la acción de Aceptar o Cancelar. los cuales le dan la funcionalidad deseada en los análisis de requerimientos.3a muestra el contenido del menú junto con la sección de cancelaciones y la figura 5. Así como también sus respectivos reportes de Facturas. Facturas. solo que en este casos se les activó la propiedad de mostrar un icono sobre ellos.4: Figura 5.3 b Menú Cuentas por Cobrar con Reportes El menú Cuentas por Cobrar contiene la mayor parte de los módulos principales del sistema.4 Barra de herramientas 83 . Cuenta por Cobrar.3b muestra dicho menú y su anexo de reportes de Cuentas por Cobrar. Aplicación de pagos. la Figura 5. Incluye el acceso a los módulos de cancelación de Factura. asignación de Cuentas por Cobrar a Cobradores. El siguiente paso es generar la barra de botones que dará acceso al usuario a los módulos que son utilizados con más frecuencia. Anticipos. 1.5.2 Módulos En seguida se generan cada uno de los módulos que comprenderán el sistema de facturación.5 Módulo de Catálogo de Clientes Figura 5. primeramente se hace una consulta de los datos que se van a manejar en cada uno de dichos módulos. En cada especificación de módulo se indica la funcionalidad. componentes y diseño que será visible al usuario así como las restricciones de datos de cada uno. esto es. se hace un análisis de requerimientos de cada módulo llamado especificación de módulo.6 84 Módulo de Catálogo de Contratos . Figura 5. Para utilizar el catálogo de contratos.6 se muestra dicho catálogo. En la figura 5.8 Módulo de Catálogo de Productos y Servicios Este catálogo es muy similar en el funcionamiento y diseño que el catálogo de cobradores. Figura 5.9 Forma de llamado al reporte de Clientes 85 . Figura 5. es necesario que primero se capturen los datos de los clientes así como un producto por el cual se prestará un servicio. Figura 5.7 Módulo de Catálogo de Cobradores El catálogo de cobradores se utiliza un sencillo modelo de Maestro detalle. El reporte de Clientes es llamado a través de la forma que lleva el mismo nombre. clientes. la funcionalidad de ésta es la de capturar los rangos de los clientes que se desean imprimir así como la de validar dichos rangos de datos.10 Forma de Generación de cuentas por cobrar La generación de las cuentas por cobrar involucra tanto a los contratos. para después asignarle a los cobradores dichas cuentas por cobrar. cuando es llamado el reporte se utiliza el programa Run Reports. detalle de cuentas por cobrar y detalle de contratos. 86 . productos y cálculos que realiza esta forma para almacenar los datos en la tabla de cuentas por cobrar. Figura 5. contratos o fecha.1.11 Reporte de General de Clientes El reporte general de clientes nos muestra la información que se utilizará para la facturación del cliente.3 Reportes Figura 5.5. Figura 5. La figura 5. La figura 5.11 muestra dicho formato.12 Muestra el formato del reporte de facturas pagadas. éste se puede imprimir a través de un rango de facturas.12 Reporte de facturas pagadas 87 . 14. muestra el diseño del reporte de facturas cobradas por cobrador.14 88 Reporte de facturas cobradas por cobrador .13 se muestra el diseño del reporte de cartera vencida a una determinada fecha y cliente. Figura 5. para mostrar este reporte es necesario dar un rango de fecha y cobrador Figura 5.13 Reporte de cartera vencida En la figura 5.En la figura 5. 15 muestra el reporte general de facturas no pagadas.15 Reporte general de facturas no pagadas por cliente 89 . Figura 5.La figura 5. para ejecutar este reporte es necesario indicar la fecha límite a la cual se desea saber que personas deben dicho servicio. se pueden ingresar todos los datos solicitados con sus respectivas validaciones. se debe de dividir información que se tenía en una sola tabla en diferentes debido al nuevo análisis que se presentó para el proyecto. dando como respuesta que el sistema realiza adecuadamente el proceso de facturación así como el buen funcionamiento de los módulos. El utilizar el manejador de Base de Datos Oracle me ayudó a entender y manejar diversas herramientas que me son muy útiles para el medio en el que me desarrollo. es a grandes escalas tanto en el área privada como de investigación. el manejo de las herramientas de desarrollo Oracle me da una perspectiva mas amplia de lo que es el concepto del manejo de las Bases de Datos.CONCLUSIÓN Actualmente el sistema cumple con diferentes funciones propuestas al inicio. se procede a generar los Scripts para que en la ventana de Oracle PL/SQL sean ingresados a la base de datos. puede también mostrar diferentes reportes y por supuesto generar todo el proceso de facturación que va desde la generación de cuentas por cobrar. además de poder almacenar gran cantidad de información para darle larga durabilidad y soporte al sistema. que tienen infinidad de aplicaciones y que el manejo de información. con la ayuda de Oracle. Para ello es necesario anexar diferentes columnas a las que se tienen. estos son los puntos más importantes que debe de realizar el sistema y actualmente los lleva a cabo. El análisis hecho en este trabajo fue implementado con éxito. El análisis y diseño de Base de Datos tiene la estructura adecuada para soportar los datos que la empresa solicita. asignación de notas de crédito y generación de facturas. Para la implementación del sistema en el equipo del cliente es necesario realizar una migración de datos que parte del sistema de Access a Oracle. Una vez hecha la estructuración de los datos en tablas de Excel. 90 . sin embargo se puede implementar en una red de tipo LAN sin ninguna modificación al sistema o a la Base de Datos. el sistema fue diseñado para implementarse solo en un equipo. esto es debido a que el sistema maneja módulos de cuentas por cobrar que se puede acoplar con facilidad. la herramienta de desarrollo Developer de Oracle tiene una herramienta para migrar la estructura de las formas y reportes hechos en Developer 6i a otra más actual que es la versión 9i-AS que trabaja sobre la plataforma Java que es muy portable a cualquier sistema operativo a través de los navegadores WEB. de hecho.PERSPECTIVAS El sistema se encuentra en la posibilidad de podérsele agregar otras funciones o aplicar nuevos requerimientos. Para hacer dicha migración no existiría la necesidad de hacer cambios en la estructura de la Base de Datos. El realizar que la información del sistema de facturación sea consultada a través de Internet no es un requerimiento que necesite demasiado análisis y modificación de los módulos actuales. El sistema actual puede ser utilizado para cualquier otra empresa que se dedique a dar cualquier tipo de servicio o venta de productos. 91 . se puede aplicar en una empresa que de el servicio de vender sus productos ó servicios a crédito. Mylopoulos & J. Mc Graw Hill. J. Prentice Hall. Date. 1994 [DaC01] C. Séptima edición. 1984 [DaC91] C. Fundamentos de Base de Datos. Ng Moon Pun. Prentice Hall. Marlene Theriault. Ingeniería del Software. Oracle 9i Manual del administrador. Programación en Pascal serie Schaum. en Relational Database Writings. Cliente/Servidor Guía de Supervivencia. 1993 [HaI94] I. Mc Graw-Hill. Introducción a los Sistemas de Base de Datos. Primera edición. Mass: Addison-Wesley Publishing. L. "Don’t Encode Information into Primary Keys!". Mary Jane Mara. 1997 [BrE91] Bruce Eckel. Web Database Primer Plus.J Date. Pressman. Query-Driven Data Allocation Algorithms for Distributed Database Systems DEXA 1997 [KoH+94] Henry F. Schmidt. Brodie. Mc. 1996 [JaM97] James Martin. 1997 [LoK02] Kevin Loney. Mc Graw Hill. 1991 [MoP96] Piroz Mohseni. Reading. W. 2002 92 . 1994 [ByS98] Byron S. Oracle Press . Sybex. 1998 [KaK+97] Karlapalem K. 1991 [PuL97] Lee Purcell. Waite Group Press.BIBLIOGRAFÍA [PrR93] Roger S. James J. 1998 [OrR98] Orfali Robert Harkey Dan y Edwards Jeri. Análisis y diseño de bases de datos. Hawryszkiewycz. Megabyte Noriega editores. Tercera Edición. Graw Hill. The ABCs of Java Script. T. Gottfried. Korth / Abraham Silberschatz. Aplique C++. 2001 [BrM+84] M. técnicas de gestión de bases de datos Oracle robustas y de alto rendimiento. Odell. Object-Oriented Methods A Foundation. "On the Development of Data Models". J.Mc Graw Hill – Osborne. McGraw Hill México.. Alfaomega – Ra-Ma. Dr. Oracle Press Osborne Mc Graw Hill.[PeC03] [PKo+00] César Pérez.oracle.oracle. Oracle Developer. Manual avanzado de Forms y Reports.com http://otn. Oracle 9i Administración y análisis de Bases de Datos. 2003 Peter Koletzke.com 93 . Paul Dorsey. 2000 http://www.