Capítulo 1: El problema Planteamiento del problema El diagrama entidad-relación es una herramienta semántica de modelado de datos usada para lograr el objetivo de describir o retratar datos abstractamente. (Bagui & Earp, 2003, p. 24) [2]. En la actualidad existen herramientas como MySQL Workbench [18] y Oracle Designer [20] entre otras, que facilitan el desarrollo de bases de datos para sistemas de información, generando automáticamente las sentencias DDL (Data Definition Language, Lenguaje de Definición de Datos) partiendo de un diagrama entidad-relación. Este tipo de software entra en la clasificación de lo que es conocido como herramientas CASE (Computer Aided Systems Engineering, Ingeniería de Sistemas Asistida por Computadora) las cuales son aplicaciones que proporcionan un framework automatizado para la realización de diversas actividades de diseño e implementación de un sistema(Rob & Coronel, 2007, p. 632)[27]. Con el crecimiento de las aplicaciones web también han surgido herramientas CASE para la web como phpMyAdmin[24] y phpPgAdmin[25] las cuales son aplicaciones del lado del servidor, es decir, estas son alojadas en un servidor web y la mayor parte de su funcionalidad se ejecuta en él, teniendo acceso a la herramienta a través de un navegador que muestra la interfaz de la aplicación suministrada por el servidor en formato HTML/XHTML. Gilmore y Treat (2006, p. 621)[10] sugieren la instalación de herramientas web de administración de base de datos por muchas razones, entre éstas la posibilidad de manejar una base de datos desde cualquier computadora con acceso a internet y la facilidad con la que es asegurable la conexión usando SSL, adicionalmente Gilmore et al. destacan que no todos los proveedores de servicios de alojamiento permiten a los usuarios acceder a una interfaz de líneas de comandos, ni facilitan el uso de aplicaciones del lado del cliente ya que el acceso remoto es restringido a un número limitado de puertos. 3 Aunque son bastantes los beneficios que brindan las herramientas web de administración de bases de datos, en la actualidad este tipo de software como es apreciable en el caso de phpMyAdmin[24] y phpPgAdmin[25], carecen de un modelador de bases de datos, obligando a los usuarios a construir los modelos en papel y posteriormente crear los objetos de base de datos manualmente a través de la interfaz web o hacer uso de herramientas de escritorio para diseñar la base de datos y generar el script SQL. Por otra parte PostgreSQL[26] es un SGBD (Sistema gestor de bases de datos) de código abierto para el cual Hsu y Obe(2009)[12] realizaron una publicación en la que presentan una lista detallada de herramientas de administración que dan soporte a esta base de datos. En este artículo se puede apreciar la carencia de un modelador de base de datos multiplataforma y de software libre exclusivamente diseñado para PostgreSQL, ya que las herramientas multiplataforma de software libre como Open Office Base[3] y Power Architect[30] están desarrolladas para dar soporte a múltiples SGBD, lo que obligada a las herramientas a estandarizar características propias de cada SGBD para mantener la compatibilidad. Las aplicaciones citadas en el artículo que dan soporte exclusivo a PostgreSQL(EMS SQL Management Studio para PostgreSQL[7] y MicroOlap Database Designer/SQL para PostgreSQL[15]) requieren el pago de una licencia para poder utilizarlas y adicionalmente se limitan a operar solamente en la plataforma Windows. El uso de la tecnología ha generado que la mayoría de las actividades y los procesos de la vida cotidiana se lleven a cabo de manera automatizada, aumentando la complejidad de los sistemas y de los diseños de bases de datos. En base a esto, los usuarios que no cuenten con herramientas de software que les brinden asistencia en la fase de diseño, tendrán como resultado bases de datos difíciles de implementar, ineficientes y con errores, ya que el proceso de modelado es vital y debe efectuarse cuidadosamente. De acuerdo a Rob y Coronel (2007)[27] “una base de datos no es algo que simplemente suceda; la estructura de su contenido debe diseñarse con 4 cuidado. Un buen SGBD funcionará deficientemente si cuenta con una base de datos mal diseñada”. Por estas razones se propone la creación de un modelador de diagramas entidad-relación integrado a la versión 5 de la herramienta web de administración de base de datos de software libre phpPgAdmin, de manera que su funcionamiento se base en las características y sea exclusivo del SGBD PostgreSQL y que ofrezca a sus usuarios una interfaz amigable e intuitiva que pueda ser empleada desde cualquier sistema operativo y se ejecute correctamente en los principales navegadores web existentes. Objetivos de la investigación Objetivo general. Desarrollar un modelador web de diagramas entidad-relación para bases de datos PostgreSQL integrado a phpPgAdmin. Objetivos específicos. • Crear los objetos de base de datos que permitan almacenar la estructura de los metadatos de los diagramas y limiten el acceso a usuarios que no poseen permisos sobre el modelo. • Desarrollar un módulo para phpPgAdmin que permita a los usuarios administrar los diagramas entidad-relación. • Implementar la interfaz de usuario base del modelador de diagramas. • Desarrollar las funcionalidades de administración gráfica de tablas, columnas y claves foráneas. 5 • Construir los procedimientos necesarios que generen el script DDL partiendo de un diagrama entidad-relación. • Elaborar los procedimientos necesarios para la implementación de la ingeniería inversa. • Diseñar los procedimientos encargados de serializar los objetos que componen un modelo, en una estructura XML que pueda ser almacenada en la base de datos, permitiendo la persistencia de los diagramas. • Probar que la aplicación sea compatible con los principales navegadores web. Justificación El presente proyecto surge como respuesta a la necesidad de la comunidad de PostgreSQL y desarrolladores en general, de contar con una herramienta web de software libre, que les permita llevar a cabo la tarea de crear objetos de base de datos basándose en un diagrama entidad-relación. Por ser desarrollado como una aplicación web, este proyecto cuenta con las ventajas que caracterizan a este tipo software entre las que los autores Berzal, Cortijo y Cubero destacan la accesibilidad, el fácil mantenimiento, la relativa seguridad y la escalabilidad (2005, p. 21) [4]. Las aplicaciones de escritorio, requieren que cada lugar de trabajo posea los ficheros del software necesarios para poder ser ejecutadas, lo que podría generar un problema al momento de actualizar o dar mantenimiento a la aplicación, como indican Berzal et al. en su trabajo: La característica común que comparten todas las aplicaciones web es el hecho de centralizar el software para facilitar las tareas de mantenimiento y actualización de grandes sistemas. Es decir, se evita tener copias de nuestras aplicaciones en todos los puestos de trabajo, lo que puede llegar a convertir en una pesadilla a la hora de distribuir actualizaciones y garantizar que todos los puestos de trabajo funcionen correctamente. (p. 15) Se espera que el resultado de la investigación sea de beneficio para administradores y desarrolladores de bases de datos PostgreSQL; el proyecto 6 phpPgAdmin, el cual contará con una nueva e innovadora funcionalidad; la comunidad PostgreSQL, la cual tendrá a la mano una herramienta libre que facilite el desarrollo de bases de datos, atrayendo la atención de más usuarios a este SGBD; y por último la comunidad de software libre en general, ya que se podrá hacer uso del código fuente del producto como base para el desarrollo de nuevos proyectos. El uso de la herramienta de modelado brindará a los desarrolladores una forma más práctica de crear bases de datos, ya que las sentencias DDL serán generadas por la aplicación, después que sea elaborado el diagrama entidad-relación. Esta técnica de desarrollo reduce los errores de codificación, los usuarios no requieren un avanzado conocimiento del SQL y estos tendrán un mejor entendimiento de la estructura de las base de datos, facilitando la creación de consultas y la detección de errores. Además se contara con los beneficios previamente descritos que aportan las aplicaciones web. Alcance Con esta investigación se pretende desarrollar una herramienta de modelado de diagramas entidad-relación que aumente la productividad de las personas que se desenvuelven en el área de desarrollo y administración de bases de datos PostgreSQL y que sirva como base para el desarrollo de modeladores en otras herramientas CASE web. El proyecto contempla las funcionalidades básicas que poseen este tipo de aplicaciones, como la creación de tablas, columnas y relaciones de una manera gráfica, adición de objetos existentes físicamente en la base de datos al diagrama mediante ingeniería inversa y generación de los comandos DDL que construyen la base de datos. Adicionalmente, posee otras características como un módulo de administración para los diagramas y soporte para múltiples lenguajes, con lo que se expandiría el alcance geográfico a un ámbito global. Los usuarios podrán emplear la aplicación para el diseño de bases de datos PostgreSQL de las versiones 8.X y 9.0.X y tendrán la posibilidad de acceder y 7 emplear satisfactoriamente le herramienta desde los navegadores Internet Explorer 8, Firefox 3 y superiores, Opera 10 y superiores, Google Chrome en todas sus versiones y Safari 4 y superiores. Limitaciones A causa de que el uso de la herramienta se hace mediante un explorador web, sus limitaciones dependerán de las características que presente dicho explorador. Usuarios que hagan uso de navegadores que no soporten JavaScript o que esté deshabilitado, no podrán utilizar la herramienta. Por otra parte para un correcto funcionamiento de la aplicación los navegadores deben implementar SVG o VML, ya que el software hace uso de estas especificaciones de gráficos vectoriales para mostrar al usuario las relaciones entre las tablas. A diferencia de herramientas como Oracle Designer[20] en la cual el usuario desarrolla un modelo relacional lógico y posteriormente la aplicación es la encargada de generar el diseño físico, en el presente proyecto los usuarios diagramarán modelos relacionales físicos directamente.. Los scripts DDL generados por la aplicación, no alterarán la estructura de los objetos existentes en la base de datos, es decir, si se aplica ingeniera inversa sobre un esquema, luego se realizan modificaciones en el diseño y posteriormente se generan las sentencias DDL, estas intentaran crear los objetos nuevamente, ya que no se hará comparación entre la base de datos y el diagrama al momento de generar los scripts. Los objetos existentes en los diagramas pertenecen exclusivamente al modelo en el que fueron creados, por lo que estos no podrán ser reutilizados ni observados por otros diagramas entidad-relación y los cambios realizados en ellos solo afectaran al modelo al que pertenecen. En esta versión no se podrán importar o exportar modelos a formatos que puedan ser incluidos en otros esquemas, bases de datos o servidores. Tampoco será 8 posible aplicar ingeniera inversa a un script SQL compuesto de sentencias de definición de datos. 9