Vicerrectorado de Estudios Virtuales

Especialización en Gerencia Mención Redes y Telecomunicaciones

Fase: 3 - Asignatura: Sistemas de Información Gerencial

Trabajo 4: Diseño de Sistemas de Información usando Postgres

Autor: Ing. Héctor Marcano  C.I.: V-10.754.714

Profesor: Yaros Pérez

Abril, 2008

Índice

·        Introducción

·        Diferencias entre Postgres y Oracle

·        Fortalezas y Debilidades de Postgres

·        Linux

·        Ubuntu

·        Apache

·        Postgres con Linux

·        Análisis y Diseño de un Sistema de Información usando Postgres

·        Plan de Migración de Oracle a Postgres

·        Caso Práctico

·        Infografía

 

Introducción

En la actualidad, la tecnología de código abierto u open source, ha tomado mucha fuerza, por lo que ha venido a convertirse en una excelente opción al momento de que una organización u empresa decide reevaluar el software que tiene o desea actualizarse dentro del mercado, para reducir costos o evolucionar en cuanto a la plataforma que tiene instalada.

Sin embargo siempre se debe tener la vista en el horizonte, ya que se debe tratar de predecir el futuro, no solo considerar las reducciones de costos actuales, sino prever si los costos de asesoría, soporte o restablecimiento de la infraestructura actual puede generar mayores costos y repercusiones, ya que se está tratando de la información, lo que constituye un recurso vital para la evolución y desempeño del negocio en las organizaciones.

Es por ello que se debe garantizar la integridad, disponibilidad y seguridad de la información al momento de diseñar o definir migraciones, reemplazo de tecnologías o software.

Para este trabajo se establecerán los puntos a considerar al momento de definir o decidir por el cambio de un sistema gestión de bases de datos y sistema operativos libres y sus comparaciones con los sistemas propietarios, considerando los distintos puntos de vista para la toma de decisiones.

Software Libre

El software libre es un tipo particular de software que le permite al usuario cuatro libertades básicas:

·        Libertad cero: Usar el programa con cualquier propósito: al contrario de lo que se ha venido acostumbrando a hacer con el software tradicional, el software se puede utilizar para cualquier fin, bien sea educativo, cultural, comercial, político, social, esta libertad deriva del hecho de que existen ciertas licencias que restringen el uso del software a un determinado propósito o que son prohibitivas del uso del mismo para ciertas actividades o ciertos fines.

·        Libertad uno: Estudiar el funcionamiento del software y adaptarlo a las necesidades particulares; con esto, al tener acceso al código fuente del software, se pueden estudiar y conocer el funcionamiento del software y a partir de ello, descubrir funciones ocultas, averiguar como se realizan determinadas tareas y así poder realizar modificaciones en el mismo, para mejorarlo eliminando o agregando partes del mismo de forma tal de adaptarlo a los requerimientos específicos que se tengan.

·        Libertad dos: Distribuir copias; es decir, que se pueden realizar y difundir copias del software sin penalizaciones legales, bien sea de forma gratuita o recibiendo alguna remuneración; con esto se genera la gran ventaja de evitar tener que pagar por licencias o por estaciones de trabajo que tengan un software determinado.

·        Libertad tres: Mejorar el programa y Liberar las mejoras al público: al mejorar el programa, se pueden reducir los requerimientos de hardware, hacer que tenga un mayor rendimiento, que ocupe menos espacio de memoria, reducir los errores; en fin, cualquier adición que repercuta en beneficios al momento de operar el software. Al mismo tiempo, el poder de liberar las mejoras al público contribuye a que se pueda distribuir públicamente las mejoras realizadas al software de cualquier manera, por e-mail, Chat, publicado en un sitio Web, por Cds, etc.

La única restricción el software libre es el copyleft, es decir, que cualquiera que redistribuya el software con o sin cambios, debe dar las mismas libertades que antes y del mismo modo, debe compartir el código fuente para que otras personas dispongan de él y puedan disfrutas de las mismas cuatro libertades básicas mencionadas anteriormente.

