
UNIVERSIDAD YACAMBÚ
VICERRECTORADO DE ESTUDIOS VIRTUALES
ESPECIALIZACIÓN EN GERENCIA
Mención: Redes y Telecomunicaciones
Asignatura: Sistema de Información
Gerencial
PROFESOR:
YAROS PÉREZ
Trabajo Nº 4
Diseño de Sistemas de Información usando Postgres
Autores:
Autor: Ing. Carmen Ileana Medrano
Autor: Ing. Miguel Torres Valbuena
Contenido:
1.- Introducción.
2.-Que es Software Libre?.
3.- Cual es la diferencia entre Postgres y ORACLE.
4.- Fortalezas y
Debilidades Postgres
5.- Ubuntu, Apache. Características.
6.- Como seria el análisis y diseño de un sistema de información usando Postgres.
7.-Elaborar
un plan de migración de ORACLE a Postgre para una
empresa administrativa.
8.-
Caso de Estudio.
9.-
Infografia.
10.-
Bibliografía.
INTRODUCCIÓN
PostgreSQL, es el mas avanzado sistema
de administrador de base de datos de código abierto, (open
source), tiene todas las características de un
sistema comercial, soporta funcionalidades avanzadas como: Vistas,
Procedimientos Almacenados y Disparadores (triggers),
además tiene un sofisticado mecanismo de seguridad que impide el acceso no
autorizado a la información.
PostgreSQL
es licenciado bajo BSD (Distribución de Sofware de Berkley), esto lo hace libre para todo uso, incluyendo
comercial.

