2. POSTGRESQL
•Sumario:
• Características de PostgreSQL.
• Evolución de las principales características por
versiones, hasta 9.2.
• “Posibles” mejoras de la versión 9.3.
3. POSTGRESQL
Característica
PostgreSQL.
globales
de
• Subconsultas, vistas, triggers, índices, reglas,
dominios.
• Propiedad ACID (100%)
• Manejo de usuarios.
• Funciones (procedimientos almacenados).
• Tipos de datos definidos por el usuario.
• Lenguage procedural interno(plpgsql).
• Otros lenguages procedurales
(plpython,plr,plperl, etc)
10. POSTGRESQL
PostgreSQL 7.4 [2003]
•Mejoran la búsqueda de texto contrib/tsearch2
•Agregan el information_schema.
•Considerables mejoras de optimización con
subconsultas.
•Agrega soporte tipos de datos IPv6.
13. POSTGRESQL
PostgreSQL 8.2 [2006]
•Mejoras en las operaciones de ordenamiento.
•Cláusula RETURNING a las operaciones INSERT,
DELETE,UPDATE.
DELETE FROM persona WHERE edad<2
RETURNIG *
14. POSTGRESQL
PostgreSQL 8.3 [2008]
•Tipos de datos XML, ENUM, UUID.
•Mejoras en la operaciones con cursores
•Búsqueda de texto pasa al núcleo.
• CREATE TYPE colores AS ENUM
(„Blanco‟, ‟Negro‟);
16. POSTGRESQL
PostgreSQL 8.4 [2009]
•Funciones ventanas.
¿Cuál es la diferencia del salario de cada uno de
los empleados con respecto al mínimo salario de
su departamento?”
SELECT e1.empid, e1.departamento, e1.salario,
(select min(e2.salario) from empleado e2 where
e2.departamento=e1.departamento ) as minimo
FROM empleado e1;
17. POSTGRESQL
PostgreSQL 8.4 [2009]
•Funciones ventanas.
¿Cuál es la diferencia del salario de cada uno de
los empleados con respecto al mínimo salario de
su departamento?”
SELECT empid, departamento, salario, min(salario)
OVER (PARTITION BY departamento)
AS minimo FROM empleado ;
18. POSTGRESQL
PostgreSQL 8.4 [2009]
•Cláusula WITH(CTE).
WITH persona_edad AS (
SELECT empid from empleado where edad> 20
and edad<25)
INSERT INTO clasificados (select empid from
persona_edad) ;
20. POSTGRESQL
PostgreSQL 9.0 [2010]
•Triggers por columnas y condicionales
CREATE OR REPLACE TRIGGER nombre_trigger
[ AFTER | BEFORE ] [| UPDATE | ] of columna
ON nombre_tabla
FOR EACH [ROW | STATEMENT]
EXECUTE PROCEDURE function;
21. POSTGRESQL
PostgreSQL 9.0 [2010]
•Triggers por columnas y condicionales
CREATE OR REPLACE TRIGGER nombre_trigger
[ AFTER | BEFORE ] [ INSERT | UPDATE |
DELETE ]
ON nombre_tabla
FOR EACH [ROW | STATEMENT]
When (condición)
EXECUTE PROCEDURE function;
26. POSTGRESQL
PostgreSQL 9.1 [2011]
•Mejoras a las clausula WITH
WITH mover_filas as
(delete FROM persona WHERE edad>0
and edad<10 returning *)
insert INTO persona_logs SELECT * from
mover_filas;
27. POSTGRESQL
PostgreSQL 9.2 [2012]
•Mejoras de rendimiento “muy considerables”.
•Replicación en cascada.
•Mejoras en los índices (only index).
•Soporte para tipos de datos JSON.
•Range Types (tipo de rango)
30. POSTGRESQL
PostgreSQL
9.3
“posibles mejoras”
[2013]
•Mejoras en los tipos de datos JSON.
Más funciones:
json_object_keys()
json_each()
select * from json_each('{"name":“anthony","password":"super
simple”}‟)
key | value
name | “anthony"
password | "super simple”
33. POSTGRESQL
Conclusiones
•PostgreSQL es un SGDB con más de dos décadas
de desarrollo.
•Su evolución esta sincronizada con el estándar
SQL.
•Posee avanzadas características de programación
al nivel de gestores privados.