Dentro de las características principales del software libre, se encuentran en cuanto a su clasificación según el costo de adquisición, el cual puede ser cero o variar según si es desarrollado por una empresa que pretende recibir una remuneración por el mismo; llamándose software comercial, en cuyo caso la gran ventaja es que se cobra por el software y no por licencia, ni por estaciones de trabajo donde va a estar instalado a diferencia del software propietario.

El código fuente es “open source”, es decir que está disponible para quienes deseen aprender su estructura y funcionamiento y realizar modificaciones sobre el mismo.

De acuerdo a su protección; el software libre está amparado por licencia de tipo copyleft en lugar de copyright para prevenir que alguien lo modifique y lo venda como un software cerrado. Por lo que dejaría de ser software libre.

En cuanto a su legalidad, el software libre siempre es legal, ya que el ejercicio de las cuatro libertades básicas le permite ser estudiado, modificado, mejorar, adaptarlo a necesidades o requerimientos particulares, copiarlo y redistribuirlo libremente y usar el código fuente o distribuirlo del mismo modo, además de que puede ser usado para cualquier fin.

Diferencias entre Postgres y Oracle

Oracle es un sistema de gestión de bases de datos relacional (RDBMS), fabricado por la Corporación Oracle; es considerado uno de los sistemas de bases de datos más completos; entre sus principales características y bondades, destacan:

Soporte a transacciones: Un SGBD se dice transaccional si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las ordenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.

Estabilidad: Es un sistema bastante robusto que mantiene la consulta óptima de la data sin corromperse.

Escalabilidad: propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos

Figura 1
Oracle 10G

Multiplataforma: programas, sistemas operativos, lenguajes de programación, u otra clase de software, que puedan funcionar en diversas plataformas. Por ejemplo, una aplicación multiplataforma podría ejecutarse en Windows en un procesador x86, en GNU/Linux en un procesador x86, y en Mac OS X en uno x86 (solo para equipos Apple) o en un PowerPC.

Su dominio en el mercado es predominante, a pesar de ser criticados aspectos tales como la seguridad y la política de actualización por medio de parches.

 

PostgreSQL Es un servidor de bases de datos relacional orientado a objetos de software libre, liberado bajo la licencia BSD.  Como muchos otros proyectos Open Source, no es manejado por una sola empresa, sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales que trabajan en su desarrollo (PGDG: PostgreSQL Global Development Group)

Dentro de sus principales características, se encuentran las siguientes:

Alta concurrencia

Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.

Amplia variedad de tipos nativos

PostgreSQL provee nativamente soporte para:

·        Números de precisión arbitraria.

·        Texto de largo ilimitado.

·        Figuras geométricas (con una variedad de funciones asociadas)

·        Direcciones IP (IPv4 e IPv6).

·        Bloques de direcciones estilo CIDR.

·        Direcciones MAC.

Arrays

Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.

Otras características

·        Claves ajenas también denominadas Llaves ajenas o Llaves Foráneas (foreign keys).

·        Disparadores (triggers).

Un disparador o trigger se define en una acción especifica basada en algo ocurrente dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características: -El nombre del trigger o disparador -El momento en que el disparador debe arrancar -El evento del disparador deberá activarse sobre... -La tabla donde el disparador se activara -La frecuencia de la ejecución -La funcióón que podría ser llamada Entonces combinando estas seis características, PostgreSQL le permitirá crear una amplia funcionalidad a través de su sistema de activación de disparadores (triggers).

·        Vistas.

·        Integridad transaccional.

·        Herencia de tablas.

·        Tipos de datos y operaciones geométricas.

Funciones

Bloques de código que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones básicas de programación, tales como bifurcaciones y bucles, hasta las complejidades de la programación orientación a objetos o la programación funcional.

Los disparadores (triggers en inglés) son funciones enlazadas a operaciones sobre los datos.

Algunos de los lenguajes que se pueden usar son los siguientes:

·        Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de oracle).

·        C.

·        C++.

·        Gambas

·        Java PL/Java web.

·        PL/Perl.

·        plPHP.

·        PL/Python.

·        PL/Ruby.

·        PL/sh.

·        PL/Tcl.

·        PL/Scheme.

·        Lenguaje para aplicaciones estadísticas R through PL/R.

PostgreSQL soporta funciones que retornan "filas", donde la salida puede tratarse como un conjunto de valores que pueden ser tratados igual a una fila retornada por una consulta (query en inglés).

