
Universidad Yacambú
Especialización en Gerencia, Mención: Sistemas de
Información
SISTEMAS DE INFORMACION GERENCIAL
RESUMEN TRABAJO 4
Autores:
Rusmary Duran
Fabiola Vera
Roberto J. López
Diseño de Sistemas
de Información usando Postgres
2-. ¿Cuál es la
diferencia entre Postgre y ORACLE?
3-.
Fortalezas y Debilidades Postgre.
4-. Ubuntu,
Apache. Características.
5-. Postgre con Linux.
Características.
6-.
¿Cómo sería el análisis y diseño de un sistema de información usando Postgre?
7-. Elaborar un plan de
migración de Oracle a Postgre para una empresa administrativa
8-. Caso Práctico:
Suponga que a usted lo contratan como Asesor para elaborar un sistema de
información de Ventas de Ticket vía Web usando Postgre para un Stadium de
Béisbol. ¿Cuáles serian sus recomendaciones y pasos a seguir?
Software libre brinda libertad a los
usuarios sobre su producto adquirido y por tanto, una vez obtenido, puede ser usado,
copiado, estudiado, modificado y redistribuido libremente. Lo importante no es
su acceso gratuito sino su libertad de
uso para modificarlo y adaptarlo a las necesidades que tengamos. A continuación se estudiara, sus características, conjuntamente con algunas bases de datos como
Postgres y Oracles,
servidores Apache, y sus distintas posibilidades de uso en la WEB.
Según
la Free Software Foundation s/f: ``Software Libre'' se refiere a la libertad
de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar
el software. De modo más preciso, se refiere a cuatro libertades de los
usuarios del software:
·
La libertad de usar el programa, con cualquier
propósito (libertad 0).
·
La libertad de estudiar cómo funciona el programa,
y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una
condición previa para esto.
·
La libertad de distribuir copias, con lo que puedes
ayudar a tu vecino (libertad 2).
·
La libertad de mejorar el programa y hacer públicas
las mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad
3). El acceso al código fuente es un requisito previo para esto.
Software libre es la denominación del
software que brinda libertad a los usuarios sobre su producto adquirido y por
tanto, una vez obtenido, puede ser usado, copiado, estudiado, modificado y
redistribuido libremente.

![]()
Diferencia entre Postgres
y ORACLE

·
Postgre es un servidor de base de datos
relacional orientada a objetos de software libre.
Oracle es un sistema de gestión de base de datos
relacional (o RDBMS por el acrónimo en inglés de Relational Data Base
Management System), fabricado por Oracle Corporation.