Definición legal
Programa de computación cuya licencia garantiza al usuario acceso al
código fuente del programa y lo autoriza a ejecutarlo con cualquier propósito,
modificarlo y redistribuir tanto el programa original como sus modificaciones
en las mismas condiciones de licenciamiento acordadas al programa original, sin
tener que pagar regalías a los desarrolladores previos (Decreto 3390, artículo
2).
¿Qué son los Programas Informáticos
Libres?
Los Programas Informáticos Libres son
aquellos que cumplen con las siguientes cuatro libertades básicas:
Libertad Cero: "usar el programa con cualquier
propósito". Es decir, el ejercicio de esta libertad implica que lo podemos
utilizar con cualquier fin, ya sea educativo, cultural, comercial, político,
social, etc. Esta libertad deriva de que hay ciertas licencias que restringen
el uso del software a un determinado propósito, o que prohíben su uso para
determinadas actividades.
Libertad Uno: "Estudiar como funciona el programa,
y adaptarlo a sus necesidades". Significa que podemos estudiar su
funcionamiento (al tener acceso al código fuente) lo que nos va a permitir,
entre otras cosas: descubrir funciones ocultas, averiguar como realiza
determinada tarea, descubrir que otras posibilidades tiene, que es lo que le
falta para hacer algo, etc. El adaptar el programa a mis necesidades implica
que puedo suprimirle partes que no me interesan, agregarle partes que considero
importantes, copiarle una parte que realiza una tarea y adicionarla a otro
programa, etc.
Libertad Dos: "Distribuir copias". Quiere decir que somos
libres de redistribuir el programa, ya sea gratis o con algún costo, ya sea por
email, FTP o en CD, ya sea a una persona o a varias,
ya sea a un vecino o a una persona que vive en otro país, etc.
Libertad Tres: "Mejorar el programa, y liberar las mejoras al
publico". Es la libertad de hacer mejor el programa, es decir que podemos
hacer menores los requerimientos de hardware para funcionar, que tenga mayores
prestaciones, que ocupe menos espacio, que tenga menos errores, entre otras
modificaciones. El poder liberar las mejoras al publico quiere decir que si
realizamos una mejora que permita un requerimiento menor de hardware, o que
haga que ocupe menos espacio, soy libre de poder redistribuir ese programa
mejorado, o simplemente proponer la mejora en un lugar publico (un foro de
noticias, una lista de correo, un sitio Web, un FTP, un canal de Chat).
2.- Cual es la diferencia entre Postgres y ORACLE.


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.
Se considera a Oracle como uno de los sistemas de bases de datos más
completos, destacando su:
PostgreSQL es un
servidor de base de datos relacional orientada a objetos de software libre,
liberado bajo la licencia BSD.
Como
muchos otros proyectos open source,
el desarrollo de PostgreSQL no es manejado por
una sola compañía sino que es dirigido por una comunidad de desarrolladores y
organizaciones comerciales las cuales trabajan en su desarrollo. Dicha comunidad
es denominada el PGDG (PostgreSQL
Global Development Group).
Las
diferencias mas relevantes son las siguientes:
- PostgreSQL
amplía el concepto de programación procedural para
soportar funciones en cualquier parte (como procedimiento, como tabla, como
operador, como selector, como filtro), mientras que Oracle
sólo permite usarlas como procedimiento.
-Oracle simula
parcialmente el comportamiento proveyendo paquetes, pero no tienen el alcance
de PostgreSQL.
-PostgreSQL
soporta nativamente tipos de datos no escalares, con sus operadores, y ofrece
la posibilidad de crear tus propios tipos de datos y operadores.
-PostgreSQL
puede crear índices lineales (B-Tree), presenciales (Hash)y espaciales (R-Tree). Oracle sólo puede los dos primeros, se recomienda no usar
el segundo, y si se quiere el tercer tipo se tiene que comprar software
adicional.
-Oracle tiene
muchísimos más parámetros de configuración que PostgreSQL,
muchos de ellos son secretos, no están documentados, y sólo los conoce la gente
de soporte de Oracle que los utiliza para ayudarte
solamente si tienes el contrato de mantenimiento al día.
-PostgreSQL es
software libre, Oracle es software propietario y
además, es costoso.
-En PostgreSQL
se tiene la posibilidad de escribir tus propias rutinas para la construcción de
índices, con Oracle no.
-Oracle
requiere comprar software adicional y no puedes desarrollar tus propios tipos.
-PostgreSQL se
instalan de forma sencilla muy parecida a MYSQL. Oracle
resulta muy difícil de instalar.
-PostgreSQL es
una base de datos Objeto Relacional, mientras que Oracle
es sólo una base de datos Relacional.
-Oracle no
tiene la infraestructura OR y la simula con productos adicionales.
-Oracle tiene
consultas en paralelo, que PostgreSQL aún no tiene.
-PostgreSQL
tiene cinco lenguajes de programación procedurales,
algunos sumamente especializados y avanzados como PL/perl
y PL/R, mientras que Oracle sólo tiene uno.
3.- Fortalezas y Debilidades Postgres
PostgreSQL es un sistema administrador de base de datos de código libre “open source”, comparable en
funcionamiento con sistemas comerciales de la talla de Oracle,
Sybase o DB2, es usado en grandes organizaciones,
universidades y e aplicaciones de misión critica.
Las
fortalezas que hacen tomar en cuenta a PostgreSQL al
momento de decidir por un sistema administrador de base de datos son:
-Posee
una gran escalabilidad. Es capaz de ajustarse al numero
de CPUs, y a la cantidad de memoria que posee el
sistema de forma optima, siendo capaz de soportar una mayor cantidad de
peticiones simultaneas de manera correcta.
- Desde
la version 7 soporta el manejo de trasacciones,
integridad referencial haciendo uso y respetando restricciones del tipo:
Primaria, Foranea, no nulo, entre otras.
- El
soporte para disparadores y procedimientos almacenados es comparable un sistema
comercial, ademas postgreSQL
incluye un propio lenguaje como PL/pgSQL.
- El
soporte a estandares de SQL esta garantizado con
SQL99 y SQL92, entre otros.
- En los
ambientes de producción donde es usado PostgreSQL,, ha obtenido resultados importantes, que lo catalogan como
un sistema estable, de alto rendimiento y de gran flexibilidad.
- PostgreSQL puede ser instalado en la mayoría de los
sistemas Unix, además de dar soporte a ambientes
Windows, permitiendo a desarrolladores migrar aplicaciones entre plataformas de
manera transparente.
- Por
ser software libre, permite que sea instalado en muchos lugares, es decir la
instalación sea limitada, ya que no se requieren licencias adicionales de instalacion.
Debilidades:
PostgresSQL es un magnifico sistema administrados de bases de
datos, capaz de competir con muchos sistemas comerciales, aunque carece de
algunas características, como por ejemplo un conjunto de herramientas que
permitan una facil gestion
de los usuarios y de las bases de datos que contenga el sistema. Por otro lado,
la velocidad de respuesta que ofrece este sistema con base de datos
relativamente pequeñas puede parecer un poco deficiente.
Otra desventaja es la lentitud al importar datos desde archivos
de texto, generando una disminución del rendimiento por registro que en algunos
casos puede ser muy grande.
El sistema administrador de
base de datos es un sistema no distribuido.
No existe esfuerzo
focalizado de marketing.
4.-Ubuntu,
Apache. Caracteristicas.
Ubuntu: es una distribución Linux que ofrece un sistema operativo predominantemente
enfocado a computadoras de escritorio aunque también proporciona soporte para
servidores. Es una de las más importantes distribuciones de GNU/Linux a nivel
mundial.
Basada en Debian GNU/Linux, Ubuntu
concentra su objetivo en la facilidad y libertad de uso, la facilidad de
instalación y los lanzamientos regulares (cada 6 meses: las .04 en abril, y,
las .10 en octubre). Ubuntu es patrocinado por
Canonical Ltd., una empresa privada fundada y
financiada por el empresario sudafricano Mark Shuttleworth.
El nombre de la
distribución proviene del concepto zulú y xhosa de ubuntu, que significa "humanidad hacia
otros" o "yo soy porque nosotros somos". Ubuntu
es un movimiento sudafricano encabezado por el obispo Desmond
Tutu, quien ganó el Premio Nobel
de
La versión más
reciente -8.04- fue lanzada para pre-órdenes desde su
web el 21 de abril del 2008, para ser entregadas en
aproximadamente 3 semanas después de su salida.[]
Ubuntu está basado en la distribución Debian
GNU/Linux y soporta oficialmente dos arquitecturas de hardware: Intel x86,
AMD64. Sin embargo ha sido portada extraoficialmente a cinco arquitecturas más:
PowerPC,[][] SPARC (versión "alternate"),[][] IA-64,[][] Playstation 3[][] y HP PA-RISC.[]
Al igual que casi
cualquier distribución basada en Linux, Ubuntu es
capaz de actualizar a la vez todas las aplicaciones instaladas en la máquina a
través de repositorios, a diferencia 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
colaborar voluntariamente a esta causa, a través de Internet.[]
Los
desarrolladores de Ubuntu se basan en gran medida en
el trabajo de las comunidades de Debian, GNOME y KDE
(como es el caso de las traducciones),
-Proyecto libre 100%. Pese a estar esencialmente
patrocinado por una empresa, la distribución se declara públicamente 100% libre
y perteneciente a la comunidad Ubuntu.
-Basado en Debian.
-Amplio equipo de desarrollo (38 empleados de
Canonical + multitud de voluntarios).
-Gran aceptación entre la comunidad del software
libre.
-Dirigida al escritorio de propósito general.
-Detección y configuración de hardware de las más
avanzadas y actualizadas.
-Orientada a los distintos lenguajes del mundo y a
facilitar y agilizar su traducción.
-Pensada desde el principio para la fácil creación de
distribuciones derivadas (herramientas colaborativas
ínter-distribuciones presentes en Launchpad, la suite
de herramientas de desarrollo/mantenimiento/traducción de Ubuntu).
-Acuerdos de colaboración establecidos con Gnome y con otros “upstream developers”.
-Integración en la maquinaria de depuración de Debian y de algunos “upstream developers”.
-Ciclo de liberación definido:
-Actualizaciones críticas y de seguridad durante 18
meses para cada versión
-Línea de trabajo para hacer Ubuntu
conforme a LSB 2.0
ApacheEl
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[]
y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó
inicialmente en código del popular NCSA HTTPd 1.3,
pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf eligió ese nombre porque quería que tuviese la
connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache
fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y
en esos momentos la preocupación de su grupo era que llegasen las empresas y
"civilizasen" el paisaje que habían creado los primeros ingenieros de
internet. Además Apache consistía solamente en un
conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor
"parcheado").
El
servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de
Apache
presenta entre otras características mensajes de error altamente configurables,
bases de datos de autenticación y negociado de contenido, pero fue criticado
por la falta de una interfaz gráfica que ayude en su configuración.
Apache
tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más
usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado
en el 70% de los sitios web en el mundo, sin embargo
ha sufrido un descenso en su cuota de mercado en los últimos años.
(Estadísticas históricas y de uso diario proporcionadas por Netcraft[2]
).
La
mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan
sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin
embargo, algunas se pueden accionar remotamente en ciertas situaciones, o
explotar por los usuarios locales malévolos en las disposiciones de
recibimiento compartidas que utilizan PHP como módulo de Apache.
En fin las principales características son:
-Multiplataforma
-Es un servidor de web
conforme al protocolo HTTP/1.1
-Modular: Puede ser adaptado a diferentes
entornos y necesidades, con los diferentes módulos de apoyo que proporciona, y
con
-Basado en hebras en la versión 2.0
-Incentiva la realimentación de los
usuarios, obteniendo nuevas ideas, informes de fallos y parches para la
solución de los mismos.
-Se desarrolla de forma abierta
-Extensible: gracias a ser modular se han
desarrollado diversas extensiones entre las que destaca PHP, un lenguaje de
programación del lado del servidor.
5.-
POSTGRES CON LINUX. CARACTERÍSTICAS.
-Sistema Administrador de Base de Datos Relacional: PostgreSQL es un
manejador de base de datos objeto-relacional, además es capaz de manejar
complejas rutinas y reglas como: Control de concurrencia, soporte multi-usuario, transacciones, optimización de consultas,
herencia etc.
-Extensibilidad: PostgreSQL
soporta operadores, funciones y tipos de datos definidos por el usuario.
- Soporta el Estándar SQL: PostgreSQL soporta la especificación SQL99 e incluye
características avanzadas como las uniones (joins)
SQL92.
- Integridad Referencial: El motor de
almacenamiento de PostgreSQL da soporte a integridad
referencial, haciendo uso de mecanismos para definir claves primarias y
foráneas.
- Multiples API’S: La
flexibilidad del API de PostgreSQL ha permitido a los
vendedores proporcionar soporte al desarrollo para PostgreSQL.
-Lenguajes Procedurales.
-MVCC: Control de Concurrencia Multi-Version, es la tecnología
de PostgreSQL se usa para evitar bloqueos
innecesarios.
-Cliente/Servidor: PostgreSQL
usa una arquitectura cliente/servidor.
- Tiene una gran variedad
de características operacionales: transacciones, cumple completamente con ACID,
disparadores, restricciones, respaldo y recuperación, integridad referencial,
uniones externas, orientados a objetos, soporte para unicote, soporte nativo.
6.- Como seria el análisis y diseño de un
sistema de información usando Postgres.
El
Análisis y Diseño es una de las fases más importantes que se plantean ante la
ejecución de cualquier sistema de información (SI), ya que se deben 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 e interoperable.
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.
Postgres
es seleccionado para SI 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
7.-Elaborar
un plan de migración de ORACLE a Postgre para una
empresa administrativa.
-Elaborar un plan de
migración de una base de datos es un proceso complejo que debe ser ejecutado por
un administrador de base de datos o un usuario sofisticado:
-Diagnosticar la base la
estructura de la base de datos.
- Realizar respaldo de la
base de datos (backup).
- Ejecutar los métodos
correspondientes para la creación de una estructura de base de datos nueva.
- Generar una base de datos
nueva.
-Importar la estructura y
los datos hacia la base de datos nueva.
-Validar los datos
importados.
- Realizar pruebas en el sistema para verificar su correcto
funcionamiento.
8.-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 las entradas de un stadium de Futbol. Cuales serian sus recomendaciones y pasos a
seguir.
Las recomendaciones a seguir serian las siguientes:
1.- Utilizar como sistema operativo tipo UNIX (Linux, all BSDS, HP-UX,AIX,OSX,UNIXWARE
Y NETWARE……..).
2.- Utilizar PostgreSQL versión 7.x como mínimo es más estable que la
versión 6.x; además de aprovechar al máximo todos los beneficios que brinda PostgreSQL como son integridad de datos, el MVCC, manejo de
esquemas(schema),el comando /d para mostrar la
estructura de las tablas etc.
3.- Tomar en cuenta tres aspectos fundamentales para tener altos
niveles de seguridad:
- Seguridad de los archivos
de datos de PostgresSQL.
- Seguridad en los accesos
de clientes (ssl).
- Otorgar y denegar acceso
a tablas y usuarios.
4.-Modelado de la arquitectura completa del sistema.
Arquitectura de PostgreSQL:
Cliente1 SERVIDOR
psql
POSTGRESQL
Postmaster postgres
ODBC
Cliente2
![]()