Las funciones pueden ser definidas para ejecutarse con los derechos del usuario ejecutor o con los derechos de un usuario previamente definido. El concepto de funciones, en otros DBMS, son muchas veces referidas como "procedimientos almacenados" (stored procedures en inglés).

Tabla 1
Comparación entre Postgres y Oracle

 

Postgres

Oracle

Costos

Reducidos

Elevado

Código

Abierto

Cerrado

Gestión de base de datos

Relacional + Orientado a Objetos

Relacional

Soporte a otras plataformas

Si

Diseño Web

Atractivo

Complejo

Estándar

SQL

Oracle

Integración

Ambos usan herramientas externas para integrarse

Ambos usan herramientas externas para integrarse

Mejoras y modificaciones

Públicas por PGDG

Por medio de parches de Oracle Corporation

Velocidad de consultas y transacciones

Menor: Guarda cada escritura que hace

Puede manejar altas velocidades de acceso

Conexiones simultáneas

32

41

Columnas por tablas

1.600

1.000

Tamaño de fila por columna

103.275

255.000

Tamaño sin null

103.275

255

Tamaño de consulta

16.777.216

16.777.216

Fortalezas y Debilidades de Postgres

Fortalezas

·        PostgreSQL aproxima los datos a un modelo objeto-relacional, y es capaz de manejar complejas rutinas y reglas. Ejemplos de su avanzada funcionalidad son consultas SQL declarativas, control de concurrencia multi-versión, soporte multiusuario, transacciones, optimización de consultas, herencia, y arrays.

·        PostgreSQL soporta operadores, funcionales métodos de acceso y tipos de datos definidos por el usuario.

·        PostgreSQL soporta la especificación SQL99 e incluye características avanzadas tales como las uniones (joins) SQL92.

·        PostgreSQL soporta integridad referencial, la cual es utilizada para garantizar la validez de los datos de la base de datos.

·        La flexibilidad del API de PostgreSQL ha permitido a los vendedores proporcionar soporte al desarrollo fácilmente para el RDBMS PostgreSQL. Estas interfaces incluyen Object Pascal, Python, Perl, PHP, ODBC, Java/JDBC, TCL, C/C++, y Pike.

·        PostgreSQL tiene soporte para lenguajes procedurales internos, incluyendo un lenguaje nativo denominado PL/pgSQL. Este lenguaje es comparable al lenguaje procedural de Oracle, PL/SQL. Otra ventaja de PostgreSQL es su habilidad para usar Perl, Python, o TCL como lenguaje procedural embebido.

·        MVCC, o Control de Concurrencia Multi-Versión (Multi-Version Concurrency Control), es la tecnología que PostgreSQL usa para evitar bloqueos innecesarios. Si alguna vez ha usado algún DBMS con capacidades SQL, tal como MySQL o Access, probablemente habrá notado que hay ocasiones en las que una lectura tiene que esperar para acceder a información de la base de datos. La espera está provocada por usuarios que están escribiendo en la base de datos. Resumiendo, el lector está bloqueado por los escritores que están actualizando registros.

·        Mediante el uso de MVCC, PostgreSQL evita este problema por completo. MVCC está considerado mejor que el bloqueo a nivel de fila porque un lector nunca es bloqueado por un escritor. En su lugar, PostgreSQL mantiene una ruta a todas las transacciones realizadas por los usuarios de la base de datos. PostgreSQL es capaz entonces de manejar los registros sin necesidad de que los usuarios tengan que esperar a que los registros estén disponibles.

·        PostgreSQL usa una arquitectura proceso-por-usuario cliente/servidor. Esta es similar al método del Apache 1.3.x para manejar procesos. Hay un proceso maestro que se ramifica para proporcionar conexiones adicionales para cada cliente que intente conectar a PostgreSQL.

·        La característica de PostgreSQL conocida como Write Ahead Logging incrementa la dependencia de la base de datos al registro de cambios antes de que estos sean escritos en la base de datos. Esto garantiza que en el hipotético caso de que la base de datos se caiga, existirá un registro de las transacciones a partir del cual podremos restaurar la base de datos. Esto puede ser enormemente beneficioso en el caso de caída, ya que cualquier cambio que no fueron escritos en la base de datos pueden ser recuperados usando el dato que fue previamente registrado. Una  vez el sistema ha quedado restaurado, un usuario puede continuar trabajando desde el punto en que lo dejó cuando cayó la base de datos.

