Header image
Trabajo 2
  Inicio .::.
   
 

Fortalezas y Debilidades de Postgre


Software libre | Diferencias entre... | Fortalezas... | Ubuntu, Apache... | Postgre con Linux...
Análisis... | Migrar... | Caso práctico | Conclusiones...


Fortalezas

PostgreSQL proporciona un gran número de fortalezas que normalmente sólo se encontraban en las bases de datos comerciales tales como DBase u Oracle. La siguiente es una breve lista de algunas de esas fortalezas

  • Como proyecto Open Source, PostgreSQL tiene otras Fortalezas: Proyecto de investigación: bien estructurado, documentado,  extensible. Licencia BSD. Grupo de desarrollo distribuido: PostgreSQL Global Development Group. Comunidad: gran cohesión,  mucha participación
  • DBMS Objeto-Relacional: 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 multi-usuario, optimización de consultas, herencia, y arrays.
  • Herencia: Las tablas pueden ser configuradas para heredar características de una tabla padre. Los datos son compartidos entre las tablas padre e hija(s). Las tuplas insertadas o eliminadas en la tabla hija serán insertadas o eliminadas en la tabla padre respectivamente.
  • Altamente Extensible: PostgreSQL soporta operadores, funcionales métodos de acceso y tipos de datos definidos por el usuario.
  • Soporte SQL Comprensivo: PostgreSQL soporta la especificación SQL99 e incluye características avanzadas tales como las uniones (joins) SQL92.
  • Integridad Referencial: PostgreSQL soporta integridad referencial, la cual es utilizada para garantizar la validez de los datos de la base de datos.
  • API Flexible: 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, Ruby, TCL, C/C++, y Pike.
  • Lenguajes Procedurales: 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: MVCC, o Control de Concurrencia Multi-Versión (Multi-Version Concurrency Control), es la tecnología que PostgreSQL usa para evitar bloqueos innecesarios.
  • Cliente/Servidor: 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.
  • Write Ahead Logging (WAL): 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 cualesquiera cambios 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.
  • Posee una gran escalabilidad. Es capaz de ajustarse al número de CPUs y a la cantidad de memoria que posee el sistema de forma óptima, haciéndole capaz de soportar una mayor cantidad de peticiones simultáneas de manera correcta (en algunos benchmarks se dice que ha llegado a soportar el triple de carga de lo que soporta MySQL).
  • Implementa el uso de rollback's, subconsultas y transacciones, haciendo su funcionamiento mucho más eficaz, y ofreciendo soluciones en campos en las que MySQL no podría.
  • Tiene la capacidad de comprobar la integridad referencial, así como también la de almacenar procedimientos en la propia base de datos, equiparándolo con los gestores de bases de datos de alto nivel, como puede ser Oracle.

Debilidades

Por contra, los mayores inconvenientes que se pueden encontrar a este gestor son:

  • Consume gran cantidad de recursos.
  • Tiene un límite de 8K por fila, aunque se puede aumentar a 32K, con una disminución considerable del rendimiento.
  • Es de 2 a 3 veces más lento que MySQL.
  • Consume bastantes recursos y carga más el sistema.
  • Por su arquitectura de diseño se necesita aumentar el número de CPU's y la cantidad de RAM.
  • Postgre no soporta consultas en paralelo.
  • No posee muchas herramientas en el mercado.
  • Es más lento que Oracle.
  • Los Limites de PostgreSQL:
    • Máximo de base de datos: ILIMITADO.
    • Maximo de tamaño de tabla: 32TB.
    • Máximo de tamaño de registro: 1.6TB.
    • Máximo de tamaño de campo: 1GB.
    • Máximo de registros por Tabla: ILIMITADO.
    • Máximo de campos por tabla: 250 a 1600 (depende de los tipos usados).
    • Máximo de índices por tabla: ILIMITADO.
    • 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.).
    • Métodos de almacenamiento de índices: 4 (B-tree, Rtree,Hash y GisT)

 


Realizado por: Jorge Eliecer Jaimes Jimenez - Julio 2008

 
       
Hosted by www.Geocities.ws

1