JDBC
CLIENTEn
El
sistema consta de tres procesos: postmaster, es un
proceso demonio denominado “supervisor”, y siempre esta en ejecución para
garantizar el acceso a la base de datos, postgres, es
un proceso que se encarga de ejecutar las setencias
SQL, frontend; es un proceso que se ejecuta en la
maquina del cliente , permite a los usuarios ingresar setencias
SQL y enviarlas al servidor para su ejecución, adicionalmente recibe la
respuesta del servidor y la muestra a los clientes.
Un breve resumen del funcionamiento de PostgreSQL.
En la arquitectura de
funcionamiento de postgreSQL un proceso cliente se
conecta exactamente a un proceso servidor. El tiempo cuando se realizan estas
conexiones al servidor no son predecibles, PostgreSQL
implementa un proceso “supervisor” llamado postmaster
que corre en segundo plano esperando que surgan
peticiones por un puerto especifico (5432)TCP/IP.
Siempre que un pedido de
conexión es detectado el proceso “supervisor” crea y asigna un nuevo proceso
llamado postgres que es el encargado de manejar y dar
respuesta a las peticiones del proceso cliente. Normalmente, hay un postmaster en ejecución en cada maquina, aunque puede haber
varios en ejecución en una misma maquina, en este caso, cada postmaster debe usar un puerto y un directorio distinto
para trabajar.
Si existen peticiones de
consultas SQL concurrentes, se crea un proceso postgres
por cada una de ellas; el proceso postmaster es el
encargado de iniciar estos procesos. El numero máximo de procesos postgres que pueden iniciarse lo define el administrador de
base de datos.
Los procesos postgres cuando manejan accesos concurrentes hacen uso de
semáforos y comparten memoria para asegurar la integridad de datos.
Una vez que la conexión es
establecida, el proceso cliente envía sentencias SQL al servidor, el proceso
servidor (postgres) las procesa y retorna e resultado
al proceso cliente. Las consultas son trasmitidas al servidor en texto
plano.
INFOGRAFIA
1.- http://www.cnti.gob.ve/index.php?option=com_content&task=view&id=93
Excelente pagina creada por
el Ministerio del Poder Popular para las Telecomunicaciones y
2.- http://es.wikipedia.org/wiki/Oracle
Wikipedia nos ofrece un breve resumen del sistema de gestion de base de
datos Oracle
3.-http
://es.wikipedia.org/wiki/PostgreSQL
Wikipedia
nos ofrece un breve resumen de postgresql
4.-http://es.wikipedia.org/wiki/Ubuntu_(distribuci%C3%B3n_Linux)
Wikipedia
nos ofrece una página concreta y practica. de UBUNTU.