Desventajas

·        Integración con otras plataformas: A pesar de ser reconocido que Postgres es multiplataforma, la integración hacia otras plataformas depende de la adaptación de las bases de datos a que se refieran.

·        El hecho de ser open source, causa que muchas personas pueden realizar modificaciones al código generando nuevas versiones por lo que no está estandarizado, es posible realizar un desarrollo que al utilizarlo con una versión donde se han eliminado funciones o módulos, no funcionen todos los componentes del mismo.

·        El soporte sobre desarrollos y bases de datos no está soportado por una organización que responda en todo momento sobre el mismo, sino que más bien es una comunidad que lo hace por medio de blogs en forma colaborativa, sin obligaciones al respecto.

Linux

El logotipo oficial del núcleo Linux es el pingüino Tux

Es un sistema operativo tipo Unix, de código abierto distribuido bajo la licencia pública general (GNU o GPL) como software libre; su nombre proviene del núcleo o kernel denominado Linux por su creador Linus Torvals; usado ampliamente en servidores y supercomputadoras.

Una de sus principales características y bondades es la versatilidad del hardware donde se puede instalar, por su alto desempeño y rendimiento en equipos como celulares, PDAs, reproductores de música, video juegos, enrutadores, además de toda clase de arquitecturas de computadoras desde Pcs x 86 en adelante.

Tabla 2
Comparación de algunas distribuciones Linux

 

Empresa

Fecha de la primera P.R.

Predecesor

Última versión estable

Precio (€)

Licencia

Público

País

Debian GNU/Linux

Debian Project

Agosto 1993

N/A

3.1r3 (sarge)

Gratis

cualquier DFSG

Desktop, Workstation, Server

Mundial

Fedora Core

Fedora Project

Noviembre 2003

Fedora Linux, Red Hat Linux

Ver. 5 / Marzo 2006

Gratis

GPL

Workstation, Server, Público

EEUU

Gentoo

Gentoo Foundation

Marzo 2002

Enoch

2006.1

Gratis

GPL

Workstation, Server, Público

Mundial

Mandriva Linux

Mandriva

Julio 1998

Mandrakelinux/Conectiva y Lycoris Xls

Mandriva 2006

Gratis (Download edition)

GPL

Desktop, Workstation, Server

Mundial

Rxart

Pixart

octubre 2001

rxart, rxart Linux

Rxart 2.0

Gratis Live CD

GPL

Workstation, Server

America Spanish

Slackware Linux

Patrick Volkerding

Julio 1993

SLS

11.0

Gratis

GPL

Workstation, Server, Público

EEUU

SUSE Linux

Novell

Marzo 1994

Jurix

10.1

Descarga gratuita disponible
Ed. Profesional: 51,95

GPL

Workstation, Server, Desktop, Público

Mundial


Tabla 3
Características y configuración de paquetes de Linux

 

Paquetes

¿Instalación Gráfica?

Explorador de ficheros

Navegador Web

Entorno Gráfico Principal

Window manager Principal

Tema de Escritorio

Paquete de Ofimática

Debian GNU/Linux

18000

No

Nautilus/Konqueror

Konqueror/Mozilla Firefox

GNOME

Sawfish/Metacity

a Elegir

OpenOffice.org/KOffice/GNOME Office

Fedora Core

5000

Si

Nautilus/Konqueror

Epiphany/Mozilla Firefox

GNOME/KDE

Metacity

ClearLooks theme for GNOME
Bluecurve theme for KDE

OpenOffice.org/KOffice/GNOME Office

Mandriva Linux

4000

Si

Konqueror

Konqueror/Mozilla Firefox

KDE

kwin

Mandrakegalaxy theme

OpenOffice.org

Rxart Linux

2000

Si

Konqueror

Konqueror/Mozilla Firefox

KDE

kxwin

Rxart theme

OpenOffice.org

Slackware Linux

Too Much

No

Konqueror