Oracle requiere comprar software adicional y no puedes
desarrollar tus propios tipos.
Oracle no tiene la infraestructura OR y la simula
con productos adicionales.
Oracle tiene consultas en paralelo, que PostgreSQL
aún no tiene.
Oracle simula parcialmente el comportamiento
proveyendo paquetes, pero no tienen el alcance de PostgreSQL.
Fortalezas y
Debilidades Postgres
|
Fortalezas |
Debilidades |
|
Seguridad en el acceso a la Base de
Datos, a nivel de red. |
Consume bastantes
recursos y carga más el sistema |
|
Servidor de base de
datos relacional orientada a objeto publicado bajo licencia libre BSD |
Postgre no soporta consultas en paralelo. |
|
Tiene cinco
lenguajes de programación procedurales |
No posee muchas herramientas en el mercado |
|
Es posible
desarrollar tus propios tipos de datos |
Por su arquitectura de diseño se necesita
aumentar el número de CPU's y la cantidad de RAM. |
|
Presenta mejores
ventajas (innovación y libertad ante todo) |
Número de lenguajes en los que se puede programar funciones: aproximadamente
10 (pl/pgsql, pl/java,pl/perl, pl/python, tcl,
pl/php, C, C++, Ruby, etc.). |
|
Bajo Costo Total de
Operación |
|
|
Mínimos requerimientos de
administración. |
|
|
Instalación ilimitada |
|
|
No existe la posibilidad de ser auditado para verificar cumplimiento
de licencia en ningún momento. |
|
|
Conformancia a Estándares ANSI |
|
|
Flexibilidad para hacer investigación y desarrollo sin necesidad de
incurrir en costos adicionales de licenciamiento. |
Ubuntu, Apache. Características.
Ubuntu es un
sistema operativo de código abierto desarrollado en torno al kernel Linux. La filosofía
Ubuntu se basa en los siguientes principios: que el software debe ser gratuito,
que la gente debe poder usar el software en su lengua materna y debe poder
hacerlo independientemente de cualquiera sean sus limitaciones; además, la
gente debe ser libre de personalizar o modificar el software del modo que crea
más conveniente.
Por esas razones:
Basada en Debian GNU/Linux,
Ubuntu concentra su objetivo en la facilidad de uso, la libertad de uso, los
lanzamientos regulares (cada 6 meses) y la facilidad en la instalación. Ubuntu pretende crear una distribución que
proporcione un sistema GNU/Linux actualizado y coherente para la informática de
escritorio y servidores Ubuntu es patrocinado por Canonical Ltd., una empresa privada fundada y
financiada por el empresario sudafricano Mark Shuttleworth.
A diferencia de la mayoría de las
distribuciones, que vienen con una enorme cantidad de software que pueden o no
ser de utilidad, la lista de paquetes de Ubuntu se ha reducido para incluir
solo aplicaciones importantes y de alta calidad.
Características
·
Basada en la distribución Debian.
·
Disponible en 4 arquitecturas: Intel x86,
AMD64, PowerPC,
SPARC
(para esta última sólo existe la versión servidor).
·
Al igual que casi cualquier distribución
basada en Linux, Ubuntu es capaz de actualizar a la misma vez todas las
aplicaciones instaladas en la máquina a través de repositorios,
al contrario de otros sistemas operativos comerciales,
donde esto no es posible.
·
Esta distribución ha sido y está siendo
traducida a numerosos idiomas, y cada usuario es capaz de aportar
voluntariamente a esta causa, a través de Internet.[]
·
Posee una gran colección de aplicaciones
útiles y sencillas para la configuración de todo el sistema, a través de una
interfaz gráfica útil para usuarios que se inician en Linux.
·
Cualquier usuario que conozca el idioma inglés
y tenga una conexión a Internet, es capaz de presentar sus ideas para las
futuras versiones de Ubuntu en la página wiki oficial de la comunidad del
proyecto.
·
Las versiones estables se liberan cada 6
meses y se mantienen actualizadas en materia de seguridad hasta 18 meses
después de su lanzamiento.
·
La nomenclatura de las versiones no obedece
principalmente a un orden de desarrollo, se compone del dígito del año de
emisión y del mes en que esto ocurre. La versión 4.10 es de octubre de 2004, la
5.04 es de abril de 2005, la 5.10 de octubre de 2005, la 6.06 es de junio de
2006, la 6.10 es de octubre de 2006, la 7.04 es de abril de 2007 y la 7.10 es
de octubre de 2007.
·
El entorno de escritorio oficial es Gnome y se sincronizan con
sus liberaciones. Existen versiones con KDE y otros escritorios, que pueden
añadirse una vez instalado el Ubuntu oficial con Gnome.
·
Para centrarse en solucionar rápidamente los
bugs, conflictos de paquetes, etc. se decidió eliminar ciertos paquetes del
componente main, ya que no son
populares o simplemente se escogieron de forma arbitraria por gusto o sus bases
de apoyo al software libre. Por tales motivos inicialmente KDE no se encontraba
con más soporte de lo que entregaban los mantenedores de Debian en sus
repositorios, razón por la que se sumó la comunidad de KDE distribuyendo la
distro llamada Kubuntu.
·
El navegador web oficial es Mozilla Firefox.
·
El sistema incluye funciones avanzadas de
seguridad y entre sus políticas se encuentra el no activar, de forma
predeterminada, procesos latentes al momento de instalarse. Por eso mismo, no
hay un firewall predeterminado, ya que no existen servicios que puedan atentar
a la seguridad del sistema.
·
Para labores/tareas administrativas en
terminal incluye una herramienta llamada sudo (similar al Mac OS X), con la que
se evita el uso del usuario root
(administrador).
·
Mejora la accesibilidad y la
internacionalización, de modo que el software está disponible para tanta gente
como sea posible. En la versión 5.04, el UTF-8 es la codificación de caracteres
en forma predeterminada.
·
Ubuntu no
cobra honorarios por la suscripción de mejoras de la "Edición
Enterprise".
Apache
El servidor
HTTP Apache es un software (libre) servidor HTTP de código abierto para plataformas
Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el
protocolo HTTP/1.1.
La historia de Apache se remonta
a febrero de 1995, donde empieza el
proyecto del grupo Apache, el cual esta basado en el servidor Apache httpd de la
aplicación original de NCSA. El desarrollo de esta aplicación original se
estancó por algún tiempo tras la marcha de Rob McCool por lo que varios
webmaster siguieron creando sus parches para sus servidores web hasta que se
contactaron vía email para seguir en conjunto el mantenimiento del servidor
web, fue ahí cuando formaron el grupo Apache.
Fueron Brian Behlendorf y Cliff
Skolnick quienes a través de una lista de correo coordinaron el trabajo y lograron
establecer un espacio compartido de libre acceso para los desarrolladores.
Fue así como fue creciendo el
grupo Apache, hasta lo que es hoy :) Aquella primera versión y sus sucesivas
evoluciones y mejoras alcanzaron una gran implantación como software de
servidor inicialmente solo para sistemas operativos UNIX y fruto de esa
evolución es la versión para Windows.
Apache es una muestra, al igual
que el sistema operativo Linux (un Unix desarrollado inicialmente para PC), de
que el trabajo voluntario y cooperativo dentro de Internet es capaz de producir
aplicaciones de calidad profesional difíciles de igualar.
La licencia Apache es una
descendiente de la licencias BSD, no es GPL. Esta licencia te permite hacer lo
que quieras con el código fuente (incluso forks y productos propietarios)
siempre que les reconozcas su trabajo.
Características
·
Es multiplataforma, aunque idealmente está preparado para
funcionar bajo linux.
·
Muy sencillo de configurar.
·
Corre en una multitud de Sistemas Operativos, lo que lo hace
prácticamente universal.
·
Es Open-source.
·
Muy útil para proveedores de Servicios de Internet que
requieran miles de sitios pequeños con páginas estáticas
·
Amplias librerías de PHP y Perl a disposición de los
programadores.
·
Posee diversos módulos que permiten incorporarle nuevas
funcionalidades, estos son muy simples de cargar.
·
Apache trabaja con gran cantidad de Perl, PHP, TCL, Phython y otros
lenguajes de script. Perl destaca en el mundo del script y Apache utiliza su
parte del pastel de Perl tanto con soporte CGI como con soporte mod perl.
También trabaja con Java y páginas jsp. Teniendo todo el soporte que se
necesita para tener páginas dinámicas.
Postgres con Linux.
Características
![]()

