PostgreSQL 1
PostgreSQL 1
Introducción
Bueno como introducción diremos que las bases de datos relacionales son uno de los tipos más populares que existen, y
su uso nos permite crear sitios web de toda clase. Entre los sistemas de bases de datos relacionales más utilizados se
encuentra uno que es conocido como PostgreSQL, que dicho sea de paso está entre los más usados a nivel mundial.
En esta ocasión vamos a ver qué es PostgreSQL exactamente, también haremos un breve repaso de su historia,
principales características, ventajas y desventajas, un problema propuesto, el proceso de instalación y una breve
conclusión.
¿Qué es PostgreSQL?
PostgreSQL, es un sistema de código abierto de administración de bases de datos del tipo relacional, aunque también es
posible ejecutar consultas que sean no relaciones. En este sistema, las consultas relacionales se basan en SQL, mientras
que las no relacionales hacen uso de JSON.
Como les decía, se trata de un sistema de código abierto y además gratuito, y su desarrollo es llevado adelante por una
gran comunidad de colaboradores de todo el mundo que día a día ponen su granito de arena para hacer de este sistema
una de las opciones más sólidas a nivel de bases de datos.
Dos detalles a destacar de PostgreSQL es que posee data types (tipos de datos) avanzados y permite ejecutar
optimizaciones de rendimiento avanzadas, que son características que por lo general solo se ven en sistemas de bases
de datos comerciales, como por ejemplo SQL Server de Microsoft u Oracle de la compañía homónima.
PostgreSQL nació en la Universidad de California en Berkeley (UCB por sus siglas en inglés) en el año 1986 como un
proyecto que daba continuidad a su predecesor Ingres. Fue de manos del profesor Michael Stonebraker y de un conjunto
de estudiantes de la misma academia quienes dieron los primeros pasos en el desarrollo del proyecto hasta que en 1996,
cuando era llamado Postgres95, se liberó al mundo opens urce y recibió aportes de una gran cantidad de desarrolladores
quienes contribuyeron con una enorme cantidad de tiempo, habilidad y expertis técnico para transformar a PostgreSQL
de manera radical.
PostgreSQL recibió su nombre actual en el año 1997 junto al lanzamiento de su versión 6.0, aunque el cambio ya había
sido anunciado el año anterior. A partir de allí gran cantidad de usuarios e interesados decidieron unirse al proyecto,
dando origen a la gigantesca comunidad que hoy en día respalda a PostgreSQL
La primera versión al público, de acceso bastante limitado, por cierto, estuvo disponible en el año 1989. El proyecto siguió
creciendo y mejorando en los años anteriores, pero el equipo que lo llevaba adelante se separó en 1994. Dado que
Postgres contaba con licencia libre el proyecto fue retomado y relanzado con soporte para SQL al año siguiente.
Actualmente PostgreSQL está presente en distintas áreas como gestor de datos, tales como la industria farmacológica, e-
Commerce, educación, gaming, gobierno, salud, manufactura, media, proyectos opensource, retail, tecnología y
telecomunicaciones. Para ver en más detalle esta información pueden consultar la URL de la fuente al final del post.
Características (Benji)
Siendo uno de los sistemas de bases de datos más avanzados y usados del mundo, es obvio que PostgreSQL debe
tener algunas características bastante llamativas, así que vamos a echarle un vistazo a algunas de ellas.
PostgreSQL puede ser ejecutado en los principales sistemas operativos, incluyendo Linux, UNIX AIX, BSD, HP-UX,
SGIIRIX, MacOSX, Solaris, Tru64 y por supuesto, Windows. Este soporta textos, imágenes, sonidos y video e incluye
interfaces para C / C++, Java, Perl, Python, Ruby, Tcl y Open Database Connectivity ODBC.
Es de código abierto: una de las principales razones por la cual PostgreSQL se ha vuelto tan popular es que se trata de
un sistema de código abierto. Esto ha permitido que una gran comunidad de desarrolladores crezca para respaldarlo y
continuar mejorándolo. Gracias a todo el apoyo con el que cuenta ha logrado transformarse en uno de los mejores
gestores de bases de datos a nivel mundial.
Es gratuito: como cabe esperarse se trata de un sistema totalmente gratis, no tenemos que pagar nada por utilizarlo.
Cualquier persona es libre de descargar PostgreSQL desde su sitio web oficial y darle uso sin ningún costo.
Es multiplataforma: una característica genial que de hecho es común en muchos grandes proyectos de código abierto es
el hecho de que se trata de software multiplataforma, es decir, es un software que puede correr bajo distintos entornos y
sistemas operativos, y es compatible con muchos de los servidores web más populares como Apache, Nginx y LiteSpeed
por mencionar algunos.
Es fácil de usar: la facilidad de uso de PostgreSQL es sin dudas otra de las principales características de este sistema.
Su administración se vuelve muy sencilla por medio de paneles con PgAdmin, que básicamente viene a ser un
phpMyAdmin orientado para PostgreSQL. La posibilidad de realizar diversos procedimientos en forma sencilla hace que
PgAdmin sea ampliamente utilizado, aunque también permite realizar tareas más complejas, así que tanto novatos como
usuarios expertos hacen uso de él.
Puede manejar un gran volumen de datos: una característica extremadamente importante de PostgreSQL es su gran
capacidad para el manejo de grandes volúmenes de datos, algo en lo que otros sistemas como MySQL aún no hacen tan
bien. Las bases de datos de gran tamaño pueden hacer pleno uso del MVCC de PostgreSQL, resultando en un gran
rendimiento. MVCC es un método de control que nos permite realizar tareas de escritura y lectura simultáneamente.
Soporte total de ACID: otro punto muy importante que no se debe dejar de lado es el cumplimiento de ACID. ¿Qué es
ACID? Estas siglas en inglés refieren a: atomicity, consistency, isolation y durability, que si lo traducimos al español
básicamente hablan de la atomicidad, consistencia, aislamiento y durabilidad de las transacciones que se realizan en una
base de datos. ¿Y por qué es tan importante? Porque tener soporte completo de ACID da la seguridad de que, si se
produce una falla durante una transacción, los datos no se perderán ni terminarán donde no deban.
Cómo administrar PostgreSQL mediante interfaz gráfica (Daniel)
Existen diversos programas que nos dan la posibilidad de manejar bases de datos hechas en PostgreSQL haciendo uso
de una interfaz gráfica, lo cual viene bien si no somos muy amigos de la consola. Alguno de estos programas son los
siguientes:
pgAdmin: es probablemente el gestor de PostgreSQL más conocido y utilizado del mundo. Es fácil de utilizar, intuitivo y
compatible con gran cantidad de sistemas operativos, además claro de ser gratuito. Estas características han hecho que
se vuelva una de las herramientas más utilizadas a la hora de administrar bases de datos en Postgres. Inicialmente era
conocido como pgManager pero con el paso del tiempo cambió de nombre. Su versión más reciente es pgAdmin 4 y
podemos correrlo en diversos entornos como Windows, Linux y macOS.
PhpPgAdmin: esta herramienta es muy parecida a phpMyAdmin, más incluso que la ya nombrada pgAdmin. Si conoces
phpMyAdmin entonces no tendrás muchos problemas para utilizarla pues funciona de manera muy similar. En el menú
izquierdo del programa se despliegan los servidores de PostgreSQL y las bases de datos que contiene cada uno, y del
lado derecho tenemos diversas herramientas y funcione como por ejemplo exportar e importar, ajustar privilegios, editar
campos, etc.
Comparación de PostgreSQL vs MySQL (Jorge)
A lo largo de los años las comparaciones de PostgreSQL y MySQL no han parado de crecer, y es que se trata de los
sistemas de bases de datos relacionales más usados a nivel mundial, aunque claro tienen algunas diferencias entre sí
que hacen que los usuarios se inclinen por uno o por otro.
PostgreSQL como ya decíamos sigue siendo un sistema de código libre y totalmente gratuito que está en manos de una
comunidad. Con MySQL la historia fue similar durante un buen tiempo, hasta que quedó en manos de Oracle.
Actualmente sigue existiendo una versión gratuita de MySQL, aunque eso solo será hasta que Oracle así lo quiera.
Afortunadamente existen alternativas MySQL extremadamente similares como MariaDB, por si algún día necesitas un
reemplazo.
En lo que refiere a las consultas o quieres, las soportadas por MySQL tienden a ser más simples, mientras que
PostgreSQL soporta queries más complejas, lo cual le ha valido el título del sistema de bases de datos relacionales más
avanzado del mercado.
En términos de rendimiento cada uno tiene su situación para brillar: MySQL es mejor si se manejan bajos volúmenes de
datos, es decir, si tenemos bases de datos pequeñas o medianas a las cuales se hagan una cantidad de consultas no
muy alta. Por su parte, PostgreSQL es mejor a la hora de manejar volúmenes de datos grandes y se suele usar más
cuando se tienen bases de datos grandes y con alta cantidad de consultas.
Si miramos el cumplimiento de ACID nos toparemos conque MySQL no lo soporta al 100%, sino solamente las tablas que
hagan uso de NDB Cluster o InnoDB, mientras que PostgreSQL sí lo soporta completo en todos los casos.
Resumiendo, por ahora ambos son gratis, así que debemos elegir basándonos en rendimiento más que nada: si quieres
un sistema para bases de datos medianas o pequeñas y consultas no muy complejas ni muy abundantes ve por MySQL,
de lo contrario PostgreSQL es mejor opción si vas a manejar un volumen notable de datos.
Y como detalle final, si el cumplimiento de ACID es para ti un factor de vida o muerte, tendrás que optar por usar InnoDB
en MySQL si no deseas hacer uso de Postgres.
Como ya conoces, PostgreSQL es el motor de base de datos de la actualidad. Lo que lo hace el Sistema Gestor de
Bases de Datos de Código libre más potente y robusto del mercado.
Instalación ilimitada y gratuita: Podemos instalarlo en todos los equipos que queramos. Independientemente de la
plataforma y la arquitectura que usemos, PostgreSQL está disponible para los diferentes SO, Unix, Linux y Windows, en
32 y 64 bits. Ésto hace de PostgreSQL un sistema multiplataforma y también hace que sea más rentable con
instalaciones a gran escala.
Gran escalabilidad: Nos permite configurar PostgreSQL en cada equipo según el hardware. Por lo que es capaz de
ajustarse al número de CPU y a la cantidad de memoria disponible de forma óptima. Con ello logramos una mayor
cantidad de peticiones simultáneas a la base de datos de forma correcta.
Estabilidad y confiabilidad: Tiene más de 20 años de desarrollo activo y en constante mejora. No se han presentado
nunca caídas de la base de datos. Ésto es debido a su capacidad de establecer un entorno de Alta disponibilidad y
gracias a Hot-Standby, que permite que los clientes puedan realizar consultas de solo lectura mientras que los servidores
están en modo de recuperación o espera. Así podemos hacer tareas de mantenimiento o recuperación sin bloquear
completamente el sistema.
pgAdmin: Se trata de una herramienta gráfica con la que podemos administrar nuestras bases de datos de forma fácil e
intuitiva. Podemos ejecutar sentencias SQL, e incluso crear copias de seguridad o realizar tareas de mantenimiento.
Estándar SQL: Implementa casi todas las funcionalidades del estándar ISO/IEC 9075:2011, así pues, resulta sencillo
realizar consultas e incluir scripts de otros Motores de Bases de Datos.
Potencia y Robustez: PostgreSQL cumple en su totalidad con la característica ACID Compliant. ACID es un acrónimo de
Atomicity, Consistency, Isolation y Durability (Atomicidad, Consistencia, Aislamiento y Durabilidad en español). Por ello
permite que las transacciones no interfieran unas con otras. Con ello se garantiza la información de las Bases de Datos y
que los datos perduren en el sistema.
Extensibilidad: Tenemos a nuestra disponibilidad una gran variedad de extensiones distribuidas por el grupo de
desarrolladores de PostgreSQL. También por terceros o incluso nosotros mismos podemos crear nuestras propias
extensiones. Estas extensiones pueden ser lenguajes de programación, tales como, Perl, Java, Python, C++ y muchos
más.
Es relativamente lento en inserciones y actualizaciones en bases de datos pequeñas, PostgreSQL está diseñado para
ambientes de alto volumen. Esto hace que la velocidad de respuesta pueda parecer lenta en comparación con bases de
datos de pequeño tamaño.
Soporte oficial: No cuenta con un soporte en línea o telefónico. PostgreSQL cuenta con foros oficiales donde los usuarios
pueden exponer sus dudas que responden otros usuarios de la comunidad. También, disponemos soporte empresarial
como EnterpriseDB o TodoPostgreSQL. Cabe resaltar que la comunidad de usuarios PostgreSQL es una de las más
activas en el mercado.
La sintaxis de algunos de sus comandos o sentencias puede llegar a no ser intuitiva si no tienes un nivel medio de
conocimientos en lenguaje SQL.
Se desea diseñar una Base de Datos para llevar un cierto control de los soldados que realizan el servicio militar.
2: Existen varios cuarteles, cada uno se define por su código de cuartel, nombre y ubicación
3: Hay Cuerpos del Ejercito (infantería, artillería, armada…) y cada uno se define por un código del cuerpo de
denominación.
4: Los soldados están agrupados en compañías, siendo significativa para cada una de estas, el numero de compañía y la
actividad principal que realiza.
5: Los soldados realizan servicios (guardia, cuartelero…) y se define por el código de servicio y actividad.
Consideraciones diseño
Un saldado pertenece a un único cuerpo y una única compañía, durante todo el servicio militar
Pueden pertenecer soldados de diferentes cuerpos a una compañía, no habiendo relación directa entre compañías
y cuerpos
Una compañía puede estar ubicada en varios cuarteles, y en un cuartel puede haber varias compañías. Eso si, un
soldado solo esta en un cuartel
Un soldado realiza varios servicios a lo largo del SM y un mismo servicio puede ser realizado por mas de un
soldado (con independencia de la compañía),siendo significativa la fecha de realización
CuerpoE
Servicio
Soldado
Conclusión (Daniel)
No se pueden poner dudas de que PostgreSQL es uno de los mejores sistemas de bases de datos del mundo, ya que
tiene un montón de características estupendas que lo hacen brillar en determinadas situaciones. Siendo el eterno rival de
MySQL, Postgres le supera en algunos aspectos, aunque no logra estar a la altura en otros.
Si vamos a usar PostgreSQL es mucho mejor cuanto más volumen de datos necesitamos mover, ya que esa es su
especialidad: las bases de datos de gran tamaño, un área en la cual este software se desempeña extremadamente bien.
Se trata además de un sistema que pueden usar tanto usuarios novatos en bases de datos como expertos, ya que
gracias a las diversas herramientas administrativas es fácil de manejar, y quienes no gusten tanto de las interfaces
gráficas pueden optar por trabajar con Postgres mediante línea de comandos.
PostgreSQL es, en pocas palabras, un gestor de bases de datos poderoso, avanzado y muy completo, que si se utiliza
adecuadamente puede darnos muy buenos resultados a la hora de montar bases de datos relacionales e incluso no
relacionales si utilizamos JSON. Así que si todavía no lo has probado te recomendamos echarle un vistazo, de seguro
que sus características te van a sorprender.