Mozilla Firefox Seamonkey

From Fluxbox to KDE

N/A

N/A

Koffice

SUSE Linux

12500

Si

Nautilus

Mozilla Firefox

Gnome - KDE

Metacity

ClearLooks

OpenOffice.org

Ubuntu

Una de las más recientes distribuciones de Linux; ofrece una interfaz gráfica predominantemente para computadores de escritorio, aunque este sistema operativo puede ser usado también para servidores.

Características:

Apache

Tomcat es un producto de Apache Fundation (Apache Yakarta Project), el cual funciona como un servidor de servlets, que implementa las especificaciones de estos y de java Server pages de Sun Microsystems.

Es un servidor Web con soporte de Servlets y JSPs que incluye un compilador Jasper que compila los JSPs convirtiéndolas en Servlets; es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad. Dado que fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual de Java.

Características

Figura 2
Funcionamiento básico de Apache Tomcat

La jerarquía de directorios de instalación de Tomcat incluye:

Postgres con Linux

PostgreSQL ofrece muchas ventajas para empresas, compañías o negocios respecto a otros sistemas de bases de datos:

Esto tiene varias ventajas adicionales:

·        Modelos de negocios más rentables con instalaciones a gran escala.

·        No existe la posibilidad de ser auditado para verificar cumplimiento de licencia en ningún momento.

·        Flexibilidad para hacer investigación y desarrollo sin necesidad de incurrir en costos adicionales de licenciamiento.

Una lista breve de características técnicas que PostgreSQL ofrece:

Análisis y Diseño de un Sistema de Información usando Postgres

Para el análisis y diseño de un sistema de información utilizando postgres se deben llevar a cabo las siguientes etapas:

Planteamiento del Problema

Se debe definir previamente el problema, determinar sus posibles causas y hacer una propuesta, para ello, se deben identificar los componentes que forman parte del mismo, identificando y explicando las relaciones que existen entre ellos. Se debe ubicar el problema dentro de un marco conceptual que lo explique claramente.

Desglosar el problema en sus componentes más simples, simplificándolo y eliminando la información redundante que pueda existir.

Tomar en consideración estudios previos y literatura que exista sobre el mismo tema o temas relacionados, para tomar un punto de partida en el análisis, evaluar las bondades de postgres y determinar las principales características de este sistema.

Se deben considerar la integración del software, el hardware y el usuario quien va a interactuar con la o las aplicaciones desarrolladas de forma de garantizar el funcionamiento óptimo del mismo.

Determinar los requerimientos de información

Para esto, se deben considerar distintas herramientas tales como técnicas de recolección de datos, como entrevistas, cuestionarios, encuestas, considerando la población total y un muestreo representativo de la misma, para analizar el comportamiento de los entes responsables o que afectan la toma de decisión; establecer un diseño de prototipos.

Se debe definir en base a la información recolectada los entes involucrados para determinar quienes son los usuarios, los administradores, las actividades que se verán afectadas con el sistema, el ambiente, el momento y lugar cuando y donde se implantará este y la forma de desarrollarlo.

Con todo esto se quiere generar una noción general del comportamiento del sistema actual si existe y el comportamiento futuro e ideal del sistema propuesto.  Se deben conocer las funciones del negocio y así determinar el impacto que tendrá el sistema sobre ellas, lo cual debe ser para mejorar, impulsarlo, favorecerlo, optimizarlo, etc.

Análisis de las necesidades del sistema

Evaluar el software y hardware necesario, los requerimientos mínimos de instalación, configuración, mantenimiento, crecimiento previsto a futuro, duración del desarrollo de la aplicación, adquisición de licencias; en el caso en estudio, al considerar la evaluación de software libre, se establece un ahorro significativo en este sentido.

Realizar los diagramas de flujo del sistema actual, proponer las mejoras y hacer un análisis de costo-beneficio que representa el sistema existente y el que contemplará el propuesto

Diseño del sistema

En este caso se considera el sistema recomendado, al realizar un desarrollo de sistemas de gestión de bases de datos utilizando postgres, se debe definir la estructura de una aplicación orientada a objetos que utilice bases de datos relacionales, se deben considerar los aspectos técnicos de la aplicación, garantizar la compatibilidad con otros sistemas en especial el sistema operativo empleado que bien puede ser una excelente opción utilizar software libre (Linux), por lo que se reducirán costos de licenciamiento en equipos y usuarios.

