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. 

 

 

 

 

 

 

 

 

  1. Que es Software Libre?

 

 

 

 

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 Paz en 1984 por sus luchas en contra del Apartheid en Sudáfrica. El sudafricano Mark Shuttleworth, mecenas del proyecto, se encontraba muy familiarizado con la corriente. Tras ver similitudes entre los ideales de los proyectos GNU, Debian y en general con el movimiento del software libre, decidió aprovechar la ocasión para difundir los ideales de Ubuntu. El eslogan de Ubuntu –“Linux para seres humanos” (en inglés "Linux for Human Beings"), resume una de sus metas principales: hacer de Linux un sistema operativo más accesible y fácil de usar.

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),

Las características mas destacadas son:

-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

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[] 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 la Apache Software Foundation.

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 la API de programación de módulos, para el desarrollo de módulos específicos.

-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 la Informática.

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.

Bibliografía.

1.- Sherman, Joshua. Base de datos.

Hosted by www.Geocities.ws

1