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
·
Diferencias entre Postgres y
Oracle
·
Fortalezas y Debilidades de
Postgres
·
Linux
·
Ubuntu
·
Apache
·
Análisis y Diseño de un Sistema de
Información usando Postgres
·
Plan de Migración de Oracle a
Postgres
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.
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.

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.
·
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 |
Sí |
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
·
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.
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 |
Fedora Linux, Red Hat
Linux |
Ver. 5 / Marzo 2006 |
Gratis |
GPL |
Workstation, Server, Público |
EEUU |
|
|
Gentoo |
Gentoo Foundation |
Enoch |
2006.1 |
Gratis |
GPL |
Workstation, Server, Público |
Mundial |
|
|
Mandriva
Linux |
Mandriva |
Mandriva 2006 |
Gratis (Download edition) |
GPL |
Desktop, Workstation, Server |
Mundial |
||
|
Rxart |
Pixart |
Rxart 2.0 |
Gratis Live CD |
GPL |
Workstation, Server |
America Spanish |
||
|
Slackware
Linux |
Patrick Volkerding |
SLS |
11.0 |
Gratis |
GPL |
Workstation, Server, Público |
EEUU |
|
|
SUSE
Linux |
Novell |
Jurix |
10.1 |
Descarga gratuita disponible |
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 |
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 |

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:


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:
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:
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.
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.
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.
|
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. |
|
Oracle: Origen, características, funcionamiento,
ventajas y desventajas |
|
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 |
|
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 |
|
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 |


![]()