Del mismo modo, de ser esta la elección se debe considerar las implicaciones en cuanto al soporte del mismo, ya que dependiendo del sistema o aplicación escogido, puede ser limitado, de allí la evaluación previa en este sentido al escoger el sistema operativo en una de sus distribuciones más difundidas como Debian o Ubuntu, ya que cuentan con todo un respaldo del grupo de desarrolladores de la misma.

Realizar el diseño lógico del sistema propuesto, elaborar el diagrama de flujo y el pseudocódigo para establecer la correspondiente normalización del mismo; realizar el diseño de pantallas, la interfaz de usuario (GUI) y el diseño de entradas y salidas, bases de datos, archivos, control y respaldos con los respectivos módulos y documentación de los mismos. Así mismo, establecer el mantenimiento futuro de la base de datos y respaldos correspondientes.

Diseño y documentación del Software

Finalmente establecer el código fuente, compilar, depurar de errores y documentar todos los módulos dentro del código, e igualmente realizar el manual del usuario y manual de programación y manual del sistema, para garantizar la posible futura modificación o crecimiento del mismo.  Identificar la estructura lógica de los programas, establecer las rutas de acceso en las bases de datos. 

Pruebas e Implantación del sistema

Realizar las pruebas correspondientes y certificar que el programa está bien hecho, junto con la optimización de las bases de datos.

Es de vital importancia al definir el análisis y diseño del sistema, tomar en consideración junto con el software de desarrollo o las bases de datos, definir también el software de monitoreo y establecer los parámetros de mantenimiento y rendimiento esperado, ya que la implantación del sistema y su permanencia en el tiempo dependen en gran forma de este mantenimiento y monitoreo, asimismo la actualización de versiones y actualizaciones.

Plan de Migración de Oracle a Postgres

En la documentación consultada se observó una clara tendencia histórica a realizar una migración inversa, es decir, de Postgres a Oracle, todo ello por la consideración de que Oracle es una base de datos más robusta, con mayor soporte y personal capacitado existente en el mercado laboral garantizado por el respaldo de la propia organización, ya que tiene sus programas de certificación de DBA y DBM.

Sin embargo, en vista del problema planteado, se contemplará una migración de Oracle a Postgres, donde se consideran como principales ventajas, el hecho de ser open source y representar alta rentabilidad en reducción de licencias en una organización que desee implementar este sistema de manejo de bases de datos, además de la garantía de que es tan bueno y no es susceptible a fallas, además de la gran ventaja en el aspecto de la seguridad.

Para la etapa de planificación de esta migración, se deben considerar aspectos tales como el modelo de datos, analizar el repositorio de datos para verificar su normalización, establecer y verificar las relaciones entre las tablas, modelo entidad-relación, considerar y verificar en el manual del sistema que se tiene en Oracle, la configuración realizada, estructura de tablas e integración del sistema, para garantizar que todos los aspectos existentes tienen su homólogo en Postgres y aquellos que no lo tengan, se debe prever que se van a desarrollar desde cero, por lo que se establecerá el diseño de los mismos.

En este caso considerar el índice, uso de primary key, los constrains (restricción de no nulidad de campos), la conexión entre tablas, forma de almacenar la data, diseño de pantallas y estructura general de la base de datos y su administración.

Considerar los objetos que se encuentran interrelacionados en el sistema actual (Oracle) para determinar si existen estos tipos de datos o entidades en el sistema propuesto (postgres): tablas, vistas, stop procedures, funciones, relaciones, triggers, etc.  En el caso que existan, determinar si se pueden migrar en igualdad de condiciones.

Analizar el lenguaje de programación en el cual está diseñado el Front end, para determinar si es compatible con Postgres y en caso contrario determinar la posibilidad de migración del mismo a un lenguaje soportado por este último; en caso contrario, habría que diseñar un front end completo para poder tener una interfaz de comunicación con el usuario en la captura, proceso y entrega de la data de y hacia los repositorios de datos.