PostgreSQL es una base de datos
relacional, distribuida bajo licencia BSD y con su código fuente disponible
libremente. Es el motor de bases de datos de código abierto más potente del
momento y en sus últimas versiones empieza a no tener que envidiarle nada a
otras bases de datos comerciales.
Sus características técnicas la
hacen una de las bases de datos más potentes y robustas del mercado. Su
desarrollo comenzó hace más de 15 años, y durante este tiempo, estabilidad,
potencia, robustez, facilidad de administración e implementación de estándares
han sido las características que más se han tenido en cuenta durante su
desarrollo. En los últimos años se han concentrado mucho en la velocidad de
proceso y en características demandadas en el mundo empresarial.
PostgreSQL es
ampliamente considerado como una de las alternativas de sistema de bases de
datos de código abierto
La
última serie de producción es la 8.2, siendo la última versión disponible en el
momento de escribir este artículo la 8.2.4. PostgreSQL se puede ejecutar en la
gran mayoría de sistemas operativos existentes en la actualidad, entre ellos
Linux y UNIX en todas sus variantes (AIX,
BSD,
HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y Windows. Las características más
importantes y soportadas son:
Otra característica muy a tener en
cuenta es lo bien que PostgreSQL funciona con grandes cantidades de datos y una
alta concurrencia, con muchos usuarios accediendo a la vez el sistema. En un
futuro escribiremos un artículo sobre esto.
PostgreSQL está disponible en
cualquiera de las principales distribuciones de Linux. Existen paquetes RPM og
DEB, que se distribuyen con estas distribuciones y que se pueden instalar de la
manera por defecto típica en cada distribución.
Historia de Postgres
·
Ingres (1977-1985)
Universidad de Berkeley
·
Postgres (1986–1994) Posterior a Ingres, Michael Stonebraker
·
Postgres95 (1995) Andrew Yu & Jolly Chen
publican el código en Internet.
·
PostgreSQL
6 (1996–1999) PostgreSQL Global Development Group
·
PostgreSQL 7 (1999–2004) Foreing Key, mejoras
en el rendimiento, etc.
·
PostgreSQL 8 (2005)
Ventajas
Diseñado para ambientes de alto volumen:
·
PostgreSQL usa una
estrategia de almacenamiento de filas llamada MVCC para conseguir una mejor
respuesta en ambientes de grandes volúmenes.
·
Los principales
proveedores de sistemas de bases de datos comerciales usan también esta
tecnología, por las mismas razones.
Herramientas gráficas de diseño y administración de BD
Existen varias herramientas gráficas de alta calidad para administrar
las bases de datos (pgAdmin , pgAccess) y para hacer diseño de bases de datos
(Tora , Data Architect).
Soporte SQL92/SQL99
PostgreSQL implementa un subconjunto extendido de los estándares SQL92 y
SQL99
Transacciones
Permiten el paso entre dos estados consistentes manteniendo la
integridad de los datos.
BEGIN WORK;
.......
Sentencias SQL;
.......
COMMIT WORK;
Integridad referencial
PostgreSQL soporta integridad referencial, la cual es utilizada para
garantizar la validez de los datos de la base de datos PK y FK
Bloqueos de tabla y filas
Postgres ofrece varios modos de bloqueo para controlar el acceso
concurrente a los datos en tablas.
Algunos de estos modos de bloqueo los adquiere PostgreSQL
automáticamente antes de la ejecución de una declaración, mientras que otros
son proporcionados para ser usados por las aplicaciones.
Constraints y triggers
Tienen la función de mantener la integridad y consistencia en la BD.
Ejecución de acciones antes o después de un evento de BD.
Múltiples tipos de datos predefinidos
Como todos los manejadores de bases de datos, PostgreSQL implementa los
tipos de datos definidos para el estándar SQL3 y aumenta algunos otros.

Soporte de tipos y funciones de usuario
PostgreSQL soporta operadores, funciones métodos de acceso y tipos de
datos definidos por el usuario.
Incorpora una estructura de datos Array.
Conectividad TCP/IP, JDBC y ODBC
Interfaz con diversos lenguajes
![]()
C, C++, Java, Delphi, Python, Perl, PHP, Bash
Análisis y diseño
de un sistema de información usando Postgres
El análisis y diseño de sistemas se refiere al proceso de examinar la
situación de una empresa con el propósito de mejorar con métodos y
procedimientos más adecuados, Es el
proceso de clasificación e interpretación de hechos, diagnostico de problemas y
empleo de la información para recomendar mejoras al sistema. Se debe analizar los requisitos tecnológicos y
funcionales, considerando la elección de una plataforma tecnológica que tenga
la capacidad de dar una respuesta inmediata a sus futuros usuarios además de
ser estable, con visión de futuro y con una alta operatividad.

Sin
embargo, la elección de la plataforma tecnológica no afecta esta primera fase,
ya que aquí se utilizan metodologías estándares como el Lenguaje de Modelado
Unificado (UML), el cual incluye una serie de diagramas (casos de uso,
actividades, colaboración, etc.) que muestran las entidades que componen el
sistema, además permite modelar el comportamiento del sistema, las diferentes
funciones que realiza y las representaciones del papel que cumple el usuario
dentro del sistema.
Postgre
es seleccionado para un sistema de información
que requieran un manejador de Base de Datos GNU, robusto, estable, un
motor con soporte para transacciones, soporte de triggers y procedimientos
almacenados, lenguaje procedimental (PL/SQL), y una alta disponibilidad y
recuperación de fallas.
Plan de migración de ORACLE a Postgres para una empresa
administrativa
Antes de realizar un
plan de migración se deben considerar las siguientes actividades, aunque
debería analizarse la factibilidad de la
migración antes de proceder:
1. Analizar la estructura de la Base de Datos actual.
2. Respaldar la Base de Datos actual
3. Creación de Estructuras de Base de datos nueva.
4. Planificación de las rutinas de migración.
5. Restaurar los datos de la base de datos anterior en la nueva
base de datos.
6. Verificar la consistencia de datos antes de eliminar las
estructuras anteriores.
7. Realizar pruebas de los sistemas con las bases de datos a fin
de certificar la funcionalidad.
En el Proceso de
Migración se debe manejar una aplicación en el medio de las dos bases, como por
ejemplo Powerbuilder que tiene unos
objetos pipeline que copian directamente de una base de datos a otra, por
supuesto hay que crear el pipeline y configurarlo para que copie de la base A a
la base B y que haga commit cada x cantidad de filas.
De otra manera también
se podría usar cualquier lenguaje de programación para realizar los algoritmos
de traspaso de datos de una base a otra.
Seria una aplicación
con dos conexiones a dos bases, una origen A y una
destino B, vía ODBC o con drivers nativos, en donde vas a ir haciendo Select en
A e Insert en B.
Se puede programar por
niveles a la migración es decir, primero pasar de una base a otra las tablas de
dominio y después las tablas que tienen relaciones.
En cuanto a los
procedimientos y triggers (Mysql no tiene) no queda mas remedio q
reprogramarlos
Para realizar una migración de Oracle a Postgre
también se plantean dos formas:
-Crear
archivos planos con cada una de tus tablas, delimitando cada campo con un
carácter o un tab. Luego cargar las tablas en Postgre con el comando \copy.
- Haz un dump de tus datos, de tal
manera que generes el esquema de tu BDi (creación de tablas, índices,
constrains, etc.). Carga tu dump en postgre con el comando \i.
Caso Práctico: Suponga que a usted lo contratan como
Asesor para elaborar un sistema de información de Ventas de Tickets vía WEB
usando Postgres para un Stadium de
Béisbol. Cuales serian sus recomendaciones y pasos a seguir.
Para Comenzar a
desarrollar un Sistema de Información, se deben considerar las siguientes
fases:
·
Adecuación y Puesta en marcha del servidor de datos
y aplicaciones
o Selección de las
necesidades del usuario respecto al sistema
.-Recopilación
y Análisis de los Requerimientos
.-Estudio de Factibilidad del sistema.
(Factibilidad Técnica, Operativa y
Económica)
o Diseñar el sistema
.-Diseño Conceptual de la Base de Datos
.-Diseño Lógico de la Base de Datos
.-Sistemas de seguridad a implementar.
o Creación del banco que servirá al sistema
o Implantación Física
del sistema servidor: instalación de las aplicaciones y herramientas necesarias
para que el sistema funcione.
·
Implantación del Acceso al Sistema por parte de los
usuarios inmediatos (puesta en marcha de la internet)
·
Creación del Portal de entrada WEB a la información
![]()
-
Buscar toda la
información necesaria para poder realizar el diseño de la base de datos, ya que
se debería normalizar para que no existan campos redundantes.
-
Se debería implantar
en una maquina que posee buen espacio en disco,
ya que PostgreSQL es una base de datos, y como cualquier base de datos,
los requerimientos crecerán a medida que incremente el uso de PostgreSQL.
-
Sobre una máquina,
Linux media, necesitará aproximadamente 50 MB de disco duro para desempaquetar
el código fuente, y otros 60 MB para compilarlo. Si selecciona ejecutar los
test de regresión, necesitará 30 MB adicionales. Dependiendo de las opciones de
configuración que elija, PostgreSQL puede tomar de
-
Planificar con
anticipación la cantidad de datos que va a almacenar.
-
Antes de instalar PostgreSQL, se recomienda que
compruebe su sistema de archivos para asegurarse de que tiene suficiente
espacio en disco en la partición sobre la cual pretende instalar
-
Este sistema es
vía WEB por lo tanto se debe tener un servidor Web como apache el cual debe ser
configurado de acuerdo a los requerimientos del usuario.
Los Módulos con los
cuales contará el sistema son los siguientes:
·
Módulo de Usuarios / Clientes: En este
módulo se tiene un perfil de los usuarios que están registrados en el sistema y
sus datos principales como: nombre y apellido, cedula de identidad, teléfonos,
dirección, E-mail, Tipo de Tarjeta de Crédito, número de tarjeta de crédito,
vencimiento de tarjeta de crédito y código de seguridad de la Tarjeta de
Crédito.
·
Módulo de Reservas En este modulo los clientes registrados pueden
reservar sus entradas a las localidades del estadio utilizando igualmente el
modulo del plano del estadio en donde se podrá ver las localidades disponibles,
se recomienda igualmente que el tiempo de reservación de las localidades sea de
un lapso determinado.
·
Módulo de Compras: La integración con el medio de pago
seguro se procedería a la generación del cargo en la cuenta asociada
determinada por el cliente a fin de autorizar la generación de la compra del
cliente y su posterior envío a través de Modulo de envío de compras el cual
estará relacionado con algún sistema de envíos personalizados local con el que
realice convenio, también pudiese manejarse que el cliente adquiera su
boletería directamente por taquilla por lo que se podría manejar el pago en
efectivo.
·
Módulo
de Reportes: Desde este módulo se
pueden diseñar y producir listados o reportes basados en las diferentes tablas
de la base de datos. Los reportes, además proporcionara información específica sobre cada área,
también pueden utilizarse como estadísticas para la toma de decisiones.
·
Modulo de Respaldo y
mantenimiento: diariamente se prepararía una copia de respaldo de la base de datos
además funcionaria un Módulo de
mantenimiento preventivo y correctivo de las bases de datos del sistema.
Infografía
www.gnu.org/philosophy/free-sw.es.htm este link muestra la definición de Software libre.
www.es.wikipedia.org/wiki/Apache_http_server a través de este link encontramos lo
relacionado con el servidor APACHE.
www.mailxmail.com/curso/informatica/configuracionapache/capitulo1.htm Apache es un servidor web
gratuito, potente y que nos ofrece un servicio estable y sencillo de mantener y
configurar.
www.ubuntu-es.org/ Distribución basada
en Debian. Noticias, tutoriales, consejos, descargas y foro
Introducción a PostgreSQL -
Instalación e inicialización | El ...
PostgreSQL se puede ejecutar en la gran mayoría de sistemas operativos
existentes en la actualidad, entre ellos Linux y UNIX en todas sus ...
![]()