Igualmente, considerar el impacto que podría tener el hecho de no estar soportado, para establecer un plan de migración cronológicamente estructurado en la parte de reingeniería del proyecto y el desarrollo de un nuevo front end.

Una vez definida esta etapa previa y determinadas las modificaciones que corresponden. Se debe monitorear la evolución de las mismas; una vez estén finalizadas y realizadas las pruebas correspondientes, se debe proceder a respaldar toda la data, aplicaciones y bases de datos, para dar paso al nuevo sistema.

Establecer archivos planos de cada una de las tablas, delimitando todos los campos para que estén limitados e identificados, bajar los servicios de la aplicación para no generar errores, ni pérdida de datos y luego proceder a copiarlas a postgres.

Una vez copiado todo el modelo y estructura de las bases de datos desde Oracle a Postgres, proceder a levantar la aplicación que se encarga de la captura y proceso de la información (front end), levantando la información en el esquema de indexación, estructura de índices, tablas, relaciones, constrain, triggers, etc., para activar la nueva interfaz.

Posteriormente realizar las pruebas correspondientes y proceder a evaluar todos los módulos, procedimientos y entradas y salidas del sistema, a fin de verificar el completo funcionamiento del sistema.

Es importante y sumamente recomendables, realizar todos estos cambios en un servidor de desarrollo para, una vez que se encuentre chequeado el 100%, proceder a activarlo en un servidor productivo de forma tal que los usuarios no perciban el cambio, ni el tiempo de espera para la activación de la nueva estructura en postgres.

Caso Práctico

Para la asesoría en la instalación de un sistema de información de venta de Tickets vía Web se deben considerar los siguientes aspectos:

Hardware:

A pesar de que las recomendaciones de este caso tienden a el uso de sistema operativo y aplicaciones que son bastante ligeras y no requieren gran espacio en disco duro ni alto desempeño en procesador y memoria, se debe considerar la alta demanda simultánea y concurrencia en la interfaz Web, además de la estabilidad y tolerancia a fallas en los equipos de computación, por lo que se recomienda la instalación de servidores con redundancia en conexión de red, fuente de poder, alto desempeño en procesador y  memoria; del mismo modo, extender estas características a los equipos de comunicaciones tales como switches, routers, DTU, etc. Instalar UPS con suficiente autonomía para prevenir caídas de tensión y asegurar físicamente los espacios o salas donde se encontrarán ubicados; establecer sistemas de control de acceso, vigilancia por medio de equipos de CCTV, etc.

Software

Sistema Operativo: Es recomendable la instalación de un sistema operativo estable, seguro, con soporte y rendimiento ante conexiones a Internet, por eso es una excelente alternativa, instalar Linux en una de sus distribuciones más soportadas, como Debian, Suse (en este caso comercial) o Ubuntu, ya que con esto se garantiza una buena protección ante intrusos externos, estabilidad del Sistema operativo, proceso y capacidad multiplataformas, compatibilidad con protocolos HTTP, TCP-IP, etc. Administración,

Servidor Web: Instalar un servidor de Internet robusto como Apache tomcat, el cual dentro de sus características principales soporta múltiples plataformas, alto número de consultas y acceso simultáneo, estabilidad e integridad, así como soportar diseño de páginas Web en distintos formatos.

Base de datos: Utilizar como sistema de gestión de bases de datos a PostgreSQL apoyado con una interfaz gráfica diseñada con PHP, con la cual se pueda realizar consultas, incluir y modificar usuarios y datos, efectuar transacciones y obtener información en forma de consultas, así como recibir información y confirmación de compras realizadas por medio de correo electrónico.

Seguridad: Uso de certificados SSL que garanticen la seguridad de las transacciones para la cancelación de los tickets por tarjeta de crédito o débito, estableciéndose un túnel virtual entre el cliente y el banco para la autenticación y proceso seguro de la transacción bancaria por lo que se evitan los fraudes electrónicos que puedan afectar a la empresa u organización que se encarga de la venta de tickets.

Igualmente establecer otros dispositivos físicos y lógicos de seguridad, tales como firewall, routers, switches y garantizar la redundancia de la información y tolerancia a fallas de la misma por medio de equipos y dispositivos que garanticen la misma.

Estructura del sistema de venta de tickets:

El diseño Web debe tener como página principal, una interfaz donde se muestre información referente al estadio de Beisbol, cronograma de eventos y juegos, así como los resultados de juegos pasados, información de la organización, contactos, etc.

Adicionalmente debe existir un link, para la compra de boletos, el cual se direcciona a una página de autenticación, donde el usuario debe estar registrado con sus datos básicos (nombre, cédula, dirección de habitación, etc.), para la realización de la factura legal de la venta; en caso de usuarios no registrados debe permitirse la inclusión del mismo o modificación de algún dato personal (a excepción del campo índice como la cédula). Al establecer la autenticación, se ofrece la información de fechas del calendario de juegos y se permite escoger la locación dentro del estadio y la cantidad de boletos que se desean para finalizar registrando el pago según la modalidad escogida por el usuario.

Luego de este paso, se establece la conexión segura con el usuario por medio de la utilización de un certificado dentro de dicha conexión es donde el usuario indicará los datos de su tarjeta de crédito o débito para la formalización del pago, estableciéndose el túnel mencionado previamente donde el cliente tendrá una conexión directa con el banco sin que sus datos privados queden registrados por la página Web del vendedor de boletos; con esto se garantiza la confidencialidad para el cliente de sus tarjetas y se evita, posibles reclamos por fraude electrónico.

Posterior a la compra, el usuario debe recibir un correo electrónico con el comprobante de la compra, el cual debe ser canjeado en las taquillas por los respectivos boletos o en caso de compras con suficiente anterioridad, ofrecer la opción de envío de las entradas por correo.

Los módulos que contempla el sistema de ventas, fuera de la interfaz web son por consiguiente: Inclusión, autenticación, selección de opciones de compra, transferencia de datos y realización de recibo de compra.

Se debe recomendar a la organización igualmente el respaldo de la data en todo momento para prevenir y garantizar la integridad y disponibilidad de la misma en todo momento de llegar a presentarse alguna eventualidad mayor que se exceda de las consideraciones de tolerancia descritas, tales como desastres naturales, cortes ininterrumpidos de energía, etc.

Infografía

Referencia:

http://www.monografias.com/trabajos51/software-libre/software-libre.shtml?monosearch

Conociendo el software libre: Definiciones, características y particularidades del software libre

http://www.monografias.com/trabajos12/elsoflib/elsoflib.shtml?monosearch

El Software Libre: Consideraciones básicas, definición, conceptos, diferencias, aspectos técnicos y legales del software libre.

http://es.wikipedia.org/wiki/Oracle

Oracle: Origen, características, funcionamiento, ventajas y desventajas

http://es.wikipedia.org/wiki/PostgreSQL

Postgres: Definición, comparaciones, características, ventajas y desventajas

http://www.monografias.com/trabajos29/comparacion-sistemas/comparacion-sistemas.shtml?monosearch

Comparación entre sistemas de bases de datos, comparación entre Postgres y Oracle, ventajas y desventajas

http://es.geocities.com/annadugarte/ads1/trabajo2/caracteristica.htm

Análisis y Diseño de Sistemas de bases de datos, características de postgres, ventajas y funcionalidades de postgres, comparación con Oracle

http://es.wikipedia.org/wiki/Linux

Linux, Definición, historia, distribuciones, características

http://es.wikipedia.org/wiki/Ubuntu_(distribuci%C3%B3n_Linux)

Ubuntu

http://www.eladministradordered.blogspot.com/2006/08/caracteristicas-de-ubuntu.html

Ubuntu: seguridad en ubuntu, características principales

http://es.wikipedia.org/wiki/Apache_Tomcat

Apache, definición, estructura, historia, características del producto, entorno de su desarrollo

http://mundogeek.net/archivos/2006/04/04/apache-y-tomcat-en-windows

Apache Tomcat con Windows, utilidades, instalación, principales características

http://soporte.tiendalinux.com/portal/Portfolio/postgresql_ventajas_html

Características y principales ventajas del uso de Postgres con Linux

http://www.monografias.com/trabajos/anaydisesis/anaydisesis.shtml

Análisis y diseño de sistemas

Text Box: Página Web Personal
 

 

Hosted by www.Geocities.ws

1